国家二级C++机试(操作题)模拟试卷389
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,即使程序在界面输出以下类似内容:
0012FF68 1 0012FF3C 5
0012FF6C 2 0012FF44 4
0012FF70 3 0012FF4C 3
0023FF74 4 0012FF54 2
0012FF78 5 0012FF5C 1
006AFDCC~006AFDEF数据可能因为机器的不同,程序的输出的内容会有差异。只要相差为4的连续地址即可。
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构, 错误的语句在∥********error********的下面。
#include
using namespace std;
int main()
{
int*p,a[5]={1,2,3,4,5};
double*q,b[5]={5.0,4.0,3.0,2.0,1.0);
int x;
p=a;
q=b;
∥********error********
for(x=0;x<=5;x++)
∥********error********
cout<<P+x << “ ” <<
(p+x)<<“”<<q+x<<“”<<(q+x)<<end1;
return 0;
}
(1)for(x=0 ; x<5;x++)
(2)cout<<p+x<< “” << *(p+x) << ”“ << q+x << ” ” << *(q+x) << endl;
解析:本题的程序功能是输出相差为4的连续地址。从己定源程序的main主函数开始入手,依次执行程序中的语句,重点分析、调试标识下的错误语句,输出题目要求的结果。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(char*str,char ch),本函数采用二分法,在己按字母次序从小到大排序的字符数组str中,查找字符ch,若ch在数组中,函数返回字符ch在数组中的下标,否则返回一1。
二分法查找的思想是:初始查找区间的下界为0,上界为len一1,查找区间的中后,k=(下界+上界)/2;若list[k]等于ch,查找成功;若list[k]>ch,则新的查找区间的下界不变,上界改为k-1;否则新的查找区间的下界改为k+1,上界不变。在新区间内继续用二分法查找。
注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
int fun(char*Str,char ch)
{
}
Void msin()
{
char Str[]=(‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’,‘i’,‘j’,‘k’,0);
char ch;
cout<<“请输入一个字符:”<<end1;
Cin>>ch;
cout<<“输入数字的位置是:”<<
fun(Str,ch)<<end1;
return;
}
int low=0; //初始查找区间的下界
int high;
int k;
for(high=0;str[high]!=0;high++)
//求字符串长度
while(low<high)//循环判断字符位置
{
k=(low+high)/2;
if(Str[k]==ch)
return k;
else if(str[k]>ch)
high=k-1;
else low=k+1;
}
if(Str[low]==ch)
return loW;
return一1;
解析:根据题干中给出的二分法查找思想,从己给部分源程序的main主函数开始入手,核心函数int fun(char*str,char ch)中的ch参数为输入的字符,其中返回值为ch所在的位置。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp。此程序的运行结果为:
In CDerive’s display().b=1
In CDerive2’s display().b=2
其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)定义函数display()为无值型纯虚函数。请在注释∥********1********之后添加适当的语句。
(2)建立类CDerive的构造函数,请在注释∥********2********之后添加适当的语句。
(3)完成类CDerive2成员函数diaplay0的定义。请在注释∥********3********之后添加适当的语句。
(4)定义类Derivel的对象指针d1,类CDerive2的对象指针d2。其初始化值分别为1和2。请在注释∥********4********之后添加适当的语句。
注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
#include
using namespace std;
Class CBase
{
public:
CBase(int i){b=i;)
∥********1********
protected:
int b;
};
class CDerive:public CBase
{
public:
∥********2********
void di splay()
{
cout<<“In CDerive’s
display().“<<”b=”<<b<<endl;
}
};
class CDerive2:public CBase
{
public:
CDerive2(int i):CBaSe(i){}
∥********3********
};
void func(CBase*obj)
{
obj一>di splay();
<本文档预览:3600字符,共4189字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载