国家二级C++机试(操作题)模拟试卷380
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modil.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:
150
200
注意:错误的语句在∥********error********的下面,
修改该语句即可。
提示:定义Number1为一个整型数据位长的变量。
#include
∥********error********
Struct
{
∥********error********
int Number1:1;
int Number2;
}MyStruct;
void main()
{
MyStruct mstr;
mstr.Number1=150;
mstr.Number2=15;
∥********error********
int*ptr=&mstr.Number1;
cout<<*ptr<<end1;
*ptr=2 0 0;
cout<<*ptr<<endl;
}
(1)typedef struct
(2)int Number1:32; 或int Numberl ;
(3)int*ptr=(int*)&mstr;
解析:结构体MyStruct有两个成员变量Number1和Number2,主函数中定义结构变量mstr,并通过指针改变变量mstr内Number1的值。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码。函数MergeAndSort(int s[],int e[],int a[],int m,int n)实现将两个数组合并。这两个数组已经有序,按照由小到大的顺序排列。
例如:
e[]={1,3,5,6},m是数组e的长度,即为4。
a[]={2,4,5,7,11,13},n是数组a的长度,即为6。
则执行的结果为:s[]={1,2,3,4,5,6,7,11,13}
补充函数fun(int s[],int e[],hat a口,int m,int n),使之实现上述要求。
注意:请勿改动主函数。
#include
void MergeAndSort(int S[],
int e[],int a[],int m,int n)
{
}
int main()
{
int data[2 0],i;
int a[]={1,3,5,6);
int b[]={2,4,5,7,11,13);
cout<<”a[]=”;
for(i=0;i<4; i++)
cout<<a[i]<<‘,’;
cout<<endl;
cout<<“b[]=”;
for(i=0;i<6;i++)
cout<<b[i]<<‘,’;
cout<<endl;
MergeAndSort(data,a,b,4,6);
cout<<“s[]=”;
for(i=0; i<9;i++)
cout<<data[i] <<‘,’;
cout<<endl;
return 0;
}
int i,j,k;
i=0;
j=0;
k=0;
while(i<m&&j<n)
{
if(e[i]<a[j])
{
s[k++]=e[i++];
//取小的,因为从小到大排序
}
else if(e[i]==a[j])
//相等,取e[i]或a[j]都可
{
s[k++]=e[i];
i++;
j++;
}
else //e[i]>a[j],取小
的a[j]
{
S[k++]=a[j++];
}
}
while(i<m)s[k++]=e[i++];
//如果数组e后面还有没有加进来的元素,则加进去
while(j<n) s[k++]=a[j++];
//如果数组a后面还有没有加进来的元素,则加进去
解析:函数MergeAndSort(int s[],int e[],inta[],int m,int n)实现将数组e和数组a的合并,这两个数组已经照由小到大的顺序排列,因此只需逐个比较e数组和a数组的元素值,每次取两个元素值的小的,如果相等则取两个当中的任意一个均可。
综合应用题
3.使用VC6打开考生文件央下的源程序文件modi3.cpp,其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)定义类CPlanet的保护数据成员distance和revolvePeriod,它们分别表示行星距太阳的距离和行星的公转周期。其中,distance为double型,revolvePeriod为int型。清在注释∥********1********之后添加适当的语句。
(2)定义类CEarth的构造函数CEarth(doublc d,intr),并在其中计算地球绕太刚公转的轨道周长。假定circumference=2*d*3.1416 。 请在注释
∥********2********之后添加适当的语句。
(3)定义类Earth的成员display(),用于显示所有信息。包括地球距太阳的距离,地球的公转刷划,以及地球绕太阳公转的轨道周长。请在注释∥********3********之后添加适当的语句。
注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
#include
using namespace std;
class s CPlanet
{
protected:
∥********1********
public:
CPlanet(double d,int r)
{
distance=d;
revolvePeriod=r;
}
};
class CEarth:public CPlanet{
double Circumference,
public:
∥********
本文档预览:3600字符,共4512字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载