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

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

1、国家二级 C+机试(操作题)模拟试卷 210及答案与解析 一、基本操作题 1 请使用菜单命令或直接使用 VC6打开考生文件夹下的工程 proj1,其中有 “MP3播放器 ”类 MP3Player和主函数 main的定义。程序中位于每个ERROR*found*下的语句行有错误,请加以更正。更正后程序的输出应该是: 天籁 -1 黑色 注意:只能修改每个 ERROR*found*下的那一行,不要改动程序中的其他内容。 1 #include 2 #include 3 using namespace std; 4 class MP3Player “MP3播放器 ”类 5 char*type; 型号 6

2、char*color; 颜色 7 public: 8 ERROR*found* 9 MP3 Player(const char*ty=NULL, const char*co) 10 ERROR*found* 11 if(ty=NULL) 12 type=NULL; 13 else 14 type=new charstrlen(ty)+1; 15 strcpy(type, ty); 16 17 if(co=NULL) 18 color=NULL; 19 else 20 color=new charstrlen(co)+1; 21 strcpy(color, co); 22 23 24 MP3Pl

3、ayer() 25 if(type)deletetype; 26 ERROR *found* 27 if(color)delete color; 28 29 const char*getType()constre-turn type; 30 const char术 getColor()constre-turn co1or; 31 ; 32 int main() 33 MP3Player mypiayer(“天籁 -1”, “黑色 ”); 34 cout 2 using namespace std; 3 class VectorBase向量基类,一个抽象类 4 int len; 5 public

4、: 6 VectorBase(int len): len(1en) 7 int length()constreturn len; 向量长度,即向量中元素的个数 8 virtual double getElement(int i)const=0;取第 i个元素的值 9 virtual double sum()const=0;求所有元素的和 10 void show()const显示向量中所有元素 11 coutshow(); 47 delete v; 48 v=new ZeroVector(6); 49 v-show(); 50 delete v; 51 return 0; 52 三、综合应用题

5、 3 请使用 “答题 ”菜单或使用 VC6打开考生文件夹 proj3下的工程 proj3,其中声明了 MagicNumber类,该类是一个用于表示连续正整数序列的类。 MagicNumber的成员函数 Nar-cissistic的功能是查找该序列中的水仙 花数水仙花数是指一个 n位数(n=3),其每个位上的数字的 13次方之和等于该数本身,例如 153就是一个 3位的水仙花数 (153=1*1*1+5*5*5+3*3*3)。请编写成员函数 Narcissistic。在 main函数中给出了一组测试数据,若输入 3,此时程序的输出应该是: 3位的水仙花数共4个: 153 370 371 407

6、注意:只需在 *333*和 *666*之间填人所编写的若干语句,不要改动程序中的其他内容。 1 #include“MagicNumber h“ 2 void MagicNumber: Narcissistic() 3 4 int i, number, sum, figures30; 5 for(number=min;numberd; 20 MagicNumber obj(d); 21 obj Narcissistic(); 22 obj Print(string(“水仙花数 “); 23 writeToFile(“c: test “); 24 return 0; 25 1 proj3 Magi

7、cNumber h 2 #include 3 #include 4 #include 4 using namespace std; 5 class MagicNumber 6 7 public: 8 MagicNumber(int d): digits(d), min(pow(10, digits-1), max(pow(10, digits)-1), count(0) 9 MagicNumber(int x1, int x2): min (x1), max(x2) 10 void ResetCount()count=0; 11 int GetCount()constreturncount;

8、12 int GetSet(int index)(returnsetindex; 13 void Narcissistic(); 查找水仙花数 13 void Print(string&str) 14 15 cout=0; i-) 3 4 sum+=pow(figuresi, digits); 5 6 if(sum=number) 7 8 setcount+=number; 9 【试题解析】 MagicNumber类中的成员变量 digits代表连续数列的位数,构造函数首先使用参数来初始化 digits,然后根据 digits初始化 min和 max,其中 min代表 digits位数的最小值

9、, max代表 digits位数的最大值, count用来统计 minmax范围内的水仙花数的个数, set数组用来存储 min max范围内的水仙花数。程序首先在 main函数根据用户输入的数字 d来构造一个 MagicNumber。对象,构造函数完成 digits、 min、 max的初始化,然后调用 MagicNumber对象的成员函数 Narcissistic()来统计所有 digits位数的水仙花数信息。 for循环通过遍历min max范围内的所有数,在遍历过程中, while循环将当前遍历到的数 x的各个数位上的数字统计到 figures数组的前 digits个元素中,接下来需要做的事情就是判断 x是否是水仙花数,即将 figures数组的前 digits个元素分别求 digits次方(位数次方 )再相加,累加的和存储到 sum中,最后判断 sum是否与当前数x(number)相等,若相等,则 x属于水仙花数,这时需要把 x存储到下标为 count的 set数组中,同时 count变量自增 1(水仙花数个数加 1),否则的话继续下一次for循环,直到当前数 x达到最大 值 max为止。统计完水仙花数后,再调用对象的Print函数,输人水仙花数信息。

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

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

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