第二部分 选择结构 ·11·
C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s) 11.若希望当x的值为奇数时,表达式的值为“真”,x的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是()。
A.x%2==1 B.!(x%2==0) C.!(x%2) D.x%2
12.已知 x=45, y=’a’, z=0; 则表达式(x>=z && y<’z’ || !y)的值是()。 A.0 B.语法错 C.1 D.“假” 13.指出下列程序段所表示的逻辑关系是()。
if(a
x=10; } else
x=-10;
?10A.x????10?10B.x????10?10C.x????10?10D.x????10a?b且c?da?b且c?da?b且c?da?ba?b且c?da?b且c?da?b且c?dc?d
x?0??1?x?0 ,14.有一函数:y??0以下程序段中不能根据x值正确计算出y值的是()。
?1x?0?A.if (x>0) y=1;
else if (x==0) y=0; else y= -1; B.y=0;
if (x>0) y=1;
else if (x<0) y= -1; C.y=0; if (x>=0)
if(x>0) y=1; else y= -1; D.if (x>=0) if (x>0) y=1; else y=0; else y= -1;
15.执行以下语句后,y 的值为()。
int x,y,z; x=y=z=0;
第二部分 选择结构 ·12·
++x || ++y && ++z;
A.0 B.1 C.2 D.不确定值 16.已知int a=1,b=2,c=3; 以下语句执行后a,b,c的值是()。
if(a>b)
c=a; a=b; b=c;
A.a=1, b=2, c=3 B.a=2, b=3, c=3 C.a=2, b=3, c=1 D.a=2, b=3, c=2 17.请阅读以下程序:该程序()。
#include ”stdio.h” main()
{ int x=-10, y=5, z=0;
if (x=y+z) printf(”***\\n” ); else printf(”$$$\\n”); }
A.有语法错不能通过编译 B.可以通过编译但不能通过连接 C.输出*** D.输出$$$
18.以下程序的运行结果是()。
#include ”stdio.h” main() { int a=1;
if (a++>1) printf(”%d\\n”, a); else printf(”%d\\n”, a--); }
A.0 B.1 C.2 D.3 19.当a=1,b=2,c=4,d=3时,执行完下面一段程序后x的值是()。 if (a
if (c if (a if (b A.1 B.2 C.3 D.4 20.执行以下程序段后,变量x,y,z的值分别为()。 int a=1,b=0, x, y, z; x=(--a==b++)?--a:++b; y=a++; z=b; A.x=0,y=0,z=0 B.x= -1,y= -1,z= 1 C.x=0,y=1,z=0 D.x= -1,y= 2, z= 1 21.若a、b、c、d、w均为int类型变量,则执行下面语句后的w值是()。 a=1;b=2;c=3;d=4; w=(a 第二部分 选择结构 ·13· A.1 B.2 C.3 D.4 22.以下程序的输出结果是()。 #include ”stdio.h” main() { int a=5, b=4, c=6, d; printf(”%d\\n”, d=a>b? a>c?a:c :b); } A.5 B.4 C.6 D.不确定 23.若a、b、c1、c2、x、y均为整型变量,正确的switch 语句是()。 A.switch (a+b); B.switch a { case 1: y=a+b; break; { case c1: y=a-b; break; case 0: y=a-b; case c2: x=a*d; break; break; default: x=a+b; } } C.switch (a*a+b*b) D.switch(a-b) { case 3: { default: y=a*b; break; case 1: y=a+b; break; case 3: x=a+b; break; case 3: y=b-a; break; case 10: case 11: y=a-b; break; } } 24.执行下列程序,输入为3的数出结果是()。 #include ”stdio.h” main() { int k; scanf(”%d”, &k); switch(k) { case 1: printf(”%d\\n”, k++); case 2: printf(”%d\\n”, k++); case 3: printf(”%d\\n”, k++); case 4: printf(”%d\\n”, k++); break; default: printf(”Full!\\n”); } } A.3 B.4 C.3 D.4 5 4 25.假定等级和分数有以下对应关系: 等级:A 分数:85——100 等级:B 分数:60——84 等级:C 分数:60以下 对于等级grade输出相应的分数区间,能够完成该功能的程序段是()。 A.switch (grade) { case ’A’ :printf(”85——100\\n”); case ’B’ :printf(”60——84\\n”); case ’C’ :printf(”<60\\n”); default: printf(”grade is error!\\n”); } 第二部分 选择结构 ·14· B.switch (grade) { case ’A’ :printf(”85——100\\n”); break; case ’B’ :printf(”60——84\\n”); case ’C’ :printf(”<60\\n”); default: printf(”grade is error!\\n”); } C.switch (grade) { case ’A’ :printf(”85——100\\n”); break; case ’B’ :printf(”60——84\\n”); break; case ’C’ :printf(”<60\\n”); default: printf(”grade is error!\\n”); } D.switch (grade) { case ’C’ :printf(”<60\\n”); break; case ’B’ :printf(”60——84\\n”); break; default: printf(”grade is error!\\n”); break; case ’A’ :printf(”85——100\\n”); } 26.有如下程序,写出该执行结果()。 #include ”stdio.h” main() { float x=2.0, y; if (x<0.0) y=0.0; else if (x<10.0) y=1.0/x; else y=1.0; printf(”%f\\n”,y); } A.0.000000 B.0.250000 C.0.500000 27.以下程序的运行结果是()。 #include ”stdio.h” main() { int a=2,b= -1,c=2; if (a printf(”%d\\n”,c); } A.0 B.1 C.2 28.运行以下程序后,如从键盘上输入china#,则输出为()。D.1.000000 D.3 第二部分 选择结构 ·15· #include ”stdio.h” main() { int v1=0,v2=0; char ch; while ( (ch=getchar()) != ’# ’) switch (ch) { case ’a’: case ’h’: default: v1++; case ’o’: v2++; } printf(”%d,%d\\n”, v1,v2); } A.2,0 B.5,0 C.5,5 29.有以下程序,若输入为字符s,则程序运行结果为()。 #include ”stdio.h” main() { char ch; ch=getchar(); switch (ch) { case ’a’: printf(”a=%c\\n”,ch); default: printf(”end!\\n”); case ’b’: printf(”b=%c\\n”,ch); case ’c’: printf(”c=%c\\n”,ch); } } A.end! B.end! C.有语法错误 b=s c=s 30.有以下程序,程序运行后的输出结果是()。 #include ”stdio.h” main() { int a=15, b=21, m=0; switch (a%3) { case 0: m++; break; case 1: m++; switch (b%2) { default: m++; case 0: m++; break; } } printf(”%d\\n”,m); } A.1 B.2 C.3 D.2,5 D.a=s end! D.4