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

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

1、国家二级 C+机试(操作题)模拟试卷 38及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: Numbe=8 注意:错误的语句在 *error*的下面,修改该语句即可。 1 #include 2 class CMyClass 3 4 public: 5 *error* 6 void&Get() 7 8 return&Number; 9 10 void Set(int m) 11 12 Number=m; 13 14 void display() 15 16 cout 2 #include

2、3 #include 4 USing namespace std; 5 void WriteFile(int c) 6 7 ofstream outl; 8 outl open(“modi2 txt“, ios_base: binary ios_base: app); 9 outl 2 #include 3 #include 4 #include 5 using namespace std; 6 void WriteFile(int c) 7 8 ofstream out1 ; 9 outl open(“modi3 txt“, iosbase: app); 10 outl c ; 11 out

3、i close(); 12 13 void WriteFi le(char*str) 14 15 ofstream outl; 16 outl open(“modi3 txt“, los_base: app); 17 outlstr; 18 outl close(); 19 20 void ClearFile() 21 22 ofstream outl ; 23 outl open(”modi3 txt”); 24 outl close(); 25 26 class Date 27 28 public: 12 Date(int y, int m, int d) 30 31 *2* 32 33

4、34 void print()const ; 35 *3* 36 37 38 month+=m; 39 int i=month 12; 40 int J=month 12; 41 if(j=0) 42 43 year+=(i-1); 44 month=12; 45 46 else 47 48 year+=i; 49 month=j; 50 51 return *this ; 52 53 private: 54 *1* 55 56 ; 57 void Date: print()const 58 59 *4* 60 61 WriteFile(year); 62 WriteFile(“年 “); 6

5、3 WriteFile(month); 64 WriteFile(“月 “); 65 WriteFile(day); 66 WriteFile(“日 “); 67 68 int mein() 69 70 ClearFile(); 71 Date Oly_day(2008, 8, 8); 72 Oly_day+=3 ; 73 OIy_day print(); 74 return 0; 75 国家二级 C+机试(操作题)模拟试卷 38答案与解析 一、基本操作题 1 【正确答案】 (1)void*Get() (2)添加语句: CMyClass t ; (3)P=(int*)t Get(); 【试题解

6、析】 程序中定义了类 CMyClass,含有一个成员变量 Number, Get()返回 Number的地址 (指针 ), Set(int m)函数可改变成员变量的值, display()数在屏幕上打印 Number的值。 解题思路 (1)Get()的返回的是 “return&Number; ”,即返回 Number的地址,主函数中 P为整型指针,但是 “P=t Get(); ”有错误,因为 Get()函数返回 的不是整型指针,而应该是空指针 (void),空指针可强制类型转换成其他类型的指针,第 1个标识下应改为 “void*Get()”。 (2)由于 Get()函数返回空指针 (void)

7、,要使 P指向 Get(1函数的返回值,必须做强制类型转化,即第 3个标识下应改为 “P=(int*)t Get(); ”。 (3)变量 t可以使用 Get()函数,说明 t为 CMyClass类对象。即第 2个标识下应添加对象定义,故第 2个标识下添加 “CMyClass t: ”。 二、简单应用题 2 【正确答案】 1 for(int i=1 ; i=x; i+) 2 3 if(x i=0) 如果 X被 i整除,那么 i为 X的约数 4 5 WriteFile(i); 将约数 i存入文件 6 7 【试题解析】 (1)本题中函数的功能是求出约数。 X的约数就是能整除其的所有整数。可以从 1开

8、始到 x,计算取余。如果整除该数为 X的约数。 (2)从已给部分源程序的 main主函数开始入手,核心函数 void fun(int x)中的 x参数为要计算约数的整数。 解题思路 (1)由 l到 x,循环判断其中是否有 X的约数。 (2)如果 x被 i整除,那么 i为 x的约数。 (3)最后调用 WriteFile函数,将约数 i存入文件。 三、综合应用题 3 【正确答案】 (1)添加语句: int year, month, da y; (2)添加语句: year=y; month=m; da y=d; (3)添加语句: Date & operator+=(int m) (4)添加语句: c

9、outyear“年 “month“月 “day“日 “end 1 ; 【试题解析】 在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的 main主函数开始入手,可以看出程序通过调用类 Date和函数 print实现各种输出操作。 解题思路 (1)题目 1要求 “定义私有成员变量 year、 month、 day”。在 C+程序的 pfivate区域中添加变量 year、 month、 day的定义,即在第 1个标识下添加 “int year,month,day; ”。 (2)题目 2要求 “完成构造函数,分别给 year、 month、

10、 day赋值 ”。在程序中“Date(int y,int m,int d)”的构造函数中添加给 year、 month、 day赋值的语句,即在第 2个标识下添加 “year=y; month=m; day=d; ”。 (3)题目 3要求 “完成重载符号 “+=”的定义 ”。在 C+中,运算符重载的定义方法是定义一个重载运算符的函数,格式为函数 operator+重载运算符号 +,所以这里补全 “Date&operator+=(int m)”。 (4)题目 4要求 “完成函数 print()打印函数 ”。在 C+中的 print()函数中补全其打印功能,即在第四个标识下添加 “coutyear“年 “month“月 “dav“日“endl; ”。

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

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

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