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

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

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

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

基本操作题

1.请打开考生文件夹下的解决方案文件proj1,该工程中包含程序文件main.cpp,其中有类Door(“门”)和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:

打开503号门...门是锁着的,打不开。

打开503号门的锁...锁开了。

打开503号门...门打开了。

打开503号门...门是开着的,无须再开门。

锁上503号门...先关门...门锁上了。

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

#include<iostream>

using namespace std;

class Door{

int num;//门号

bool closed;//true表示门关着

bool locked;//true表示门锁着

public:

Door(int num){

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

num=this->num;

closed=locked=true;

}

bool isClosed( )const{returnclosed;}

//门关着时返回true,否则返回false

bool isOpened( )const{]Tel2L1rn!closed;}

//门开着时返回true,否则返回false

bool isLocked( )const{return locked;}

//门锁着时返回true,否则返回false

bool isunlocked( )const{return!locked;}

//门未锁时返回true,否则返回false

void open( ){//开门

cout<<endl<<\\

(1)this->num=num;

(2)if(!closed)

(3)void lock( ){

解析:(1)主要考查考生对this指针的掌握,在构造函数中this指针指向的是当前类,因此要给num赋值使用语句this->num=num;完成

(2)主要考查考生对if语句的掌握,先看类的私有成员中关于closed的定义:bool closed;//true表示门关着。再看下一条语句:cout<<\\

简单应用题

2.请打开考生文件夹下的解决方案文件proj2,其中定义了Employee类和Manager类。Employee用于表示某公司的雇员,其属性包括姓名(name)和工作部分(dept)。Manager是Employee的公有派生类,用于表示雇员中的经理。除了姓名和工作部分之外,Manager的属性还包括级别(1evel)。Employee类的成员函数print用于输出雇员的信息;Manager类的成员函数print负责输出经理的信息。请在横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的正确输出结果应为:

Name:Sally Smith

Dept:Sales

Level:2

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

#include<iostream>

#include<string>

using namespace std;

class Employee{

public:

Employee(string name,string dept):

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

_______

{}

Virtual void print( )const;

string dept( )const//返回

部门名称

{

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

_______

}

virtual~Employee( ){}

private:

string name_;

string dept_;

},

class Manager:public Employee{

public:

Manager(string name,stringdept,int level):

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

_______

{}

virtual voidprint( )const;

private:

int level;

};

void Employee::print( )const

{

cout<<\\

(1)name_(name),dept_(dept)

(2)return dept_;

(3)Employee(name,dept),level_(level)

(4)Employee::print( );

解析:(1)主要考查考生对构造函数的掌握,这里使用成员列表初始化法对私有成员初始化。

(2)主要考查考生对成员函数的掌握,题目要求返回部门名称,因此这里是一条返回语句。函数要求返回的类型为string,因此直接返回dept_即可。

(3)主要考查考生对构造函数的掌握,因为Manager类是Employee类的派生类,因此它的构造函数要先对基类初始化,应使用成员列表初始化。

(4)主要考查考生对虚函数的掌握,因为Manager类是Employee类的派生类,因此它的print函数可以先调用基类的print函数,再输出自身要输出的数据,故为Employee::print( );。

综合应用题

3.请打开考生文件夹下的解决方案文件proj3,其中声明IntSet是一个用于表示正整数集合的类。IntSet的成员函数Intersection的功能是求当前集合与另一个集合的交集。请完成成员函数Intersection。在main函数中给出了一组测试数据,此时程序的输出应该是:

求交集前:

1 2 3 5 8 10

2 8 9 11 30 56 67

求交集后:

1 2 3 5 8 10

2 8 9 11 30 56 67

2 8

要求:

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

注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。

//IntSet.h

#include<iostream>

using namespace std;

const int Max=100;

C1ass IntSet

{

public:

IntSet( )

//构造一个空集合

{

end=-1;

)

IntSet(int a[ ],int size)/

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号