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

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

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

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

基本操作题

1.请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程中含有一个源程序文件proj1.cpp。其中位于每个注释“//ERROR**********found**********”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:

NUM=0

Value=1

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

//proj1.cpp

#incclude

using namespace std;

class MyClass{

int i;

friend VOid Increment

(MyClass& f);

public:

const int NUN;

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

MyClass(int i=0){NUN=0;

i=i;

}

int GetValue()const{return

i; }

};

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

void Increment(){f.i++;}

int main()

{

NyClass obj;

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

NyClass::Increment(obj);

cout<<\\

(1)MyClass(int i=0):NUM(0){

(2)void Increment(MyClass&f){f._i++;}

(3)Increment(obj);

解析:(1)主要考查考生对常量数据成员初始化方法的掌握,常量数据成员的初始化只能通过构造函数的成员初始化列表进行,并且要使用关键字const修饰。该题的前一条语句const int NUM;,说明NUM是常量数据成员。

(2)主要考查考生对友元函数的掌握,友元函数的定义与声明要一致,先看该友元函数的声明部分:friend void Increment(MyClass&f);,返回类型为void,函数参数为MyClass&f;再比较出错的语句:void Increment(){f._i++;},错误在于该函数没有参数,应把MyClass&f填在括号内。

(3)主要考查友元函数的调用,友元函数并不属于类,因此调用友元函数时不需要添加类名及作用域,只需要像调用普通函数一样即可。

简单应用题

2.请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中含有一个源程序文件proj2.cpp。其中定义了类Set和用于测试该类的主函数main。类Set是一个用于描述字符集合的类,在该字符集合中,元素不能重复(将“a”和“A”视为不同元素),元素最大个数为100。为该类实现一个构造函数Set(char*s),它用一个字符串来构造一个集合对象,当字符串中出现重复字符时,只放人一个字符。此外,还要为该类实现另一个成员函数InSet(char C),用于测试一个字符c是否在一个集合中,若在,则返回true;否则返回false。

构造函数Set和成员函数InSet的部分实现代码已在文件proj2.cpp中给出,请在标有注释“//TODO:”的行中添加适当的代码,将这两个函数补充完整,以实现其功能。

提示:在实现构造函数时,可以调用InSet函数来判断一个字符是否已经在集合中。

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

//proj2.cpp

#include

using namespace std;

const int MAXNUM=100;

class Set{

private:

int num; //元素个数

char setdata[MAXNUM]; //字符数组,用于存储集合元素

public:

Set(char *s); //构造函数,用字符串S构造一个集合对象

Bool InSet(char C);

//判断一个字符c是否在集合中,若在,返回true,否则返回false

void Print()const; //输出集合中所有元素

};

Set::Set(char*s)

{

num=0;

while(*s){

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

if(________)//TODO:添加代码,测试元素在集合中不存在

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

________;//TODO:添加一条语句,加入元素至集合中

s++;

}

}

bool Set::InSet(char c)

{

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

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

if(_________) //TODO:添加代码,测试元素C是否与集合中某元素相同

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

________; //TODO:添加一条语句,进行相应处理

return false;

}

void Set::Print()const

{

cout<<\\

(1)!InSet(*s)

(2)setdata[num++]=*s

(3)c==setdata[i]

(4)return true

解析:(1)主要考查考生对成员函数的掌握,题目要求:添加代码,测试元素在集合中不存在,由类的定义可知函数bool InSet(char c)可以测试字符c是否在集合中,因此这里直接调用函数bool InSet(char c)即可。

(2)题目要求:添加一条语句,加入元素至集合中,集合用数组setdata表示,直接把元素添加到数组中即可。

(3)主要考查考生对if语句的掌握,题目要求:测试元素c是否与集合中某元素相同。前一条语句是个for循环,利用下标i遍历整个集合,通过if语句中的判断条件判断c是否在集合中,用“==”判断。

(4)主要考查考生对成员函数的掌握,先看函数的注释:判断一个字符c是否在集合中,若在,返回true,否则返回false。if语句成立时,说明字符c存在于集合中,因此应该返回true c。

综合应用题

3.请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中包含了类IntegerSet和主函数main的定义。一个IntegerSet对象就是一个整数的集合,其中包含0个或多个无重复的整数;为了便于进行集合操作,这些整数按升序存放在成员数组elem的前若干单元中。成员函数add的作用是将一

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号