全国计算机等级考试二级 C++语言程序设计考前冲刺试题及答案Word文件下载.docx
《全国计算机等级考试二级 C++语言程序设计考前冲刺试题及答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级 C++语言程序设计考前冲刺试题及答案Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
![全国计算机等级考试二级 C++语言程序设计考前冲刺试题及答案Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-12/16/079e471f-44d4-4068-96eb-b3f35cf2ff16/079e471f-44d4-4068-96eb-b3f35cf2ff161.gif)
classConstants{
staticdoublegetPI(){return3.1416;
}
Constantsconstants:
下列各组语句中,能输出3.1416的是()。
A.cout<
<
p="
"
>
9程序流程图中带有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系
10下列程序的执行结果为()。
#include
voidmain()
inta=3,b=0;
int*P=&
a;
b=+a++;
cout<
*P<
”,”<
p>
A.3,4B.4,3C.3,4D.4,4
11对长度为n的线性表排序,在最坏情况下,比较次数不是n(rt一1)/2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
12字面常量42、4.2、42L的数据类型分别是( )。
A.long,double、intB.lon9、float、intC.int、double、longD.int、float、long
13下列叙述中正确的是( )。
A.栈是“先进先出”的线性表
B.队列是“先进后出”的线性表
C.循环队列是非线性结构
D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
14不能作为重载函数的调用的依据是( )。
A.参数个数B.参数类型C.函数类型D.函数名称
15下列语句中,错误的是( )。
A.constintbuffer=256;
B.constdouble*point;
C.intconstbuffer=256;
D.double*eonstpoint:
16下列运算符中,在c++语言中不能重载的是()。
A.*B.>
=C.:
:
D./
17有如下说明:
inta[10]={1,2,3,4,5,6,7,8,9,10},*P=a;
则数值为9的表达式是()。
A.*P+9B.木(P+8)C.*P+=9D.P+8
18执行下列语句段后,输出字符“*”的个数是()。
for(inti=50;
i>
1;
i-=2)Cout<
'
*'
A.24B.25C.26D.50
19算法的有穷性是指()。
A.算法程序的运行时间是有限的
B.算法程序所处理的数据量是有限的
C.算法程序的长度是有限的
D.算法只能被有限的用户使用
20下面关于break语句的描述中,不正确的是()。
A.break可以用于循环体内
B.break语句可以在for循环语句中出现多次
C.break语句可以在switch语句中出现多次
D.break语句可用于if条件判断语句内
21有如下类定义:
classPoint
intxx.yy;
Point():
xx(0),yy(0){}
Point(intx,intY=0):
xx(X),YY(Y){}
若执行语句
Pointa
(2),b[3],幸c[4];
则Point类的构造函数被调用的次数是( )。
A.2次B.3次C.4次D.5次
22有如下程序:
usingnamespacestd;
classBasel
BaseI(intD.{cout<
一Basel(){}
classBase2
Base2(intD.{tout<
~Base2(){}
classDerived:
publicBasel,Base2
Derived(inta,intb,intc,intD.:
Basel(B.,Base2(A.,bl(D.,b2(C.{}
intbl:
intb2:
intmain()
Derivedd(1,2,3,4);
return0;
}
执行这个程序的输出结果是( )。
A.1234B.2134C.12D.21
23以下叙述正确的是()。
A.函数可以嵌套定义但不能嵌套调用
B.B.函数既可以嵌套调用也可以嵌套定义
C.函数既不可以嵌套定义也不可以嵌套调用
D.函数可以嵌套调用但不可以嵌套定义
24必须用一对大括号括起来的程序段是()。
A.switCh语句中的Case标号语句
B.if语句的分支
C.循环语句的循环体
D.函数的函数体
25软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是()。
A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统
26下面程序的运行结果为()。
for(inta=0,x=0;
!
x&
&
a<
=10;
a++)
a++:
}A.10B.1lC.12D.0
27有如下程序:
inti=1;
classFun{
staticinti;
intvalue(){returni—l;
intvalue()const{returni+1;
intFun:
i=2;
intmain(){
inti=3;
Funfunl;
constFunfun2:
__________________
若程序的输出结果是:
123
则程序中下画线处遗漏的语句是( )。
cout<
28下列有关模板的叙述中,正确的是()。
A.函数模板不能含有常规形参
B.函数模板的一个实例就是一个函数定义
C.类模板的成员函数不能是模板函数
D.用类模板定义对象时,绝对不能省略模板实参
29运算符重载时不需要保持的性质是()。
A.操作数个数B.操作数类型C.优先级D.结合性
30下列程序的输出结果为()。
#include<
fune(intint>
if(n<
1)returnl;
elsereturnn+time(n一1);
return0;
voidmain(){
}A.0B.10C.15D.16
31有如下程序:
classMyClass{
MyClass(inti=0){cout<
MyClass(constMyClass&
x){cout<
2;
MyClass&
operator=(constMyClass&
3;
retum$this;
~MyClass()}cout<
4;
MyClassobjl
(1),obj2
(2),obj3(objl);
retum0;
执行这个程序的输出结果是()。
A.112444B.11114444C.121444D.11314444
32在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。
A.外模式B.内模式C.概念模式D.逻辑模式
33有如下程序:
#inCludeusingnamespaCestd;
ClassBase{
publiC:
voidoutput(){Cout<
virtualvoidPrint(){Cout<
B’;
}};
ClassDerived:
publiCBase{publiC:
}voidPrint(){Cout<
’D'
;
intmain(){
Base*ptr=newDerived;
ptr一>
output();
ptr一>
Print();
deleteptr;
retum0;
}
A.1BB.lDC.2BD.2D
34以下程序中,错误的行为是()。
①#include
②classA
③{
④public:
⑤intn=2;
⑥A(intval){cout<
⑦-A(){};
⑧};
⑨voidmain()⑩{
⑪Aa(0);
⑫}
A.⑤B.⑥C.⑦D.⑪
35下列数据结构中,属于非线性结构的是()。
A.循环队列B.带链队列C.二叉树D.带链栈
36有如下程序:
ClassA{
statiCinta;
voidinit( ){。
a=1;
A(inta=2){init( );
a++;
intA:
a:
0:
Aobj;
intmain( ){
Cout<
return>
运行时输出的结果是( )。
A.0B.1C.2D.3
37软件详细设计产生的图如下:
该图是()。
A.N—S图B.PAD图C.程序流程图D.E—R图
38秘序调试的任务是()。
A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误
本题共1分,参考答案:
D解析:
程序调试的任务是诊断和改正程序中的错误。
39有如下程序:
classA{
virtualvoidfancl(){cout<
”Al”;
voidfunc2(){cout<
”A2”;
classB:
publicA{
voidfuncI(){tout<
”Bl”;
voidfunc2(){tout<
”B2”;
intmain()}
A*P=newB:
P—>
funcl();
func2();
deletep;
A.B182B.A1A2C.B1A2D.AIB2
40下列字符串中。
不可以用做c++标识符的是( )。
A.y_2006B._EST_HC.ReturnD.switch
2、基本操作题(18分)
41请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,其中有枚举DOGCOLOR、狗类Dog和主函数main的定义。
程序中位于每个“//ERROR****found****”下的语句行有错误,请加以改正。
改正后程序的输出结果应该是:
ThereisawhitedognamedHoh0.ThereisablaCkdognamedHaha.ThereisamotleydognamedHihi.注意:
只修改每个//ERROR****found****女料下的那一行,不要改动程序中的其他内容。
//狗的颜色:
黑、白、黄、褐、花、其他
enumDOGCOLOR{BLACK,WHITE,YELLOW,BROWN,PIEBALD,OTHER};
ClassDog{//狗类
DOGCOLORColor;
Charname[20];
statiCintCount;
publiC:
Dog(CharnalTle[],DOGCOLORColor){strCpy(this一>
name,name);
//ERROR**********found**********、
strCpy(this一>
Color,Color);
}1DOGCOLORgetColor()Const{retumColor;
//ERROR**********found**********
ConstChar*9etName()Const{return*finin9;
}ConstChar*9etColorString()Const{
switCh(Color){
CaseBLACK:
return”blaCk“;
CaseWHITE:
return”white”:
CaseYELLOW:
return’"
yellow”:
CaseBROWN:
return”brown”;
easePIEBALD:
return”piebald”:
return”motley”;
voidshow()Const{.Cout<
”Thereisa”<
}};
intmain(){
Dogdogl(”Hoh0”,WHITE),dog2(”Haha”,BLACK);
d0g3(”Hihi”,0THER);
d091.show();
dos2.show();
dos3.show();
参考答案:
(1)this->
color=color:
(2)consLchargetName()eonst{return*name;
(3)Dogdogl(”Hoho”,WHITE)。
dog2(”Haha”,
BLACK),dog3(”Hihi”,OTHER);
3、简单应用题(24分)
42请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。
此工程中包含一个源程序文件main.cpp,其中有“房间”类Room及其派生出的“办公室”类0ffice的定义,还有主函数main的定义。
请在程序中“//****found****”下的横线处填写适当的代码并删除横线,以实现上述类定义。
此程序的正确输出结果应为:
办公室房间号:
308
办公室长度:
5.6
办公室宽度:
4.8
办公室面积:
26.88
办公室所属部门:
会计科
注意:
只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“///料料found••料”。
usingnamespaeestd;
classRoom{//“房间”类
introom_n0;
//房间号
doublelength;
//房间长度(m)
doublewidth;
//房间宽度(n1)
Room(intthe—room—n0,doublethe~length,doublethe—width):
loom—no(the—room—no),length(the—
length),width(the—width){}
inttheRoomNo()eonst{returniDonl—n0;
//返回房间号
doubletheLength()const{returnlength;
}//返回房间长度
doubletheWidth()const{returnwidth;
}//返回房间宽度
//**********found**********
doubletheArea()const{_______________}//返回房间面积(矩形面积)
classOffice:
publicRoom{//“办公室”类
char*depart;
//所属部门
Office(intthe_room_n0,doublethe_length,doublethe_width,eonstchar木the_depart)
:
_______________{
depart=newchar[strlen(thedepart)+1];
strcpy(_______________);
~Office(){delete[]depart;
constchar*theDepartment()const{returndepart;
}//返回所属部门
Office_______________;
”办公室房间号:
”<
<
”办公室长度:
”办公室宽度:
”办公室面积:
”办公室所属部门:
}
:
(1)returtllength*width;
(2)Room(the_room_no,the_lengih,the_width)
(3)depart,the_depart
(4)an_office(308,5.6,4.8,”会汁科”)
四、综合应用题(18分)
43请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件proj3,此工程中包含一个源程序文件proj3.cpp,补充编制c++程序proj3.cpp,其功能是读取文本文件in.dat中的全部内容,将文本存放到doc类的对象myDoc中。
然后将myDoc中的字符序列反转,并输出到文件out.dat中。
文件in.dat的长度不大于1000字节。
要求:
补充编制的内容写在“//**********”与“//**********”两行之间。
实现将myDoc中的字符序列反转,并将反转后的序列在屏幕上输出。
不得修改程序的其他部分。
程序最后已将结果输出到文件0ut.dat中,输出函数writeToFile已经给出并且调用。
//proj3.cpp
classdoc
char*sir;
//文本字符串首地址
intlength;
//文本字符个数
//构造函数,读取文件内容,用于初始化新对象,filename是文件名字符串首地址
doc(char*filename);
voidreverse();
//将字符序列反转
一doc();
voidwriteToFile(char*filename);
doc:
doc(char}filename)
ifstreammyFile(filename);
intlen=1001,tmp;
atr=newchar[1en];
length=0;
while((trap=myFile.get())!
=EOF)
str[1ength++]=trap;
str[1ength]=‘\0’;
myFile.close();
voiddoc:
reverse(){
//将数组atr中的length个字符中的第一个字符与最后一个字符交换,第二个字符与倒数第二个
//字符交换……
//*************333*************
//*************666*************
~doe()
delete[]str;
writeToFile(char*filename)
OfstreamoutFile(filename);
outFile<
outFile.c