1、国家二级 C+机试(操作题)模拟试卷 243及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modi1 cpp,但该程序运行有问题,请改正 main函数中的错误,使程序的输出结果是: 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include iostream h #include iomanip h void main() int a33=1, 2, 3), 4, 5, 6, 7, 8, 9; int*p, i; *error*
2、p=a; for(i=0; i 9; i+) cout setw(2) *(p+i); *error* cout setw(2) *(a+i); if(i 3=2)cout endl; 二、简单应用题 2 使用 VC6打开考生文件夹下的源程序文件 modi2 cpp。完成空出的函数 fun(int a, int*index),使函数输入 n( 100)个整数到指定数组,求该数组中最大元素的值和此元素的下标,最大元素值以函数值返回,此元素的下标通过指针形参带回调用函数。 要求函数实现以下的功能: (1)获得输入的 n个整数; (2)把最大的数字的下标在第二个参数中输出; (3)把最大的数字作为返
3、回值。 注意:不能修改程序的其他部分,只能修改 fun()函数。 #include iostream h #define MAXLINE100 int fun(int a, int*index) void main() int AMAXLINE; int index; int maxdata; maxdata=fun(A, &index); cout “the max data is: “ maxdata “ “ “the posion is: “ indexendl; return; 三、综合应用题 3 用 VC6打开考生文件夹下的源程序文件 modi 3 cpp。其中定义的类并不完整,按照
4、要求完成下列操作,将类的定义补充完整。在屏幕和程序 modi3 txt文件中输出以下结果: Hello Test 出现异常情况 其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整: (1)以追加的方式打开文件 modi3 txt,请在注释 *1*后添加适当的语句。 (2)定义一个类对象 S,请在注释 *2*后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数 main与其他函数中的任何内容。 #include iostream h #include fstream using namespace std; void WriteFile(char*x) ofstream
5、out1; *1* out1 open(“modi3 txt“, ); out1 x ; out1 close(); void ClearFile() ofstream out1; out1 open(“modi3 txt“); out1 close(); class TestClass public: TestClasS() cout “Hello“ endl; WriteFile(“Hello“); TestClasS() cout “Test“ endl; WriteFile(“Test“); ; void main() ClearFile(); try *2* throw1; catc
6、h(int) cout “出现异常情况 “ endl; WriteFile(“出现异常情况 “); 国家二级 C+机试(操作题)模拟试卷 243答案与解析 一、基本操作题 1 【正确答案】 (1)p=&a00; (2)tout setw(2) *(*a+i); 【试题解析】 (1)打开 modi1 cpp,调试程序,显示错误提示为第一标识下“modil cpp(7): errorC2440: =: cannot convert fromint33toint*”, a为二维数组型变量,将其值赋值给 p,应该是 p指向数组 a的起始位置,即“p=&a00; ”。 (2)程序中第 2个标识下的 “c
7、out setw(2) *(a+i); ”语句应该是输出数组 a中元素的值,而该语句是 *(a+i)指向数组第 i个位置,要指向其值应该是 *(*a+i),所以第 2个标识下的语句改为 “cout setw(2 *(*a+i): ”。 二、简单应用题 2 【正确答案】 int i, n; do输入数组的大小 cout “Please input n “; cin n; while(n 99); tout “Please input an n“; for(i=0; i n; i+)输入数组中元素的值 cin ai; *index=0;元素下标值初始化 for(i=1; i n; i+)循环找出最
8、大值 if(a*index ai) *index=i;记录比较大元素的下标 return a*index;返回最大的元素值,其中 index为最大值的下标 【试题解析】 (1)首先输入数组大小,然后利用循环输入数组元素。 (2)利用 for循环对每一个当前数组元素与 index标记的元素进行大小比较。 (3)循环中将求得的最大数据 ai的下标标志位赋给标志位 index。 三、综合应用题 3 【正确答案】 (1)将 “out1 open(“modi3 txt“, ); ”补充完整为:out1 open(“modi3 txt“, ios_base: app); (2)添加语句: TestClass s; 【试题解析】 (1)题目 1要求 “以追加的方式打开文件 modi3 txt”。文件输出输入方式的设置值,以 ios: app方式是以输出方式打开文件,写入的数据添加在文件末尾,即第 1个标识下语句补全为 “out1 open(“modi3 txt“, iosbase:app); ”。 (2)题目 2要求 “定义一个类对象 s”。 C+中,在声明了类类型后,定义 对象的一般形式:类名对象名。所以这里添加 “TestClass s; ”。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1