1、国家二级 C+机试(操作题)-试卷 156 及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6 打开考生文件夹下的源程序文件 modilcpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 100 37 32 注意:错误的语句在*error*的下面,修改该语句即可。 #include *error* void main( *error* int m=0 142; *error* int n=0X27; int q=32 ; coutmn(q_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6 打开考生文件夹下
2、的源程序文件 modi2cpp。阅读下列函数说明和代码,补充空出的代码。函数 convert(char*deschar*str,char c,char*str2)的功能是: 如果 s 仃中包含字符“!”,则替换成“a; 如果 str 中包含字符“outlX.outlclose();void ClearFile()ofstream outl ;outlopen(”modi3txt”);outlClose();class TestClasspublic:void disp()cout(m=mendl;WriteFile(m);cout”n=”nendl;WriteFile(n);*2*;void
3、main()*3*ClearFile();TestClass a;a*p=3 0;*4*a*p=4 5 ;adisp();(分数:2.00)_国家二级 C+机试(操作题)-试卷 156 答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6 打开考生文件夹下的源程序文件 modilcpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 100 37 32 注意:错误的语句在*error*的下面,修改该语句即可。 #include *error* void main( *error* int m=0 142; *error* i
4、nt n=0X27; int q=32 ; coutmn(q_正确答案:(正确答案:(1)VOid main() (2)int m=0144; (3)int n=0X2 5; 或 int n=0X2 5)解析:解析:(1)本题主要考察了主函数定义及不同进制之间的转换,包括十进制到八进制,十进制到十六进制。主函数定义的定义形式为“main()”,函数名之后必须是一对括号,因此第 1 个标识下应改为“void main()”。 (2)cout 输出默认是 10 进制方式输出的,根据题目要求输出的结果可发现变量的初值不正确,十进制的 100 对应八进制的 144,十进制的 37 对应十六进制的 25
5、,因此 2 和 3 应分别改成“int m=0144;”,“int n:0X25;”或“int n=0x25;“。二、简单应用题(总题数:1,分数:2.00)2.使用 VC6 打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,补充空出的代码。函数 convert(char*deschar*str,char c,char*str2)的功能是: 如果 s 仃中包含字符“!”,则替换成“a; 如果 str 中包含字符“outlX.outlclose();void ClearFile()ofstream outl ;outlopen(”modi3txt”);outlClose()
6、;class TestClasspublic:void disp()cout(m=mendl;WriteFile(m);cout”n=”nendl;WriteFile(n);*2*;void main()*3*ClearFile();TestClass a;a*p=3 0;*4*a*p=4 5 ;adisp();(分数:2.00)_正确答案:(正确答案:(1)将“outlopen(“modi3txt“,);”补充完整为:outlopen(”modi3txt”,iosbase:app); (2)添加语句:int m,n; (3) 添加语句: int TestClass:*p=&(TestClas
7、S:m); (4)添加语句:P=&(TestClasS:n);)解析:解析:在 VC 环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的 maha 主函数开始入手,可以看出程序通过调用类 TestClass 和函数ClearFile0 实现各种输出操作。 解题思路 (1)题目 1 要求“对文件以追加的方式打开文件”。文件输出输入方式的设置值,以 ios:app 方式是以输出方式打开文件,写入的数据添加在文件末尾,即第 1 个标识下语句补全为“outlopen(”modi3txt”,ios_base:app);”。 (2)题目 2 要求“定义 m、
8、n为类 TestClass 的公有 int 型数据成员”。只需在程序中的 TestClass 类中的 public 区域添加 m、n 的定义即可。即在第 2 个标识下添加“intm,n;”。 (3)题目 3 要求“定义 P 为类 TestClass 的数据成员指针,并指向类 TestClass 数据成员 m”。程序中类 TestClass 数据成员 m 为:TestClass:m,定义 P 为类TestClass 的数据成员指针语句为:TestClass:*p,将其指向前面的数据成员 m,即为“int TestClass:p=&(TestClass:m);”。 (4)题目 4 要求“定义 P 指向类 TestClass 数据成员 n”。类TestClass 数据成员 n 语句为 TestClass:n,用 P 指向类 TestClass 数据成员 n,添加的语句即“p=&(TestClass:n);”。