国家二级C++机试(操作题)模拟试卷330
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modi.cpp,该程序运行时有错误,请改正错误,使得程序正常运行,并且要求最后一个catch()必须抛出执行的任何异常。
程序通过抛出异常输出:
error
0
ERROR
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在
//********error********的下面。
#include
int main()
{
try
{
throw(\\
(1)catch(char*s)
(2)catch(int i)
(3)catch(…)
解析:(1)第1个标识前的异常抛出语句为“throw(\\
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成以下函数:
int factorial(int n):求出n的阶乘,必须使用递归调用。
如果n小于1则返回0。
注意:不能修改函数的其他部分。
#include
#include
int factorial(int n)
{
}
void main()
{
cout<<factorial(1)<<endl;
cout<<factorial(5)<<endl;
cout<<factorial(0)<<endl;
return;
}
if(n<1)
{
return 0;
}
else if(n==1)
{
return 1;
}
else
{
return n*factorial(n-1);
}
解析:(1)先考虑最简单的情况,n为1(或小于1)时返回值应该为1,即factorial(1)=1,这是递归结束条件,如果n大于1则递归调用自己。
(2)n>1时,此时递归函数调用自己,即factorial(n)=n*factorial(n-1),此时的函数的返回值是n*factorial(n-1),如此来实现递归调用。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:
(1)完成构造函数,设置数组元素的个数为0,请在注释//********1********之后添加语句。
(2)完成函数AddMember(int n),如果参数n包含在类的数据成员数组中,则返回0,否则把数据写入数组,然后返回1,请在注释//********2********之后添加语句。
(3)完成函数DelMember(int n),如果变量在数据中,则删除该变量,并且返回1,如果不存在则返回0,请在注释//********3********之后添加语句。
(4)完成成员函数islnclude(int n)的定义,该函数检查参数n是否在类的数据成员数组elems中,如果在返回1,否则返回0。请在注释//********4********之后添加语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
#define MAX LENGTH 500
class CArray
{
public:
CArray()
{
//********1********
}
int AddMember(int n)
{
for(int i=0;i<length;i++)
{
//********2********
if(Array[i]=n)
return 0;
}
Array[length++]=n;
return 1;
}
int DeiMember(int n)
{
int i;
for(i=0;i<length;i++)
{
i f(Array[i]==n)
{
break;
}
}
//********3********
if()
{
for(;i<length-1;i++)
{
Array[i]=Array[i+1];
}
length–;
return 1;
}
return 0;
}
int isInclude(int n)
{
for(int i=0;i<length;i++)
{
//********4********
if()
{
return 1;
}
}
return 0;
}
private:
int Array[MAX LENGTH];
int length;//用来记录数组的个数
};
int main()
{
CArray obj;
obj.AddMember(1);
obj.AddMember(3);
obj.AddMember(8);
obj.AddMember(23);
cout<<obj.isInclude(8)
<<endl;
cout<<obj.isInclude(1 1)
<<endl;
obj.DelMember(3);
obj.DelMember(8);
cout<<obj.isInclude(2)
<<endl;
cout<<obj.isInclude(1)
<<endl;
return 0;
}
(1)添加语句: length=0;
本文档预览:3600字符,共4276字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载