国家二级C++机试(选择题)模拟试卷490
选择题
1.下列叙述中正确的是(D)
A. 一个算法的空间复杂度大,则其时间复杂度也必定大
B. 一个算法的空间复杂度大,则其时间复杂度必定小
C. 一个算法的时间复杂度大,则其空间复杂度必定小
D. 算法的时间复杂度与空间复杂度没有直接关系
解析:算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量,算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中n是问题的规模:算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。根据各自的定义可知,算法的时间复杂度与空间复杂度并不相关。
2.下列叙述中正确的是( )。(B)
A. 有一个以上根结点的数据结构不一定是非线性结构
B. 只有一个根结点的数据结构不一定是线性结构
C. 循环链表是非线性结构
D. 双向链表是非线性结构
解析:在数据结构中,树这类的数据结构只有一个根结点,但它不是线性结构。
3.对下列二叉树
(C)
A. DYBEAFCZX
B. YDEBFZXCA
C. ABDYECFXZ
D. ABCDEFXYZ
解析:二叉树前序遍历的简单描述:若二叉树为空,则结束返回;否则:①访问根结点;②前序遍历左子树;③前序遍历右子树。可见,前序遍历二叉树的过程是一个递归的过程。根据题目中给出的二叉树的结构可知前序遍历的结果是ABDYECFXZ。
4.有如下程序:
#include<iostream>
using namespace std;
void function2(int n);
void functionl(int n){
if(n<=0)return;
function2(n一2);
}
void function2(int n){
if(n<=0)return;
functionl(n—1);
)
int main(){
fimctionl(5);
return 0:
)
下列关于程序运行情况的描述中,正确的是( )。(D)
A. functionl运行1次,function2运行2次
B. functionl运行2次,function2运行1次
C. functionl运行2次,function2运行3次
D. functionl运行2次,function2运行2次
解析:在主函数中执行functionl(5)时,会调用function2(3),function2(3)又会调用functionl(2),functionl(2)又会调用function2(0),到此相互调用结束。所以functionl()和function2()各执行了2次。
5.在面向对象方法中,实现信息隐蔽是依靠( )。(C)
A. 对象的继承
B. 对象的多态
C. 对象的封装
D. 对象的分类
解析:对象的封装性是指从外部看只能看到对象的外部特征,即只需知道数据的取值范围和可以对该数据施加的操作,而不需要知道数据的具体结构以及实现操作的算法。对象的内部,即处理能力的实行和内部状态,对外是不可见的。从外面不能直接使用对象的处理能力,也不能直接修改其内部状态,对象的内部状态只能由其自身改变。
6.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是( )。(B)
A. 编辑软件
B. 操作系统
C. 教务管理系统
D. 浏览器
解析:软件根据应用目标的不同,是多种多样的。软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件)。应用软件是为解决特定领域的应用而开发的软件。系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具性软件,包括辅助和支持开发和维护应用软件的工具软件,还包括辅助管理人员控制开发进程和项目管理的工具软件。
7.下面不属于软件测试实施步骤的是( )。(B)
A. 集成测试
B. 回归测试
C. 确认测试
D. 单元测试
解析:软件测试实施的步骤有单元测试、集成测试和确认测试。
8.软件(程序)调试的任务是(A)
A. 诊断和改正程序中的错误
B. 尽可能多地发现程序中的错误
C. 发现并改正程序中的所有错误
D. 确定程序中错误的性质
解析:在对程序进行了成功的测试之后将进入程序调试(通常称Debug,即排错)。程序调试的任务是诊断和改正程序中的错误。它与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于一定的调试工具去执行并找出错误的具体位置。软件测试贯穿整个软件生命期,调试主要在开发阶段。
9.类的析构函数的作用是( )。(D)
A. 一般成员函数
B. 类的初始化
C. 对象的初始化
D. 释放由对象所占用的资源
解析:类的在撤销对象时,系统会自动调用类的析构函数,析构函数用来释放由对象所占用的资源。
10.下列描述中,不属于面向对象思想主要特征的是( )。(B)
A. 封装性
B. 跨平台性
C. 继承性
D. 多态性
解析:封装性、继承性和多态性是面向对象程序设计的三个基本特征。跨平台性不是面向对象程序设计的特征。
11.有如下程序:
#include
using namespace std;
class A{
public:
AO{cout<<“A”;}
);
classB{public:B(){cout<<“B”;))
classC:public A{
B b:
public:
CO{cout<<“C”;)
);
int main(){C obj;return0;)
执行后的输出结果是( )。(D)
A. CBA
B. BAC
C. ACB
D. ABC
解析:此题考查的是类的继承和派生。系统首先要通过派生类的构造函数调用基类的构造函数,对基类成员初始化;然后对派生类中的新增成员初始化。
12.有如下程序:
#inc1ude <iostream>
void fun(int&
本文档预览:3600字符,共7938字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载