【计算机类职业资格】二级C++-68及答案解析.doc

上传人:twoload295 文档编号:1324124 上传时间:2019-10-17 格式:DOC 页数:4 大小:39.50KB
下载 相关 举报
【计算机类职业资格】二级C++-68及答案解析.doc_第1页
第1页 / 共4页
【计算机类职业资格】二级C++-68及答案解析.doc_第2页
第2页 / 共4页
【计算机类职业资格】二级C++-68及答案解析.doc_第3页
第3页 / 共4页
【计算机类职业资格】二级C++-68及答案解析.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、二级 C+-68及答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:1,分数:30.00)1.请使用 VC6或使用答题菜单打开考生文件夹 proj1下的工程 proj1。此工程中包括类 Point、函数fun和主函数 main。程序中位于每个“/ERROR *found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: The point is(0,1) The point is(3,5) 注意:只修改每个“/ERROR *found*”下的那一行,不要改动程序中的其他内容。 #include iostream using namespace st

2、d; class Point public: / ERROR *found* Point(int x = 0, int y) : x_(x), y_(y) / ERROR * found* void move(int xOff, int yOff) const x_+ = xOff; y_+ = yOff; void print() const cout “The point is (“ x_, y_ ) endl; private: int x_, y_; ; void fun (Point* p) /ERROR * found* p.print (); int main () Point

