国家二级C++机试(操作题)模拟试卷319
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modi1.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 << \\
(1)for(x=0;x<5;x++)
(2)cout<<p+x<< \\
解析:(1)根据数组a、b定义,它们都是5个元素,而第1个标识下的“for(x=0;x<=5;x++)”循环了6次,应该是5次,所以第1个标识下的将其修改为“for(x=0;x<5;x++)”
(2)第2个标识下的P变量为指针型变量,p+x为指向数组中第x个元素的地址,这里要输出的是存储单元的内容,所以使用“*”指针元素符,即修改为“cout<<p+x<<\\
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码。函数func(intd[],int n)的功能是将长度为num的数组d的每一个数字是奇数的扩大1倍,并存储到数组d中。
例如:1 2 3 4 5 6 7 8 9
返回:2 2 6 4 10 6 14 8 18
将func(int d[],int num)补充完整。
注意:请勿改动主函数。
#include
Void func(int d[],int num)
{
}
int main()
{
int Data[]={1,2,3,4,5,6,7,
8,9);
func(Data,9);
for(int i=0;i<sizeof(Data)/
sizeof(int);i++)
{
cout<<Data[i]<<’ ’;
}
cout<<endl;
return 0;
}
for(int i=0;i<num;i++)
{
if(d[i]%2!=0)
d[i]=2*d[i];
}
解析:(1)由审题分析可知,利用循环来逐个判断d[]中的元素,d[]中元素个数为num,因此循环变量从0变化至num。
(2)在循环内,用if判断该元素是不是奇数,即if(d[i]%2!=0),将满足条件的d[i]扩大一倍。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1) 重载运算符int,请在注释//********1********后添加适当的语句。
(2)重载运算符“<<”,请在注释//********2********后添加适当的语句。
(3)在主函数main()中定义变量i,并调用对象obi的int运算符,给变量赋初值为10,请在注释//********3********后添加适当的语句。
(4)调用obj的“<<”运算符输出:
HelloTest
注意:增加代码,或者修改代码的伊鼠已经川符号表示出来。请不要修改其他的程序代码。
#include
using namespace std;
Class TestClass
{
public:
//********1********
{
cout<<\\
(1)添加语句:operator int()
(2)添加语句:operator<<(char*str)
(3)添加语句:int i=int(obj);
(4)添加语句:obj<<\\
解析:(1)题目1要求“重载运算符int”的定义。运算符重载的方法是定义一个重载运算符的函数,其一般格式为:函数类型opemmr运算符名称(形参列表){对运算符的重载处理)。所以第1个标识下,重载运算符int的语句为“operator int()”。
(2)题目2要求“重载运算符‘<<’”。同(1),第2个标识下“<<”的重载函数定义为“operator<<(char*str)”。
(3)题目3要求“在主函数main()中定义变量i,并调用对象obj的int运算符,给变量赋初值为10。”定义变量i,即int i。“operator int()”中的返回值为10,所以调用对象obi的int运算符,给变量赋初值为10,就是int(obj),即第三个标识下添加“inti=int(obj);”。
(4)题目4要求“调用0bj的“<<”运算符输出“HelloTest”\\
本文档预览:3600字符,共3159字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载