文档库 最新最全的文档下载
当前位置:文档库 › c语言作业答案

c语言作业答案

c语言作业答案
c语言作业答案

No.: Name:

第1讲C语言概述

注:本系列习题中符号表示一串字符中的空格,符号表示下划线,符号ê表示换行回车,即键盘上Enter键。

一、选择题

1. 一个C程序的执行是从A 。

A) 本程序main函数开始,到main函数结束

B) 本程序文件第一个函数开始,到最后一个函数结束

C) 本程序文件第一个函数开始,到本main函数结束

D) 本程序main函数开始,到本程序文件最后一个函

数结束

2. 以下叙述不正确的是D 。

A) 一个C源程序必须包含一个main函数

B) 一个C源程序可由一个或多个函数组成

C) C程序的基本组成单位是函数

D) 在C程序中,注释说明只能位于一条语句的后面

3. 以下叙述正确的是C 。

A) 在对一个C程序进行编译的过程中,可发现注释中

的拼写错误

B) 在C程序中,main函数必须位于程序的最前面

C) 语言本身没有输入输出语句

D) C程序的每行中只能写一条语句

4. 一个C语言程序是由B 。

A) 一个主程序和若干个子程序组成

B) 函数组成

C) 若干过程组成

D) 若干子程序组成

5. 以下叙述中正确的是C 。

A) C语言比其他语言高级

B) C语言可以不用编译就能被计算机识别执行

C) C语言以接近英语国家的自然语言和数学语言作为

语言的表达形式

D) C语言出现的最晚,具有其他语言的一切优点

6. 下列叙述中正确的是D 。

A) C语言编译时不检查语法

B) C语言的子程序有过程和函数两种

C) C语言的函数可以嵌套定义

D) C语言的函数可以嵌套调用

7. 以下叙述中正确的是A 。

A) 构成C程序的基本单位是函数

B) 可以在一个函数中定义另一个函数

C) main函数必须放在其他函数之前

D) 所有被调用的函数一定要在调用之前进行定义

8. C语言规定,在源程序中,main函数的位置C 。

A) 必须在最开始

B) 必须在系统调用的库函数的后面

C) 可以任意

D) 必须在最后

9. 下列选项中不是结构化程序基本结构的是B 。

A) 顺序结构B) 分支结构

C) 选择结构D) 循环结构

10. 下列四组选项中,均不是C语言关键字的是A 。

A) define IF type B) getc char printf

C) include case scanf D) while go pow

11. 下列四组选项中,均是不合法的标识符的是B 。

A) W P 0 do B) b-a goto int

C) float la0 A D) -123 abc TEMP

12. 下列可用于C语言标识符的一组是B 。

A) void, define, WORD B) a3 b3, 123, Car

C) For, -abc, IF Case D) 2a, DO, sizeof

13. 以面的C程序中,错误的是D 。

A) main() B) main()

{ int x,y,z; { int x,y,z;

x=0;y=x-1; x=0;y=x+1;

z=x+y;} z=x+y;}

C) main() D) main()

{ int x,z; { int x,y,z;

int y; x=0;y=x+1;

x=0;y=x+1; z=x+y,}

z=x+y;}

14. C语言中的标识符只能由字母,数字和下划线三种字符

组成,且第一个字符C 。

A) 必须为字母

B) 必须为下划线

C) 必须为字母或下划线

D) 可以是字母,数字和下划线中任一字符

15. 下面各选项中,均是C语言标识符的选项组是B 。

A) 33 we auto B) 23 me 3ew

C) 43 3e else D) ER -DF 32

二、填空题

1. 国际上C语言常见的三个标准是:标准C 、ANSI C 和ISO C 。

2. C语言源程序的文件格式为*.c和*.h 。

3. 请描述C程序中main函数的作用:接受系统调用,开始程序的执行,直至程序结束。

三、程序编写题(请在本页背面作答)

1. 编写一个C程序,输出以下信息

*******************************

Very Good!

