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

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

1、国家二级 C+机试(操作题)模拟试卷 113及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现的功能为:从键盘输入一个字符串,并将结果保存到文件 modil txt中。 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include #include *error* using std; void WriteFile(char*S) ofstream outl; *error* outl open(”modil txt”, binary

2、f app); for(int i=0; Si!=0 ; i+) *error* outl puts(Si); outl close(); ) void ClearFile() ofstream outl ; outl open(”modil txt”); outl close(); int main() char S1024; ClearFile(); cout #define MAXLEN 1024 bool IsPalindromes(char*string) void main() char strMAXLEN; cout C1ass Person public: *1* void p

3、rint(); int sex; ; class Man: public Person public: Man() *2* void print() cout”Man”endl ; ; ; class Woman: public Person public: Woman() *3* void print() cout“Woman”endl; ; ; *4* cout“Sex=”; P print(); int main() Man m; fun(m); Woman n; fun(n); return 0; 国家二级 C+机试(操作题)模拟试卷 113答案与解析 一、基本操作题 1 【正确答案】

4、 (1)using namespace std; (2) out1 open(“modil txt”, ios: binary ios: app); (3)outl put(si); 【试题解析】 程序要求从键盘输入一个字符串,并将结果保存到文件 modil txt中。从已给定源程序的 main主函数开始入手, main主函数首先调用 ClearFile函数打开文件,然后调用 WriteFile函数将字符串写入文件。 解题思路 (1)第 1个标识下的 “using std; ”是在程序中引入标准命名空间 std,对于 C+中引入标准命名空间的格式,缺少 namespace,所以第 1个标识下的

5、语句修改为 “using namespace std; ”。 (2)第 2个标识下,调用成员函数 open中,输入输出方式是 在 ios类中定义的,所以 “outl open(”modil txt”, binarylapp); ”语句缺少类 ios,即第 2个标识下的语句修改为 “out1 open(”modil txt”, ios: binarylios: app); ”。 (3)第 3个标识应该用流成员函数 put输出字符,所以第 3个标识下的语句修改为“outl put(si); ”。 二、简单应用题 2 【正确答案】 int len=0 ; for(; stringlen!=NULL;

6、 len+) 获取字符串的长度 ; fen一一; 下标从 0开始到 len一 1 for(int i=0 ; ilen; i+, len-一 ) 第一个和最后一个比较,第二个和倒数第二个比较 if( stringi != string 1en)不等说明不同,返回 0 return 0 ; return 1; 【试题解析】 (1)由于字符串的长度是未知的,先利用循环求出字符串的长度,循环变量从 0开始,直到数组的结束, stringlen=NUL为循环结束条件,如此便得到了数组的长度 len。 (2)知道长度后就可以判断对称位置的元素是否相同,比如第一个元素和最后一个元素,第二个元素和倒数第二个

7、元素,如此比较下去直到到了最中间的元素为止。 (3)可以利用循环来比较是否对称,设置另一个循环变量 i, i从 0开始表示从数组的头开始读数, len从数组的尾部开始读数,如果 stringi!=stringlen,则跳出循环返回 0,如果循环结束还没发现不同则返回 1。 三、综合应用题 3 【正确答案】 (1)将 “viid print(; ”补充完整为: Virtual void print(); (2)添加语句: sex=1; (3)添加语句: sex=0; (4)添加语句: void fun(Person&p) 【试题解析】 在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中

8、给出注释下的内容逐个补全或修改。从已定源程序的 main主函数开始入手,可以看出程序通过调用类的成员函数实现各种输出操作。 解题思路 (1)题目 1要求 “基类 Person完成打印功能,定义其中的打印函数为虚函数 ”。虚函数是函数的一种,定义虚函数,在函数名前声明 virtual就可以了,所以第 1个标识下的 “void print(); ”语句修改为 “virtual void print(); ”。 (2)题目 2要求 “类 Man继承于 Person,在构造函数中设置性别为 1”。基类 Person中变量 sex是用来存放性别的, Man继承 Person,所以 Man中性别的变量可以使用基类中的 sex变量,设置性别为 1,即 “sex=1; ”。 (3)题目 3要求 “类 Woman继承于 Person,在构造函数中设置性别为 0”。同 (2),在第三个标识下添加 “sex=0; ”。 (4)题目 4要求 “实现函数 fun0,用于传递不同的类型,打印出性别 ”。 根据“p printO; ”语句知道, fun()函数的形参为指针 p,由于它调用了基类 Person中的成员函数 print(),所以 p的基类为 Person,即添加函数 fun()的定义为 “void fun(Person&p)”。

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

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

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