国家二级C++机试(操作题)模拟试卷637
基本操作题
1.请打开考生文件夹下的解决方案文件proj1,其中在编辑窗口内显示的主程序文件中定义有类AAA和主函数main。程序文本中位于每行“//ERROR ****found****”下面的一行有错误,请加以改正。改正后程序的输出结果应该是:
8am=60
注意:只修改每个“//ERROR ****found****”下面的一行,不要改动程序中的其他任何内容。
#include<iostream>
using Ftamespace std;
class AAA{
int a[10];int n;
//ERROR *******found*******
private:
AAA(int aa[],int nn):n(nn){
//ERROR *******ound*******
for(int i=0;i<n;i++)aa[i]=a[i];
}
int Geta(int i) {return a[i];}
};
int main(){
int a[6]={2,5,8,1 0,15,2 0};
AAA x(a,6);
int sum=0;
//ERROR *******found*******
for(int i=0;i<6;i++)
sum+=x.a[i];
cout<<\\
(1)publk::
(2)for(int i=0;i<n;i++)a[i]=aa[i];
(3)for(int i=0;i<6;i++)sum+=x.Geta(i);
解析:(1)构造函数肯定是公有成员,所以应使用public。
(2)主要考查考生对赋值语句的掌握,因为数组a是私有成员,因此a应该在左边,而数组aa是形参,要赋值给数组a。
(3)主要考查考生对成员函数调用的掌握,数组a是类的私有成员,因此不能被main函数直接调用,要通过成员函数Geta来调用数组a。
简单应用题
2.请打开考生文件夹下的解决方案文件proj2,其中定义了Employee类和Manager类。Emp]oyee用于表示某公司的雇员,其属性包括姓名(name)和工作部分(dept)。Manager是Employee的公有派生类,用于表示雇员中的经理。除了姓名和工作部分之外,Manager的属性还包括级别(level)。Employee类的成员函数print用于输出雇员的信息;Manager类的成员函数print负责输出经理的信息。请在横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的正确输出结果应为:
Name:Sally Smith
Dept:Sales
Level:2
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
#include<iostream>
#include<string>
using namespace std;
class Employee{
public:
Employee(string name,string dept):
//**********found**********
_________
{ }
virtual void print()const;
string dept()const //返回部门名称
{
//**********found**********
_____________
}
virtual ~Employee() {}
private:
string name_;
string dept_;
};
class Nanager:public Employee{
public:
Manager(siring name,string dept,int level):
//********** found **********
_______________
{}
virtual void print()const;
private:
int level_;
};
void Employee::print()const
{
cout <<\\
(1)name_(name),dept_(dept)
(2)return dept_;
(3)Employee(name,dept),level_(Ievel)
(4)Employee::print();
解析:(1)主要考查考生对构造函数的掌握,这里使用成员列表初始化法对私有成员初始化。
(2)主要考查考生对成员函数的掌握,题目要求返回部门名称,因此这里是一条返回语句。函数要求返回的类型为string,因此直接返回dept_即可。
(3)主要考查考生对构造函数的掌握,因为Manager类是Employee类的派生类,因此它的构造函数要先对基类初始化,应使用成员列表初始化。
(4)主要考查考生对虚函数的掌握,因为Manager类是Employee类的派生类,因此它的print函数可以先调用基类的print函数,再输出自身要输出的数据,故为Employee::print();。
综合应用题
3.请打开考生文件夹下的解决方案文件proj3,此工程包含一个源程序文件proj3.cpp,其功能是从文本文件in.dat中读取全部整数,将整数序列存放到intArray类的对象myArray中,然后对整数序列按非递减排序,最后由函数writeToFile选择序列中的部分数据输出到文件out.dat中。文件in.dat中的整数个数不大于300个。
要求:
补充编制的内容写在“//*********333**********”与“//********666********”两行之间。实现对整数序列按非递减排序,并将排序结果在屏幕上输出。不得修改程序的其他部分。
注意:程序最后已将结果输出到文件out.dat中。输出函数writeToFile已经给出并且调用。
//proj 3.cpp
#include<iostream>
#include<fstream>
#include<cstring>
using namespace std;
本文档预览:3600字符,共5559字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载