《C语言程序设计》复习题有答案 下载本文

《C语言程序设计》复习题

一、 填空题

1、 C 语言的源程序必须通过编译和 链接

后,才能被计算机执行。

2、 C 语言的源程序必须通过 编译 和连接后,才能被计算机执行。

3、 C语言中的标示符可分为关键字、拥护

标示符和 预定义标识符

3类。

4、 C语言中的标示符可分为关键字、

用户标识符 和预定义标示符3类。

5、 在C语言中,用关键字 float 定义

单精度实型变量。

6、 在C语言中,用关键字 double 定义

双精度实型变量。

7、 在C语言中,用关键字 char

定义

字符型变量。

8、 在C语言的赋值表达式中,赋值好左

边必须是 变量

9、 设C语言中的一个int型数据在内存

中占2个字节,则int型数据的取值范围为 -32768--32768 。

、 若有定义语句:int s=6;则表达式

s%2+(s+1)%2的值为

1 。

、 若a是int型变量,且a的初值为6,

则执行表达式a+=a-=a*a后a的值为 -60 。

、 若a是int型变量,则执行表达式

a=25/3%3后a的值为 2 。

、 在程序运行过程中,其值不能被改变

的量称为 常量 。 、 C程序中定义的变量,代表内存中的一个 存储单元 。

、 C语言中,int类型数据字符占内存 2

个字节。

、 C语言中,char类型数据占内存 1 个字节。

、 C语言的字符常量是用 单引号 括起

来的一个字符。

、 语句printf(“\\n”);的作用是换行输出. 19、 10/3的结果是 3 。

20、 10%3的结果是 1 。 21、 C语句的最后用 ; 结束。

22、 要使用putchar函数,在#include命令

行中应包含的头文件是 #include

23、 要使用getchar函数,在#include命令

行中应包含的头文件是 #include

24、 为表示关系|x|≥9;应使用的C语言表

达式是 x<=-9 || x>=9 。 25、 为表示关系|x|≤9;应使用的C语言表达式是

x>=-9&&x<=9 。

26、 C语言中用 1 表示逻辑值“真”。

27、 C语言中用 0 表示逻辑值“假”。 28、 当a=3,b=2,c=1时;表达式f=a>b>c

的值是

0 。

29、 以下程序段的输出结果是 83 。

int x=0123; printf(“%d\\n”,x);

30、 以下程序段的输出结果是 291 。

int x=0x123; printf(“%d\\n”,x);

31、 以下程序段的输出结果是 d1 。

int x=0321; printf(“%x\\n”,x);

32、 若A的ASCII为65,则以下程序段的

输出结果是

D 。

char x=’A’; printf(“%c”, x+3);

33、 以下程序段的输出结果是 51 。

char x=’0’; printf(“%d”, x+3);

34、 以下程序段的输出结果是 0

0.500000

int n=2; float x=2.0; printf(“%d %f”,1/n,1/x);

35、 以下程序段的输出结果是

67.000000

101112131415161718int n=2; float x=2.0;char a=’A’; printf(“ %f”,1/n+x+a);

36、 以下程序段的输出结果是

x=3.600000 i=3 。

float x=3.6; int i; i=(int)x; printf(“ x=%f i=%d”,x,i);

37、 以下程序段的输出结果是

45.500000

float x=9.0; printf(“ %f”,x=45.5);

38、 以下程序段的输出结果是 -100

int x=100,y=200;

printf(“ %d”,(x+y,x-y));

39、 以下程序的输出结果为

-4.177774,fffc,65532 。

main() {short I; i=-4;

printf(“\\n%d,%o,%x,%u”,i,i,i,i); }

40、 以下程序的输出结果为 *3.140000

3.142 。

main()

{printf(“*%f,%4.3f\\n”,3.14,3.1415); }

41、 以下程序的输出结果为

000325,3.141596e+000 。

main() {int a=325;double x=3.141596; printf(“d,%+e\\n”,a,x); }

42、 若从键盘上输入987654321,以下程序

的输出结果是 32.00 。

main()

