国家二级C++机试(操作题)模拟试卷315
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现的功能为:从键盘输入一个字符串,并将结果保存到文件modi1.txt中。
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//********error********的下面。
#include
#include
//********error********
using std;
void WriteFile(char*s)
{
ofstream out1;
//********error********
out1.open(\\
(1)using namespace std;
(2)out1.open(\\
解析:(1)第1个标识下的“using std;”是在程序中引入标准命名空间std,对于C++中引入标准命名空间的格式,缺少namespace,所以第1个标识下的语句修改为“using namespace std;”0
(2)第2个标识下,调用成员函数open中,输入输出方式是在ios类中定义的,所以“out1.open(\\
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数fun(int N[41)的功能是用4个数字,组成互不相同且无重复数字的三位数,并将满足所有条件的数字输出到屏幕,并且每输出一个三位数字就换一行。
程序分析:可填在百位、十位、个位的数字都是1、2、3、0。组成所有的排列后再去掉不满足条件的排列。如果判定第一个数字是O则也去掉。
#include
Void fun(int N[4])
{
}
int main()
{
int N[4]={1,2,3,0);
fun(N);
return 0;
}
int i,j,k;
for(i=0;i<4;i++) //百位循环
{
for(j=0;j<4;j++) //十位循环
for(k=0;k<4;k++) //个位循环
{
if(i!=j&&j!=k&&k!=i&&N[i]!=0)
//当三位数不同,并且百位不为0
{
cout<<N[i]<<N[j]<<N[k]
<<endl; //输出这三位数组成的数字
}
}
}
解析:(1)利用三层循环,对要三位数字是否相同进行判断。
(2)如果三位数不同,并且百位不为0。那么依次输出这三位数,即为三位数组成的数字。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)定义类CPlanet的保护数据成员distance和revolvePeriod,它们分别表示行星距太阳的距离和行星的公转周期。其中,distance为double型,revolvePeriod为int型。请在注释//********1********之后添加适当的语句。
(2)定义类CEarth的构造函数CEarth(double d,intr),并在其中计算地球绕太阳公转的轨道周长。假定:circumference=2*d*3.1416。请在注释//********2********之后添加适当的语句。
(3)定义类Earth的成员display(),用于显示所有信息。包括地球距太阳的距离,地球的公转周期,以及地球绕太阳公转的轨道周长。请在注释
//********3********之后添加适当的语句。
注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
#include
using namespace std;
Class CPlanet
{
protected:
//********1********
public:
CPlanet(double d,int r)
{
distance=d;
revolvePeriod=r;
}
};
class CEarth:public CPlanet{
double Circumference,
public:
//********2********
CEarth(double d,int r)
{
circumference=2*d*3.1416;
}
//********3********
{
cout<<\\
(1)添加语句:double distance;int revolvePeriod;
(2)将“CEarth(double d,int r)”补充完整为:CEarth(double d,int r):CPlanet(d,r)
(3)添加语句:void display()
解析:(1)题目1要求“义类CPlanet的保护数据成员distance和revolvePeriod,它们分别表示行星距太阳的距离和行星的公转周期。其中,distance为double型,revolvePeriod为int型”,因此第1个标识下是添加数据成员distance和revolvePeriod的声明,因此第1个标识下应添加“double distance;int revolvePeriod;”。
(2)假定:circumference=2*d*3.1416”,第2个标识下构造函数CEarth(double d,int r)完成类成员变量的初始化,在函数体内部完成了circumference的初始化,而变量distance和revolvePeriod并没有初始化,需调用基类的构造函数来初始化这两个变量,因此第2个标识下应改为“CEarth(double d,intr):CPlanet(d,r)”。
(3)第3个标识下完成成员函数display()~定义,函数display()的返回值为void,因此第3个标识下应添加“void display()”。
本文档预览:3600字符,共3332字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载