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

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

1、国家二级 C+机试(操作题)模拟试卷 58及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 1 5 1 注意:错误的语句在 *error*的下面,修改该语句即可。 1 #include 2 *error* 3 enum 4 5 Sun, 6 Mon, 7 Tue, 8 Wed, 9 Thu, i0 Fri, 11 Sat, 12 *error* 13 MyEnum; 14 Struct Struct 15 16 *error* 17 int Fri, 18 int Sun; 19 ; 2

2、0 void main() 21 22 int i=Mon ; 23 MyEnum t=Fri ; 24 Struct strl; 25 strl Fri=Mon; 26 cout 2 void func(int d, int num) 3 4 5 6 int main() 7 8 int Data=(1, 2, 3, 4, 5, 6, 7, 8, 9); 9 func(Data, 9); 10 for(int i=0, i 2 using namespace std; 3 class Date 4 5 public: 6 *3* 7 void SetDate(int Y, int m, in

3、t n); 8 int IsLeapYear(); 9 void Print() 10 cout; ”,程序当中把枚举类型名 MyEnum放到枚举声明后面,显然不符合枚举类型声明格式,因此第 1个标识下应改成 “enumMyEnum”。 (2)由 (1)的分析可知,第 2个标识下也不符合枚举类型声明格式,应以 “; ”结束,即第 2个标识下应改为 “; ”。 (3)第 3标识处声明结构体,结构体定义的一般形式为: struct ; 结构体中成员列表中各个元素是不同的变量,变量之间应以分号隔开,而不是以逗号隔开,因此第 3个标识下应改为为 “int Fri; ”0 二、简单应用题 2 【正确答案

4、】 1 for(int i=0; inum; i+) 2 3 if(di 2 !=0) 4 di=2*di; 5 【试题解析】 函数 func(int d, int n)功能是将长度为 num的数组 d的每一个数字是奇数的扩大 1倍,并存储到数组 d中,因此可利用循环来查找该数组,如果该元素为奇数则变为原来的两倍。 解题思路 (1)由审题分析可知,利用循环来逐个判断 d中的元 素, d中元素个数为hum,因此循环变量从 0变化至 num。 (2)在循环内,用 if判断该元素是不是奇数,即 if(di 2 !=0),将满足条件的 di扩大一倍。 三、综合应用题 3 【正确答案】 (1)int y

5、ear, month, day; (2)将 “return”补充完整为: return(year 400=0) (year 4=0&year 100 !=0); (3)将 “void SetDate(int y, int m, int n); ”补充完整为: void SetDate(int y=2004,intm=12, int n=1); (4)将 “cout“date2 is“(“: “not“)“a leapyear “endl; ”补充完整为:cout“date2iS“(date2 IsLeapYear()?“: “not“)“ aleapyear “endl; 【试题解析】 本题中

6、程序的功能是判断 2004年是否为闰年。其中成员函数SetDate设置日期, IsLeapYear函数判断是否为闰年。在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的 main主函数开始入手,可以看出程序通过调用类 Date和和其成员函数实现各种功能。 解题思路 (1)题目 1要求 “定义私有数据成员 year、 month、 day,分别用于年、月、日,它们都是 int型的数据 ”。在程序中的 Date类中的 priate区域添加数据成员 year、month、 day的定义即可,其中它们的类型根据题目要求定义为 int型。即在第 1

7、个标识下添加 “int year,month, day; ”。 (2)题目 2要求 “完成判断数据成员 date2是否是闰年函数 int Date: IsLeapYear0的定义 ”。公元纪年的年数可以被 100整除而不能被 400整除为平年;被 100整除也可被 400整除的为闰年。用程序语言表达为 “(year 400=0)|(year4=0&year 100!=0)”,即在第 2个标识补充的返回值语句为 “return(year400=0)|(year 4=0&year 100 !=0); ”。 (3)题目 3要求 “设置 SetData()的默认时间为: 2004-12-1”。程序中类

8、 Date的成员函数定义为 “voidSetDate(int y,int m, int n); ”,设置默认时间为: 2004-12-1,就是设置 SetDate函数中的变量值分别为 2004, 12, 1。即成员函数的定义语句修改为 “void SetDate(int y=2004, intm=12, int n=1); ”。 (4)题目 4要求 “完成主函数 main(),完成输出 date2 isa leapyear”。标识 4下的语句 “cout“date2 is“(“: “not“)“a leapyear “endl; ”缺少 字符串 “date2 is”以及判断 date2是否为润年的 date2 IsLeapYear()函数调用,所以这条语句补全为 “cout“date2 is“(date2 IsLeapYear()?“: “not“)“a leapyear “endl; ”。

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

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

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