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

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

1、国家二级( C+)机试模拟试卷 50及答案与解析 一、程序改错题( 30分) 1 使用 VC6打开考生文件夹下的工程 test36_1,此工程包含一个源程序文件test36_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为: 2 源程序文件 test36_1.cpp清单如下: #include iostream.h class amount; class coins /* found */ enum units penny, nickel, dime, quarter, half_dollar /* found */ class amount; ; class amou

2、nt /* found */ coins:units money; public: void setm(); int germ(); ; void amount:setm() money = coins:dime; int amount:getm() return money; int main ( ) amount ob; ob.setm(); cout ob.getm() end1; return 0; 二、简单应用题( 40分) 2 请编写函数 fun(),其功能是计算并输出下列多项式值 Sn=1+1/1!+1/2!+1/3!+1/4!+1/n! 例如:从键盘输入 15,则输出为 s=2

3、.718282。 注意;部分源程序以存在文件 test37_2.cpp中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 文件 test37_2.cpp的内容如下: #include stdio.h #include iostream.h double fun(int n) void main ( ) int n; double s; cout “Input n:“ end1; cin n; s=fun(n); cout “s=“ s end1; 三、综合应用题( 30分) 3 使用 VC6打开考生文件夹下的工程 test35_3。此工程包含

4、一个 test35_3.cpp,其中定义了时钟类 clock,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。 (1)定义类 clock的私有数据成员 hour和 minute,它们都是 int型的数据。请在注释 “/*1*”之后添加适当的语句。 (2)补充完全类 clock的构造函数,私有数据成员 hour和 minute分别初始化为参数 h和 m的值,请在注释 “/*2*”之后 添加适当的语句。 (3)完成类 clock的成员函数 printtime,的定义,该函数以 “Now the time is hour:minute”的格式输出数据成员 hour和 minute的值,如

5、 hour=3、 minute=59,则输出为 “Now the time is 03: 59”,请在注释 “/*3*”之后添加适当的语句。 (4)完成类 clock的成员函数 addoneminutetime的定义,该函数可将 clock类对象表示的时间加一分钟,如现在 hour=3、 minute=59,运行该函 数后 hour=4、minute=0。请在注释 “/*4*”之后添加适当的语句。 程序的输出结果如下: Now,the time is 12:59 Now,the time is 13:00 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序文件 test35_

6、3.cpp清单如下: #include iostream.h class clock private: / * 1 * public: clock(int h, int m) / * 2 * int presenthour()return hour; int presentminute()return minute; void addoneminutetime(); void printtime(); ; void clock:printtime() if(hour 10) cout 0; / * 3 * if(minute 10) cout 0; cout minute end1; void

7、 clock:addoneminutetime() / * 4 * if(minute 59) minute-=60; hour+; if(hour 23) hour=0; void main ( ) clock c(12,59); c.printtime(); c.addoneminutetime(); c.printtime(); 国家二级( C+)机试模拟试卷 50答案与解析 一、程序改错题( 30分) 1 【正确答案 】 (1) 错误; enum unitspenny, nickel, dime, quarter,half_dollar 正确: enum units penny, ni

8、ckel, dime, quarter, half_dollar; (2) 错误: class amount; 正确: friend class amount; (3) 错误: coins:units money; 正确: coins: units money; 【试题解析】 (1)enum是枚举类型, units是本题中该类型的一个变 量,后面为枚举表,大括号中为枚举符,枚举变量的值实际上是一个有名字的常量,所以它的定义结束时也需要一个分号; (2)类 amount是类 coins中定义的成员,要是想要访问 coins类中的私有成员,把amount定义成普通的数据成员是不能做到的,只能把它定

9、义成友元类,即可以访问 coins类中的所有成员 (提示: units是使用的默认定义,即私有成员 ); (3)units是类 coins中的成员,在它的友元类中访问它时应该使用作用域符“: ”,本题的错误是使用了冒号。 二、简单应用题( 40分) 2 【正确答案 】 double fun(int n) double t, sn=1.0; int i, j; for(i 1; i n; i+) t 1.0; for(j 1; i i; j+) t* j; sn+ 1.0/t; return sn; 【试题解析】 本题解法是通过观察所给的多项式,可以找出该多项式相应的数学规律。本题中,多项式是一个累加求和的多项式,并且每一项总是比前一项多乘一个整数,所乘整数 恰好等于每一项的编号,这样利用循环语句进行阶乘、累加就可以实现功能。由于函数中出现了 “/”的运算,所以最终的函数值要考虑到用double类型。 三、综合应用题( 30分) 3 【正确答案】 (1) int hour; int minute; (2) hour=h; minute=m; (3) cout “Now,the time is“ hour “: “; (4) minute+; 【试题解析】 本题主要考查考生对于类基本概念的掌握和将具体问题转换为模型并编程实现的能力。特别是对于程序中小时与分的范围限定是必不可少的。

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

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

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