[计算机类试卷]国家二级(C++)机试模拟试卷139及答案与解析.doc
《[计算机类试卷]国家二级(C++)机试模拟试卷139及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C++)机试模拟试卷139及答案与解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C+)机试模拟试卷 139及答案与解析 一、选择题 1 下列数据结构中,能用二分法进行查找的是 ( )。 ( A)无序线性表 ( B)线性链表 ( C)二叉链表 ( D)顺序存储的有序表 2 下列叙述中,不属于设计准则的是 ( )。 ( A)提高模块独立性 ( B)使模块的作用域在该模块的控制域中 ( C)设计成多入口、多出口模块 ( D)设计功能可预测的模块 3 下列队列的描述中,正确的是 ( )。 ( A)队列属于非线性表 ( B)队列在队尾删除数据 ( C)队 列按 “先进后出 ”进行数据操作 ( D)队列按 “先进先出 ”进行数据操作 4 对下列二叉树进行前序遍历的结果为
2、( )。 ( A) ABCDEFGH ( B) ABDGEHCF ( C) GDBEHACF ( D) GDHEBFCA 5 对于长度为 n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 ( )。 ( A)冒泡排序为 n( n一 1) 2 ( B)简单插入排序为 n ( C)希尔排序为 n ( D)快速排序为 n 2 6 为了使模块尽可能独立,要求 ( )。 ( A)内聚程度要尽量高, 耦合程度要尽量强 ( B)内聚程度要尽量高,耦合程度要尽量弱 ( C)内聚程度要尽量低,耦合程度要尽量弱 ( D)内聚程度要尽量低,耦合程度要尽量强 7 下列选项中不属于软件生命周期开发阶段任务
3、的是 ( )。 ( A)软件测试 ( B)概要设计 ( C)软件维护 ( D)详细设计 8 数据独立性是数据库技术的重要特点之一。所谓数据独立性是指 ( )。 ( A)数据与程序独立存放 ( B)不同的数据被存放在不同的文件中 ( C)不同的数据只能被对应的应用程序所使用 ( D)以上三种说法都不 对 9 在学校中, “班级 ”与 “学生 ”两个实体集之间的联系属于( )关系。 ( A)一对一 ( B)一对多 ( C)多对一 ( D)多对多 10 软件调试的目的是 ( )。 ( A)发现错误 ( B)改善软件的性能 ( C)改正错误 ( D)验证软件的正确性 11 在公有派生时,派生类中定义的
4、成员函数只能访问原基类的 ( )。 ( A)私有成员、保护成员和公有成员 ( B)保护成员和私有成员 ( C)公有成员和保护成员 ( D)公有成员和私有成员 12 有如下定义: int b10= 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, *q=b; 则数值为 8的表达式是 ( )。 ( A) *q+8 ( B) *( q+7) ( C) *q+=8 ( D) q+7 13 下面的符号中可以用作 C+标识符的是 ( )。 ( A) 3test ( B) fcc other ( C) else ( D) radius 14 下列程序执行后,输出的结果是 ( )。 int x=一
5、 5, y=0; while(+x) y+; cout y endl; ( A) 1 ( B) 2 ( C) 4 ( D) 5 15 有如下类声明: class TestClass int n; public: TestClass( int i=0): n(i) void setValue( int n0); ; 下面关于 setValue成员函数的实现中,正确的是 ( )。 ( A) Testclass: setValue( intn0) n=n0; ( B) void Testclass: setValue ( int n0) n=n0; ( C) void setValue( int n
6、0) n=n0; ( D) setValue( intn0) n=n0; 16 下面关于常成员函数的说法中正确的是 ( )。 ( A)常成员函数不能修改任何的数据成员 ( B)常成员函数只能修改一般的数据成员 ( C)常成员函数只能修改常数据成员 ( D)常成员函数只能通过常对象来调用 17 下面的函数调用为: fun( x+y, 3, min( n一 1, y)则 fun的实参个数是( )。 ( A) 3 ( B) 4 ( C) 5 ( D) 6 18 下面关于虚函数的描述中,正确的是 ( )。 ( A)基类中利用 virtual关键字说明一个虚函数后,其派生类中定义相同的原型函数时可不必加
7、 virtual来说明 ( B)虚函数是非成员函数 ( C)虚函数是 static类型的成员函数 ( D)派生类中的虚函数与基类中类型相同的虚函数具有不同的参数个数或类型 19 有如下程序: #include iostream using namespace std; class Base protected: Base() cout Base; Base(char c)cout c; ; class Derived: public Base public: Derived(char c)cout c; ; mt main() Derived d(Derived); return 0: 执行这
8、个程序屏幕上将显示输出 ( )。 ( A) Derived ( B) Derived Base ( C) Base Derived ( D) Derived Derived 20 有如下程序: #include iostream using namespace std; int main() cout fill(*); cout width(6); cout fill(#); cout 888 endl; return 0; 的执行结果是 ( )。 ( A) #888 ( B) 888# ( C) *888 ( D) 888* 21 假定一个类的构造函数为 A( int aa, int bb)
9、 a=aa一一; b=a*bb; ,则执行A x( 4, 5);语句后, x a和 x b的值分别为 ( )。 ( A) 3和 15 ( B) 5和 4 ( C) 4和 20 ( D) 20和 5 22 在类中说明的成员可以使用关键字的是 ( )。 ( A) public ( B) extern ( C) cpu ( D) register 23 下列不能作为类的成员的 是 ( )。 ( A)自身类对象的指针 ( B)自身类对象 ( C)自身类对象的引用 ( D)另一个类的对象 24 使用地址作为实参传给形参,下列说法正确的是 ( )。 ( A)实参是形参的备份 ( B)实参与形参无联系 (
10、C)形参是实参的备份 ( D)参与形参是同二对象 25 下列程序的输出结果是 ( )。 #include iostream h void main0 int n3=10, 20, 30, 40, 50, 60; int(*p)3; p=n; cout p00 “, “ *(p0+1) “, “ (*p)2 end1; ( A) 10, 30, 50 ( B) 10, 20, 30 ( C) 209 40, 60 ( D) 10, 30, 60 26 设程序如下: #include iostream using namespace std; int main() int *p, *q, r=10
11、; q=&r; p=&q; cout *p+1 end1; return 0: 以上程序的输出结果是 ( )。 ( A) p的地址 ( B) r的地址 ( C) 11 ( D)运行错误 27 下面关于函数模板的表述中不正确的是 ( )。 ( A)类模板的成员函数都是模板函数 ( B)类模板本身在编译过程中不会产生任何代码 ( C)类模板只能有虚拟类型的参数 ( D)用类模板定义一个对象时,实参不能省略 28 下面类的声明中的几个语句,正确的是 (设定语句足主函数中的语句 )( )。 class TestClass pnvate: int data; public: TestClass (int
12、 g_data) data=g_data; void show() cout data endl; ; ( A) Testclass *p; ( B) Testclassm; ( C) Testclass data=8; ( D) Testclass show(); 29 类中的一个字符指针成员指向具有 m个字节的存储空间时,它所能存储的字符串的最大长度为 ( )。 ( A) m一 2 ( B) m一 1 ( C) m ( D) m+1 30 有如下程序: #include iostream using namespace std; class TestClass static int i;
13、public: TestClass()i+; ) TestClass ()i一一; static int getVal() return i; ; int TestClass: i=0; void f() TestClass obj2; cout obj2 getVal(); int main() TestClass obj 1; f(); TestClass*obj3=new TestClass, cout obj3一 getVal(); delete obj3; cout TestClass: getVal(); return 0; 程序的输 出结果是 ( )。 ( A) 232 ( B)
14、 221 ( C) 222 ( D) 231 31 下面关于派生类的描述中错误的是 ( )。 ( A)派生类中至少有一个基类 ( B)一个派生类可以作为另一个派生类的基类 ( C)派生类只继承了基类中的公有成员和保护成员 ( D)派生类的缺省继承方式是私有 32 有如下程序: #include iostream using namespace std; class TestClass int n; public: TestClass (int k): n(k) int get()return n; int get()const return n+1; ; int main() TestClas
15、s p(5); const TestClass q(6); cout p get() q get(); return 0: 执行后的输出结果是 ( )。 ( A) 55 ( B) 57 ( C) 75 ( D) 77 33 下列关于抽象类的表述中正确的是 ( )。 ( A)派生类必须要实现作为基类的抽象类中的纯虚函数 ( B)抽象类的成员函数至少有一个没实现 ( C)抽象类不可能用来定义对象 ( D)派生类不能成为抽象类 34 执行下列语句: #include iostream using namespace std; int main() int x=3; if(x=5) cout x+ e
16、ndl; else cout x endl; return 0: 程序的输出是 ( )。 ( A) 3 ( B) 4 ( C) 5 ( D) 6 35 假定 TestClass为一个类,则该类的拷贝构造函数的声明语句为 ( )。 ( A) Testclass ( Testclass x) ( B) Testclass&( Testclass x) ( C) Testclass ( Testclass *x) ( D) Testclass ( Testclass &x) 36 下面关于指 针的说法中错误的是 ( )。 ( A)在指针定义的同时可以对其进行初始化 ( B)指针根据其所指向变量的类型
17、的不同,所占用内存大小也不同 ( C)指针中存放的是内存单元的地址 ( D)相同类型的指针之间可以相互赋值 37 下面不属于 C+的预定义的流对象是 ( )。 ( A) cin ( B) iostream ( C) c1og ( D) cen 38 下列程序执行后,屏幕的输出是 ( )。 #include iostream using namespace std; void swap(int x, int y) int temp=x; x=y; y=temp; cout “x=“ x “, y=“ y endl; int main() int x=3, y=2; swap(x, y); COU
18、t “x=“ x “, y=“ y endl; return 0; ( A) x=3, y=2 x=3, y=2 ( B) x=2, y=3 x=3, y=2 ( C) x=2, y=3 x=2, y=3 ( D) x=3, y=2 x=2, y=3 39 在每个 C+程序中必须有且仅有一个 ( )。 ( A)函数 ( B)主函数 ( C)预处理指令 ( D)语句 40 有如下程序: #include iostream using namespace std; classA public: A()cout “A“; ) ; classBpublic: B()cout “B“; ; class
19、C: public A B b: public: C()cout “C“; ; int main() C obj; return 0; 执行后的输出结果是 ( )。 ( A) ABC ( B) BAC ( C) ACB ( D) CBA 二、基本操作题 41 使用 VC6打开考生文件夹下的源程序文件 modil cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出: 10 Testclassl 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #inc1ude iostream class Testclassl public: T
20、estclassl() ; *error* private: virtual Testclassl() using namespace std; cout “Testclassl“ end1; ; ; class Testclass2: public Testclassl public: explicit Testclass2(int i) ; Testclass2& operator ()(int i) this一 m_i = i; void print() cout m_i endl; private: intm_i; ; void fun(Testclass2 c1) C1 print(
21、); int main() fun(10); retum 0; 三、简单应用题 42 使用 VC6打开考生文件夹下的源程序文件 modi2 cpp。请完成函数 fun(char* s),该函数完成以下功能 : (1)把 s中的大写字母转换成小写字母,把其中的小写字母转换成大写字母。并且在函数中调用写函数 WriteFile()将结果输出到 mod12 txt文件中。 例如: s=“helloTEST”,则结果为: s=“HELLOtest“ (2)完成函数 WriteFile(char*s),把字符串输入文件中。 提示:打开文件使用的第二参数为 ios_base: binary|ios_ ba
22、se: app。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 #include iostream #include fstream #include cmath using namespace std; void WriteFile(char*s) void fun(char*s) void ClearFile() ofstream outl; outl open(“modi2 txt“); outl close(), int main() ClearFile(); char s1024; cout “please input a string: “ endl;
23、cin getline(s, 1024); fun(s), return 0; 四、综合应用题 43 用 VC6打开考生文件夹下的源程序文件 modi3 cpp,其中定义了多个类,但类不能达到输出要求,按照 定义的输出修改函数,使得输出如下: TestClass3 TestClass2 TestClass1 其中定义的类并不完整,按照要求完成下列操作,将类的定义补充完整。 (1)类 TestClass2公共继承于 TestClassl,请在注释 *1*后添加适当的语句。 (2) print函数为虚函数,请在注释 *2*后添加适当的语句。 (3)修改语句,使得 p指定对象 obj3,请在注释 *
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 模拟 139 答案 解析 DOC