3、p1, p2 (2, 1); p1.print (); p2.move (1, 4); fun ( return 0; (分数:30.00)_二、B简单应用题/B(总题数:1,分数:30.00)2.请使用 VC6或使用答题菜单打开考生文件夹 proj2下的工程 proj2。其中的 Collection定义了集合类的操作接口。一个集合对象可以包含若干元素。工程中声明的 Array是一个表示整型数组的类,是Collection的派生类,它实现了 Collection中声明的纯虚函数。Array 的成员说明如下: 成员函数 add用于向数组的末尾添加一个元素; 成员函数 get用于获取数组中指定位置

4、的元素; 数据成员 a表示实际用于存储数据的整型数组; 数据成员 size表示数组的容量,数组中的元素个数最多不能超过 size; 数据成员 num表示当前数组中的元素个数。 请在横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的正确输出结果应为: 1,2,3,4,5,6,7,8,9,10, 注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“/*found*”。 #include iostream using namespace std; /集合类的操作接口 class Collection public: virtual void add (int e)

5、 = 0; /获取指定位置的元素 virtual int get (unsigned int i) const = 0; ; /实现了集合接口 class Array : public Collection public: Array (unsigned int s) /* found* a = new _; size = s; num: 0; Array ( ) /* found* _: virtual void add (int e) if (num size) /* found* _=e; num +; virtual int get ( unsigned int i) const if

6、 (i size) /* found* _; return 0; private: int * a; unsigned int size; unsigned int hum; ; void fun (Collection for (i = 0; i 10; i+) col.add (i+1); for (i = 0; i10; i+) cout col.get(i) “,“; cout endl; int main () Array a (0xff); fun (a); return 0; (分数:30.00)_三、B综合应用题/B(总题数:1,分数:40.00)3.请使用 VC6或使用答题菜

7、单打开考生文件夹 proj3下的工程 proj3,其中定义的 MyString类是一个用于表示字符串的类。假设字符串由英文单词组成,单词与单词之间使用一个空格作为分隔符。成员函数wordCount的功能是计算组成字符串的单词的个数。 例如,字符串“dog”由 1个单词组成;字符串“the quickbrown fox jumps over the lazy dog”由 9个单词组成。请编写成员函数 wordCount。在main函数中给出了一组测试数据,此时程序应显示: 读取输入文件. STR1=1 STR2=9 要求: 补充编制的内容写在“/*333*”与“/*666*”之间,不得修改程序的

8、其他部分。注意:程序最后将结果输出到文件 out.dat中。输出函数 WriteToFile已经编译为 obj文件,并且在本程序中调用。 /mystring.h #include iostream #include string.h using namespace std; class MyString public: MyString(const char* s) str = new charstrlen(s)+1; strcpy(str, s); MyString() delete str; int wordCount() const; private: char * str; ; voi

9、d writeToFile(char * , int); /main.cpp #include fstream #include “mystring.h“ int MyString:wordCount() const /* 333* /* 666* int main() char inname128, pathname80; strcpy(pathname, “); sprintf (inname, “in. dat“, pathname); cout “读取输入文件. /n/n“; ifstream infile (inname); if (infile.fail () cerr “打开输入

10、文件失败!“; exit(1); char buf4096; infile.getline(buf, 4096); MyString str1 (“dog“), str2 (“the quick brown fox jumps over the lazy dog“), str3 (buf); str1.wordCount (); cout “STRI = “ str1.wordCount () endl; cout “STR2 = “ str2.wordCount() endl endl; writeToFile(pathname,str3.wordCount(); return 0; (分数

11、:40.00)_二级 C+-68答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:1,分数:30.00)1.请使用 VC6或使用答题菜单打开考生文件夹 proj1下的工程 proj1。此工程中包括类 Point、函数fun和主函数 main。程序中位于每个“/ERROR *found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: The point is(0,1) The point is(3,5) 注意:只修改每个“/ERROR *found*”下的那一行,不要改动程序中的其他内容。 #include iostream using names

12、pace std; class Point public: / ERROR *found* Point(int x = 0, int y) : x_(x), y_(y) / ERROR * found* void move(int xOff, int yOff) const x_+ = xOff; y_+ = yOff; void print() const cout “The point is (“ x_, y_ ) endl; private: int x_, y_; ; void fun (Point* p) /ERROR * found* p.print (); int main ()

13、 Point p1, p2 (2, 1); p1.print (); p2.move (1, 4); fun ( return 0; (分数:30.00)_正确答案:(1)Point(int x=0, int y=1) (2)void move(int xOff, int yOff) (3)p-print();)解析:考点 本题考查的是 Point类,其中涉及构造函数、成员函数和 const函数。 解析 (1)主要考查考生对构造函数的掌握情况,默认构造函数的参数值必须从右到左。 (2)主要考查考生对 const函数的掌握情况,函数体中有语句:x_+=xOff;,成员变量值发生改变,因此函数不能

14、使用 const。 (3)主要考查考生对指针的掌握情况,由于 p为指针类型,因此调用成员函数时要使用标识符“-”。二、B简单应用题/B(总题数:1,分数:30.00)2.请使用 VC6或使用答题菜单打开考生文件夹 proj2下的工程 proj2。其中的 Collection定义了集合类的操作接口。一个集合对象可以包含若干元素。工程中声明的 Array是一个表示整型数组的类,是Collection的派生类,它实现了 Collection中声明的纯虚函数。Array 的成员说明如下: 成员函数 add用于向数组的末尾添加一个元素; 成员函数 get用于获取数组中指定位置的元素; 数据成员 a表示实

15、际用于存储数据的整型数组; 数据成员 size表示数组的容量,数组中的元素个数最多不能超过 size; 数据成员 num表示当前数组中的元素个数。 请在横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的正确输出结果应为: 1,2,3,4,5,6,7,8,9,10, 注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“/*found*”。 #include iostream using namespace std; /集合类的操作接口 class Collection public: virtual void add (int e) = 0; /获取指定位置的

16、元素 virtual int get (unsigned int i) const = 0; ; /实现了集合接口 class Array : public Collection public: Array (unsigned int s) /* found* a = new _; size = s; num: 0; Array ( ) /* found* _: virtual void add (int e) if (num size) /* found* _=e; num +; virtual int get ( unsigned int i) const if (i size) /* f

17、ound* _; return 0; private: int * a; unsigned int size; unsigned int hum; ; void fun (Collection for (i = 0; i 10; i+) col.add (i+1); for (i = 0; i10; i+) cout col.get(i) “,“; cout endl; int main () Array a (0xff); fun (a); return 0; (分数:30.00)_正确答案:(1)ints (2)deletea (3)anun (4)return ai)解析:考点 本题考查

18、的是 Collection类及其派生类 Array类,其中涉及纯虚函数、构造函数和析构函数。 解析 (1)主要考查考生对构造函数的掌握情况,要使用 new给动态数组分配空间。 (2)主要考查考生对析构函数的掌握情况,使用 delete释放空间。 (3)主要考查考生对成员函数的掌握情况,为数组添加元素,使用语句:aBrim=e;。 (4)主要考查考生对成员函数的掌握情况,返回数组元素。三、B综合应用题/B(总题数:1,分数:40.00)3.请使用 VC6或使用答题菜单打开考生文件夹 proj3下的工程 proj3,其中定义的 MyString类是一个用于表示字符串的类。假设字符串由英文单词组成,

19、单词与单词之间使用一个空格作为分隔符。成员函数wordCount的功能是计算组成字符串的单词的个数。 例如,字符串“dog”由 1个单词组成;字符串“the quickbrown fox jumps over the lazy dog”由 9个单词组成。请编写成员函数 wordCount。在main函数中给出了一组测试数据,此时程序应显示: 读取输入文件. STR1=1 STR2=9 要求: 补充编制的内容写在“/*333*”与“/*666*”之间,不得修改程序的其他部分。注意:程序最后将结果输出到文件 out.dat中。输出函数 WriteToFile已经编译为 obj文件,并且在本程序中调

20、用。 /mystring.h #include iostream #include string.h using namespace std; class MyString public: MyString(const char* s) str = new charstrlen(s)+1; strcpy(str, s); MyString() delete str; int wordCount() const; private: char * str; ; void writeToFile(char * , int); /main.cpp #include fstream #include “

21、mystring.h“ int MyString:wordCount() const /* 333* /* 666* int main() char inname128, pathname80; strcpy(pathname, “); sprintf (inname, “in. dat“, pathname); cout “读取输入文件. /n/n“; ifstream infile (inname); if (infile.fail () cerr “打开输入文件失败!“; exit(1); char buf4096; infile.getline(buf, 4096); MyString

22、 str1 (“dog“), str2 (“the quick brown fox jumps over the lazy dog“), str3 (buf); str1.wordCount (); cout “STRI = “ str1.wordCount () endl; cout “STR2 = “ str2.wordCount() endl endl; writeToFile(pathname,str3.wordCount(); return 0; (分数:40.00)_正确答案:(if(Str=NULL) return 0; /如字符串 str为空,返回零 int counter=1; /给 counter赋值为 1 int length=strlen(str); /把字符串 str长度赋值给 length for(int i=0; ilength; i+) /i从零到 length-1遍历 if(isspace(stri) /如果 stri为空格字符 counter+; /counter 自加1 return counter; /返回 counter;)解析:考点 本题考查的是 MyString类,其中涉及动态数组、构造函数、析构函数和 const函数。 解析 主要考查考生对动态数组的掌握情况,计算单词个数通过计算空格数目来完成。

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

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

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