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

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

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

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

基本操作题

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

The value is10

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

//proj1.cpp

#include<iostream>

using namespace std;

class MyClasS{

int value;

public:

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

void MyClasS(int val):value(val){}

int GetValue( )const{returnvalue;}

void SetValue(int val);

};

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

inline void SetValue(int val)

{value=val;}

int main( )

{

MyClass obj(0);

obj.SetValue(10);

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

下列语句功能是输出obj的成员value的值

cout<<\\

(1)MyClass(int val):value(val){}

(2)void MyClass::SetVlue(int val){value=val;}

(3)cout<<\\

解析:(1)考查构造函数,定义构造函数时不能使用void,直接使用MyClass(int val)即可。

(2)主要考查成员函数定义,类的成员函数定义时要使用前缀MyClass,而inline是内联函数的关键字,在此是错误的,应该删掉inline并在函数名前加上前缀MyClass,即void MyClass::SetVMue(int val){value=val;}。

(3)考查成员函数调用,value是私有成员,在主函数中不能直接调用value,可以使用成员函数GetValue( )来得到value的值。

简单应用题

2.请打开考生文件夹下的解决方案文件proj2,其中有向量基类VectorBase、向量类Vector和零向量类ZeroVector的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。该程序正确输出结果应为:

(1,2,3,4,5)

(0,0,0,0,0,0)

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

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

#include<iostream>

using namespace std;

class VectorBase{//向量基类,一个抽象类

int len;

public:

VectorBase(int len):len(len){}

int length( )const{returnlen;}

//向量长度,即向量中元素的个数

virtual double getElement(inti)const=0;//取第i个元素的值

virtual double sum( )const=

0;//求所有元素和

void show( )const{//显示向量中所有元素

cout<<\\

(1)getElement(length( )-1)

(2)delete[ ]val

(3)s+=val[i]

(4)return0.0;

解析:(1)主要考查考生对成员函数的掌握,题目要求显示最后一个元素。前面有纯虚函数virtual double getElement(int i)const=0,因此可以直接调用getElement函数来取得最后一个元素,注意最后一个元素位置是Length( )-1而不是Length( )。

(2)主要考查考生对析构函数的掌握,前面定义了类的私有成员*val,因此析构函数要释放val,使用delete语句完成。

(3)主要考查考生对for循环的掌握,由函数名double sum( )const可知,该函数要求元素之和,for循环语句的作用是遍历整个数组,在此使用语句s+=val[i]完成程序。

(4)主要考查考生对成员函数的掌握,由该类的注释:零向量类,可以了解到该类的元素都为零,因此无论要取第几个元素都返回0,由于数据类型为double,所以为return0.0。

综合应用题

3.请打开考生文件夹下的解决方案文件proj3,其中使用友元函数访问类的私有数据成员,求出两个数据成员的大于1的最小公因子。请编写友员函数FnFun,使其输出结果为:

Common denominator is2

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

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

//proj3.h

class FriFunClass

{

int a,b;

public:

FriFunClass(int i,int j){a=i;b=j;}

friend int FriFun(FriFunClass x);//友元函数

},

void writeToFile(const char*);

//proj3.cpp

#include<iostream>

using namespace std;

#include\\

int min=x.a<x.b?x.a:x.b;//此处为取出x.a与x.b中的最小值

for(int i=2;i<=min;i++)//从i到min遍历数组

if(x.a%i==0&&x.b%i==0)

//如i能同时整除x.a来的x.b,则仅回i

return i;

return-1;

解析:主要考查考生对友元函数的掌握情况,友元函数可以访问类的私有数据成员,题目要求函数求出两个数据成员的大于1的最小公因子,从2开始往上算,因此要同时可以被两个私有成员整除,这里用取余符号完成,取余为0即为整除。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号