全国计算机等级考试2019年二级C语言程序设计模拟试题3_真含答案与解析

全国计算机等级考试2019年二级C语言程序设计模拟试题3_真含答案与解析


2024年4月30日发(作者:)

全国计算机等级考试2019年二级C语言程序设计模拟试题3

(总分100, 做题时间120分钟)

选择题

(每题 1 分, 共 40 分)

1.

下列叙述中正确的是( )。

SSS_SINGLE_SEL

A

栈与队列都只能顺序存储

B

循环队列是队列的顺序存储结构

C

循环链表是循环队列的链式存储结构

D

栈是顺序存储结构而队列是链式存储结构

分值: 1

答案:B

栈是所有的插入与删除都限定在表的同一端进行的线性表; 队列是指允许在一

端进行插入, 而在另一端进行删除的线性表, 二者均即可以顺序存储也可以

链式存储。 为了充分地利用数组的存储空间, 把数组的前端和后端连接起

来, 形成一个环形的表, 称为循环队列, 因此循环队列是队列的一种顺序存

储结构。

2.

算法空间复杂度的度量方法是( )。

SSS_SINGLE_SEL

A

算法程序的长度

B

算法所处理的数据量

C

执行算法所需要的工作单元

D

执行算法所需要的存储空间

分值: 1

答案:D

算法的空间复杂度是指执行这个算法所需要的存储空间, 包括: ①输入数据

所占的存储空间; ②程序本身所占的存储空间; ③算法执行过程中所需要的

额外空间。

3.

设有栈 S 和队列 Q, 初始状态均为空。 首先依次将 A, B, C, D, E, F

入栈, 然后从栈中退出三个元素依次入队, 再将 X, Y, Z 入栈后, 将栈

中所有元素退出并依次入队, 最后将队列中所有元素退出, 则退队元素的顺

序为( )。

SSS_SINGLE_SEL

A

DEFXYZABC

B

FEDZYXCBA

C

FEDXYZCBA

D

DEFZYXABC

分值: 1

答案:B

栈是一种特殊的线性表, 它所有的插入与删除都限定在表的同一端进行。 队

列是指允许在一端进行插入, 而在另一端进行删除的线性表。 将 A, B,

C, D, E, F 入栈后, 栈中元素为 ABCDEF, 退出三个元素入队, 队列元

素为 FED, 将 X, Y, Z 入栈后栈中元素为 ABCXYZ, 全部入队后, 队列元

素为 FEDZYXCBA。

4.

某二叉树的前序序列为 ABCDEFG, 中序序列为 DCBAEFG, 则该二叉树的后序

序列为( )。

SSS_SINGLE_SEL

A

EFGDCBA

B

DCBEFGA

C

BCDGFEA

D

DCBGFEA

分值: 1

答案:D

二叉树遍历可以分为 3 种: ①前序遍历, 访问根节点在访问左子树和访问右

子树之前; ②中序遍历,访问根节点在访问左子树和访问右子树两者之间;

③后序遍历, 访问根节点在访问左子树和访问右子树之后。 二叉树的前序序

列为 ABCDEFG, A 为根节点。 中序序列为 DCBAEFG, 可知 DCB 为左子树节

点, EFG 为右子树节点。 同理 B 为 C 父节点, C 为 D 父节点, 且 CD 均

为 B 的同侧子树节点。 同理 E 为 F 根节点, F 为 G 根节点,且 FG 为 E

同侧子树节点。 二叉树的后序序列为 DCBGFEA。

5.

软件生命周期是指( )。

SSS_SINGLE_SEL

A

软件产品从提出、 实现、 使用、 维护到停止使用、 退役的过程

B

软件的需求分析、 设计与实现

C

软件的开发与管理

D

软件的实现和维护

分值: 1

答案:A

通常把软件产品从提出、 实现、 使用、 维护到停止使用、 退役的过程称为

软件生命周期。

6.

通常软件测试实施的步骤是( )。

SSS_SINGLE_SEL

