Login
欢迎访问考试集-www.kaoshiji.cn 考试集,让考试更简单!懂考试,更懂你!
我要投稿 请登录 免费注册 安全退出

第3章试卷《C程序设计》谭浩强主编教材-清华大学出版社-2017年8月第五版-ISBN:978-7-302-48144-7-章节练习题库

更新时间: 2025-03-30 加入收藏 立即下载

试卷页数】:共67页/预览前10页

试卷大小5.50M

下载方式】:百度网盘

 提 取 码】:k2dj

下载地址】:https://www.kaoshiji.cn/jsjkxjs/646.html


教材名称:C程序设计》

主编谭浩强

出版社:清华大学出版社

版次:20178月第五版

书刊号:ISBN978-7-302-48144-7

                                                    

 

考试集教材配套题库介绍 

一、单项选择题(60题) 

二、多项选择题(40题) 

三、判断题(40题) 

四、填空题(40题) 

五、名词解释题(40题) 

六、简答题(40题) 

七、论述题(15题) 

八、材料分析题(5题) 

 

 

 

考试集教材配套题库介绍

一、精准匹配教材,一站式学习解决方案

本网站专注于为高等教育教材,提供全章节配套题库服务,完全覆盖教材知识点。题库设计严格遵循教材章节结构,助力学习者系统掌握知识体系。

二、题库核心优势 

1.题量丰富,解析详尽 

每章独立题库,总计超千道高质量试题。每题均附标准答案+逐题解析,深入剖析考点,帮助学生举一反三。  

2.灵活下载,多端适配  

支持题库下载,满足打印、笔记等个性化学习需求。配套手机在线刷题小程序,随时随地碎片化学习,自动记录进度与错题。  

3. 智能功能,高效提分  

小程序智能归纳易错题型,针对性强化薄弱环节。限时自测,还原真实考试环境,提升应试能力。  

考试集官网[www.kaoshiji.cn]下载试题

关注微信公众号:百业先生,为您提供一站式服务。

第3章试卷《C程序设计》谭浩强主编教材-清华大学出版社-2017年8月第五版-ISBN:978-7-302-48144-7-章节练习题库(图1)

 

扫一扫,码上刷题

考试集,让学习更简单!

                                             

3试卷-章节练习

3章最简单的C程序设计——顺序程序设计37
3.1顺序程序设计举例37
3.2数据的表现形式及其运算39
3.2.1常量和变量39
3.2.2数据类型42
3.2.3整型数据44
3.2.4字符型数据47
3.2.5浮点型数据49
3.2.6怎样确定常量的类型50
3.3运算符和表达式51
3.3.1C运算符52
3.3.2基本的算术运算符52
3.3.3自增(++)、自减(--)运算符53
3.3.4算术表达式和运算符的优先级与结合性53
3.3.5不同类型数据间的混合运算54
3.3.6强制类型转换运算符55
3.4C语句56
3.4.1C语句的作用和分类56
3.4.2最基本的语句——赋值语句58
3.5数据的输入输出64
3.5.1输入输出举例64
3.5.2有关数据输入输出的概念65
3.5.3用printf函数输出数据67
3.5.4用scanf函数输入数据74
3.5.5字符输入输出函数76
                                            

 

一、单项选择题(60题)

1.C语言中,整数常量-123的类型是:

A. int

B. Long

C. short

D. 取决于编译器如何定义

正确答案:A

解析:在C语言中,没有后缀的整数常量(如-123)默认被视为int类型。如果常量太大而无法放入int类型,则会被视为long int类型,但在这个特定例子中,-123可以很容易地放入int类型中。

2.以下哪个运算符用于求两个整数相除的余数?

A. /

B. %

C. *

D. +

正确答案:B

解析:在C语言中,%运算符用于求两个整数相除的余数,也称为模运算符。/运算符用于除法,*运算符用于乘法,+运算符用于加法。

3.C语言中,字符常量'A'在内存中占用:

A. 1个字节

B. 2个字节

C. 4个字节

D. 8个字节

正确答案:A

解析:在C语言中,字符常量(如'A')在内存中占用1个字节。C语言标准规定char类型的大小为1个字节,用于存储单个字符。

4.以下哪个函数用于在C语言中输出数据?

A. input()

B. printf()

C. scanf()

D. getchar()

正确答案:B

解析:在C语言中,printf()函数用于输出数据到标准输出设备(通常是屏幕)。scanf()函数用于从标准输入设备(通常是键盘)读取数据,getchar()函数用于从标准输入读取一个字符。而input()不是C语言标准库中的函数。

