【计算机类职业资格】二级C++机试-174及答案解析.doc

上传人:diecharacter305 文档编号:1324354 上传时间:2019-10-17 格式:DOC 页数:7 大小:34KB
下载 相关 举报
【计算机类职业资格】二级C++机试-174及答案解析.doc_第1页
第1页 / 共7页
【计算机类职业资格】二级C++机试-174及答案解析.doc_第2页
第2页 / 共7页
【计算机类职业资格】二级C++机试-174及答案解析.doc_第3页
第3页 / 共7页
【计算机类职业资格】二级C++机试-174及答案解析.doc_第4页
第4页 / 共7页
【计算机类职业资格】二级C++机试-174及答案解析.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、二级 C+机试-174 及答案解析(总分:100.00,做题时间:90 分钟)一、1改错题(总题数:1,分数:33.00)1.使用 VC6 打开考生文件夹下的工程 RevProj10。此工程包含一个源程序文件 RevMain10.cpp。在该文件中,函数 fun 的功能是:计算出数组 x 中的最小值与次最小值,并分别将其与 x0、x1交换。请改正程序中的错误,使它能得到正确结果。注意,不要改动主函数,不得删行或增行,也不得更改程序的结构。源程序文件 RevMain10.cpp 中的程序清单如下:/RevMain10.cpp#include iostreamusing namespace std

2、;#define N 30int fun(int *x, int n);int main ()int hN=4,7, 6, 5, 1, 7,3, 8,0,2,3;int i;for (i=0; i11; i+)couth i “ “ ;cout “/n“;fun(h, 11);for (i=0; in; i+)couth i“ “;cout /n;return 0;int fun(int *x, int n)int i,t;int a1=0, a2=0,min1=32767,min2=32676;/* * * * *FOUND * * * * */for(i=1;in;i+)if (x imi

3、n1)min2=min1;a2=a1;min1=x i;a1=i;else if (x i min2)min2=x i;a2=i;/* * * * *FOUND * * * * */t=x0;xa1=x0;xa1=t;/* * * * *FOUND * * * * */t=x1 ;xa2=x1;xa2=t;(分数:33.00)_二、2简单应用题(总题数:1,分数:33.00)2.请编写一个函数 char *fun(char *s),其中 s 代表一个字符串。函数 fun()的功能是将字符串 s 的元素倒置。例如,输入为“teacher”,则应输出“rehcaet”。注意:部分源程序已存在文件

4、PROC10.cpp 中。请勿修改主函数和其他函数中的任何内容,仅在函数 fun()的花括号中填写若干语句。文件 PROC10.cpp 的内容如下:/PROC10. cpp#include iostream#include stringusing namespace std;char *fun(char *s);int main ( )char str81;cout“Please enter a string:/n“;cinstr;cout“The result is:“fun(str);coutend1;return 0;char*fun(char*s)/* * * * * * * * *(

