国家二级(C语言)机试历年真题试卷汇编26
选择题
1.下列叙述中正确的是( )。(A)
A. 快速排序法适用于顺序存储的线性表
B. 快速排序适用于链式存储的线性表
C. 链式存储的线性表不可能排序
D. 堆排序适用于非线性结构
解析:排序可以在不同的存储结构上实现,但快速排序法适用于顺序存储的线性表,不适用于链式存储的线性表。堆排序适用于线性结构,不适用于非线性结构。故本题选择A选项。
2.循环队列的存储空间为Q(1:50)。经过一系列正常的入队与退队操作后,front=rear=25。后又成功地将一个元素入队,此时队列中的元素个数为( )。(B)
A. 50
B. 1
C. 26
D. 2
解析:当front=rear=25时可知队列要么为空要么队列满,题目中又成功地将一个元素入队,说明之前队列为空(为满时队列中无法入队元素),为空的队列入队一个元素后队列中元素个数为1。故本题选择B选项。
3.树的度为3,且有9个度为3的节点,5个度为1的节点,但没有度为2的节点。则该树总的节点数为( )。(C)
A. 32
B. 14
C. 33
D. 19
解析:在树中,树中的节点数等于树中所有节点的度之和再加1。题干中树的度为3,有9个度为3的节点,5个度为1的节点,无度为2的节点,设有n个度为0的节点,则总节点数=9×3+5×1+0×2+n×0+1=33个。故本题选择C选项。
4.设栈与队列初始状态为空。首先A,B,C,D,E依次入栈,再F,G,H,I,J依次入队;然后依次出栈至栈空,再依次出队至队空。则输出序列为( )。(D)
A. F,G,H,I,J,A,B,C,D,E
B. F,G,H,I,J,E,D,C,B,A
C. E,D,C,B,A,J,I,H,G,F
D. E,D,C,B,A,F,G,H,I,J
解析:栈称为“后进先出”表或“先进后出”的线性表;队列称为“先进先出”或“后进后出”的线性表。A,B,C,D,E依次入栈,则依次出栈顺序为E,D,C,B,A;F,G,H,I,J依次入队,则依次出队顺序为F,G,H,I,J。故输出顺序为E,D,C,B,A,F,G,H,I,J。故本题选择D选项。
5.属于结构化程序设计原则的是( )。(A)
A. 模块化
B. 可继承性
C. 可封装性
D. 多态性
解析:结构化程序设计方法的原则包括:自顶向下、逐步求精、模块化、限制使用goto语句。B、C、D三项属于面向对象方法的特点。故本题选择A选项。
6.确定软件项目是否进行开发的文档是( )。(B)
A. 需求分析规格说明书
B. 可行性报告
C. 软件开发计划
D. 测试报告
解析:可行性报告产生于软件定义阶段,用于确定软件项目是否进行开发。故本题选择B选项。
7.基本路径测试是属于( )。(C)
A. 黑盒测试方法且是静态测试
B. 黑盒测试方法且是动态测试
C. 白盒测试方法且是动态测试
D. 白盒测试方法且是静态测试
解析:白盒测试法主要有逻辑覆盖、基本路径测试等。黑盒测试方法主要有等价类划分法、边界值分析法、错误推测法和因果图等。基本路径测试根据软件过程性描述中的控制流确定程序的环路复杂性度量,用此度量定义基本路径集合,并由此导出一组测试用例对每一条独立执行路径进行测试。因此基本路径测试属于动态测试。故本题选择C选项。
8.关系数据库中的键是指( )。(D)
A. 关系的所有属性
B. 关系的名称
C. 关系的专用保留字
D. 能唯一标识元组的属性或属性集合
解析:在关系(二维表)中凡是能唯一标识元组的最小属性集称为该关系的键或者码。故本题选择D选项。
9.商品销售的售货单和商品之间的联系是( )。(A)
A. 多对多
B. 一对多
C. 多对一
D. 一对一
解析:一张售货单可以有多种商品的记录,一种商品也可以出现在多张售货单上。因此售货单和商品之间的联系是多对多。故本题选择A选项。
10.定义学生选修课程的关系模式如下:
SC(S#,Sn,C#,Cn,G,Cr)(其属性分别为学号、姓名、课程号、课程名、成绩、学分)
则对主属性部分依赖的是( )。(B)
A. (S#,C#)→G
B. S#→Sn
C. (S#,C#)→S#
D. (S#,C#)→C#
解析:关系SC中的主键是(S#,C#),但S#(学号)单独就可以决定Sn(姓名),存在着对主属性的部分依赖。故本题选择B选项。
11.下面说法正确的是( )。(A)
A. 结构化程序的基本结构有三种,分别是循环结构、选择结构和顺序结构
B. 计算机只能执行顺序结构的C语言源程序
C. 循环结构无法使用N-S流程图描述
D. 一般称含有20条以内语句的算法为简单算法,超过20条则不可能是简单算法
解析:结构化程序的基本结构为循环结构、选择结构和顺序结构,选项A正确;计算机可以执行循环结构、选择结构和顺序结构的C语言程序,选项B错误;循环结构可以使用N-S流程图描述,选项C错误;算法复杂度是指算法在编写成可执行程序后,运行时所需要的时间资源和内存资源,并不是指算法语句的多少,选项D错误;本题答案为A。
12.下面说法正确的是( )。(D)
A. 只要程序使用基本结构编写,运行时就不会出错
B. MAIN()函数是每一个C语言程序必须定义的
C. 任何函数只能有一种基本结构
D. 任何复杂问题都可以只使用三种基本结构来解决
解析:程序错误分为语法错误和逻辑错误,使用基本结构编写的程序不能保证其没有语法或逻辑错误,选项A错误;是main()不是MAIN(),选项B错误;函数可以有多种基本结构,选项C错误;根据结构化编程的思想,三种基本结构组成的算法可以解决任何问题,选项D正确;本题答案为D。
13.以下选项中,合法的C语言常量是( )。(B)
A. C++’
B. 1.O
C. ’\0.\0
D. 2B
解析:在C语言中,字符型常量必须用单引号。括起来且只有一个字符;字符串常量必须双引号括起来;整型常量可以用十进制、八进制和十六进制形式表示,八进制以数字0开头,十六进制以0x(0x)开头;小数为浮点型常量,故选项A、C、D错误,选型B正确;本题答案为B。
14.以下选项中,合法的C语言实数是( )。(A)
A. .9E0
B. E22
C. 0.4lE
D. .8e0.01
解析:表示实型常数的E(也可以用e)前面必须有数字;后面的指数必须为整数,选项B、C、D错误,选项A正确;本题答案为A。
15.设a,b,c是整型变量,以下选项中的赋值表达式错误的是( )。(A)
A. a=1=(b=1)=1
B. a=(b=0)*(c+0)
C. a=b=c*c
D. a=1%(b=c==9)+46
解析::为赋值运算符,其左侧应该为一个可以被修改的值,即左值可为变量,算术表达式与常量不可做其左值,右值无特殊要求,选项B、C、D正确,选项A错误;本题答案
本文档预览:3600字符,共19709字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载