全国计算机等级考试二级笔试试卷公共基础知识及C++语言程序设计.docx
《全国计算机等级考试二级笔试试卷公共基础知识及C++语言程序设计.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级笔试试卷公共基础知识及C++语言程序设计.docx(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、全国计算机等级考试二级笔试试卷公共基础知识及C+语言程序设计(04年9月)(考试时间90分钟,满分100)分)一、选择题(1)(35)每小题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在 答题卡相应位置上,答在试卷上不得分。(5)下面概念中,不属于面向对象方法的是A)对象B)继承C)类D)J过程调用(11)关于面向对象的程序设计方法,下列说法正确的是A)“封装性,指的是将不同类型的相关数据组合在一起,作为一个整体进行处理B) “多态性”指的是对象的状态会根据运行时要求自动变化C)基类的私有成员在派生类的对象中不可访问,也不占内存空间D) J在
2、面向对象的程序设计中,结构化程序设计方法仍有着重要作用(21)有以下类定义class MyClass(public:MyClass() cout 1;;则执行语句MyClass a, b2, *p;后,程序的输出结果是A)ll B)V111 C)llll D)lllll(22)关于友元,下列说法错误的是A)。如果类A是类B的友元,那么类B也是类A的友元B)如果函数fun()被说明为类A的友元,那么在fun。中可以访问类A的私有成员C)友元关系不能被继承D)如果类A是类B的友元,那么类A的所有成员函数都是类B的友元(23)关于动态存储分配,下列说法正确的是A)new和delete是C+语言中专门
3、用于动态内存分配和释放的函数B)J动态分配的内存空间也可以被初始化C)当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存 空间D)当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new(24)有以下程序#i nc 1 udeusing namespace std;class MyClasspublic:MyClass(int n)number = n; 拷贝构造函数 MyClass(MyClass &other) number=other.number; -MyClass() private:int number;;MyClass fun(MyClass
4、p)(MyClass temp(p);return temp; int main()(MyClass objl(10), obj2(0);MyClass obj3(objl);obj2=fun(obj3);return 0;)程序执行时,MyClass类的拷贝构造函数被调用的次数是A)5 B) V4 C)3D)2(25)在公有派生的情况下,派生类中定义的成员函数只能访问原基类的A)公有成员和私有成员B)私有成员和保护成员C)J公有成员和保护成员D)私有成员、保护成员和公有成员(26)在C+中用来实现运行时多态性的是A)重载函数B)析构函数C)构造函数D)J虚函数(27)一个类可以同时继承多个类
5、,称为多继承。下列关于多继承和虚基类的表述中,错误的 是A)每个派生类的构造函数都要为虚基类构造函数提供实参B)多继承时有可能出现对基类成员访问的二义性问题C) J使用虚基类可以解决二义性问题并实现运行时的多态性D)建立最派生类对象时,虚基类的构造函数会首先被调用(28)在个类体的下列声明中,正确的纯虚函数声明是A) V virtual void vf()=O; B) void vf(int)=O;C) virtual int vf(int);D) virtual void vf(int) (29)在下面的运算符重载函数的原型中,错误的是A) V Volume operator - (doub
6、le, double);B) double Volume:operator- (double);C) Volume Volume: :operator - (Volume);D) Volume operator - (Volume, Volume);(30)下列是模板声明的开始部分,其中正确的是A) templateB) templateC) J templateD) template(32)C+流中重载的运算符是一个()A)用于输出操作的非成员函数B)J用于输入操作的非成员函数C)用于输出操作的成员函数D)用于输入操作的成员函数(33)有以下类定义class Point public:Poi
7、nt(int x = 0, int y = 0) _.x = x; _.y = y; void Move(int xOff, int yOff) _x += xOff; _.y += yOff; void Print() const cout *(* _x V _y y endl; private:int _x, _y;);下列语句中会发生编译错误的是A) Point pt; pt.Print();B) const Point pt; pt.Print();C) Point pt; pt.Move(l, 2);D) V const Point pt; pt.Move(l, 2);(34)有以下
8、类定义class MyClass ( private:int id;char gender,char *phone;public:MyClass():id(0),gender(,#),phone(NULL) MyClass(int no, char ge=# char *ph= NUL1.) id=no;gende=ge;phone=ph; ;下列类对象定义语句中错误的是A) MyClass myObj;B) V MyClass myObj(ll, H13301111155);C) MyClass myObj(12, m);D) MyClass myObj(12);(35)有以下程序#incl
9、ude using namespace std;class Complex (public:Complex(double r =0, double i =0):re(r), im(i) double real() const return re; double imag() const return im;Complex operator +(Complex c) const return Complex(re+c.re, im+c.im); ) private:double re, im;);int main() (Complex a = Complex(l, 1) + Complex(5)
10、;cout a.realQ + a.imagO *i endl;return 0;程序执行后的输出结果是A) 6+6i B) V6+li C) l+6i D) 1+li二、填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡川-口5序号的横线上,答在试卷上不得分。注意: 以命令关键字填空的必须拼写完整。(7)从实现的角度划分,C+所支持的两种多态性分别是171编译时的多态性和运行时的 多态性。(8)将一个函数声明为一个类的友元函数必须使用关键字81 friend。(9)请按下面注释的提示,将类B的构造函数定义补充完整。 class Aint a;public:A(int aa=O) a
11、=aa; :class B: public A int b;Ac;public:用aa初始化基类A,用aa+1初始化类对象成员cB(int aa): 9 1 A(aa).c(aa+1) 或 c(aa+l), A(aa)_ b=aa+2; );(ID下列程序的输出结果是11 042。#include using namespace std;class Test public:Test() cnt+; Test。ent-; )static int Count() return ent; private:static int ent;);int Test:cnt = 0;int main() (co
12、ut Test:CountO * *;Test tl, t2;Test* pT3 = new Test;Test* pT4 = new Test;cout Test:CountO * *;delete pT4;delete pT3;cout Test:Count() endl;return 0;(12)下面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。(注:阶乘的定义是 n!=n*(n-l)*.*2*l)unsigned fact(unsigned n) if (n= 1) return 1;return I 12 1 n*fact(n-1)一, )(13)下列程序的输出结果是“31
13、 3314。#include using namespace std; templateT fun(Ta,Tb) return (aname等价的表达式是114 (*p).name (15)下列程序的输出结果是1151 25。#include using namespace std;class base public:int n;base(int x) n = x;virtual void set(int m) n = m; cout n * );class deriveA:public base public:deriveA(int x):base(x) void set(mt m) n +
14、= m; cout n *; );class deriveB:public base public:deriveB(int x):base(x) void set(int m) n +=m; cout n vv ;int main() derive A dl(l);deriveB d2(3);base *pbase;phase = &dl;pbase-aet( 1);phase = &d2; pbase-set(2); return 0;2007年4月计算机等级考试C+考试及答案一、选择题(每小题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项涂写在
15、答 题卡相应位置上,答在试卷上不得分。(4)下面选项中不属于面向对象程序设计特征的是.A)继承性B)多态性C) J类比性D)封装性(11)为了取代C中带参数的宏,在C+中使用A)重载函数B) J内联函数C)递归函数D)友元函数(12)下列关于类定义的说法中,正确的是A),类定义中包括数据成员和函数成员的声明B)类成员的缺省访问权限是保护的C)数据成员必须被声明为私有的D)成员函数只能在类体外进行定义(13)下列关于派生类构造函数和析构函数的说法中,错误的是A)派生类的构造函数会隐含调用基类的构造函数B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数C)在建立派生类对象时,先调用基类的构
16、造函数,再调用派生类的构造函数D) J在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数(14)通过运算符重载,可以改变运算符原有的A) J操作数类型B)操作数个数C)优先级D)结合性(15)有如下函数模板:template T souare (Tx)(retumx * x ;)基中T是A)函数形参B)函数实参C) J模板形参D)模板实参(16)使用输入输出操作符setw,可以控制A)输出精度B)。输出宽度C)对齐方式D)填充字符(20)有如下程序段inti =0, j=l;int&r=i; / r=j; int*p=&i; *p=&r; II基中会产生编译错误的语句是A) JB
17、)C)D)(22)有如下程序:#include using namespace std; class A public static int a;void init ( ) a= 1;A (int a=2) init () ;a+;) ; int A:;a=0 Aobj;Ini main () ( coutobj.a; retumO;) 运行时输出的结果是 A) OB) 1 C) J2D) 3(23)下列有关继承和派生的叙述中,正确的是A)派生类不能访问基类的保护成员B)作为虚基类的类不能被实例化C) J派生类应当向基类的构造函数传递参数D)虚函数必须在派生类中重新实现(24)下列运算符中,不
18、能被重载的是A) & B)! =C) V.D) +(25)下列函数模板的定义中,合法的是A) V templateTabs (T x) return x0-x: x; B) template class Tabs (Tx) retumx0 -x;x; C) templateTabs (T x) return x0 -x;x; D) template T abs (T x) returm x0 -x;x;(26)在语句 cindata;中,cin 是A) C+的关键字B)类名C) J对象名D)函数名(27)有如下程序:#includeusing namespace std;class test
19、private:int a;public:test()(cout,constructor,endl;)test(int a)( coutaendl;)test(const test&_test) (a=_test.a;coutncopy constructorendl;)-test()cout,destructor,endl;);int main()(test A(3);return 0;)运行时输出的结果是A) 3B) constructordestruclorC) copy constructorD) V3dstructor destruclor(28)若有如下类声明class My Cl
20、ass public:MyClass () coutl;;执行下列语句MyClass a,b2,*P2;以后,程序的输出结果是A) 11 B) V 111 C) 1111 D1111I(29)有如下程序:#includeusing namespace std;class point public:static int number;public:point()(number+;point。(number;);int point:number=0;int main()point *ptr;point A,B;point *ptr_point=new point3;ptr=ptr_point;po
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级 笔试 试卷 公共 基础知识 C+ 语言程序设计
限制150内