国家二级C++机试(操作题)模拟试卷496
基本操作题
1.请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程中含有一个源程序文件proj1.cpp。其中位于每个注释“//ERROR ****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
This object is no.1
注意:只修改注释“//ERROR****found****”的下一行语句,不要改动程序中的其他内容。
//proj1.cpp
#include
using namespace std;
class MyClass
{
public:
MyClass():count(0){cout<<\\
(1)void Inc()
(2)int count;
(3)obj->Inc();
解析:(1)考查考生对const的掌握,在Inc函数的函数体{cout<<\\
简单应用题
2.请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中包含一个程序文件main.cpp,其中有坐标点类point、线段类Line和三角形类Triangle的定义,还有main函数的定义。程序中两点间距离的计算是按公式d=实现的,三角形面积的计算是按公式f=
实现的,其中s=
(1)const Point&p
(2)p1(p1),p2(p2)
(3)Point p1,Point p2,Point p3
(4)(lengthl()+length2()+length3())/2
解析:(1)主要考查考生对函数形参的掌握,由函数的注释可知有本坐标点到达某个坐标点类的距离,再根据函数体return sqrt((x—p.x)*(x—p.x)+(y—p.y)*(y—p.y));可知,该坐标点类名为p,因此可以知道形参为Point&p,为了不改变该坐标点的值,前面要加上const。
(2)主要考查考生对构造函数的掌握,对于常变量型私有成员const Point pl,p2,只能用成员初始化列表进行赋值。
(3)主要考查考生对构造函数的掌握,由空格后面的语句:pl(p1),p2(p2),p3(p3){}可知,该构造函数需要进行成员列表初始化,再看类的私有成员const Point pl,p2,p3,可知pl,p2,p3是Point类型,因此形参为Point pl,Point p2,Point p3。
(4)主要考查考生对成员函数的掌握,根据函数注释,可知本函数要求计算三角形面积,再看题目的提示:s=(a+b+c)/2。可知空格处要填的是三角形的三条边之和除以2,而求边长的函数已经给出,这里直接调用即可。
综合应用题
3.请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件proj3,此工程包含一个源程序文件proj3.cpp,其功能是从文本文件in.dat中读取全部整数,将整数序列存放到intArray类的对象my.Array中,然后对整数序列按非递减排序,最后由函数writeToFile选择序列中的部分数据输出到文件out.dat中。文件in.dat中的整数个数不大于300个。
要求:
补充编制的内容写在“//**********333**********”与“//**********666**********”两行之间。实现对整数序列按非递减排序,并将排序结果在屏幕上输出。不得修改程序的其他部分。
注意:程序最后已将结果输出到文件out.dat中=输出函数writeToFile已经给出并且调用。
//proj3.cpp
#include
#include
#include
using namespace std;
class intArray
{
private:
int*array;//整数序列首地址
int length;//序列中的整数个数
public:
//构造函数,从文件中读取数据用于初始化新对象。参数是文件名
intArray(char*filename);
void sort();//对整数序列按非递减排序
~intArray();
void writeToFile f char *filename);
},
intArray::intArray(char *filename)
{
ifstream myFile(filename);
int len=300;
array=new int[len];
length=0 ;
while(myFile>>array[length++]);
length–;
myFile.close();
}
void intArray::sort(){
//**********333**********
//**********666**********
}
intArray::~intArray()
{
delete[]array;
}
void intArray:: writeToFile
(char*filename)
{
int step=0;
ofstream outFile(filename);
for(int i=0;i<length;i=i+step)
{
outFile<<array[i]<<
endl;
Step++;
}
outFile.close();
}
void main()
{
intArray myArray(\\
for(int i=0;i<length;++i) //遍历整个数组
for(int j=i;j<length;++j) //从i++遍历整数组
if(array[i]>array[j])
//如果arrag[i]>array[j],把array[i]与array [i]进行对换
{
int temp; //定义一个临时变量temp
temp=array[i]; //把array[i]值放到变量temp
array[i]=array[j];
//把array[j]值赋
本文档预览:3600字符,共3897字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载