C语言习题及解答与实验指导(修改版) 下载本文

内容发布更新时间 : 2024/4/26 18:46:15星期一 下面是文章的全部内容请认真阅读。

第1部分 课后练习题

第1章 C语言概述

一、选择题

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

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

B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序的main函数开始,到本程序文件的最后一个函数结束 D) 本程序文件的第一个函数开始,到本程序main函数结束 2.以下叙述正确的是 。

A) 在C程序中,main函数必须位于程序的最前面 B) C程序的每行中只能写一条语句 C) C语言本身没有输入输出语句

D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 3.以下叙述不正确的是 。

A) 一个C源程序可由一个或多个函数组成 B) 一个C源程序必须包含一个main函数 C) C程序的基本组成单位是函数

D) 在C程序中,注释说明只能位于一条语句的后面 4.C语言规定:在一个源程序中,main函数的位置 。

A) 必须在最开始 B) 必须在系统调用的库函数的后面 C) 可以任意 D) 必须在最后 5.一个C语言程序是由 。

A) 一个主程序和若干子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成 6.C语言中的语句需要 符号作为结尾。 A) : B) ; C) 。 D) //

7. C 语言程序中可以对程序进行注释,注释部分用符号_____括起来。 A)‘{‘ 和’}’ B)‘[‘和’]’ C)“/*”和”*/” D)“*/”和”/*” 8.C语言中注释的位置 。

A) 必须在程序的最开始 B) 必须在程序的结尾

1

C) 可以在程序的任何位置 D) 不可以写到main函数里面

9.C语言程序能够在不同的操作系统下面运行,这说明c语言具有很好的 。 A) 适应性 B)移植性 C)兼容性 D) 操作性 10.C语言经过编译后生成的文件的后缀是 。 A).c B) .cpp C) .exe D) .obj 11.C语言编译程序的首要工作是 。

A) 检查C语言程序的语法错误 B) 检查C语言程序的逻辑错误 C)检查程序的完整性 D) 同时检查语法和逻辑错误 12. C语言经过链接后生成的文件的后缀是 。 A).c B) .cpp C) .exe D) .obj

二. 填空题

1.计算机程序设计语言的发展经历了从 、 到 的历程。

2.计算机唯一能识别的语言是 。 3.C源程序的基本单位是 。 4.一个C源程序至少应包括一个 。

5.在一个C源程序中,注释部分两侧的分界符分别为 和 。

6.C语言源程序文件的后缀是 ______, 经过编译后, 生成文件的后缀是 ______,经过连接后, 生成文件的后缀是______。

7. 用高级语言编写的程序称为 ,必须将其翻译成二进制程序后才能执行。翻译有两种方式,一种是通过 翻译一句执行一句的方式执行,另一种通过 一次翻译产生目标程序,然后执行。

三.简答题

1.简述C语言的特点。 2.简述C语言的应用。 3.简述编写C语言程序的流程。

第2章 基本语法 —— 语言描述与

数据存储的简单方法

一.选择题

1.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 。 A)必须为字母 B)必须为下划线

2

C)必须为字母或下划线 D)可以是字母、数字和下划线中任一种字符 2. 若以下选项中的变量已正确定义,则正确的赋值语句是 。

A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3; 3. 设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是 。

A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0 C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0 4. 下列C语言中运算对象必须是整型的运算符是 。

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

5. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是 。

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

6. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是 。

A) 把x和y按从大到小排列 B) 把x和y按从小到大排列 C) 无确定结果 D) 交换x和y中的值 7. 下列变量定义中合法的是 。

A)short_a=1-.le-1; B)double b=1+5e2.5; C)long do=0xfdaL; D)float 2_and=1-e-3; 8.若变量已正确定义并赋值,符合C语言语法的表达式是 。

A)a=b=7 B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b

9. 若有float x;则sizeof(x)和sizeof(float)两种描述 。

A)都正确 B)都不正确 C)前者正确 D)后者正确

10. 有整型变量x,单精度变量y=5.5,表达式x=(float)(y*3+((int)y)%4)执行后,x的值

为( )。

A)17 B)17.500000 C)17.5 D)16 11. 已知float x=1,y;则y=++x*++x的结果是 。

A)y=9 B)y=6 C)y=1 D)表达式是错误的 12. 下列关于单目运算符++、--的叙述中正确的是 。

A)它们的运算对象可以是任何变量和常量

B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D)它们的运算对象可以是char型变量、int型变量和float型变量 13. 已定义ch为字符型变量,下列赋值语句中错误的是 。

A)ch='\\'; B)ch=62+3; C)ch=NULL; D)ch='\\xaa'; 14. 假定有以下变量定义,则能使值为3的表达式是 。

int k=7,x=12;

A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5)

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

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

16. 已定义c为字符型变量,则下列语句中正确的是 。

3

A)c=’97’ B)c=“97” C)c=97 D)c=“a” 17. sizeof(float)是 。

A)一个双精度型表达式 B)一个整型表达式 C)一种函数调用 D)一个不合法的表达式 18. 有以下定义语句:

double a,b; int w; long c;

若各变量已正确赋值,则下列选项中正确的表达式是 。 A)a=a+b=b++ B)w%((int)a+b) C)(c+w)%(int)a D)w=a=b

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

A)a的值是字符C B)a的值是浮点型

C)不允许字符型和浮点型相加 D)a的值是字符’A’的ASCII值加1

20. 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是 。

A)6.500000 B)6 C)5.500000 D)6000000 21. 在下列选项中,不正确的赋值语句是 。

A)++t; B)n1=(n2=(n3=0)); C)k=i==j; D)b+c=1;

22.已知char a; int b; float c; double d; 则表达式a+b * c-d的结果为_______型。

A)char B)int C)float D)double 23. 若x 为int型变量,则执行语句x=10; x+=x=x-x后,x的值为_______。

A)0 B)10 C)20 D)30

24. 若x、a、b、c均 为int型变量,则执行表达式x= (a = 4, b = 8, c = 12)后,x的

值为_______。

A)4 B)8 C)12 D)24 25. 在C程序中,x + y是_______、x + y;是_______。

A)表达式、语句 B)表达式、表达式 C)语句、语句 D)语句、表达式

26.假设变量a是整型,b是实型,c是双精度型,则表达式30+a+c*b的值的数据类型

是 。

A) int B) float C) double D) 不确定 27.在C语言中,char型数据在内存中的存储形式是 。

A)补码

B)反码

C)原码

D)ASCII码

28.执行下列程序片段时输出结果是 。 int x=13,y=5;

printf(“%d”,x%=(y/=2));

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

二.填空题

1.在C语言中所提供的数据结构是以数据类型形式出现的,其中的基本类型包括int 型 即_ __、float型即_ __、double型即_ __、char型即_ __等。 2. C语言中的标识符只能由三种字符组成,它们是 、 和 。

3. C程序中的字符常量是用_ __括起来的一个字符;除此之外,还允许用一种特殊形式

4

的字符常量,是以_ __开头,被称为转义字符。

4.字符串常量是一对_ __括起来的字符序列,且以_ __结束。 5.常量是指在程序执行过程中其值 __改变的量。 6.变量是指在程序执行过程中其值_ _的量。 7.C实型变量分为_ _和_ _两类。

8.转义字符'\\n'表示_ _,使光标移到屏幕上下一行开头。 9.一个字符变量在内存中占_ _字节。

10.一个字符数据既可以以字符形式输出,也可以以_ _形式输出。 11.字符串常量是用_ _括起来的字符序列。

12.在进行运算时,不同类型的数据必须_ _,然后进行运算。 13.可以利用_ _运算符将一个表达式的值转换成指定的类型。

14.有两种类型转换,一种是在运算时不必用户指定,系统自动进行类型转换;另一种是 _ _。

15.两个整数相除的结果是_ _。 16.求模运算符(%)只能用于_ _操作数。

17.一个表达式的最后加上一个_ _就成了一个语句。

18.若int x = 3,则执行表达式x*= x+= x - 1后x的值为_ _。 19.若a是int型变量,则表达式((a=4*5,a*2),a+6)的值为 。

20.若a是int型变量,且a的初值为6,则执行表达式a+=a-=a*a后a的值为 。 21.若a是int型变量,则执行表达式a=25/3%3后a的值为 。 22.若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++ x的值为 ,n的值为 。

三、问答题

1. 字符型常量和字符串常量有什么区别?

2. 华氏温度F与摄氏温度c的转换公式为:c=(F-32)*5/9 ,则float c, F; c=5/9*(F-32)是其对应的C语言表达式吗?如果不是,为什么?

四、程序阅读题

1.写出以下程序运行的结果 。 #include int main ( ) {

int i,j,m,n; i=8; j=10; m=++i; n=j++;

printf(“%d,%d,%d,%d”,i,j,m,n); return 0; }

5