logo资料库

2005年9月全国计算机二级C++考试真题及答案.doc

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
2005年9月全国计算机二级C++考试真题及答案
2005 年 9 月全国计算机二级 C++考试真题及答案 (考试时间 90 分钟,满分 100 分) 一、选择题(每小题 2 分,共 70 分) 一、选择题 下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相 应位置上,答在试卷上不得分。 (1)下列叙述中正确的是 A)程序设计就是编制程序 B)程序的测试必须由程序员自己去完成 C)程序经调试改错后还应进行再测试 D)程序经调试改错后不必进行再测试 (2)下列数据结构中,能用二分法进行查找的是 A)顺序存储的有序线性表 B)线性链表 C)二叉链表 D)有序线性链表 (3)下列关于栈的描述正确的是 A)在栈中只能插入元素而不能删除元素 B)在栈中只能删除元素而不能插入元素 C)栈是特殊的线性表,只能在一端插入或删除元素 D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素 (4)下列叙述中正确的是 A)一个逻辑数据结构只能有一种存储结构 B)数据的逻辑结构属于线性结构,存储结构属于非线性结构 C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率 D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率 (5)下列描述中正确的是 A)软件工程只是解决软件项目的管理问题 B)软件工程主要解决软件产品的生产率问题 C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 D)软件工程只是解决软件开发中的技术问题 (6)在软件设计中,不属于过程设计工具的是 A)PDL(过程设计语言) B)PAD 图 C)N-S 图 D)DFD 图 (7)下列叙述中正确的是 1
A)软件交付使用后还需要进行维护 B)软件一旦交付使用就不需要再进行维护 C)软件交付使用后其生命周期就结束 D)软件维护是指修复程序中被破坏的指令 (8)数据库设计的根本目标是要解决 A)数据共享问题 B)数据安全问题 C)大量数据存储问题 D)简化数据维护 (9)设有如下关系表: 则下列操作中正确的是 A)T=R∩S B)T=R∪S C)T=R×S D)T=R/S (10)数据库系统的核心是 A)数据模型 B)数据库管理系统 C)数据库 D)数据库管理员 (11)下列关于 C++函数的叙述中,正确的是 A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明 D)函数不能自己调用自己 (12)下列关于类和对象的叙述中,错误的是 A)一个类只能有一个对象 B)对象是类的具体实例 C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系 (13)在 C++中,用于实现运行时多态性的是 A)内联函数 B)重载函数 C)模板函数 D)虚函数 (14)下列关于运算符重载的叙述中,正确的是 2
A)通过运算符重载,可以定义新的运算符 B)有的运算符只能作为成员函数重载 C)若重载运算符+,则相应的运算符函数名是+ D)重载一个二元运算符时,必须声明两个形参 (15)下列关于模板的叙述中,错误的是 A)模板声明中的第一个符号总是关键字 template B)在模板声明中用 < 和 > 括起来的部分是模板的形参表 C)类模板不能有数据成员 D)在一定条件下函数模板的实参可以省略 (16)对于语句 cout<<< 25) i+=3; cout<
B)int vect[ ]={30,50,-88,0,0}; C)int vect[5]={30,50,-88}; D)int vect[5]={30,50,-88,0,0}; (21)有如下程序: #include void fun(int& x, int y) { int t = x; x = y; y = t; } int main( ) { } int a[2] = {23, 42}; fun(a[1], a[0]); std::cout << a[0] << ", " << a[1] << std::endl; return 0; 执行后的输出结果是 A)42, 42 B)23, 23 C)23, 42 D)42, 23 (22)有如下类声明: class Foo { int bar; }; 则 Foo 类的成员 bar 是 A)公有数据成员 B)公有成员函数 C)私有数据成员 D)私有成员函数 (23)有如下类声明: class MyBASE{ int k; public: void set(int n){ k=n;} int get( )const{ return k; } }; class MyDERIVED: protected MyBASE{ protected: int j; public: void set(int m, int n){ MyBASE::set(m); j=n;} 4
int get( )const{ return MyBASE::get( )+j; } }; 则类 MyDERIVED 中保护的数据成员和成员函数的个数是 A)4 B)3 C)2 D)1 (24)已知在一个类体中包含如下函数原型: VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中, 错误的是 A)这是运算符-的重载运算符函数 B)这个函数所重载的运算符是一个一元运算符 C)这是一个成员函数 D)这个函数不改变类的任何数据成员的值 (25)有如下函数模板定义: template T func(T x, T y) { return x*x+y*y; } 在下列对 func 的调用中,错误的是 A)func(3, 5); B)func(3.0, 5.5); C)func (3, 5.5); D)func(3, 5.5); (26)有如下程序: #include using namespace std; int main( ) { } cout.fill('*'); cout.width(6); cout.fill('#'); cout << 123 << endl; return 0; 执行后的输出结果是 A)###123 B)123### C)***123 D)123*** 5
(27)在下列函数原型中,可以作为类 AA 构造函数的是 A)void AA(int); B)int AA( ); C)AA(int)const; D)AA(int); (28)下列关于 this 指针的叙述中,正确的是 A)任何与类相关的函数都有 this 指针 B)类的成员函数都有 this 指针 C)类的友元函数都有 this 指针 D)类的非静态成员函数才有 this 指针 (29)有如下程序: #include using namespace std; class Test { public: Test( ) { n+=2; } ~Test( ) { n-=3; } static int getNum( ) { return n; } private: static int n; }; int Test::n = 1; int main( ) { } Test* p = new Test; delete p; cout << "n=" << Test::getNum( ) << endl; return 0; 执行后的输出结果是 A)n=0 B)n=1 C)n=2 D)n=3 (30)有如下程序: #include using namespace std; 6
class A { public: A( ) { cout << "A"; } }; class B { public: B( ) { cout << "B"; } }; class C : public A { B b; public: C( ) { cout << "C"; } }; int main( ) { C obj; return 0; } 执行后的输出结果是 A)CBA B)BAC C)ACB D)ABC (31)有如下类声明: class XA{ int x; public: XA(int n){ x=n;} }; class XB: public XA{ int y; public: XB(int a,int b); }; 在构造函数 XB 的下列定义中,正确的是 A)XB::XB(int a,int b): x(a), y(b){ } B)XB::XB(int a,int b): XA(a), y(b){ } C)XB::XB(int a,int b): x(a), XB(b){ } D)XB::XB(int a,int b): XA(a), XB(b){ } (32)有如下程序: #include using namespace std; class BASE{ public: 7
~BASE( ){ cout<<"BASE";} }; class DERIVED: public BASE { public: ~DERIVED( ){ cout<<"DERIVED";} }; int main( ){DERIVED x; return 0 ;} 执行后的输出结果是 A)BASE B)DERIVED C)BASEDERIVED D)DERIVEDBASE (33)在表达式 x+y*z 中, + 是作为成员函数重载的运算符,* 是作为非成员函数重载的运算符。下列叙述中 正确的是 A)operator+有两个参数,operator*有两个参数 B)operator+有两个参数,operator*有一个参数 C)operator+有一个参数,operator*有两个参数 D)operator+有一个参数,operator*有一个参数 (34)下面关于 C++流的叙述中,正确的是 A)cin 是一个输入流对象 B)可以用 ifstream 定义一个输出流对象 C)执行语句序列 char *y="PQMN"; cout<
分享到:
收藏