第四章 选择结构程序设计
1.能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是
A)a>=10 or a<=0 B) a>=0|a<=10
C)a>=10 &&a<=0 D) a>=10‖a<=0
2.为表示关系x≥y≥z ,应使用C语言表达式
A)(x>=y)&&(y>=z) B(x>=y)AND(y>=z)
C)(x>=y>=z) D)(x>=y)&(y>=z)
3.表示条件:10<X 或 X<0的C语言表达式是【 】。
4.条件"x>20或x<-100"的C语言表达式是【 】。
5.设 a=5 , b=6 , c=7 , d=8 , m=2 , n=2 , 执行(m=a>b)&&(n=c>d)后n的值为
A)0 B)1 C)2 D)7
6.下面程序的输出是
A)003 B)012 C)103 D)112
main()
{ int a= -1 ,b=4 ,k ;
k=(a <=0)&&(!(b--<=0));
printf("%d%d%d\n",k ,a ,b);}
7.设int A=3 ,B=4 ,C=5;,则下列表达式中,值为0的表达式是
A)A&&B B)A<=B
C)A││B C&&B D)!((A<B)&&!C││1)
8.有以下程序
main()
{ int a ,b ,c=246 ;
a=c/100%9 ;b=(-1)&&(-1) ;
printf("%d ;%d\n" ,a ,b) ;}
输出结果是
A)2 ;1 B)3 ;2 C)4 ;3 D)2 ;-1
9.设 int x=1, y=1; 表达式(!x||y--)的值是
A)0 B)1 C)2 D)-1
10.有如下程序段
int a=14 ,b=15 ,x ;
char c='A';
x=(a&&b)&&(c<'B');
执行该程序段后,x的值为
A)ture B)false C)0 D)1
11.表示“整数x的绝对值大于5”时值为“真”的C语言表达式是 【 】。
12.逻辑运算符两侧运算对象的数据类型
A)只能是0或者1
B)只能是0或非0正数
C)只能是整型或字符型数据
D)可以是任何类型的数据
13.以下关于运算符优先顺序的描述中正确的是
A) 关系运算符 < 算术运算符 < 赋值运算符 < 逻辑运算符
B) 逻辑运算符 < 关系运算符 < 算术运算符 < 赋值运算符
C) 赋值运算符 < 逻辑运算符 < 关系运算符 < 算术运算符
D) 算术运算符 < 关系运算符 < 赋值运算符 < 逻辑运算符
14.若int K=3;,且有下面的程序片段:
if (K<=0) printf ("####");
else printf ("&&&&");
上面程序片段的输出结果是
A) #### B) &&&&
C) ####&&&& D) 有语法错误,无输出结果
15.设char CH ;,其值为A,且有下面的表达式:
CH=(CH>= 'A' && CH <= 'Z')? (CH 32):CH
则表达式的值是
A)A B)a C)Z D)z
16.有如下程序
main()
{ int a=2 ,b=-1 ,c=2 ;
if(a<b)
if(b<0) c=0;
else c ;
printf(“%d\n”,c); }
该程序的输出结果是
A)0 B)1 C)2 D)3
17.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是
main( )
{ int x;
scanf("%d",&x);
if(x > 5)printf("%d",x);
else printf("%d\n",x - -); }
A)7和5 B)6和3 C)7和4 D)6和4
18.假定所有变量均已正确说明 ,下列程序段运行后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
19.与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是
A) if (x>0) y=1; B) if(x)
else if(x<0)y=-1; if(x>0)y=1;
else y=0; else if(x<0)y=-1;
else y=0;
C) y=-1 ; D) y=0;
if(x) if(x>=0)
if(x>0)y=1; if(x>0)y=1;
else if(x==0)y=0; else y=-1;
else y=-1;
21.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为
A)a<>0 B)!a C)a=0 D)a
22.以下程序的输出结果是
A)-1 1 B)0 1 C)1 0 D)0 0
main( )
{ int a= -1 ,b=1 ;
if( a) printf("%d %d\n",a,b);
else printf("%d %d\n",b,a); }
23.有如下程序
main()
{ float x=2.0,y;
if(x<0.0) y=0.0;
else if(x<10.0) y=1.0/x;
else y=1.0;
printf(“%f\n”,y); }
该程序的输出结果是
A)0.000000 B)0.250000 C)0.500000 D)1.000000
24.请读程序:
main()
{ float x ,y ;
scanf("%f ",&x);
if(x<0.0) y=0.0 ;
else if((x<5.0)&&(x!=2.0)) y=1.0/(x 2.0);
else if(x<10.0) y=1.0/x;
else y=10.0;
printf("%f\n",y);}
若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是
A)0.000000 B)0.250000 C)0.500000 D)1.000000
25.若有以下定义:
float x ;
int a ,b ;
则正确的switch 语句是
A) switch(x)
{ case 1.0:printf("*\n");
case 2.0:printf("**\n");}
B) switch(x)
{ case 1,2:printf("*\n");
case 3:printf("**\n");}
C)switch (a b)
{ case 1:printf("\n") ;
case 1 2:printf("**\n");}
D) switch(a b);
{ case 1:printf("*\n");
case 2:printf("**\n");}
26.有如下程序
main()
{ int x=1 ,a=0 ,b=0 ;
switch(x)
{ case 0: b ;
case 1: a ;
case 2: a ;b ; }
printf(" a=%d,b=%d\n",a,b); }
该程序的输出结果是
A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2
27. 假定w、x、y、z、m均为int型变量,有如下程序段:
w=1; x=2; y=3; z=4;
m=(w<x)?w; x; m=(m<y)?m;y; m=(m<z)?m; z;
则该程序运行后,m的值是
A) 4 B) 3 C) 1 D) 2
28. 以下程序的输出结果是
main()
{ int a=5,b=4,c=6,d;
printf("%d\n",d=a>b?(a>c?a:c):(b));
}
A) 5 B) 4 C) 6 D) 不确定
29. 以下程序的输出结果是
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
30. 若从键盘输入58,则以下程序输出的结果是 【 】 。
main()
{ int a;
scanf("%d",&a);
if(a>50) printf("%d",a);
if(a>40) printf("%d",a);
if(a>30) printf("%d",a);
}
31. 有以下程序
main()
{ 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(“%d\n”,m);
}
程序运行后的输出结果是
A) 1 B) 2 C) 3 D) 4
32. 以下程序运行后的输出结果是 。
main()
{ int x=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf(“%d,%d \n”,x,y);
}