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

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

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

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

基本操作题

1.请打开考生文件夹下的解决方案文件proj1,该工程中含有一个源程序文件proj1.cpp。其中位于每个注释“//ERROR****found****”之后的一行语句有错误。请改正这些错误,使程序的输出结果为:

1 2 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<<end1;

}

private:

int*array;

int arraysize;

};

int main( )

{

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

MyClass obj;

obj.Print( );

return0;

}

delete[ ]array;

cout<<array[i]<<”;

MyClass obj(10);

解析:(1)语法错误,使用delete语句删除一个指针时,直接把指针变量的名称放在delete[ ]后面即可。

(2)考查考生对输入、输出语句的运用。使用Cc3ut进行数据输出操作,一般格式为:cout<<Expr;。其中,Expr代表一个表达式,“<<”称为插入运算符,该语句的含义是,将表达式Expr的值输出到屏幕上。使用cin进行数据输入操作,一般格式为:cin>>var;。其中,var代表一个变量,“>>”称为提取运算符,该语句的含义是,将用户输入的数据保存到var中。

(3)考查语句的初始化,我们来看MyClass类的构造函数:

MyClasS(int len)

{

array=new int[len];

//给数组动态分配空间,大小为len

arraySize=len;//赋值

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

array[i]=i+1;//循环

给数组赋值,从1到10

请注意:形参len没有定义默认值,因此要想使array动态数组里依次存放1,2,3,4,5,6,7,8,9,10,就是要给len赋值为10。

简单应用题

2.请打开考生文件夹下的解决方案文件proj2,其中定义了Component类、Composite类和Leaf类。Component是抽象基类,Composite和Leaf是Component的公有派生类。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:

Leaf Node

注意:只能在横线处填写适当的代码,不要改动

程序中的其他内容,也不要删除或移动“//****found****”。

#include<ioStream>

using namespace std;

class Component{

public:

//声明纯虚函数print( )

//*******found*******

_______

};

class Composite:public Component{

public:

//*******found*******

VOid SetChild(_______)

{

m_child=chiid;

}

virtual void print( )const

{

m_chiid->print( );

}

private:

Component*m_chiid;

};

class Leaf:public Component{

public:

virtualvoidprint( )const

{

//*******found*******

}

};

int main( )

{

Leaf node;

Composite comp;

comp.setChiid(&node);

Component*p=&comp:

p->print( );

return0;

}

(1)virtual void print( )const=0;

(2)Component*child

(3)cout<<\\

解析:(1)主要考查考生对纯虚函数的掌握,题目要求声明纯虚函数print( )。在其派生类中print( )函数的定义为virtual void print( )const,由此可知纯虚函数为virtual void print( )const=0。

(2)主要考查考生对成员函数的掌握,题目要求填写函数void setChild的形参,由setChild的函数体可知形参为child,再看类的私有成员m_child的定义:Component*m_child;。由此可知形参为:Component*child。

(3)主要考查考生对纯虚函数的掌握,先看主函数的程序:

Leaf node;

Composite comp;

comp.setChiid(&node);

Component*p=∁

p->print( );

第一条和第二条语句都是定义语句,第三条语句调用函数setChild,由setChild函数的定义可知,comp中的m_child等于node,第四条语句定义了个指针p指向comp的地址,也就是node,最后一条语句通过指针p调用函数print,也就是调用类Leaf的函数print,因为题目要求输出:Leaf Node,因此在这里添加语句:tout<<\\

综合应用题

3.请打开考生文件夹下的解决方案文件proj3,其中声明的CDeepCopy是一个用于表示矩阵的类。请编写这个类的赋值运算符成员函数operator=,以实现深层复制。

要求:

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

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号