考试吧

计算机等级

考试吧>等级考试>计算机二级考试>C加加>模拟试题>正文
2018年3月计算机二级C++冲刺练习题及答案(3)
考试吧 2018-03-19 15:46:19 评论(0)条

  点击查看:2018年3月计算机二级C++冲刺练习题及答案汇总

  基本操作题

  1 [简答题]

  请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,其中有枚举DOGCOLOR、狗类Dog和主函数main的定义。程序中位每个“// ERROR **** found ****”下的语句行有错误,请加以改正。改正后程序的输出结果应该是:

  There is a white dog named Hoho..

  There is a black dog named Haha.

  There is a motley dog named Hihi.

  注意:只修改每个“// ERROR **** found ****”下的那一行,不要改动程序中的其他内容。

  

2018年3月计算机二级C++冲刺练习题及答案(3)

2018年3月计算机二级C++冲刺练习题及答案(3)

  参考解析:

  【参考答案】 (1)this->color=color;

  (2)eonst char getName()const{return * name;}

  (3)Dog dog1(”Hoho”,WHITE),dog2(”Haha”,BLACK),dos3(”Hihi”,OTHER);

  【考点分析】

  主要考查的是Dog类,其中涉及enum、静态私有成员、const函数和构造函数。strcpy函数用来复制字符串,而对double、int等类型直接用“=”赋值即可。定义同一类型的变量时,几个变量之间用“,”分开。

  【解题思路】

  (1)主要考查考生对strcpy函数的掌握,如果看到上一条语句strcpy(this->name,name);,就以为本条语句也要用strcpy函数来赋值,这是错误的。Strcpy函数只能复制字符串,根据类的私有成员声明可知,color是DOGCOLOR型的,这里直接使用赋值语句“=”即可。

  (2)主要考查考生对函数返回值的掌握,先解读语句const char * getName()const{ return * name;},要返回的是一个const的字符指针,同时函数内的值不能改变,name在类的私有成员声明中是个字符数组,* name代表字符数组而不是字符指针,问题

  就出来了,需要修改返回类型:const char getName()const{return * name;}。

  (3)语法错误,定义变量时,变量之间应使用“,”分开。

扫描/长按二维码帮助考试通关
2018年等考报考资讯
2018等考各科通关技巧
2018各科最新预测试卷
2018等考各科备考资料

微信搜索"考试吧"了解更多考试资讯、下载备考资料

  

  2 [简答题]

  使用VC6打开考生文件夹proj2下的工程proj2,其中有元素类Element和队列类Queue的定义。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的输出结果应为:

2018年3月计算机二级C++冲刺练习题及答案(3)

  注意:只能在横线处填写适当的代码,不要改动程序中的其他内容。

  

2018年3月计算机二级C++冲刺练习题及答案(3)


2018年3月计算机二级C++冲刺练习题及答案(3)

  参考解析:

2018年3月计算机二级C++冲刺练习题及答案(3)

  【考点分析】

  本题考查的知识点为:类的数据成员和类的成员函数。

  【解题思路】

  题意定义了Element类,表示队列中的元素,它包含一个成员n,表示元素的值;定义了Queue类,表示队列,它包含两个成员:element是动态分配的一个数组,每个元素都是Element类型;tail表示队列尾部的下标值,指向element数组的最后一个元素,当数组为空时,tail的值为-1,所以初始化为-1;另外Queue类还定义了若干成员函数:构造函数为element数组动态分配100个元素空间,初始化tail为-1;析构函数释放elemeat;push()函数向队列中添加一个新元素ele,即将形参ele存放到数组尾部,并将tail自增1;pop()函数将element数组的第一个元素(下标为0)从数组中删除(采用移动后续所有元素的方式),并作为函数返回值返回;front()函数返回队列首元素;size()函数返回当前element数组的元素个数;show()函数将element数组中的元素的n值输出,由上面的分析,补充代码如下:

  (1)size()函数返回element数组的元素个数,tail的值是element数组的最后一个元素的下标,所以返回tail+1即可。

  (2)push()函数将参数ele插入到队列的尾部,即将ele保存到element数组下标为(tail+1)的位置:elemeat[++tail]=ele;

  (3)pop()函数将element数组的首元素保存到tmp变量中,然后遍历element数组,将下标从1开始的元素逐个赋给前一个元素,再把tail的值自减l,tail--;(4)show()函数需要遍历element数组,然后将元素的n值输出,遍历下标的变量需要定义为i,i初值从0开始,直到i等于最后一个元素的下标,即tail。int i=0;i<=tail;i++

扫描/长按二维码帮助考试通关
2018年等考报考资讯
2018等考各科通关技巧
2018各科最新预测试卷
2018等考各科备考资料

微信搜索"考试吧"了解更多考试资讯、下载备考资料

  

  3 [简答题]

  请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明IntSet是一个用于表示正整数集合的类。IntSet的成员函数Intersection的功能是求当前集合与另一个集合的交集。请完成成员函数Intersection。在main函数中给出了一组测试数据,此时程序的输出应该是:

  求交集前:

  1235810

  28911305667

  求交集后:

  1235810

  28911305667

  28

  要求:

  补充编制的内容写在“// ******** 333 ********”与“// ******** 666 ********”之间,不得修改程序的其他部分。

  注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。

2018年3月计算机二级C++冲刺练习题及答案(3)

2018年3月计算机二级C++冲刺练习题及答案(3)

2018年3月计算机二级C++冲刺练习题及答案(3)

  参考解析:

  【参考答案】

2018年3月计算机二级C++冲刺练习题及答案(3)

  【考点分析】

  本题考查的是IntSet类,其中涉及构造函数、bool函数和成员函数。本类是一个用于表示正整数集合的类,题目要求填写的函数能实现交集的功能,也就是将两个数组内的元素进行比较,将一样的元素提取出来。

  【解题思路】

  主要考查考生对数组的掌握,根据IntSet类的构造函数:

  IntSet(int a[],int size)//构造一个包含数组a中size个元素的集合

2018年3月计算机二级C++冲刺练习题及答案(3)

  可知数组element用来装载集合,end表示数组长度,因此调用函数IsMemberOf来判断set中的元素是否存在于集合中,如果存在则放入数组a中。

  【解题宝典】

  主要考查考生对数组的掌握,集合可以用数组来实现,交集就是将两个数组中相等的元素提取出来放入一个新建立的数组。

扫描/长按二维码帮助考试通关
2018年等考报考资讯
2018等考各科通关技巧
2018各科最新预测试卷
2018等考各科备考资料

微信搜索"考试吧"了解更多考试资讯、下载备考资料

展开全文
评论(0条) 发表
Copyright © 2004-
考试吧(m.566.com)北京美满明天科技有限公司
社会统一信用代码:91110108MA01WU311X
帮助中心