1、国家二级 C+机试(操作题)模拟试卷 303及答案与解析 一、基本操作题 1 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 proj1,其中在编辑窗口内显示的主程序文件中定义有类 AAA和主函数 main。程序文本中位于每行 “ ERROR *found*”下面的一行有错误,请加以改正。改正后程序的输出结果应该是: *found*”下面的一行有错误,请加以改正。改正后程序的输出结果应该是: sum 60 注意:只修改每个 “ ERROR *found*”下面的一行,不要改动程序中的其他任何内容。 #include iostream using namespace std;
2、 class AAA int a10; int n; ERROR *found* private: AAA(int aa, int nn): n(nn) ERROR *found* for(int i 0, i n, i )aai ai; int Geta(int i) return ai; ; int main() int a6 2, 5, 8, 10, 15, 20; AAA x(a, 6; int sum 0; ERROR *found* for(int i 0; i 6; i ) sum x ai; cout “sum “ sum end1; return 0; 二、简单应用题 2 请
3、使用 VC6或使用【答题】菜单打开考生文件夹 proj2下的工程 proj2,该工程中含有一个源程序文件 proj2 cpp。其中定义了类 Set和用于测试该类的主函数main。类 Set是一个用于描述字符集合的类,在该字符集合中,元素不能重复 (将“a”和 “A”视为不同元素 ),元素最大个数为 100。为该类实现一个构造函数Set(char*s),它用一个字符串来构造一个集合对象,当字符串中出现重复字符时,只放入一个字符。此外,还要为该类实现另一个成员函数 InSet(char c),用于测试一个字符 c是否在一个集合中,若在,则返回 true;否则返回 false。 构造函数 Set和成
4、员函数 InSet的部分实现代码已在文件 proj2 cpp中给出,请在标有注释 “ TODO: ”的行中添加适当的代码,将这两个函数补充完整,以实现其功能。 提示:在实现构造函数时,可以调用 InSet函数来判断一个字符是否已经在集合中。 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动 “ *found*” proj2 cpp #include iostram using namespace std; const int MAXNUM 100; class set private: int num; 元素个数 char setdataNAXNUN; 字符数组,用于
5、存储集合元素 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* i
6、f(_) TODO:添加代码,测试元素 C是否与集合中某元 素相同 *found* _; TODO:添加一条语句,进行相应处理 return false; void Set Print()const cout “Set elements: “ end1; for(int i 0; i num; i ) cout setdatai “; cout end1; int main() char sMAXNUM; cin getline(s, MAXNUM 1); 从标准输入中读入一行 Set setobj(s); 构造对象 setobj setobj Print(); 显示对象 setobj中内容
7、return 0; 三、综合应用题 3 请使用 VC6或使用【答题】菜单打开考生文件夹 proj3下的工程 proj3,其中声明了 MiniComplex是一个用于表示复数的类。请编写这个 operator运算符函数,以实现复数的求和运算。两个复数的和是指这样一个复数 :其实部等于两个复数的实部之和,其虚部等于两个复数的虚部之和。例如, (23 34i) (56 35i)等于 (79 69i)。 要求: 补充编制的内容写在 “ *333*”与 “ *666*”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件 out dat中。输出函数 writeToFile已经编译为 obj文件
8、,并且在本程序中调用。 Minicomplex h #include iostream using namespace std; class MiniComplex复数类 public: 重载流插入和提取运算符 friend ostream&operator (ostream& osObj ect, const MiniComplex&complex) osObject “(“ complex realPart “ “ complex imagPart “i“ “)“; return osObject; friend istream&operator (istream&isObj ect, M
9、iniComplex&complex) char ch; isObj ect complex realPart ch complex imagPart ch; return isObj ect; MiniComplex(double real 0, double imag 0);构造函数 MiniComplex operator (const MiniComplex&otherComplex)const;重载运算符 private: double realPart;存储实部变量 double imagPart;存储虚部变量 ; void writeToFile(char*); main cpp
10、 #include“MiniComplex h“ MiniComplex MiniComplex(double real, double imag)realPart real; imagPartimag; MiniComplex MiniComplex operator (const MiniComplex&otherComplex)const *333* *666* int main() void writeToFile(char * ); MiniComplex numl(23, 34), num2(56, 35); cout “Initial Value of Numl “ num1 “
11、 nInitial Value of Num2 “num2 end1; cout num1 “ “ num2 “ “ num1 num2 end1;使用重栽的加号运算符 writeToFile(“); return 0; 国家二级 C+机试(操作题)模拟试卷 303答案与解析 一、基本操作题 1 【正确答案】 (1)public: (2)for(int i 0; i n; i )ai aai; (3)for(int i 0; i 6; i )sum x Geta(i); 二、简单应用 题 2 【正确答案】 (1)!InSet(*s) (2)setdatanum *s (3)e setdatai
12、 (4)return true 【试题解析】 (1)主要考查考生对成员函数的掌握,题目要求:添加代码,测试元素在集合中不存在,由类的定义可知函数 bool InSet(char C)可以测试字符 c是否在集合中,因此这里直接调用函数 bool InSet(char c)即可。 (2)题目要求:添加一条语句,加入元素至集合中,集合用数组 setdata表 示,直接把元素添加到数组中即可。 (3)主要考查考生对 if语句的掌握,题目要求:测试元素 c是否与集合中某元素相同。前一条语句是个 for循环,利用下标 i遍历整个集合,通过 if语句中的判断条件判断 c是否在集合中,用 “ ”判断。 (4)
13、主要考查考生对成员函数的掌握,先看函数的注释:判断一个字符 C是否在集合中,若在,返回 true,否则返回 false。 if语句成立时,说明字符 c存在于集合中,因此应该返回 true。 三、综合应用题 3 【正确答案】 MiniComplex sum;定义复数对 象 sum sum imagPart this imagPart otherComplex imagPart; 把 this中的虚部 (this imagPart)和 othercomplex虚部相加赋值给 Sum虚部 sum realPart this realPart otherComplex realPart; 把 this中的实部 (this reapart)加上 othercomplex实部赋值给 Sum实部 return sum; 返回对象 Sum 【试题解析】 主要考查考生对运算符重 载的掌握,题目要求编写 operater运算符函数,以实现复数的求和与运算。复数的和的实部等于两个复数的实部之和,虚部等于两个复数的虚部之和。函数要返回的类型是 MiniComplex,因此要先定义一个 MiniComplex类型变量 sum,然后对它们的实部和虚部各自求和,返回sum即可。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1