1、C+语言笔试-16 及答案解析(总分:100.00,做题时间:90 分钟)一、单项选择题(总题数:40,分数:40.00)1.下列叙述中正确的是_。A算法就是程序B设计算法时只需要考虑数据结构的设计C设计算法时只需要考虑结果的可靠性D以上三种说法都不对(分数:1.00)A.B.C.D.2.下列叙述中正确的是_。A有一个以上根结点的数据结构不一定是非线性结构B只有一个根结点的数据结构不一定是线性结构C循环链表是非线性结构D双向链表是非线性结构(分数:1.00)A.B.C.D.3.下列关于二叉树的叙述中,正确的是_。A叶子结点总是比度为 2 的结点少一个 B叶子结点总是比度为 2 的结点多一个C叶
2、子结点数是度为 2 的结点数的两倍 D度为 2 的结点数是度为 1 的结点数的两倍(分数:1.00)A.B.C.D.4.软件生命周期中的活动不包括_。A市场调研 B需求分析 C软件测试 D软件维护(分数:1.00)A.B.C.D.5.某系统总体结构图如下图所示:(分数:1.00)A.B.C.D.6.程序调试的任务是_。A设计测试用例 B验证程序的正确性C发现程序中的错误 D诊断和改正程序中的错误(分数:1.00)A.B.C.D.7.下列关于数据库设计的叙述中,正确的是_。A在需求分析阶段建立数据字典 B在概念设计阶段建立数据字典C在逻辑设计阶段建立数据字典 D在物理设计阶段建立数据字典(分数:
3、1.00)A.B.C.D.8.数据库系统的三级模式不包括_。A概念模式 B内模式C外模式 D数据模式(分数:1.00)A.B.C.D.9.有三个关系 R、S 和 T 如下:RABCa12b21c31SADc4TABCDc314则由关系 R 和 S 得到关系 T 的操作是_。A自然连接 B交 C投影 D并(分数:1.00)A.B.C.D.10.下列选项中属于面向对象设计方法主要特征的是_。A继承 B自顶向下 C模块化 D逐步求精(分数:1.00)A.B.C.D.11.下列字符串中不能作为 C+标识符使用的是_。AINT Btest C_1481 D1temp(分数:1.00)A.B.C.D.12
4、.下列语句中错误的是_。Aconst int*p=0; Bconst int y=99;Cconst int x; Dconst int*p=new int(100);(分数:1.00)A.B.C.D.13.有如下程序:#includeiostreamusing namespace std;int main()int sum;for(int i=0;i3;i+=1)sum=i;for(intj=i;j9;j+)sum+=j;coutsumendl;return 0;运行时的输出结果是_。A39 B17 C110 D37(分数:1.00)A.B.C.D.14.下列语句中,正确的是_。Achar
5、str=“abcde“; Bchar*str=“abcde“;Cchar str5=“abcde“; Dchar*str5=“abcde“;(分数:1.00)A.B.C.D.15.有如下程序段:int i=1;int j=4;int main()int i=8,j=1;coutijendl;运行时的输出结果是_。A14 B81 C88 D18(分数:1.00)A.B.C.D.16.下列关于函数参数的叙述中,正确的是_。A在函数原型中不必声明形参类型B在调用一个函数时,若函数中修改了形参变量的值,则对应的实参变量的值也被修改C函数形参的生存期与整个程序的运行期相同D函数的形参在函数被调用时获得初
6、始值(分数:1.00)A.B.C.D.17.下列关于赋值运算符“=”重载的叙述中,正确的是_。A赋值运算符只能作为类的成员函数重载B默认的赋值运算符实现了”深层复制”功能C重载的赋值运算符函数有两个本类对象作为形参D如果已经定义了复制(拷贝)构造函数,就不能重载赋值运算符(分数:1.00)A.B.C.D.18.在对函数进行原型声明时,下列语法成分中不需要的是_。A函数返回类型 B函数参数列表 C函数名 D函数体(分数:1.00)A.B.C.D.19.在为一个类重载下列运算符时,只能作为该类成员函数重载的运算符是_。A+ B() C D+(分数:1.00)A.B.C.D.20.若已经声明了函数原
7、型“bool fun(bool a,int b=0);”,则下列重载函数声明中正确的是_。Abool fun(bool a=true,int b=0); Bint fun(bool a,int B);Cvoid fun(double a,int B); Dvoid fun(bool a,int b=0);(分数:1.00)A.B.C.D.21.下列运算符函数中,肯定不属于类 Number 的成员函数的是_。ANumber operator+(Number); BNumber operator-(Number);CNumber operator*(int); DNumber operator/(
8、Number,Number);(分数:1.00)A.B.C.D.22.已知函数 f 的原型为:void f(int 变量 x、y 的定义是:int x;double y;则下列调用该函数的语句中正确的是_。Af(x, Bf(x,y); Cf( Df((分数:1.00)A.B.C.D.23.在 C+中,编译系统自动为一个类生成默认构造函数的条件是_。A该类没有定义任何有参构造函数 B该类没有定义任何无参构造函数C该类没有定义任何构造函数 D该类没有定义任何成员函数(分数:1.00)A.B.C.D.24.有如下程序:#includeiostreamusing namespace gtd;class
9、 Samplepublic:Sample()Sample()cout*;int main()Sample temp2,*pTemp2;return 0;运行这个程序输出星号*的个数为_。A1 B2 C3 D4(分数:1.00)A.B.C.D.25.下列有关类成员的叙述中,正确的是_。A友元函数是类的成员函数B类成员的默认访问权限是私有的C类成员函数必须声明为公有的D类的静态数据成员不能是常成员(分数:1.00)A.B.C.D.26.下列关于虚函数的叙述中,正确的是_。A虚函数不得是静态成员函数B从虚基类继承的函数都是虚函数C只能通过指针或引用调用虚函数D抽象类中的成员函数都是虚函数(分数:1.
10、00)A.B.C.D.27.下列关于基类和派生类关系的叙述中,正确的是_。A派生类中的成员可以访问基类中的任何成员B每个类最多只能有一个直接基类C基类的构造函数必须在派生类的构造函数体中调用D派生类除了继承基类的成员,还可以定义新的成员(分数:1.00)A.B.C.D.28.有如下类定义:class Bpublic:void fun1()private:void fun2()protected:void fun3();class D:public Bprotected:void fun4();若 obj 是类 D 的对象,则下列语句中不违反访问控制权限的是_。Aobj.fun1(); Bobj
11、.fun2(); Cobj.fun3(); Dobj.fun4();(分数:1.00)A.B.C.D.29.有如下类定义:class Cuppublic:Cup(double val,string cr=“red“):price(val),color(cr) /Cup(); /private:string color; /double price=5.8; /;在标注号码的语句行中存在语法错误的是_。A B C D(分数:1.00)A.B.C.D.30.有如下类定义:class TVpublic:TV(int s=41,string br=“TCL“):size(s),brand(br)TV(
12、)private:int size;string brand;若执行语句TV li,*net2,company3;则 TV 类的构造函数被调用的次数是_。A6 次 B4 次 C3 次 D2 次(分数:1.00)A.B.C.D.31.有如下程序:#includeiostream#includestringusing namespace std;class MyBagpublic:MyBag(string br,string cr):brand( br), color(cr)+count;MyBag()-count;static int GetCount() return count;pnvate
13、:string brand,color;static int count;int main()MyBag one(“CityLife“,“Gray“),two(“Micky“,“Red“);coutMyBag:CetCount();return 0;若程序运行时的输出结果为 2,则横线处缺失的语句是_。Aint count=0; Bstatic int count=0;Cint MyBag:count=0; Dstatic int MyBag:count=0;(分数:1.00)A.B.C.D.32.有如下程序:#includeiostreamusing namespace std;class
14、TVpublic:TV(int s=41):size(s)void Print()cout/Nsize;void Print() constcout/Csize;void Print(int s)cout/Ssize;private:int size;int main()TV rooml;const TV room2(54);rooml.Print();room2.Print();return 0;运行时的输出结果是_。A/N41/C54 B/N41/S54C/C41/N54 D/C41/C54(分数:1.00)A.B.C.D.33.有如下类定义:class Vechicle /基类publi
15、c:Vechicle(string s):name(s)protected:string name;/Vechicle 的派生类public:Bicycle(string name):Vechicle( name);横线处缺失部分为_。Aclass Vechicle:public BicycleBclass Bicycle: class VechicleCclass Bicycle:public VechicleDclass Bicycle: public class Vechicle(分数:1.00)A.B.C.D.34.有如下程序:#includeiostreamusing namespa
16、ce std;class Pointpublic:Point(int xx=0,int yy=0):x(xx),y(yy)void SetX(int xx)x=xx;void SetY(int yy)y=yy;private:int x,y;class Circle:Pointpublic:Circle(int r):radius(r)int GetRadius()return radius;private:void SetRadius(int r)radius=r;int radius;int main()Circle c1(5);c1.SetX(1); /c1.SetY(2); /c1.S
17、etRadius(10); /coutc1.GetRadius(); /return 0;在标注号码的语句行中不存在语法错误的是_。A B C D(分数:1.00)A.B.C.D.35.有如下程序:#includeiostream#includestringusing namespace std;class Personpublic:Person(string n):name(n)coutP;pnvate:string name;class Datepublic:Date(int y=2012,int m=12,int d=21):year(y),month(m),day(d)coutD;pr
18、ivate:int year,month,day;class Student:public Personpublic:Student(string n,int y,int m,int d,char c):birthday(y,m,d),sex(c),Person(n)coutS;private:Date birthday;char sex;int main()Student stul(“Zhang“,1990,10,1,F);return 0;运行时的输出结果是_。AS BPS CDPS DPDS(分数:1.00)A.B.C.D.36.有如下程序:#includeiostream#includ
19、estringusing namespace std;class Instrumentpublic:Instrument(string t=“乐器“,string n=“无名“):type(t),name(n)virtual string GetType() constreturn“乐器“;virtual string GetName() constreturn“无名“;protected:stnng type,name;class Piano:public Instrumentpublic:Piano(string n,string t=“钢琴“):lnstrument(t,n)string
20、 CetType() constreturn“钢琴“;string GetName() constreturn name;int main()Instrument * pi=new Piano(“星空“);coutpi-GetType()-pi-GetName();delete pi;return 0;运行时的输出结果是_。A钢琴-星空 B钢琴-无名C乐器-星空 D乐器-无名(分数:1.00)A.B.C.D.37.下列关于模板的叙述中,错误的是_。A调用模板函数时,在一定条件下可以省略模板实参B可以用 int、double 这样的类型修饰符来声明模板参数C模板声明中的关键字 class 都可以
21、用关键字 typename 替代D模板的形参表中可以有多个参数(分数:1.00)A.B.C.D.38.下列模板声明中,有语法错误的是_。Atemplatetypename TTfun(T x)return x;Btemplatetypename TT fun(T x,int n)return x*n;Ctemplateclass TT fun(T *p)return *p;Dtemplateclass TT class AT n;(分数:1.00)A.B.C.D.39.要利用 C+流实现输入输出的各种格式控制,必须在程序中包含的头文件是_。Afstream Bistream Costream
22、Diomanip(分数:1.00)A.B.C.D.40.若目前 D 盘根目录下并不存在 test.txt 文件,则下列打开文件方式不会自动创建 test.txt 文件的是_cAifstream fin;fin.open(“d:/test.txt“,ios_base:in);Bfstream fio;fio.open(“d:/test.txt“,ios_base:out);Cofstream fout;fout.open(“d:/test.txt“,ios_base:out);Dofstream fout;fout.open(“d./test.txt“,ios_base:app);(分数:1.0
23、0)A.B.C.D.二、操作题(总题数:3,分数:60.00)41.请使用 VC6 或使用答题菜单打开考生文件夹 proj1 下的工程 proj1,此工程中含有一个源程序文件proj1.cpp。其中位于每个注释“/ERROR *found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:The value is:10注意:只修改注释“/ERROR *found*”的下一行语句,不要改动程序中的其他内容。/proj1.cpp#include iostreamusing namespace std;class Member /ERROR *found*private:Member(i
24、nt val):value(val) int value;class MyClass Member m;public:MyClass(int val) int GetValue () const return_m.value;int main ()MyClass * obj=new MyClass(10);/ERROR *found*下列 i 语句输出 obj 指向类中的 value 值cout“The value is:“obj.GetValue ()endl;delete obj;return 0;(分数:20.00)_42.请使用 VC6 或使用答题菜单打开考生文件夹 proj2 下的工
25、程 proj2,该工程中含有一个源程序文件proj2.cpp,其中定义了 CharShape 类、Triangle 类和 Rectangle 类。CharShape 是一个抽象基类,它表示由字符组成的图形(简称字符图形),纯虚函数 Show 用于显示不同字符图形的相同操作接口。Triangle 和 Rectangle 是 CharShape 的派生类,它们分别用于表示字符三角形和字符矩形,并且都定义了成员函数 Show,用于实现各自的显示操作。程序的正确输出结果应为:*#请阅读程序,分析输出结果,然后根据以下要求在横线处填写适当的代码并删除横线。(1)将 Triangle 类的成员函数 Sho
26、w 补充完整,使字符三角形的显示符合输出结果。(2)将 Rectangle 类的成员函数 Show 补充完整,使字符矩形的显示符合输出结果。(3)为类外函数 fun 添加合适的形参。注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“/*found*”。/proj2.cpp#includeiostreamusing namespace std;class CharShapepublic:CharShape (char ch):ch (ch);virtual void Show()=0;protected:char ch;/组成图形的字符;class Triangle:p
27、ublic CharShapepublic:Triangle(char ch,int r):Char-Shape(ch),_rows (r)void Show();private:int rows; /行数;class Rectangle: public CharShapepublic:Rectangle (char ch,int r,int c):CharShape (ch),_rows(r),_cols(c) void Show();private:int rows,cols;/行数和列数);void Triangle:Show()/输出字符组成的三角形for (int i=1;i=row
28、s;i+)/*found*for (int j=1;j=_;j+)cout_ch;coutendl;void Rectangle:Show()/输出字符组成的矩形/*found*for (int i=1;i=_;i+)/*found*for(int j=1;j=_;j+)cout_ch;coutendl;/*found*为 fun 函数添加形参void fun(_)cs.Show();int main()Triangle tri(*,4);Rectangle rect(#,3,8);fun (tri);fun (rect);return 0;(分数:20.00)_43.请使用 VC6 或使用答
29、题菜单打开考生目录 proj3 下的工程文件 proj3,此工程中包含一个源程序文件 proj3.cpp,其功能是从文本文件 in.dat 中读取全部整数,将整数序列存放到 intArray 类的对象中,然后建立另一对象 myArray,将对象内容赋值给 myArray。类 intArray 重载了“=”运算符。程序中给出了一个测试数据文件 input,不超过 300 个的整数。程序的输出是:1011131620要求:补充编制的内容写在“/*333*”与“/*666*”之间。实现重载赋值运算符函数,并将赋值结果在屏幕输出。格式不限。不得修改程序的其他部分。注意:程序最后将结果输出到文件 out
30、.dat 中。输出函数 writeToFile 已经编译为 obj 文件,并且在本程序中调用。/intArray.hclass intArrayprivate:int*array;int length;public:intArray (char*filename);intArray ();intArray intArray ();void show ();void writeToFile (const char*path);/main.cpp#includeiostream#includefstream#includecstring#include “intArray.h“using name
31、space std;intArray:intArray ()length=10;array=new intlength;intArray:intArray(char*filename)ifstream myFile(filename);array=new int300;length=0;while (myFilearraylength+)length-;myFile.close();intArraylength=src.length;array=new intlength;return*this;intArray:intArray ()delete array;void intArray:sh
32、ow ()int step =0;for(int i=0;ilength;i=i+step)coutarrayiendl;step+;void main ()intArray*arrayP=new intArray(“input.dat“);intArray myArray;myArray=*arrayP;(*arrayP).show();delete arrayP;writeToFile(“ “);(分数:20.00)_C+语言笔试-16 答案解析(总分:100.00,做题时间:90 分钟)一、单项选择题(总题数:40,分数:40.00)1.下列叙述中正确的是_。A算法就是程序B设计算法时只
33、需要考虑数据结构的设计C设计算法时只需要考虑结果的可靠性D以上三种说法都不对(分数:1.00)A.B.C.D. 解析:解析 算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以 A 错误。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。2.下列叙述中正确的是_。A有一个以上根结点的数据结构不一定是非线性结构B只有一个根结点的数据结构不一定是线性结构C循环链表是非线性结构D双向链表是非线性结构(分数:1.00)A.B. C.D.解析:解析 线性结构应满足:有且只有一个根结点与每个结点最多有一个前件,也最多有一个后件,所以 B 正确。所以有一个以上根结点的
34、数据结构一定是非线性结构,所以 A 错误。循环链表和双向链表都是线性结构的数据结构。3.下列关于二叉树的叙述中,正确的是_。A叶子结点总是比度为 2 的结点少一个 B叶子结点总是比度为 2 的结点多一个C叶子结点数是度为 2 的结点数的两倍 D度为 2 的结点数是度为 1 的结点数的两倍(分数:1.00)A.B. C.D.解析:解析 根据二叉树的基本性质 3:在任意一棵二叉树中,度为 0 的叶子结点总是比度为 2 的结点多一个。所以选择 B。4.软件生命周期中的活动不包括_。A市场调研 B需求分析 C软件测试 D软件维护(分数:1.00)A. B.C.D.解析:解析 软件生命周期可以分为软件定
35、义、软件开发与软件运行维护三个阶段。主要活动阶段是:可行性研究与计划阶段、需求分析、软件设计、软件实现、软件测试、运行和维护,所以选择 A。5.某系统总体结构图如下图所示:(分数:1.00)A.B.C. D.解析:解析 根据总体结构图可以看出该树的深度为 3,比如:XY 系统-功能 2-功能 2.1,就是最深的度数的一个表现。6.程序调试的任务是_。A设计测试用例 B验证程序的正确性C发现程序中的错误 D诊断和改正程序中的错误(分数:1.00)A.B.C.D. 解析:解析 程序调试的任务是诊断和改正程序中的错误。7.下列关于数据库设计的叙述中,正确的是_。A在需求分析阶段建立数据字典 B在概念
36、设计阶段建立数据字典C在逻辑设计阶段建立数据字典 D在物理设计阶段建立数据字典(分数:1.00)A. B.C.D.解析:解析 数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。8.数据库系统的三级模式不包括_。A概念模式 B内模式C外模式 D数据模式(分数:1.00)A.B.C.D. 解析:解析 数据库系统的三级模式是概念模式、外模式和内模式,所以选择 D。9.有三个关系 R、S 和 T 如下:RABCa12b21c31SADc4TABCDc314则由关系 R 和 S 得到关系 T 的操作是_。A自然连接 B交 C投影 D并(分数:1.00)A. B.C.D.解析:解析
37、自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据 T 中元组可以判断 R 和 S 做的是自然连接操作。10.下列选项中属于面向对象设计方法主要特征的是_。A继承 B自顶向下 C模块化 D逐步求精(分数:1.00)A. B.C.D.解析:解析 面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性,所以选择 A。11.下列字符串中不能作为 C+标识符使用的是_。AINT Btest C_1481 D1temp(分数:1.00)A.B.C.D. 解析:解析 用来表示变量、符号常量、函数、数组类型等实体名字的有效字符序列
38、称为标识符,标识符由字母、数字和下划线 3 种字符组成,且第一个字符必须为字母或者下划线。所以 D 选项错误。12.下列语句中错误的是_。Aconst int*p=0; Bconst int y=99;Cconst int x; Dconst int*p=new int(100);(分数:1.00)A.B.C. D.解析:解析 const 是一个 C+语言的关键字,它限定一个变量不允许被改变,const 常量、常量指针赋值时,均必须同时初始化。所以 C 选项错误。13.有如下程序:#includeiostreamusing namespace std;int main()int sum;for
39、(int i=0;i3;i+=1)sum=i;for(intj=i;j9;j+)sum+=j;coutsumendl;return 0;运行时的输出结果是_。A39 B17 C110 D37(分数:1.00)A.B.C.D. 解析:解析 考查 for 循环语句,本题中两层 for 循环,每次 i 循环,sum 都被重新赋值,所以当 i=2时,执行完 j 循环后 sum 为 37。所以答案为 D。14.下列语句中,正确的是_。Achar str=“abcde“; Bchar*str=“abcde“;Cchar str5=“abcde“; Dchar*str5=“abcde“;(分数:1.00)A
40、.B. C.D.解析:解析 本题考查字符串的定义,A 选项中,定义了一个字符,而用字符串赋值,所以错误,C 选项定义了字符数组,一个字符所占空间是 1 位,再加上隐含的“0”,一共是 6 位,所以字符数组的大小应该为 6,D 选项定义了一个字符串指针数组,是指一个数组里面装着指针,赋值错误。所以答案为 B。15.有如下程序段:int i=1;int j=4;int main()int i=8,j=1;coutijendl;运行时的输出结果是_。A14 B81 C88 D18(分数:1.00)A.B.C. D.解析:解析 全局变量也称为外部变量,是在函数的外部定义的,它的作用域为从变量定义处开始
41、,到本程序文件的末尾。局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内部。在函数中使用全局变量,一般应作全局变量说明,本题中定义了两个全局变量 i,j,但 main 函数中又对 i、j 进行了定义,所以输出为 88,所以答案为 C。16.下列关于函数参数的叙述中,正确的是_。A在函数原型中不必声明形参类型B在调用一个函数时,若函数中修改了形参变量的值,则对应的实参变量的值也被修改C函数形参的生存期与整个程序的运行期相同D函数的形参在函数被调用时获得初始值(分数:1.00)A.B.C.D. 解析:解析 本题考查函数参数的相关知识,函数原型中必须声明形参类型,所以 A
42、选项错误,调用一个函数时如果修改了形参值,那么实参可能改变也可能不改变,所以 B 选项错误,函数形参的生存期一般在函数执行整个函数中存在,除了静态变量,所以 C 选项错误。17.下列关于赋值运算符“=”重载的叙述中,正确的是_。A赋值运算符只能作为类的成员函数重载B默认的赋值运算符实现了”深层复制”功能C重载的赋值运算符函数有两个本类对象作为形参D如果已经定义了复制(拷贝)构造函数,就不能重载赋值运算符(分数:1.00)A. B.C.D.解析:解析 重载赋值运算符必须定义为类的成员函数,所以选项 A 正确。重载赋值运算符时应返回一个类的对象,所以 C 选项错误。如果已经定义了复制(拷贝)构造函
43、数,仍然可以重载赋值运算符,所以 D选项错误。18.在对函数进行原型声明时,下列语法成分中不需要的是_。A函数返回类型 B函数参数列表 C函数名 D函数体(分数:1.00)A.B.C.D. 解析:解析 函数原型中,函数名、函数返回值、函数参数列表是需要的,而函数体在函数声明时不需要。所以答案为 D。19.在为一个类重载下列运算符时,只能作为该类成员函数重载的运算符是_。A+ B() C D+(分数:1.00)A.B. C.D.解析:解析 本题考查重载运算符,C+规定有的运算符(如赋值运算符、下标运算符、函数调用运算符)必须定义为类的成员函数。所以本题选 B。20.若已经声明了函数原型“bool
44、 fun(bool a,int b=0);”,则下列重载函数声明中正确的是_。Abool fun(bool a=true,int b=0); Bint fun(bool a,int B);Cvoid fun(double a,int B); Dvoid fun(bool a,int b=0);(分数:1.00)A.B.C. D.解析:解析 本题考查函数重载相关知识,重载函数是函数的一种特殊情况,为方便使用,C+允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。A、B、D 选项的部分形参都与原函
45、数相同,所以不能作为重载函数,选项 C 正确。21.下列运算符函数中,肯定不属于类 Number 的成员函数的是_。ANumber operator+(Number); BNumber operator-(Number);CNumber operator*(int); DNumber operator/(Number,Number);(分数:1.00)A.B.C.D. 解析:解析 选项 D 的形式是重载为友元函数,而友元函数不属于类的成员函数。所以重载为友元函数需要两个参数,通过参数传递的方式得到参加运算的两个对象。其他的是重载为类的成员函数,由于对象本身代表了一个操作数,所以其参数只需要一个,其为参加运算的另一个操作数。22.已知函数 f 的原型为:void f(int 变量 x、y 的定义是:int x;double y;则下列调用该函数的语句中正确的是_。Af(x, Bf(x,y); Cf( Df((分数:1.00)A. B.C.D.解析:解析