2017级C++选择结构练习
1. 姓名:_________ 学号:____________ [填空题] [必答题]
2. C语言允许if-else语句可以嵌套使用,规定else总是与( )配对。 [单选题] [必答题] ○ A.其之前最近的if ○ B.第一个if
○ C.缩进位置相同的if
○ D.其之前最近的尚未配对的if(正确答案)
3. 在循环结构中,先执行循环语句、后判断循环条件的结构是( )。 [单选题] [必答题] ○ A.当型循环结构
○ B.直到型循环结构(正确答案) ○ C.一般型循环结构 ○ D.次数型循环结构
4. 设有说明语句int a=1;,则执行以下语句后输出( )。 switch(a) {
case 1:cout<<\你好\case 2:cout<<\再见\default:cout<<\晚安\} [单选题] [必答题] ○ A.你好
○ B.你好再见晚安(正确答案) ○ C.你好晚安 ○ D.你好再见
5. 对break语句和continue语句,下面说法中不正确的是( )。 [单选题] [必答题] ○ A.break语句强制中断当前循环,退出所在层循环
○ B.break语句不仅能用在3条循环语句中,还可以用在switch语句中 ○ C.continue语句能用在switch语句中,在没有循环的情况下(正确答案) ○ D.continue语句不能退出循环体
6. 标有/*******/的语句执行次数为( )次。 int x=10;
while(x++<20)
x+=2; /*******/ [单选题] [必答题] ○ A.10 ○ B.11
○ C.4(正确答案) ○ D.3
7. 6. 标有/*******/的语句执行次数为( )次。 int y=0,x=2; do{
y=x*x; /*******/ }while(++y
[单选题] [必答题] ○ A.5 ○ B.4 ○ C.2
○ D.1(正确答案)
8. 若执行下面的程序时从键盘输入5,则输出是( A )。 scanf(\if(x++>5)
printf(\else
printf(\[单选题] [必答题] ○ A.-6(正确答案) ○ B.6 ○ C.5 ○ D.-5
9. 下列程序的输出结果是( )。 int x=3; do{
printf(\单选题] [必答题] ○ A.321 ○ B.3(正确答案) ○ C.21 ○ D.210
10. 以下不正确的描述是( )。 [单选题] [必答题]
○ A.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成 ○ B.while循环是先判断表达式,后执行循环体语句
○ C.do-while和for循环均是先执行循环语句,后判断表达式(正确答案) ○ D.for、while和do-while循环中的循环体均可以由空语句构成
11. 下列关于switch语句和break语句的叙述中,( )是正确的。 [单选题] [必答题] ○ A.break语句用来结束switch语句的执行(正确答案)
○ B.break语句用于不存在case的情况下退出switch语句时使用 ○ C.break语句只能用于循环语句,而不能用于switch语句 ○ D.break语句是重复执行case语句的
12. 以下程序运行后,输出的结果是 void main() {
int t=1,i=5;
for(;i>0;i--)t*=i; printf(\
} [填空题] [必答题]
_________________________________(答案:120)
13. 以下程序运行后的输出的结果是 void main() {
int i,s=0; i=1; do{
if(i%3==0)s+=i; i++;
}while(i<20);
printf(\} [填空题] [必答题]
_________________________________(答案: s=63 )
14. 以下程序执行后sum的值是( )。 void main() { int i , sum=2;
for(i=1;i<6;i++) sum+=i; printf(\} [填空题] [必答题]
_________________________________(答案:17)
15. 以下程序的输出结果是( )。 void main() {
char ch1,ch2; ch1='A'+'5'-'3'; ch2='a'+'5'-'3';
printf(\} [单选题] [必答题] ○ A、99,C(正确答案) ○ B、B,C ○ C、C,D ○ D、不确定
16. 若x、y、z均为int 型变量,则执行下列语句后的z值为( )。 x=1; y=2; z=3; z=(x>y)?z :y ;
z = (z 17. 根据以下程序,下列选项正确的是( )。 void main() {int x=3,y=0,z=0; if(x=y+z) printf(\else printf(\} [单选题] [必答题] ○ A、有语法错误不能通过编译 ○ B、输出********(正确答案) ○ C、可以通过编译,但是不能通过链接,因而不能运行 ○ D、输出######## 18. 在循环中使用break 语句的功能是( )。 [单选题] [必答题] ○ A、使程序的执行跳出break所在的那一重循环(正确答案) ○ B、使程序执行结束 ○ C、跳出包含此break语句的所有循环 ○ D、终止本次循环,继续下次循环