1、国家二级 C+机试(操作题)模拟试卷 75及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并且使程序输出的结果为: a=7, b=0 a=8, b=10 注意:错误的语句在 *error*的下面,修改该语句即可。 #include class cobj public: *error* friend void func(CObj char temp; while(n!=0) desi=n 2+0; n=n 2; i+; 转化结果为 2进制最高位在 des的下标最低处,顺序刚好反了 desi=NUL
2、L; for(j=o ; ji 2 ; j+) 将顺序倒 过来 temp=desj;交换 desj=desi一 1一 j; desi一 1一 j=temp; 【试题解析】 (1)本题为将十进制数转换成二进制数,因此采用除 2求余法,通过该方法最终可以将一个十进制数转换成一个只包含 1和 0的数组。 (2)除 2求余法得到的是 0和 1的数值,不是 “0”和 “1”字符,还需将数字转化成字符, 0和 1通过加上 “0”的 ASCII码便可得到 0和 1的 ASCII码字符。 (3)因为除 2求余法得到的字符数组是从低位到高位保存的,因此需要先倒序后再输出,可利用循环方式 将顺序调转过来。 三、综
3、合应用题 3 【正确答案】 (1)添加语句: const double PI; (2)将 “CCircle(int radius)”补充完整为: CCircle(int radius) PI(CONSTPI) (3)添加语句: return radius*radius*PI; (4)添加语句: return 2*radius*PI; 【试题解析】 (1)第 1个标识下定义私有常量 PI,常数据成员是使用 const说明的数据成员,因此第 1个标识下应添加 “constdouble PI; ”0 (2)常数据成员的初始化只能通过构造函数的成员初始化列表进行,构造函数CCircle(int radius)应对常数据成员 PI进行初始化,第 2个标识下应改为“CCircle(int radius): PI(CONST_PI)”。 (3)第 3个标识下返回圆面积值,圆面积为半径平方与 PI的乘积值,即第 3标识下应添加 “return radius*radius*PI; y I。 (4)第 4个标识下返回周长,即第 4表示下应添加 “return2*radius*PI; ”。