11计算机二级考试C语言选择题 下载本文

A.printf(\C.printf(\50600有以下程序: main() { int c;

while((c=getchar())!= '\\n') { switch(c-'2') { case 0 :

case 1 : putchar(c+4); case 2 : putchar(c+4); break; case 3 : putchar(c+3); default: putchar(c+2); break; } }

printf(\}

当输入:247<回车>,程序的输出结果是( B )。 A.689 B.6689 C.66778 D.66887

50601若已定义 int x=5,y=9,z; 语句 z=x>=y; 运行后z的值为( C )。 A.1 B..t. C.0 D..f.

50602 判定逻辑值为“真”的最准确叙述是( D )。 A.1 B.大于0的数 C.非0的整数 D.非0的数

50603若已定义 int x=-16,y=-12,z; 语句z=x<=y; 运行后z的值为( B )。 A..t. B.1 C..f. D.0

50604 能正确表示数学关系式 100≤s<300的表达式为( C )。

A.(s>=100) & (s<300) B.100<= s<300 C.(s>=100) && (s<300) D.(s>=100) and (s<300) 50605 若定义 int a=2,b=3; 则表达式 !a||b 的值为( B )。 A.0 B.1 C.2 D.3

50606 若定义 int a=-5,b=-8,c=-12; 则表达式 a>=b||b

50607下列表达式( C )不能用来判断整型变量x中的值是否为奇数。 A.x%2==1 B.!(x%2==0) C.!(x%2) D.x%2

50608若有定义:int a=3,b=2,c=3; 则值为0的表达式是( D )。

A.(a-b)==(c/b) B.a>=c C.c-b||a+b&&(b*c-a-c) D.(b*c-a-c)&&(b*c-a-b) 50609若已定义:int x=4,y=2,z=0; 则表达式 (x-y<=y)|| (y=z)的值是( A )。 A.1 B.0 C.2 D.4

50610若有定义:int a=3,b=2,c=1,k; 则表达式k=a>b>c的值是( A )。 A.0 B.1 C.2 D.3

50611 以下运算符中优先级最高的是( D )。 A.<= B.&& C.|| D.!

50612 执行以下语句后,b的值是( A )。

int a=5,b=6,c=1,x=2,y=3,z=4; (a=c>x) || (b=y>z); A.0 B.1 C.-1 D.6

50700 以下程序运行后,a的值是( C )。

5

main() { int a,b;

for(a=1,b=1;a<=100;a++) { if(b>=20) break;

if(b%3==1) { b+=3; continue; } b-=5; } }

A.101 B.100 C.8 D.7

50701 已定义 double k=3.6; 则正确的赋值表达式是( D )。

A.k=double(-3.6) B.k%3 C.k=k*(-1.0)=-3.6 D.k+=k-=(k=1.2)*(k=3) 50702已定义 char c = 'A' ; 则正确的赋值表达式是( B )。 A.c=\\028 B.c=(c++)%4 C.c+1=66 D.c+=127-- 50703已定义 int m ='A'; 则正确的表达式是( C )。 A.2*m=m++ B.m=int(-3.2) C.m%3 D.m=m-m=m-5

50704设已定义 float a=2.0,b=3.0; 使a值为5.0的表达式是( A )。 A.a+= b B.a*=b+2.0 C.a/=b+2.0 D.a-=b+2.0

50705 若已定义 int m=7;float k=5.5; 则表达式 k+ m%2/4 的值为( D )。 A.6.375 B.6.75 C.5.75 D.5.5

50706若已定义 int a=3,b=3,x=1,y=2; 表达式 (a=y>x)&&(x=b>a) 的值是( D )。 A.6 B.1 C.9 D.0

50707若有定义:int a=2,b=3; float x=5; 则表达式x*b/a的值是( A )。 A.7.5 B.7 C.6 D.5

50708 若有定义:int x=8; float y=130;char z='A'; 则表达式x+z%(int)y的值是( C )。 A.运行时产生错误信息 B.8 C.73 D.8.5

50709若已定义:int m=7,n=4; float x=3.0,y=8.0,k; 则执行语句k=m/2+n*x/y;后,变量k的值是( C )。 A.3 B.4 C.4.5 D.5

50710 若有定义:float x=2,y=4,h=3; 下列表达式中与(x+y)*h/2.0计算结果不相符的是(C)。 A.(x+y)*h/2 B.(x+y)*h*1/2 C.(1/2)*(x+y)*h D.h/2*(x+y) 50711 表达式2+sqrt(16.0)/4结果的数据类型是( A )。 A.double B.int C.char D.void

50712 若有定义:int a=4,b=5,c=6; 则表达式 (1.0*a+b)/c的值是( A )。 A.1.5 B.1 C.4 D.4.5

50800以下程序段的运行结果是( D )。 int x=3;

do{ printf(\} while(!(--x));

A.1 B.30 C.死循环 D.1, -2

50801 以下程序运行时,若从键盘输入6,则输出结果是( A )。 void main() {int x;

scanf(\

if (x-->6) printf(\

6

else printf(\}

A.4 B.5 C.6 D.3

50802 以下程序的运行结果是( C )。 void main() {int m,n=1,t=1; if(t==0) t=-t; else m=n>=0?7:3; printf(\}

A.3 B.-1 C.7 D.1

50803对于整型变量a,赋值语句 a=(a%3==0?1:0); 与( D )语句不等价。 A.if (a%3==0) a=1; else a=0; B.if (a%3!=0) a=0; else a=1; C.if (a%3) a=0; else a=1; D.if (a%3) a=1; else a=0; 50804以下程序运行的结果是( B )。 void main() {int x,y,z,a; x=y=z=1;a=15;

if(!x) a--; else if(y) ; if(z) a=3; else a+=4; printf(\}

A.15 B.3 C.19 D.14

50805若已定义 int a=1,b=2,t=3; 则执行以下程序段后变量a,b,t的值分别为( A )。 if(a

A.a=2,b=1,t=2 B.a=2,b=1,t=1 C.a=2,b=1,t=3 D.a=3,b=1,t=2 50806以下程序段运行后变量k的值为( C )。 int a=3,b=2; int k;

k=(--a==b++)?a:b+1; A.0 B.1 C.2 D.3

50807以下程序的运行结果是( C )。 void main() { int n=9; switch(n--)

{ default: printf(\ case 8:

case 7: printf(\case 6: printf(\case 5: printf(\ } }

A.8 B.7 C.8 9 D.8 7 50808以下程序的运行结果是( C )。

7

void main() { int n=8; switch(n--)

{ default: printf(\

case 8:

case 6: printf(\case 4: printf(\case 2: printf(\ } }

A.8 B.8 6 C.7 D.8 7 50809 以下程序的运行结果是( D )。 void main( ) { int a;

if(a=6) printf(\

else if(a>6) printf(\ else printf(\ A.运行时产生错误信息 B.9 C.8 D.6

50810若有定义:int x=10,y=8,a; 则执行语句a=((--x==y)? x: y);后,变量a的值是( A )。 A.8 B.9 C.10 D.0

50811若有定义: int a=2,b=3,c=1; 则以下程序段的运行结果是( D )。 if(a>b)

if(a>c) printf(\else printf(\printf(\

A.3 1 B.2 1 C.3 D.1

50812 以下条件语句中(其中s1和s2分别表示C语言的语句),( D )与其他三条语句不等价。 A.if(a) s1; else s2; B.if(a == 0) s2; else s1; C.if(a != 0) s1; else s2; D.if(a == 0) s1; else s2; 50900 下列程序段中,非死循环的是( A )。

A.int i=100; while(1) { i=i0+1; if(i>=100) break; } B.int k=0; do{ ++k; }while(k>=0); C.int s=10; while(++s%2+s%2) s++; D.for(;;)

50901若已定义 int a; 不会产生死循环的语句是( C )。 A.for( ; ;a+= 2); B.for(a=10; ;a--); C.for( ;(a=getchar())!= '\\n'; ); D.while(-1) {a++;} 50902在循环语句的循环体中,break语句的作用是( B )。

A.继续执行break语句之后的循环体各语句 B.提前结束循环,接着执行该循环后续的语句 C.结束本次循环 D.暂停程序的运行

50903以下程序段运行后,循环体中的 n+=3; 语句运行的次数为( A )。 int i,j,n=0; for(i=1;i<=3;i++) {for(j=1;j<=i;j++)

8