国家二级(C语言)机试历年真题试卷汇编17
选择题
1.下列叙述中正确的是( )。(D)
A. 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B. 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C. 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D. 循环队列中元素的个数是由队头指针和队尾指针共同决定的
解析:循环队列有队头和队尾两个指针,但是循环队列仍是线性结构,因此A错误;在循环队列中需要队头与队尾两个指针来共同反映队列中元素的动态变化情况,因此B与C错误,故本题答案为D。
2.下列各序列中不是堆的是( )。(C)
A. (91,85,53,36,47,30,24,12)
B. (91,85,53,47,36,30,24,12)
C. (47,91,53,85,30,12,24,36)
D. (91,85,53,47,30,12,24,36)
解析:堆可以看成一棵完全二叉树:任一根节点>=左右孩子(或者<=)(大的叫大根堆,小的叫小根堆)。注意一个堆中的这种性质有一致性,不能既有大于又有小于情况存在。本题可以这么做,把结点按照完全二叉树画出来就一目了然了。这个题目很明显91是最大的根,而C选项是“左根右”的排序,那么91的左边只有47,其他都在右边,而右边无法按照此顺序排列,故选C。
3.设循环队列为Q(1:m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=15,rear=20。现要在该循环队列中寻找最大值的元素,最坏情况下需要比较的次数为( )。(A)
A. 4
B. 6
C. m一5
D. m一6
解析:初始状态为front=rear=m,说明初始状态为空。经过一系列入队与退队运算后,front=15,rear=20,则当前共有5个元素,在最坏情况下,需要比较的次数为4次,答案选A。
4.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是( )。
B
解析:只有B选项369可以用无符号整数来表示和存储。A选项一369有负号,C选项0.369是小数,都不能用无符号整数类存储。D选项是一个整数集合,得用数组来存储。
5.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈顺序是( )。(B)
A. 12345ABCDE
B. EDCBA54321
C. ABCDE12345
D. 54321EDCBA
解析:栈按“后进先出”的原则组织数据,因此入栈最晚的最先出栈,因此本题答案为B。
6.如下所示的系统结构图的最大出扇数是( )。
(A)
A. n
B. 1
C. 3
D. 4
解析:系统结构图的扇出数指的是一个模块直接调用的其他模块数,图中的最大扇出数为n,答案选A。
7.软件设计中模块划分应遵循的准则是( )。(C)
A. 低耦合、低内聚
B. 高耦合、高内聚
C. 低耦合、高内聚
D. 内聚与耦合无关
解析:软件设计中,模块划分应遵循高内聚、低耦合的准则,答案选C。
8.软件的生命周期是指( )。(A)
A. 软件产品从提出、实现、使用维护到停止使用退役的过程
B. 软件从需求分析、设计、实现到测试完成的过程
C. 软件的开发过程
D. 软件的运行维护过程
解析:一般将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。
9.在数据库设计中,描述数据间内在语义联系得到E—R图的过程属于( )。(C)
A. 逻辑设计阶段
B. 需求分析阶段
C. 概念设计阶段
D. 物理设计阶段
解析:数据库设计的需求分析阶段是数据库设计的第一阶段,这一阶段收集到的基础数据和一组数据流图是下一步设计概念结构的基础。数据库概念设计的目的是分析数据间内在的语义关联,在此基础上建立一个数据的抽象模型。数据库的逻辑设计主要工作是将E—R图转换成指定的关系数据库中的关系模式。数据库物理设计的主要目标是对数据库内部物理结构做出调整并选择合理的存取路径,以提升数据库访问速度及有效利用存储空间。所以本题答案选C。
10.一个运动队有多个队员,一个队员仅属于一个运动队,一个队一般都有一个教练,则实体运动队和队员的联系是( )。(A)
A. 一对多
B. 一对一
C. 多对一
D. 多对多
解析:一个运动队有多个队员,表明在运动队表中的每个队与队员表中的一个或多个队员相关;一个队员仅属于一个运动队,表明队员表中的每个队员只可以与运动队表中的一个队相关,为一对多关系。故正确答案为A。
11.以下叙述中错误的是( )。(A)
A. 使用三种基本结构构成的程序只能解决简单问题
B. 结构化程序由顺序、分支、循环三种基本结构组成
C. C语言是一种结构化程序设计语言
D. 结构化程序设计提倡模块化的设计方法
解析:使用顺序、选择(分支)、循环3种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,因此A选项错误。
12.C源程序中不能表示的数制是( )。(C)
A. 十进制
B. 八进制
C. 二进制
D. 十六进制
解析:在C语言中整型常量可以用十进制、八进制和十六进制等形式表示,但不包括二进制。因此选择C。
13.关于C语言标识符,以下叙述中错误的是( )。(A)
A. 标识符可全部由数字组成
B. 标识符可全部由下画线组成
C. 标识符可全部由小写字母组成
D. 标识符可全部由大写字母组成
解析:C语言标识符只能由字母、数字、下画线构成,且只能以字母、下画线开头,故选项A不正确。
14.若有定义语句:int x=10;,则表达式x一=x+x的值为( )。(D)
A. 10
B. 一20
C. 0
D. 一10
解析:算术运算符+的优先级高于一=,且一=的结合方向为自右向左,因此表达式x一=x+x可以表示成x=x一(x+x)=10一(10+10)=一10,所以选择D。
15.以下叙述中正确的是( )。(D)
A. 分支结构是根据算术表达式的结果来判断流程走向的
B. 在C语言中,逻辑真值和假值分别对应1和0
C. 对于浮点变量x和y,表达式:x==y是非法的,会出编译错误
D. 关系运算符两边的运算对象可以是C语言中任意合法的表达式
解析:C语言中,运算符两侧的运算对象可以是任意合法的表达式,选项D正确;非0和0分别对应逻辑真值和假值,选项B错;关系运算符“==”两侧的运算对象只要为合法的表达式就可以编译通过,选项C错;分支结构是根据if或者else if后面的圆括号内的表达式(不仅仅是算术表达式,还有赋值表达式、逗号表达式、关系表达式、逻辑表达式等)的值来判定流程走
本文档预览:3600字符,共14226字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载