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

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

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

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

基本操作题

1.请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,该工程中包含程序文件main.cpp,其中有类Clock(“时钟”)的定义和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:

Initial times are

0 d:0 h:0 m:59 s

After one second times are

0 d:0 h:1 m:0 s

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

#include

using namespace std;

class Clock

{

public:

Clock(unsigned long i=0);

void set(unsigned long i=0);

void print()const;

void tick(); //时间前进一秒

Clock operator++();

private:

unsigned long total_sec,seconds fminutes,hours,days;

};

Clock::Clock(unsigned long i)

:total sec(i),seconds(i%60),

minutes((i/60)%60),

hours((i/3 600)%24),

days(i/8 64 00){}

void Clock::set(unsigned long i)

{

total sec=i;

seconds=i%60;

minutes=(i/60)%60;

hours=(i/3 600)%60 ;

days=i/86400;

}

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

void Clock::print()

{

cout <<days << \\

(1)void Clock::print()const

(2)set(++total_sec);

(3)return*this;

解析:(1)主要考查考生对成员函数的掌握,由Clock类中对函数print的声明void print()const;可知,在定义print函数时少了const。

(2)主要考查考生对++操作的掌握,根据函数要求,时间要先前进一秒,再调用函数set,因此total_sec++应改为++total_sec。

(3)主要考查考生对this指针的掌握,函数要求返回值Clock,即返回一个类,而不是指针,因此使用*this。

简单应用题

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

Stack是一个用于表示数据结构“栈”的类,栈中的元素是字符型数据。Stack为抽象类,它只定义了栈的用户接口,如下所示:

公有成员函数功能

push 入栈:在栈顶位置添加一个元素

pop 退栈:取出并返回栈顶元素

ArrayStack是Stack的派生类,它实现了Stack定义的接口。ArrayStack内部使用动态分配的字符数组作为栈元素的存储空间。数据成员maxSize表示的是栈的最大容量,top用于记录栈顶的位置。成员函数push和pop分别实现具体的人栈和退栈操作。

请在程序中的横线处填写适当的代码,然后删除横线,以实现上述功能。此程序的正确输出结果应为:

a,b,c

c,b,a

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

//proj2.cpp

#include

using namespace std;

class Stack{

public:

virtual void push(char c)=0;

virtual char pop()=0;

};

class ArrayStack:public Stack{

char*p;

int maxSize;

int top;

public:

ArrayStack(int s)

{

top=0;

maxSize=s ;

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

p=___________;

}

~ArrayStack()

{

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

__________;

}

void push(char c)

{

if(top==maxSize){

cerr<<\\

(1)new char[s]

(2)delete[]p

(3)p[top]=c

(4)return p[top]

解析:(1)主要考查的是ArrayStack类的构造函数,在函数中要为p申请s个char型空间,应使用语句p=new char[s];。

(2)主要考查析构函数,使用delete语句释放指针,即delete[]p;。

(3)主要考查push函数,top表示栈顶元素下标,添加的数据放到栈顶,因此使用语句p[top]=c;。

(4)主要考查pop函数,输出栈顶数据,top表示栈顶元素下标,因此使用语句return p[top];。

综合应用题

3.请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件proj3,其中该工程中包含定义了用于表示姓名的抽象类Name、表示“先名后姓”的姓名类Name1(名、姓之间用空格隔开)和表示“先姓后名”的姓名类Name2(姓、名之间用逗号隔开);程序应当显示:

John Smith

Smith,John

但程序中有缺失部分,请按照以下提示,把缺失部分补充完整:

(1)在“//**1** ****found****”的下方是函数show中的一个语句,它按先名后姓的格式输出姓名。

(2)在“//**2** ****found****”的下方是函数getWord中的一个语句,它把一个字符序列复制到head所指向的字符空间中,复制从start所指向的字符开始,共复制end-start个字符。

(3)在“//**3** ****found****”的下方是函数createName中的语句,它根据指针P的值决定返回何种对象:如果P为空,直

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号