国家二级C++机试(操作题)模拟试卷404
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正确运行,并且使程序输出的结果为:
CMyObject,in the construtor
CMyObject,in the destrutor
注意:错误的语句在∥********error********的下面,修改该语句即可。
#include
class CMyObj ect
{
∥********error********
∥********error********
CMyObj ect{cout<<“CMyObj ect,in the construtor”<<endl;}
~CMyObj ect(){cout<<
”~CMyObject,in the deStrutor”
<<endl;}
},
void main()
{
CMyObj ect obj 1;
}
(1)添加语句:public:
(2)CMyObj ect(){cout<<“CMyObj ect,in the construtor”<<endl;)
解析:程序中定义了类CMyObject,含有一个构造函数和一个析构函数,在构造函数和析构函数中分别输出一段字符。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。完成fun()函数,其功能是:求出M行N列二维数组每行元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。
注意:不能修改程序的其他部分,只能修改fun()函数。
#iRClude
#defime M 2
#defime N 4
void fun(int a[M][N],int*sum)
{
}
void msin()
{
int x[M][N]={7,6,5,2,4,2,8,3);
int s;
fun(x,&s);
cout<<s<<endl:
return;
}
int i,j,k,s=0;
for(i=0;i<M; i++) //外循环
{
k=0;
for(j=1;j<N;j++)
if(a[1][k]>a[i][j])k=:;
//求得每一行的最小值
s+=a[i][k]; //最小值求和
}
*sum=s; //返回求和值
解析:(1)该程序功能是求二维数组每行元素中的最小值,并计算它们的和值。本题解题思路基本可以分为两重循环,外重循环为对二维数组的所有行进行循环,内重循环为对每一行内进行列循环,求出每一行中的最小值。最后求出这些最小值的和。
(2)从己给部分源程序的main主函数开始入手,核心函数void fun(int a[M][N],int*sum)中的a参数为二维数组,sum为要求得的和。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp。程序通过继承关系,实现对姓名的控制。
类TestClass1实现对名字访问的接口,TestClass2实现对名字的设置和输出。
程序输出为:
TestClass2Name
May
其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)在类TestClassl中定义接口函数GetName,为纯虚函数。请在注释∥********1********后添加适当的语句。
(2)函数GetName20实现获得名字的缓存,但是只获得读允许操作这个缓存,请在注释∥********2********后添加适当的语句。
(3)实现TestClass2的构造函数,请在注释∥********3********后添加适当的语句。
(4)完成TestClass2的构造函数,实现对名字的处理。请在注释∥********4********后添加适当的语句。
注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
#include
class TestClass1
{
public:
∥********1********
};
class TestClass2:public TestClass1
{
public:
void GetName()
{
Cout<<“TestClass2Name”
<<end1;
}
∥********2********
{
return m str;
}
∥********3********
{
int i;
for(i=0;str[i]!=0;i++)
m str[i]=Str[i];
∥********4********
}
private:
char m str[32];
};
void main()
{
TestClass1*p;
TestClass2 obj 1(“May”);
P=&obj 1;
P一>GetName();
cout<<obj 1.GetName2()<<end1;
return;
}
(1)添加语句:virtual void GetName()=0;
(2)添加语句:const char*GetName2()
(3)添加语句:TestClass2(char*str)
(4)添加语句:m str[i]=0;
解析:在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的main主函数开始入手,可以看出程序通过调用类TestClass和接口函数Gemame实现各种输出操作。
本文档预览:3600字符,共3363字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载