1、第四部分 选择结构第四部分 选择结构一、选择题(1)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是A)k%2B)k%2=1C)(k%2)!=0D)!k%2=1(2)设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是A)k=k=kB)-k+C)k%int(f)D)k=f=m(3)设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是A)(!a=1)&(!b=0)B)(ab)& !c|1C)a & bD)a|(b+b)&(c-a)(4)设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句if (
2、ab) if(c=d) y=0; else y=1;该语句所表示的含义是(5)有以下程序main() int a,b,d=25; a=d/10%9; b=a&(-1); printf(%d,%dn,a,b);程序运行后的输出结果是A)6,1B)2,1C)6,0D)2,0(6)有以下程序main() int i=1,j=2,k=3; if(i+=1&(+j=3|k+=3) printf(%d %d %dn,i,j,k);程序运行后的输出结果是A)1 2 3B)2 3 4C)2 2 3D)2 3 3(7)若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|10的是A) abs(x-y)-
3、10& x-y10C) (x-y)10 D) (x-y)*(x-y)b) if(bc) printf(%d,d+ +1); else printf(%d,+d +1); printf(%dn,d);程序运行后的输出结果是A) 2 B) 3 C) 43 D) 44(9)下列条件语句中,功能与其他语句不同的是A) if(a) printf(%dn,x); else printf(%dn,y);B) if(a=0) printf(%dn,y); else printf(%dn,x);C) if (a!=0) printf(%dn,x); else printf(%dn,y);D) if(a=0) p
4、rintf(%dn,x); else printf(%dn,y);(10)以下4个选项中,不能看作一条语句的是A) ; B) a=0,b=0,c=0;C) if(a0); D) if(b=0) m=1;n=2;(11)以下程序段中与语句k=ab?(bc?1:0):0;功能等价的是A) if(aB) &(bC) ) k=1; B) if(aB) |(bC) ) k=1else k=0;C) if(aB) k=1; else if(bC) k=1; else k=0;(12) 有以下程序main()int a=1,b=2,m=0,n=0,k;k=(n=ba)|(m=ab);printf(%d,%d
5、n,k,m);程序运行后的输出结果是A) 0,0 B) 0,1 C) 1,0D) 1,1(13) 有定义语句:int a=1,b=2,c=3,x; 则以下选项中各程序段执行后,x的值不为3的是A) if (ca) x=1; B) if (a3) x=3;else if (ba) x=2; else if (a2) x=2;else x=3; else x=1;C) if (a3) x=3; D) if (ab) x=b;if (a2) x=2; if (bc) x=c;if (a1) x=1; if (cbc)printf(%dn,d);else if(c-1=d)=1)printf(%dn,
6、d+1);elseprintf(%dn,d+2)执行后输出结果是A) 2B) 3C) 4D) 编译时有错,无结果(16) 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 & y+z/2的值是A) B) C) D) (17) 有一函数, ,以下程序段中不能根据值正确计算出值的是A) if(x0) y=1; B) y=0;else if(x=0) y=0;if(x0) y=1;else y=-1;else if(x=0)if(x=0);if(x0) y=1;if(x0) y=1;else y=0;else y=-1; else y=-1;(18) 有以下程序main()
7、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(“%dn”,m);程序运行后的输出结果是A) 1B) 2C) 3D) 4(19) 以下程序的输出结果是main() int a=5,b=4,c=6,d;printf(%dn,d=ab?(ac?a:c):(b);A) 5B) 4 C) 6 D) 不确定(20) 以下程序的输出结果是main() int a=4,b=5,c=0,d;d=!a&!b|!c;printf(%dn,d);A) 1 B)
8、0 C) 非0的数 D) -1(21) 设 a、b、C、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式 (m=ab)&(n=cd)运算后,n的值位为A) 0 B) 1C)2D) 3(22) 阅读以下程序:main() int x;scanf(“%d”,&x);if(x-5) printf(“%d”x);else printf(“%d”x+);程序运行后,如果从键盘上输人5,则输出结果是A)3B) 4 C) 5D) 6(23) 假定w、x、y、z、m均为int型变量,有如下程序段:w=1; x=2; y=3; z=4;m=(wx)?w; x; m=
9、(my)?m;y; m=(mz)?m; z;则该程序运行后,m的值是A) 4B) 3C) 2D) 2(24) 设x、y、t均为int型变量,则执行语句:x=y=3;t=+x|+y;后,y的值为A) 不定值B) 4C) 3 D) 1(25) 若执行以下程序时从键盘上输入9,则输出结果是A) 11 B) 10C) 9 D) 8Main0 int n; scanf(“%d”,&n); if(n+=10 or a=0|a=10 &a=10a=0(28) 有如下程序main0 int x=1,a=0,b=0;switch(x)case 0: b+;case 1: a+case 2: a+;b+print
10、f(“a=%d,b=%dn”,a,b);该程序的输出结果是A) a=2,b=1B) a=1,b=1C) a=1,b=0D) a=2,b=2(29) 有如下程序 main0 float x=2.0,y;if(x0.0) y=0.0;else if(x10.0) y=1.0/x;else y=1.0;printf(“%fn”,y);该程序的输出结果是A) 0.000000B) 0.250000C) 0.500000D) 1.000000(30) 有如下程序main0 int a=2,b=-1,c=2;if(ab)if(b0?1:x0) y=1; B) if(x) else if(x0)y=1; e
11、lse y=0; else if(x=0) if(x0)y=1; if(x0)y=1; else if(x=0)y=0; else y=-1; else y=-1;(33) 语句:printf(%d,(a=2)&(b= -2);的输出结果是A) 无输出B) 结果不确定C) -1D) 1(34) 当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是A) c=b=a;B) (a=c) (b=c) ;C) (a=c) &(b=c);C) a=c=b;(35) 能正确表示a和b同时为正或同时为负的逻辑表达式是A) (a=0b=0)&(a0b=0&b=0)&(a0&b0)&(a+b0(36)
12、以下程序的输出结果是A) -1 1 B) 0 1 C) 1 0 D) 0 0 main( ) int a= -1,b=1,k; if(+a0)& ! (b- 5) printf(%dn,m); esle printf(%dn,m- -); (38) 当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为A) 1 B) 2 C) 3 D) 6 if(ab) if(cd) x=1; else if(ac) if(bd) x=2; else x=3; else x=6; else x=7;(39) 表示关系x=y=z的c语言表达式为A) (X=Y)&(Y=Z) B) (X=Y)AND(Y=
13、Z)C) (X=Y=Z) D) (X=Y)&(Y15D)!(a=15)(42) 若有以下定义:float x;int a,b;则正确的switch 语句是A)switch(x) B)switch(x) case1.0:printf(*n); case1,2:printf(*n);case2.0:printf(*n); case3:printf(*n); C)switch (a+b) D)switch (a+b); case 1:printf(n); case 1:printf(.*n);case 1+2:printf(*n); case 2:printf(*n); (43) 假定所有变量均已正
14、确说明,下列程序段运行后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(44) 在以下一组运算符中,优先级最高的运算符是A)=10 or a=10a=10a=10 a=y)&(y=z)B(x=y)AND(y=z)C)(x=y=z) D)(x=y)&(y=z)(49) 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是main( ) int x;scanf(%d,&x);if(x + + 5) printf(%d,x);else printf(%dn,x - -); A) 7和5
15、 B) 6和3 C) 7和4 D) 6和4(50) 以下程序的输出结果是main( ) int a=-1,b=4,k;k=(+ +a0)&!(b - -=0);printf(%d%d%dn,k,a,b); A) 104 B) 103 C) 003 D) 004(51) 下面的程序A) 有语法错误不能通过编译B) 输出* * * *。C) 可以通过编译,但是不能通过连接,因而不能运行。D) 输出# # # #。main() int x=3,y=0,z=0;if(x=y+z)printf(* * * *);else printf(# # # #);(52) 若执行下面的程序时从键盘上输入5,则输出是A) 7 B) 6 C) 5 D) 4main() int x;scanf(%d,&x);if(x+5) printf(%dn,x);else printf(%dn,x-);(53) 下面程序的输出是A) 0 0 3 B) 0 1 2C) 1 0 3 D) 1 1 2main() int a=-1, b=4,k;k=(a+=0)&(!(b-=0);printf(%d %d %dn,k,a,b);(54) 下面的程序片段所表示的数
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1