*******************************

2. 编写程序,实现求整数10、20和35的平均值(提示:注意给出的是三个整数,求出的平均值不是整数)

1

No.: Name:

第2讲C语言基本数据类型

一、选择题

1. 若x、i、j、k都是int型变量,则计算下面表达式

后,x的值为C 。

x=(i=4,j=16,k=32)

A) 4 B) 16 C) 32 D) 52

2. 下列四组选项中,均是合法转义字符的是A 。

A) ‘\"’ ‘\\’ ‘\n’ B) ‘\’ ‘\017’ ‘\"’

C) ‘\018’ ‘\f’ ‘xab’ D) ‘\\0’ ‘\101’ ‘xlf’

3. 下面正确的字符常量是D 。

A) "c" B) ‘\\’’ C) ‘’ D) ‘K’

4. 以下叙述不正确的是D 。

A) 在C程序中,逗号运算符的优先级最低

B) 在C程序中,MAX和max是两个不同的变量

C) 若a和b类型相同,在计算了赋值表达式a=b后,

b中的值将放入a中,b中的值不变

D) 从键盘输入数据时,对于整型变量只能输入整型

数值,对于实型变量只能输入实型数值

5. 以下叙述正确的是C 。

A) 在C程序中,每行只能写一条语句

B) 若a是实型变量,C程序中允许赋值a=10,因此

实型变量中允许存放整型数

C) 在C程序中,%是只能用于整数运算的运算符

D) 在C程序中,无论是整数还是实数,都能被准确

无误地表示

6. 已知字母A的ASCII码为十进制数65,且c2为字符型,

则执行语句c2=‘A’+‘6’-‘3’后,c2的值为A 。

A) D B) 68 C) 不确定的值D) C

7. sizeof(float)是B 。

A) 一个双精度型表达式B) 一个整型表达式

C) 一种函数表达式D) 一个不合法的表达式

8. 设C语言中,一个int型数据在内存中占2个字节,

则unsigned int 型数据的取值范围为C 。

A) 0~255 B) 0~32767

C) 0~65535 D) 0~2147483647

9. 设有说明:char w; int x; float y; double z;则

表达式w*x+z-y值的数据类型D 。

A) float B) char C) int D) double

10. 设以下变量均为int类型,则值不等于7的表达式

是C 。

A) (x=y=6,x+y,x+1) B) (x=y=6,x+y,y+1)

C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+1)

11. C语言中的基本数据类型包括B 。

A) 整型、实型、逻辑型B) 整型、实型、字符型

C) 整型、字符型、逻辑型D) 字符型、实型、逻辑型

12. 若变量已正确定义并赋值,以下符合C语言语法的表达

式是B 。

A) a:=b+1 B) a=b=c+2

C) int 18.5%3 D) a=a+7=c+b

13. C语言中运算对象必须是整型的运算符是A 。

A) %= B) / C) = D) <=

14. 若变量a,i已正确定义,且i已正确赋值,合法的语句

是B 。

A) a==1 B) ++i; C) a=a++=5; D) a=int(i);

15. int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)

(x+y)%2/4的值是A 。

A) 2.500000 B) 2.750000

C) 3.500000 D) 0.000000

16. 在16位C编译系统上,若定义long a;,则能

给a赋40000的正确语句是D 。

A) a=20000+20000; B) a=4000*10;

C) a=30000+10000; D) a=4000L*10L;

17. 设有int x=11;则表达式(x++*1/3)的值是A 。

A) 3 B) 4 C) 11 D) 12

18. 下列数据中,不合法的C语言实型数据的是C 。

A) 0.123 B) 123e3 C) 2.1e3.5 D) 789.0

19. 若变量a是int类型,并执行了语句:a=‘A’+1.6;,则正确的叙述是D 。

A) a的值是字符C

B) 不允许字符型和浮点型相加

C) a的值是浮点型

D) a的值是字符‘A’的ASCII值加上1

