1、国家二级 C+机试(操作题)模拟试卷 18及答案与解析 一、基本操作题 1 使用 vC+6 0打开考生文件夹下的源程序文件 1 cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件 1 txt中。 注意:不要改动 main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在 * * * * * * * * error* * * * * * * * 的下面。 试题程序: #include #inelude * * * * * * * * error* * * * * * * * using std; void WriteFile(e
2、har*s) ofstream outl; * * * * * * * * error* * * * * * * * outl open(”1 txt”, binaryf app); for(int i=0; si!=O; i+) * * * * * * * * error* * * * * * * * out1 puts(si); out1 close(); void ClearFile() ofstream out1; out1 open(“1 txt“); out1 close(); int main() char s1024; ClearFile(); cout double sum(
3、int n) void main() cout #include class StuID *1* public: *1* IDvalue=id; cout“学生的学号为: “IDvalueend1; *3* cout“删除学生学号为: “IDvalueend1; ; class StuInfo private: StuID id; char name20; public: *4* cout”学生名为: “stNameend1: strcpy(name, stName): ); void main() StuInfo st(“张三 “, 20100401): 国家二级 C+机试(操作题)模拟试卷
4、 18答案与解析 一、基本操作题 1 【正确答案】 (1)应改为 “using namespace std; ”。 (2)应改为 “out1 open(“1 txt“, ios: binary ios: app); ”。 (3)应改为 “out1 put(si); ”。 【试题解析】 本题第 1处的 “using std; ”是在程序中引入标准命名空间 std,对于 C+中引入标准命名空间的格式,缺少 namespace,所以第 1处的语句修改为“using namespace std; ”。第 2处,调用成员函数 open中,输入输出方式是在 ios类中定义的,所以 “out1 open(“
5、1 txt“, binary app); ”语句缺少类 ios,即第2处的语句修改为 “out1 open(”1 txt”, ios: binary ios: app); ”。第 3个标识应该用流成员函数 put输出字符,所以第 3处的语句修改为“out1 put(si); ”。 二、简单应用题 2 【正确答案】 int result=0; for(int i=11; i=n; i+4-) if(i 7=0)&(i 11=O) result+=i: return result; 【试题解析】 本题利用循环查找所有小于等于 n的能被 7和 11整除的数,循环变量 i从最小值 11开始,到 n结束
6、,即 11(=i(=n。在函数中定义累加变量 result用来保存求和结果,在循环体内,逐个判断每个 i是否能被 7和 11整除,即 (i7=0)和 (i 11=0)都满足的话,说明 i能同时被 7和 11整除,将该值加到 result上,循环结束返回 result。 三、综合应用题 3 【正确答案】 (1)应添加 “long IDvalue; ”。 (2)应添加 “StuID(long id=0)”。 (3)应添加 “ StuID()”。 (4)应添加 “Stulnfo(char stName=“no name“, long stID=O): id(stlD)”。 【试题解析】 本题中在第
7、1处完成 StuID类的私有数据成员 IDvalue的定义,应为 long型的数据,因此第 1处应添加 “long IDvalue; ”。构造函数完成类成员变量的初始化,构造函数名和类名一致,该构造函数带有一个参数 id,其默认值为id=0,因此第 2处应添加 “StuID(long id=0)”。析构函数也和类名一致,并且在 前面加 “ ”以和构造函数区分,析构函数没有参数,故第 3处应添加 “ StuID()”。StuInfo包含的学生学号信息保存在类 StuID的实例中,可通过调用类 StulD的自定义构造函数初始化,第 4处应添加 “StuInfo(char stName=“no name“, long stlD=0): id(stID)”。