首页 > 全部 > 二级C++ > 国家二级C++机试(操作题)模拟试卷514

国家二级C++机试(操作题)模拟试卷514

本单篇文档共3744字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C++ 章节练习 2078人下载
价格: 1.00 原价:¥8.80
收藏

国家二级C++机试(操作题)模拟试卷514

基本操作题

1.请打开考生文件夹下的解决方案文件proj1,其中:有点类Point和线段类Line和主函数main的定义,程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出应为:

p1=(8,4)p2=(3,5)

注意:只修改两个“//ERROR****found****”下的那一行,不要改动程序中的其他内容。

#inclucle<iostream>

#include<cmath>

using namespace std;

class Point{

double x,y;

public:

Point(double x=0.0,double y=0.0)

//ERROR*******found*******

{x=x;y=y;}

double getX( )const{return x;}

double getY( )const{return y;}

//ERROR*******found*******

void show( )const{cout<<’(’<<x<<’,’<<y<<’)’}

};

class Line{

Point;p1,p2;

public:

Line(Point;pt1,Pointpt2)

//ERROR*******found*******

{pt1=p1;pt2=p2;}

Point getP1( )const{returnp1;}

Point getP2( )const{returnp2;}

};

int main( ){

Line line(Point:(8,4),Point(3,5));

cout<<\\

(1):x(x),y(y){}或{this->x=x,this->y=y;}

(2)void show( )const{eout<<’(’<<x<<’,’<<y<<’)’;}

(3):p1(pt1),p2(pt2){}或{p1=pt1;p2=pt2}

解析:(1)主要考查考生对构造函数的掌握,因为形参名和私有成员名称一样,因此不能直接赋值,在这里使用成员列表初始化,也可以使用this指针赋值。

(2)主要考查考生对语句基本语法的掌握,根据语句:void show( )const{tout<<’(’<<x<<’,’<<y<<’)’}。可看出函数体内并没有“;”作为tout语句的结束符,因此程序错误。

(3)主要考查考生对构造函数的掌握,形参是pt1和pt2,这里写反了,也可以他用成员列太表初始化法,可以避免这种错误。

简单应用题

2.请打开考生文件夹下的解决方案文件proj2,该工程中包含程序文件main.cpp,其中有类Mammal(“哺乳动物”)、类Elephant(“大象”)、类Mouse(“老鼠”)的定义和主函数main的定义。请在横线处填写适当的代码并删除横线,以实现上述定义。此程序的正确输出结果应为:

ELEPHANT

MOUSE

注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。

#include<iostream>

using namespace std;

enum category{ENPTY,ELEPHANT,NOUSE);

char*output[ ]={\\

(1)char[strlen(str)+1];

(2)Mammal(str)

(3)return output[MOUSE];

(4)Elephant

解析:(1)主要考查分配空间,程序要给name分配空间,由下一条语句中strcpy(name,str)可知程序要把字符串str复制给name,因此要分配的空间大小为strlen(str)+1。

(2)主要考查考生对构造函数的掌握,因为Elephant类是Mammal类的派生类,所以其构造函数要使用成员列表先对Mammal类初始化。

(3)主要考查考生对枚举类型的掌握,先看程序:enum category{EMPTY,ELEPHANT,MOUSE}。再参考Elephant类中的WhoAmI函数:char*WhoAmI( ){return output[ELEPHANT];}。可知这里要填写的返回语句为:return output[MOUSE];。

(4)主要考查考生对派生类的掌握,题目要求输出:

ELEPHANT

MOUSE

可知,要先调用Elephant类的WhoAmI函数,因此给指针pm分配Elephant类空间。

综合应用题

3.请打开考生文件夹下的解决方案文件proj3,其中声明了ValArray类,该类在内部维护一个动态分配的整型数组。ValArray类的复制构造函数应实现对象的深层复制。请编写ValArray类的复制构造函数。在main函数中给出了一组测试数据,此种情况下程序的输出应该是:

ValArray v1={1,2,3,4,5}

ValArray v2={2,2,2,2,2}

要求:

补充编制的内容写在“//*******333*******”与“//********666********”之间。不要修改程序的其他部分。

注意:

相关文件包括:main.cpp、ValArray.h。

程序最后调用writeToFile函数,使用另一组不同的测试数据,将不同的运行结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件。

//ValArray.h

#include<iostream>

using namespace std;

class ValArray{

int*v;

int size;

public:

ValArray(const int*p,intn):size(n)

{

v=new int[size];

for(int i=0;i<Size;i++)

v[i]=p[i];

}

ValArray(const ValArray&other);

~ValArray( ){delete[ ]v;}

void setElement(int i,int val)

{

v[i]=val;

}

void print(ostream&out)const

{

out<<’{’;

for(int i=0;i<size-1;i++)

out<<v[i]<<\\

size=other.size;//把对象数组的大小赋值给size

v=new int[other.size];//根据对象数组的大小动态分配数组v

for(int i=0;i<size;++i)

v[i]=other.v[i];//遍历整个对象的数组把值other.v[i]放到数组v中

解析:主要考查考生对复制构造函数的掌握。由函数名:ValArray::ValArrav(

本文档预览:3600字符,共3744字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C++机试(操作题)模拟试卷514

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号