1、国家二级( C+)笔试模拟试卷 65及答案与解析 1 算法的空间复杂度是指 ( )。 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)算法执行过程中所需要的存储空间 2 一个满二叉树其深度为 4,则其叶子节点的个数为 ( )。 ( A) 8 ( B) 16 ( C) 32 ( D) 4 3 下列关于队列的叙述中,正确的是 ( )。 ( A)在队列中只能插入数据 ( B)在队列中只能删除数据 ( C)队列是先进先出的线性表 ( D)队列是先进后出的线性 表 4 编制好的程序,首先要确保它的正确性和可靠性,还应强调良好的编程风格。在书写功能性注解时应考
2、虑 ( )。 ( A)仅为整个程序作注解 ( B)仅为每个模块作注解 ( C)为程序段作注解 ( D)为每个语句作注解 5 在一个单链表中,若 q节点是 p节点的前驱节点,若在 q与 p之间插入节点 s,则执行 ( )。 ( A) sqink=plink ; plink=s ( B) plink=s ; sqink=q ( C) plink=slink ; slink=p ( D) qlink= s; slink=p 6 下面几种调试方法中,不适合调试大规模程序的是 ( )。 ( A)强行排错法 ( B)回溯法 ( C)原因排除法 ( D)静态调试 7 在进行单元测试时,常用的方法是 ( )。
3、 ( A)采用白盒测试,辅之以黑盒测试 ( B)采用黑盒测试,辅之以白盒测试 ( C)只使用白盒测试 ( D)只使用黑盒测试 8 以下内容属于存储在计算机内有结构的数据集合的是 ( )。 ( A)数据库系统 ( B)数据库 ( C)数据库管理系统 ( D)数据结构 9 利用 ER模 型进行数据库的概念设计,可以分成 3步:首先设计局部 ER模型,然后把各个局部 ER模型综合成一个全局的模型,最后对全局 ER模型进行 ( )。 ( A)简化 ( B)结构化 ( C)最小化 ( D)优化 10 设有关系 R及关系 S,它们分别有 p、 q个元组,则关系 R与 S经笛卡儿积后所得新关系的元组个数是
4、( )。 ( A) p ( B) q ( C) p+q ( D) p*q 11 以下说法中,不正确的是 ( )。 ( A) C+程序中必须有一个主函数 main(),而且是从 main()的第 1条语句开始执行 的 ( B)非主函数都是在执行主函数时,通过函数调用或嵌套调用而得以执行的 ( C)主函数可以在任何地方出现 ( D)主函数必须出现在固定位置。 12 下面各选项中,属于非法的 C+整型常量的是 ( )。 ( A) 1 ( B) 0x11 ( C) 81 ( D) -32768 13 下列各程序段中,不是死循环的是 ( )。 ( A) int j=100; ( B) for(; ) w
5、hile(1) j=j%100+1; if(j 1000) break; ( C) int n=0; ( D) int m=36; do while(m)-m; +n; while(n =0); 14 若有以下定义: int a =1, 2, 3, 4, 5, 6, 7; char c1=b, C2=2; 则数值不为 2的表达式是 ( )。 ( A) a1 ( B) d-c1 ( C) a3-c2 ( D) c2-0 15 设有以下程序段 : int a5=0, *p, *q; p=a; q=a; 则下列选项中,合法的运算是 ( )。 ( A) p+q ( B) p-q ( C) p*q (
6、D) p%q 16 不能作为函数重载的判断依据的是 ( )。 ( A) const ( B)返回类型 ( C)参数个数 ( D)参数类型 17 下列关于类的访问权限的描述中, ( )是错误的。 ( A)类中说明为公有的成员可以被程序中的任何代码访问 ( B)类中说明为私有的成员只能被类的成员函数和说明为友元类的成员函 数访问 ( C)类中说明为保护的成员可以被该类的派生类的成员访问 ( D)类的对象和类成员函数一样可以访问类的所有成员 18 派生类的构造函数的成员初始化列表中,不能包含 ( )。 ( A)基类的构造函数 ( B)派生类中子对象的初始化 ( C)基类的子对象初始化 ( D)派生类
7、中一般数据成员的初始化 19 下列各函数的说明中, ( )是表示纯虚函数。 ( A) virtual int vf(int); ( B) void vf(int)=0; ( C) virtual void vf()=0; ( D) virtual void vf(int) 20 模板函数的真正代码是在 ( )时候产生。 ( A)源程序中声明函数时 ( B)源程序中定义函数时 ( C)源程序中调用函数时 ( D)运行执行函数时 21 有如下程序: #include iostream using namespace std; int b=3; int fun(int *k) int b=2; b=
8、*(k+)*b; return(B) ; int main() int a ; 11, 12, 13, 14, 15, 16); b=fun( return (10*A); 其程序运行后的输出结果是 ( )。 ( A) 100 ( B) 10 ( C) 1000 ( D) 10000 24 若有以下程序: #include iostream using namespace Std; class sample int i; publiC: sample() void setvalue(int m) i=m; void fun(int m) i+=m; void disp() cout i end
9、1; ; int main() sample *ps; ps=new sample; ps- setvalue(20); ps- fun(5); ps- disp(); return 0; 程 序运行后,输出的结果是 ( )。 ( A) 15 ( B) 20 ( C) 25 ( D) 30 25 若有如下程序: #include iostream using namespaces std; int s=0; class sample, static int n; public: sample(int i) n=i; static void add() s+=n; ; int sample: s
10、=0; int main() sample a(2), b(5); sample: add(); cout s end1; return 0; 程序运行后的输出结果是 ( )。 ( A) 2 ( B) 5 ( C) 7 ( D) 3 26 若有以下程序: #include iostream using namespace std; class sample private: int x; public: sample() void setx(int i) x=i; friend int fun(sample B,int n) int m=O; for (int i=O; i n; i+) if
11、(Bi.x m) m=B i.x; return m; ; int main ( ) sample A10; int arr=90,87,42,78,97,84,60,55,78,65; for (int i=O;i10;i+) Ai. setx (arri); cout fun(A, 10) end1; return 0; 该程序运行后的输出结果是 ( )。 ( A) 97 ( B) 84 ( C) 90 ( D) 78 27 若有以下程序: #include iostream using namespace std; class data public: int x; data (int
12、x) data: :x=x; ; class A private: data d1; public: A(int x) : d1 (x) void dispa() cout d1, x “, “; ; class B: public A private: data d2; public: B(int x) : A(x-1),d2(x) void dispb() cout d2.xend1; ; class C : public B public: C(int x) : B(x-1) void disp () dispa ( ); dispb (); ; int main ( ) C obj (
13、5); obj.disp(); return 0; 程序执行后的输出结果是 ( )。 ( A) 5,5 ( B) 4,5 ( C) 3,4 ( D) 4,3 28 若有以下程序 : #include iostream using namespace std; class Base private: int a,b; public: Base(int x, int y) a=x; b=y; void show() cout a “, “ b end1; ; class Derive : public Base private: int c, d; public: Derive(int x,int
14、 y, int z,int m):Base(x,y) c=z; d=m; void show() cout c “, “ d end1; ; int main () Base b(50,50),*pb; Derive d(10,20,30, 40); pb= pb- show (); return 0; 招待程序后的输出结果是 ( )。 ( A) 10,20 ( B) 30,40 ( C) 20,30 ( D) 50,50 29 若 有以下程序: #include iostream using namespace std; class Base public: Base ( ) x=0; in
15、t x; ; class Derivedl : virtual public Base public: Derivedl () x=10; ; class Derived2 : virtual public Base public: Derived2 () x=20; ; class Derived : public Derivedl,protected Derived2 ; int main ( ) Derived obj; cout obj .x end1; return 0; 该程序运行后的输出结果是 ( )。 ( A) 20 ( B) 30 ( C) 10 ( D) 0 30 下列打开
16、文件的表达式中,错误的是 ( )。 ( A) ofstream ofile; ofile.open(“C:vcabc.txt“,ios: :binary); ( B) fstream iofile; iofile.open(“abc.txt“,ios:ate); ( C) ifstream ifile(“C:vcabc.txt“); ( D) cout.open(“C:vcabc.txt“,ios: :binary); 31 在算法正确的前提下,评价一个算法的两个标准是【 】。 32 将代数式 z= 转换成程序设计中的表达式为【 】。 33 软件危机出现于 60年代末,为了解决软件危机,人们提
17、出了【 】的原理来设计软件,这就是软件工程诞生的基础。 34 【 】是数据库设计的核心。 35 在关系模型中,把数据看成一个二维表,每一个二维表称为一个【 】。 36 在 C+语言的面向对象程序设计框架中,【 】是程序的基本组成单元。 37 C+语言程序的注释可以出现在程序中的任何地方,一个注释以【 】作为开始和结束的标记。 38 以下程序的输出结果是【 】。 #include iostream h void fun() static int a=0; a+=2; cout a “ “; void main() int cc; for(cc=1; cc 4; CC+) fun(); cout
18、endl; 39 用以下语句调用库函数 malloc,使字符指针 st指向具有 11个字节的动态存储空间,请填空。 st=(char*)【 】; 40 以下程序的输出结果是【 】。 #include iostream h unsigned frn(ullsigned num) unsi9ned k=1; dok*=num%10; num/=10; while(num); return k; void main() unsigned n=26; cout fun(n) endl; 41 将 x+y*z中的 “+”用成员函数重载, “ *”用友元函数重载应写为【 】。 42 【 】是一系列相关函数
19、的模型或样板,这些函数的【 】形式相同,只是所针对的【 】不同。 国家二级( C+)笔试模拟试卷 65答案与解析 1 【正确答案】 D 【试题解析】 本题考查算法的空间复杂度,是重点之一。算法的空间复杂度一般是指这个算法执行时所需要的内存空间,其中包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中 所需要的额外空间,其中额外空间还包括算法程序执行过程的工作单元以及某种数据结构所需要的附加存储空间。 2 【正确答案】 A 【试题解析】 若深度为 k,则叶子节点的个数为 2k-1,这是满二叉树的性质之一。 3 【正确答案】 C 【试题解析】 队列是指允许在一端进行插入,而在另一
20、端进行删除的线性表。允许插入的一端称为队尾,允许删除的一端称为队头,所以在队列中既可以插入数据,也能删除数据,所以选项 A、 B是错误的。在这种数据结构中,最先插入的元素最先能够被删除,因此队列又称为先进先出的线性表。答 案是 C。 4 【正确答案】 C 【试题解析】 首先应该知道功能性注释是嵌在源程序体中的,用以描述其后的语句或程序段是在做什么工作,或是执行了下面的语句会怎么样。所以它描述的是一段程序,而不是每一个语句,是为程序段作注解。 5 【正确答案】 D 【试题解析】 在单链表中插入一个元素需要执行以下步骤:首先将待插入节点的前驱节点的指针域指向待插入节点,然后将待插入节点的指针域指向
21、待插入节点的前驱节点原先的后继节点。 6 【正确答案】 B 【试题解析】 本题考查对几种调试方法的掌握,其 中强行排错法是最常用也是最低效的,主要思想是通过 “计算机找错 ”,适合调试大规模程序。 回溯法是从出现错误征兆处开始,人工沿控制流程往回追踪,直至发现出错的根源。这是在小程序中常用的一种有效的调试方法。程序变大后,可能的回溯路线显著增加,以致人工进行完全回溯可望而不可及。原因排除法是靠演绎、归纳以及二分法来实现的适合调试大规模程序。静态调试是一种调试手段,主要是指通过人的思维来分析源程序代码和排错。 7 【正确答案】 A 【试题解析】 本题考核软件测试方法的应用。白盒测试是测试程序内部
22、的逻辑结构及 有关信息,黑盒测试只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。从程序内部的逻辑结构对系统进行测试才是测试的根本,即是比较深层次的测试,更容易发现和解决程序中的问题,因此单元测试时应该以白盒测试为主,而黑盒测试只能作辅助。 8 【正确答案】 B 【试题解析】 本题考查考生对几个概念的理解。其中数据库系统是指数据库和数据库管理系统软件的合称。数据库管理系统是一个帮助用户创建和管理数据库的应用程序的集合。数据结构描述数据的类型、内容、性质以及数据间的联系。数据库是指存储在计算机内有结 构的数据集合。 9 【正确答案】 D 【试题解析】 本题考核实体联系模型。在概念设
23、计中按照模块的划分画出每个模块的 ER图,然后把这些图合成一张 ER图作为全局模型,最后应该对全局 ER图进行优化,看看是否有重复和不合理的地方。不能只是进行简单的合并。 10 【正确答案】 D 【试题解析】 本题考核对笛卡儿积运算的掌握。笛卡儿积是两个关系的合并操作,关系 R的每一个行依次跟关系 S的每一个行组成一个新元组,因此关系 R与S经笛卡儿积后所得新关系的元组个数是 p*q。 11 【正确答案】 D 【试题解析】 本题考核的知识点是主函数的位置和作用。一个完整的 C+程序有且仅有一个主函数。程序总是从主函数的第 1条语句开始执行,到主函数的最后一条语句结束。其他函数都是在执行主函数时
24、,通过函数调用或嵌套调用而得以执行的。 C+规定,主函数可以出现在程序的任何地方。 12 【正确答案】 C 【试题解析】 C+语言的整型常量可以有三种表示形式: 十进制形式:与日常所用的十进制数形式相同,不能以 0开始。 八进制形式:以数字 0开头,由 0 7组成。 十六进制形式:以数字 0x(或 OX)开头,由 0 9及 A F(或 a f)组成。 根据以上知识考查所给出的 4个选项:选项 A是一个八进制数;选项 B是一个十六进制数;选项 D是一个十进制数;选项 C以 0开始没有跟字母 x(X),但后面的数字 8并不是八进制中使用的数字,故它不是 C+语言的整型常量。 13 【正确答案】 D
25、 【试题解析】 本题考查三种循环语句的结束条件。对于选项 A,它的条件表达式1永远为真,故循环永远不会停止,是死循环;对于选项 B,它的条件表达式为空,也是死循环;对于选项 C,它的条件表达式 (n =0)总是成立,故也是死 循环;对于选项 D,当 m减到小于 0时,它的条件表达式结果为假 (false),循环结束。 14 【正确答案】 D 【试题解析】 本题考查数组的定义、初始化及其引用,以及对字符 ASCII码值的熟悉程度。解本题的关键在于熟悉字符的 ASCII码值。字符在进行数学运算时取其 ASCII码值,其中 b的 ASCII码值为 98, d的 ASCII码值为 100,字符 2的
26、ASCII码值为 50。根据以上知识,可知选项 D中表达式 “c2-0”的值为 50。 15 【正确答案】 B 【试题解析】 本题考核指针的运 算。 C+语言中,指向同一字符串的指针之间能且只能进行减运算,减运算后返回的是一整型数,表示指针之间的地址偏移量。 16 【正确答案】 B 【试题解析】 函数重载是指同一个函数名可以对应着多个函数的实现。调用重载函数时, C+编译器通过检查调用中的参数个数、类型来选择相应的函数。选项 A中的关键词 const,可以把函数说明为常函数,它参与区分函数重载。选项 B中的返回值类型不能作为函数重载的判断条件。 17 【正确答案】 D 【试题解析】 本题考核类
27、成员的访问权限。类成员有 3类访问权限:公有(public)、私有 (private)和保护 (protected)。公有成员是类的对外表现,而私有成员和保护成员是类的内部实现。类的成员函数可以访问类的所有成员,没有任何限制。而类的对象对类的成员的访问是受成员访问控制符制约的。通过类的对象只能访问类的公有成员,不能访问类的保护成员和私有成员。由此可知,选项 D的描述是错误的。 18 【正确答案】 C 【试题解析】 在 C+中,构造函数不能被继承,因此;派生类的构造函数必须通过调用基类的构造函数来初始化基类子对象。所以,在定义派生类的构造函数时,除 了对自己的数据成员进行初始化外,还必须负责调用
28、基类构造函数使基类的数据成员得以初始化。如果派生类中还有子对象,还应包含对子对象初始化的构造函数。但是它不负责基类中子对象的初始化。 19 【正确答案】 C 【试题解析】 本题考核纯虚函数的说明。纯虚函数说明的一般格式如下: virtual类型函数名 (参数表 )=0; 20 【正确答案】 C 【试题解析】 本题考核模板函数的使用。在说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中 对象的形参,然后生成一个重载函数。由此可知模板函数的真正代码是在函数调用时产生的。 21 【正确答案】 B 【试题解析】 本题考核指针的应用和数组作实参的传递方法
29、。先分析函数 fun()的功能:函数 fun()把形参指针所指向的变量乘 b后,然后赋值给 b,且指针自动下移一位。在主函数中,传入的实参为数组 a的元素 a1的地址,那么函数返回的值为 2*12=24。所以程序最后输出 24*3=72。 22 【正确答案】 A 【试题解析】 本题考核对二维数组的定义和引用的熟悉程度。解此题时,应该注意以下 几点: 要注意给多维数组 a赋的初值是字符形式的 1-9,而不是数值 1 9。数字1 9与字符 1 9是不相等的。字符 1 9所对应的 ASCII码值为 49 57。 在 C+语言中,字符型数据的 ASCII码值拿来作为整型数据。所以整型数组 a的 9个元
30、素的初值应分别为: 49, 50, , 57(字符 1 9的 ASCII码值 )。 for语句中要求输出 ai1的值,也就是要输出 a01, a11, a213个值。 在 C+语言中的多维数组是按一维 数组形式存储的,这 3个元素的值分别是50, 53, 56。 23 【正确答案】 C 【试题解析】 本题考核外部变量的使用。先来了解外部变量:外部变量用关键词extern表示。由于外部变量可以被程序中的所有函数共同访问,其作用域为全局,因此也称为全局变量。 对于外部变量而言, “定义变量 ”和 “说明变量 ”是两个不同的概念。定义 a为外部变量是告诉编译程序, a是一个外部变量,并要求系统为 a
31、分配一个固定的永久存储空间。 a的值在整个程序的运行期间都存在,只有当定义它的程序运行结束时,它的存储空间才释放 。 外部变量定义后,当程序中的函数要引用外部变量时,应在函数中作引用说明。在此程序中,在第二行定义了一个外部变量 a,主函数给外部变量赋的初始值为100,当调用函数 fun()时,外部变量 a的值传到函数 fun()中,因此函数所返回的值为 100*10=1000。 24 【正确答案】 C 【试题解析】 本题考核对象指针的应用。程序首先定义了一个类 sample,其中包含一个私有成员 i和 3个公有成员函数。函数 setvalue()的功能是给私有成员 i赋值,函数 fun()的功
32、能是将私有成员 i的值增加 5, 函数 disp()的功能是输出变量 i的值。在主函数中,先定义了类 sample的一个对象指针 ps,并申请了一块内存空间。执行语句 ps- setvalue(20);后,类中 i的值为 20,执行语句 ps- fun(5);后,类中 i的值为 25。所以程序最后输出 25。 25 【正确答案】 B 【试题解析】 本题考核静态数据成员和静态成员函数的应用。程序中定义一个类sample,它包括一个静态数据成员 n和一个静态成员函数 add(),并在类的构造函数中给类私有静态数据成员 n赋值。 在主函数中,定义对象 a(2)时,通过构造函数使静态数据成员 n的值变
33、为 2,在定义对象 b(5)时,通过构造函数使静态数据成员 n=5(覆盖了前面的 n=2),再执行“sample: add(); ”使全局变量 s=5。 26 【正确答案】 A 【试题解析】 程序中定义了一个类 sample,以及类 sample的友元函数 fun()。在主函数中,通过 for循环调用各数组对象中的 setx成员函数给各个对象的私有数据成员赋值。而函数 fun()的功能是返回各个数组对象中的最大私有成员数据的值。 27 【正确答案】 C 【试题解析】 本题 考核派生类的定义和访问权限。本题涉及多层次的继承关系。类 B是类 A的派生类,类 C又是类 B的派生类。类 C中的构造函数
34、调用了类 B的构造函数来初始化类 B的私有数据成员,而类 B的构造函数又调用了类 A的构造函数来初始化类 A的私有数据成员。由此可知,程序最后的输出为 3,4。 28 【正确答案】 A 【试题解析】 本题考核基类指针的使用。本题首先定义了一个基类 Base和一个由 Base派生出来的派生类 Derive。在主函数中,定义了一个基类 Base指针 pb和基类对象 b,还定义了派生类 Derive的对象 d。然后将派生 类对象 d的地址赋值给指向基类 Base的指针 pb。由于 Derive是 Base的子类型,因此允许上述赋值。但这时指针 pb只能使用从基类 Base继承的成员,即当 pb指向
35、d对象时, pb-shaw还是调用基类 Base的成员函数 show()。所以程序最后输出的对象 d中对基类成员的初始化值,即 10,20。 29 【正确答案】 A 【试题解析】 本题中,虽然 Derivedl和 Derived2都是由共同的基类 x派生而来的,但由于引入了虚基类,使得它们分别对应基类的不同副本。这时数据成员 x只存在一份拷贝,不论在类 Derived1修改,还是在类 Derived2中修改,都是直接对这惟一拷贝进行操作。本题程序执行语句 “Derived obj”时,就会先调用虚基类Base的构造函数,使得 x=0,然后执行类 Derived1的构造函数,使得 x=10,再执
36、行类 Derived2的构造函数,使得 x=20。最后输出 x的值为 20。 30 【正确答案】 D 【试题解析】 本题考核文件的打开与关闭。 流可以分为 3类:输入流、输出流以及输入 /输出流,相应地必须将流说明为 ifstream、 ofstream以及 fstream类的 对象。如,说明一个输入流对象 “ifstream ifile; ”。 说明了流对象后,可使用函数 open()打开文件。文件的打开即是在流与文件之间建立一个连接。 open()的函数原型为: void open(const char *filename,int mode,int port=filebuf:openpro
37、t); 其中, filename是文件名字,它可包含路径说明。 mode说明文件的打开模式。 除了 open()成员函数外, ifstream、 ofstream以及 fstream 3类流的构造函数也可以打开文件,其参数同 open()函数。例如: “ifstream ifile(“c:vcabc txt“); ”。 打开的文件使用完毕后,必须使用 close()函数将其关闭。 close()函数也是流类的成员函数,它没有参数与返回值,其作用是将缓冲区的内容刷新并撤销流与文件之间的连接。当流对象的生存周期后,相应的析构函数也会将文件关闭。 由此可知,选项 A、 B和 C的表达式都是正确的。对
38、于选项 D,由于 open函数并不是 cout对象中的成员函数,所以对 open()的调用是非法 的。 31 【正确答案】 时间复杂度和空间复杂度 32 【正确答案】 SQRT(x2+y2)/(a+b) 33 【正确答案】 软件工程学 34 【正确答案】 数据模型 【试题解析】 数据模型是对客观事物及联系的数据描述,它反映了实体内部及实体与实体之间的联系。因此,数据模型是数据库设计的核心。 35 【正确答案】 关系 【试题解析】 在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系,表中的每一列称为一个属性,相当于记录中的 个数据项,对属性的命名称为属性名;表中的 一行称为一个元组,相
39、当于记录值。 36 【正确答案】 类 【试题解析】 C+语言面向对象程序设计的基本组成单元是 class,面向过程的程序设计的基本组成单元是函数。 37 【正确答案】 /*/ 【试题解析】 C+语言程序的注释可以出现在程序中的任何地方,一个注释以“/*”开始,以 “*/”为结束。 38 【正确答案】 2 4 6 【试题解析】 本题考查静态局部变量的使用。用关键字 static:声明的局部变量为 “静态局部变量 ”,其值在函数调用结束后不消失而保留原值,即其占用 的存储单元不释放,在下一次该函数调用时,该变量已有值,就是上一次函数调用结束时的值。 39 【正确答案】 malloc(11)或 ma
40、lloc(sizeof(char)*11) 【试题解析】 malloc,函数的参数可以是一个具体的常数,也可以是一个表达式。在本题中,可以是 malloe(11),也可以借助于 sizeof运算符来表示。 40 【正确答案】 12 【试题解析】 函数有一个形参 num,循环前变量 k置 1,循环中,表达式nora%10是取 num的个位,将 num的个位值累乘于 k中,然后 num除以 10。循环直至 num为 0结束,这是逐一求出 num十进制表示的各位数字,并累乘于变量k的循环。函数最后返回 k。函数 fun的功能是求整数的各位十进数字积。 41 【正确答案】 x operator+(operator*(y, z) 【试题解析】 C+中用成员函数重载 x*y为: x operator *(y),用友元函数重载x*y为: operator*(x, y),用成员函数重载 x+y为: x operator+(y),用友元函数重载 x+y为: operator+(x, y)。 42 【正确答案 】 函数模板 源代码 数据类型 【试题解析】 函数模板是一系列相关函数的模型或样板,这些函数的源代码形式相同,只是所针对的数据类型不同。注意:声明一个函数的模板格式是: template模板形参表声明函数声明