欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C++分类模拟114及答案解析.doc

    • 资源ID:1324191       资源大小:45.50KB        全文页数:9页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C++分类模拟114及答案解析.doc

    1、二级 C+分类模拟 114 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.请使用 VC6 或使用【答题】菜单打开 proj1 下的工程 proj1,该工程含有一个源程序文件 proj1.cpp。其中位于每个注释“/ ERROR *found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: The value is 10 注意:只修改注释“/ ERROR *found*”的下一行语句,不要改动程序中的其他内容。 / proj1.cpp #include iostream using namespace std; class

    2、 MyClass int value; public: / ERROR *found* void MyClass(int val) : value(val) int GetValue() const return value; void SetValue(int val); ; / ERROR *found* inline void SetValue (int val) value = val; int main() MyClass obj(0); obj.SetValue(10); / ERROR *found* 下列语句功能是输出 obj 的成员 value 的值 cout “The va

    3、lue is“ obj.value endl; return 0; (分数:30.00)_二、简单应用题(总题数:1,分数:30.00)2.请使用 VC6 或使用【答题】菜单打开 proj2 下的工程 proj2,此工程包含有一个源程序文件proj2.cpp,其中定义了 Stack 类和 ArrayStack 类。 Stack 是一个用于表示数据结构“栈”的类,栈中的元素是字符型数据。Stack 为抽象类,它只定义了栈的用户接口,如下所示: 公有成员函数 功能 push 入栈:在栈顶位置添加个元素 pop 退栈:取出并返回栈顶元素 ArrayStack 是 Stack 的派生类,它实现了 St

    4、ack 定义的接口。ArrayStack 内部使用动态分配的字符数组作为栈元素的存储空间。数据成员 maxSize 表示的是栈的最大容量,top 用于记录栈顶的位置。成员函数push 和 pop 分别实现具体的入栈和退栈操作。 请在程序中的横线处填写适当的代码,然后删除横线,以实现上述功能。此程序的正确输出结果应为: a,b,c c,b,a 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“/ *found*”。 / proj2.cpp #include iostream using namespace std; class Stack public: virtual

    5、 void push(char c) = 0; virtual char pop() = 0; ; class ArrayStack : public Stack char * p; int maxSize; int top; public: ArrayStack(int s) top = 0; maxSize = s; / *found* p =_; ArrayStack() / *found* _; void push (char c) if (top = maxSize) cerr “Overflow! /n“; return; / *found* _; top +; char pop(

    6、) if (top = 0) cerr “Underflow! /n“; return “/0“; top -; / *found* _; ; void f(Stack cout ch0 “,“ ch1 “,“ ch2 endl; sRef.push(ch0); sRef.push(ch1); sRef.push(ch2); cout sRef.pop() “,“; cout sRef.pop() “,“; cout sRef.pop() endl; int main() ArrayStack as(10); f(as); return 0; (分数:30.00)_三、综合应用题(总题数:1,

    7、分数:40.00)3.请使用 VC6 或使用【答题】菜单打开 proj3 下的工程文件 proj3,此工程中包含一个源程序文件proj3.cpp,补充编制 C+程序 proj3.cpp,其功能是读取文本文件 in.dat中的全部内容,将文本存放到 doc 类的对象 myDoc 中。然后将 myDoc 中的字符序列反转,并输出到文件 out.dat 中。文件 in.dat 的长度不大于 1000 字节。 要求: 补充编制的内容写在“/ *333*”与“/ *66666*”两行之间。实现将 myDoc 中的字符序列反转,并将反转后的序列在屏幕上输出。不得修改程序的其他部分。 注意:程序最后已将结果

    8、输出到文件 out.dat 中,输出函数 writeToFile 已经给出并且调用。 / proj3.cpp #include iostream #include fstream #include cstring using namespace std; class doc private: char * str; /文本字符串首地址 int length; /文本字符个数 public: /构造函数,读取文件内容,用于初始化新对象,filename 是文件名字符串首地址 doc(char * filename); void reverse(); /将字符序列反转 doc(); void wr

    9、iteToFile (char * filename); ; doc:doc(char * filename) if stream myFile (filename); int len = 1001, tmp; str = new charlen; length = 0; while (tmp = myFile.get()!=EOF) strlength + = tmp; strlength = “/0“; myFile.close(); void doc:reverse() /将数组 str 中的 length 个字符中的第一个字符与最后一个字符交换,第二个字符与倒数第二个 /字符交换 /

    10、*333* / *666* doc:doc() delete str; void doc:writeToFile (char * filename) ofstream outFile(filename); outFile str; outFile.close(); void main() doc myDoc(“in.dat“); myDoc.reverse(); myDoc.writeToFile(“out.dat“); (分数:40.00)_二级 C+分类模拟 114 答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.请使用 VC6 或使用

    11、【答题】菜单打开 proj1 下的工程 proj1,该工程含有一个源程序文件 proj1.cpp。其中位于每个注释“/ ERROR *found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: The value is 10 注意:只修改注释“/ ERROR *found*”的下一行语句,不要改动程序中的其他内容。 / proj1.cpp #include iostream using namespace std; class MyClass int value; public: / ERROR *found* void MyClass(int val) : value(val

    12、) int GetValue() const return value; void SetValue(int val); ; / ERROR *found* inline void SetValue (int val) value = val; int main() MyClass obj(0); obj.SetValue(10); / ERROR *found* 下列语句功能是输出 obj 的成员 value 的值 cout “The value is“ obj.value endl; return 0; (分数:30.00)_正确答案:()解析:(1)MyClass(int val):va

    13、lue(val) (2)vold MyClass:SetValue(int val) value=val; (3)cout“The value is“obj.GetValue()endl; 答案考生文件夹 考点 本题主要考查 MyClass 类、构造函数、成员函数及成员函数的调用。 解析 (1)考查构造函数,定义构造函数时不能使用 void,直接使用 MyClass(int val)即可。 (2)主要考查成员函数定义,类的成员函数定义时要使用前缀 MyClass,而 inline 是内联函数的关键字,在此是错误的,应该删掉 inline 并在函数名前加上前缀 MyClass,即 void My

    14、Class:SetValue(int val)value=val;。 (3)考查成员函数调用,value 是私有成员,在主函数中不能直接调用 value,可以使用成员函数GetValue()来得到 value 的值。 构造函数前不能添加任何类型,如 void,int,double 等。类的成员函数定义时要加上前缀,即类的名字。私有成员只能被类的成员函数调用。二、简单应用题(总题数:1,分数:30.00)2.请使用 VC6 或使用【答题】菜单打开 proj2 下的工程 proj2,此工程包含有一个源程序文件proj2.cpp,其中定义了 Stack 类和 ArrayStack 类。 Stack

    15、是一个用于表示数据结构“栈”的类,栈中的元素是字符型数据。Stack 为抽象类,它只定义了栈的用户接口,如下所示: 公有成员函数 功能 push 入栈:在栈顶位置添加个元素 pop 退栈:取出并返回栈顶元素 ArrayStack 是 Stack 的派生类,它实现了 Stack 定义的接口。ArrayStack 内部使用动态分配的字符数组作为栈元素的存储空间。数据成员 maxSize 表示的是栈的最大容量,top 用于记录栈顶的位置。成员函数push 和 pop 分别实现具体的入栈和退栈操作。 请在程序中的横线处填写适当的代码,然后删除横线,以实现上述功能。此程序的正确输出结果应为: a,b,c

    16、 c,b,a 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“/ *found*”。 / proj2.cpp #include iostream using namespace std; class Stack public: virtual void push(char c) = 0; virtual char pop() = 0; ; class ArrayStack : public Stack char * p; int maxSize; int top; public: ArrayStack(int s) top = 0; maxSize = s; / *

    17、found* p =_; ArrayStack() / *found* _; void push (char c) if (top = maxSize) cerr “Overflow! /n“; return; / *found* _; top +; char pop() if (top = 0) cerr “Underflow! /n“; return “/0“; top -; / *found* _; ; void f(Stack cout ch0 “,“ ch1 “,“ ch2 endl; sRef.push(ch0); sRef.push(ch1); sRef.push(ch2); c

    18、out sRef.pop() “,“; cout sRef.pop() “,“; cout sRef.pop() endl; int main() ArrayStack as(10); f(as); return 0; (分数:30.00)_正确答案:()解析:(1)new chars (2)deletep (3)ptop=c (4)return ptop 答案考生文件夹 考点 本题主要考查的是表示栈的抽象类 Stack 类及它的派生类 ArrayStack 类、纯虚函数和成员函数。栈的节点一般使用指针表示,定义构造函数时要给指针分配空间,使用 new 语句来完成。ArrayStack()是析

    19、构函数,因为前面已经使用 new 来分配空间了,因此在这里要用 delete 语句来释放指针。 解析 (1)主要考查的是 ArrayStack 类的构造函数,在函数中要为 p 申请 s 个 chin。型空间,应使用语句 p=new chars;。 (2)主要考查析构函数,使用 delete 语句释放指针,即 deletep;。 (3)主要考查 push 函数,top 表示栈顶元素下标,添加的数据放到栈顶,因此使用语句 ptop=c;。 (4)主要考查 pop 函数,输出栈顶数据,top 表示栈顶元素下标,因此使用语句 return ptop;。 在构造函数时,要先给动态数组分配空间,使用 ne

    20、w 语句。在析构函数时,要将分配的空间释放,使用delete 语句。三、综合应用题(总题数:1,分数:40.00)3.请使用 VC6 或使用【答题】菜单打开 proj3 下的工程文件 proj3,此工程中包含一个源程序文件proj3.cpp,补充编制 C+程序 proj3.cpp,其功能是读取文本文件 in.dat中的全部内容,将文本存放到 doc 类的对象 myDoc 中。然后将 myDoc 中的字符序列反转,并输出到文件 out.dat 中。文件 in.dat 的长度不大于 1000 字节。 要求: 补充编制的内容写在“/ *333*”与“/ *66666*”两行之间。实现将 myDoc

    21、中的字符序列反转,并将反转后的序列在屏幕上输出。不得修改程序的其他部分。 注意:程序最后已将结果输出到文件 out.dat 中,输出函数 writeToFile 已经给出并且调用。 / proj3.cpp #include iostream #include fstream #include cstring using namespace std; class doc private: char * str; /文本字符串首地址 int length; /文本字符个数 public: /构造函数,读取文件内容,用于初始化新对象,filename 是文件名字符串首地址 doc(char * fi

    22、lename); void reverse(); /将字符序列反转 doc(); void writeToFile (char * filename); ; doc:doc(char * filename) if stream myFile (filename); int len = 1001, tmp; str = new charlen; length = 0; while (tmp = myFile.get()!=EOF) strlength + = tmp; strlength = “/0“; myFile.close(); void doc:reverse() /将数组 str 中的

    23、 length 个字符中的第一个字符与最后一个字符交换,第二个字符与倒数第二个 /字符交换 / *333* / *666* doc:doc() delete str; void doc:writeToFile (char * filename) ofstream outFile(filename); outFile str; outFile.close(); void main() doc myDoc(“in.dat“); myDoc.reverse(); myDoc.writeToFile(“out.dat“); (分数:40.00)_正确答案:()解析:int i, j; /定义两个整数临

    24、时变量 i.j. for(i = 0, j = length -1; i j; i+, j-) char temp = stri; /把 Stri中的值保存在临时变量 temp stri = strj; /把 Strj值赋给 Stri,实现字符前后替换 strj = temp; /把保存在临时变量 temp 中的值再赋值给 Strj 答案考生文件夹 考点 本题主要考查的是 doc 类、构造函数、成员函数和析构函数。 解析 题目要求将 myDoc 中的字符序列反转,在 main 函数中我们看到 myDoc 是 doc 类,根据 doc 类的定义可以知道它是把读取文件的字符串存到 str 动态数组中。reverse 函数实现将数组 str 中的 length 个字符中的第一个字符与最后一个字符交换,第二个字符与倒数第二个字符交换,依次类推。使用变量 i和 j,分别表示第一个字符和最后一个字符的下标,定义 temp 作为中间变量进行交换。


    注意事项

    本文(【计算机类职业资格】二级C++分类模拟114及答案解析.doc)为本站会员(tireattitude366)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开