第五章选择结构程序设计(2445)
- 格式:doc
- 大小:128.00 KB
- 文档页数:13
1. 设ch是char型变量,其值为A,且有下面的表达式: ch=(ch>='A'&&ch<='Z')?(ch+32):ch
的值是(B)。
A. A
B. a
C. Z
D. z
2. 设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为(C)?。
A. 不定值
B. 4
C. 3
D. 1
3. 下面关于运算符优先顺序的描述中正确的是(C)。
A. 关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符
B. 逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符
C. 赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符
D. 算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符
4. 设有声明语句:int a=1,b=0;则执行以下语句后输出(B) 。
switch (a)
{
case 1:
switch (b)
{
case 0: printf("**0**");break;
case 1: printf("**1**");break;
}
case 2: printf("**2**");break;
}
A. **0**
B. **0****2**
C. **0****1****2**
D. 有语法错误
5. 设有int x,y; 以下语句判断x和y是否相等,正确的说法是该语句(B)。
if (x=y) printf(" x is equal to y.");
A. 语法错
B. 不能判断x和y是否相等
C. 编译出错
D. 能判断x和y是否相等
6. 以下有关switch语句的正确说法是(B)。
A. break语句是语句中必须的一部分
B. 在switch 语句中可以根据需要使用或不使用break语句
C. break语句在switch 语句中不可以使用
D. 在switch 语句中的每一个case都要用break语句
7. 设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>d)后,n 的值为( B)
A. 1
B. 2
C. 3
D. 4
8. 要用C语言表示数学关系式a≥b≥c,正确的表达式是( D )。
A.a>=b>=c
B.(a>=b)& (b>=c)
C.(a>=b) || (b>=c)
D.(a>=b)&& (b>=c)
9. 与y=(x>0?1:x<0?-1:0);的功能相同的if语句是( A )。
A. if(x>0) y=1;
else if(x<0) y=-1;
else y=0;
B. if(x)
if(x>0) y=1;
else if(x<0) y=-1;
else y=0;
C. y=-1;
if(x)
if(x>0) y=1;
else if(x==0)y=0;
else y=-1;
D. y=0;
if(x>=0)
if(x>0) y=1;
else y=-1;
10. 已知year 为整型变量,不能使表达式
(year%4==0&&year%100!=0)||year%400==0的值为"真"的数据是( A )。
A.1990
B.1992
C.1996
D.2000
11. 以下运算符中,优先级最高的运算符是( C )。
A.||
B.%
C.!
D.==
12. 在嵌套使用if语句时,C语言规定else总是( C )。
A.和之前与其具有相同缩进位置的if配对
B.和之前与其最近的if配对
C.和之前与其最近的且不带else的if配对
D.和之前的第一个if配对
13. 有如下程序段int a=14,b=15,x;char c=′A′;
x=(a&&b)&&(c<′B′); 执行该程序段后,x的值为( D )。
A.ture
B.false
C.0
D.1
14. 在以下给出的表达式中,与while(E)中的(E)不等价的表达式是(C)。
A.(!E==0)
B.(E>0‖E<0)
C.(E==0)
D.(E!=0)
15. 有以下程序
main()
{int a=0,b=0,c=0,d=0;
if(a=1) b=1;c=2;
else d=3;
printf("%d,%d,%d,%d\n",a,b,c,d);
}
程序输出(D)。
A.0,1,2,0
B.0,0,0,3
C.1,1,2,0
D.编译有错
16. 以下关于逻辑运算符两侧运算对象的叙述中正确的是(D)。
A.只能是整数0或1
B.只能是整数0或非0的整数
C.可以是结构体类型的数据
D.可是任意合法的表达式
17. 有以下程序
Main()
{int k=5{switch(k)
{case1: case3:n+=1; break;
Default:n=0;k--;
Case2: case4:n+=2;k--;break;}
Printf(“%d”,n);
}while(k>0&&n<5);}
程序运行后的输出结果是(A)。
A.2345
B.235
C.2356
D.2356因为第一次k=5时,进入Default后,但没有break;就会顺序执行case2,所以第一个输出是2;
18. 表达式“0?(0?3:2):(10?1:0)”的值为(C)。
A.3
B.2
C.1
D.0
19. 以下程序的输出结果是(A)。
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);}
A.1
B.0
C.非0数
D.-1
20. 设实型变量为f1、f2、f3、f4的值分别为4,3,2,1整型变量ml、m2的值为1。表达式“(ml=fl>f2)&&(m2=f3
A.0
B.1
C.2
D.出错
21. 有如下条件表达式,若a=2、b=4、c=5 、d=7则表达式的值为(D)。a>b? a:c>d?c:d
A.2
B.4
C.5
D.7
22. 以下程序输出结果是(B)。
main()
{ int m=5;
if(m++>5) printf("%d\n",m);
else printf("%d\n",m--);
}
A.7
B.6
C.5
D.4
23. 下列if语句中,不正确的是(C)。
A.if(x>y);
B.if(x==y) x+=y;
C.if(x!=y) scanf("%d",&x) else x=1;
D.if(x
24. 表示关系x<=y<=z的c语言表达式为(A)。
A.(X<=Y)&&(Y<=Z)
B.(X<=Y)AND(Y<=Z)
C.(X<=Y<=Z)
D.(X<=Y)&(Y<=Z)
25. C语言中数组下标的下限是(B)。
A.1
B.0
C.视具体情况而定
D.无固定下限
26. 表达式:10!=9的值是(C)。
A.ture
B.非零值
C.1
D.0
27. 能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是( C )
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)
28. 以下程序的运行结果是( B )
#include “stdio.h”
main()
{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
29. 请阅读以下程序:
main()
{int a=5 , b=0 , c=0;
if (a+b+c) printf(“* * *\n”);
else printf(“$ $ $\n”);
}
以上程序( C )
A.有语法错误不能通过编译
B.可以通过编译但不能直接通过连接
C.输出* * *
D.输出$ $ $
30. 有如下程序:
main()