国家二级(C++)机试模拟试卷127
选择题
1.下列叙述中正确的是( )。(D)
A. 栈是“先进先出”的线性表
B. 队列是“先进后出”的线性表
C. 循环队列是非线性结构
D. 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
解析:栈是先进后出的线性表,所以A错误;队列是先进先出的线性表,所以B错误;循环队列是线性结构的线性表,所以C错误。
2.支持子程序调用的数据结构是( )。(A)
A. 栈
B. 树
C. 队列
D. 二叉树
解析:栈支持子程序调用.。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A。
3.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是( )。(C)
A. 10
B. 8
C. 6
D. 4
解析:根据二叉树的基本性质3:在任意一颗二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中是5+1=6个。
4.下列排序方法中,最坏情况下比较次数最少的是( )。(D)
A. 冒泡排序
B. 简单选择排序
C. 直接插入排序
D. 堆排序
解析:冒泡排序、直接插入排序与简单选择排序法在最坏情况下均需要比较n(n一1)/2次,而堆排序在最坏情况下需要比较的次数是nlog2n。
5.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。(c)
A. 编译程序
B. 操作系统
C. 教务管理系统
D. 汇编程序
解析:编译软件、操作系统、汇编程序都属于系统软件,只有c教务管理系统才是应用软件。
6.下面叙述中错误的是( )。(A)
A. 软件测试的目的是发现错误并改正错误
B. 对被调试的程序进行“错误定位”是程序调试的必要步骤
C. 程序调试通常也称为Debug
D. 软件测试应严格执行测试计划,排除测试的随意性
解析:软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A错误。程序调试的基本步骤有:错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。程序调试通常称为Debug,即排错。软件测试的基本准则有:所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件。
7.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是( )。(B)
A. 提高耦合性降低内聚性有利于提高模块的独立性
B. 降低耦合性提高内聚性有利于提高模块的独立性
C. 耦合性是指一个模块内部各个元素间彼此结合的紧密程度
D. 内聚性是指模块间互相连接的紧密程度
解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以A错误,B正确。耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素间彼此结合的紧密程度,所以C与D错误。
8.数据库应用系统中的核心问题是( )。(A)
A. 数据库设计
B. 数据库系统设计
C. 数据库维护
D. 数据库管理员培训
解析:数据库应用系统中的核心问题是数据库的设计。
9.有两个关系R,S如下:
(B)
A. 选择
B. 投影
C. 插入
D. 连接
解析:投影运算是指对于关系内的域指定可引入新的运算。本题中s是在原有关系R的内部进行的,是由R中原有的那些域的列所组成的关系。所以选择B。
10.将E—R图转换为关系模式时,实体和联系都可以表示为( )。(C)
A. 属性
B. 键
C. 关系
D. 域
解析:从E—R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E—R图中属性也可以转换成关系的属性。
11.字面常量42、4.2、42L的数据类型分别是( )。(C)
A. long、double、int
B. long、float、int
C. int、double、long
D. int、float、long
解析:本题考查整型变量的类型和浮点变量的类型,42默认为int型数据,42后面加上L后,表示long型数据,4.2默认为double型数据。
12.执行下列语句段后,输出字符“*”的个数是( )。
for(int i=50;i>1;一一i)
cout<<’*’:(B)
A. 48
B. 49
C. 50
D. 51
解析:本题考查for循环语句,–i表示用之前先减1,那么这个for循环语句只有50到2时才会输出“*”,所以总共输出49次。
13.有如下程序段:
int i=0,j=1;
nt&r=i;//①
r-j;//②
int*p=&i;//③
*p=&r;//④
其中会产生编译错误的语句是( )。(A)
A. ④
B. ③
C. ②
D. ①
解析:本题考查指针和引用。①为引用,使用正确;④中&r表示一个地址,而*p已经是一个值了,不能将一个指针赋值给一个值,所以编译错误。
14.必须用一对大括号括起来的程序段是( )。(D)
A. switch语句中的ease标号语句
B. if语句的分支
C. 循环语句的循环体
D. 函数的函数体
解析:本题考查C++基本控制结构,A、B、C三个选项中的大括号不是必须的,而D选项中的函数体必须使用大括号。
15.下列符号中不属于C++关键字的是( )。(D)
A. friend
B. namespaee
C. continue
D. byte
解析:本题考查C++关键字,属于基本常识,显然D选项不正确。
16.下列有关函数重载的叙述中,错误的是( )。(C)
A. 函数重载就是用相同的函数名定义多个函数
B. 重载函数的参数列表必须不同
C. 重载函数的返回值类型必须不同
D. 重载函数的参数可以带有默认值
解析:所谓函数重载是指同一个函数名可以对应着多个函数的实现。每种实现对应着一个函数体,这些函数的名字相同,但是函数参数的类型不同,还允许参数的个数不同,但不能只有函数的返回值类型不同而参数的个数和类型相同的重载。所以
本文档预览:3600字符,共18912字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载