《第四章--选择习题集.doc》由会员分享,可在线阅读,更多相关《第四章--选择习题集.doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流第四章-选择习题集【精品文档】第 14 页第四章 选择结构程序设计一、选择题1下列运算符中优先级最高的是 。(0级) A) B) + C) & D)!=2以下关于运算符优先级的描述中,正确的是 。(0级) A)!(逻辑非)算术运算关系运算&(逻辑与)|(逻辑或)赋值运算B)&(逻辑与)算术运算关系运算赋值运算C)关系运算算术运算&(逻辑与)|(逻辑或)赋值运算D)赋值运算算术运算关系运算&(逻辑与)|(逻辑或)3逻辑运算符的运算对象的数据类型 。(0级)A)只能是0或1 B)只能是.T.或.F.C)只能是整型或字符型 D)任何类型的数据4能正确表示x的取
2、值范围在0,100和-10,-5内的表达式是 。(1级)A)(x=-5)&(x=100)B)(x=-10)&(x=0)&(x=-10)&(x=0)&(x=100)D)(x=-5)&(x=100)5以下程序的运行结果是 。(1级)main( ) int c,x,y; x=1; y=1; c=0; c=x+|y+; printf(“n%d%d%dn”,x,y,c);A)110 B)211 C)011 D)0016以下程序的运行结果是 。(1级)main( ) int c,x,y; x=0; y=0; c=0; c=x+&y+; printf(“n%d%d%dn”,x,y,c);A)100 B)21
3、1 C)011 D)0017判断字符型变量ch为大写字母的表达式是 。(1级)A)A=ch=A)&(ch=A)&(ch=A)AND(ch=Z)8判断字符型变量ch为小写字母的表达式是 。(1级)A)a=ch=a)&(ch=a)|(ch=a)&(ch0) printf(”%f”,x); x=x+1; printf(”%f”,x); else printf(”%f”,-x); else printf(”%f”,-x);C)if(x0); D)if(x0) x=x+1; printf(”%f”,x); x=x+1; printf(”%f”,x) else printf(”%f”,-x); else
4、printf(”%f”,-x);10分析以下程序:main( ) int x=5,a=0,b=0; if(x=a+b) printf(“* *n”); else printf(“# #n”);以上程序 。(1级)A)有语法错,不能通过编译 B)通过编译,但不能连接C)输出* * D)输出# #11两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 。(1级)main( ) int x; scanf(“%d”,&x); if(x+5) printf(“%d”,x); else printf(“%dn”,x-);A)7和5 B)6和3 C)7和4 D)6和412写出下面程序的执行结果 。
5、(1级)main( )int x,y=1; if(y!=0) x=5; printf(“%dt”,x); if(y= =0) x=3;else x=5;printf(“%dtn”,x);A)1 3 B)1 5 C)5 3 D)5 513写出下面程序的执行结果 。(2级)main()int x=1,y=1,z=0;if(z0) x=3;else x=5;printf(%dt,x);if(z=y0) x=3;else if(y= =0 ) x=5;else x=7;printf(%dt,x);printf(%dt,z);A)1 7 0 B)3 7 0 C)5 5 0 D)1 5 114假定所有变量
6、均已正确说明,下列程序段运行后x的值是 。(1级)a=b=c=0;x=35;if(!a) x=-1;else if(b);if(c) x=3;else x=4;A)34 B)4 C)35 D)315写出下面程序的运行结果是 。(2级)main()int x,y=1,z=0;if(y!=0) x=5;printf(x+%dt,x);if(y= =0) x=3;else x=5;printf(x=%dtn,x);x=1;if(z0)x=3;else x=5;printf(x=%dtn,x);if(z=y0)x=5;else x=7;printf(x=%dt,x);printf(%dtn,z);if
7、(x=y=z)x=3;printf(x=%dt,x);printf(z=%dtn,z);A)x=5 x=5 B)x=5 x=5 x=1 x=1 x=7 z=0 x=5 z=0 x=3 z=1 x=3 z=0C)x=5 x=5 D)x+5 x=5 x=5 x=1 x=7 z=0 x=7 z=0 x=3 z=1 x=0 z=016若有以下函数关系x0 y=xx=0 y=x+1下面程序段能正确表示以上关系的是 。(2级)A)y=2x; B)y=2x;if(x!=0) if(x0)y=x; if(x= =0) y=x+1;else y=x+1; else y=x;C)if(x=0) (D)y=x+1;
8、if(x0) y=x; if(x=0)else y=x+1; if(x0) y=2x;else y=2x; else y=x;17若有以下变量定义:float x; int a,b;则正确的switch语句是 。(1级) A)switch(x) case 1.0:printf(*n);case 2.0:printf(* *n); B)switch(x) case 1,2:printf(*n);case 3:printf(* *n);C)switch(a+b) case 1:printf(*n);case 2*a:printf(* *n);D)switch(a+b) case 1:printf(
9、*n);case 1+2:printf(* *n);18. 以下关于运算符优先顺序的描述正确的是 。(0203第一学期试题)A)关系运算符算术运算符赋值运算符逻辑运算符B)逻辑运算符关系运算符算术运算符赋值运算符C)赋值运算符逻辑运算符关系运算符算术运算符D)算术运算符关系运算符赋值运算符=10或a=10 or a=10 | a=10 & a=10 | | a y & x != y ) ;B)if ( x = = y ) x + = y ;C)if ( x != y ) scanf ( “%d”, &x) else scanf ( “%d”, &y);D)if ( x y ) x+; y+;2
10、1. 当 a = 1, b = 3 , c = 5, d = 4 时, 执行完下面程序段后 x 的值为 。(0203第一学期试题)if ( a b ) if ( c d ) x = 1 ; else if ( a c ) if ( b b)printf(“%f”,a); B)if(ab)printf(“%f”,a);else printf(“%f”,b);C)if(ab)printf(“%f”,a) D)if(ab)printf(“%f”,b);else printf(“%f”,b); else printf(“%f”,a);23. 能表示整数x符合下面两个条件的语句是 。(0102第二学期试
11、题)(1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除.A)(x%4=0&x%100!=0)|x%400=0B)(x%4=0|x%100!=0)&x%400=0C)(x%4=0&x%400!=0)|x%100=0D)(x%100=0|x%4!=0)&x%400=024. 设有如下定义:char ch=z,则执行下面语句后变量ch是值为: 。(03试题)ch=(A=ch&chy|xz) z=x; x=y; y=z;A)x=50, y=80, z=80 B)x=50, y=30, z=30C)x=30, y=50, z=80 D)x=80, y=30, z=5027. C
12、语言中,要求运算对象必须是整型的运算符是: 。(往届试题)A) B)+ C)% D)!=28. 29. 以下程序的输出结果是 。(0405第二学期试题)main( ) int x=2,y=-1,z=2; if (xy) if(y0) z=0; else z+=1; printf(“%dn”,z); A)3 B)2 C)1 D)030. 设a、b和c是int型变量,且a=2,b=4,c=6,则下面表达式中值为0的是: 。(往届试题)A)a+ b B)a=bC)a|b+c&b-c D)!( (ab) &!c | 1 )31. 在C的if语句中,可用作判断的表达式是: 。(往届试题)A)关系表达式
13、B)逻辑表达式C)算术表达式 D)任意表达式32. 下面能正确表示变量a在区间0,5或(6,10)内的表达式为: 。(往届试题)A)0=a | a=5 |6 a | a10 B)0=a&a=5 | 6a&a10C)(0=a|a=5)&(6a|a10)D)0=a&a=5&6a&a 0 )printf(“ %f ”, x )else printf(“%f”, - x );B)if ( x 0 ) x = x + y ; printf (“%f ”, x ) ; else printf ( “%f ”, - x ) ;C)if ( x 0 ) x = x + y ; printf (“%f ”, x
14、 ) ; ;else printf ( “%f ”, - x ) ;D)if ( x 0 ) x = x + y ; printf (“%f ”, x ) else printf ( “%f ”, - x ) ;35为了表示关系x=y=z,应使用C语言表达式 。(1级) A)(x=y)&(y=z) B)(x=y)AND(y=z) C)(x=y=z) D)(x=y)&(y=z)36若欲表示在if后a不等于0的关系,则能够正确表示这一关系的表达式为 。(1级) A)a0 B)!a C)a=0 D)a37下面程序的输出结果是 。(1级)main()int x,y,z; x=y=1; z=x+-1;
15、printf(“%d,%dt”,x,z); z+=-x+(+y|+z); printf(%d,%d”,x,z); A)2,0 3,-1B)2,1 3,0 C)2,0 2,1D)2,1 0,138下面程序的输出结果是 。(1级)main()int x=40,y=4,z=4; x=y= =z; printf(“%d”,x); x=x= =(y-z); printf(%d”,x); A)4 0B)4 1C)1 1D)1 039.若x=3,y=z=4,则下列表达式的值分别为 。(1级) (1)(z=y=x)?1:0 (2)z=y& y=x A)0 1 B)1 1 C)0 0 D)1 040.若x=3,
16、y=z=4,则下列表达式的值分别为 。(1级)(1)(z=y=x)?1:0(2)y+=z,x*=y A)0 24 B)1 8 C)0 8 D)1 1241在以下一组运算符中,优先级最高的运算符是 。(1级)A)= B)= C)% D)&42.以下程序的输出结果是 。(1级)main()int a=-1,b=4,k;k=(+a=0)&!(b-=0);printf(%d %d %d,k,a,b);A)1 0 4 B)0 0 4 C)1 0 3 D)0 0 3二、填空题1在C语言中,对于if语句,else子句与if子句的配对约定是 。(0级)2阅读下面程序,写出它的功能。(1级)3以下两条if语句可
17、合并成一条if语句为 。(1级)if(ab) printf(* * * * y=%dn,y);else printf(# # # # x=%dn,x);4以下程序的功能是计算一元二次方程ax2+bx+c=0的根,补足程序中空缺的语句。(2级)#include main( )float a,b,c,_abs,_derta,_doublea,part1,part2;printf(enter a,b,c:);scanf(%f%f%f,&a,&b,&c);if( (1) ) if( (2) ) printf(no answer due to input errorn);else printf(the
18、single root is %fn,-c/b);else_derta=b*b-4*a*c; _doublea=2*a; part1=-b/(2*a); _abs=abs(_derta); part2=sqrt(_abs)/_doublea;if( (3) )printf(complex root nreal part=%f image part=%fn,part1,part2);else printf(real rootsn root1=%f root2=%fn,part1+part2,part1-part2);5设有程序片段如下:switch(class)case A:printf(GRE
19、AT!n);case B:printf(GOOD!n);case C:printf(OK! n);case D:printf(NO!n);default:printf(ERROR!n);若class的值为C,则输出结果是 。(1级)6以下程序段的运行结果是 。(1级)int x=1,y=0;switch(x)case 1: switch(y) case 0:printf(x=1 y=0n);break; case 1:printf(y=1n);break;case 2:printf(x=2n);7根据以下if语句写出与其功能相同的switch语句(x的值在0100之间)。(1级)if语句:if
20、(x60) m=1;else if(x70) m=2; else if(x80) m=3; else if(x90) m=4; else if(x100) m=5;switch语句:switch( (1) ) (2) m=1;break;case 6:m=2;break; case 7:m=3;break;case 8:m=4;break; (3) m=5;8. 输入3个实数 a, b, c要求按从大到小的顺序输出三数。(0102第二学期试题)main( ) float a,b,c,t; scanf(“%f,%f,%f”,&a,&b,&c); if (ab) t=a; _(1)_ b=t; i
21、f(_(2)_) t=a; a=c; c=t; if(b=a&chb ) c = 1 ;else if ( a = b ) c = 0 ; else c = -1 ;printf ( “%dn”, c ) ;11. 以下程序的运行结果是:_。(0405第二学期试题)main( ) int x;x=5;if (+x5) printf(“x=%d”,x);else printf(“x=%d”,x-); 12在C语言中提供的条件运算符?:的功能是 .(1级)13条件表达式a?b:c,其中a,b,c是三个运算分量.当运算分量a的值为真,则 ,否则 . (1级)14在C语言中的逻辑运算符的优先级是 高于
22、 高于 .(1级)15main()int a,b,c;a=b=c=1;a+=b;b+=c;c+=a;printf(1)%dn,ab?a:b);printf(2)%dn,ac?a-;c+);(a=b=c)?printf(AA);printf(CC);printf(n a=%d,b=%d,c=%dn,a,b,c);运行结果为(1) 。 (2) 。(1级)16用C语言描述下列命题(1级)(1)a小于b或小于c ,(2)a和b都大于c (3)a或b中有一个小于c (4)a是奇数 。17main()int x=1,y=1,z=1;y=y+z;x=x+y;printf(%d,xy?y:x);printf(
23、%d,x=y&yx);运行结果为 。(1级)19若x=3,y=2,z=1,求下列表达式的值(1)xy?y:x(2)xy?x+:y+(3)z+=xy?x+:y+表达式的值分别是(1) ;(2) ;(3) 。(1级)20表示条件:10100或x0的C语言表达式是 。(1级)21.分析下列程序main()printf(%d,14&47);printf(%d,14&74);printf(%d,(25);printf(%d,!(13)|(25);printf(%d,!(4=6)&(3=7);程序的输出结果是 。(1级)三、编程题1编写一个程序,要求有键盘输入三个数,计算以这三个数为边长的三角形的面积。(
24、1级)2输入圆的的半径r和一个整型数k,当k=1时,计算圆的面积;但k=2时,计算圆的周长,当k=3时,既要求求圆的周长也要求出圆的面积。编程实现以上功能。(1级)3.编写程序,判断某一年是否是闰年。(1级)4. 有一函数,其函数关系如下,试编程求对应于每一自变量的函数值。(03试题) x2 (x0) y = -0.5x+10 (0x10) x- (x10)5. 编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为A;8089分为 B;7079分为C;6069分为D;60分以下为 E。(往届试题)6. 试编程完成如下功能:输入一个不多于4位的整数,求出它是几位数,并逆序输
25、出各位数字。(往届试题)第四章 答案一、 选择题15 B A D B B 610 A C D B D1115 A D A B d 1620 C D C D C2125 B C A D A 2630 A C 28 B w3135 D B C B A 3640 D A D A A4143 C c 43二、填空题1.else与它前面最近的一个if配对2. 3.if(a=b) x=1; printf(“ * * * * y=%dn”,y); else y=2; printf(“ # # # # x=%dn”,x); 4.(1) a= =0(2)b= =0 (3 ) _derta05.OK! NO! E
26、RROR!6.x=1 y=0 x=27.(1)x/10 (2)case 0: case 1: case 2: case 3: case 4: case 5: (3)case 9:8.a=b a=A& c=Z ch=ch-3210.-111.x=612.根据条件判定值,从两种选择对象中,选取一个作为整个运算的结果13.整个条件表达式的结果就取自运算分量b的结果,整个条件表达式的结果就取自运算分量c的结果14.!,&,|15. (1)2(2)3CCa=2,b=2,c=416.(1)ab|ac&bc (3)ac|b10&x100|x021.10110三、编程题1.#include #include
27、main( ) float a,b,c,s,s1; printf(“Please enter 3 reals:n”); scanf(“%f%f%f”,&a,&b,&c); if(a+b)c&(a+c)b&(b+c)a)s=(a+b+c)*0.5; s1=s*(s-a)*(s-b)*(s-c); s=sqrt(s1); printf(“nArea of the triangle is %fn”,s);else printf(“It is not triangle!n”);2.#include #define pi 3.14159 main( )int k; float r,c,a; printf
28、(“input r,kn”); scanf(“%f%d”,&r,&k); switch(k) case 1: a=pi*r*r; printf(“area=%fn”,a);break; case 2: c=2*pi*r;printf(“circle=%fn”,c);break; cese 3: a=pi*r*r;c=2*pi*r;printf(“area=%f circle=%fn”,a,c);break;3. main( ) int year,leap; scanf(“%d”,&year); if(year%4= =0)if(year%100= =0) if(year%400= =0) le
29、ap=1; else leap=0; else leap=1;else leap=0;if(leap) printf(“%d is ”,year);else printf(“%d is not ”,year); printf(“ a leap yearn”);4.#include main() float x,y; scanf(“%f”,&x); if(x=0&x=90) printf(“A”); else if(score=80) printf(“B”); else if(score=70) printf(“C”); else if(score=60) printf(“D”); else p
30、rintf(“E”);6.main( ) int num,a,b,c,d,p; scanf(“%d”,&num);if(num999) p=4; else if(num99) p=3; else if(num9) p=2; else if(num0) p=1;printf(“位数是:%dn”,p);a=num/1000;b=num/100%10;c=num/10%10;d=num%10;switch(p)case 4:printf(“%d%d%d%dn”,d,c,b,a); case 3:printf(“%d%d%d n”,d,c,b); case 2:printf(“%d%dn”,d,c); case 1:printf(“%d n”,d);