第4章 选择结构程序设计
注:选择结构的考点,最重要的有两个,一个是逻辑表达式的值,另一个是分支界限。弄明白这两个知识点,就能够以不变应万变了。 一、单项选择题
1. 在C语言中,能代表逻辑值\真\的是 。
A) true B)大于0的数 C)非0整数 D)非0的数 2. 表示关系x<=y<=z的c语言表达式为 。
A) (x<=y)&&(y<=z) B) (x<=y)AND(y<=z) C) (x<=y<=z) D) (x<=y)&(y<=z) 3. 能正确表示逻辑关系:“a≥10或a≤0” 的C语言表达式是 。
A) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10 &&a<=0 D) a>=10‖a<=0 4、判断char型变量c1是否为大写字母的表达式为 。
A)?A?<=c1<=?Z? B)(c1>=?A?) & (c1<=?Z?) C)(?A?<=c1)AND (?Z?>=c1) D)(c1>=?A?)&& (c1<=??Z?)
5. 有定义char c; c=getchar(); 判断字符变量c为大写字母的正确表达式为 。 A) ?A?=
7. 设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是 。 A)1010&&a<15 D)!(a<=10)&&!(a>=15)
8. 为表示逻辑表达式79 A)( X>79 )&&( X<90 ) B) ( X>79 )!=( X<90 ) C) 79 9. 在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其它三个语句不等价,它是 。 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; 10. 假定所有变量均已正确定义,则下列程序段运行后y的值是 。 int a=0,y=10; if(a=0) y--; else if(a>0) y++; else y+=y; A)20 B)11 C)9 D)0 解析:此类题目可以自行编写下述测试程序进行调试验证。 #include ...... printf(\ } 11. 假定所有变量均已正确定义,则下列程序段运行后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 12. C语言对嵌套if语句的规定是:else语句总是与 配对。 A) 其之前最近的if B) 第一个if C) 缩进位置相同的if D) 其之前最近的且尚未配对的if 13. 在C语言语句中,用来决定分支流程的表达式是 。 A)可用任意表达式 B)只能用逻辑表达式或关系表达式 C)只能用逻辑表达式 D)只能用关系表达式 14. C语言中用 表示逻辑“真”。 A) true B) 整数值1 C)非零整数值 D) false 15. 若k是int型变量,且有下面的程序段, 输出结果是 。 int k; k= -3; if (k<=0) printf(“####”) ; else printf(“&&&&”); A)#### B)&&&& C)####&&&& D)有语法错误,无输出结果 16. main() { int x=0,a=0,b=0; switch(x){ case 0: b++; case 1: a++; case 2: a++;b++;} printf(“a=%d,b=%d\\n”,a,b);} 该程序的输出结果是 。 A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 17. 以下程序的输出结果是:( ) main() { int x=-10,y= 1,z=1; if(x A) 0 B) 1 C) 2 D) 3 18. 以下程序段的输出结果是 。 int a=10,b=50,c=30 ; if(a>b) a=b ; b=c ; c=a ; printf(\ A) a=10 b=50 c=10 B) a=10 b=30 c=10 C) a=50 b=30 c=10 D) a=50 b=30 c=50 19. 若int i=10; 执行下列程序后,变量i的正确结果是 。 switch ( i ) { case 9: i+=1; case 10: i+=1; case 11: i+=1; default : i+=1; } A)13 B)12 C)11 D)10 二、阅读程序,写出运行结果 1. #include { int a=1,b=3,c=5; if (c==a+b) printf(\else printf(\} 运行结果为: no 3. #include { int x=2,y= -1,z=5; if(x printf(“%d\\n”,z); } 运行结果为: 5 2. #include { int a=12, b= -34, c=56, min; min=a; if(min>b) min=b; if(min>c) min=c; printf(\} 运行结果为: min=-34 4. #include {int a=10,b=50,c=30; if(a>b) a=b; b=c; c=a; printf(\} 运行结果为:a=10 b=30 c=10 5. #include { float a,b,c,t; a=3;b=7;c=1; if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(b>c) {t=b;b=c;c=t;} printf(\} 运行结果为: 1.00,3.00,7.00 7. #include { char c=?A?; if ((?0?<=c ) &&(c<=?9?)) printf(“YES”); else printf(“NO”); } 运行结果为: NO 9. #include { int a=0,b=1,c=0,d=20; if(a) d=d-10; else if(!b) if(!c) d=15; else d=25; printf(\} 运行结果为: d=20 6. #include float num=3.12,x; if(num<4) x=2*num*a; printf(\} 运行结果为: result is 12.480000 8. #include { float c=3.0 , d=4.0; if ( c>d ) c=5.0; else if ( c==d ) c=6.0; else c=7.0; printf ( “%.1f\\n”,c ) ; } 运行结果为: 7.0 10. #include { int a=2,b=3,c=1; if (a>b) if (a>c) printf (“%d\\n”,a); else printf (“%d\\n”,c); printf (“over!\\n”); } 运行结果为: over! 11. #include 若键入-9,则运行结果为: -9 is a negative odd