当前位置:文档之家› 参考答案 第4章 选择结构习题 补充练习

参考答案 第4章 选择结构习题 补充练习

选择结构习题
一、选择题
1.假设x、y、z为整型变量,且x=2,y=3,z=10,则下列表达式中值为1的是( )
A) x && y || z B) x>z
C) (!x && y) || (y>z) D) x && !z || !(y && z)
2.C程序中,正确表示“10<a<20或a>30”的条件表达式为( )
A) (a>10 && a<20) && (a>30) B) (a>10 && a<20) || (a>30)
C) (a>10 || a<20) || (a>30) D) (a>10 && a<20) || !(a<30)
3.执行以下程序段后,w的值为( )
int w=’A’, x=14, y=15;
w=((x||y)&&(w<’a’));
A) -1 B) NULL C) 1 D) 0
4.执行以下程序时从键盘输入9,则输出结果是()。

#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
if(n++ < 10) printf("%d\n", ++n);
else printf("%d\n", --n);
return 0;
}
A) 10 B) 8 C) 9 D) 11
5. 5. 以下是if语句的基本形式()
if(表达式) 语句
其中“表达式”
A) 必须是逻辑表达式B) 必须是关系表达式
C) 必须是逻辑表达式或关系表达式D) 可以是任意合法的表达式
6.有以下程序
#include<stdio.h>
int main( )
{
int a = 1, b = 2, c = 3;
if(a==1 && b++==2)
if(b!=2 || c--!=3) printf("%d, %d, %d\n", a, b, c);
else printf("%d, %d, %d\n", a, b, c);
else printf("%d, %d, %d\n", a, b, c);
return 0;
}
程序运行后的输出结果是()
A) 1, 2, 3 B) 1, 3, 2 C) 1, 3, 3 D) 3, 2, 1
7.有以下程序
#include <stdio.h>
int main( )
{
int i = 1, j = 1, k = 2;
if((j++‖k++) && i++)
printf("%d, %d, %d\n", i, j, k);
return 0;
}
执行后输出结果是()
A) 1, 1, 2 B) 2, 2, 1 C) 2, 2, 2 D) 2, 2, 3
8.有以下程序段
int a, b, c;
a = 10;
b = 50;
c = 30;
if(a > b) a = b; b = c; c = a;
printf("a=%d b=%d c=%d \n", a, b, c);
程序的输出结果是()
A) a=10 b=50 c=10 B) a=10 b=50 c=30 C) a=10 b=30 c=10 D) a=50 b=30 c=50
9.若有定义: float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是()
A) switch(x) B) switch((int)x);
{ {
case 1.0: printf("*\n"); case 1: printf("*\n");
case 2.0: printf("**\n"); case 2: printf("**\n");
} }
C) switch(a+b)D) switch(a+b)
{ {
case 1: printf("*\n"); case 1: printf("*\n");
case 2+1: printf("**\n"); case c: printf("**\n");
} }
10.若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是()
A) swich(a+b); B) switch(a*a+b*b)
{ { case 3:
case 1: y = a + b; break; case 1: y = a + b; break;
case 0: y = a - b; break; case 3: y = b - a; break;
} }
C) switch a D) switch(a-b)
{ { default: y=a*b; break;
case c1: y = a - b; break; case 3:
case c2: x = a * d; break; case 4: x=a+b; break;
default:x=a+b; case 10:
} case 11: y=a-b; break; } 11.有以下程序
#include <stdio.h>
int main( )
{
int a=16, b=21, m=0;
switch(a%3)
{ case 0: m++; break;
case 1: m++;
switch(b % 2)
{ default: m++;
case 0: m++; break;
}
}
printf("%d\n", m);
return 0;
}
程序运行后的输出结果是()
A) 1 B) 2 C) 3 D) 4
12.C语言对嵌套if语句的规定是:else 总是与()配对。

A) 其之前最近的if B) 第一个if
C) 缩进位置相同的if D) 其之前最近且不带else的if
13.若有说明语句:int w=1, x=2, y=3, z=4; 则表达式w>x ? w : z>y ? z : x的值是()
A) 4 B) 3 C) 2 D) 1
14.以下关于switch语句和break语句的描述中,正确的是()
A) 在switch语句中必须使用break语句
B) break语句只能用于switch语句中
C) 在switch语句中,可根据需要用或不用break语句
D) break语句是switch语句的一部分
15.有以下程序,输出结果是()
#include <stdio.h>
int 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);
return 0;
}
A) 0, 1, 2, 0 B) 0, 0, 0, 3 C) 1, 1, 2, 0 D) 编译有错。

相关主题