c语言习题哟4

第四章

TYPE=02 AND KENID=33000004
<<<
4,3
B

判断字符型变量c1是否为大写字母的正确表达式为______。
(A) 'Z'<=c1<='Z' (B) (c1>='A') &&(c1<='Z')
(C) ('A'>=c1)||('Z'<=c1) (D) (c1>='a')&&(c1<='Z')
>>>
<<<
4,3
C

已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是______。
(A) 0 (B) 语法错 (C) 1 (D)“假”
>>>
<<<
4,2
C

设a=3,b=4,c=5,则逻辑表达式"!(a+b)*c-1&&b+c%2"的值是______。
(A) -1 (B) 0 (C) 1 (D) 2
>>>
<<<
4,3
D

请从以下表达式中选出a为偶数时值为0的表达式______。
(A) a%2==0 (B) !a%2!=0 (C) a/2*2-2==0 (D) a%2
>>>
<<<
4,3
D

能正确表示a和b同时为正或同时为负的逻辑表达式是______。
(A) (a>=0‖b>=0)&&(a<0‖b<0)
(B) (a>=0&&b>=0)&&(a<0&&b<0)
(C) (a+b>0)&&(a+b<=0)
(D) a*b>0
>>>
<<<
4,3
C

能正确表示逻辑关系:"0≤a≤10"的C语言表达式是______。
(A) 0<=a<=10 (B) a>=0,a<=10
(C) a>=0 &&a<=10 (D) a>=0‖a<=10
>>>
<<<
4,3
C

对y在[3,23]或[100,200]范围内为真的表达式为______。
(A) (y>=3)&&(y<=23)&&(y>=100)&&(y<=200)
(B) (y>=3)||(y<=23)||(y>=100)||(y<=200)
(C) (y>=3)&&(y<=23)||(y>=100)&&(y<=200)
(D) (y>=3)||(y<=23)&&(y>=100)||(y<=200)
>>>
<<<
4,3
D

在C语言中,if语句后的一对圆括号中,用以决定分支流程的表达式______。
(A) 只能用逻辑表达式 (B) 只能用逻辑表达式或关系表达式
(C) 只能用关系表达式 (D) 可用任意表达式
>>>
<<<
4,3
B

为避免嵌套的条件语句if-else的二义性,C语言规定:else与______配对。
(A) 缩排位置相同的if (B) 其之前最近的if
(C) 其之后最近if (D) 同一行上的if
>>>
<<<
4,3
A

下列运算符中优先级最低的是______。
(A) *= (B) && (C) + (D) !=
>>>
<<<
4,2
B

设ch是字符型变量,其值为A,且有下面的表达式:
ch=!(ch>='A'&&ch<='z')?ch:(ch+32),则表达式的值是______。
(A) A (B) a (C) 2 (D) z
>>>
<<<
4,2
B

设ch是

字符型变量,其值为b,且有下面的表达式:
ch!=(ch>='a'&&ch<='z')?ch:(ch-32),则表达式的值是______。
(A) B (B) b (C) 1 (D) 0
>>>
<<<
4,3
D

设a=4,b=3,c=2,d=1,则表达式a<b?b:c<d?a:d的结果为______。
(A) 4 (B) 3 (C) 2 (D) 1
>>>
<<<
4,3
A

能正确表示a、b不能同时为零的逻辑表达式是______。
(A) a==0&&b!=0||a!=0&&b==0
(B) (a==0)||(b==0)
(C) (a!=0)||(b!=0)
(D) a*b==0
>>>
<<<
4,1
B

读程序,程序运行结果是【 】。
#include <stdio.h>
void main()
{ int a=5,b=4,c=3,d=2;

if (a>b>c) printf("%d\n", d);
else if ( (c-1>=d) ==1) printf("%d\n", d+1);
else printf("%d\n", d+2);
}
(A) 2 (B) 3 (C)4 (D)5
>>>
<<<
4,3
B

表达式2<3&&8<=(a=10)的结果是______。
(A) 0
(B) 1
(C) False
(D) True
>>>
<<<
4,3
B

若i为整型变量,且有程序段如下,则输出结果是______。
i=122;
if(i%2) printf("####");
else printf("****");
(A) #### (B) ****
(C) ####**** (D) 有语法错误, 无输出结果
>>>
<<<
4,2
A