5、分数:33.00)_三、3综合应用题(总题数:1,分数:34.00)3.使用 VC6 打开考生文件夹下的工程 MyProj10。此工程包含一个源程序文件 MyMain10.cpp。程序中定义了两个类 Base 和 Derived,但类的定义并不完整。请按要求完成下列操作,将类的定义补充完成:类 Derived 是基类 Base 公有派生来的。请在注释“/* *1* *”之后添加适当的语句。完成构造函数 Derived(int i)定义,采用初始化列表的方式使基类 Base 私有成员 a 初始化为 i+1,类Derived 的私有成员 b 初始化为 i。请在注释“/* *2* *”之后添加适当的

6、语句。完成类 Derived 的成员函数 show()的类体外的定义。函数 show()中要显式调用基类的 show()函数,然后要输出私有成员 b 的值。请在注释“/* *3*”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件 MyMain10.cpp 清单如下:/MyMain10.cpp#includeiostreamusing namespace std;class Basepublic:Base(int x)a=xvoid show()couta;private:int a;/* * *1* * *public:/* * * 2 * * *vo

7、id show();private:int b;void Derived : show()/* * * 3 * * *int main()Derived d(1), *pb;pb=#define N 30int fun(int *x, int n);int main ()int hN=4,7, 6, 5, 1, 7,3, 8,0,2,3;int i;for (i=0; i11; i+)couth i “ “ ;cout “/n“;fun(h, 11);for (i=0; in; i+)couth i“ “;cout /n;return 0;int fun(int *x, int n)int i

8、,t;int a1=0, a2=0,min1=32767,min2=32676;/* * * * *FOUND * * * * */for(i=1;in;i+)if (x imin1)min2=min1;a2=a1;min1=x i;a1=i;else if (x i min2)min2=x i;a2=i;/* * * * *FOUND * * * * */t=x0;xa1=x0;xa1=t;/* * * * *FOUND * * * * */t=x1 ;xa2=x1;xa2=t;(分数:33.00)_正确答案:(正确的 fun()函数如下:int fun(int *x,int n)int i

9、,t;int a1=0,a2=0,min1=32767,min2=32676;for(i=0;in;i+)if(ximin1)min2=min1;a2=a1;min1=xi;a1=i;else if(ximin2)min2=xi;a2=i;t=x0;x0;xa1;xa1=t;t=x1;x1=xa2;xa2=t;)解析:解析 fun 函数中有 3 处错误:for 循环中的初始化语句不正确。应该从数组 x 的第 1 个元素开始循环,那么下标值 i 应该从 0 开始循环。在第 2 个标记处的语句序列不能完成两个数组元素之间值的交换。在第 3 个标记处的语句序列不能完成两个数组元素之间值的交换。二、2

10、简单应用题(总题数:1,分数:33.00)2.请编写一个函数 char *fun(char *s),其中 s 代表一个字符串。函数 fun()的功能是将字符串 s 的元素倒置。例如,输入为“teacher”,则应输出“rehcaet”。注意:部分源程序已存在文件 PROC10.cpp 中。请勿修改主函数和其他函数中的任何内容,仅在函数 fun()的花括号中填写若干语句。文件 PROC10.cpp 的内容如下:/PROC10. cpp#include iostream#include stringusing namespace std;char *fun(char *s);int main (

11、)char str81;cout“Please enter a string:/n“;cinstr;cout“The result is:“fun(str);coutend1;return 0;char*fun(char*s)/* * * * * * * * *(分数:33.00)_正确答案:(函数 fun()的定义如下:char*fun(char *s)char*head=s,*end,t;for(end=s;*end;end+);for(end-;send;s+;end-)t=*s;*s=*end;*end=t;return head;)解析:解析 函数 fun()的功能是将字符串 s 的

12、元素倒置,可用循环体来实现。三、3综合应用题(总题数:1,分数:34.00)3.使用 VC6 打开考生文件夹下的工程 MyProj10。此工程包含一个源程序文件 MyMain10.cpp。程序中定义了两个类 Base 和 Derived,但类的定义并不完整。请按要求完成下列操作,将类的定义补充完成:类 Derived 是基类 Base 公有派生来的。请在注释“/* *1* *”之后添加适当的语句。完成构造函数 Derived(int i)定义,采用初始化列表的方式使基类 Base 私有成员 a 初始化为 i+1,类Derived 的私有成员 b 初始化为 i。请在注释“/* *2* *”之后添

13、加适当的语句。完成类 Derived 的成员函数 show()的类体外的定义。函数 show()中要显式调用基类的 show()函数,然后要输出私有成员 b 的值。请在注释“/* *3*”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件 MyMain10.cpp 清单如下:/MyMain10.cpp#includeiostreamusing namespace std;class Basepublic:Base(int x)a=xvoid show()couta;private:int a;/* * *1* * *public:/* * * 2 * *

14、 *void show();private:int b;void Derived : show()/* * * 3 * * *int main()Derived d(1), *pb;pb=&d;pb-show();return 0;(分数:34.00)_正确答案:(class Derived:public BaseDerived(int i): Base(i+1),b(i)Base: :show();coutbend1;)解析:解析 基类 Base 派生出派生类 Derived,在主函数中,定义了基类对象 b,基类指针 pb,以及派生类对象 d,并让基类指针 pb 指向派生类对象 de 在 C+中,当派生类的对象赋值给基类对象时,只能使用派生类对象中从基类继承的成员。所以最后执行语句“pb-show();”是调用基类的成员函数 show(),输出 a 的值 2。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1