一、 单项选择题(本大题共19小题)
1.C语言规定:在一个源程序中,main函数的位置( )。[C] A)必须在最开始
B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后
2.一个C语言程序是由( )。[B] A)一个主程序和若干个子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成
3.C程序中,注释的内容写在( )。[A] A)/*和*/之间 B)\\*和*\\之间 C)*/和/*之间 D)*\\和\\*之间 4.C语言程序中每个语句和数据定义的最后必须有一个( )。[A] A)分号 B)逗号 C)空格 D)冒号
5.若x、i、j和k都是int型变量,则计算下面表达式后,x的值为( )。[C] X=(i=4,j=16,k=32) A)4 B)16 C)32 D)52 6.不正确的变量说明是( )。[C] A)unsigned int ui; B)short int s; C)double int A; D)int i,j,k; 7.合法的C语言程序标识只符是( )。[C] A)5dm B)a>b C)Hh D)$a 8.不合法的字符常量是( )。[C] A)?2? B)?\\101? C)?ab? D)?\\n? 9.若有代数式
3ae,则不正确的表达式是( bc)。[C]
A)a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/c/b*3
10.以下选项中不合法的赋值语句是( )。[C] A)c=(a=1,b=2); B)k=i=j; C)a=b+c=5; D)n1=(n2=(n3=0)); 11.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( )。[C] A)A%2= =1 B) !(A %2 = =0) C)!(A%2) D)A%2 12.若w=1,x=2,y=3,z=4,则条件表达式w 13.设ch 是char 型变量,其值为 A, 下面表达式的值为( )。[B] ch = ( ch >= ?A? && ch <= ?Z? ) ? ( ch + 32 ) : ch ; A)A B)a C)Z D)z 14.假定所有变量均已正确说明,下列程序运行后x的值是( )。[A] a=b=c=0, x=35; if (! a) x――; else if (b ); if ( c) x=3; else x=4; A)34 B)4 C)35 D)3 15.下面程序段的输出结果是( )。[A] int n=4; while (n――) printf(“%2d”, ――n); A)2 0 B)31 C)3 2 1 D)2 1 0 16.下面程序段的输出结果是( )。[C] int x=3; do { printf(“=”, x-=2); } while (!(――x)); A)1 B)30 C)1 -2 D)死循环 17.以下for循环的执行次数是( )。[C] for (x=0,y=0;(y=123)&&(x<4);x++); A)是无限循环 B)循环次数不定 C)执行4次 D)执行3次 18.若有说明:int a[5][6]; 则对a数组元素的正确引用是( )。[C] A)a[2][6] B)a[4,5] C)a[1+3][0] D)a(1)(5) 19.判断字符串s1是否大于字符串s2,应当使用( )。[D] A)if ( s1>s2) B)if (strcmp ( s1,s2)) C)if ( strcmp( s2, s1)>0) D)if ( strcmp( s1,s2 )>0) 二、填空题(本大题共15小题) 1.设a=10,则赋值表达式a+=a-=a*a的值是 。 [-180] 2.设a=3,b=4,c=5。则逻辑表达式a||b+c&&b-c的值是 。[1] 3.若已知定义a =10, b=20, 则表达式 ! a 4.若有定义 int a [3][4]={{1,2}, {0},{ 4,6,78,10}}; 则初始化后a[1][2]得到的初值是 。[0] 5.若有定义 int a [3][4]={{1,2}, {0},{ 4,6,78,10}}; 则初始化后a[2][1]得到的初值是 。[6] 6.下面程序段的输出结果是 。 [**1** **3**] void main() { int x=1, y=0; switch ( x) { case 1: switch ( y ) { case 0: printf(“**1**\\n”); break; case 1: printf(“**2**\\n”); break; } case 2: printf(“**3**\\n”); } } 7.下面程序段的输出结果是 。[x=4, y=5, a=1] void main() { int x=3,y=6,a=0; while (x++!=(y-=1)) { a+=1; if (y>x) printf(\ } } 8.下面程序输出结果是_____________________。[i=6,k=4] #include { int i,j,k=19; While (i=k-1) { k- =3; if (k%5==0) { i++; continue; } else if (k<5) break; i++; } Printf(“i=%d,k=%d\\n”,i,k); } 9.如下程序段的输出结果是 。[16] int i=0 , sum=1; do { sum+=i+ +; } while ( i<6); printf(“%d”, sum); 10.下列的for循环执行 次。[4] for ( x=0, y=0; ( y!=99) && x<4; x++ ); 11.若x 是int型变量,下面程序段的输出结果是 。 [**3##4 **5] for ( x=3; x<6 ; x++ ) printf ( ( x%2 ) ? ( “ ** %d”) : (“## %d\\n”), x); 12.补足程序,实现如下功能:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。 [ (1)score >=0 && score <=100 (2)score { float score, max=0, min=100; printf(“ Input the score”); scanf( “ %f”, &score); while ( (1) ) { if ( score > max) max=score; if ( (2) ) min=score; printf(“ Input the score”); scanf( “ %f”, &score); } printf(“ The max score is %f \\n min is %f\\n”,max, min); } 13.以下程序的功能是实现从键盘输入一组字符,统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者。[ (1) c=getchar() ; (2) n:m void main() { int m= 0, n=0; char c; while ( ( (1) ) != ?\\n? ) { if ( c>=?A? &&c <=?Z? ) m++; if ( c>=?a? &&c <=?z? ) n++; } printf(“%d \\n ”, m 14.下面程序段将输出 computer,请填空。[(1)i<=7 (2)j=i+7] int i, j=0; char c[ ]=”it’s a computer”; for (i=0; (1) ;i++) { (2) ; printf(“%c”,c[j];) 15. 如下程序段的输出结果是 。[123] #include { char str[]=\ for (i=0; str[i]!='\\0';i++) if (str[i]>='0'&&str[i]<='9') printf(\} 16.如下程序段的输出结果是 。 [EFGH IJKL] #include { char str[][10]={\ for (k=1; k<3;k++) printf(\}

