计算机等级考试二级C++笔试及答案.docx
- 文档编号:29023121
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:17
- 大小:20.74KB
计算机等级考试二级C++笔试及答案.docx
《计算机等级考试二级C++笔试及答案.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级C++笔试及答案.docx(17页珍藏版)》请在冰豆网上搜索。
计算机等级考试二级C++笔试及答案
2007年4月计算机等级考试C++考试及答案
一、选择题(每小题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)DYBEAFCZXB)YDEBFZXCAC)ABDYECFXZD)ABCDEFXYZ
(7)某二叉树中有n个度为2的结点则该二叉树中的叶子结点数为
A)n+1B)n-1C)2nD)n/2
(8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是。
A)井B)交C)投影D)笛卡儿乘积
(9)在E-R图中,用来表示实体之间是联系的图形是。
A)矩形B)椭圆形C)菱形D)平行四边形
(10)下列叙述中错误的是。
A)在数据库系统中,数据的物理结构必须与逻辑结构一致.
B)数据库技术的根本目标是要解决数据的共享问题
C)数据库设计是指在已有数据库管理系统的基础上建立数据库
D)数据库系统需要操作系统的支持
(11)为了取代C中带参数的宏,在C++中使用
A)重载函数B)内联函数C)递归函数D)友元函数
(12)下列关于类定义的说法中,正确的是
A)类定义中包括数据成员和函数成员的声明
B)类成员的缺省访问权限是保护的
C)数据成员必须被声明为私有的
D)成员函数只能在类体外进行定义
(13)下列关于派生类构造函数和析构函数的说法中,错误的是
A)派生类的构造函数会隐含调用基类的构造函数
B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数
C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数
D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数
(14)通过运算符重载,可以改变运算符原有的
A)操作数类型B)操作数个数C)优先级D)结合性
(15)有如下函数模板:
template
基中T是
A)函数形参B)函数实参C)模板形参D)模板实参
(16)使用输入输出操作符setw,可以控制
A)输出精度B)输出宽度C)对齐方式D)填充字符
(17)下列字符串中,不可以用作C++标识符的是
A)y_2006B)____TEST__HC)RetumD)switch
(18)字面常量42、4.2、42L的数据类型分别是
A)long、doubleintB)long、float、int
C)int、double、longD)int、float、long
(19)执行下列语句段后,输出字符“*”的个数是
for(inti=50;I>1;—i)cout<<”*”
A)48B)49C)50D)51
(20)有如下程序段
inti=0,j=1;
int&r=i;//①
r=j;//②
int*p=&i;//③
*p=&r;//④
基中会产生编译错误的语句是
A)④B)③C)②D)①
(21)有如下函数定义:
voidfunc(inta,int&b){a++;b++;}
若执行代码段:
intx=0,y=1
func(x,y);
则变量x和y值分别是
A)0和1B)1和1C)0和2D)1和2
(22)有如下程序:
#include
usingnamespacestd;
classA{
public
staticinta;
voidinit(){a=1;}
A(inta=2){init();a++;}
};
intA:
;a=0
Aobj;
Intmain()
{
cout< retum0; } 运行时输出的结果是 A)0B)1C)2D)3 (23)下列有关继承和派生的叙述中,正确的是 A)派生类不能访问基类的保护成员 B)作为虚基类的类不能被实例化 C)派生类应当向基类的构造函数传递参数 D)虚函数必须在派生类中重新实现 (24)下列运算符中,不能被重载的是 A)&&B)! =C).D)++ (25)下列函数模板的定义中,合法的是 A)template x;} B)templateclass C)templateT D)templateTabs(Tx){returmx<0-x;x;} (26)在语句cin>>data;中,cin是 A)C++的关键字B)类名 C)对象名D)函数名 (27)有如下程序: #include usingnamespacestd; classtest{ private: inta; public: test(){cout<<”constructor”< test(inta){cout< test(consttest&_test) { a=_testa; cout<<”copyconstructor”< } test(){cout<<”destructor”< }; intmain() } testA(3) return0; 运行时输出的结果是 A)3 B)constructor destruclor C)copyconstructor D)3 dstructordestruclor (28)若有如下类声明 classMyClass{ public: MyClass(){cout<<1;} }; 执行下列语句 MyClassa,b[2],*P[2]; 以后,程序的输出结果是 A)11B)111C)1111D11111 (29)有如下程序: #include usingnamespacestd; classpoint{ public: staticintnumber; public: point(){number++; ~point(){number-;} }; imtpoint: : number=0; voidmain(){ point*ptr; printA,B; { point*ptr_point=newpoint{3}; ptr=ptr_point; } pointC; cout< : number< delete[]ptr; } 运行时输出的结果是 A)3B)4C)6D)7 (30)如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员,有如下程序,没有使用多态机制。 #include usingnamespacestd; classBase{ inta,b; public: Bace(intx,inty){a=x;b=y;} Voidshow(){cout< } clsaaDerived: publicBase{ intc,d; public: Derived(intx,inty,intz,intm): Base(x,y){c=z;d=m;} Voidshow(){cout< }; intmain() { BaseB1(50,50),*pb; DerivedDI(10,20,30,40); Pb=&D1; Pb->show(); Return0; } 运行时输出的结果是 A)10,20B)30,40C)20,30D)50,50 (31)有如下程序: #include usingnamespacestd; classA { public; A(inti){x=i;} Voidsispa(){cout< Private: intx; }; classB;publicA { public; B(inti): A(i+10){x=i;} vouddispb(){dispa();cout< Private: Intx; }; intmain() { Bb (2); b.dispb() retum0: } 运行时输出的结果是 A)10,2B)12,10C)12,2D)2,2 (32)虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,,被调用的是指针所指的实际对象的虚函数,而非虚函数不支持多态调用。 有如下程序: #include usingnamespacestd; classBase { public: virtualvoidf(){cout<<”f0+”;} voidg(){cout<<”g0+”;} }; classDerived: publicBase { public: voidf(){cout<<”f+”;} voidg(){cout<<”g+”;} }; intmain() { Derivedd; Base*p=&d; p->f();p->g(); return0: } 运行时输出的结果是 A)f+g+B)f0+g+C)f+g0+D)f0+g0+ (33)下面程序中对一维坐标点类Point进行运算符重载 #include usingnamespacestd; classpoint{ public: point(intvaI){x=val;} point&operator++(){x++;retum*this;} printoperator++(int){pointold=*this,++(*this);retumold;} intGetX()const{retumx;} private: intx; }; intmain() { pointa(10); cout<<(++a).GetX();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机等级考试 二级 C+ 笔试 答案