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

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

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

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

基本操作题

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

X=a

Y=42

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

#include<iostream>

using namespace std;

class Foo{

public:

Foo(char x){x_=x;}

char getX( )const{return x_}

public:

static int y_;

private:

char x_;

};

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

int;Foo.y_=42;

int main(int argo,char*argV[ ])

{

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

Foo f;

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

tout:<<\\

(1)int Foo::y_=42;

(2)Foo f(’a’);

(3)cout<<\\

解析:(1)主要考查考生对静态成员的掌握,因为静态整型变量y_是Foo类的公有成员,所以给y_赋值时要加上“Foo::”,即int Foo::y_=42;。

(2)主要考查考生对构造函数的掌握,题目要求程序输出:

X=a

Y=42

可以知道,在给Foo类的f声明时要同时初始化为字符a,即语句Foo f(’a’);。

(3)主要考查考生对成员函数的掌握,因为x是类Foo的私有成员,所以不能在main函数中直接调用,要通过公有成员函数getX( )调用。

简单应用题

2.请打开考生文件夹下的解决方案文件proj2,此工程中声明的Array是一个表示数组的类。一个Array对象可以包含多个整型元素。Array的成员说明如下:

成员函数add用于向数组的末尾添加一个元素;

成员函数get用于获取数组中指定位置的元素;

数据成员a表示实际用于存储数据的整型数组;

数据成员size表示数组的容量,数组中的元素个数最多不能超过size;

数据成员num表示当前数组中的元素个数。

SortedArray是A11ray的派生类,表示有序数组。SortedArray重新定义了Array中的add函数,以确保有序数组中的元素始终按照升序排列。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的正确输出结果应为:

10,9,8,7,6,5,4,3,2,1,

1,2,3,4,5,6,7,8,9,10,

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

#include<iostream>

using namespace std;

class Array{

public:

Array(unsigned int s)

{

Size=s;

num=0;

a=new int[s];

}

virtual ~Array( ){delete[ ]a;}

virtual void add(int e)

{

if(num<Size){

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

_______

num++;

}

}

int get(unsigned int i)const

{

if(i<size)

return a[i];

return0;

}

protected;

int*a;

unsigned int Size,num;

};

class SortedArray:public Array{public:

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

SortedArray(unsigned int s)

:_______{}

virtual void add(int e)

{

if(num>=size)

return;

int i=0,j;

while(i<num){

if(e<a[i]){

for(j=num;j>i;j–)

{

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

_______;

}

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

_______;

break;

}

i++;

}

if(i==num)

a[i]=e;

num++;

}

};

void fun(Array&a)

{

int i;

for(i=10;i>=1;i–){

a.add(i);

}

for(i=0;i<10;i++){

cout<<a.get(i)<<\\

(1)a[Bum]=e;

(2)Array(S)

(3)a[j]=a[j-1]

(4)a[i]=e

解析:(1)考查的是虚函数virtual void add(inte)的定义,即添加一个整型数e到a[num]中。

(2)主要考查的是Array类的派生类SortedArray类的构造函数的定义,定义之前要对基础类初始化。

(3)因为SortedArray类是排序类,所以数组a中的元素要从小到大排序。在if(e<a[i])条件下,要把i后的元素逐个往后移一位,因此此处为a[j]=a[j-1]。

(4)主要考查虚函数virtual void add(int e)在派生类SortedArray类中的定义,把插入的数据放在数组a的第i+1个位置,即a[i]=e;。

综合应用题

3.请打开考生文件夹下的解决方案文件proj3,其中定义的Matrix是一个用于表示矩阵的类。成员函数max_value的功能是求出所有矩阵元素中的最大值。例如,若有3×3矩阵

int temp=0;//定义整数变量temp,并赋值为零

for(int i=0;i<M;i++)//遍历矩阵的行

for(int j=0;j<N;j++)//遍历短阵的列

if(temp<arra

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号