全国计算机二级C等级考试真题及答案Word下载.docx
- 文档编号:22105626
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:65
- 大小:92.60KB
全国计算机二级C等级考试真题及答案Word下载.docx
《全国计算机二级C等级考试真题及答案Word下载.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C等级考试真题及答案Word下载.docx(65页珍藏版)》请在冰豆网上搜索。
Staticintf2();
ClassMA{
Public
Intf3();
Staticintf4();
(静态函数)
};
在所描述的函数中,具有隐含的this指针的是C
Af1Bf2Cf3Df4
(23)派生类的成员函数不能访问基类的C
A共有成员和保护成员B共有成员
C私有成员D保护成员
(24)下列关于运算符重载的描述中,正确的是A
A运算符重载为成员函数时,若参数表中五参数,重载的是一元运算符
B一元运算符只能作为成员函数重载
C二元运算符重载为非成员函数时,参数表中有一个参数
DC++中可以重载所有的运算符
(25)下列关于类模板的模板参数的叙述中,错误的是D
A模板参数可以作为数据成员的类型
B模板参数可以作为成员函数的返回类型
C模板参数可以作为成员函数的参数类型
D模板函数不能作为成员函数的局部变量的类型
(26)已知一程序运行后执行的第一个输出操作是B
Cout<
<
setw(10)<
setfill(*)<
1234
则此操作的输出结构是
A1234B******1234
C**********1234D1234******
(27)有如下程序
#include<
iostrcam>
Usingnamespacestd;
Classmyclass{
Public:
MyClass(){++count;
}
~MyClass(){--count;
Staticintgetcount(){returncount;
Private
Staticintcount;
};
IntMyClass:
:
count=0;
Intmain(){
Myclassobj;
obj,getCount();
MyClass*ptr=newMyClass;
MyClass:
getcount();
Deleteptr;
gercount();
Return();
程序的输出结果是A
A121B232C221D122
程序的输出结果是C
Aval=10const:
val=20Bconst:
val=10const:
val=20
Cconst:
val=10val=20Dval=10val=20
(29)有如下程序
iostream>
Classpart{
Public;
Part(intx=(\):
val(x){cout<
val;
-part(){cout<
Private;
Intval;
Classwhole{
Whole(intx,inty,intz=0):
p2(x),p1(y),val(z){cout<
Whole(){count<
Partp1,p2;
Intmaint{
Wholeobj(1,2,3);
Resturn();
}
程序输出的结果是D
A123321B213312C213
(30)有如下程序:
Classbase{
Base(intx=0){cout<
x;
Classderived:
publicbase{
Derivedrin(x=y){cout<
Priblic:
Baseval;
Intmain(){
Derivedd(!
);
A0B1C01D001
(31)若有如下类定义:
ClasssB{
Voidfun1(){}
Protected;
Doublevarl;
Voidfun2(){}
ClassD:
publicB{
Voidfun3(){}
已知obj是类D的对象,下列语句中不违反成员访问控制的权限的是C
Aobj.fun1();
Bobj.var1;
Cobj.fun2();
Dobj.fun3();
(32)有如下程序:
#include<
Usingnamespacesid;
Voidoutput(){cout<
1;
Virtualvoidprint(){cout<
B;
Classderived:
publicbase{
2;
Voidprint(){cout<
’D’;
Intmain()
Base*passnewderived;
Ptr->
output();
print();
程序的输出结果是D
A1BB1DC2BD2D
33.下列是重载乘法运算的函数原型声明,其中错误的是A
Amyclassoperator*(double,double);
Bmyclassoperator*(double,myclass);
Cmyclassoperator*(myclass,double);
Dmyclassoperator*(myclass,myclass);
*是二元运算符,而且标准库里面已经有double*double的运算符定义,返回值为double,所以A的重载是错误的
34.A
(35)有如下程序:
usingnamespacestd;
classB{
public:
virtualvoidshow(){cout<
"
b"
;
classD:
publicB{
voidshow(){cout<
D"
voidfun1(B*ptr){ptr->
show();
voidfun2(B&
ref){ref.show();
voidfun3(Bb){b.show();
voidmain(){
Bb,*p=newD;
Dd;
fun1(p);
fun2(b);
fun3(d);
ADBDBBBDCDBBDDbb
二、填空题(每空2分,共三十分)
(6).在有定义语句:
inta=3,b=2,c=1;
则表达式a<
b?
a:
b的值是_____
(7).执行下列语句后,变量sum的值是____.
Intsum=0;
For(intj=I;
j<
=I;
j++)
For(intj=I;
Sum++;
(8).已知有函数f的定义如下:
Intf(){
Staticint-6;
s-2;
returns
则在某程序中第二次执行函数用语句f();
时,函数f的返回值是_____.
(9)已知如下程序得输出结果时23,请将划线处缺失得部分补充完整。
Voidprint()cout{cout<
23;
Myclass*p=newmyclass();
______print();
Classsample{
Sample(){}
_________
(14)请将如下程序补充完整,使得输出结果为bbaa
ClassA{
_____{cout<
”aa”;
ClassB:
publicA{
~B(){cout<
”bb”;
Intmain(){
B*p=newB;
Deletep;
(15)请将下列栈类stack补充完整
Classstack{
Intplist[100];
//int数组,用于存放栈的元素
Inttop;
//栈顶元素(数组下标)
Stack():
top(0){}
Voidpush(sonsint&
item);
//新元素item压入栈
Intpop(void);
//将栈顶元素弹出栈
Voidstack:
pbsh(constint&
item){
If(top==99)//如果栈满,程序结束
Exit
(1);
Top++;
//栈顶指针增1
___【15】____;
Intstack:
pop(){
If(top<
0)//如果栈空,程序结束
Returnplish[top--];
参考答案
6.27.68.49.(*p)10.ABBA11.voidBase:
fun()
12.virtualdisplay()==0;
14.-A()15.pList[top]=item
2008年9月计算机等级考试
(11)在下列原型所示的C++函数中,按“传值”方式传递参数的是(A)。
A)voidf1(intx);
B)voidf2(int*x);
C)voidf3(constint*x);
D)voidf4(int&
x);
(12)在C++中,编译系统自动为一个类生成缺省构造函数的条件是(A)。
A)该类没有定义任何有参构造函数B)该类没有定义任何无参构造函数
C)该类没有定义任何构造函数D)该类没有定义任何成员函数
(13)在一个派生类的成员函数中,试图调用其基类的成员函数“voidf();
”,但无法通过编译。
这说明(C)。
A)f()是基类的私有成员C)派生类的继承方式为私有
B)f()是基类的保护成员D)派生类的继承方式为保护
(14)下列关于运算符重载的叙述中,错误的是(B)。
A)有的运算符可以作为非成员函数重载
B)所有的运算符都可以通过重载而被赋予新的含义
C)不得为重载的运算符函数的参数设置默认值
D)有的运算符只能作为成员函数重载
(15)下列关于模板的叙述中,错误的是(D)。
A)调用模版函数时,在一定条件下可以省略模板实参
B)可以用int、double这样的类型修饰符来声明模版参数
C)模板声明中的关键字class都可以用关键字typename替代
D)模板的形参表中可以有多个参数
(16)要利用C++流进行文件操作,必须在程序中包含的头文件是(B)。
A)iostreamB)fstreamC)strstreamD)iomanip
(17)下列字符串中不能作为C++标识符使用的是(B)。
A)WHILEB)userC)_lvarD)9stars
(18)下列语句中错误的是(D)。
A)constinta;
B)constinta=10;
C)constint*point=0;
D)constint*point=newint(10);
(19)有如下程序:
#include<
usingnamespacestd;
intmain(){
intsum;
for(inti=0;
i<
6;
i+=3){
sum=i;
for(intj=i;
j<
j++)sum+=j;
}
cout<
sum<
end1;
return0;
运行时的输出结果是(A)。
A)3
B)10C)12D)15
(20)下列语句中,正确的是(D)。
A)char*myString="
Hello-World!
B)charmyString="
C)charmyString[11]="
D)charmyString[12]="
(21)若已经声明了函数原型“voidfun(inta,doubleb=0.0);
”,则下列重载函数声明中正确的是(C)。
A)voidfun(inta=90,doubleb=0.0);
B)intfun(inta,doubleB);
C)voidfun(doublea,intB);
D)boolfun(inta,doubleb=0.0);
(22)有如下程序:
classSample{
public:
Sample(){}
~Sample(){cout<
'
*'
Sampletemp[2],*pTemp[2];
执行这个程序输出星号(*)的个数为(B)。
A)1B)2C)3D)4
(23)下列选项中,与实现运行时多态性无关的是(A)。
A)重载函数
B)虚函数C)指针
D)引用
(24)下列运算符函数中,肯定不属于类Value的成员函数的是(B)。
A)Valueoperator+(Value);
B)Valueoperator-(Value,Value);
C)Valueoperator*(int);
D)Valueoperator/(Value);
(25)下列模板声明中,有语法错误的是(D)。
A)template<
typenameT>
Tfun(Tx){returnx;
B)template<
Tfun(Tx,intn){returnx*n;
C)template<
classT>
Tfun(T*p){return*p;
D)template<
TclassA{Tn;
(26)在语句“cout<
A'
”中,cout是(B)。
A)类名B)对象名C)函数名D)C++的关键字
(27)有如下程序:
usingnamespacestd;
classMyClass{
MyClass(inti=0){cout<
MyClass(constMyClass&
x){cout<
MyClass&
operator=(constMyClass&
x)
{cout<
3;
return*this;
~MyClass(){cout<
4;
MyClassobj1
(1),obj2
(2),obj3(obj1);
return0:
A)112444B)11114444C)121444D)11314444
(28)有如下程序:
MyClass(intx):
val(x){}
voidSet(intx){val=x;
voidPrint()const{cout<
val="
val<
\t'
private:
intval;
constMyClassobj1(10);
MyClassobj2(20);
obj1.Print();
//语句1
obj2.Print();
//语句2
obj1.Set(20);
//语句3
obj2.Set(30);
//语句4
其主函数中错误的语句是(C)。
A)语句1B)语句2C)语句3D)语句4
(29)在类声明中,紧跟在“public:
”后声明的成员的访问权限是(A)。
A)私有B)公有C)保护D)默认
(30)对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是(D)。
A)公有或私有B)私有C)保护或私有D)公有或保护
(31)定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为(A)。
A)私有继承B)非私有继承C)保护继承D)公有继承
(32)建立一个有成员对象的派生类对象时,各构造函数体的执行次序为(C)。
A)派生类、成员对象类、基类B)成员对象类、基类、派生类
C)基类、成员对象类、派生类D)基类、派生类、成员对象类
(33)如果表达式a>
=b中的“>
=”是作为非成员函数重载的运算符,则可以等效地表示为(A)。
A)a.operator>
=(b)B)b.operatotr>
=(a)C)operator>
=(a,b))operator>
=(b,a)
(34)当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为(B)。
A)iosbase:
inB)ios_base:
binaryC)ios_base:
in|ios_base:
outD)ios_base:
out
(35)在一个抽象类中,一定包含有(C)。
A)虚函数
B)纯虚函数C)模板函数
D)重载函数
二、填空题(每空2分,共30分)
(6)当使用关键字__void__作为函数返回类型时,该函数不返回任何值。
(7)已知数组a中有n个元素,下列语句将数组a中从下标x1开始的k个元素移动到从下标x2开始的k个元素中,其中0<
=x1<
x2<
n,x2+k<
n,请将下列语句补充完整。
for(inti=x1+k-1;
i>
=x1;
i--)
a[_x2+k-1_]=a[i];
(8)有如下程序:
intfun1(intx)
{return++x;
intfun2(int&
x){return++x;
intx=1,y=2;
y=fun1(fun2(x));
x<
'
y;
程序的输出结果是_2,3_。
(9)有如下程序:
classpumpkin{
pumpkin(){++count;
~pumpkin(){--count;
staticvoidtotal_count(){
count<
pumpkin(s)"
endl;
staticintcount;
intpumpkin:
pumpkinpl[10];
pumpkin:
total_count();
这个程序的输出结果是__10pumpkin(s)__。
(10)有如下递归函数:
intFun(intn){
if(n<
=1)
return1;
__elsereturnn*Fun(n-1);
__
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机 二级 等级 考试 答案