20. 设变量n为float类型,m为int类型,则以下能实现

将n中的数值保留小数点后两位,第三位进行四舍五

入运算的表达式是B 。

A) n=(n*100+0.5)/100.0 B) m=n*100+0.5,n=m/100.0

C) n=n*100+0.5/100.0 D) n=(n/100+0.5)*100.0

21. 下面四个选项中,均是不正确的8进制数或16进制数的

选项是D 。

A) 016 0x8f 018 B) 0abc 017 0xa

C) 010 -0x11 0x16 D) 0a12 7ff -123

22. 以下选项中,与k=n++完全等价的表达式是A 。

A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1

23. 下面均是合法整型常量的选项是A 。

A) 160 -0xffff 011 B) -0xcdf 01a 0xe

C) -01 986012 0668 D) -0x48a 2e5 0x

24. 假定x和y为double型,则表达式x=2,y=x+3/2的值

是D 。

A) 3.500000 B) 3 C) 2.000000 D) 3.000000

25. 以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z的C语言表达式是A 。

A) x/y*z B) x*(1/(y*z) C) x/y*1/z D) x/y/z

26. 已知int k,m=1;执行语句k=-m++;后,k的值是A 。

A) -1 B) 0 C) 1 D) 2

27. 已知int m;float k;正确的语句是D 。

A) (int k)%m B) int(k)%m

C) int(k%m) D) (int)k%m

28. 不能进行++和--运算的数据类型为D 。

A) 指针B) 整型C) 长整型D) 常量

2

No.: Name:

29. putchar函数可以向终端输出一个D 。

A) 整型变量表达式B) 实型变量值

C) 字符串D) 字符或字符型变量值

30. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。字符串长度大于5,则输出按方式B ;

如果字符串长度小于5,则输出按方式C 。

A) 从左起输出该字符串,右补空格

B) 按原字符长从左向右全部输出

C) 右对齐输出该字符串,左补空格

D) 输出错误信息

31. 阅读以下程序,当输入数据的形式为:25,13,10ê,则正确的输出结果为D 。

main()

{ int x,y,z;

scanf( "%d%d%d",&x,&y,&z);

printf( "x+y+z=%d\n",x+y+z);}

A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定

32. 根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为A 。

main()

{ char ch1,ch2,ch3;

输入语句

printf( "%c%c%c",ch1,ch2,ch3);}

输入形式:A B C

输出形式:A B

A) scanf("%c%c%c",&ch1,&ch2,&ch3);

B) scanf("%c,%c,%c",&ch1,&ch2,&ch3);

C) scanf("%c %c %c",&ch1,&ch2,&ch3);

D) scanf("%c%c",&ch1,&ch2,&ch3);

33. 已知ch是字符型变量,下面不正确的赋值语句是A 。

A) ch=‘a+b’; B) ch=‘\0’;

C) ch=‘7’+‘9’; D) ch=5+9;

34. 若变量已正确说明为float型,要通过语句scanf

("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋

予33.0,下列不正确的输入形式是B 。

A) 10ê22ê33 B) 10.0,22.0,33.0ê

C) 10.0ê22.0 33.0ê D) 10 22ê33ê

35. 下列程序段的输出结果是: C 。

int a=1234; float b=123.456;

double c=12345.54321;

printf("%2d,%2.1f,%2.1f",a,b,c);

A) 无输出B) 12,123.5,12345.5

C) 1234,123.5,12345.5 D) 1234,123.4,1234.5

36. 已有定义int a=-2;和输出语句printf("%8lx",a);以

下正确的叙述是D 。

A) 整型变量的输出形式只有%d一种

B) %x是格式符的一种,可适用于任何一种类型的数据

C) %x是格式符的一种,其变量的值按十六进制输出,

但%8lx是错误的

D) %8lx不是错误的格式符,其中数字8规定了输出字

段的宽度

二、填空题

1. 若有定义:int m=5,y=2;,则计算表达式y+=y-=m*=y后的y值是-16 。

