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

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

1、国家二级 C+机试(操作题)模拟试卷 212及答案与解析 一、基本操作题 1 请使用 “答题 ”菜单或使用 VC6打开考生文件夹 proj1下的工程 proj1,此工程包含程序文件 main epp,其中有类 TimesTable(“乘法口诀表 ”)的定义和主函数 main的定义。程序中位于每个 ERROR *found*下的 语句行有错误,请加以改正。更正后程序的输出应该是: 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12

2、3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 注意:只能修改每个 ERROR *found*下的那一行,不要改动程序中的其他内容。 1 #include 2 #include 3 using namespace std; 4 class TimesTable乘

3、法口诀表 5 6 public: 7 ERROR *found* 8 TimesTable(int n=9)count=n; 9 void Print()const; 10 private: 11 const int count; 12 ; 13 ERROR *found* 14 void Print()const 15 16 int i, j; 17 ERROR *found* 18 for(i=1; i 2 using namespace std; 3 class CPolygon 4 public: 5 *found* 6 _纯虚函数 area声明 7 void printarea(vo

4、id) 8 *found* 9 coutprintarea(); 35 ppoly2-printarea(); 36 return 0; 37 三、综合应用题 3 请使用 VC6或使用【答题】菜单打开考生目录 proj3下的工程文件 proj3,其中定义了用于表示特定数制的数的模板类 Number和表示一天中的时间的类TimeOfDay;程序应当显示: 01: 02: 03 004 06: 04: 06 021 但程序中有缺失部分,请按照以下的提示,把缺失部分补充完整: (1)在 “ *1* *found*”的下方是一个定义数据成员 seconds的语句,seconds用来表示 “秒 ”。 (

5、2)在 “ *2* *found*”的下方是函数 ad-vanceSeconds中的一个语句,它使时间前进 k秒。 (3)在 “ *3* *found*”的下方是函数 ad-vance中的一个语句,它确定增加 k后 n的当前 值和进位,并返回进位。例如,若 n的当前值是表示时间的 55分,增加 10分钟后当前值即变为 5分,进位为 1(即 1小时 )。 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动 “*found*”。填写的内容必须在一行中完成,否则评分将产生错误。 1 proj 3 cpp 2 #include 3 #include 4 using namesp

6、ace std; 5 template 数制为 base的数 6 class Number 7 8 int n; 存放数的当前值 9 public: 10 Number(int i): n(i) i必须小于 base 11 int advance(int k);当前值增加 k个单位 12 int value()constreturn n; )返回数的当前值 13 ; 14 class TimeOfDay 15 public: 16 Numberhours; 小时 (0 23) 17 Numberminutes; 分 (0 59) 18 *1* *found* 19 _;秒 (0 59) 20

7、Numbermilliseconds; 毫秒 (0 999) 21 TimeOfDay(int h=0, int m=0, int s=0, int milli=0) 22 : hours(h), minutes(m), seconds(s), milliseconds(milli) 23 void advanceMillis(int k)ad-vanceSeconds(milliseconds advance(k); ) 前进 k毫秒 24 void advanceSeconds(int k) 前进 k秒 25 26 *2* *found* 27 _; 28 29 void advanceM

8、inutes(int k)ad-vanceHour(minutes advance(k); 前进 k分钟 30 void advanceHour(int k)f hours ad-vance(k); ) 前进 k小时 31 void show()const按 “小时:分:秒毫秒 ”的格式显示时间 32 int c=cout fill(0);将填充字符设置为 0 33 cout 41 int Number: advance(int k) 42 43 n+=k; 增加 k个单位 44 int s=0; s用来累计进位 45 *3* *found* 46 while(n=base)_ n到达或超过

9、base即进位 47 return s; 返回进位 48 49 int main() 50 51 TimeOfDay time(1, 2, 3, 4);初始时间: 1小时 2分 3秒 4毫秒 52 time show(); 显示时间 53 time advanceHour(5); 前进 5小时 54 time advanceSeconds(122);前进 122秒 (2分零 2秒 ) 55 time advanceMilliS(1017);前进 1017毫秒 (1秒零 17毫秒 ) 56 coutseconds (2)advanceMinutes(seconds advaflce(k) (3)

10、s+; n-=base; 【试题解析】 (1)主要考查考生对模板类的掌握,这里是一个定义数据成员seconds的语句, seconds用来表示 “秒 ”,可以根据小时、分、毫秒的定义形式填写,即 Numberseconds。 (2)主要考查考生对成员函数的掌握,此处是函数 ad-vanceSeconds中的一条语句,它使时间前进 k秒。将前 后语句进行对比,可以知道应该填人语句advanceMinutes(sec-onds advance(k)。 (3)考查 while循环语句,此处是函数 advance中的一条语句,它确定增加 k后 n的当前值和进位,并返回进位。变量 s表示累加进位,当 n到达或超过 base即进位,进位时 s要自加 1,因此为 s+; n-=base。

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

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

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