{int a;float b,c;

scanf(\ printf(\

}

43、 以下程序段的输出结果是 a=12

int a=12;

if(a>12) printf(“a=%d”,a); else printf(“a=%d”,a);

44、 以下程序段的输出结果是 *** 。

int a=1;

if(--a) printf(“###”); else printf(“***”);

45、 若变量已正确定义,以下语句段的输出

结果是 *%*# 。

x=0; y=2; z=2;

switch (x)

{ case 0: switch(y==2) {case1: printf(“*”);

case2: printf(“%”); break; }

case 1 : switch( z) {

case 1: printf( “$ ); case 2: printf(“*”); printf(“#”); } }

46、 以下程序的输出结果是 a=2,b=1 main()

{int x=1,y=0,a=0,b=0; switch(x) {case 1: switch(y) {case 0:a++;break; case 1:b++;break; } case 2: a++;b++;break; }

printf(\ }

47、 以下程序的运行结果是 1 。

main()

{int x,y,z; x=3;y=3; z=x==y;

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

48、 以下程序的运行结果是 1,0 。

main()

{int x,y,z; x=1;y=1;z=0; x=x||y&&z;

printf(“%d,%d”,x,x&&!y||z); }

49、 以下程序的运行结果是 F 。

main()

{if(2*2==5<2*2==4) printf(“T”); else

printf(“F”); }

50、 若运行时输入5999,则以下程序的运

行结果是 3635.4 。

main()

{int x;float y; scanf(“%d”,&x);

if(x>=0&&x<=2999)y=18+0.12*x;

if(x>=3000&&x<=5999)y=36+0.6*x;

if(x>=6000&&x<=10000)y=54+0.3*x;

printf(“%6.1f”,y); }

51、 以下程序的输出结果是 2 。

main() {int x,y; x=y=2; if(x==1) if(x==2

printf(“%d\\n”,x=x+y); else

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

52、 以下程序的输出结果是 20 。

main()

{ int a,b,c,d,x; a=c=0;b=1;d=20; if(a)d=d-10; else if(!b) if(!c)x=15; else x=25;

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

53、 以下程序的输出结果是 -1 。

main()

{nt a=2,b=3,c; c=a;

if(a>b) c=1;

else if(a==b) c=0; else c=-1;

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

54、 以下程序的输出结果是 01 。

main()

{int x,y,z; x=3; y=z=4;

printf(“%d,”(x>=y>=x)?1:0);

printf(“%d\\n”,z>=y&&y>=x); }

55、 若a、b、c均已正确定义且a=0、b=2、

c=3,则以下程序的输出是 &# 。

switch(a)

{case 0:switch(b==2) { case 1:printf(“&”);break; case 2: printf(“%”);break; }

case 1: switch(c)

{case 1:printf(“$”); case

2:printf(“*”);break;

default:printf(“#”); } }

56、 以下程序段的输出结果是 **1** 57、 **3**

int x=1,y=0; switch(x) {case 1:

switch(y) {case

0:printf(“**1**\\n”);break; case

1:printf(“**2**\\n”);break; }

case 2:printf(“**3**\\n”); } }

58、 下面程序段的运行结果是 ** 。

x=2; do{

printf(“*”);x--; }while(!x==0);

59、 下面程序段的运行结果是 -5 。

i=1;a=0;s=1;

do{a=a+s*i;s=-s;i++;}while(i<=10);

printf(“%d”,a);

60、 下面程序段的运行结果是 16,15

main()

{int i,x,y; i=x=y=0; do {++i;

if(i%2!=0){x=x+i;i++;} y=y+y++;

}while(i<=7);

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

61、 下面程序段的运行结果是 sum=19

main()

{int i,t,sum=0; for(t=i=1;i<=10;) {sum+=t;++i;

if(i%3==0) t=-i;

else t=i; }

printf(“sum=%d”,sum); }

62、 下面程序段的运行结果是 *

63、 # 。

main() {int i;

for(i=1;i<=5;i++) switch(i%2) {case

0:i++;printf(“#”);break; case 1:i+=2;printf(“*”); default:printf(“\\n”); } }

64、 下面程序段的运行结果是 ****#

main()

{int i,j=4;

for(i=j;i<=2*j;i++) switch(i/j) {case 0: case

1:printf(“*”);break; case 2:printf(“#”); } }

65、 以下程序的运行结果是 3 5 8 。

main()

{int x[5],i; x[0]=1;x[1]=2; for(i=2;i<5;i++) x[i]=x[i-1]+x[i-2];

for(i=2;i<5;i++)printf(“%d”,x[i]); }

66、 以下程序段的输出结果是 8 。

int k=1,n=4,m=1; while(k<=--n)m*=2; printf(“%d\\n”,m);

67、 (6.3 p107)以下程序段输出结果是

0