C语言程序设计期中模拟考试
单选题
1. 以下叙述中正确的是 (1) 。
A.若e1、e2为变量,e为表达式,则
e1=e2=e使得e1、e2都具有表达式e的值 。
B.程序中不能定义与库函数名同名的变量。
C.一个C源程序可放在多个文件中,但
一个函数不能跨放在两个不同的文件中。
D.
2. 若a,b,c都是实型变量,则下列语句中除 (2) 之外,都可能得不到正确的计算结果。
A.if(b*b-4*a*c==0) x1=x2=-b/(2*a);
else x1=(-b+sqrt(b*b-4*a*c))/(2*a), x2=(-b-sqrt(b*b-4*a*c))/(2*a);
B.b=2.0e38+1.0-2.0e38;
C.a=456*768/2;
D.double define=1.0;
A.‘077’ B.‘\0x89’ C.3.14u D.‘\012’
若已有声明float x= -1234.5678; int m,n=4;则执行m=printf(“\n%8.3f\n”,x)/n;”语句后,变量m的值是 (4) 。
A. B. C. D.
5. 若已有声明“int x1; float x2; long x3; char x4;”,以下选项均出现在switch语句中,其中正确的是 (5) 。
A. case 1.1: scanf("%d",&x1);break;
B. case 1+2: scanf("%f",&x2); break;
C. case 'x':case 'y'-1: scanf("%ld",&x3); break;
D. case x4: scanf("%c",&x4); break;
6. 33.以下表达式中,能够作为“if(e) 语句”中判断条件表达式e 的是 (6) 。
A. x==++(x+1) B. x+=++x||x++ C. x+1=z D. x%2.0!=0
7. 以下局部变量声明中,正确的是 (7) 。
A.int x=0, void=1; B.int x=1,y=2x;
C.int x=2,y=sqrt(x); D.int x=sqrt(y),y=4;
8. 在以下语句中,正确的是 (8) 。
A.if(a>b)m=a;n=b;else m=b;n=a;
B.if(a>b){m=a;n=b;else m=b;n=a;}
C.if(a>b)m=a,n=b;else m=b,n=a;
D.if(a>b){m=a;n=b;}else(a<=b){m=b;n=a;}
9.24.已知有声明:“char c=‘1’ ; int x=300 ; float t=35000 ; double d=3.1234567e10 ;”,则以下表达式
求值时除 (9 ) 外,其结果都可能是不准确的。
A. x=t/c B. t=d/x C. t=d/1e5f D. t=x+c
10.若有声明“int i,k=1; unsigned j;”,则下列语句执行时会出现无限循环的语句
是 (10) 。
Afor(j=15;j>0;j-=2) k++;
B.for(j=0;j<15;j+=2) k++;
C.for(i=0;i<15;i+=2) k++;
D.for(i=15;i>0;i-=2) k++;
11.已有声明“int x=2,y=1,z=0;”,以下表达式的值不为0的是 (11) 。
A. x==(x=0,y=1,z=2)
B. z>y>x
C. x>y==1
D. x>(y=2)
12.若e1、e2和e3是表达式,以下选项中与语句while(e1){e2,e3;}功能等价的语句是 (12 ) 。
A. for( ;e1;e3)e2; B. for( ;e1;e2)e3; C. for(e1;e2;e3); D. for(e1; e2, e3; );
13.已有声明“int x=3;”,以下选项中与“x+=x (=x+1”功能不等价的表达式是 (13 ) 。
A.x