国家二级C++机试(操作题)模拟试卷368
基本操作题
1.请使用VC6或使用【答题】菜单打开考生文件夹pmj1下的工程pmjl,此工程中含有一个源程序文件pmj1.cpp。其中位于每个注释“//ERROR ****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
This object is no.1
注意:只修改注释“//ERROR ****found****”的下一行语句,不要改动程序中的其他内容。
//proj1.cpp
#include
using namespace std;
class NyClass
{
public:
NyClass():count(0){cout<<”This
object is”;)
//ERROR********found********
void Inc()const
{tout<<”no.”<<++count<<end1;}
private:
//ERROR********found********
int count=0;
};
int main()
{
NyClass*obj=new NyClass;
//ERROR********found********
*obj.Inc();
return 0;
}
(1)void Inc()
(2)int count;
(3)obj一>Inc();
解析:(1)考查考生对const的掌握,在Inc函数的函数体{cout<<“no.”<<++count<<endl;}中,有语句++count,将使私有成员count的值发生改变,因此该函数不能使用const修饰。
(2)考查私有成员,在定义类时,私有成员只能声明不能初始化。
(3)主要考查考生对类的指针的掌握,指针调用类的成员函数时要使用标识符“一>”,而不能使用“.”。
2.请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程proj1,该工程中含有一个源程序文件proj1.epp。其中位于每个注释“//ERROR****found****”之后的一行语句有错误。请改正这些错误,使程序的输出结果为:12 3 4 5 6 7 8 9 10
注意:只能修改注释“//ERROR****found****”的下一行语句,不要改动程序中的其他内容。
//proj1.cpp
#include<iostream>
using namespace std;
class MyClass{
public:
MyClass(int len)
{
array=new int[len];
arraySize=len;
for(int i=0;i<arraySize;i++)
array[i]=i+1;
}
一MyClass()
{
//ERROR**********found**********
delete array[i];
)
void Print()const
{
for(int i=0;i<arraySize;i++)
//ERROR**********found*********
cin<<array[i]<<”;
Cout<<endl;
}
private:
int*array;
int arraySize;
);
int main()
{
//ERROR**********found**********
MyClass obj;
obj.Print();
return 0;
}
delete[]array;
COUt<<array[i]<<”;
MyClass obj(10);
解析:(1)语法错误,使用delete语句删除一个指针时,直接把指针变量的名称放在delete[]后面即可。
(2)考查考生对输入、输出语句的运用。使用cout进行数据输出操作,一般格式为:COUt<<Expr;。其中,Expr代表一个表达式,“<>var;。其中,vat代表一个变量,“>>”称为提取运算符,该语句的含义是,将用户输入的数据保存到var中。
(3)考查语句的初始化,我们来看MyClass类的构造函数:
MyClass(lnt len)
{
array=new int[len]; //给数组动
态分配空间,大小为len
arraysize=len; //赋值
for(int i=0;i<arraySize;i++)
array[i]=i+1; //循环给数组赋
值,从1到10
}
简单应用题
3.请使用VC6或使用【答题】菜单打开考生文件夹pmj2下的工程pmj2,该工程中包含程序文件main.cpp,其中有类Mammal(“哺乳动物”)、类Elephant(“大象”)、类Nome(“老鼠”)的定义和主函数main的定义。请在横线处填写适当的代码并删除横线,以实现上述定义。此程序的正确输出结果应为:
ELEPHANT
MOUSE
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
#include
using namespace std;
enum category {ENPTY,ELEPHANT,
NOUSE);
char*output[]={”ENPTY”,”ELE
PHANT”,”NOUSE”};
ClasS Nammal
{
public:
Nammal(char*str)
{
//**********found**********
name=new_____
strcpy(name,str);
}
virtual char*WhoAmI()=0;
virtual—Nammal(){delete[]name;
}
void Print(){tout<<WhoAmI()<<
end1;)
private:
char*name;
};
class Elephant:public Nammal
{<
本文档预览:3600字符,共7571字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载