18.可判断非0变量 a为正,b为负的正确表达式是_________。 )
A) a*b <0 B) (a>0||b >0)&&a*b <0
C) (a<0||b<0)&&a*b <0 D) a>0&&a*b<0
(
19.假定 int a=3, b=2, c=1, 表达式: (c==a>c)+(a/b) 的值是_________。 )
A) 1.75 B) 2 C) 1.5 D) 2.5
20.设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的
(
表达式是__________。 ( )
A) a&&b B) a<=b C) a||b+c&&b-c D) !((a
21、如果a=4,b=3,c=2,d=1,则条件表达式a<b?a:c<d?c:d的值是。 ( ) A、1 B、2 C、3 D、4 22、设有定义int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式(m=ad)后,n的值为。 ( ) A、1 B、2 C、3 D、0
二、填空题:
1、设x=3,y=-4,z=5,则表达式!(x>y)+(y!=z)||(x+y)&&(y=z)的值是 。 2、 当a=5,b=4,c=2时,表达式 a>b!= c的值是 _______。
3、 为表示关系x ≥ y ≥z,正确的C语言逻辑、关系表达式为 。 4、有int a=3,b=4,c=5,x,y;,则以下表达式的值为
!(x=a)&&(y=b)&&c
5、在C语言中,表示逻辑\真\值用 .
6、当a=3,b=2,c=1时,表达式f=a>b>c的值是 .
7、与if(x==0) 等价的表达式写法写法是 。
8、若定义:int a=5,b=2,c=1; 则表达式 a-b>c||b==c 的值是 ; 表达式 a-b>c&&b==c 的值是 。
9、 “: ?”条件运算符是C语言中唯一的三目运算符。由其连接的表达式为条件表达式,
其格式为: <表达式1>?<表达式2>:<表达式3> 。执行过程:首先计算表达式1的值,如果表达式1的值是“真”(非0),则整个表达式的值为 的值;如果表达式1的值是“假”(0),则整个表达式的值为 的值。 10.C语言提供的三种逻辑运算符是______、______和_______。 11.若已知a=10,b=20,则表达式!a
12.若a,b变量的值任意,表达式(a==b)&&(a>b)的值是_________。 13.设x,y,z均为int型变量,请写出:
(1)x、y中至少有一个小于z的表达式_____________; (2)x、y都大于z的表达式____________;
14、能正确表示a>=10或a<=0的关系表达式为 。 15、以下程序的功能是:输出a、b、c三个变量中的最小值,请填空。 #include
第 19 页 共 88 页
main()
{ int a,b,c,min;
scanf(\
if( ) min=a; else min=b; if( ) min=c; printf(\
三、看程序写结果:
1、main()
{ int x, y, z ; x=y=z=1 ;
z=++x&&++y||++z ; 运行结果: printf(\
2、main( ) { int m=5;
if(m++>5)printf(\,m); 运行结果: else printf(\,m--); }
3、若从键盘输入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); }
4、 以下程序运行后的输出结果是 。 main()
{ int p,a=5; if(p=a!=0)
printf(\else
printf(\}
5、 源程序如下: #include
{ int a=2,b=7,c=5; switch(a>0)
第 20 页 共 88 页
{case 1: switch(b<0)
{case 1: printf(\ case 2: printf(\ }
case 0: switch(c==5)
{case 0: printf(\case 1: printf(\case 2: printf(\}
default: printf(\}
printf(\
运行结果:
6、main( )
{ int x=1, y=2;
switch(x) {case 0 :
case 1 : switch(y) 运行结果:
{ case 1:
case 2: y+=2; }
case 2 : x++; }
printf(“ %d, %d\\n” , x, y) ; }
7.以下程序的输出结果是 。 main()
{ int x=1,y=1,a=0,b=0; switch(x)
{ case 1:switch(y) {case 0: a++; case 1: b++;
case 2: b++;break;
}
case 2: a++;b++;break; case 3: a++;b++;
}
printf(“a=%d,b=%d\\n”,a,b); }
8. 以下程序段的运行结果是_________。
int a,b,c; a=50;b=100;c=30;
if(a>b) { a=b;b=c;c=a;}
第 21 页 共 88 页
printf(\
9.下面程序的输出结果是
void main() { int i=10; switch(i) {
case 9:i+=1; case 10:i+=1; case 11:i+=1; case 12:i+=1; }
printf(“i=%d\\n”,i); }
( )
四、编程题:
1、从键盘输入3个整数,按照从大到小的顺序输出。 2、设有一个函数如下。编程,输入x,求y值。 y=错误!未找到引用源。
2
3、求一元二次方程ax+bx+c=0的根,要求考虑所有根的情况。 4、设有一个函数如下。编程,输入x,求y值。 y=错误!未找到引用源。
5.输入一个字符,判断其是否是大写字母,如果是,则转换成为小写字母,然后输出字符,如果不是小写字母,则直接输出字符。 6、有分段函数 x, x<1 y= 2x -1,1<=x<10 3x –11, x>=10
编写一程序,输入x,输出相应的y值。
7、分别用两种判断方法,写出判断一个年份为闰年的程序。
三、参考答案
一、选择题:
1~5 :CDCCB 6~10:BCCCC 11~15:DCDBC 16~20:BDDBD 21、A 22、B 二、填空题:
1、1 2、1 3、(x>=y)&&( y>=z ) 4、0 5、非零值 6、0 7、if(!x) 8、1 0 9、表达式2 ,表达式3 10、 ! ,&& ,|| 11、1 12、0 13、(1)x 第 22 页 共 88 页