5.C语言中,若要将一个float类型的变量转换为int类型,应使用: 

A. (int)变量名

B. int(变量名)

C. 变量名.int()

D. 转换函数(int, 变量名)

正确答案:A

解析:在C语言中,类型转换可以通过类型转换运算符(也称为强制类型转换)来实现。对于将float类型转换为int类型,应使用(int)变量名的形式。这种转换会丢失小数部分,只保留整数部分。其他选项都不是C语言中的有效语法。

6.C语言中,以下哪个是合法的变量名? 

A. 123abc

B. a-b

C. _variable

D. abc#

正确答案:C

解析:在C语言中,变量名必须以字母或下划线开头,并且不能包含数字作为首字符、空格、或特殊字符(如#、@、!等)。选项C(_variable)符合这些规则,因此是合法的变量名。

7.假设有以下代码片段:

int a = 5;
a += 2;

执行后,变量a的值是:

A.3

B. 5

C. 7

D. 10

正确答案:C

解析a += 2; 是复合赋值运算符,它等价于 a = a + 2;。因此,如果a的初始值是5,执行该语句后,a的值将变为7。

8.C语言中,以下哪个转义字符表示换行?

A. \

B. '

C. \n

D. \t

正确答案:C

解析:在C语言中,\n 是表示换行的转义字符。\\ 表示反斜杠,\' 表示单引号,\t 表示水平制表符(即Tab)。

9.以下哪个函数用于在C语言中读取一个字符?

A. getchar()

B. putchar()

C. scanf("%c", &ch);

D. printf("%c", ch);

正确答案:A

解析:在C语言中,getchar() 函数用于从标准输入(通常是键盘)读取一个字符。putchar() 函数用于输出一个字符到标准输出(通常是屏幕),但它不读取字符。scanf("%c", &ch); 也可以用于读取一个字符,但这是一个更通用的输入函数,而题目要求的是专门用于读取一个字符的函数。printf("%c", ch); 是用于输出字符的函数,不是读取。

10.C语言中,以下哪个数据类型用于存储单精度浮点数?

A. int

B. char

C. float

D. D. double

正确答案:C

解析:在C语言中,float 数据类型用于存储单精度浮点数。int 用于存储整数,char 用于存储字符,double 用于存储双精度浮点数。因此,选项C是正确的。

11.C语言中,若想要输出一个百分号字符(%),在printf函数的格式字符串中应该使用:

A. %%

B. %

C. %

D. '%%'

正确答案:A

解析:在C语言的printf函数中,百分号字符(%)被用作格式说明符的引导符。因此,如果想要在输出的字符串中包含一个实际的百分号字符,需要在格式字符串中使用两个百分号字符(%%)来表示。选项A是正确的。

12.以下哪个运算符在C语言中用于比较两个值是否相等?

A. =

B. ==

C. !=

D. <>

正确答案:B

解析:在C语言中,==运算符用于比较两个值是否相等。=是赋值运算符,用于将值赋给变量。!=是不等于运算符,用于比较两个值是否不相等。<>不是C语言中的标准比较运算符,虽然在某些数据库查询语言中可能表示不等于,但在C语言中应使用!=。

13.C语言中,char类型变量通常用于存储: 

A. 整型数据

B. 浮点型数据

C. 单个字符

D. 字符串

正确答案:C

解析:在C语言中,char类型变量用于存储单个字符,如字母、数字或特殊符号。它不能用于存储整型数据(应使用int或相关类型)、浮点型数据(应使用float或double)或字符串(应使用字符数组)。

14.以下哪个函数在C语言中用于读取一个字符串?

A. getchar()

B. gets()

C. scanf("%s", str);

D. printf("%s", str);

正确答案:C

解析:在C语言中,scanf("%s", str);用于读取一个字符串并存储在字符数组str中。getchar()用于读取一个字符,gets()虽然也曾用于读取字符串,但由于它不安全(容易导致缓冲区溢出),因此在现代C编程中通常不推荐使用,很多编译器甚至已经废弃了这个函数。printf("%s", str);用于输出一个字符串,而不是读取。

15.C语言的算术表达式中,以下哪个运算符的优先级最高?

A. +(加法)

B. *(乘法)

C. /(除法)

D. %(取模)

正确答案:B

解析:在C语言的算术运算符中,*(乘法)、/(除法)和%(取模)的优先级是相同的,并且都比+(加法)和-(减法)的优先级高。然而,在这个选项中,只有*(乘法)被列出,因此它是这些选项中优先级最高的。实际上,*、/和%的优先级是相等的,并且都比加减运算符高。

16.C语言中,若有以下代码片段:

int a = 5;
a *= 2 + 3;

执行后,变量a的值是:

A.7

B. 10

C. 16

D. 25

正确答案:C

解析:在C语言中,*=是复合赋值运算符,它表示将变量与某个表达式相乘,并将结果赋值给该变量。在这个例子中,a *= 2 + 3; 等价于 a = a * (2 + 3);。由于2 + 3等于5,所以a会被赋值为5 * 5,即25的原始值乘以5,得到25。但考虑到原始a的值是5,所以实际计算是5 * (2 + 3) = 5 * 5 = 25的误解释,正确的计算应为a = 5 * 5(因为2+3先计算得到5),所以a的最终值是10的5倍,即a的值为10乘以2(因为a原始值为5,再乘以2+3的结果5),正确答案应为B. 10。

17.C语言中,以下哪个转义字符表示回车?

A. \r

B. \n

C. \t

D. \b

正确答案:A

解析:在C语言中,\r是表示回车的转义字符。\n表示换行,\t表示水平制表符(Tab),\b表示退格符。

18.C语言的printf函数中,若想要输出一个双精度浮点数,应使用以下哪个格式说明符?

A. %d

B. %c

C. %f

D. %s

正确答案:C

解析:在C语言的printf函数中,%f是用于输出双精度浮点数的格式说明符。%d用于输出整型数,%c用于输出单个字符,%s用于输出字符串。

19.以下哪个是C语言中的合法标识符(变量名)?

A. 3var

B. var-3

C. _var3

D. var#3

正确答案:C

解析:在C语言中,标识符(如变量名)必须以字母或下划线开头,并且只能包含字母、数字和下划线。选项C(_var3)符合这些规则,因此是合法的标识符。选项A以数字开头,选项B包含连字符,选项D包含井号,它们都不是合法的标识符。

20.C语言中,若有以下代码片段:

int a = 10;
int b = a++;

执行后,变量b的值是:

A.9

B. 10

C. 11

D. 12

正确答案:B

解析:在C语言中,后缀自增运算符++(如a++)表示将变量的值增加1,但返回的是增加之前的值。因此,在这个例子中,b会被赋值为a增加之前的值,即10。然后,a的值会增加到11,但这对b的值没有影响。所以,执行后b的值是10。

21.C语言中,若有以下代码片段:

int a = 5;
int b = ++a;

执行后,变量b的值是:

A.5

B. 6

C. 7

D. 8

正确答案:B

解析:在C语言中,前缀自增运算符++(如++a)表示将变量的值增加1,并返回增加之后的值。因此,在这个例子中,a的值首先被增加到6,然后这个新值被赋给b。所以,执行后b的值是6。

22.C语言的printf函数中,若想要输出一个整数的十六进制表示形式,应使用以下哪个格式说明符?

A. %d

B. %x

C. %f

D. %c

正确答案:B

解析:在C语言的printf函数中,%x(或%X)是用于输出整数的十六进制表示形式的格式说明符。%d用于输出十进制整数,%f用于输出浮点数,%c用于输出单个字符。

23.以下哪个不是C语言中的基本数据类型?

A. int

B. float

C. string

D. char

正确答案:C

解析:在C语言中,int、float和char都是基本数据类型,分别用于表示整型、浮点型和字符型数据。而string不是C语言中的基本数据类型,字符串在C语言中是通过字符数组来表示的。

24.C语言中,若有以下代码片段:

int a = 10;
int b = 20;
int c = a + b * 2;

执行后,变量c的值是:

A.20

B. 30

C. 40

D. 50

正确答案:D

解析:在C语言中,算术运算符的优先级中,乘法(*)高于加法(+)。因此,在这个例子中,b * 2首先被计算,结果为40,然后这个结果与a相加,得到50。所以,执行后c的值是50。

25.C语言的scanf函数中,若想要读取一个整数值并存储在变量x中,应使用以下哪个语句?

A. scanf("%d", x);

B. scanf("%d", &x);

C. scanf("%s", x);

D. scanf("%f", &x);

正确答案:B

解析:在C语言的scanf函数中,为了读取一个整数值并存储在变量x中,需要使用%d格式说明符,并且必须传递变量x的地址(使用&符号)。选项B中的scanf("%d", &x);是正确的语句。选项A缺少了地址运算符&,选项C使用了%s格式说明符(用于读取字符串),选项D使用了%f格式说明符(用于读取浮点数),它们都是错误的。

26.C语言中,若有以下代码片段:

char c = 'A';
c = c + 1;

执行后,变量c的值是:

A. 'A'

B. 'B'

C. 'C'

D. 'a'

正确答案:B

解析:在C语言中,字符常量在内存中是以其ASCII码值的形式存储的。字符'A'的ASCII码值是65,字符'B'的ASCII码值是66。当执行c = c + 1;时,实际上是将字符'A'的ASCII码值加1,得到66,即字符'B'的ASCII码值,并将其赋给变量c。所以,执行后c的值是'B'。

27.C语言的printf函数中,若想要输出一个字符,应使用以下哪个格式说明符?

A. %d

B. %c

C. %f

D. %s

正确答案:B

解析:在C语言的printf函数中,%c是用于输出单个字符的格式说明符。%d用于输出整型数,%f用于输出浮点数,%s用于输出字符串。

28.C语言中,以下哪个是合法的整型常量?

A. 0x123

B. 0123.45

C. 123E2

D. '123'

正确答案:A

解析:在C语言中,整型常量可以是十进制、八进制(以0开头)或十六进制(以0x或0X开头)的形式。选项A中的0x123是一个合法的十六进制整型常量。选项B中的0123.45是一个浮点常量,不是整型常量。选项C中的123E2是一个浮点常量,表示科学计数法。选项D中的'123'是一个字符常量,表示由字符'1'、'2'和'3'组成的字符串的第一个字符,即'1',并且它被单引号包围,不是整型常量。

29.C语言中,若有以下代码片段:

int a = 5;
int b = 10;
int c = a > b ? a : b;

执行后,变量c的值是:

A. 5

B. 10

C. 15

D. 0

正确答案:B

解析:在C语言中,? :是条件运算符,也称为三元运算符。它的语法是条件 ? 表达式1 : 表达式2。如果条件为真(非0),则计算并返回表达式1的值;如果条件为假(0),则计算并返回表达式2的值。在这个例子中,a > b的条件为假(因为5不大于10),所以返回b的值,即10,并将其赋给变量c。所以,执行后c的值是10。

30.C语言的scanf函数中,若想要读取一个浮点数并存储在变量f中,应使用以下哪个语句?

A. scanf("%d", &f);

B. scanf("%f", f);

C. scanf("%s", &f);

D. scanf("%f", &f);

正确答案:D

解析:在C语言的scanf函数中,为了读取一个浮点数并存储在变量f中,需要使用%f格式说明符,并且必须传递变量f的地址(使用&符号)。选项D中的scanf("%f", &f);是正确的语句。选项A使用了%d格式说明符(用于读取整型数),选项B缺少了地址运算符&,选项C使用了%s格式说明符(用于读取字符串),它们都是错误的。

31.C语言中,若有以下代码片段:

int x = 3;
x *= 2 + 1;

执行后,变量x的值是:

A. 3

B. 6

C. 9

D. 12

正确答案:C

解析:在C语言中,*=是复合赋值运算符,它表示将变量与某个值相乘,并将结果赋给该变量。在这个例子中,x *= 2 + 1; 等价于 x = x * (2 + 1);。由于x的初始值是3,所以x * (2 + 1)的结果是9,因此执行后x的值是9。

32.C语言的printf函数中,若想要输出一个浮点数并保留两位小数,应使用以下哪个格式说明符?

A.%f

B. %.2f

C. %2f

D. %d

正确答案:B

解析:在C语言的printf函数中,%f是用于输出浮点数的格式说明符。如果想要控制浮点数的输出精度,可以在%和f之间插入一个数字,表示小数点后要保留的位数。例如,%.2f表示保留两位小数。选项B中的%.2f是正确的格式说明符。选项A中的%f会按默认精度输出浮点数,通常保留6位小数。选项C中的%2f表示输出的浮点数至少占2个字符的宽度,与保留小数位数无关。选项D中的%d是用于输出整型数的格式说明符。

33.C语言中,以下哪个是合法的字符常量?

A. "A"

B. 'AB'

C. '\n'

D. ' ' '

正确答案:C

解析:在C语言中,字符常量是用单引号括起来的一个字符。选项A中的"A"是一个字符串常量,因为它被双引号括起来。选项B中的'AB'是非法的,因为单引号内只能包含一个字符。选项C中的'\n'是一个合法的字符常量,表示换行符。选项D中的' ' '是非法的,因为单引号的使用不正确,它试图表示两个单引号之间的空格,但实际上这不是一个有效的字符常量。

34.C语言中,若有以下代码片段:

int a = 5;
int b = 2;
int c = a / b;

执行后,变量c的值是:

A.2

B. 2.5

C. 3

D. 4

正确答案:A

解析:在C语言中,当两个整型数进行除法运算时,结果也是一个整型数,小数部分会被舍去。在这个例子中,a / b的结果是5 / 2,其整数部分是2,因此变量c的值是2。

35.C语言的scanf函数中,若想要读取一个字符并存储在变量ch中,应使用以下哪个语句?

A. scanf("%c", ch);

B. scanf("%c", &ch);

C. scanf("%s", ch);

D. scanf("%s", &ch);

正确答案:B

解析:在C语言的scanf函数中,为了读取一个字符并存储在变量ch中,需要使用%c格式说明符,并且必须传递变量ch的地址(使用&符号)。选项B中的scanf("%c", &ch);是正确的语句。选项A缺少了地址运算符&。选项C和D都使用了%s格式说明符,这是用于读取字符串的,不适用于读取单个字符。

36.C语言中,若有以下代码片段:

int a = 10;
a += a -= 5;

执行后,变量a的值是:

A.5

B. 10

C. 15

D. 20

正确答案:A

解析:在C语言中,复合赋值运算符(如+=和-=)的运算方向是从右到左。因此,表达式a += a -= 5;的求解过程如下:

1. 首先计算a -= 5,这相当于a = a - 5,此时a的值变为5。

2. 然后计算a += ...,由于上一步已经改变了a的值,所以这里实际上是a = a + 5的简化形式,但由于a已经是5了,所以a += a(即a = a + a)就变成了a = 5 + 5,不过这里的理解有误,因为实际上在第一步之后,a已经是5了,所以a += ...这部分不会再对a进行加法操作,而是保持为5。因此,最终a的值是5。

37.C语言的printf函数中,若想要输出一个整数并指定其输出的最小宽度为5,应使用以下哪个格式说明符?

A. %5d

B. %d5

C. %5

D. d%5

正确答案:A

解析:在C语言的printf函数中,为了输出一个整数并指定其输出的最小宽度,可以在%和d之间插入一个数字,表示输出的最小宽度。例如,%5d表示输出的整数至少占5个字符的宽度,如果整数的位数少于5,则会在前面补空格。选项A中的%5d是正确的格式说明符。

38.C语言中,字符型数据在内存中是以什么形式存储的?

A. ASCII码

B. 二进制码

C. 十六进制码

D. 原码

正确答案:A

解析:在C语言中,字符型数据在内存中是以ASCII码的形式存储的。ASCII码是一种字符编码标准,用于表示文本中的字符。每个字符都有一个唯一的ASCII码值,这个值是一个整数,通常表示为一个字节(8位)的二进制数。

39.C语言中,若有以下代码片段:

float a = 3.14;
int b = (int)a;

执行后,变量b的值是:

A. 3

B. 3.14

C. 4

D. 浮点数转换为整数时出错

正确答案:A

解析:在C语言中,可以通过强制类型转换运算符(如(int))将一个浮点型数据转换为整型数据。当进行这种转换时,浮点数的小数部分会被舍去,只保留整数部分。因此,在这个例子中,变量a的值是3.14,当它被强制转换为整型并赋给变量b时,b的值会是3。

40.C语言的scanf函数中,若想要读取一个整数并存储在变量n中,同时忽略任何前导的空白字符(如空格、制表符等),应使用以下哪个语句?

A. scanf("%d", n);

B. scanf(" %d", &n);

C. scanf("%d ", &n);

D. scanf(" %d ", &n);

正确答案:B

解析:在C语言的scanf函数中,为了读取一个整数并存储在变量n中,同时忽略任何前导的空白字符,应在格式说明符%d前面加一个空格。这样,scanf函数在读取整数之前会先跳过任何空白字符。选项B中的scanf(" %d", &n);是正确的语句。注意,变量n的地址应该使用&n来表示。选项A缺少了地址运算符&。选项C和D在格式说明符后面也加了空格,这是不必要的,并且可能会导致输入被错误地处理。


下载详情底部广告位

文章评论

加载中~