国家二级C++机试(操作题)模拟试卷687
基本操作题
1.请打开考生文件夹下的解决方案文件proj1,其中包含类MyClass的定义。程序中位于每个// ERROR****found****下一行的语句有错误,请加以更正。更正后程序的输出结果应该是:
The value is 5
The value is 10
注意:只修改每个// ERROR****found****下的那一行,不要改动程序中的其他内容。
#include <iostream>
using namespace std;
class MyClass {
public:
// ERROR **********found**********
void MyClass() {value = 0; }
// ERROR **********found**********
void setValue(int val) const
{
value = val;
}
int getValue() const {return value; }
private:
// ERROR **********found**********
int value = 0;
};
int main()
{
MyClass obj;
obj.setValue(5);
cout << \\
(1)MyClass(){value =0;}
(2)void setValue(int val)
(3)int value;
解析:(1)主要考查考生对构造函数的掌握,构造函数前不能添加任何返回类型。
(2)主要考查考生对const的掌握,由函数中value = va1;语句,可知成员的值发生改变,因此不能用const。
(3)主要考查考生对私有成员的掌握,私有成员只能声明,不能赋初始值。
简单应用题
2.请打开考生文件夹下的解决方案文件proj2,其中定义了vehicle类,并派生出motorcar类和bicycle类。然后以motorcar和bicycle作为基类,再派生出motocycle类。要求将vehicle作为虚基类,避免二义性问题。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
A vehicle is running!
A vehicle has stopped!
A bicycle is running!
A bicycle has stopped!
A motorcar is running!
A motocycle is running!
注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动\\
(1)virtual void
(2)virtual void
(3)vehicle(max_speed, weight), SeatNum(seat_num)
(4)public bicycle, public motorcar
解析:(1)和(2)主要考查考生对虚函数的掌握,虚函数使用virtual定义。
(3)主要考查考生对构造函数的掌握,使用成员列表初始化。
(4)主要考查考生对派生类的掌握,派生类继承基类时要表明继承方式,公有继承为public,多个继承时要使用\\
综合应用题
3.请打开考生文件夹下的解决方案文件proj3,其中定义的IntArray是一个用于表示整型一维数组的类。成员函数swap可以将数组中的两个指定元素交换位置;成员函数sort的功能是将数组元素按照升序排序。请编写成员函数sort。在main函数中给出了一组测试数据,此时程序运行中应显示:
读取输入文件...
—排序前—
a1=3 1 2
a2=5 2 7 4 1 6 3
—排序后—
a1=1 2 3
a2=1 2 3 4 5 6 7
要求:
补充编制的内容写在//********333********与//********666********之间,不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。
//IntArray.h
#include <iostream>
#include <string.h>
using namespace std;
class IntArray {
public:
IntArray(unsigned int n)
{
size = n;
data = new int[size];
}
~IntArray() {delete [ ] data; }
int getSize() const {return size; }
int& operator[ ](unsigned int i) const {return data[i]; }
void swap(int i, int j)
{
int temp = data[i];
data[i] = data[j];
data[j] = temp;
}
void sort();
friend ostream& operator<< (ostream &os, const IntArray &array)
{
for (int i = 0; i < array.getSize(); i++)
os << array[i] << ’ ’;
return os;
}
private:
int *data;
unsigned int size;
};
void readFromFile(const char*, IntArray&);
void writeToFile(char *, IntArray &);
//main.cpp
#include <fstream>
#include \\
for (int i=0;i< size;i++)
for (intj=i+1;j< size;j++)
if (data[i]> data[j])
swap(i.j);
解析:主要考查考生对排序算法的掌握,sort函数的功能是将数组元素按照从小到大的顺序排序。使用for循环遍历数组元素,变量i和j代表数组元素下标,将数组元素i和j进行比较,顺序不对就调用swap函数交换元素。
本文档预览:3600字符,共3505字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载