国家二级C++机试(操作题)模拟试卷324
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:
Number=7
Number=12
注意:错误的语句在//******error******的下面,修改该语句即可。
#include
class CMyClass
{
public:
//********error********
CMyClass(int i):Number=i
{
//********error********
return Number;
}
void Set(int i)
{
Number=i;
}
void display()
{
cout<<\\
(1)CMyClass(int i):Number(i)
(2)应删除:return Number;
(3)CMyClass*p=new CMyClass(7);
解析:(1)第1个标识下是声明构造函数,并使用初始化列表完成成员变量的初始化,可知第1标识下的初始化列表错误,正确的应该是“CMyClass(int i):Number(i)”。
(2)构造函数不能有返回值,不能用return来返回值,故第2个标识下应将“return Number;”删除。
(3)类实例在不指定构造函数的情况下,调用的是默认无参数的构造函数,此时成员变量Number是不确定的,在定义对象时应使用已定义的构造函数,,根据输出结果可知P指向的对象的Number初始化值为7,故第3个标识下应改为“CMyClass*P=newCMyClass(7);”。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序。该程序从键盘读入整数,并按从大到小的顺序输出输入整数中互不相等的那些整数。程序一边读入整数,一边构造一个以大到小顺序链接的链表,直至输入0时结束。然后顺序输出链表上各表元的整数值。主函数每读入一个整数,就调用函数fun(),函数fun()将还未出现在链表上的整数按从大到小的顺序插入到链表中。为了插入方便,链表在表首有一个辅助表元。
注意:不能修改程序的其他部分,只能修改fun()函数。
#include
Class NODE
{
public:
int data;
NODE*next;
};
Void fun(NODE*list,int x)
{
}
Void main()
{
int x;
NODE*head,*p;
/*首先建立只有辅助表元的空链表*/
head=new NODE;
head->next=NULL;
std::cout<<\\
NODE *u,*v,*p;
u=list;
V=u->next;
while(v!=NULL&&xdata)
//寻找插入的位置
{
u=v;
v=v->neXt;
}
if(v==NULL||x>v->data)
//判断是否为新的元素
{
p=new NODE;
p->data=x; //生成新的元素
p->next。V;
u->next=p; //插入新的元素
}
解析:(1)首先利用while循环寻找插入元素的位置。
(2)然后判断要插入的元素是否为新元素。
(3)如果为新元素,那么执行单链表的操作,插入元素。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)完成类TestClass1的成员函数seta定义,定义seta对象x为int类型,请在注释//********1********后添加适当的语句。
(2)完成类TestClass1(共有)和类TestClass2(私有)派生类TestClass3的定义,请在注释//********2********后添加适当的语句。
(3)定义类TestClass3中的私有成员C为int,请在注释//********3********添加适当的语句。
(4)完成setc中对基类的变量a的赋值,请在注释//********4********后添加适当的语句。
注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
#include
Class TestClass1
{
int a;
public:
//********1********
{
return a=x:
}
Void showa()
{
cout<<a<<endl:
)
};
Class TestClass2
{
int b;
public:
Void Setb(int x)
{
b=x;
}
Void showb()
{
cout<<b<<endl;
}
};
//********2********
{
private:
//********3********
public:
void setc(int x,int y,int z)
{
C=Z;
//********4********
setb(y);
}
Void Showc()
{
Cout<<c<<endl;
}
};
Void main()
{
TestClass3 c;
c.Seta(5);
c.Showa();
c.Setc(5,7,4);
c.Showc();
}
(1)添加语句:int s
本文档预览:3600字符,共4329字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载