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

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

1、国家二级 C+机试(操作题)模拟试卷 247及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modi1 cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: init TestClass del TestClass 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include iostream h class TeStClass *error* *error* int TestClass()cout “init TestClass“ endl; ; *error* void

2、 TestClass()cout “del TestClass“ endl; ; ; void main() TestClass obj; return; 二、简单应用题 2 使用 VC6打开考生文件夹下的源程序文件 modi2 cpp。阅读下列函数说明和代码,完成空出部分程 序。该程序从键盘读入整数,并按从大到小的顺序输出输入整数中互不相等的那些整数。程序一边读入整数,一边构造一个以大到小顺序链接的链表,直至输入 0时结束。然后顺序输出链表上各表元的整数值。主函数每读入一个整数,就调用函数 fun(),函数 fun()将还未出现在链表上的整数按从大到小的顺序插入到链表中。为了插入方便,链表在

3、表首有一个辅助表元。 注意:不能修改程序的其他部分,只能修改 fun()函数。 #include iostream class NODE public: int data; NODE *next; ; void fun(NODE *list, int x) void main() int x; NODE *head, *p; *首先建立只有辅助袁元的空链表 * head=new NODE; head- next=NULL; std: cout “Enter integers, end with0“ std: endl; while(1) std: cin x; if(x=0) break; f

4、un(head, x), for(p=head- next; p!=NULL; p=p- next; std: cout p- data ; std: cout Std: endl; do p=head- next; delete head; head=p; )while(p); 三、综合应用题 3 使用 VC6打开考生文件夹下的源程序文件 modi3 cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 其中:定义了类 circle和 column, column类由 circle类 protected派生,但是两个类的定义并不完整,请按照以下的要求,将程 序补充完整。 (

5、1)定义类 circle的保护数据成员函数 r和 area,它们都是 double型的数据,请在注释 *1*后完成。 (2)添加类 circle的无参数的构造函数,使得类 circle对象的 r默认值为 0,请在注释 *2*后完成。 (3)添加派生类 column的构造函数的定义,使得参数为 double型的 height和 radius并将其分别赋给数据成员 h和基类的 r请在注释 *3*之后完成。 (4)完成派生类 column的成员函数 print()的定义,请在注释 *4*之后完成,使得输出为: radius=5 area=78 54 height=10 vol=785 4 注意:增加

6、代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。 #include iostream h const double pi=3 1416; class circle protected: *1* public: *2* r=0 0; Circle(double radius) r=radius; void print() area=r*r* pi; cout “radius=“ r “area=“ area endl; ; class column: protected circle protected: double h; public: *3* h=height; r=

7、radius; void print() circle: print(); *4* ; int main() column col(5 0, 10 0)j col print(); return0; 国家二级 C+机试(操作题)模拟试卷 247答案与解析 一、基本操作题 1 【正确答案】 (1)添加语句: public: (2)TestClass()cout “init TestClass: endl; ); (3) TestClass()(cout “del TestClass“ endl; ; 【试题解析】 (1)打开 modil cpp,调试程序,显示错误提示为第一标识下“modil c

8、pp(13): error C2248: TestClass: TestClass; cannot access private member declared in classTestClass”,构造函数由于是私有的,无法获得,所以应该定义为 public型,即第 1个标识下添加 “public: ”。 (2)构造函数首部的一般形式为:构造函数名 (形参列表 ),构造函数没有返回值,所以定义构造函数时不需要声 明类型,所以 “int TestClass()cout “init TestClass“ endl; ; ”语句修改为 “TestClass()cout “iniit TestCla

9、ss“endl; ; ”。 (3)析构函数的名字是类名的前面加一个 “ ”符号,所以 “void TestClass()cout “del TestClass“ endl; ); ”修改为 “ TestClass()cout “del TestClass“ endl; ; ”。 二、简单应用题 2 【正确答案】 NODE*u, *v, *p; u=list; v=u- next; while(v!=NULL&x v- data)寻找插入的位置 u=v; v=v- next; if(v=NULL|x v- data)判断是否为新的元素 p=new NODE; P- data=x;生成新的元素 p

10、- next=v; u- next=p;插入新的元素 【试题解析】 (1)首先利用 while循环寻找插入元素的位置。 (2)然后判断要插入的元素是否为新元素。 (3)如果为新元素,那么执行单 链表的操作,插入元素。 三、综合应用题 3 【正确答案】 (1)添加语句: double r, area; (2)添加语句: circle() (3)添加语句: column(double radius, double height) (4)添加语句: cout “height=“If h “vol=“ area*h endl; 【试题解析】 (1)题目 1要求 “定义类 circle的保护数据成员函数

11、 r和 area,它们都是 double型的数据 ”。保护成员与 private和 public一样是用 来声明成员的访问权限的。在已有程序 circle类中的 protected:区域,添加变量 r和 area的定义,即 “double r, area; ”。 (2)题目 2要求 “添加类 circle的无参数的构造函数,使得类 circle对象的 r默认值为 0”。在 C+中,构造函数是一种特殊的成员函数,它的名字与类同名,没有参数的构造函数一般形式为:构造函数名 (),所以这里添加 “circle()”。 (3)题目 3要求 “添加派生类 column的构造函数的定义 ”。同 (2),另外带参数的构造函数的一般格式为:构造函数名 (类型 1形参 1, 类型 2形参 2, ) ,所以这里添加 “column(doubleradius, doubleheight)”。 (4)题目 4要求 “完成派生类 column的成员函数 print()的定义 ”。根据题干中输出结果,知道第一个输出值为 height,第二 4个输出值为 vol,即 area*h,所以这里添加 “cOut ”height=“ h “vol=“ area*h endl; ”。

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

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

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