国家二级C++机试(选择题)模拟试卷219
选择题
1.算法的有穷性是指( )。(A)
A. 算法程序的运行时间是有限的
B. 算法程序所处理的数据量是有限的
C. 算法程序的长度是有限的
D. 算法只能被有限的用户使用
解析:算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。
2.对长度为n的线性表作快速排序,在最坏情况下,比较次数为(D)
A. n
B. n-1
C. n(n一1)
D. n(n-1)/2
解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。
3.下列数据结构中,不能采用顺序存储结构的是(D)
A. 栈
B. 堆
C. 队列
D. 非完全二叉树
解析:堆中某个结点的值总是不大于或不小于其父结点的值、堆总是一棵完全二叉树,可以以顺序存储结构存储;队列的存储结构分为链式存储、顺序存储两种;栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表,可以以顺序存储结构存储。
4.支持子程序调用的数据结构是( )。(A)
A. 栈
B. 树
C. 队列
D. 二叉树
解析:栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A。
5.下列关于函数参数的叙述中,正确的是( )。(D)
A. 在函数原型中不必声明形参类型
B. 函数的实参和形参共享内存空间
C. 函数形参的生存期与整个程序的运行期相同
D. 函数的形参在函数被调用时获得初始值
解析:函数的实参与形参是两个不同的变量,有各自的存储空间。函数形参是函数的局部变量,在函数调用时获得初始值。
6.下列描述中正确的是( )。(D)
A. 程序就是软件
B. 软件开发不受计算机系统的限制
C. 软件既是逻辑实体,又是物理实体
D. 软件是程序、数据与相关文档的集合
解析:计算机软件与硬件是计算机系统中相互依存的两部分。计算机软件是包括程序、数据及相关文档的完整集合。软件由两部分组成:一部分是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。软件具有以下六个特点:①软件是一种逻辑实体,而不是物理实体,具有抽象性。②软件的生产与硬件不同,它没有明显的制作过程。③软件在运行、使用期间不存在磨损、老化问题。④软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移值的问题。⑤软件复杂性高,成本昂贵。⑥软件的开发涉及诸多社会因素。
7.有如下程序:
#include
using namespace std;
class Book{
public:
Book(char*t=“”){strcpy(title,t);}
private:
char title[40];
};
class Novel:public Book{
public:
Novel(char*t=“”):Book(t){}
char *Category()const{return“文学”;}
};
int main(){
Book*pb;
pb=new Novel();
cout<Category();
delete pb;
return 0;
}
若程序运行时输出结果是“文学”,则横线处缺失的语句是( )。(D)
A. char*Category( );
B. char*Category( )const;
C. virtual char*Category( )const;
D. virtual char*Category( )eonst=0;
解析:本题考查纯虚函数和抽象类,纯虚函数是在声明虚函数时被“初始化”为0的函数,包含纯虚函数的类为抽象类,抽象类是不能被实例化的,但是可以定义指向抽象类数据的指针变量,当派生类成为具体类后,就可以用这种指针指向派生类的对象,然后通过该指针调用虚函数,实现多态性的操作。所以本题答案为D。
8.从工程管理角度看,软件设计一般分为两步完成,它们是( )。(A)
A. 概要设计与详细设计
B. 数据设计与接口设计
C. 软件结构设计与数据设计
D. 过程设计与数据设计
解析:软件设计是开发阶段最重要的步骤.从工程管理的角度来看可分为两步:概要设计和详细设计.概要设计是将软件需求转化为软件体系结构,确定系统级接口、全局数据结构或数据库模式;详细设计是指确立每个模块的实现算法和局部数据结构,用适应方法表示算法和数据结构的细节。从技术观点来看,软件设计包括软件结构设计(定义软件系统各主要部件之间的关系)、数据设计(将分析时创建的模型转化为数据结构)、接口设计(描述软件内部、软件与协作系统之间以及软件与人之间如何通信)、过程设计(把系统结构部件转换成软件的过程)四个步骤。
9.有如下程序
#include
using namespace std;
int i=1;
class Fun{
public:
static int i;
int value(){return i-1;}
int value()const{return i+l;}
};
int Fun∷i=2;
int main(){
int i=3;
Fun fun1;
const Fun fun2;
return 0;
}
若程序的输出结果是:
123
则程序中下划线处遗漏的语句是( )。(A)
A. cout<<fun1.value()<<Fun∷i<<fim2.value();
B. cout<<Fun∷i<<fun1.value()<<fun2.value();
C. cout<<fun1.value()<<fun2.value()<<Fun∷i;
D. cout<<fim2.value()<<Fun∷i<<fun1.value();
解析:此题考查的是常成员函数。Const关键字可以用于参与重载函数的区分,此时常对象调用常成员函数,一般对象调用一般成员函数,当类中只有一个常成员函数时,一般对象也可以调用该常成员函数。本题中,通过fun1调用value()函数时,是调用前一个,而通过fun2调用value()函数是调用后一个:另外,
本文档预览:3600字符,共6741字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载