1、国家二级( C+)机试模拟试卷 132及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)算法的空间复杂度与算法所处理的数据存储空间有关 ( B)算法的空间复杂度是指算法程序控制结构的复杂程度 ( C)算法的空间复杂度是指算法程序中指令的条数 ( D)压缩数据存储空间不会降低算法的空间复杂度 2 下列各组排序法中,最坏情况下比较次数相同的是 ( )。 ( A)希尔排序与堆排序 ( B)简单插入排序与希尔排序 ( C)简单选择排序与堆排序 ( D)冒泡排序与快速排序 3 设 栈的存储空间为 S(1: 50),初始状态为 top=51。现经过一系列正常的入栈与退栈操作后, top=
2、20,则栈中的元素个数为 ( )。 ( A) 31 ( B) 30 ( C) 21 ( D) 20 4 某二叉树共有 400个结点,其中有 100个度为 1的结点,则该二叉树中的叶子结点数为 ( )。 ( A) 149 ( B) 150 ( C) 151 ( D)不存在这样的二叉树 5 下面属于 “类一对象 ”主要特征的是 ( )。 ( A)对象一致性 ( B)对象无关性 ( C)类的多态性 ( D)类的依赖性 6 下面不属于需求分析阶段工作的是 ( )。 ( A)需求获取 ( B)可行性研究 ( C)需求分析 ( D)撰写软件需求规格说明书 7 软件生命周期是指 ( )。 ( A)软件的需求
3、分析、设计与实现 ( B)软件的开发与管理 ( C)软件的实现和维护 ( D)软件产品从提出、实现、使用维护到停止使用退役的过程 8 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是( )。 ( A)内模式 ( B)用户模式 ( C)外模式 ( D)概念模式 9 大学中每个年级 有多个班,每个班有多名学生,则实体班级和实体学生之间的联系是 ( )。 ( A)一对多 ( B)一对一 ( C)多对一 ( D)多对多 10 有 3个关系 R、 S和 T如下:则由关系 R、S得到关系 T的操作是 ( )。 ( A)交 ( B)投影 ( C)自然连接 ( D)并 11 下列关于 n
4、ew和 delete运算符的叙述中,错误的是 ( )。 ( A) delete运算符用于释放用 new分配的内存空间 ( B) new运算符创建类对象时要调用构造函数 ( C)使用 new创建数组时可以为数组元素指定初值 ( D)使用 neW和 delete运算符可以动态建立或删除对象 12 下列选项中,不属于 C+关键字的是 ( )。 ( A) do ( B) try ( C) import ( D) static 13 若已定义过类 A和 B,并且定义类 C如下: class C public: int val; A aObj; B bObi; C*cObj; C(): cObj(0),
5、val(0) ; 若要建立类 C的对象 ohject,则类成员 val、 aObj、 bobj和 cobj中最后被初始化的是 ( )。 ( A) val ( B) aobj ( C) bObj ( D) cObj 14 若有如下类定义 class Number double Convert()return double(value); public: void Add(); void Add(int x); private: int value; ; 则下列叙述中,错误的是 ( )。 ( A)类中有 1个私有数据成员 ( B)类中有 1个私有成员函数 ( C)编译时会产生 Add()函数重定义
6、错误 ( D)成员函数 Convert()是内联函数 15 若已知 “int a37; ”,则用指针表示数组 a中的元素时,下列表示中错误的是( )。 ( A) *(a+1)5 ( B) *(*a+3) ( C) *(*(a+1) ( D) *( a00+2) 16 下列语句中正确的是 ( )。 ( A) const int*p NULL; ( B) const int y=99; ( C) const int x=0; ( D) const int z: 100; 17 有如下程序段: int i=1; int j=4; int main() int i=5; j+=i; cout usin
7、g namespaee std; void fun(int i)eout using namespace std; class Rect int x, y; public: Reet(int xl=0, int y1=0): x(x1), y(y1) int get()return x*y; ; class Cube Rect plane; int high; public: Cube(int cx, int cy, int ch): plane(eX, cy), high(ch) int get()return plane get()*high; ; int i lain() Cube c(
8、3, 4, 5); eout using namespace std; class TV public: Tv(int s=41): size(s) TV(const TV&r): size(r size)cout #include using namespace std; class Shape public: void Draw(); string GetName(); private: string name; ; class Rectangle: private Shape protected: void Draw()Shape: Draw(); A string GetName()r
9、eturn name; B ; int main() Rectangle rect; reet Draw(); C rect GetName(); D return 0; 带标号的语句中,编译时不会出错的是 ( )。 ( A) A ( B) B ( C) C ( D) D 33 有如下程序: #include using namespace std; class Employee public: cout E; ; class Manager: public Employee public: Manager()cout #include using namespace std; class T
10、V public: Tv(int s=2): size(s) TV(const TV&t): size(t size) TV()cout #include using namespace std; class Person public: Person(string n): name(n) Person()eout T rain(T x, T y) return xT square(T x)return x*x; 其中的参数 T是 ( )。 ( A)函数形参 ( B)函数实参 ( C)模板实参 ( D)模板形参 39 下列函数模板声明中,合法的是 ( )。 ( A) templateT abs
11、(T x); ( B) template classvoid abs(T x); ( C) template Tabs(T x); ( D) templateabs(T X); 40 在下列枚举符号中,用来定位文件开始位置的符号常量是 ( )。 ( A) ios_base: cur ( B) ios_base: out ( C) ios_base: beg ( D) ios_base: end 二、基本操作题 41 请使用 VC6或使用【答题】菜单打开考生文件夹 projl下的工程 proj1,此工程中包含一个源程序文件 main cpp,其中有类 Book(“书 ”)和主函数 main的定义
12、。程 序中位于每个 “ERROR*found*”下 的语句行有错误,请加以改正。改正后程序的输出结果应该是: 书名: C+语句程序设计总页数: 299 已把 “C+语言程序设计 ”翻到第 50页 已把 “C+语言程序设计 ”翻到第 51页 已把 “C+语言程序设计 ”翻到第 52页 已把 “C+语言程序设计 ”翻到第 51页 已把书合上。 当前页: 0 注意:只修改每个 “ ERROR*found*”下的那一行,不要改动程序中的其他内容。 #include using namespace std; class Book char*title; int num_pages;页数 int cur_
13、page;当前打开页面的页码, 0表示书未打开 public: ERROR*found* Book(const char*theTitle, int pages)num_pages(pages) title=new charstrlen(theTitle)+1; strcpy(title, theTitle); coutnun_pages) cout using namespace std; class DataList数据表类 int len; double*d; public: DataList(int len, double data=NULL); DataList(DataList&d
14、ata); int length()constreturn len; double getElement(int i)constreturn di; DataList operator+(const DataList&list)const;两个数据表求和 void show()const;显示数据表 ; void writeToFile(char*, const DataList&); main cpp #includeDataList h DataList: DataList(int len, double data): len(1en) d=new double1en; for(int i=0; i,其中模板形参有三种形式: : ; 。函数模板的模板形参表是用尖括号括住的一个或多个模板形参的列