计算机等级考试二级C++笔试试题及答案1Word文件下载.docx
- 文档编号:19439985
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:24
- 大小:43.33KB
计算机等级考试二级C++笔试试题及答案1Word文件下载.docx
《计算机等级考试二级C++笔试试题及答案1Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级C++笔试试题及答案1Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
D)物理设计阶段
(10)有两个关系R和T如下:
则由关系R得到关系T的操作是
A)选择
B)投影
C)交
D)并
(11)下列关于函数的描述中,错误的是
A)函数可以没有返回值
B)函数可以没有参数
C)函数可以是一个类的成员
D)函数不能被定义为模板
(12)若MyClass是一个类名,且有如下语句序列
MyClassc1,*c2;
MyClass*c3=newMyClass;
MyClass&
c4=c1;
上面的语句序列所定义的类对象的个数是
A)1
B)2
C)3
D)4
(13)下列关于继承方式的描述中,错误的是
A)如果不显式地指定继承方式,缺省的继承方式是私有(private)
B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员
C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员
D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员
(14)将前缀运算符“--”重载为非成员函数,下列原型中,能正确用于类中说明的是
A)Decr&
operator--(int);
B)Decroperator--(Decr&
int);
C)friendDecr&
operator--(Decr&
);
D)frlendDecroperator--(Decr&
(15)若MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列
MyTempp2;
MyTempp3[2];
编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是
D)0
(16)在C++中,cin是个
A)类
B)对象
C)模板
D)函数
(17)在下列字符中,不允许作为C++标识符的是
A)b
B)B
C)_
D)2
(18)下列叙述中,错误的是
A)false是一个逻辑型常量
B)"
b"
是一个字符型常量
C)365是一个int常量
D)3.1415926是一个double常量
(19)若x和y是程序中的两个整型变量,则下列if语句中正确的是
A)if(x==0)y=1;
elsey=2;
B)if(x==0)theny=1elsey=2;
C)if(x==0)y=1elsey=2;
D)ifx==0y=1;
(20)要定义整型数组x,使之包括初值为O的三个元素,下列语句中错误的是
A)intx[3]={0,0,0};
B)intx[]={0};
C)staticintx[3]={0};
D)intx[]={0,0,0};
(21)关于函数中的<
返回类型>
,下列表述中错误的是
A)<
中有可能包含关键字int
B)<
中有可能包含自定义标识符
C)<
中有可能包含字符*
D)<
中可能包含[]
(22)要定义一个引用变量p,使之引用类MyClass的一个对象,正确的定义语句是
A)MyClassp=MyClass;
B)MyClassp=newMyClass;
C)MyClass&
p=newMyClass;
D)MyClassa,&
p=a;
(23)有如下两个类定义
classXX{
private:
doublex1;
protected:
doublex2;
public:
doublex3;
};
classYY:
protectedXX{
doubley1;
doubley2;
doubley3;
在类YY中保护成员变量的个数是
(24)下列关于运算符重载的描述中,错误的是
A)可以通过运算符重载在C++中创建新的运算符
B)赋值运算符只能重载为成员函数
C)运算符函数重载为类的成员函数时,第一操作数是该类对象
D)重载类型转换运算符时不需要声明返回类型
(25)下列关于类模板的描述中,错误的是
A)类模板的成员函数都是模板函数
B)可以为类模板参数设置默认值
C)类模板描述了一组类
D)类模板中只允许有一个类型参数
(26)下列控制格式输入输出的操作符中,能够设置浮点数精度的是
A)setprecision
B)setw
C)setfill
D)showpoint(27)下列程序段中包含4个函数,其中具有隐含this指针的是
intfun1();
classTest{
intfun2();
friendintfun3();
staticintfun4();
A)fun1
B)fun2
C)fun3
D)fun4
(28)有如下程序
#include
usingnamespacestd;
Test(){}
Test(constTest&
t){cout<
<
1;
}
Testfun(Test&
u){Testt=u;
returnt;
intmain(){Testx,y;
x=fun(y);
return0;
运行这个程序的输出结果是
A)无输出
B)1
C)11
D)111
(29)有如下程序
classA{
A(inti=0):
r1(i){}
voidprint(){cout<
'
E’<
R1<
-'
;
}<
p>
voidprint()const{cout<
C'
R1*R1<
voidprint(intx){cout<
P'
R1*R1*R1<
intr1;
intmain(){
Aa1;
constAa2(4);
a1.print
(2);
a1.print();
return0;
}
运行时的输出结果是
A)P8-E4
B)P8-C16-
C)P0-E4-
D)P0-C16-
(30)下列代码声明了3个类
classPerson{};
classStudent:
publicPerson{};
classUndergraduate:
Student{};
下列关于这些类之间关系的描述中,错误的是
A)类Person是类Undergraduate的基类
B)类Undergraduate从类Student公有继承
C)类Student是类Person的派生类
D)类Undergraduate是类Person的派生类
(31)有如下程序
ClassBase{
Base(intx=0):
valB(x){cout<
VALB;
~Base(){cout<
intvalB;
classDerived:
publicBase{
Derived(intx=0,inty=0):
Base(x),valD(y){cout<
VALD;
~Derived(){cout<
intvalD;
intmain(){
Derivedobj12(2,3);
retuen0;
A)2332
B)2323
C)3232
D)3223
(32)下面是类Shape的定义:
classShape{
virtualvoidDraw()=0;
下列关于Shape类的描述中,正确的是
A)类Shape是虚基类
B)类Shape是抽象类
C)类Shape中的Draw函数声明有误
D)语句“Shapes;
”能够建立Shape的一个对象s
(33)将运算符“+”重载为非成员函数,下列原型声明中,错误的是
A)MyClockoperator+(MyClock,long);
B)MyClockoperator+(MyClock,MyClock);
C)MyClockoperator+(long,long);
D)MyClockoperator+(long,MyClock);
(34)打开文件时可单独或组合使用下列文件打开模式
①ios_base:
:
app②ios_base:
binary
③ios_base:
in④ios_base:
out
若要以二进制读方式打开一个文件,需使用的文件打开模式为
A)①③
B)①④
C)②③
D)②④
(35)有如下程序:
ClassB{
B(intxx):
x(xx){++cout;
x+=10;
virtualvoidshow()const
{cout<
COUNT<
_'
X<
ENDL;
staticintcount;
intx;
classD:
publicB{
D(intxx,intyy):
B(xx),y(yy){++count;
y+=100;
Y<
inty;
intB:
count=0;
B*ptr=newD(10,20);
ptr->
show();
deleteptr;
A)1_120
B)2_120
C)1_20
D)2_20
二、填空题(每空2分,共30分)
请将每一个空的正确答案写在答题卡【l】~【15】序号的横线上,答在试卷上不得分。
(1)一个队列的初始状态为空。
现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为【1】。
(2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有【2】个元素。
(3)设二叉树如下:
对该二叉树进行后序遍历的结果为【3】。
(4)软件是【4】、数据和文档的集合。
(5)有一个学生选课的关系,其中学生的关系模式为:
学生(学号,姓名,班级,年龄),课程的关系模式为:
课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:
选课(学号,【5】,成绩)。
(6)若x和y是两个整形变量,在执行了语句序列
x=5;
y=6;
y+=x--;
后,x+y的值为【6】。
(7)在执行语句序列
inti=0;
doi++;
while(i*i<
10);
时,do后面的循环体语句i++被执行的次数为【7】。
(8)有如下的函数定义:
intXfun(int*a,intn){
intx=*a;
for(int*pa=a+1;
pa<
>
if(*pa>
x)x=*pa;
returnx;
若执行了语句
intx[5]={23,46,78,55,16};
后,通过表达式Xfun(x,5)调用该函数,则得到的返回值为【8】。
(9)有如下的函数定义:
intXfun(intx){
inty=x;
{intx=10;
y+=x;
returnx+y;
通过表达式Xfun(5)调用该函数,则得到的返回值为【9】。
(10)假定Xcs是一个类,该类中一个成员函数的原型为“Xcs*abc();
”,则在类外定义时对应的函数头为【10】。
(11)请将下面的类Date的定义补充完整,使得由语句
DateFirstDay;
定义的对象FirstDay的值为2010年1月1日。
classDate{
Date(【11】):
year(y),month(m),day(d){}
intyear,month,day;
//依次表示年、月、日
(12)请将下面的程序补充完整,使得程序输出“飘是张娜的书”。
classBook{
Book(char*str){strcpy(title,str);
【12】voidPrintInfo(){cout<
TITLE<
chartitle[50];
classMyBook:
publicBook{
MyBook(char*s1,char*s2="
张娜"
):
【13】{strcpy(owner,s2);
virtualvoidPrintInfo(){cout<
"
是"
OWNER<
的书"
charowner[10];
Book*prt=newMyBook("
飘"
prt->
PrintInfo();
(13)在有理数类Rational中重载插入运算符<
,以便按a/q形式输出。
请将<
运算符函数的定义补充完整。
classRational{
Rational(intaa,intqq):
a(aa),q(qq){}
friend【14】operator<
(ostream&
out,Rational&
x)
{
return(out<
X.A<
p?
x.q);
inta,q;
(14)下面的函数定义是某函数模板能够生成的函数实例
intsquare(intn){returnn*n;
doublesquare(doublen){returnn*n;
由此可知,该函数模板的定义是【15】。
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<
classT>
Tsouare(Tx)(retumx*x;
)
基中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>
—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<
iostream>
usingnamespacestd;
classA{
public
staticinta;
voidinit(){a=1;
A(inta=2){init();
a++;
};
intA:
a=0
Aobj;
Intmain()
{
cout<
obj.a;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机等级考试 二级 C+ 笔试 试题 答案