国家二级C++机试(操作题)模拟试卷415
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为:
Max is 7
提示:max()函数实现找出两个数中的最大值,并作为函数值返回。
注意:错误的语句在∥********error********的下面,修改该语句即可。
#include
using namespace std;
∥********error********
int max(int a,int b)
{
if(a<b)
{
int t=a;
a=b;
b=t;
}
return b;
}
int main()
{
int m=一3;
int n=7;
∥********error********
max(一3,n);
cout<<“Max iS”<<m<<endl;
return 0;
}
(1)int max(int &a,int &b)
(2)max(m,n);
解析:函数参数传递形式有多种:将变量名作为实参和形参、传递变量的指针和传送引用方式,将变量名作为实参和形参方式,传递是单向的,在函数执行过程中形参的值发生变化不会传回实参,而指针和引用方式在函数执行过程中形参会影响实参。函数max返回最大值,而在主函数内并没有使用其返回值,而是输出m值,可知在max函数类已将最大值存放在m里,因此max函数采用的是传递引用方式。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。请实现函数fun(double b[],int len)的如下功能:
(1)b[]是一个数组,长度为len;
(2)b[0]=0,b[1]=1;
(3)b[i+2]=b[i]+b[i+1];
注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
{}include
void fun(double b[],int fen)
{
}
Void main()
{
double b[1 2 8];
fun(b,1 2 8);
for(int i=0;i<128;i++)
{
std::cout<<b[i]<<‘’;
if(i%6==5)
std::cout<<std::end1;
}
return;
}
if(1en>0)//最小值位置
b[0]=0; //赋值第一个元素
if(1en>1)
b[1]=1; //赋值第二个元素
for(int i=2;i<1en; i++)
b[i]=b[i一1]+b[i一2];//将两个元素之和赋予当前元素
解析:根据题干中给出的要求,从已给部分源程序的main主函数开始入手,补全函数voidfun(double b[],int len)。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示学生学号的类CStudent1D,但类CSmdentlD的定义并不完整。
运行结果为:
学生的学号为:200805
学生名为:李伟
删除学生学号为:200805
请按要求完成下列操作,将类CStudentlD的定义补充完成:
(1)定义class CStudentlD类的私有数据成员IDvalue表示学生的学号,为long型的数据。请在注释∥********1********之后添加适当的语句。
(2)完成默认构造函数CSmdentlD的定义,使CSmdentlD对象的默认值为:id=0,并把学生的学号赋给IDvalue,并输出“赋给学生的学号:”及学号。请在注释∥********2********之后添加适当的语句。
(3)完成默认析构函数CStudentlD的定义,使CStudentlD析构时输出“删除学号:”及学号。请在注释//料料料料3料料料料之后添加适当的语句。
(4)完成默认构造函数CStudentlnfo的定义。对应两个默认参数:要求定义char stName[],其默认值为“no name”,定义long stlD,其默认值设为0,并使它们赋值给相应的类数据成员。请在注释∥********4********之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
#include
Class CStudentID
{
∥********1********定义私有数据成员
public:
∥********2********定义默认构造函数
{
IDvalue=id;
cout<<“学生的学号为:”<<IDvalme<<endl;
}
∥********3********定义析构函数
{
cout<<“删除学生学号为:”<<IDvalue<<endl;
}
};
Class CStudentInfo
{
private:
CStudentID id;
char name[20];
public:
∥********4********定义默认构造函数完成数据成员初始化
{
cout<<“学生名为.\\
(1)添加语句:long IDvalue;
(2)添加语句:CStudentID(10rlg id=0)
(3)添加语句:一CStudentID()
(4)添加语句: CStudent I nfo (char stName[]= “no name”,long StID=0):id(StID)
解析:程序中定义了两个类CStudentlD和CStudentlnfo,其中类CStudentlD包含学生的学号信息的成员变量,有自定义构造函数和默认析构函数,而类CStudentlnfo不仅包含学生的学号还包括对应的姓名信息的成员变量,还实现了自定义构造函数。
本文档预览:3600字符,共3463字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载