全国计算机二级考试C++语言程序设计上机考试试题及答案
一、程序改错题
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使得程序通过运行。
程序输出结果为
5
a
1
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error**
****的下面。
试题程序:
#include(iostream)
template(classT>
//********error********
tmin(tX,ty)
{
return(x>y)?y:x;
}
voidmain()
{
intn=5:’
//********error********
charc="a":
intd=1:
//********error********
cout< cout< cout< }
二、简单应用题
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(intn),使其实现以下功能:当i等于3时,则打印如下内容。
A
AA
AAA
注意:不能修改程序的其他部分,只能修改fun函数。
试题程序:
#include
voidfun(intn)
{
}
voidmain()
{
intn;
cout<<"请输入打印的行数:"< cin>>n;
if(n<1)
{
cout<<"输入的行数必须大于0"< return;
}
fun(n);
return;
}
三、综合应用题
使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。
(1)在类TC中定义name为字符串类型,age为int型,请在注释1之后添加语句。
(2)设置类TC0的基类为TC类的定义,请在注释2后添加语句。
(3)在类TC的派生类TC0的公有成员中定义析构函数TC0,请在注释3后添加语句。
(4)设置类TCl的基类为TC类的定义,请在注释4后添加语句。
程序输出结果为
TCclassconstructor
TC0classconstructor
TConclassconstructor
TClclassconstructor
TClclassconstructor
TCclassconstructor
TC0classconstructor
TCclassconstructor
注意:增加或者修改代码的位置已经用符号表示出来一请不要修改其他的程序代码。
试题程序:
#include
classTC
{
//********1********
public:
TC(){cout<<"TCclassconstructor"< TC(){tout<<"TCclassconstructor"< };
//********2********
{
char*departmert;
intlevel;
public:
TCO()
{cout<<"TCOclassconstructor"< //********3********
{cout<<"TC0classconstructor"< };
//********4********
{
char*maior:
floatsalary;
public:
TCl(){cOUt<<"TClclassconstructor"< TCI(){COUt<<"TClclassconstructor"< };
voidmain()
{
TC0sl;
TCItl;
}
上机考试试题答案与解析
一、程序改错题
(1)应改为“Tmin(TX,Ty)”。
(2)应改为“charc=’a’;”。
(3)应改为“usingnamespacestd;”。
【解析】本题C++是区分大小写的,“template T>”语句中定义的模板类为T不是t,所以第1处的“tmin(tx,ty)”修改为“Tmin(Tx,Ty)”。第2处的“charc="a";”语句中的变量a为char型,赋值为字符a,在C++中应该使用单引号标注字符变量,而不是双引号,所以修改为“charC=’a’;”。在程序中用到C++标准库时,要使用std标准命名空间进行限定。cout为标准库函数,所以要声明cout是在命名空间std中定义的流对象,即添加“usingnamespacestd;”。
二、简单应用题
inti;
for(i=0;i {
intj;
for(j=0;j(n-i-1;j++)//循环打印空格
{
cout<<’’;
}
for(;j {
cout<<"A":
}
cout< }
【解析】本题利用外层循环打印每一行。内层循环分为
打印空格和打印A。打印空格由第一个位置到第n-i-1。打印A,是由打印完空格开始一直到行结束。在外循环中打印每一行的结束符。
三、综合应用题
(1)应添加“char*name;intage;”。
(2)应添加“classTC0:publicTC”。
(3)应添加“~TCO()”。
(4)应添加“classTC1:publicTC”。
【解析】本题第1处要求“TC中定义name为字符串类型,age为整型”。根据题目要求,在程序TC类中定义变量name和age,即“char*name;intage;”。第2处要求“设置类TC0的基类为TC类的定义”。在C++中,从已有的类产生一个新的子类,称为类的派生。声明派生类的一般形式为“ClaSS派生类名:[继承方式]慕类名”。根据声明派生类的一般形式,这里补全“classTC0:publicTC”。第3处要求“在类TC的派生类TCO的公有成员中定义析构函数TC0”。析构函数也是一个特殊的成员函数,它的作用与构造函数相反,它的名称是在类名前面加一个“~”符号。题目中要求的类名称为“TCO”即这里补全“~TCO()”。第4处要求“设置类TCl的基类为TCl类的定义”,在第4处补充“ClassTCl:public,TC”。
全国计算机等级考试计算机基础及Photoshop应用试题答案汇总(6套)
[Photoshop应用]2017年2月3日全国计算机等级考试四级数据库系统工程师试题及答案汇总(22套)
[数据库工程师]2017年2月2日全国计算机一级考试模拟试题及答案300题
[WPS Office应用]2017年1月22日2017年3月全国计算机等级考试报名时间及报名入口汇总
[考试动态]2017年1月3日2017全国计算机等级考试考试大纲专题
[政策大纲]2017年1月3日