国家二级C++机试(操作题)模拟试卷353
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出:
10
TestClass1
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在
//********error********的下面。
#include
Class TestClass1
{
public:
TestClass1(){
},
//********error********
private:
virtual~TestClass1()
{
using namespace std;
cout<<\\
(1)删除“private:”语句
(2)TestClass2(int i)
(3)std::cout<<m i<<std::endl;
解析:(1)第1个标识下的“virtual~TestClass1()”语句是TestClass1()析构函数,不是私有函数,所以删除“pfivate:”。
(2)“explicit TestClass2(int i)”构造函数语句中的“explicit”是禁止隐式转换。程序中无法实现对类TestClass2的直接使用,所以这里应该将其删除。即“TestClass2(int i)”。
(3)第3个标识下实现,fun函数中m i的标准输出,即在屏幕上输出10。在程序中用到C++标准库时,要使用std标准命名空间进行限定。cout为标准库函数,所以要声明cout是在命名空间std中定义的流对象,即“std::cout<<In i<<std::endl;”或者添加“using namespace std;”。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数fun(int n)的功能是在n行n列的矩阵中,每行都有最大的数,本程序求这n个最大数中的最小一个,并作为参数返回。
注意:不能修改程序的其他部分,只能修改fun()函数。
#include
#define N 100
int a[N][N];
int fun(int n)
{
}
Void main()
{
int n;
cout<<\\
int row;
int max;
int min;
int col;
for(row=0;row<n;row++)
//外循环求行最大值中的最小值
{
for(max=a[row][0],col=i;col<n;
col++) //求每一行中的最大值
if(max<a[row][col])
max=a[row][col];
if(row==0) //求最小值
min=max;
else
if(max<min)
min=max;
}
return min;
解析:(1)两层循环,内层循环求每一行最大值,外层循环求最小值。
(2)求最大值,首先将最大值赋值为每行第一列的元素,然后依次循环比较。
(3)将求出的第一个最大值赋值为第一个最小值,然后将以后求得的最大值依次与之比较,求出所有值的最小值。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示人基本信息的类CHumanlnfo,但类CHumanlnfo的定义并不完整。请按要求完成下列操作,将类CHumanlnfo的定义补充完成:
(1)定义私有数据成员bloodType用于表示血型,血型为char型的数据。请在注释“//********1********”之后添加适当的语句。
(2)完成构造函数的定义,要求具有缺省值,缺省值为身高175,体重70,血型A。请在注释“//********2********”之后添加适当的语句。
(3)完成类外CHumanInfo成员函数Setlnfo的定义。请在注释“//********3********”之后添加适当的语句。
(4)在主函数中调用成员函数Setlnfo,把对象d2的三个私有数据成员分别设定为身高170,体重64,血型为B。请在注释“//********4********”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
Class CHumanInfo
{
private:
int height;
int weight;
//********1********
public:
//********2********
:height(ht),weight(wt),
bloodType(bt){);
CHumanInfo(CHumanInfo &h1):
height(h1.height),
weight(h1.weight),
bloodType(h1.bloodType){};
int GetHeight()
{
return height;
}
int GetWeight()
{
return welght;
}
int GetBloodType()
{
return bloodType;
}
void SetInfo(int ht,int
wt,char bt);
void Display();
};
//********3********
{
height=ht;
weight=wt;
bloodType=bt;
}
void CHumanInfo::Display()
{
cout<<\\
(1)添加语句:char bloodType;
(2)添加语句:CHumanlnfo(int ht=175,int wt=70,char bt=’A’)
(3)添加语句:
Void CHumanInfo::SetInfo(int ht,int wt,char bt)
(4)添加语句:h2.Setlnfo(170,64,’B’);
解析:(1)第
本文档预览:3600字符,共4069字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载