若变量都已正确说明,则以下程序段输出为______。
int a=2,b=1,c,d;
if (a==b) c=d=a;
else c=b;
d=b;
printf("c=%d,d=%d",c,d);
(A) c=1,d=1 (B) c=1,d=2 (C) c=2,d=1 (D) c=2,d=2
>>>

TYPE=02 AND KENID=04000020
<<<
4,2
C

请阅读以下程序:
# include <stdio.h>
void main()
{ int a=2,b=0,c=0;
if(a=b+c) printf("###");
else printf("&&&"); } 以上程序______。
(A) 有语法错不能通过编译 (B) 可以通过编译但不能连接
(C) 输出&&& (D) 输出###
>>>
<<<
4,3
B

以下______为不正确的if语句。
(A) if(x<y);
(B) if(x!=y) scanf("%d",&x) else scanf("%d",&y);
(C) if(x==y) x+=y;
(D) if(x<y) {x++;y++;}
>>>
<<<
4,2
C

读程序,程序运行结果是【 】。
#include <stdio.h>
void main ( )
{ int m=5;
if (m++>5) printf("%d\n",m);
else printf("%d\n",m--); }

(A) 4 (B) 5 (C)6 (D) 7
>>>
<<<
4,2
B

设int a = 2,b = 3, x = 1;则执行语句
if (a>2)
if (b>2)
x = 2 ;
else x = 3;
后 x 的值是______。
(A) 0 (B) 1 (C) 2 (D) 3
>>>
<<<
4,3
A

以下if语句语法正确的是_

_____。
(A) if (x>0) (B) if (x>0) printf ( "%f ",-x )
{ x=x+y; printf ("%f ", x);} else printf ("%f",-x);
else printf ("%f ", -x);
(C) if (x>0) (D) if(x>0)
{x=x+y ; printf ("%f ", x);}; { x=x+y ; printf ("%f", x)}
else printf ("%f", -x) ; else printf ("%f", -x);
>>>
<<<
4,2
B

读程序,程序运行结果是【 】。
# include <stdio.h>
void main()
{ int i=0, j=0, k=6;
if ((++i>0)||(++j>0)) k++;
printf("%d, %d, %d\n", i, j, k);
}
(A) 1, 0, 6 (B) 1, 0, 7
(C) 1, 1, 6 (D) 1, 1, 7
>>>
<<<
4,2
A

读程序,程序运行结果是【 】。
#include <stdio.h>
void main()
{ int x=1,a=0,b=0;
switch(x)
{ case 0: b++;
case 1: a++;
case 2: a++;b++; }
printf("a=%d,b=%d\n",a,b);
}
(A) a=2,b=1 (B) a=2,b=2
(C) a=1,b=2 (D) a=1,b=1

>>>
<<<
4,2
A

与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是______。
(A) if (x>0) y=1; (B) if(x)
els
e if(x<0)y=-1; if(x>0)y=1;
else y=0; else if(x<0)y=-1;

