C语言考试试题精选.doc

  • 格式:doc
  • 大小:67.00 KB
  • 文档页数:9

习题1

一、选择题:

1. 按照C语言规定的用户标识符命名规则,不能出现在标

识符中的是(B)

A. 大写字母

B. 连接符

C. 数字字符

D. 下划线

2. 下列数据中是合法的整型常量的是 (BCDEF )

A. 3E2 B. -32768 C. 18)000

D. Oxffff E. 029 F. 0xl2H

3. 下列数据中是合法的字符常量的是 (BEH)

A. “A” B. '!' C. 'AB'

D. h E. '\\' F. "\1234‘

G. '\xl23' H. '\0' I. '\k'

4. 设有定义:intk=0;,以下选项的四个表达式中与其他

三个表达式的值不相同的是 (A )

A. k++ B. k+=l C. ++k D. k+1

5. 有以下程序,其中%11表示按无符号整数输出

main ()

(unsigned int x二OxFFFF; /* x的初值为十六进制 数*/

printf ( "%u\n" , x);

}

程序运行后的输出结果是 (B)

A. -1 B. 65535 C. 32767 D. OxFFFF

6. 设变量x和y均已正确定义并赋值,以下if语句中,在

编译时将产生错误信息的是 (C )

A. if (x++) ;

B.

if(x>y&&y!二0);

C. if (x>y) x一 else y++; D. if (y<0) (;} else x++;

7. 以下选项中,当x为大于1的奇数时,值为0的表达式 (D )

A. x%2=l B. x/2 C. x%2!二0

D.

x%2=0

8. 已知大写字母'A,的ASCII码值是65,小写字母'a' 的ASCII码值是97,以下不能将变量c中大写字母转换为对

应小写字母的语句是 (D )

A. c=(c-A)%26+'a' B. c二c+32

C. c=c~ A' +' a' D. c=('A' +c) %26—'

a'

9. 有以下程序

void main ()

(unsigned char a二2, b二4, c二5, d;

d二a|b; d&二c; printf(〃%d\n〃, d); }

程序运行后的输出结果是(B )

A. 3 B. 4 C. 5 D. 6

二、 填空题:

1. 设x=2. 5, a=7, y二4. 7,则x+a%3*(int) (x+y)%2/4的值

为_2. 5 o

2. 设 a=2 , b二3 , x二3.5 , y二2.5 ,则

(float) (a+b) /2+ (int) x%(int) y 的值为_3. 500000 ________________________________________________

3. 设a=12, n二5,则计算了表达式a%二(n%二2)后,a的值

为—0 ,计算了表达式a+二a-二a*=a后,a的值为_0 。

4. 设a二3, b=4, c=5,计算下面各表达式的值:

(1) a+b>c&&b=c 0 (2) a| |b+c&&b~c 1

(3) ! (a>b)&&!c| |1 1 (4) ! (x=a)&&(y=b)&&0 0

(5) !(a+b)+c-l&&b+c/2 1

三、 写出下面程序运行后的结果。

1. #include "stdio.h"

void main()

{

int a,b;

a=077;

b=a&3;

printf("\40: The a & b(decimal) is %d \n",b);

b&=7;

printf("\40: The a & b(decimal) is %d \n",b); }

:The a & b(decimal) is %3

:The a & b(decimal) is %3

2. #include

void main()

( int

i=8; j=10;

m=++i;

n=j++;

printf(”%d,%d,%d,%d”,i,j,m,n);

}

9,11,9,10

3. #include void main()

( charcl='a',c2=,b',c3=,c',c4=,\10r,c5=,\116,;

printf("a%cb%c\tc%c\tabc\nn,cl,c2,c3);

printf(n\t\b%c %c”,c4,c5);

)

aabb cc abc

AN

4. #include "stdio.h"

void main()

{

int a,b;

a=077;

b=al3;

printf(n\40: The a & b(decimal) is %d \n",b);

bl=7;

printf("\40: The a & b(decimal) is %d \n",b);

}

:The a & b(decimal) is %63

:The a & b(decimal) is %63

5. #include "stdio.h"

void main()

{

int a,b;

a=077;

b=aA3;

printf("\40: The a & b(decimal) is %d \n",b);

bA=7;

printf("\40: The a & b(decimal) is %d \n",b);

:The a & b(decimal) is %60

:The a & b(decimal) is %59

习题2

一、看程序,写运行结果

1. 以下程序运行结果是(2 )。

#include

void main()

{

int x=2,y=-l,z=2;

if(x

if(y<0) z=0; else z+=l;

printf("%d\n",z); }

2. 以下程序的执行结果是(20 )o

#include< stdio. h>

void main()

(

int a,b,c,d,x;

a=c=0;

b=l;

d=20;

if(a) d=d-10;

if(!c)

x=15;

else

x=25;

printf("d=%d\nn,d);

}

3. 以下程序的执行结果是(first

third) o

#include

void main()

(

int x=l,y=0;

switch(x)

{

case 1:

switch(y)

(

case O:printf(”first\n”);break;

case 1:printf(nsecond\nn);break;

}

case 2:printf(nthird\nn);

}

4. 以下程序在输入5, 2之后的执行结果是(s=2,t=3)。

#include

void main()

{

int s,t,a,b;

scanf("%d,%dn,&a,&b);

s=l;

t=l;

if(a>0) s=s+l;

if(a>b) t=s+t;

else if(a==b) t=5;

else

t=2*s;

printf("s=%d,t=%d\n",s,t);

)

5. 以下程序的执行结果是(#&)。

#include

void main()

{

int a=2,b=7,c=5;

switch(a>0)

(

case l:switch(b<0)

{

case 1:printf(" @ ");break;

case 2:printf("!");break;

}

case 0:switch(c==5)

(

case O:printf("*");break;

case 1:printf(n#H);break;

case 2:printf("$");break;

}

default: printf(" & ”);

}

printfC,\nH);

)

6. 以下程序运行结果是(55 1 )o

#include

void main()int x,y=l;

if(y!=O) x=5;

printf(”\t%d\iT ,x);

if(y==O) x=4;

else x=5;

printf(n\t%d\nn ,x);

x=l;

if(y

if(y>0) x=4;

else x=5;

printf(H\t%d\nn ,x);

)

7. 以下程序的运行结果是(4 -2

4 0

4 -2 )

#include

void main()

{

int x , y=-2, z=0;

if((z=y)<0) x=4;

else if (y==0)

x=5;

else

x=6;

printf("\t%d\t%d\n" ,x, z);

if(z=(y==O))

x=5;

x=4;

printf("\t%d\t%d\n" ,x,z);

if(x=z=y) x=4;

printf("\t%d\t%d\n" ,x,z);

)

二、程序填空。

1. 输入两个整数,按从大到小的顺序输出。

#include

void main()

{

int x,y,z;

scanf(”%d,%d”,&x,&y);

if( xvy)

(

z=x; x=y;y=z _________

)