1、国家二级 C+机试(选择题)模拟试卷 79及答案与解析 一、选择题 1 下列叙述中正确的是 ( A)线性表链式存储结构的存储空间一般要少于顺序存储结构 ( B)线性表链式存储结构与顺序存储结构的存储空间都是连续的 ( C)线性表链式存储结构的存储空间可以是连续的,也可以是不连续的 ( D)以上说法均错误 2 某二叉树共有 12个结点,其中叶子结点只有 1个。则该二叉树的深度为(根结点在第 1层) ( A) 3 ( B) 6 ( C) 8 ( D) 12 3 对长度为 n的线性表作快速排序,在最坏情况下,比较次数 为 ( A) n ( B) n-1 ( C) n(n-1) ( D) n(n-1)
2、/2 4 结构化程序设计中,下面对 goto语句使用描述正确的是 ( A)禁止使用 goto语句 ( B)使用 goto语句程序效率高 ( C)应避免滥用 goto语句 ( D)以上说法均错误 5 下面不属于软件测试实施步骤的是 ( A)集成测试 ( B)回归测试 ( C)确认测试 ( D)单元测试 6 下面不属于软件需求分析阶段主要工作的是 ( A)需求变更申请 ( B)需求分析 ( C)需求评审 ( D)需求获取 7 一般 情况下,当对关系 R和 S进行自然连接时,要求 R和 S含有一个或者多个共有的 ( A)记录 ( B)行 ( C)属性 ( D)元组 8 有三个关系 R、 S和 T如下
3、: 则由关系 R和 S得到关系 T的操作是 ( A)选择 ( B)差 ( C)交 ( D)并 9 有表示公司和职员及工作的三张表,职员可在多家公司兼职。其中公司 C(公司号,公司名,地址,注册资本,法人代表,员工数),职员 S(职员号,姓名,性别,年龄,学历),工作 W(公司号,职员号,工资),则表 W的键(码)为 ( A)公司号,职员号 ( B)职员号,工资 ( C)职员号 ( D)公司号,职员号,工资 10 下列选项中,不是 C+ 关键字的是 ( A) const ( B) using ( C) class ( D) final 11 若有定义语句 “double a=2/3.0;“,则语
4、句 cout=b) n=0; ( C) if(a=b) n=0; else if (b=c) n=1; ( D) if(a using namespace std; int main() int x=4; do x-; cout using namespace std; void _ int z=x; x=y; y=z; int main() int x=0,y=1; f(x,y); cout using namespace std; class XB int a; public: static int b; XB(int aa):a(aa) b+; XB() b-; int get() re
5、turn a; ; int XB:b=0; int main() XB d(2); int n=d.get()+XB(3).get(); cout using namespace std; class Point int x,y; public: Point(int x1=0, int y1=0):x(x1),y(y1) int get() return x+y; ; class Circle Point center; int radius; public: Circle(int cx, int cy, int r):center(cx,cy),radius(r) int get() ret
6、urn center.get()+radius; ; int main() Circle c(3,4,5); cout #include using namespace std; class MyBag public: MyBag(string br,string cr):brand(br),color(cr) +count; MyBag() -count; static int GetCount() return count; private: string brand,color; static int count; ; int MyBag:count=0; int main() MyBa
7、g one(“CityLife“,“Gray“),two(“Micky“,“Red“); _ return 0; 若程序运行时的输出结果为 2,则横线处缺失的语句不可能是 ( A) cout #include using namespace std; class Wheel public: Wheel(string s=“W“):name(s) coutGetValue(); / sp-Task:GetValue(); / sp-Displayed:GetValue(); / sp-Draw(); / 在标注号码的语句行中,对类中成员访问存在二义性的是 ( A) ( B) ( C) ( D)
8、33 有如下类定义: class Point public: void SetX(int xx) x=xx; protected: void SetY(int yy) y=yy; private: int x,y; ; class Circle:public Point public: int GetRadius() return radius; private: void SetRadius(int r) radius=r; int radius; ; 派生类 Circle 中私有成员的个数为 ( A) 2 ( B) 4 ( C) 5 ( D) 6 34 有如下程序: #include #i
9、nclude using namespace std; class Father public: Father(string s):name(s) Father() cout #include using namespace std; class Animal public: virtual string GetType() const return “Animal“; virtual string GetVoice() const return “Voice“; ; class Dog:public Animal public: string GetType() const return “
10、Dog“; string GetVoice() const return “Woof“; ; class Cat:public Animal public: string GetType() const return “Cat“; string GetVoice() const return “Miaow“; ; void Type(Animal a) cout void swap(T a, T b, int size); ( B) template void swap(int size, T a, T b); ( C) template void swap(T1 a, T2 b, int s
11、ize); ( D) template void swap(T1 a, T2 b, int size); 38 要利用 C+ 流进行文件操作,必须在程序中包含的头文件是 ( A) iostream ( B) fstream ( C) strstream ( D) cstdlib 39 在语句 “cout using namespace std; int main() int sum = 0; for(int i = 0; i c时, n为 0; ab时, n为 0;与该意思相同的就是 D选项,而 A选项 if语句中的判断语句不正确。 13 【正确答案】 A 【试题解析】 本题考查引用概念和使用
12、,题目中 r为 x的引用,所以与 x的值相同,结果为 A, A选项正确。 14 【正确答案】 A 【试题解析】 本题考查 do while循环,执行第一次时,输出 x为 3,执行第二次的时候为 1,所以输出结果为 31, A选项正确。 15 【正确答案】 D 【试题解析】 extern定义的变量表示已经在别的地方定义,这里只是引用,所以不会对该变量分配内存空间,所以 D选项错误。 16 【正确答案】 C 【试题解析】 本题主要考查运算符重载函数,题目中说该运算符重载函数没有参数,那么只能是重载一元运算符,所以需要一个操作数,并且有默认 this指针,所以是成员函数, C选项错误。 17 【正确
13、答案】 C 【试题解析】 本题考查引用的概念和使用方法,引用使用 后输出三个数之和,所以是 12, C选项 正确。 28 【正确答案】 C 【试题解析】 本题考查常成员函数,其定义的一般形式如下: 返回值类型 常成员函数名 (参数列表 ) const; 所以 C选项正确。 29 【正确答案】 D 【试题解析】 当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数,所以 正确使用 this指针。而 为静态成员,没有 this指针,答案为 D选项。 30 【正确答案】 B 【试题解析】 本题考查静态数据成员和静态成员函数,静态成员函数只能使用本类
14、中的静态数据成员,且静态成员函数不归属任何一个对象,而是属于类,题目中要求输出 2,那么就要将 count输出,题目中定义了两个对象,都对 count进行了 +,所以调用静态成员函数直接使用类名, B选项正确。 31 【正确答案】 A 【试题解析】 定义 Monocycle bike1时,执行 Wheel的构造函数输出 W,然后执行 Monocycle的构造函数输出 E,执行 Monocycle(“G“)时,输出 WG,最后执行析构函数,输出 DD,最终输出 WEWGDD,选项 A正确。 32 【正确答案】 A 【试题解析】 本题考查派生类对基类的继承二义性问题,类 Satellite公用继承
15、Task和 Displayed,两个基类中都有 GetValue函数,所以引起二义性, A选项错误。 33 【正确答案】 A 【试题解析】 本题考查派生类对基类成员的访问属性,派生类公用继承基类,基类的私有成员不可访问,所以派生类的私有成员只有本身的两个私有成员, A选项正确。 34 【正确答案】 C 【试题解析】 执行派生类构造函数的顺序是: 1、调用基类构造函数, 2、调用子对象构造函数, 3、再执行派生类析构函数,4、执行基类的析构函数。所以本题中执行析构函数为派生类的析构函数、 Father的析构函数、 Mother的析构函数,所以输出 CFM,答案 C正确。 35 【正确答案】 C
16、【试题解析】 本题考查虚函数的运用,本题中定义 Dog d; Type(d)时,执行基类的 Type函数,输出 Animal,然后输出 speak,然后执行基类的 Speak函数输出Voice,最后输出 -,同理 cat输出类似,所以结果为 C选项正确。 36 【正确答案】 D 【试题解析】 模板形参由关键字 typename 或者 class声明,所以 D选项错误。 37 【正确答案】 B 【试题解析】 本题中使用模板 swap(a,b,10)时,第一个和第二个参数为数组,第三个参数为整型变量,而 B选项第一参数为整型变量与调用的时候不符合,所以B选项错误。 38 【正确答案】 B 【试题解
17、析】 本题考查文件流操作时使用需要包含的头文件,属于基础知识, B选项正确。 39 【正确答案】 B 【试题解析】 本题考查提取运算符 , cout为对象名,所以 B选项正确。 40 【正确答案】 D 【试题解析】 程序在 for循环中嵌套 while循环。 for循环的初始条件为, sum、 i初值为 0;进入 for循环之后,首先将 sum累加 i,此时 sum、 i仍为 0; while循环中,若 sum小于 100,则将 sum累加 i,继续 while循环;当 sum不满足条件时,退出循环。由于 sum、 i初值为 0,所以 while循环中 sum始终为 0,始终满足循环条件 sum100,所以程序进入死循环。答案为 D。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1