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

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

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

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

基本操作题

1.请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,其中有枚举DOGCOLOR、狗类Dog和主函数main的定义。程序中位于每个“//ERROR****found****”下的语句行有错误,请加以改正。改正后程序的输出结果应该是:

There is a white dog named Hoho.

There is a black dog Named Haha.

There is a motley dog named Hihi.

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

#include

using namespace std;

//狗的颜色:黑、白、黄、褐、花、其他

enum DOGCOLOR{BLACK, WHITE,YELLOW,BROWN,PIEBALD,OTHER};

class Dog {//狗类

DOGCOLOR color;

char name[20];

static int count;

public:

Dog(char name[],DOGCOLOR

color){

strcpy(this->name,name);

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

strcpy(this->color,color);

}

DOGCOLOR getColor()const{return color;}

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

const char* get;Name()

const{return*name;}

const char* getColor String()const{

switch(color){

case BLACK:return\\

(1)this->color=color;

(2)const char getName()const{return*name;}

(3)Dog dogl(\\

解析:(1)主要考查考生对strcpy函数的掌握,如果看到上一条语句strcpy(this->name,name);,就以为本条语句也要用strcpy函数来赋值,这是错误的。Strcpy函数只能复制字符串,根据类的私有成员声明可知,color是DOGCOLOR型的,这里直接使用赋值语句“=”即可。

(2)主要考查考生对函数返回值的掌握,先解读语句const char*getName()const{return*name;},要返回的是一个const的字符指针,同时函数内的值不能改变,name在类的私有成员声明中是个字符数组,*name代表字符数组而不是字符指针,问题就出来了,需要修改返回类型:const char getName()const{return*name;}。

(3)语法错误,定义变量时,变量之间应使用“,”分开。

简单应用题

2.请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,此工程包含有一个源程序文件proj2.cpp。其中定义了Base1类、Base2类和Derived类。

Bausel是一个抽象类,其类体中声明了纯虚函数Show。Base2类的构造函数负责动态分配一个字符数组,并将形参指向的字符串复制到该数组中,复制功能要求通过调用strcpy函数来实现。Derived类以公有继承方式继承Base1类,以私有继承方式继承Base2类。在Derived类的构造函数的成员初始化列表中调用Base类的构造函数。

请在程序中的横线处填写适当的代码,然后删除横线,以完成Base1、Base2和Derived类的功能。此程序的正确输出结果应为:

I’m a derived class.

注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。

//proj2.cpp

#include

#include

using namespace std;

class Base1 {

public:

//*********found********* 下列语句需要声明纯虚函数Show________;

};

class Base2{

protected:

char*_p,

Base2(const char*s)

{

p=new char[strlen(s)+1];

//*********found********* 下列语句将形参指向的字符串常量复制到该类的字符数组中_________;

}

~Base2(){delete[]_p;}

};

//*********found********* Derived类公有继承Base1,私有继承Base2类

class Derived:________{

public:

//*********found********* 以下构造函数调用Base2类构造函数

Derived(const char *s):__________

{ }

void Show()

{cout<<_p<<endl;}

};

int main()

{

Base1*pb=new Derived (\\

(1)vinual void Show()=0

(2)strcpy(_p,s)

(3)public Base1,private Base2

(4)Base2(s)

解析:(1)主要考查的是纯虚函数的定义。题目要求声明纯虚函数Show,因此首先看Base1类的派生类Deftred类中Show函数的定义:

void Show()

{cout<<_p<<endl;}

这时就可以得出答案了,只要在void前加上virtual,在()后加上=0;,再把函数体去掉就可以了,即virtual void Show()=0;。特别注意纯虚函数和虚函数的区别,虚函数不能添加=0。

(2)主要考查的是字符串赋值语句,题目要求将形参指向的字符串常量复制到该类的字符数组中。即把s复制给_p,直接使用语句strcpy(_p,s);就可以了,strcpy为系统提供的字符串复制函数。

(3)主要考查的是派生类的声明。题目要求Derired类公有继承Base1,私有继承Base2类。公有继承使用public,保护继承使用protected,私有继承使用private。如果一个类同时继承多个基类时,各个基类之间用“,”分开。

(4)主要考查的是派生类的构造函数,定义派生类的构造函数时要使用成员列表对基类初始化。基类一:Base1类,没有构造函数,不需要使用参数。基类二:Base2类,有构造函

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号