C语言复习题 下载本文

20. 以下程序的运行结果是 。 main( ) {

int c,x,y; x=0; y=0; c=0;

c=x++&&y++;

printf(“\\n%d%d%d\\n”,x,y,c); }

A)100 B)211 C)011 D)001 21.判断字符型变量ch为大写字母的表达式是 。 A)?A?<=ch<=?Z? B)(ch>=?A?)&(ch<=?Z?) C)(ch>=?A?)&&(ch<=?Z?) D)(ch>=?A?)AND(ch<=?Z?) 22.判断字符型变量ch为小写字母的表达式是 。 A)?a?<=ch<=?z? B)(ch>=a)&&(ch<=z) C)(ch>=?a?)||(ch<=?z?) D)(ch>=?a?)&&(ch<=?z?) 23.以下if语句书写正确的是 。 A)if(x=0;) B)if(x>0)

printf(”%f”,x); {x=x+1; printf(”%f”,x);} else printf(”%f”,-x); else printf(”%f”,-x); C)if(x>0); D)if(x>0)

{x=x+1; printf(”%f”,x);} {x=x+1; printf(”%f”,x) } else printf(”%f”,-x); else printf(”%f”,-x); 24.分析以下程序: main( )

{ int x=5,a=0,b=0;

if(x=a+b) printf(“** **\\n”); else printf(“## ##\\n”); 以上程序 。

A)有语法错,不能通过编译 B)通过编译,但不能连接 C)输出** ** D)输出## ## 25. 写出下面程序的执行结果 。 main( )

{int x,y=1;

if(y!=0) x=5; printf(“%d\\t”,x); if(y= =0) x=3; else x=5;

printf(“%d\\t\\n”,x); }

A)1 3 B)1 5 C)5 3 D)5 5 26. 若有以下变量定义: float x; int a,b;

则正确的switch语句是 。 A)switch(x)

{ case 1.0:printf(\case 2.0:printf(\}

B)switch(x) { case 1,2:printf(\case 3:printf(\}

C)switch(a+b)

{ case 1:printf(\case 2*a:printf(\}

D)switch(a+b)

{ case 1:printf(\case 1+2:printf(\}

27. 以下关于运算符优先顺序的描述正确的是 。 A)关系运算符<算术运算符<赋值运算符<逻辑运算符 B)逻辑运算符<关系运算符<算术运算符<赋值运算符 C)赋值运算符<逻辑运算符<关系运算符<算术运算符 D)算术运算符<关系运算符<赋值运算符<逻辑运算符 28. 能正确表示a>=10或a<=0的关系表达式是 。

A)a>=10 or a<=0 B)a>=10 | a<=0 C)a>=10 && a<=0 D)a>=10 | | a<=0 29. 以下不正确的if 语句形式是 。 A)if ( x > y && x != y ) ; B)if ( x = = y ) x + = y ;

C)if ( x != y ) scanf ( “%d”, &x) else scanf ( “%d”, &y); D)if ( x < y ) { x++; y++;}

30. 能表示整数x符合下面两个条件的语句是 。

(1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除. A)(x%4==0&&x0!=0)||x@0==0 B)(x%4==0||x0!=0)&&x@0==0 C)(x%4==0&&x@0!=0)||x0==0 D)(x0==0||x%4!=0)&&x@0==0

31. 设有如下定义:char ch=?z?,则执行下面语句 后变量ch是值为: 。

ch=(?A?<=ch&&ch<=?Z?)?(ch+32):ch

A)A B)a C)Z D)z

32. 若I为整型变量,则下列程序段的运行结果为 。 I=322;

if(I%2==0) printf(“#####”) else printf(“*****”);

A)##### B)#####*****

C)***** D)有语法错误,无法输出结果

33. 已知 int x=30,y=50,z=80;以下语句执行后变量x、y、z的值分别为: 。 if (x>y||xz) z=x; x=y; y=z;

A)x=50, y=80, z=80 B)x=50, y=30, z=30 C)x=30, y=50, z=80 D)x=80, y=30, z=50

34. 已知 int x=30,y=50,z=80;以下语句执行后变量x、y、z的值分别为: 。 if (x>y||xz) { z=x; x=y; y=z; }

A)x=50, y=80, z=80 B)x=50, y=30, z=30 C)x=30, y=50, z=80 D)x=80, y=30, z=50 35. 以下程序的输出结果是 。 main( ) {int x=2,y=-1,z=2;

if (x

A)3 B)2 C)1 D)0 36. 设a、b和c是int型变量,且a=2,b=4,c=6,则下面表达式中值为0的是: A)‘a’+ ?b? B)a<=b

C)a||b+c&&b-c D)!( (a

37. 在C的if语句中,可用作判断的表达式是: 。 A)关系表达式 B)逻辑表达式 C)算术表达式 D)任意表达式

38. 下面能正确表示变量a在区间[0,5]或(6,10)内的表达式为: A)0<=a || a<=5 ||6

39. 为了表示关系x>=y>=z,应使用C语言表达式 。 A)(x>=y)&&(y>=z) B)(x>=y)AND(y>=z) C)(x>=y>=z) D)(x>=y)&(y>=z) 40.下面程序的输出结果是 。 main() {int x=40,y=4,z=4; x=y= =z; printf(“%d”,x); x=x= =(y-z); printf(%d”,x); } A)4 0 B)4 1 C)1 1 D)1 0 41.若x=3,y=z=4,则下列表达式的值分别为 。 (1)(z>=y>=x)?1:0 (2)z>=y&& y>=x

A)0 1 B)1 1 C)0 0 D)1 0

。。

42.若x=3,y=z=4,则下列表达式的值分别为 。 (1)(z>=y>=x)?1:0 (2)y+=z,x*=y

A)0 24 B)1 8 C)0 8 D)1 12 4.2 填空题

1.设x=1,则表达式1

(1)a或b中有一个大于零:__________。

(2)x大于零,并且x小于等于10:__________。 (3)a、b和c同时等于1.5:__________。

(4)p小于a或p小于b或p小于c:__________。 3.写出下列各逻辑表达式的值,设int a=3,b=6,c=8。 (1)a+b>c &&b==c:__________。 (2)a||b+c && bc:__________。 (3)!(a>b)&& ! c||1:__________。

(4)!(x=a)&&(y=b)&& 1:__________。 (5)!(a+b)c && b+c/2:__________。

4.将变量a、b、c中的较大者赋给变量max的条件表达式为__________。 5.下列程序执行后的输出结果是__________。 #include \main( )

{ int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3;

printf(\}

6.以下程序执行后的输出结果是__________。 #include \main( ) { int p,a=5; if(p=a!=0)

printf(\ else

printf(\}

7.以下程序执行后的输出结果是__________。 #include \main( )

{ int a=4,b=3,c=5,t=0; if(a

printf(\