A

集成测试、 单元测试、 确认测试

B

单元测试、 集成测试、 确认测试

C

确认测试、 集成测试、 单元测试

D

单元测试、 确认测试、 集成测试

分值: 1

答案:B

软件测试的实施过程主要有 4 个步骤: 单元测试、 集成测试、 确认测试

(验收测试) 和系统测试。

7.

下面不属于对象主要特征的是( )。

SSS_SINGLE_SEL

A

唯一性

B

多态性

C

可复用性

D

封装性

分值: 1

答案:C

对象的基本特点主要有: ①标识唯一性, 一个对象通常可由对象名、 属性和

操作三部分组成; ②分类性, 指可以将具有相同属性和操作的对象抽象成

类; ③多态性, 指同一个操作可以是不同对象的行为, 不同对象执行同一操

作产生不同的结果; ④封装性, 从外面看只能看到对象的外部特性, 对象的

内部对外是不可见的;⑤模块独立性好, 由于完成对象功能所需的元素都被封

装在对象内部, 所以模块独立性好。

8.

在数据库设计中, 描述数据间内在语义联系得到 E—R 图的过程属于

( )。

SSS_SINGLE_SEL

A

逻辑设计阶段

B

需求分析阶段

C

概念设计阶段

D

物理设计阶段

分值: 1

答案:C

数据库设计主要有需求分析、 概念设计、 逻辑设计和物理设计四个阶段。 概

念设计最常用的方法是E—R 方法, 它采用 E—R 模型, 将现实世界的信息

结构统一由实体、 属性以及实体之间的联系来描述。

9.

在数据库系统中, 用于对客观世界中复杂事物的结构及它们之间的联系进行描

述的是( )。

SSS_SINGLE_SEL

A

概念数据模型

B

逻辑数据模型

C

物理数据模型

D

关系数据模型

分值: 1

答案:C

数据模型按照不同的应用层次分为: ①概念数据模型, 着重于对客观世界复

杂事物的描述及对它们内在联系的刻画; ②逻辑数据模型, 是面向数据库系

统的模型, 着重于在数据库系统一级的实现; ③物理数据模型, 是面向计算

机物理实现的模型, 此模型给出了数据模型在计算机上物理结构的表示。

10.

有三个关系 R、 S 和 T 如下:

则由关系 R 和 S 得到关系 T 的操作是( )。

SSS_SINGLE_SEL

A

B

投影

C

D

选择

分值: 1

答案:A

用于查询的 3 个操作无法用传统的集合运算表示, 引入的运算为投影运算、

选择运算、 笛卡尔积。常用的扩充运算有交、 除、 连接及自然连接等。 A

项, 并: R∪ S 是将 S 中的记录追加到 R 后面, 与题目中结果相符。

11.

结构化程序由顺序、 选择、 循环三种基本结构组成, 以下相关叙述错误的是

( )。

SSS_SINGLE_SEL

A

三种基本结构不可以嵌套使用

B

顺序结构是按语句在程序中的先后顺序逐条执行, 没有分支, 没有转移

C

选择结构是根据不同的条件执行不同分支中的语句

D

循环结构是根据条件决定是否重复、 重复执行多少次循环体语句

分值: 1

答案:A

三种结构可以嵌套使用, A 项错误。 结构化程序主要由 3 种基本控制结构组

成, 顺序结构是最基本的算法结构, 当执行由这些语句构成的程序时, 将按

这些语句在程序中的先后顺序逐条执行, 没有分支, 没有转移, 没有步骤之

间的相互约束, 没有对某一步骤的多次使用, 完全按照步骤的原有次序依次

执行, B 项正确; 选择结构根据不同的条件去执行不同分支中的语句, C 项

正确; 循环结构就是根据各自的条件, 使同一组语句重复执行多次, D 项正

确。

12.

在 C 语言中, 以下选项中不能正确表示 10×1000 之值的是( )。

SSS_SINGLE_SEL

A

1. 0E4. 0

