国家二级C++机试(操作题)模拟试卷318
简单应用题
1.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数fun(int n)的功能是实现对一个整数的加密,具体的加密方法是:一个四位长的整数,每位数字加上3然后除以9的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换,然后返回得到的密码。
程序输出:
7654
2108
注意:不能修改其他部分的代码。
#include
#include
int fun(int n)
{
}
int main()
{
int i=1234;
cout<<fun(i)<<endl;
i=5678;
cout<<fun(i)<<endl;
return 0;
}
int i,a[4],t;
a[0]=n%10;
//取整型n的第一位数字
a[1]=n%100/10;
//取整型n的第2位数字
a[2]=n%1000/100;
//取整型n的第3位数字
a[3]=n/1000;
//取整型n的第4位数字
for(i=0;i<=3;i++)
//每位数字加3,取余
{
a[i]+=3;
a[i]%=9;
}
t=a[0];
//根据加密算法交换
a[0]=a[3];
a[3]=t;
t=a[1];
a[1]=a[2];
a[2]=t;
return
a[3]*1000+a[2]*100+a[1]*
10+a[0]; //重组,返回加密数字
解析:(1)首先取得要加密整数的每一位数字,并存入数组。
(2)根据加密算法,首先利用循环实现每位数字加3,除以9取余。
(3)然后根据加密算法进行数字交换,最后重组,返回密码。
综合应用题
2.使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:
(1)完成CMyClass的构造函数,请改正注释//********1********后的错误。
(2)完成fun()函数定义,请改正注释//********2********后的错误。
(3)初始化CMyClass的成员变量Number3为4,请改正注释//********3********后的错误。
(4)完成fun()函数,请改正注释//********4********后的错误。
输出的结果为:
Number1=12
Number2=18
Number3=16
Number1=4
Number2=2
Number3=19
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
class CMyClass
{
public:
//********1********
CMyClass(int i,int j)
{
Number1=i;
Number3+=i;
}
void display()
{
cout<<\\
(1)将“CMyClass(int i,int j)”补充完整为:CMyClass(int i,int j):Number2(j)
(2)添加语句:friend void func();
(3)添加语句:int CMyClass::Number3=4;
(4)将“obj.AddNum()”补充完整为:obj.AddNum(2);
解析:(1)第1个标识下完成类的构造函数初始化类的成员变量,常成员也必须初始化,并且不能被更新,常数据成员的初始化只能通过构造函数的成员初始化类表进行,因此第1个标识下应为“CMyClass(int i,int j):Number2(j)”,i用来初始化Numberl和Number3,i初始化Number2。
(2)第2个标识下完成func()函数定义,由审题分析可知,函数func()为类的友元,故第2个标识下应为“friend void func();”。
(3)第3个标识下是静态成员的初始化,静态数据成员的初始化格式为:::=,因此第3个标识下应为“int CMyClass::Number3=4;”。
(4)成员函数AddNum()带有一个整型参数,因此调用此函数时必须有参数传入,可由程序运行结果分析得知传入的参数值的大小。在fun()函数内,定义CMyClass obj(1,2)后,obj.Numberl=1,obj.Number2=2,Number3=16+1=17,obj.Numberl=4,Number1为4,obj.Number2为常成员其值不会改变,调用AddNum()函数后调用显示函数显示成员变量值,可知Number3为19,因此AddNum()的参数为19.17=2,即第4个标识下应为“obj.AddNum(2);”。
本文档预览:3600字符,共2814字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载