[计算机类试卷]国家二级(C++)笔试模拟试卷144及答案与解析.doc
《[计算机类试卷]国家二级(C++)笔试模拟试卷144及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C++)笔试模拟试卷144及答案与解析.doc(22页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C+)笔试模拟试卷 144及答案与解析 1 下列选项中,不是一个算法的基本特征是 ( )。 ( A)完整性 ( B)可行性 ( C)有穷性 ( D)拥有足够的情报 2 下列数据结构中,属于非线性的是 ( )。 ( A)线性表 ( B)队列 ( C)树 ( D)栈 3 下列叙述中错误的是 ( )。 ( A)线性表是由 n个元素组成的一个有限序列 ( B)线性表是一种线性结构 ( C)线性表的所有结点有且仅有一个前件和后件 ( D)线性表可以是空表 4 按照 “先进先出 ”组织数 据的数据结构是 ( )。 ( A)队列 ( B)栈 ( C)双向链表 ( D)二叉树 5 下列关于线性链表
2、的描述中正确的是 ( )。 ( A)存储空间不一定连续,且各元素的存储顺序是任意的 ( B)存储空间不一定连续,且前件元素一定存储在后件元素的前面 ( C)存储空间必须连续,且各前件元素一定存储在后件元素的前面 ( D)存储空间必须连续,且各元素的存储顺序是任意的 6 某二叉树共有 60个叶子结点与 50个度为 1的结点,则该二叉树中的总结点数为( )。 ( A) 148 ( B) 169 ( C) 182 ( D) 198 7 下列数据结构中,能用二分法进行查找的是 ( )。 ( A)顺序存储的有序线性表 ( B)结性链表 ( C)二叉链表 ( D)有序线性链表 8 最简单的交换排序方法是
3、( )。 ( A)快速排序 ( B)选择排序 ( C)堆排序 ( D)冒泡排序 9 对于长度为 n的线性表,在最坏情况下,下列各种排序法所对应的比较次数中,正确的是 ( )。 ( A)冒泡排序为 n/2 ( B)冒泡排序为 n ( C)快速排序为 n ( D)快速排序为 n(n-1)/2 10 结构化程序设计的三种基本结构是 ( )。 ( A)过程、子程序和分程序 ( B)顺序、选择和重复 ( C)递归、堆栈和队列 ( D)调用、返回和转移 11 运算符重载是对已有的运算符赋予多重含义,因此 ( )。 ( A)可以对基本类型 (如 int类型 )的数据,重新定义 “+”运算符的含义 ( B)可
4、以改变一个已有运算符的优先级和操作数个数 ( C)只能重载 C+中已经有的运算符,不能定义新运算符 ( D) C+中已经有的所有运算符都可以重载 12 已知类 Myst有一个只需要一个 double型 参数的构造函数,且将运算符 “-”重载为友元函数。要使语句序列 ( )。 Myst x(3.2),y (5.5),z(0.0); z=8.9-y; y=x-6.3; 能够正常运行,运算符函数 operator-应该在类中声明为 ( )。 ( A) friend Myst operator-(Myst ( B) friend Myst operator-(Myst,Myst); ( C) frie
5、nd Myst operator-(Myst,Myst ( D) friend Myst operator-(Myst 13 有如下函数模板声明: template typename T T Max(T a,T b)return(a=b)?a:b; 下列对函数模板 Max()的调用中错误的是 ( )。 ( A) Max(3.5,4.5) ( B) Max(3.5,4) ( C) Max double (3.5,4.5) ( D) Max double (3.5,4) 14 使用 ifstream流类定义流对象并打开磁盘文件时,文件的隐 含打开方式为 ( )。 ( A) ios:in ( B)
6、ios:out ( C) ios:inlios:out ( D)没有默认 15 有如下程序: #include iostream using namespace std; int main() cout.fill(*); cout.width(5); cout scientific 314.15926535 endl; return 0; 程序运行后,输出的结 果是 ( )。 ( A) 3.141593e+002 ( B) 3.1416e+002 ( C) *3.14e+002 ( D) 314.16 16 下列符号中,正确的 C+标识符是 ( )。 ( A) enum ( B) 2b ( C
7、) foo-9 ( D) _32 17 下列关于 C+函数的说明中,正确的是 ( )。 ( A)内联函数就是定义在另一个函数体内部的函数 ( B)函数体的最后一条语句必须是 return语句 ( C)标准 C+要求在调用一个函数之前,必须先声明其原型 ( D)编 译器会根据函数的返回值类型和参数表来区分函数的不同重载形式 18 类 MyClass的定义如下: class MyClass public: MyClass( )value=0; SetVariable(int i)value=i; private: int value; ; 则对下列语句序列正确的描述是 ( )。 MyClass*P
8、, my; p= ( A)语句 p= 是把对象 my赋值给指针变量 P ( B)语 句 MyClass*p, my; 会调用两次类 MyClass的构造函数 ( C)对语句 *P. SetVariable(5)的调用是正确的 ( D)语句 p- SetVariable(5)与语句 my.SetVariable(5)等价 19 若类 A和类 B的定义如下: #include malloc.h class A int i,j; public: int geti() return i; ; class B:public A int k; public: void make() k=i*j; ; 则上
9、述定义中非法的表达式是 ( )。 ( A) k=i*j; ( B) int k; ( C) return i; ( D) void make(); 20 下列程序的输出结果为 ( )。 #include iostream.h class TestClass public: TestClass ()val+; static int val; ; int TestClass:val=0; void main() TestClass cs1; cout cs1.val “; TestClass cs2; TestClass cs3,cs4; cout cs2.val endl; ( A) 03 (
10、B) 13 ( C) 14 ( D) 24 21 静态数据成员是为 ( )的数据。 ( A)私有 ( B)保护 ( C)所有对象共享 ( D)类成员 22 下列是关于派生类声明的开始部分,其中正确的是 ( )。 ( A) class virtual B:public A ( B) virtual class B:public A ( C) class B:public A virtual ( D) class B:virtual publicA 23 有如下程序: #include iostream using namespace std; class TestClass1 public: T
11、estClass1 ()cout “ TestClass1“; TestClass1 ()cout “ TestClass1“; ; class TestClass2:public TestClass1 TestClass1 *p; public: TestClass2()cout “ TestClass2“;p=new TestClass1(); TestClass2()cout“ TestClass2“;delete p; ; int main() TestClass2 obj; return 0; ( A) TestClass2TestClass1TestClass1 TestClass
12、1 TestClass2 TestClass1 ( B) TestClass1TestClass2TestClass1 TestClass2 TestClass1 TestClass1 ( C) TestClass2TestClass1TestClass1 TestClass2 TestClass1 TestClass1 ( D) TestClass1TestClass2TestClas1 TestClass1 TestClass2 TestClass1 24 下列关于构造函数和析构函数的描述,错误的是 ( )。 ( A)析构函数中调用虚函数采用静态联编 ( B)对虚析构函数的调用可以采用动态
13、联编 ( C)当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数 ( D)构造函数可以声明为虚函数 25 若有如下程序: #include iostream using namespace std; class TestClass public: void who() cout “TestClass“ endl; ; class TestClass1:public TestClass public: void who()cout “TestClass1“ endl; ; int main() TestClass *p; TcstClass1 obj1; p= p- who(); re
14、turn 0; 则该程序运行后的输出结果是 ( )。 ( A) TestClass1 ( B) TestClass ( C) 0 ( D)无输出 26 下列有关继承和派生的叙述中,正确的是 ( )。 ( A)如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员 ( B)派生类的成员函数可以访问基类的所有成员 ( C)基类对象可以赋值给派生类对象 ( D)如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类 27 若 有如下程序: #include iostream using namespace std; class TestClass1 private: int a;
15、public: TestClass1(int i) a=i; void disp() cout a “,“; ; class TestClass2 private: int b; public: TestClass2(int j) b=j; void disp() cout b “,“; ; class TestClass3:public TestClass2,public TestClass1 private: int c; public: TestClass3(int k):TestClass1(k-2),TestClass2(k+2) c=k; void disp() TestClass
16、1:disp(); TestClass2:disp(); cout c endl; ; int main() TestClass3 obi(10); obj.disp(); return 0; 程序执行后的输出结果是 ( )。 ( A) 10, 10, 10 ( B) 10, 12, 14 ( C) 8, 10, 12 ( D) 8, 12, 10 28 在下列 程序的横线处填上适当的内容,使程序执行后的输出结果为 ABCD。 #include iostream using namespace std; class A public:A()coutA; ; class B: _ public:
17、B()cout B; ; class C:virtual public A public:C()cout C; ; class D:public B,public C public:D()cout D; ; void main()D obj; ( A) public A ( B) private A ( C) protected A ( D) virtual public A 29 用来派生新类的类称为 ( )。 ( A)新生类 ( B)派生类 ( C)基类 ( D)子类 30 有如下程序; #include iostream using namespace std; class DA int
18、 k; public: DA(int x=1):k (x) DA( )cout k; ; int main( ) DA d=DA(3),DA(3),DA(3); DA *p=new DA2; delete p; return (); 这个程序的输出结果是 ( )。 ( A) 111 ( B) 333 ( C) 11333 ( D) 11133 31 如果派生类以 protected方式继承基类,则原基类的 protected成员和 public成员在派生类中的访问属性分别是 ( )。 ( A) public和 public ( B) public和 protected ( C) protect
19、ed和 public ( D) protected和 protected 32 必须用一对大括号括起来的程序段是 ( )。 ( A) switch语句中的 case标号语句 ( B) if语句的分支 ( C)循环语句的循环体 ( D)函数的函数体 33 有如下程序: #include iostream using namespace std; class MyClass public: MyClass(int x):val(x) void Print() const cout“const:val=“ val t; void Print() cout “val=“ val t; private:
20、 int val; ; int main() const MyClass obj1(10); MyClass obi2(20); obj1.Print(); obj2.Print(); return 0; 程序的输出结果是( )。 ( A) val=10 const:val=20 ( B) const:val=10 const:val=20 ( C) const:val=10 val=20 ( D) val=10 val=20 34 有如下程序: #include iostream using namespace std; class Part public: Part(int x=0):va
21、l(x) cout val; Part()cout val; private: int val; ; class Whole public: Whole(int x ,int y, int z=0):p2(x),p1(y),val(z)coutval; Whole()cout val; private: Part p1,p2; int val; ; int main() Whole obj(1,2,3); return 0; 程序的输出结果是 ( )。 ( A) 123321 ( B) 213312 ( C) 213 ( D) 123123 35 下列有关类成员的叙述中,正确的是 ( )。 (
22、 A)友元函数是类的成员函数 ( B)类成员的默认访问权限是私有的 ( C)类成员函数必须声明为公有的 ( D)类的静态数据成员不能是常成员 36 在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个 _实际上对应一个处理模块。 37 结构化程序设计的三种基本结构分别是顺序、选择和 _。 38 二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是_。 39 一个模块直接调用 的其他模块个数称为 _。 40 数据库系统中实现各种数据管理功能的核心软件是 _。 41 下面程序的输出结果为【 】。 #include iostream using namespace
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 笔试 模拟 144 答案 解析 DOC