(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;
>>>
<<<
4,2
B

读程序,程序运行结果是【 】。
#include <stdio.h>
void main()
{ float x=2.0,y;
if(x<0.0) y=0.0;
else if(x<5.0) y=1.0/x;
else y=1.0;
printf("%4.1f\n",y);
}
(A) 0.0 (B) 0.5
(C) 1.0 (D) 不确定
>>>
<<<
4,2
C

以下程序段中不能根据x值正确计算出y值的是______。
 (A) if(x>0) y=1; (B) y=0;
else if(x==0) y=0; if(x>0) y=1;
else y=-1; else if(x<0) y=-1 ;
 (C) y=0; (D) if(x>=0)
if(x>=0); if(x>0) y=1;
if(x>0) y=1 ; else y=0;
else y=-1; else y=-1;
>>>
<<<
4,2
A

以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是______。
(A) if((a>b)&&(b>c)) k=1; (B) if((a>b)||(b>c)) k=1
else k=0; else k=0;
(C) if(a<=b) k=0; (D) if(a>b) k=1;
else if(b<=c) k=1; else if(b>c) k=1;
else k=0;
>>>
<<<
4,2
D

假定w、x、y、z、m均为int型变量,有如下程

序段:
w=1; x=2; y=3; z=4;
m=(w<x)?w : x; m=(m<y)?m : y; m=(m<z)?m: z;
则该程序运行后,m的值是______。
(A) 4 (B) 3 (C) 2 (D) 1
>>>
<<<
4,3
B

若有条件表达式(expression) ?a++:b--,则以下表达式中能完全等价于表达式(expression)的是______。
(A) (expression==0) (B) (expression!=0)
(C) (expression==1) (D) (expression!=1)
>>>
<<<
4,2
D

若有以下定义: float x;int a,b;则正确的switch 语句是______。
(A) switch(x) (B) switch(x)
{ case 1.0:printf("*\n"); { case 1:printf("*\n");
case 2.0:printf("**\n"); } case 2:printf("**\n"); }
(C) switch (a+b) (D) switch (a+b);
{ case 1,2:printf("*\n"); { case 1:case 2: printf("*\n");
}
>>>

TYPE=01 AND KENID=33000004
<<<
1,3
1

已知a=2.5,b=2,c=3.6,表达式a>b&&c>a || a<b&&!c>b的值是【 】。
>>>
<<<
1,3
x>2||x<-2

表示"整数x的绝对值大于2"时值为"真"的C语言表达式是【 】。
>>>
<<<
1,3
!

C语言提供的三种逻辑运算符是&& 、||和【 】。
>>>
<<<
1,3
1

已知a=3,b=-4,c=5,表达式!(a>b)+(b!=c)||(a+b)&&(b-c)的值是【 】。
>>>
<<<
1,2
(3+a)*(b+8)+sin(45)<=log(x)

表达式(3+a)(b+8)+sin45°≤lnx的C语言表达式是【 】。
>>>
<<<
1,2

(0<=a&&a<=5)&&(a!=3)

表达式0≤a≤5且a≠3的C语言表达式是【 】。
>>>
<<<
1,2
c=c+5

以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。如'a'变成'f','w'变成'b'。请在空中填入正确内容。
#include <stdio.h>
void main()
{ char c; c=getchar();
if(c>='a'&&a<='u') 【 】;
else if(c>='v'&&c<='z') c=c-21;
putchar(c); }
>>>
<<<
1,2
b>a>0

阅读下面程序:
#include <stdio.h>
void main()
{ 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("s=%d, t=%d", s, t); }
为了使输出结果t=4, 输入量a和b应满足的条件是【 】。
>>>
<<<
1,2
3

以下程序运行后的输出结果是【 】。
#include <stdio.h>
void main( )
{ int a=1, b=2, c=3;
if (a)
{ if (b<0) c=0; }
else c++ ;
printf("%d\n",c);
}
>>

>
<<<
1,2
3

运行下面的程序,从键盘上输入3,
#include <stdio.h>
void main()
{ int x; scanf("%d",&x);
if(x>5)printf("%d",x);
else printf("%d\n",x--);
}
程序运行结果是【 】。
>>>
<<<
1,2
'c'

读程序,程序运行结果是【 】。
#include <stdio.h>
void main()
{ char m='b';
if(m++> 'b') printf(" %c\n",m);
else printf("%c\n",m--); }

>>>
<<<
1,2
0.500000

读程序,运行时输入2.0(回车)
#include<stdio. h>
void main()
{ float a,b; scanf("%f",&a);
if (a>10.0) b=1.0/a;
else if((a<0.5)&&(a!=2.0))b= 1.0/(a+2.0);
else if(a<10.0) b= 1.0/a ;
else b=10.0;
printf("%f\n",b);
}
程序运行结果是【 】。
>>>

TYPE=04 AND KENID=33000004
<<<
2,3
B

switch选择结构中必须有default子句。
>>>
<<<
2,3
B

如果x>y或a<b为真,那么表达式(x>y&&a<b)为真。
>>>
<<<
2,3
A

假定变量x,y,z在说明时已赋初值,则if ((x=y+5)>0) z=x;是正确的。
>>>
<<<
2,3
B

int a=1,b=0,c=1;,则!(a+b)+c-0&&b+c/2的值为1。
>>>
<<<
2,3
B

语句if(a) x=1;与 if(a==0)x=1;等价。
>>>
<<<
2,3
A

if (x>0) {x=x+y ; printf ("%f ", x);} else printf ("%f", -x) ; 语句语法是正确的。
>>>
<<<
2,3
A

if语句后面的表达式并不限于是关系表达式或逻辑表达式,而可以是任意表达式。if语句中可以再嵌套if语句。
>>>
<<<
2,3
A

!b==c||d<a等价于((!b)==c)||(d<a)。
>>>
<<<
2,3
B

5>0 && 4>2的结果为假。
>>>
<<<
2,3
A

a&&b&&c逻辑表达式中,当a为假时将不再计算b和c的值了。
>>>

相关文档
最新文档