2. 在C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为-32768?32767 。

3. 若a是int型变量,则计算表达式a=25/3%3后a的值为2 。

4. 若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为10 ,n的值为6 。

5. 若有定义:char c="\0108F\0";则字符串c中包含的字符个数为5 。

6. 定义int a=5,b;,则执行表达式b=++a*--a之后,变量b的值为25 。

7. 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=‘a’+‘8’-‘3’的值为102或‘f’ 。

8. 以下程序段的输出结果是i:dec=-4,oct=177774,hex=fffc,unsigned=65532 。

main(){ short i; i=-4; printf( "\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n",i,i,i,i);} 9. 假设变量a和b均为整型,请填空使得以下语句可以不借助任何变量把a、b中的值进行交换。a+= b ; b=a- b ; a-= b ;

10. 有一输入语句scanf("%d",k); 则不能使float类型变量k得到正确数值的原因是:

(1) k应该加上取地址符号&,成为&k 和(2) float型数据不能用%d格式来输入。

三、程序编写题(请在本页背面作答)

1. 输入圆半径(5)和圆心角(60_C),输出圆的周长、面积和扇形周长、面积。

2. 输入一个华氏温度,要求输出摄氏温度。公式为C _ 5

9 pF _ 32q,输出要有文字说明,取2位小数。

3

No.: Name:

第3讲算法与程序基本结构

一、选择题

1. 如下程序的输出结果是A 。

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=1,b=1

C) a=1,b=0 D) a=2,b=2

2. 以下程序执行后输出结果是C 。

main()

{ int i=1,j=1,k=2;

if((j++||k++) &&i++)

printf("%d,%d,%d\n",i,j,k);}

A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,3

3. 如下程序的输出结果是C 。

main()

{ float x=2.0,y;

if(x<0.0) y=0.0;

else if(x<10.0) y=1.0/x;

else y=1.0;

printf("%f\n",y);}

A) 0.000000 B) 0.250000

C) 0.500000 D) 1.000000

4. 设int x=1,y=1;表达式(!x||y--)的值是B 。

A) 0 B) 1 C) 2 D) -1

5. 若运行时给变量x输入12,则以下程序的运行结果

是A 。

main()

{ int x,y;

scanf("%d",&x);

y=x>12?x+10:x-12;

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

A) 0 B) 22 C) 12 D) 10

6. 在C程序中,判逻辑值时,用”非0”表示逻辑值”真”,

又用”0”表示逻辑值”假”。在求逻辑值时,逻辑表达式值为”真”和”假”分别用A 表示。

A) 1和0 B) 0和1 C) 非0和非0 D) 1和1

7. 以下4个选项中,不能看做一条语句的是D 。

A) ; B) a=5,b=2.5,c=3.6;

C) if(a<5) ; D) if(b!=5) x=2;y=6;

8. 能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是D 。

A) a>=10 or a<=0 B) a>=0|a<=10

C) a>=10&&a<=0 D) a>=10||a<=0

9. 如下程序的输出结果是C 。

main()

{ int a=2,b=-1,c=2;

if(a

if(b<0) c=0;

else c++;

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

A) 0 B) 1 C) 2 D) 3

10. 设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式D 。

A) x&&y B) x<=y

C) x||++y&&y-z D) !(x

11. 若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp) 的是B 。

A) (exp==0) B) (exp!=0)

C) (exp==1) D) (exp!=1)

12. 以下程序的输出结果是A 。

main()

{ int a=4,b=5,c=0,d;

d=!a&&!b||!c;

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

A) 1 B) 0 C) 非0的数D) -1

13. 设有int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&& (n=c>d)后n的值是B 。

A) 1 B) 2 C) 3 D) 4

14. 下面程序D 。

main()

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

if(a=b+c) printf("***\n");

else printf("$$$\n");}

A) 有语法错不能通过编译

B) 可以通过编译但不能通过连接

C) 输出***

D) 输出$$$

相关文档