国家二级C++机试(操作题)模拟试卷566
基本操作题
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******的下面。
1 #include<iostream.h>
2 #include<iomanip.h>
3 void main() {
4 int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
5 int *p,i;
6 //********error********
7 p=a;
8 for(i=0;i<9;i++) {
9 cout<<setw(2)<<*(p+i);
10 //********error********
11 cout<<setw(2)<<*(a+i);
12 if(i%3==2) cout<<end1;
13 }
14 }
(1)P=&a[0][0];
(2)cout<<setw(2)<<*(*a+i);
解析:从已给定源程序的main主函数开始入手,可以看出程序是通过数组与指针两种方法输出数组值。
(1)打开modi1.cpp,调试程序,显示错误提示为第一标识下“modi1.cpp(7):error C2440:’=’:cannot convert from ’int[3][3]’to ’int *’”,a为二维数组型变量,将其值赋值给p,应该是p指向数组a的起始位置,即“p=&a[0][0];”。
(2)程序中第2个标识下的“cout<<setw(2)<<*(a+i);”语句应该是输出数组a中元素的值,而该语句是*(a+i)指向数组第i个位置,要指向其值应该是*(*a+i),所以第2个标识下的语句改为“cout<<setw(2)<<*(*a+i);”。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。完成空出的函数fun(int a[],int* index),使函数输入n(<100)个整数到指定数组,求该数组中最大元素的值和此元素的下标,最大元素值以函数值返回,此元素的下标通过指针形参带回调用函数。
要求函数实现以下的功能:
(1)获得输入的n个整数;
(2)把最大的数字的下标在第二个参数中输出;
(3)把最大的数字作为返回值。
注意:不能修改程序的其他部分,只能修改fun()函数。
1 #include<iostream.h>
2 #define MAXLINE 100
3 int fun(int a(1,int *index)
4 {
5
6 }
7 void main()
8 {
9 int A[MAXLINE];
10 int index;
11 int maxdata;
12 maxdata=fun(A,&index);
13 cout<<’’the max data is:’’<<maxdata<<’’ ’’<<’’the posion is:’’<<index<<end1;
14 return;
15 }
1 int 1,n;
2 do //输入数组的大小
3 {
4 cout<<’’Please input n\n’’;
5 cin>>n;
6 } while(n>99);
7 cout<<’’Please input a[n]\n’’;
8 for(i=0;i<n;i++)//输入数组中元素的值
9 {
10 cin>>a[i];
11 }
12 *index=0;
//元素下标值初始化
13 for(i=1;i<n;i++)//循环找出最大值
14 {
15 if(a[*index]<a[i])
16 *index=i;//记录比较大元素的下标
17 }
18 return a[*index]; //返回最大的元素值,其中index为最大值的下标
解析:(1)该程序功能是求数组中最大元素的值和此元素的下标。它的解题思路,初始化记录下标变量为0,指向数组第一个元素,逐个把所有元素和标记字符进行比较,并将大值的下标赋值给记录下标变量,从而找出最大值。
(2)从己给部分源程序的main主函数开始入手,核心函数int fun(int a[],int *index)中的a参数为输入的数组,其中index为记录最大值下标变量。
(3)首先输入数组大小,然后利用循环输入数组元素。
(4)利用for循环对每一个当前数组元素与index标记的元素进行大小比较。
(5)循环中将求得的最大数据a[i]的下标标志位赋给标志位index。
综合应用题
3.用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按照要求完成下列操作,将类的定义补充完整。在屏幕和程序modi3.txt文件中输出以下结果:
Hello
Test
出现异常情况
其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整:
(1)以追加的方式打开文件modi3.txt,请在注释//********1********后添加适当的语句。
(2)定义一个类对象s,请在注释//********2********后添加适当的语句。
注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。
1 #include<iostream.h>
2 #include<fstream>
3 using namespace std;
4 void WriteFile(char *x)
5 {
6 ofstream out1;
7 //********1********
8 out1.open(’’modi3.txt’’, );
9 out1<<x<< ’ ’;
10 out1.close(),
11 }
12 void ClearFile()
13 {
14 ofstream OHt1;
15 out1.open(’’modi3.txt’’);
16 out1.Close();
17 }
18 class TestClass
19 {
20 public:
21
本文档预览:3600字符,共4587字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载