选择结构程序设计
一、单项选择题
1. 假定所有变量均已正确定义,下列程序段运行后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
2. 假定所有变量均已正确定义,下列程序段运行后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
3. 下面的程序片段所表示的数学函数关系是( )。 y= -1;
if(x! =0)if(x>0) y=1; else y=0; A. B. C. D.
4. 下列各语句序列中,能够且仅输出整型变量a、b中最大值的是( )。 A、if(a>b) printf(”%d\\n”,a); printf(”%d\\n”,b); B、printf(”%d\\n”,b); if(a>b) printf(”%d\\n”,a); C、if(a>b) printf(”%d\\n”,a); else printf(”%d\\n”,b); D、if(a5. 下列各语句序列中,能够将变量u、s中最大值赋值到变量t中的是( )。 A、if(u>s)t=u; t=s; B、t=s; if(u>s)t=u; C、if(u>s)t=s; else t=u; D、t=u; if(u>s)t=s; 6. 下列各语句中,能够输出整型变量a、b中最大值的是( )。 A、printf(”%d\\n”,(a>b)?a,b); B、(a>b)? printf(”%d”,a):printf(”%d”,b); C、printf(”%d”,if(a>b)a else b); D、printf(”%d\\n”,(a>b)?a:b); 7. 下列语句应将小写字母转换为大写字母,其中正确的是( )。 A、if(ch>=’a’&ch<=’z’) ch=ch-32; B、if(ch>=’a’&&ch<=’z’)ch=ch-32; C、ch=(ch>=’a’&&ch<=’z’)?ch-32:’’; D、ch=(ch>’a’&&ch<’z’)?ch-32:ch; 8. putchar函数可以向终端输出一个()。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值
9. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式( );如果字符串长度小于5,则输出按方式( )。
A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息
11. 阅读以下程序,当输入数据的形式为:25,13,10 { int x,y,z; scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\\n”,x+y+z); } A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定值 12. 根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为()。 main() { char ch1,ch2,ch3; 输入语句 printf(“%c%c%c”,ch1,ch2,ch3); } 输出形式:A B C 输入形式:A B A) scanf(“%c%c%c”,&ch1,&ch2,&ch3); B) scanf(“%c,%c,%c”,&ch1,&ch2,&ch3); C) scanf(“%c %c %c”,&ch1,&ch2,&ch3); D) scanf(“%c%c”,&ch1,&ch2,&ch3); 13. 能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假\"的表达式是( ) A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B.(x>=1)||(x<=10)||(x>=200)||(x<=210) C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D.(x>=1)||(x<=10)&&(x>=200)||(x<=210) 14. 设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是( ) A.‘x’&&‘y’ B.x<=y C.x||y+z&&!y D.!(x 16 .若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是( ) A.A%2==1 B.!(A%2==0) C.!(A%2) D.A%2 17.以下程序的运行结果是( ) #include {int a,b,d=241;a=d/100%9; b=(-1)&&(-1); printf(“%d,%d”,a,b);} A.6,1 B.2,1 C.6,0 D.2,0 18. 执行以下语句后a的值为( ) int a,b,c; a=b=c=1; ++a||++b&&++c; A.错误 B.0 C.2 D.1 19. 执行以下语句后a的值为( ),b的值( ) int a=5,b=6,w=1,x=2,y=3,z=4; (a=w>x)&&(b=y>z); A.5 B.0 C.2 D.1 A.6 B.0 C.1 D.4 20. 以下不正确的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 22.以下语句语法正确的是:( ) A.if(x>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=xy; printf(“%f”,x);}; else printf(“%f”,-x); D.if(x>0) {x=x+y;printf(“%f”,x)} else printf(“%f”,-x); 23.请阅读以下程序,该程序( ) main() {int a=5,b=0,c=0; if(a+b+c) printf(“***\\n”); else printf(“$$$\\n”);} A.有语法错误不能通过编译 B.可以通过编译但不能通过连接 C.输出*** D.输出$$$ ) 24.以下程序的运行结果是( ) main() {int m=5; if(m++>5) printf(“%d\\n”,m);else printf(“%d\\n”,m--);} A.4 B.5 C.6 D7 25. 当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( ) if(aif(b 26.有一函数关系如下: x-1(x<0) y={ x(x=0) x+1 (x>0) 则下面程序段中能正确表示上面关系的是( A.y=x+1; if(x>=0) if(x==0) y=x; else y=x-1; B.y=x-1 if(x!=0) if(x>0) y=x+1; else y=x; C.if(x<=0) if(x<0) y=x-1; else y=x; else y=x+1; D.y=x; if(x<=0) if(x<0) y=x-1; else y=x+1; 27. 以下程序的输出结果是( ) main() {int a=100,x=10,y=20,ok1=5,ok2=0; if(x else if(ok2) a=10; a=-1; printf(“%d\\n”,a);} A.1 B.0 28. 以下程序的输出结果是( ) main() {int x=2,y=-1,z=2; if(x C.3 ) C.-1 D.值不确定 D.6 printf(“%d\\n”,z);} A.3 B.2 C.1 D.0 29. 为了避免在嵌套的条件语句if--else中产生二义性,C语言规定:else子句总是与( )配对。 A.缩进排位置相同的if B.其之前最近的if C.其之后最近的if D. 以上说法都不准确 30. 以下不正确的语句为( ) A. if(x>y); B. if(x=y)&&(x!=0) x+=y;