[计算机类试卷]国家二级C++机试(操作题)模拟试卷476及答案与解析.doc

上传人:Iclinic170 文档编号:497572 上传时间:2018-11-28 格式:DOC 页数:8 大小:37.50KB
下载 相关 举报
[计算机类试卷]国家二级C++机试(操作题)模拟试卷476及答案与解析.doc_第1页
第1页 / 共8页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷476及答案与解析.doc_第2页
第2页 / 共8页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷476及答案与解析.doc_第3页
第3页 / 共8页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷476及答案与解析.doc_第4页
第4页 / 共8页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷476及答案与解析.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、国家二级 C+机试(操作题)模拟试卷 476及答案与解析 一、基本操作题 1 请使用 VC6或使用【答题】菜单打开考生文件夹 progl下的工程 progl。此工程中包含程序文件 main cpp,其中有类 Score(“成绩 ”)和主函数 main的定义。程序中位于每个 “ ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: 学号: 12345678课程:英语总评成绩: 85 注意:只修改每个 “ ERROR*found*”下的一行,不要改动程 序中的其他内容。 #include using namespace std; class Score publi

2、c: Score(const char *the_course, const char * the_id, int the_normal, int the_midterm, int the_end of term) : course(the course), normal(the_normal), midterm(the midterm), end_of_term(the end_of_term) ERROR*found* strcpy(the_id, student_id); const char*getCourse()constreturn course; )返回课程名称 ERROR*fo

3、und* const char*getTD()constreturn&student id; 返回学号 int getNormal()constreturn normal; 返回平时成绩 int getMidterm()const return midterm; 返回期中考试成绩 int getEndOfTerm()constreturn end of term; 返回期末考试成绩 int getFinal()const;返回总评成绩 private: const char*course; 课程名称 char student id12;学号 int normal; 平时成绩 int midte

4、rm; 期中考试成绩 int end of term; 期末考试成绩 ; 总评成绩中平时成绩占 20,期中考试占 30,期末考试占 50,最后结果四舍五入为一个整数 ERROR*found* int getFinal()const return noEmal*0 2+midterm*0 3+end_of_term*0 5+0 5; int main() char English=“英语 “; Score score(English, “12345678“, 68, 83, 92), cout: using namespace std; class Base public: Base(int m

5、1, int m2) meta1=m1; mem2=m2; int sum()return mem1+mem2; private: int mem1, mem2;基类的数据成员 ; 派生类 Derived从基类 Base公有继承 *found* class Derired: public: 构造函数声明 Derived(int m1, int m2, int m3); sum函数定义,要求返回 mem1、 mem2和 mem3之和 *found* int sum() return_+mem3; private: int mere3; 派生类本身的数据成员 ; 构造函数的类外定义,要求由 m1和

6、 m2分别初始化 meta1和 mem2。由 m3初始化 mere3 *found* _Derived(int m1, int m2, int m3): *found* _, mem3(m3) int main() Base a(4, 6); Derived b(10, 15, 20); int sum=a sum()+b sum(); cout #include using namespace std; class MiniString public: friend ostream&operator( istream&input, MiniString&s) 重载流提取运算符 char te

7、mp100;用于输入的临时数细 temp0= 0;初始为空字符串 inputsetw(100)temp; int inLen=strlen(temp); 输入字符串长度 if(inLen!=0) s length=inLen;赋长度 if(s sPtr!=0)deletes sPtr;避免内存泄漏 s sPtr=new chars length+1; strcpy(s sPtr, temp); 如果 s不是空指针,则复制内容 else s sPtr0= 0; 如果 s是空指针,则为空字符串 return input; void modString(const char*string2)更改字符

8、串内容 if(string2 !=0) 如果 string2不是空指针,则复制内容 if(strlen(string2)!=length) length=strlen(string2); deletesPtr; sptr=new charlength+1;分配内存 strcpy(sPtr, string2); else sPtr0= 0; 如果 string2是空指针,则为空字符串 MiniString& operator = ( const MiniString&otherString); MiniString(const char * s=“): length(s!=0)?strlen(s

9、): 0) 构造函数 SPtr=0; if(length!=0) setString(s); MiniString()析构函数 deletesPtr; private: int length; 字符串长度 char*sPtr; 指向字符串起始位置 void setString(const char*string2)辅助函数 sptr=new charstrlen(string2)+1;分配内存 if(string2 !=0)strcpy(sPtr, string2); 如果 string2不是空指针,则复制内容 else sPtr0= 0; 如果 string2是空指针,则为空字符串 ; pr

10、oj3 cpp #include #include using namespace std; #include“proj3 h“ MiniString&MiniString: operator =(const MiniString&otherString) 重载赋值运算符函数。提示:可以调用辅助函数 setString *333* *666* int main() MiniString strl(“Hello!“), str2; void writeToFile(const char*); str2=strl;使用重载的赋值运算符 str2 modString(“Happy newyear!“

11、); coutstrl n; coutstr2 n; writeToFile(“); return 0; 国家二级 C+机试(操作题)模拟试卷 476答案与解析 一、基本操作题 1 【正确答案】 (1)strcpy(student_id, the_id); (2)const char*getID()constreturn studentjd; (3)int Score: getFinal()const 【试题解析】 (1)主要考查考生对 strcpy()函数的掌握情况, strcpy(参数一,参数二 )函数的功能是将参数二的字符串复制给参数一,因此在这里 student_id应该位于参数一的位

12、置,即 strcpy(student_id, the_id);。 (2)主要考查考生对函数返回值的掌握情况,根据注释:返回学号可知学号应该由一个字符串组成。再看函数要返回的类型: const char*,可知要返回一个 char型指针,也就 是一个 char型数组,而 &student_jd是一个 char型数组指针,因此直接写 student_jd即可。 (3)主要考查考生对类的成员函数的掌握情况,因为 getFinal函数是 Score类的成员函数,所以在定义时要加上类名和作用域符,即 Score:。 二、简单应用题 2 【正确答案】 (1)public Base (2)Base: sum

13、() (3)Dertved: (4)Base(m1, m2) 【试题解析】 (1)主要考查考生对公有继承的掌握情况,根据题目要求:派生 类Derived从基类 Base公有继承,因此这里使用 public来公有继承。 (2)主要考查考生对成员函数的掌握情况,根据题目对 sum函数的要求: sum函数定义,要求返回 mem1、 mem2和 mem3之和,因此这里直接调用基类的 sum函数,再加上 mem3就满足题目要求。 (3)主要考查考生对构造函数的掌握情况,由于 Derived的构造函数在类外定义,因此要加上类名和作用域符,即 Derived:。 (4)主要考查考生对构造函数的掌握情况,因为

14、 Derived是 Base类的派生类,所以其构 造函数要使用成员列表初始化先给 Base初始化。 三、综合应用题 3 【正确答案】 length=otherStrlng length; 把对象字符串 otherstring的长度赋值给变量 length setString(otherString sPtr); 调用函数 setstrinq,实现给类变量 sptr分配空间,以及逐个把对象 other string字符串的值复制到 sptr中 return*this; 返回被赋值的对象 【试题解析】 主要考查考生对运算符重载的掌握,题目要求重载赋值 运算符函数。要重载的运算符是 “=”,即赋值的意思。提示:可以调用辅助函数 setString。该函数的功能是复制形参的字符串到 sPtr中,因此,首先复制 length,其次通过函数 setString复制 sPtr,最后按要求返回 *this;。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1