一、单项选择题(总分 20)
1. (分值:2.0 分)C 语言中,逻辑“真”等价于
A: 大于零的数
B: 大于零的整数
C: 非零的数
D: 非零的整数
序号:25 难度:1 考查点:逻辑运算和判断选取控制
2. (分值:2.0 分)当a=5,b=2 时,表达式a= =b 的值为
A: 2
B: 1
C: 0
D: 5
序号:428 难度:1 考查点:逻辑运算和判断选取控制
3. (分值:2.0 分)对如下程序,若用户输入为A,则输出结果为( )
main()
{
char ch;
scanf(“%c”,&ch);
ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch;
printf(“%c\n”,ch);
}
A: A
B: 32
C: a
D: 空格
序号:581 难度:1 考查点:逻辑运算和判断选取控制
4. (分值:2.0 分)下列表达式中能表示a 在0 到100 之间的是
A: a>0&a<100
B: !(a<0||a>100)
C: 0<a<100
D: !(a>0&&a<100)
序号:583 难度:1 考查点:逻辑运算和判断选取控制
5. (分值:2.0 分)输
main()
{ int a=5,b=4,c=6,d;
printf("%d\n",d=a>b?(a>c?a:c):(b));
}
A: 4
B: 5
C: 6
D: 不确定
序号:612 难度:2 考查点:逻辑运算和判断选取控制
6. (分值:2.0 分)设有定义:int a=3,b=4,c=5;则语句printf(“%d\n”,a+b>c&&b==c);的输
出结果是
A: 1
B: 0
C: -1
D: 2
序号:431 难度:2 考查点:逻辑运算和判断选取控制
7. (分值:2.0 分)有如下程序
main0
{ 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
序号:444 难度:2 考查点:逻辑运算和判断选取控制
8. (分值:2.0 分)有如下程序段:
int x =1, y=1 ;
int m , n;
m=n=1;
switch (m)
{ case 0 : x=x*2;
case 1: {
switch (n)
{ case 1 : x=x*2;
case 2 : y=y*2;break;
case 3 : x++;
}
}
case 2 : x++;y++;
case 3 : x*=2;y*=2;break;
default:x++;y++;
}
执行完成后,x 和y 的值分别为( )
A: x=6 y=6
B: x=2 y=1
C: x=2 y=2
D: x=7 y=7
序号:32 难度:3 考查点:逻辑运算和判断选取控制
9. (分值:2.0 分)C 语言的 switch 语句中,case 后
A: 只能为常量
B: 只能为常量或常量表达式
C: 可为常量及表达式或有确定值的变量及表达式
D: 可为任何量或表达式
序号:26 难度:1 考查点:逻辑运算和判断选取控制
10. (分值:2.0 分)若执行以下程序时从键盘上输入9,则输出结果是
main()
{ int n;
scanf("%d",&n);
if(n++<10) printf("%d\n",n);
else printf("%d\n",n--);
}
A: 11
B: 10
C: 9
D: 8
序号:473 难度:1 考查点:逻辑运算和判断选取控制
二、填空题(总分 20)
1.(分值:4.0) 输入一个字符,如果它是一个大写字母,则把它变成小写字母,如果它是
小写字母,则把它变成一个大写字母,其他字符不变。请填空。
main()
{ char ch;
scanf(“%c”,&ch);
if(ch>=65&&ch<=90 或 ch>='A'&&ch<='Z'
) ch=ch+32;
else if(ch>=’a’&&ch<=’z’)
ch=ch-32
;
printf(“%c”,ch);
}
序号:545 难度:3 考查点:逻辑运算和判断选取控制
2.(分值:4.0) 以下程序对输入的一个小写字母,将字母循环后移 5 个位置后输出,如’
a’变成’f’,’w’变成’b’,请在空格处填空。
#include “stdio.h”
main()
{ char c;
c=getchar();
if(c>=’a’&&c<=’u’)
c+=5 或 c=c+5
;
else if(c>=’_______v’&&c<=’z’)
c=c-21 或 c-=21
;
putchar(c);
}
序号:544 难度:3 考查点:逻辑运算和判断选取控制
3.(分值:6.0) 以下程序实现输出 x,y,z 三个数中的最大者。请在空格处填空。
main()
{ int x=4,y=6,z=7;
int v,u 或 u,v
;
if(x>=y 或x-y>0 或x>y
) u=x;
else u=y;
if( u-z>0 或u>z 或u>=z
) v=u;
else v=z;
printf(“v=%d”,v);
}
序号:543 难度:3 考查点:逻辑运算和判断选取控制
4.(分值:6.0) 以下程序实现:输入三个整数,按从大到小的顺序进行输出。请填空。
main()
{ int x,y,z,c;
scanf(“%d%d%d”,&x,&y,&z);
if(z>y
)
{c=y;y=z;z=c;}
if(z>x
)
{c=x;x=z;z=c;}
if(y>x
)
{c=x;x=y;y=c;}
printf(“%d,%d,%d”,x,y,z);
}
序号:542 难度:3 考查点:逻辑运算和判断选取控制
三、问答题(总分 20)
1.(分值:4.0 分)根据c语言特点程序的运行结果是:
main( )
{ int ch1=0, ch2=5;
if(ch1!=3)printf(“ch1:%d”,ch1);
else printf(“ch2:%d”,ch2);
}
参考答案:
ch1:0
序号:13 难度:1 考查点:逻辑运算和判断选取控制
2.(分值:4.0 分)以下程序的执行结果是_________。
main()
{ int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf(“%d,%d\n”,a,b);
}
参考答案:
2,1
序号:76 难度:2 考查点:逻辑运算和判断选取控制
3.(分值:4.0 分)main()
{ int a=1,b=0;
switch(a)
{ case 1: switch (b)
{ case 0: printf("**0**"); break;
case 1: printf("**1**"); break;
}
case 2: printf("**2**"); break;
}
}
参考答案:
**0****2**
序号:20 难度:3 考查点:逻辑运算和判断选取控制
4.(分值:4.0 分)以下程序的执行结果是_________。
main()
{ float f1,f2,f3,f4;
int m1,m2;
f1=f2=f3=f4=2;
m1=m2=1;
printf(“%d\n”,(m1=f1>=f2)&&(m2=f3<f4)); }
参考答案:
0
序号:71 难度:2 考查点:逻辑运算和判断选取控制
5.(分值:4.0 分)执行下列语句后,a、b、c 的值分别是______、______、______。
int x=10,y=9;
int a,b,c
a=(--x==y++)?--x:++y;b=x++;c=y;
参考答案:
8 8 10
序号:79 难度:2 考查点:逻辑运算和判断选取控制
四、编程题(总分 40)
1.(分值:20.0 分)编写一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。设:
90 分以上为A,80~89 分为B,70~79 分为C,60~69 分为D,60 分以下为E。
参考答案:
#include"stdio.h"
main(){
int a,b;
printf("Please input the score:");
scanf("%d",&a);
b=a/10;
switch(b){
case 10:
case 9:
printf("A!\n");
break;
case 8:
printf("B!\n");
break;
case 7:
printf("C!\n");
break;
case 6:
printf("D!\n");
break;
default:
printf("E!\n");
break;
}
}
序号:8 难度:2 考查点:逻辑运算和判断选取控制
2.(分值:20.0 分)编程判断输入的正整数是否既是5 又是7 的整倍数。若是,输出yes,否则
输出no。
参考答案:
#include "stdio.h"
main()
{
int goal;
printf("Please input a number:");
scanf("%d",&goal);
if(goal<=0)
printf("error\n");
else if(goal%5==0&&goal%7==0)
printf("Yes!\n");
else
printf("No!\n");
}
序号:6 难度:2 考查点:逻辑运算和判断选取控制