第五章 选择结构程序设计
一 单项选择题
1.逻辑运算符两侧运算对象的数据类型是( )。 A) 只能是0或1
B) 只能是0或非0正数 C) 只能是整型或字符型数据 D) 可以是任何类型的数据
2.已知x=43, ch='A', y=0;则表达式(x>=y&&ch<'B'&&!y)的值是( )。 A) 0 B) 语法错 C) 1 D) “假” 3.已知 int x=10, y=20, z=30; 以下语句执行后x, y, z的值是( )。 if(x>y)
z=x;x=y;y=z;
A) x=10,y=20,z=30 B) x=20,y=30,z=30 C) x=20,y=30,z=10 D) x=20,y=30,z=20 4.执行下列语句后a的值为( ),b的值为( )。
int a, b, c; a=b=c=1;
++a|| ++b && ++c;
A) 错误 1 B) 2 2 C) 2 1 D) 1 1
5.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是( )。 A) A%2==1 B) !(A%2==0) C) !(A%2) D) A%2 8.以下不正确的if语句形式是( )。
A) if(x>y&&x!=y); B) if(x==y) x+=y;
C) if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y) D) if(x main() { int a=5,b=0,c=0; if(a=b+c) printf(“***\\n”); else printf(“$$$\\n”); } 以上程序( )。 A) 有语法错不能通过编译 第1页 共4页 B) 可以通过编译但不能通过连接 C) 输出*** D) 输出$$$ 10.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( )。 if(a if(c if(a if(b A) 1 B) 2 C) 3 D) 6 11.以下程序的输出结果是( )。 main() {int a=100,x=10,y=20,ok1=5,ok2=0; if(x if(ok2) a=10; a=-1; printf(“%d\\n”,a); } A) 1 B) 10 C) -1 D) 值不确定 14.若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是(A) (exp==0) B) (exp!=0) C) (exp==1) D) (exp!=1) 16.语句:printf(\,(a=2)&&(b= -2));的输出结果是( )。 A) 无输出 B) 结果不确定 C) -1 D) 1 21.以下程序的输出结果是( )。 A)-1 1 B)0 1 C)1 0 D)0 0 main( ) { int a=-1,b=1,k; if((++a<0)&&!(b--<=0)) printf(\,a,b); else printf(\,b,a); } 23.阅读以下程序: main() 第2页 共4页 )。 {int x; scanf(\ if(x--<5) printf(\ else printf(\} 程序运行后,如果从键盘上输人5,则输出结果是( )。 A)3 B) 4 C) 5 D) 6 26.有如下程序 main( ) { int a=2,b=-1,c=2; if(a)if(b<0) c=0; else c++; printf(“%d\\n”,c); } 该程序的输出结果是( )。 A) 0 B) 1 C) 2 D) 3 27.若有定义: float w; int a, b; 则合法的switch语句是( )。 A) switch(w) B switch(x) {case 1.0: printf(\ case 2.0: printf(\ } } C) switch(b) D) switch(a+b); {case 1: printf(\ default: printf(\ case 1+2: printf(\ } } 28.若a、b、c1、c2、x、y均是整型变量,正确的switch语句是( )。 A) swich(a+b); B) switch(a*a+b*b) {case 1:y=a+b; break; {case 3: case 0:y=a-b; break; case 1:y=a+b;break; } case 3:y=b-a;break; } C) switch a D) switch(a-b) {case c1 :y=a-b; break; {default:y=a*b;break; case c2: x=a*d; break; case 3:case 4:x=a+b;break; default:x=a+b; case 10:case 11:y=a-b;break; } } 44.以下程序的输出结果是( )。 main() { int a= -1, b=4, k; 第3页 共4页 k=(++a<0)&&!(b--<=0); printf(“%d%d%d\\n”, k, a, b); } A) 104 B) 103 C) 003 D) 004 46.假定所有变量均已正确说明,下列程序段运行后x的值是( )。 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 第4页 共4页