国家二级C++机试(操作题)模拟试卷335
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modi.cpp,该程序运行时有错误,请改正其中的错误,使得程序正确运行。
程序输出:
s1:n=20
s2:n=10
执行s3.add(s1,s2)
s3:n=30
s4:n=30
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在
//********error********的下面。
#include
class TestClass
{
int n;
public:
TestClass() {}
TestClass(int m)
{
n=m;
}
//********errOr********
TestClass add(TestClass s1,s2)
{
this->n=s1.n+s2.n;
//********error********
return(this);
}
Void disp()
{
cout<<’ ’n=\\
(1)TestClass add(TestClass s1,TestClass s2)
(2)return(*this);
(3)};
解析:(1)打开modi1.cpp,调试程序,根据显示的错误提示,知道语句“TestClass add(TestClasss1,s2)”中的变量“s2”没有声明类型,所以补充“s2”的类型,即“TestClass add(TestClass s1,TestClass s2)”。
(2)“this->n=s1.n+s2.n:”语句中的this变量为指针变量,所以第2个标识下的“return(this);”返回语句中的this变量,应该返回指针型,所以修改为“return(*this);”。
(3)C++中类的定义格式应为“class类名{);”,以分号为结尾,所以第3个标识下,类结尾处补充分号“;”,即修改为“}:”。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(char*des,char*str)的功能是去掉字符串str中相同的字母,并将处理后的结果存到des所指的字符串中。例如:
输入:This is great!
输出:This grea!
注意:不能修改程序的其他部分,只能补充fun()函数。
#include
#define MAXLEN 1024
Void convert(char*des,char*
str)
{
}
void main()
{
char sour[MAXLEN];
char dest[MAXLEN];
cout<<\\
int 1,j;
bool TuAdd;
des[0]=0;
for(i=0;str[i]!=NULL;i++)
{
ToAdd=true;
for(j=0;des[j]!=NULL;j++)
{
if(str[i]==des[j])
{
ToAdd=false;//des 数组中已存在该元素,将标志位设置为假,说明不用再添加
break;//des数组中已存在该元素,跳出循环
}
}
if(ToAdd)//des数组中不存在,添加进来
{
des[j]=str[i];
des[j+1]=0 ;
}
}
解析:(1)由审题分析可知,需要两重循环,外层循环不断读取str中的元素,内循环在des数组中查找读到的str中的字符,如果找到了des数组中已存在该元素不需要添加,如果没找到则添加到des数组中。
(2)在外循环体内,先设置bool型的标志变量ToAdd为真,假设str[i]不存在在des数组中,然后再内循环中,用str[i]和des[j]比较.如果相同说明已经存在了,将ToAdd设置为假,des[j]后面的元素不需要再比较了,跳出内循环。
(3)通过判断ToAdd可知,str[i]是否存在des数组中,如果ToAdd为真,则说明des数组中不存在str[i],将str[i]添加到des数组中。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整。请按要求完成下列操作,将类Date的定义补充完成。
(1)定义私有数据成员year、month和day,分别用于表示年、月和日,它们都是int型的数据。请在注释//********1********之后添加适当的语句。
(2)完成默认构造函数Date的定义,使Date对象的默认值为:year=1,month=1,day=1,请在注释
//********2********之后添加适当的语句。
(3)完成重载构造函数Date(int y,int m,int d)的定义,把数据成员year、month和day分别初始化为参数y、m和d的值,请在注释//********3********之后添加适当的语句。
(4)完成成员函数print()的类外定义,使其以“年一月一日”的格式将Date对象的值输出到屏幕上,例如:2008-8-8。请在注释//********4********之后添加适当的语句。
注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。
#include
Class Date{
public:
//********2********
Date(int y,int m,int d)
{
//********3********
}
void print()const;
private:
//data member
//********1********
};
void Date::print()const
{
//********4********
}
int main(){
Date national_day(1949,10,1);
national_day.print();
return 0;
}
(1)添加语句:int
本文档预览:3600字符,共4439字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载