2009-2010(上)C语言1-6章测试题 下载本文

2008-2009(上)C语言程序设计1-5章测试试题

2008-2009(上)C语言程序设计1-5章测试试题 姓名__________学号__________成绩__________

一、选择题(每小题1分,共60分) 1、 若有以下程序段 int m=0xabc,n=0xabc; m-=n;

printf(\

执行后输出结果是(C )。

A) 0X0 B) 0x0 C) 0 D) 0XABC 2、以下不合法的用户标识符是( C )

A)j2_KEY B)Double C) 4d D) _8_ 3、以下不合法的数值常量是( C )

A)011 B)1e1 C) 8.0E0.5 D) 0xabcd 4、以下不合法的字符常量是 ( A )

A)'\\018' B) '\\”' C) '\\\\' D) ?\\xcc' 5、表达式3.6-5/2+1.2+5%2的值是 ( D )

A)4.3 B) 4.8 C) 3.3 D) 3.8 6、以下能正确定义字符串的语句是( D )

A)char str[]={?s',?t?,?r?,?i?,?n?,?g?}; B) char str=”\\x43”; C) char str=”string”; D) char *str=”string”; 7、以下数组定义中错误的是( B )

A) int x[][3]={0}; B) int x[2][3]={{1,2},{3,4},{5,6}}; C) nt x[][3]={{1,2,3},{4,5,6}}; D) int x[2][3]={1,2,3,4,5,6}; 8、若要求从键盘读入含有空格字符的字符串,应使用函数( B ) A)getc() B) gets() C) getchar() D) scanf() 9、 下四个程序中,完全正确的是( B )

A)#include B)#include main(); main()

{/*programming*/ {/*/programming/*/ printf(“programming!\\n”);} printf(“programming!\\n”);} C) #include”stdio.h” D) include main() main()

{/*/*programming*/*/ {/*programming*/ printf(“programming!\\n”);} printf(“programming!\\n”);}

10、若有定义:float x=1.5; int a=1,b=3,c=2;则正确的switch语句是(C )

1

2008-2009(上)C语言程序设计1-5章测试试题

A)switch(x) B) switch((int)x); {case 1.0: printf(“*\\n”); {case 1: printf(“*\\n”); case 2.0: printf(“**\\n”); } case 2: printf(“**\\n”);} C) switch(a+b) D) switch(a+b)

{ case 1: printf(“*\\n”); {case 1: printf(“*\\n”); case 2+1: printf(“**\\n”);} case c: printf(“**\\n”);}

11、若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是( A )

A)main() B) float fun(int a,int b){……} {……x=fun(2,10);……} main()

float fun(int a,int b){……} {……x=fun(i,j);……} C) float fun(int,int); D) main()

main() { float fun(int i,int j); {……x=fun(2,10);……} ……x=fun(i,j);……} float fun(int a,int b){……} float fun(int a,int b){……}

12、在以下给出的表达式中,与while(E)中的(E)不等价的表达式是( C) A)(!E=0) B) (E>0||E<0) C) (E==0) D) (E!=0)

13、要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是 ( A )

A) while((ch=getchar())!='N') printf(“%c”,ch); B) while(ch=getchar()!='N') printf(“%c”,ch); C) while(ch=getchar()==?N') printf(“%c”,ch); D) while((ch=getchar())=='N') printf(“%c”,ch); 14、有以下程序 #include main() {

char c1,c2,c3,c4,c5,c6;

scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(“%c%c\\n”,c5,c6);

2

2008-2009(上)C语言程序设计1-5章测试试题

}

程序运行后,若从键盘输入(从第1列开始) 123<回车> 45678<回车>

则输出结果是 ( D )

A)1267 B)1256 C)1278 D)1245 15、若有以下程序 main() {int y=10; while(y- -); printf(“y=%d\\n”,y); }

程序运行后的输出结果是 ( A )

A)y=0 B)y=-1 C) y=1 D)while构成无限循环 16、有以下程序 main() {

int a=0,b=0,c=0,d=0; if(a==1) b=1; c=2; else d=3;

printf(“%d,%d,%d,%d\\n”,a,b,c,d); }

程序输出 ( D )

A)0,1,2,0 B) 0,0,0,3 C)1,1,2,0 D)编译有错 17、有以下程序 main() { int i,j,x=0; for(i=0;i<2;i++) { x++;

for(j=0;j<=3;j++) {

if(j%2) continue; x++; }

3

2008-2009(上)C语言程序设计1-5章测试试题

x++; }

printf(“x=%d\\n”,x); }

程序执行后的输出结果是 ( B )

A)x=4 B) x=8 C) x=6 D) x=12 18、有以下程序

int fun1(duoble a){return a*=a;} int fun2(dpuble x,double y) {

double a=0,b=0;

a=fun1(x); b=fun1(y); return (int)(a+b); } main()

{double w; w=fun2(1.1,2.0);……} 程序执行后变量w中的值是 ( B )

A)5.21 B) 5 C) 5.0 D) 0.0 19、有以下程序 main() {

int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf(“%d”,t[2-i][i]); }

程序的执行后的输出结果是 ( B)

A)7 5 3 B)3 5 7 C)3 6 9 20、有以下程序 fun(char p[][10]) {int n=0,i; for(i=0;i<7;i++) if(p[i][0]=='T') n++; return n; } main() {

char str[][10]={“Mon”, “Tue”, “Wed”, “Thu”,”Fri”,”Sat”,”Sun”}; printf(“%d\\n”,fun(str)); }

4

D)7 5 1 2008-2009(上)C语言程序设计1-5章测试试题

程序执行后的输出结果是( B ) A)1 B)2 C)3 D)0 21、以下叙述中错误的是(A )。

A)用户所定义的标识符允许使用关键字 B)用户所定义的标识符应尽量做到“见名知意” C)用户所定义的标识符必须以字母或下划线开头 D)用户定义的标识符中,大、小写字母代表不同标识 22、以下叙述中错误的是(C )。 A)C语句必须以分号结束

B)复合语句在语法上被看作一条语句 C)空语句出现在任何位置都不会影响程序运行 D)赋值表达式末尾加分号就构成赋值语句 23、以下叙述中正确的是(B )。

A)调用printf函数时,必须要有输出项

B)使用putchar函数时,必须在之前包含头文件stdio.h

C)调用putchar函数输出字符时,参数不可以是字符的ASCII码

D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码 24、以下关于函数的叙述中正确的是( B )。

A)每个函数都可以被其它函数调用(包括main函数) B)每个函数都可以被单独编译 C)每个函数都可以单独运行

D)在一个函数内部可以定义另一个函数

25、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是(D )。

A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==1 26、以下不能正确计算代数式值的C语言表达式是(A )。 A)1/3*sin(1/2)*sin(1/2) B)sin(0.5)*sin(0.5)/3 C)pow(sin(0.5),2)/3 D)1/3.0*pow(sin(1.0/2),2) 27、以下能正确定义且赋初值的语句是( B )。 A)int n1=n2=10; B)char c=32; C)float f=f+1.1; D)double x=12.3E2.5;

28、以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。 main() /* Beginning */ { int r; float s; scanf(\

s=*p*r*r; printf(\

5