B

1. E4

C

10E3

D

1. 0e4

分值: 1

答案:A

实型常量用带小数点的数字表示, 其值有两种表达形式, 分别为十进制小数

形式和指数形式。 指数形式由十进制数加阶码标志“e” 或“E” 以及阶码

(只能为整数, 可以带符号) 组成。 指数形式中阶码必须是整型常量, 而

A 项中 4. 0 是浮点数, 所以 A 项不能正确表示 10×1000 之值, BCD 三项

都表示正确并且值为 10000。

13.

以下选项中, 合法的 C 语言常量是( )。

SSS_SINGLE_SEL

A

21. 84

B

‘CPP’

C

” \ 1. 0

D

2MB

分值: 1

答案:A

21. 84 是典型的浮点型数据, 故 A 选项正确; 字符常量是单引号括起来的

一个字符, 字符串常量是双引号括起来的字符序列, BC 两项错误; C 语言

常量不能直接用未加引号的字母、 数字组合, 故 D 项错误。

14.

有以下程序:

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

SSS_SINGLE_SEL

A

10, 9

B

11, 10

C

010, 9

D

9, 10

分值: 1

答案:D

整型常量有 3 种表示方法, 分别是十进制数表示法、 八进制数表示法和十六

进制数表示法, 八进制整常量以 O 作为前缀。 自增和自减运算符的两种用

法: 前置运算, 运算符放在变量之前, 规则是先使变量的值增(或减) 1,

然后以变化后表达式的值参与其他运算; 后置运算, 运算符放在变量之后,

规则是变量先参与其他运算, 然后再使变量的值增(或减) 1。 x=010=8,

y=10, ++x 先自加后取值, 输出 9, y--先取值输出 10, 再自减 y=9。

15.

若有定义: int a; float b; double c; , 程序运行时输入: a=1,

b=2, c=3<回车>, 能把值 1 输入给变量a、 值 2 输入给变量 b、 值 3 输

入给变量 C 的输入语句是( )。

SSS_SINGLE_SEL

A

scanf("a=%d,b=%f,c=%lf",&a,&b,&c);

B

scanf("%d%f%lf",&a,&b,&c);

C

scanf("a=% d,b=% lf,c=%lf",&a,&b,&c);

D

scanf("a=%d,b=% f,c=%f",&a,&b,&c);

分值: 1

答案:A

格式字符 d, 输入十进制整数; 格式字符 f, 输入浮点数; 格式字符 if,

输入双精度浮点数。 除了格式说明字符和附加格式字符外, 如果还有其他字

符, 则在输入数据时要求按一一对应的位置原样输入这些字符。程序运行时输

入: a=1, b=2, c=3, 则 scanf函数格式控制串对应的应该是“a=%d,

b: %f, c: %if” 。

16.

有如下程序:

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

SSS_SINGLE_SEL

A

Ta=1, b=2

B

Fa=0, b=2

C

Fa=1, b=1

D

Ta=0, b=1

分值: 1

答案:C

题目中判断 if条件是否成立, a++先取值为 0, 则(a++&&b++) 为 0,

且不计算 b++, 而后 a 自增得 a=1, if条件不成立执行 else 函数体, 输

出 F。 最后执行语句printf("a=%d, b=%d\ n", a, b); 按照格式

输出 a=1, b=1。

17.

以下不是合法 C 语言转义字符的是( )。

SSS_SINGLE_SEL

A

' \ c'

B

' \ a'

C

' \ b'

D

' \ r'

分值: 1

答案:A

C 语言中, ‘a’ 表示响铃, ‘b’ 表示退格, ‘r’ 表示回车不换

行。

18.

有以下程序:

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

SSS_SINGLE_SEL

A

123

B

ABC

C

abc

D

012

分值: 1

答案:A

当满足 ch<' E' , 输出 ch-' A' , 即字符在 ASCII 码相减进行输出, %d

表示输出十进制整数。 循环开始 ch=' B' , print(“%d” , ch-' A' )

