1、计算机二级(C+)上机考试 10 及答案解析(总分:-3.00,做题时间:90 分钟)1.改错题 使用 VC6 打开考生文件夹下的工程 test6_1,此工程包含一个源程序文件 test6_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下: Constructor2 Constructor1 i=0 i=10 Destructor 源程序文件 test6_1.cpp 清单如下: #include class CSample int i; public: CSample()coutdisp(); (分数:-1.00)_2.简单应用题 常用字符串函数 strcat(s1,s
2、2)可将字符串 s2 添加到字符串 s1 的末端,但其使用必须保证字符串 s1 足够大,以便保存它自己的内容和字符串 s2 中的内容。请编写一个函数 char *append(char *s1,char *s2),其可将字符串 s2 添加到字符串 s1 的末端,而且不受 s1 空间大小的限制。请利用常用字符串函数实现。 常用字符串函数说明: strcpy(to,form):将 form 字符串复制到 to 字符串; strcat(s1,s2):将字符串 s2 添加到字符串 s1 的末端,但必须保证字符串 s1 足够大; strlen(s):返回字符串 s 的长度; 注意:部分源程序已存在文件
3、test4_2.cpp 中。 请勿修改主函数 main 和其他函数中的任何内容,仅在函数 append 的花括号中填写若干语句。 输出结果如下: this is a string. 文件test4_2.cpp 的内容如下: #include #include char *append(char *s1,char *s2) void main() char *s,*s1,*s2; s1=“this is “; s2=“a string.“; s=append(s1,s2); cout radius; cout fence; cout concrete; Circle Pool(radius);
4、Circle PoolRim(radius + WIDTH); Money mon(fence,concrete); float totalmoney=mon.TotalMoney(PoolRim.Circumference(),(PoolRim.Area() - Pool.Area(); cout disp(); (分数:-1.00)_正确答案:((1)错误:void disp() 正确:void CSample:disp() (2)错误:a-disp(); 正确:a=new CSample; a-disp(); (3)错误:b-disp(); 正确:b.disp(); )解析:(1)主要考
5、查考生对于类的成员函数定义格式的熟练掌握,对于类体外函数的实现,应该使用作用域符“:“,按照返回值类型 类名:函数名(参数列表)的形式进行说明; (2)主要考查考生对于动态存储分配的掌握,根据前面的定义,a 是一个指针类型的变量,指向一个对象,但是并没有被初始化,此时 a 中的数据无任何意义,应该使用动态存储分配 new 生成一个新的对象,并将返回的指针赋值给 a; (3)主要考查对象指针与对象在调用成员函数时格式的不同,b 是一个对象变量,使用 b 调用成员函数应该用“.“运算符。 2.简单应用题 常用字符串函数 strcat(s1,s2)可将字符串 s2 添加到字符串 s1 的末端,但其使
6、用必须保证字符串 s1 足够大,以便保存它自己的内容和字符串 s2 中的内容。请编写一个函数 char *append(char *s1,char *s2),其可将字符串 s2 添加到字符串 s1 的末端,而且不受 s1 空间大小的限制。请利用常用字符串函数实现。 常用字符串函数说明: strcpy(to,form):将 form 字符串复制到 to 字符串; strcat(s1,s2):将字符串 s2 添加到字符串 s1 的末端,但必须保证字符串 s1 足够大; strlen(s):返回字符串 s 的长度; 注意:部分源程序已存在文件 test4_2.cpp 中。 请勿修改主函数 main
7、和其他函数中的任何内容,仅在函数 append 的花括号中填写若干语句。 输出结果如下: this is a string. 文件test4_2.cpp 的内容如下: #include #include char *append(char *s1,char *s2) void main() char *s,*s1,*s2; s1=“this is “; s2=“a string.“; s=append(s1,s2); cout radius; cout fence; cout concrete; Circle Pool(radius); Circle PoolRim(radius + WIDT
8、H); Money mon(fence,concrete); float totalmoney=mon.TotalMoney(PoolRim.Circumference(),(PoolRim.Area() - Pool.Area(); cout “The total money is RMB “ totalmoney endl; (分数:-1.00)_正确答案:((1) const float PI = 3.14159f; const float WIDTH =3.00f; (2) Circle(float r):radius(r); (3) FencePrice=f; ConcretePrice=c; (4) return FencePrice*fencelen+ConcretePrice*conarea; )解析:本题考查了考生对符号常量的定义及类的定义与实现等方面的内容。注意常类型的定义应使用const 关键字。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1