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

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

1、国家二级 C+机试(操作题)模拟试卷 308及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modi1 cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: This is a greart! Hello Hello 注意:错误的语句在 *error*的下面,修改该语句即可。 #include class CMyClass public: void displayl() cout #include #define NUM 50 int ANUMNUM= 10, 13, 59, 70, 6, 2, 40, 89, 92, 9, 14, 55, 71,

2、11, 19, 79, 68, 83, 97, 101, 102, 10001, 23, 45 ; bool isPrime(int n) if(n=1) return false; if(n=2) return true; for(int i=2; i using namespace std; Class Date public: *3* void SetDate(int y, int m, int n); int IsLeapYear(); Void Print() coutyear“-“month “-“ dayendl; Prlvate: *1* ; void Date: SetDat

3、e(int y, int m, int d) year=y; month=m; day=d; int Date: IsLeapYear() *2* retUrn int main() Date datel , date2; datel SetDate(); date2 SetDate(2004, 12, 1); cout“datel: “; datel Print(); cout“date2: “; date2 Print(); *4* Cout “date2 is“ “: “not“)“a leapyear “endl; return 0; 国家二级 C+机试(操作题)模拟试卷 308答案与

4、解析 一、基本操作题 1 【正确答案】 (1)char str6=“Hello“; 或 char str=“Hello“; (2)void display3(char*string) 或 void display3(char string) (3)coutstringendl; 【试题解析】 (1)“Hello“字符串的长度为 5,存放在字符数组中的话,字符数组的长度至少为 6,因为字符数组的最后一个字符为 NULL,故第 1个标识下字符数组长度为 5太短,应改成 “char str6=“Hello“; ”或 “char str1=“Hello“; ”。 (2)char string表示 st

5、ring为一个 char变量,代表一个字符而不是一串字符,程序要求输出一串字符显然字符变量做不到,应该为字符指针或字符数组,故第 2个标识下应改为 “void display3(char*string)”或 “void display3(char string)”。 (3)编译程序发现第 3标识下有错误,观察程序可知第 3个标识下语句结束没有分号,而 C+语句必须以分号结束,应加上分号,即第 3表示下应改为“coutstringendl; ”。 二、简单应用题 2 【正确答案】 int re=0; for(int i=0; in; i+) for(int j=0; jn; j+) if(!is

6、Prime(Aij) 判断是否是素数,不是素数则累加 Ee=Ee+Aij; return re; 【试题解析】 (1)矩阵 ANUMNUM是 2维矩阵, SHIn函数的参数 n给出了矩阵 A的具体维数,因此矩阵 A中共含有 nn个有效数。 (2)ANUMNUM中元素可表示为 Aij,其中 i表示元素所在行数, i表示元素所在的列数, i、 j分别从 0到 n 1范围内变化,因此设置内外两层循环可逐个遍历整个矩阵寻找非质数。 (3)函数 isprime提供了判断质数的方法,对每个元素 Aij,调用函数isprime(Aij),判断函数的返刚值是否为假,如果为假说明不是质数,应该累加起来。 三、综

7、合应用题 3 【正确答案】 (1)int year, month, day; (2)将 “return”补充完整为: returnfyear 400=0) (year 4=0 year100!=0); (3)将 “void SetDate(int y, int m, int n); ”补充完整为: void SetDate(int y=2004,int m=12, int n=1); (4)将 “cout“date2 is“(“: “not“)“a leapyear “endl; “补充完整为:cout“date2 is“(date2 IsLeapYear()?“: “not“)“a leap

8、year “endl; 【试题解析】 (1)题目 1要求 “定义私有数据成员 year、 month、 day,分别用于年、月、日,它们都是 int型的数据 ”。在程序中的 Date类中的 priate区域添加数据成员 year、 month、 day的定义即可,其中它们的类型根据题目要求定义为 int型。即在第 1个标识下添加 “int year, month, day; ”。 (2)题目 2要求 “完成判断数据成员 date2是否是闰年函数 int Date:IsLeapYear()的定义 ”。公元纪年 的年数可以被 100整除而不能被 400整除为平年;被 100整除也可被 400整除的

9、为闰年。用程序语言表达为 “(year400=0)(year 4=0 year 100!=0)”,即在第 2个标识补充的返回值语句为“return(year 400=0)(year 4=0 year 100!=0); ”。 (3)题目 3要求 “设置 SetData0的默认时间为: 2004-12-1”。程序中类 Date的成员函数定义为 “voidSetDate(int y, int m, int n); ”,设置默认时间为:2004 12 1,就是设置 SetDate函数中的变量值分别为 2004, 12, 1。即成员函数的定义语句修改为 “voidSetDate(int y=2004, int m=12, int n=1); ”。 (4)题目 4要求 “完成主函数 main(),完成输出 date2 is a leapyear”。标识 4下的语句 “cout“date2is“(“: “not”)“a leapyear ”endl; ”缺少字符串 “date2 is”以及判断 date2是否为润年的 date2 IsLeapYear()函数 调用,所以这条语句补全为 “cout“date2 is“(date2 IsLeapYear07()?: “not“)“a leapyear “endl; ”。

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

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

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