一、选择题
1. 下面( ) 是错误的if 语句(设int x,a,b;)B
A)if (a=b) x++;
B)if (a=<b) x++;
C)if (a-b) x++;
D)if (x ) x++;
解析:关系运算符错误,if(a<=b)x++;
2. 以下程序片段( )。D
void main ( )
{
int x=0,y=0,z=0;
if (x=y+z) printf(“***”);
else printf(“###”);
}
A)有语法错误,不能通过编译
B)输出:***
C)可以编译,但不能通过连接,所以不能运行
D)输出:###
解析:“0”为假命题,非零为真命题。
3. 对下述程序,( )是正确的判断。A
void main ( )
{
int x,y;
scanf(“%d,%d”,&x,&y);
if (x>y) x=y;y=x;
else x++;
y++;
printf(“%d,%d”,x,y);
}
A)有语法错误,不能通过编译
B)若输入3 和4,则输出4 和5
C)若输入4 和3,则输出3 和4
D)若输入4 和3,则输出4 和5
解析:else没有与之对于的语句if。
4. 当a=1,b=3,c=5,d=4 时,执行完下面一段程序后x 的值是( )。B
if (a<b)
if (c<d) x=1;
else
if (a<c)
if (b<d) x=2;
else x=3;
else x=6;
else x=7;
A)1
B)2
C)3
D)4
解析:
if (a<b)
if (c<d) x=1;//不执行
else
if (a<c)
if (b<d) x=2;//满足执行x=2;后续不再执行
else x=3;
else x=6;
else x=7;
5. 若int i=10;执行下列程序后,变量i 的正确结果是( )。D
switch (i)
{
case 9: i+=1 ;
case 10: i+=1 ;
case 11: i+=1 ;
default : i+=1 ;
}
A)10
B)11
C)12
D)13
解析:switch-case语句且无break语句,执行到程序结束。
二、填空题
1. 在C 语言中,对于if 语句,else 子句与if 子句的配对原则是else与它前面最近的一个if配对。
2. 以下两条if 语句可合并成一条if 语句为________。
if(a<=b)
{
x=1;
printf("# # # # x=%d\n",x);
}
else
{
y=2;
printf("* * * * y=%d\n",y);
}
if(a<=b) x=1;
else y=2;
if(a>b) printf(“* * * * y=%d\n”,y);
else printf(“# # # # x=%d\n”,x);
3. 在C 语言中提供的条件运算符”?:”的功能是根据条件判断值,从两种选择对象中,选取一个作为整个运算的结果。
4. 条件表达式a?b:c,其中a,b,c 是三个运算分量,当运算分量a 的值为真,则 值为b,
否则 为C。
以下程序根据考试成绩的等级打印出百分制分数段:从键盘上输入一个成绩等级grade,按
下列原则输出其百分制成绩:grade 为a,百分制成绩为85~100;grade 为b,百分制成绩
为70~84;grade 为c,百分制成绩为60~69;grade 为d,百分制成绩为<60;grade 为其
他字符,则输出error!。请完善该程序。
#include <stdio.h>
void main()
{
________//int grade;
grade=getchar();
switch(________)//switch(grade)
{
case 'a':printf("85~100\n");break;
case 'b':printf("70~84\n");break;
case 'c':printf("60~69\n");break;
case 'd':printf("<60\n");break;
______:printf("error!\n"); //default
}
}
三、运行结果题
1. 写出以下程序的运行结果:
void main()
{
int a = 0, b = 0, c = 0;
if (++a > 0 || ++b > 0) ++c;
printf("% d, % d, % d" , a, b, c);
}
![](https://i-blog.csdnimg.cn/blog_migrate/6109ca067aacf8d5d56e2b10228257d0.png)
2. 写出以下程序的运行结果:
void main()
{
int x;
x = 5;
if (++x > 5) printf("x = % d", x);
else printf("x = % d", x--);
}
![](https://i-blog.csdnimg.cn/blog_migrate/5efa5f327c7b19663932a7e287eb8f62.png)
3. 写出以下程序的运行结果:
{
int x = 1, y = 1, z = 1;
y = y + z; x = x + y;
printf(" % d", x < y ? y : x);
printf(" % d", x < y ? x++ : y++);
printf(" % d", x);
printf(" % d", y);
}
![](https://i-blog.csdnimg.cn/blog_migrate/0785204a21a4303b9cb28b6ac7123072.png)
4. 写出以下程序的运行结果:
{
int a = 2, b = 7, c = 5;
switch (a > 0) {
case 1: switch (b < 0) {
case 1: printf("@"); break;
case 2: printf("!"); break;
}
case 0: switch (c == 5) {
case 1: printf(" * "); break;
case 2: printf("#"); break;
default: printf("#"); break;
}
default: printf(" & ");
}
printf("\n");
}
![](https://i-blog.csdnimg.cn/blog_migrate/96c3df373914292c56a888a16b32bcbe.png)