=1。

19.

以下能够实现计算 5! 的程序段是( )。

SSS_SINGLE_SEL

A

int fac=l,k=1;

d{k++;fac*=k;} while(k <5);

B

int fac=0,k=1;

do(fac*=k;k++;)while(k<5);

C

int fac=1,k=1;

do(k++;fac*=k;} while(k <=5);

D

int fac=1,k=0;

do(fac*=k;k++;} while(k < 5);

分值: 1

答案:A

do…while 循环语句一般形式为: do{循环体} while(表达式), 执行过程

为: 首先执行循环体, 之后判断表达式, 成立(非 0) 则再一次执行循环

体, 不成立(0) 则退出循环。 A 项, k=1, fac=1*1, 判断 k<5,条件成

立进行下一次循环, 直到 k=5, fac=1*2*3*4*5, k<5 不成立退出循环, 实

现计算 5!, 正确。 B 项, fae 从0 开始, 做乘法一直都是 0, 无法实

现 5!, 错误。 C 项, k=2, fac=1*2, 循环条件成立, 直到 k=6,

fac=1*2*3*4*5*6才因循环条件不成立退出循环, 实现 6!, 错误。 D 项:

k=0, fae=1*0=0, 之后做乘法一直为 0, 无法实现 5!, 错误。

20.

有以下程序:

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

SSS_SINGLE_SEL

A

True

B

TrueFalse

C

False

D

TrueFalseTrue

分值: 1

答案:B

if(x=0x12) 此处是赋值语句“=” , 注意赋值操作符“=” 与相等操作符

“= =” 的区别。

21.

有以下程序段: char c1, c2, c3; scanf("%c%c%c", &c1, &c2,

&c3); 若要给 c1、 c2、 c3 分别输入字母 A、 B、 C, 则以下对输入形式

的描述正确的是( )。

SSS_SINGLE_SEL

A

字母 A、 B、 C 之问可以用空格分隔

B

字母 A、 B、 C 之间不能有分隔符

C

字母 A、 B、 C 之间可以用回车符分隔

D

字母 A、 B、 C 之间可以用 Tab 键分隔

分值: 1

答案:B

在使用 scanf 函数时要注意, 在用“%c” 格式输入字符时, 分隔符(空格

符、 制表符(Tab 键)、回车符) 和转义字符都将作为有效字符进行输入。

题目中要求以字符形式输入三个数据, 空格、 回车符、 Tab 键均会被视为有

效字符赋给对应变量, 所以字母 A、 B、 C 之间不能有分隔符。

22.

有以下程序:

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

SSS_SINGLE_SEL

A

0

B

变量无定义, 输出不确定

C

-1

D

1

分值: 1

答案:A

A 项, 定义了一个临时指针, 实现两个指针地址的交换, 而传入了参数是二

个指针的副本, 即 a、b 地址的副本, 故交换了副本地址, 对 a、 b 无影

响。 B 项调用函数传入的是 i 与 j 地址, 函数体内交换是地址内元素, 临

时变量为整型变量, 能实现 i 与 j 值交换; C 项调用函数传入的是 i 与 j

地址, 函数体内交换是地址内元素, 临时变量为整型指针, 且已正确开辟内

存, 能实现 i 与 j 值交换; D 项与 B 项相同, 能实现 i 与 j 值交换。

23.

以下关于函数的叙述中正确的是( )。

SSS_SINGLE_SEL

A

函数调用必须传递实参

B

函数必须要有形参

C

函数必须要有返回值

D

函数形参的类型与返回值的类型无关

分值: 1

答案:D

函数参数有两种: 形式参数和实际参数, 前者函数定义时函数名后括号内是

形参列表, 每个形参由类型和名称两部分组成; 后者函数调用时函数名后括

号内是实参列表, 实参可以是常量、 变量或表达式。 函数如果没有形参也就


发布者:admin,转转请注明出处:http://www.yc00.com/news/1714442872a2447407.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信