全国计算机等级考试二级C++样题Word文档格式.docx
《全国计算机等级考试二级C++样题Word文档格式.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C++样题Word文档格式.docx(7页珍藏版)》请在冰豆网上搜索。
C)安全性 D)复用性
(2)C++语言的跳转语句中,对于break和continue说法正确的是()
A)break语句只应用与循环体中
B)continue语句只应用与循环体中
C)break是无条件跳转语句,continue不是
D)break和continue的跳转范围不够明确,容易产生问题
(3)for(intx=0,y=o;
!
x&
&
y<
=5;
y++)语句执行循环的次数是()
A)0
B)5
C)6 D)无次数
(4)考虑函数原型voidtest(inta,int
b=7,char="
*"
),下面的函数调用中,属于不合法调用的是()
A)test(5);
B)test(5,8);
C)test(6,"
#"
)
D)test(0,0."
);
(5)下面有关重载函数的说法中正确的是()
A)重载函数必须具有不同的返回值类型;
B)重载函数形参个数必须不同;
C)重载函数必须有不同的形参列表
D)重载函数名可以不同;
(6)下列关于构造函数的描述中,错误的是()
A)构造函数可以设置默认参数;
B)构造函数在定义类对象时自动执行
C)构造函数可以是内联函数;
D)构造函数不可以重载
(7)下面描述中,表达错误的是()
A)公有继承时基类中的public成员在派生类中仍是public的
B)公有继承是基类中的private成员在派生类中仍是private的
C)公有继承时基类中的protected成员在派生类中仍是protected的
D)私有继承时基类中的public成员在派生类中是private的
(8)应在下列程序划线处填入的正确语句是()
#include
classBase
{ public:
voidfun(){cout<
<
"
Base:
:
fun"
};
classDerived:
publicBase
{ voidfun()
{_____________//显示调用基类的函数fun()
cout<
Derived:
}
A)fun();
B)Base.fun();
C)Base:
fun();
D)Base->
(9)有如下程序:
#include
classBASE{
charc;
public:
BASE(charn):
c(n){}
virtual~BASE(){cout<
classDERIVED:
publicBASE{
DERIVED(charn):
BASE(n+1),c(n){}
~DERIVED(){cout<
intmain()
{ DERIVED("
X"
return0;
}
执行上面的程序将输出()
A)XY B)YX
C)X
D)Y
(10)在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;
其中只能用于检测输入流状态的操作函数名称是()
A)fail B)eof
C)bad D)good
(1)下面程序的打印结果是[1]
#incude
intf(int);
intmain()
{ inti;
for(i=0;
i<
5;
i++)
cout<
return0;
intf(inti)
{ staticintk=1;
for(;
i>
0;
i--)
k+=i;
returnk;
(2)在用class定义一个类时,数据成员和成员函数的默认访问权限是[2]
(3)含有纯虚函数的类称为[3]
(4)已知intDBL(intn){returnn+n;
}和longDBL(longn){returnn+n;
}是一个函数模板的两个实例,则该函数模板的定义是[4]
(5)在下面程序的横线处填上适当的语句,使该程序执行结果为10.
classMyClass
MyClass(inta){x=a;
}
[5]//取x值
private
intx;
{ MyClassmy(10);
三、上机操作题(改错题1道,简单应用1道,综合应用1道)
1.使用VC6打开考生文件夹下的工程proj1,此工程包含一个源程序文件main.cpp,但该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:
member=0
member=5
menber=10
源程序文件main.cpp清单如下:
{
MyClass(inti){member=i;
voidSetMember(intm){member=m;
intGetMember()const{returnmenber;
voidprint()cont{cout<
member="
private:
intmember;
voedmain()
/**********found**********/
MyClassobj1;
obj1.print();
MyClassobj2(3);
obj1.member=5;
MyClass.SetMember(10);
obj2.print();
2.请编写一个函数intfind(chars[],char
t[]),该函数在字符串s中查找字符串t,如果找到,则返回字符串t在字符串s中的位置(整数值);
否则返回-1.注意:
用数组方式及两重循环来实现该函数.
注意:
部分源文件程序已存在文件PROC2,CPP中.
请勿修改主函数main和其他函数中的任何内容,仅在函数find的花括号中填写若干语句.
文件PROC2.CPP的内容如下:
intfind(chars[],chart[]);
constintMAXLINE=256;
{ charsource[MAXLINE],rarget[MAXLINE];
cout<
Pleaseinputastringforsearching:
\n"
;
cin.getline(source,MAXLINE);
Pleaseinputastringyouwanttofind:
cin.getline(target,MAXLINE);
intintpos=find(source,target);
if(intpos>
=0
Findingit.Thetargetstringisatindex"
<
else
Notfindingit.\n"
intfind(chars[],chart[])
3.使用VC6打开考生文件夹下的工程proj3.此工程包含一个源程序文件main.cpp.其中定义了用于表示日期的类Date,但类Date的定义并不完整.请按要求完成下列操作,将类Date的定义补充完整:
(1)定义私有数据成员year,month和day分别用于表示年,月,日,它们都是int型的数据.请在注释"
//**2
**"
之后添加适当的语句.
(2)完成默认构造函数Date的定义,使Date对象的默认值为:
year=1,month=1,day=1,请在注释"
//*
*2**"之后添加适当的语句.
(3)完成重载构造函数Date(inty,intm,int
d)的定义,把数据成员year,month和day分别初始化为参数y,m,d的值,请在注释"//**3*
*"之后添加适当的语句.
(4)完成成员函数print的类外定义,使其以"年-月-日"的格式将Date对象的值输出到屏幕上.请在注释"//**4
**"之后添加适当的语句.
除在指定位置添加语句之外,请不要改动程序中的其他内源程序文件main.cpp清单如下:
//main.cpp
classDate{
//**2**
Date(inty,intm,intd)
{
//**3**
voidprint()const;
//datemembers
//**1**
voidDate:
print()const
{ //**4**
{ Datenational_day(1949,10,1);
national_day.print();
----------------------------------------------------
参考答案:
公共基础知识:
一:
选择题:
(1)D
(2)C (3)D (4)B
二:
填空题:
(1)[1]:
O(Nlog2N)
(2)[2]:
功能模型
(3)[3]:
软件外部功能
(4)[4]:
二维表
C++程序设计
选择题
1-5:
BBCCC
6-10:
DBCAB
二:
填空题
(1)[1]:
1251121
(2)[2]:
private或私有
抽象类
(4)[4]:
templateTDBL(Tn){returnn+n;
(5)[5]:
intGetNum(){returnx;
}或intGetNum()const{returnx;