第四章 选择结构程序设计
1、逻辑运算符两侧运算对象的数据类型______
A、能是0或1 B、能是0或非0正数
C、能是整型或字符型数据 D、以是任何类型的数据
2、设a为整形变量,不能正确表达数学关系:10的C语言表达式是_ ______
A、10 B、 a==11||a==12||a==13||a==14
C、 a>10&&a<15 D、 !(a<10)&&!(a>=15)
3、在C语言中,逻辑值“真”用_______表示。
A、 true B、大于0的数 C、 非0整数 D、非0的数
4、以下程序的输出结果是_____
main()
{
int x=10,y=10;
printf("%d%d\n",x--,--y);
}
A、 10 10 B、 9 9 C、 9 10 D、 10 9
5、当a,b,c的值分别为3,4,5时,以下各语句执行后a,b,c的值为多少_______
If (a>c)
{a=b;b=c;c=a;}
Else
{a=c;c=b;b=a;}
Printf(“%d,%d,%d”,a,b,c);
A、5,4,5 B、5,5,4 C、3,4,5 D、5,3,4
6、当a,b,c的值分别为3,4,5时,以下各语句执行后a,b,c的值为多少_______
If(a
a=c;
else
a=b;c=b;b=a;
printf(“%d,%d,%d”,a,b,c);
A、5,5,4 B、5,4,5 C、3,4,5 D、5,3,4
7、若K1,K2,K3,K4均为int型变量,为了将整数10赋给K1和K3,将整数20赋给K2和K4,则对应以下scanf()函数调用语句的正确输入方式是________(代表换行符,__代表空格).
Scanf(“%d%d”,&k1,&k2);
Scanf(“%d,%d”,&k3,&k4);
A、1020 B、10__20 C、10,20 D、10__20
1020 10__20 10,20 10,20
8、在C语言中,当While语句中的条件为_______时,结束该循环。
A、0 B、1 C、true D、非0
9、C语言对嵌套if语句的规定是:else总是与______
A、其之前最近的if配对 B、第一个if配对
C、缩进位置相同的if配对 D、其之前最近的且尚未配对的if配对
二、填空题
1、设a=3,b=4,c=5,写出下面各逻辑表达式的值。
表达式 表达式运算后的值
a+b>c && b= =c
!(a>b) && !c || 1
!(a+b) + c –1 && b + c/2
2、将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式 ______________________
3、执行以下程序段后,a= _______,b= ________ ,c= ________
int x=10,y=9 ;
int a,b,c ;
a = (x--= =y++) ? x-- : y++ ;
b = x++ ;
c = y ;
三、看程序写结果
1、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是
if (a
if (c
else
if (a
if (b
else x=3;
else x=6;
else x=7;
printf(“x=%d”,x);
2、若int i=0;执行下列程序后,变量i的正确结果是 。
switch (i) {
case 9: i+=1 ;
case 10: i+=1 ;
case 11: i+=1 ;
default : i+=1 ;
}
Printf(“i=%d”,i);
四、编程题
1、有三个整数a,b,c,由键盘输入,求三个数中的最大值。
2、写一程序,从键盘上输入一年份year(4位十进制数),判断其是否闰年。闰年的条件是:能被4整除、但不能被100整除,或者能被400整除。
3、给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。90分以上为’A’,80-89分为’B’,70-79分为’C’,60-69分为’D’,60分以下为’E’。
参考答案
一、选择题
1、A 2、C 3、D 4、D 5、B 6、A 7、D 8、A
9、D
二、填空题
1、0 1 1
2、((y%4==0)&&(y0!=0))||(y@0==0)
3、a=10,b=9,c=11
三、看程序写结果
1、x=2(画流程图可以看出结果)
2、i=1
四、编程题
1、main()
{int a,b,c;
Scanf(“%d,%d,%d”,&a,&b,&c);
If(a
If(b
Printf(“max=%d\n”,c);
Else
Printf(“max=%d\n”,b);
Else if(a
Printf(“max=%d\n”,c);
Else
Printf(“max=%d\n”,a);
}
2、 main()
{int year, leap;
Scanf(“%d”,&year);
{If((year%4= =0&&year0!=0)||(year@0= =0))leap=1;
Else leap=0;}
If(leap)
Printf(“%d is a leap year ”,year);
Else(“%d is not a leap year ”,year);
}
1、 main()
{float score;
Char grade;
Scanf(“%f”,&score);
While(score>100||score<0)
{printf(“\n输入有误,请重输”);
Scanf(“%f”,&score);
}
Switch(int)(score/10)
{case 10:
Case 9:grade=’A’;break;
Case 8:grade=’B’;break
Case 7:grade=’C’;break
Case 6:grade=’D’;break
Case 5:
Case 4:
Case 3:
Case 2:
Case 1:
Case 0:grade=’E’;
}
Printf(“成绩是%5.1f,相应的等级是%c\n”,score,grade);
}