for(a=1;a<=5;++a){
for(b=1;b<=a;++b) printf(\printf(“\\n”); } 3、
#include
{ int i,a[10],sum;
for(i=0;i<10;++i)scanf(“%d”,&a[i]);
sum=a[0];
for(i=1;i<10;++i)if(a[i]>sum)sum=a[i]; printf(“sum=%d\\n”,sum); }
C语言程序设计试题集(第2套)
一. 单项选择题(30分,每题2分)
1.用C语言编写的代码程序______。
A、可立即执行 B、是一个源程序
C、经过编译即可执行 D、经过编译解释才能执行
2. C语言中用于结构化程序设计的三种基本结构是______。
A、 顺序结构、选择结构、循环结构 B、 if、switch、break C、 for、while、do-while D、 if、for、continue
3. 以下选项中合法的实型常数是______。
A、5E2.0 B、 E-3 C、 .2E0 D、 1.3E
4. 假定x和y为 double型,则表达式x=2,y=x+3/2的值是______。 A、 3.500000 B、 3 C、 2.000000 D、 3.000000
5. ch是字符型变量,下面不正确的赋值语句是______。 A、ch = 65; B、 ch=\ C、 ch ='\\ n'; D、 ch= 9+ '0';
6
6. 下列有关C语言程序书写格式的说法哪个是错误的?
A、 C程序的书写格式比较自由,一个语句可以占多行,一行也可以有多个语句。
B、 C语句必须要有分号。
C、 C语言程序的标识符必须使用小写字母。
D、 用{ } 括起来的部分,通常表示了程序的某一层次结构,称为块。
7.下面程序段所表示的数学函数关系是______。 x= -1; if (a!=0)
if (a>0) x=1; else x=0;
-1 (a<0) 1 (a<0)
A、x= 0 (a=0) B、x= -1 (a=0)
1 (a>0) 0 (a>0)
0 (a<0) -1 (a<0)
C、x= -1 (a=0) D、x= 1 (a=0)
1 (a>0) 0 (a>0)
8. 以下关于do-while循环的不正确描述是______。 A) do-while的循环体至少执行一次 B) do-while的循环体可以是复合语句
C) 在do-while循环体中,一定要有能使while后面表达式的值变为零(\假\的操作
D) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
9. 以下程序执行后sum的值是______。
A) 15 B) 14 C) 不确定 D) 0 main()
{ int i , sum=0;
for(i=1;i<6;i++) sum+=i; printf(\ }
10.若有说明语句:int a[][3]={1,2,3,4,5,6}; 则a数组第一维的大小是 。
A. 1 B. 2 C.3 D. 无确定值
11. C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是
7
______。
A、float型 B、long型 C、int型 D、double型
12.下面正确的函数定义形式为 A、double fun(int x;int y) B、double fun(int x,int y); C、double fun(int x,y) D、double fun(int x,int y)
13.以下程序运行后,输出结果是______。 #define ADD(x) x+x main( )
{ int m=1, n=2, s=3; s=S+ADD(m+n); printf(\
}
A、s=8 B、s=9 C、s=6 D、s=18
14. 若有定义:int x , *p ; 则以下正确的赋值表达式是 A、p=&x B、 p=x C、*p=&x D、 p=*x
15.以下变量a,b,c均为double型且已正确赋值,不能正确地表示数学式
2子a?b?c的C语言表达式是 A、2*(1/(a*b*c)) B、 2/a*b*c C、 2/a*1/b*1/c D、 2/a/b/c
二. 程序填空题(20分,每空2分)
1. 以下程序的功能是:输入三个整数n1、n2、n3,将最大的数输出。请填空。
main( )
{ int n1, n2, n3, temp;
scanf(\ if (n2 { temp=n2; n2=n3; n3=temp; } if (n1 { temp=n1; ① ; ② ; } printf(\ } 2. 编写打印整数1~10的平方的函数。请填空。 8 main ( ) { int i ; for ( i=1; i ③ ; i+ +) printf (“%d\\n”, square( i)); } square ( int n) {return ( ④ );} 3.求数组所有元素累加和。请填空。 main() {int sum,i,j,k,a[2][2][2]={1,2,3,4,5,6,7,8}; sum= ⑤ ; for(i=0;i<2;i++) for(j=0;j<2;j++) for(k=0;k<2;k++) sum= ⑥ ; printf(\ } 4.以下程序的功能是调用函数fun计算:m= 1-2+3-4+?+9-10,并输出结果。请填空。 int fun (int n ) {int m=0, f=1, i; for (i=1; i<=n; i+ +) { m+= ⑦ ; f= ⑧ ; } return m;} main ( ) {printf (“ m=%d\\n”, fun (10 ) ) ; } 5.将以下含有switch语句的程序段改写成对应的含有嵌套if语句的程序段,请填空。 含有switch语句的程序段: int s, t, m; t=(int)(s/10); switch( t ) {case 10: m=5; break; case 9: m=4; break; case 8: m=3; break; case 7: m=2; break; case 6: m=1; break; 9 default: m=0; } 含有嵌套if语句的程序段: int s, m; if (s<60||s>110) m=0; else if (s<70) m=1; else if (s<80) m=2; else if (s<90) m=3; else if (s<100) ⑨ ; else ⑩ ; 三.程序运行结果题(20分,每题4分) 1. 写出程序运行的结果: main ( ) { int a=2,b=3; float x=3.5,y=2.5,p; p=(float)(a+b)/2+(int)x%(int)y; printf(\ } 2. 写出程序运行的结果: main ( ) { int i,j; i=3; j=6; printf(\printf(\ } 3. 写出程序运行的结果: main() { int number=0; while(number<=1) { printf(“*%d,”,number); number++;} printf(“**%d\\n”,number); } 10