1、二级 C+机试-19 及答案解析(总分:100.00,做题时间:90 分钟)一、1改错题(总题数:1,分数:33.00)1.使用 VC6 打开考生文件夹下的工程 test19_1,此工程包含一个源程序文件 test19_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:1:weight:5age:02:weight:7age:9源程序文件 test19_1.cpp 清单如下:#include iostream.hclass animalpublic:/* found */friend void setvalue(animal/* found */void print()
2、protected:int itsweight;int itsage;;void animal:print()cout“weight:“itsweightend1;cout“age:“itsageend1;void setvalue(animal ta.ihsage=0;void setvalue(animal ta.itsage=tn;void main()/* found */animal peppysetvalue(peppy,5);cout“1:“end1;peppy.print();setvalue(peppy,7,9);cout“2:“end1;peppy.print();(分数:
3、33.00)填空项 1:_二、2简单应用题(总题数:1,分数:33.00)2.请编写一个函数 int SeqSearch(int list,int start,int n,int key),该函数从 start 开始,在大小为 n 的数细 list 中查找 key 值,返回最先找到的 key 值的位置,如果没有找到则返回-1。请使用for 循环实现。注意:部分源程序已存在文件 test19_2.cpp 中。请勿修改主函数 main 和其他函数中的任何内容,仅在函数 SeqSearch 的花括号中填写若干语句。文件 test19_2.cpp 的内容如下:#include iostream.hin
4、t SeqSearch(int list, int start, int n, int key)void main()int A10;int key, count=0, pos;cout“Enter a list of 10 integers: “;for(pos=0;pos10;pos+)cinApos;cout“Enter a key: “;cinkey;pos=0;while( (pos=SeqSearch(A, pos,10,key)!=-1)count+;pos+;coutkey“ occurs “count(count!=1?“ times“:“ time“)“ in the li
5、st.“end1;(分数:33.00)_三、3综合应用题(总题数:1,分数:34.00)3.使用 VC6 打开考生文件夹下的工程 test19_3,此工程包含一个源程序文件 test19_3.cpp,其中定义了用于表示向量的类 vector,但类 vector 的定义并不完整。请按要求完成下列操作,将类 vector 的定义补充完整。(1)补充类 vector 的构造函数,该函数有参数 x 和 y,它们都是 int 型的数据,默认值都为 0。请使用参数列表的形式分别将类的数据成员 a 和 b 分别初始化为参数 x 和 y 的值。请在注释“/*1*”之后添加适当的语句。(2)完成类 vector
6、 的成员函数 input(int x,int y)的定义,将 int 型的参数 x 和 y 分别赋值给数据成员a 和 b,请在注释“/*2*”之后添加适当的语句。(3)完成类 vector 的友元函数 friend double Multiply (vector int b;public:/*1*void input(int x, int y)/*2*void output ()cout(a,b“)“end1;friend double Multiply(vector double Multiply (vector return c;void main()vector x(10,20),y;d
7、ouble d;y.input (2,3);d=Multiply (x,y);x. output ( );y. output ( );coutdend1;(分数:34.00)_二级 C+机试-19 答案解析(总分:100.00,做题时间:90 分钟)一、1改错题(总题数:1,分数:33.00)1.使用 VC6 打开考生文件夹下的工程 test19_1,此工程包含一个源程序文件 test19_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:1:weight:5age:02:weight:7age:9源程序文件 test19_1.cpp 清单如下:#include ios
8、tream.hclass animalpublic:/* found */friend void setvalue(animal/* found */void print()protected:int itsweight;int itsage;;void animal:print()cout“weight:“itsweightend1;cout“age:“itsageend1;void setvalue(animal ta.ihsage=0;void setvalue(animal ta.itsage=tn;void main()/* found */animal peppysetvalue(
9、peppy,5);cout“1:“end1;peppy.print();setvalue(peppy,7,9);cout“2:“end1;peppy.print();(分数:33.00)填空项 1:_ (正确答案:(1)错误:缺少友元函数的声明正确:添加友元函数的声明 friend void setvalue(animal int key, count=0, pos;cout“Enter a list of 10 integers: “;for(pos=0;pos10;pos+)cinApos;cout“Enter a key: “;cinkey;pos=0;while( (pos=SeqSe
10、arch(A, pos,10,key)!=-1)count+;pos+;coutkey“ occurs “count(count!=1?“ times“:“ time“)“ in the list.“end1;(分数:33.00)_正确答案:(int SeqSearch(int list, int start, int n,int key)for(int i=start;in;i+)if(listi=key)return i;return -1;)解析:解析本题考查的是考生使用 for 和 if 等基本控制结构的综合水平,查找一个数组中的指定元素并返回序号是一个基本操作,注意一维数组的实参格式
11、。三、3综合应用题(总题数:1,分数:34.00)3.使用 VC6 打开考生文件夹下的工程 test19_3,此工程包含一个源程序文件 test19_3.cpp,其中定义了用于表示向量的类 vector,但类 vector 的定义并不完整。请按要求完成下列操作,将类 vector 的定义补充完整。(1)补充类 vector 的构造函数,该函数有参数 x 和 y,它们都是 int 型的数据,默认值都为 0。请使用参数列表的形式分别将类的数据成员 a 和 b 分别初始化为参数 x 和 y 的值。请在注释“/*1*”之后添加适当的语句。(2)完成类 vector 的成员函数 input(int x,
12、int y)的定义,将 int 型的参数 x 和 y 分别赋值给数据成员a 和 b,请在注释“/*2*”之后添加适当的语句。(3)完成类 vector 的友元函数 friend double Multiply (vector int b;public:/*1*void input(int x, int y)/*2*void output ()cout(a,b“)“end1;friend double Multiply(vector double Multiply (vector return c;void main()vector x(10,20),y;double d;y.input (2,3);d=Multiply (x,y);x. output ( );y. output ( );coutdend1;(分数:34.00)_正确答案:(1)vector(int x=0,int y=0):a(x),b(y)(2)a=x;b=y;(3)double c;)解析:解析本题主要考查考生对于类的定义和友元函数定义的理解,请注意(1)中的参数列表形式和(3)中对象访问成员使用“”操作符。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1