当前位置:文档之家› 第3章--选择结构

第3章--选择结构

else if (t>=60) printf("D\n");
else printf("E\n");
printf("OK\n");
}
A) B B) B OK
C) B D) B
OK C
D
E
OK
19.以下程序的运行结果是( )。C
main( )
{ int a=0,b=1,c=0,d=20,x;
if (a) d=d-10;
if (cp>='0' && cp<='9')
k=cp-'0';
else if (cp>='a' && cp<='f')
k=cp-'a'+10;
else k=cp-'A'+10A) 2 B) 4
C) 1 D) 10
h=(t/100)%12;
if (h==0) h=12;
printf("%d:",h);
m=t%100;
if (m<10) printf("0");
printf("%d",m);
if (t<1200||t==2400)
printf("AM");
else printf("PM");
}
A) 6:05PM B) 4:05PM
#include <stdio.h>
main( )
{ int a=2,b=7,c=5;
switch(a>0)
{ case 1:switch(b<0)
{ case 1: printf("@"); break;
case 0: printf("!"); break;
}
case 0:switch(c==5)
15.下面程序的输出结果是A
main( )
{int x=100,a=10,b=20,ok1=5,ok2=0;
if (a<b)
if (b!=15)
if (!ok1)
x=1;
else
if (ok2) x=10;
x=-1;
printf("%d\n",x);
}
A) -1 B) 0
C) 1 D)不确定的值
16.下面程序的输出结果是B
default: printf("Full!\n");
}
}
A) 1 B) 2
C) 2 D) 1
3 2
4 3
5 4
29.执行下面程序时,若从键盘输入"2<CR>",则程序的
运行结果是( )。A
#include <stdio.h>
main( )
{ int j,k; char cp;
cp=getchar( );
if (a=a+b) printf("****\n");
else printf("####\n");
}
A)有语法错误不能编译
B)能通过编译,但不能通过连接
C)输出****
D)输出####
11.运行下面程序后,输出是( )。D
main( )
{ int k=-3;
if (k<=0) printf("****\n")
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;
28、执行下列程序,输入为1的输出结果是( )。D
else printf("####\n");
}
A) #### B) ****
C) ####**** D)有语法错误不能通过编译
12.若运行下面程序时,给变量a输入15,则输出结果是( )。A
main( )
{ int a,b;
scanf("%d",&a);
b=a>15?a+10:a-10;
printf("%d\n",b) ;
if (!a) x--;
else if (b);
if (c) x=3;
else x=4;
A) 34 B) 4
C) 35 D) 3
jixie
27、与y=(x>0?1:x<0?-1:0);的功能相同的if语句是A
A) if (x>0) y=1; B) if(x)
else if (x<0) y=-1; if (x>0) y=1;
case 2: printf("%d\n",b-c); break;
case 3: printf("%d\n",b*c); break;
case 4: { if(c!=0) {printf("%d\n",b/c);break;}
else {printf("error\n");break;}
}
defualt: break;
A)不定值B) 4
C) 1 D) 0
jixie
6.语句:printf("%d",(a=2) && (b=-2));的输出结果是D
A)无输出B)结果不确定
C)-1 D)1
7.能正确表示a和b同时为正或同时为负的逻辑表达式是D
A) (a>=0 || b>=0) && (a<0 || b<0)
B) (a>=0 && b>=0) && (a<0 && b<0)
顺序分支结构选择题:
1.设ch是char型变量,其值为A,且有下面的表达式:B
ch=(ch>='A'&&ch<='Z')?(ch+32):ch
上面表达式的值是
A) A B) a
C) Z D) z
2.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,
值为0的表达式是D
A) 'a'&&'b' B) a<=b
#include <stdio.h>
main( )
{
int k;
scanf("%d",&k);
switch (k)
{
case 1: printf("%d\n",k++);
case 2: printf("%d\n",k++);
case 3: printf("%d\n",k++);
case 4: printf("%d\n",k++); break;
{ int s,t,a,b;
scanf("%d,%d",&a,&b);
s=1; t=1;
if (a<0) s=s+1;
if (a>b) t=s+t;
else if (a==b) t=5;
else t=2*s;
printf("t=%d\n",t);
}
A) a>b B) a<b<0
C) 0>a>b D) 0<a<b
}
A) 5 B) 25
C) 15 D) 10
13.以下选项中,两个条件语句语义等价的是( )。B
A) if(a=2)printf("%d\n",a); B) if(a-2)printf("%d\n",a);
if(a==2)printf("%\n",a); if(a!=2)printf("%\n",a);
表达式是A
A) 10<a<15 B) a==11 || a==12 || a==13 || a=14
C) a>10 && a<15 D) !(a<=10) && !(a>=15)
5.设x、y、z、t均为int型变量,则执行以下语句后,t的值为C
x=y=z=1;
t=++x || ++y && ++z;
C) a||b+c&&b-c D) !((a<b)&&!c||1)
3.能正确表示a≥10或a≤0的关系表达式是D
A) a>=10 or a<=0 B) a>=10 | a<=0
C) a> =10 || a< =0D) a>=10 || a<=0
4.设a为整型变量,不能正确表达数学关系:10<a<15的C语言
C) (a+b>0 && a+b<=0)
D) a*b>0
8.为了避免嵌套的if-else语句的二义性,C语言规定else总是C
相关主题