1、二级 C+笔试-404 及答案解析(总分:78.00,做题时间:90 分钟)一、选择题(总题数:32,分数:49.00)1.设根结点的层次为 0,高度为 K 的二叉树最最大结点数为( )个。A) 2K B) 2K+1-1 C) 2k+1 D) 2K+1+1(分数:2.00)A.B.C.D.2.下列关于完全二叉树的叙述中,错误的是( )。A除了最后一层外,每一层上的结点数均达到最大值B可能缺少若干个左右叶子结点C完全二叉树一般不是满二叉树D具有结点的完全二叉树的深度为1og2n)+1(分数:2.00)A.B.C.D.3.下列关于静态数据成员的描述中,正确的是( )。A) 静态数据成员是类的所有对
2、象共享的数据B) 类的每个对象都有自己的静态数据成员C) 类的不同对象有不同的静态数据成员值D) 静态数据成员不能通过类的对象调用(分数:1.00)A.B.C.D.4.表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是A)showbase( )和 eof( )B)showpoint( )和 eof( )C)showpoint( )和 bad( )D)showpoint( )和 good( )(分数:1.00)A.B.C.D.5.如果有以下定义及初始化:int a=3, *p=则由此可以推断,*p 的值是( )。A) 变量 a 的值,即 3 B) 变帚 a 的地址值C) 变量 p 的地
3、址值 D) 无意义(分数:2.00)A.B.C.D.6.下列关于运算符重载的描述中,正确的是A)运算符重载可以改变操作数的个数 B)运算符重载可以改变运算符的优先级C)运算符重载可以改变运算符的结合性 D)运算符重载可以使运算符实现特殊功能(分数:1.00)A.B.C.D.7.下列选项中不属于结构化程序设计原则的是 A) 可封装 B) 自顶向下 C) 模块化 D) 逐步求精(分数:2.00)A.B.C.D.8.两个或两个以上模块之间关联的紧密程度称为( )。A耦合度 B内聚度C复杂度 D数据传输特性(分数:2.00)A.B.C.D.9.以下程序的输出的结果是( )。#includeiostre
4、am.hvoid main()int i,k,a10,p3;k=5;for(i=0;i9;i+)ai=i;for(i=0;i3;i+)pi=ai*(i+1);for(i=0;i3;i+)k+=pi*2;coutk;A) 20 B) 21 C) 22 D) 23(分数:2.00)A.B.C.D.10.下述关于 break 语句的描述中,( )是不正确的。Abreak 语句可用于循环体内,它将退出该重循环Bbreak 语句可用于 switch 语句中,它将退出 switch 语句Cbreak 语句可用于对体内,它将退出 if 语句Dbreak 语句在一个循环体内可以出现多次(分数:1.00)A.B
5、.C.D.11.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是A)数据库系统 B)文件系统 C)人工管理 D)数据项管理(分数:1.00)A.B.C.D.12.关于友元的概念错误的是( )。A友元函数没有 this 指针 B调用友元函数时必须在它的实参中给出要访问的对象C一个类的成员函数也可以作为另一个类的友元函数D只能在类的公有段声明友元(分数:1.00)A.B.C.D.13.下列关于虚函数的描述中,正确的是A)虚函数是一个 static 类型的成员函数B)虚函数是一个非成员函数C)基类中采用 virtual 说明一个虚函数后,派生类
6、中定义相同原型的函数时可不必加 virtual 说明D)派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型(分数:1.00)A.B.C.D.14.首先访问结点的左子树,然后访问该结点,最后访问结点的右子树,这种遍历方式称为 ( )。A) 前序遍历 B) 中序遍历 C) 后序遍历 D) 顺序遍历(分数:2.00)A.B.C.D.15.下面有关重载函数的说法中,正确的是( )。A) 重载函数必须具有不同的返回值类型B) 重载函数形参个数必须不同C) 重载函数必须有不同的形参列表D) 重载函数名可以不同(分数:1.00)A.B.C.D.16.与语句 cout end1;不等价的是A)
7、coutn; B) cout 12;C) coutxA; D) cout 0;(分数:1.00)A.B.C.D.17.定义如下变量:char one_char,则语句 cinone_char 等价于 C 语言中的( )语句。Aprintf(one_char); Bprinft(“%c“,one_char);Cscanf(one_char); Dscanf(“%c“,int main()char a=“Hello,World“;char *ptr=a;while(*ptr)if(*ptr=aelse cout*ptr;ptr+;retur 0;AHELLO,WORLD BHello,WorldC
8、hELLO,world Dhello,world(分数:2.00)A.B.C.D.19.有如下类声明:class MyBASEint k;public:void set(iht n)k=n;int get()coastreturn k;class MyDERIVED:pnoted My BASEprotected:int j;public:void set(int m,int n)MyBASE:set(m);j=n;int get()constreturn MyBASE:get()+j;则类 MyDERIVED 中保护的数据成员和成员函数的个数是A)4 B)3 C)2 D)1(分数:1.00)
9、A.B.C.D.20.数据库设计中反映用户对数据要求的模式是A) 内模式B) 概念模式C) 外模式D) 设计模式(分数:2.00)A.B.C.D.21.有以下程序:#includeiostreamusing namespace std;int f(int,int);int main()int i:1,x;x=f(i,i+1);coutxend1;return 0;int f(int a,int b) int c;c = a;if(ab) c = 1;else if(a=b) c = 0;elsec = -2;return c;运行后的输出结果是( )。A) 1 B) 0 C) -1 D) -2
10、(分数:1.00)A.B.C.D.22.以下类定义中可能会引起错误的语句是class Apublic:A() /1int i; /2private:int j /3A(int i)i+; /4;A)1 B)2 C)3 D)4(分数:1.00)A.B.C.D.23.具有 3 个结点的二叉树有( )。A2 种形态 B4 种形态C7 种形态 D5 种形态(分数:2.00)A.B.C.D.24.对于重载的运算符 ,它是一个A) 用于输入的友元函数B) 用于输入的成员函数C) 用于输出的友元函数D)用于输出的成员函数(分数:1.00)A.B.C.D.25.单个用户使用的数据视图的描述称为( )。A) 外
11、模式 B) 概念模式 C) 内模式 D) 存储模式(分数:2.00)A.B.C.D.26.下面的概念中,不属于面向对象方法的是_ 。A) 自顶向下 B) 继承 C) 类 D) 对象(分数:2.00)A.B.C.D.27.有如下程序:#includeiostream.hclass Baseprotected:int i;public:int j;;class Derived:public Baseint m;public:int n;int main()Derived d;d.i=0; /1d.j=0; /2d.m=0; /3d.n=0; /4return 0;其中主函数中有两个赋值语句有错,这
12、两个错误的赋值语句是( )。A1和2 B1)和3 C2和3 D2和4(分数:2.00)A.B.C.D.28.在数据库设计中,将 E-R 图转换为关系模式的过程属于( )。A需求分析阶段 B逻辑设计阶段C概念设计阶段 D物理设计阶段(分数:2.00)A.B.C.D.29.重载输入流运算符必须使用的原型为A) istreamswitch(a)case 5:switch(b)case 5:i+;break;case 6:j+;break;default:i+;j+;case 6:i+;j+;break;default:i+;j+;couti“,“jendl;A1,2 B1,3C2,2 D2,3(分数
13、:2.00)A.B.C.D.32.类模板的使用实际上是将类模板实例化成一个具体的( )。A类 B对象 C函数 D模板类(分数:1.00)A.B.C.D.二、填空题(总题数:15,分数:29.00)33.执行下列程序段以后程序的输出是_。void add(int int main()int y=3;add(y);coutyend1;(分数:2.00)填空项 1:_34.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、 4 。(分数:2.00)填空项 1:_35.继承的方式有公有继承、私有继承和 3 种。(分数:2.00)填空项 1:_36.阅读下面的程序:#includ
14、eiomanip.hvoid main()cout.fill(!);coutsetiosflags(ioS:left)hex;coutsetw(6)1024endl;写出该程序的输出结果: 【11】 。(分数:2.00)填空项 1:_37.符合结构化原则的三种基本控制结构是:选择结构、循环结构和 1。(分数:2.00)填空项 1:_38.下面的函数利用递归实现了求 1+2+3+n 的功能:int sum(int n)if(n= =0)return 0;elsereturn n+sum(n-1);在执行 sum(10)的过程中,递归调用 sum 函数的次数是_。(分数:2.00)填空项 1:_3
15、9.一个模块直接调用的其他模块个数称为 1。(分数:2.00)填空项 1:_40.用以下语句调用库函数 malloc,使字符指针 st 指向具有 11 个字节的动态存储空间,请填空。st(char * ) ;(分数:2.00)填空项 1:_41.定义一个函数名为 fun,返回值为 int,没有参数的纯虚函数的定义是 1。(分数:2.00)填空项 1:_42.设有二维数组 int a 1020;,则 aij的地址可由首元素 a00的地址来表达,由此可得访问数组元素 aij的表达式为 【6】 。(分数:2.00)填空项 1:_43.已知 int DBL(int n)return n+n;和 lon
16、g DBL(long n)return n+n)是一个函数模板的两个实例,则该函数模板的定义是 【13】 。(分数:1.00)填空项 1:_44.类继承中,默认的继承方式是 【13】 。(分数:2.00)填空项 1:_45.执行下列语句后,变量 sum 的值是_。int sum=0;for(int i=1;i=3;i+)for(int j=1;j=i;j+)sum+;(分数:2.00)填空项 1:_46.创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用默认构造函数,下列程序涉及对象数组的创建和单个对象的创建,其输出结果是_。 #include io
17、stream using namespace std; class Foo public: Foo(int x)eoutA; Foo( ) ; int main( ) Foo f3,g(3); return 0;(分数:2.00)填空项 1:_47.已有函数 fun(a,b),为了使函数指针变量 P 指向函数 fun,则使用的赋值语句是 1。(分数:2.00)填空项 1:_二级 C+笔试-404 答案解析(总分:78.00,做题时间:90 分钟)一、选择题(总题数:32,分数:49.00)1.设根结点的层次为 0,高度为 K 的二叉树最最大结点数为( )个。A) 2K B) 2K+1-1 C)
18、 2k+1 D) 2K+1+1(分数:2.00)A.B. C.D.解析:解析 设根结点的层次为 0,第 0 层最多有 1 结点即 20,第 1 层最多有 2 结点即 21,以此类推,第 k 层最多有 2k 个结点。高度为 K 的二又树最最大结点数为 20+21+22+2k,即 2k+1-1 个。2.下列关于完全二叉树的叙述中,错误的是( )。A除了最后一层外,每一层上的结点数均达到最大值B可能缺少若干个左右叶子结点C完全二叉树一般不是满二叉树D具有结点的完全二叉树的深度为1og2n)+1(分数:2.00)A.B. C.D.解析:解析 满二叉树指除最后一层外,每一层上所有结点都有两个子结点的二叉
19、树。完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干叶子结点的二叉树。因此选项 A 叙述正确,而选项 B 叙述错误。由定义可知,满二叉树肯定是完全二叉树,而完全二叉树一般不是满二叉树。3.下列关于静态数据成员的描述中,正确的是( )。A) 静态数据成员是类的所有对象共享的数据B) 类的每个对象都有自己的静态数据成员C) 类的不同对象有不同的静态数据成员值D) 静态数据成员不能通过类的对象调用(分数:1.00)A. B.C.D.解析:解析 静态数据成员是被类的所有对象共享,它不属于类的任何一个对象,它的作用域是类范围。静态数据成员在每个类对象中并不占有存储空间
20、,它只是每个类中分配有存储空间,供所有对象公用。静态数据成员的值对每个对象都一样,但它的值可以被任何一个对象更新,从而实现了同一类的不同对象之间的数据共享。4.表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是A)showbase( )和 eof( )B)showpoint( )和 eof( )C)showpoint( )和 bad( )D)showpoint( )和 good( )(分数:1.00)A.B. C.D.解析:解析:表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是 showpoint( )和 eof( )。5.如果有以下定义及初始化:int a=3, *p=
21、则由此可以推断,*p 的值是( )。A) 变量 a 的值,即 3 B) 变帚 a 的地址值C) 变量 p 的地址值 D) 无意义(分数:2.00)A. B.C.D.解析:解析 题目中的定义初始化是定义一个整型变量 a,初始化为 3。而“int*p=k=5;for(i=0;i9;i+)ai=i;for(i=0;i3;i+)pi=ai*(i+1);for(i=0;i3;i+)k+=pi*2;coutk;A) 20 B) 21 C) 22 D) 23(分数:2.00)A.B. C.D.解析:解析 程序中首先在第一个 for 循环中将数组 a 每一个元素赋值为 0,1,2,。然后在第二个循环中数组 p
22、 的第 i 元素为 a 中的第 i*(i+1),即 0,2,6,第三个循环中数组 p 中的每个元素值乘以2,然后加上 5,累加。10.下述关于 break 语句的描述中,( )是不正确的。Abreak 语句可用于循环体内,它将退出该重循环Bbreak 语句可用于 switch 语句中,它将退出 switch 语句Cbreak 语句可用于对体内,它将退出 if 语句Dbreak 语句在一个循环体内可以出现多次(分数:1.00)A.B.C. D.解析:11.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是A)数据库系统 B)文件系统 C)人工
23、管理 D)数据项管理(分数:1.00)A. B.C.D.解析:解析 人工管理阶段是在 20 世纪 50 年代中期以前出现的,数据不独立,完全依赖于程序;文件系统是数据库系统发展的初级阶段,数据独立性差;数据库系统具有高度的物理独立性和一定的逻辑独立性。12.关于友元的概念错误的是( )。A友元函数没有 this 指针 B调用友元函数时必须在它的实参中给出要访问的对象C一个类的成员函数也可以作为另一个类的友元函数D只能在类的公有段声明友元(分数:1.00)A.B.C.D. 解析:13.下列关于虚函数的描述中,正确的是A)虚函数是一个 static 类型的成员函数B)虚函数是一个非成员函数C)基类
24、中采用 virtual 说明一个虚函数后,派生类中定义相同原型的函数时可不必加 virtual 说明D)派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型(分数:1.00)A.B.C. D.解析:14.首先访问结点的左子树,然后访问该结点,最后访问结点的右子树,这种遍历方式称为 ( )。A) 前序遍历 B) 中序遍历 C) 后序遍历 D) 顺序遍历(分数:2.00)A.B. C.D.解析:解析 前序遍历序列的顺序是先根、再左子树、最后右子树;中序遍历序列的顺序是先左子树、再根、最后右子树;后序遍历序列的顺序是先左子树、再右子树、最后根。15.下面有关重载函数的说法中,正确的是(
25、)。A) 重载函数必须具有不同的返回值类型B) 重载函数形参个数必须不同C) 重载函数必须有不同的形参列表D) 重载函数名可以不同(分数:1.00)A.B.C. D.解析:解析 函数重载允许用同一个函数名定义多个函数。被重载的函数必须要有不同的形参列表。不可以根据函数返回值类型来重载函数。16.与语句 cout end1;不等价的是A) coutn; B) cout 12;C) coutxA; D) cout 0;(分数:1.00)A.B.C.D. 解析:解析 题干表示的是回车换行,选项 A,选项 B 和选项 C 都表示回车换行。而选项 D 是字符串的结尾标志。17.定义如下变量:char o
26、ne_char,则语句 cinone_char 等价于 C 语言中的( )语句。Aprintf(one_char); Bprinft(“%c“,one_char);Cscanf(one_char); Dscanf(“%c“,int main()char a=“Hello,World“;char *ptr=a;while(*ptr)if(*ptr=aelse cout*ptr;ptr+;retur 0;AHELLO,WORLD BHello,WorldChELLO,world Dhello,world(分数:2.00)A. B.C.D.解析:19.有如下类声明:class MyBASEint k
27、;public:void set(iht n)k=n;int get()coastreturn k;class MyDERIVED:pnoted My BASEprotected:int j;public:void set(int m,int n)MyBASE:set(m);j=n;int get()constreturn MyBASE:get()+j;则类 MyDERIVED 中保护的数据成员和成员函数的个数是A)4 B)3 C)2 D)1(分数:1.00)A.B. C.D.解析:解析 protected 派生:pnvate-不可见;protected-private;public-prot
28、ected。20.数据库设计中反映用户对数据要求的模式是A) 内模式B) 概念模式C) 外模式D) 设计模式(分数:2.00)A.B.C. D.解析:21.有以下程序:#includeiostreamusing namespace std;int f(int,int);int main()int i:1,x;x=f(i,i+1);coutxend1;return 0;int f(int a,int b) int c;c = a;if(ab) c = 1;else if(a=b) c = 0;elsec = -2;return c;运行后的输出结果是( )。A) 1 B) 0 C) -1 D)
29、-2(分数:1.00)A.B.C.D. 解析:解析 本题考核对函数调用方法的掌握程度。做此类题主要是弄清楚程序每一步的目的:在主函数前面声明了整型函数 f。在主函数中,调用了函数 f()。实参的值分别是 1 和 2,1 传给函数 f 的形参a,2 传给函数 f 的形参 b,函数返回的值赋给变量 x。即为输出的函数值。具体分析一下函数 f()的功能:如果 a 大于 b,则赋予 c 的值为 1;并且跳出 if-else 语句。如果 a 不大于 b,则进入 else if 分支中,如果 a 等于 b,则赋予 c 的值为 0,并跳出以下的 if-else 语句。如果 a 不等于 b,则进入 else
30、分支,执行 c=-2。因为实参 1,2 分别传给形参 a,b,所以此时 ab,f()函数应执行 c=-2。即最终输出应为-2。22.以下类定义中可能会引起错误的语句是class Apublic:A() /1int i; /2private:int j /3A(int i)i+; /4;A)1 B)2 C)3 D)4(分数:1.00)A.B.C.D. 解析:解析 考查关于 C+语言类的定义方法。解题要点 在 c+语言中类定义中的构造函数是私有的,但是其却调用了其中的公有变量,在实例化时会出现错误。考点链接 C+语言类的定义23.具有 3 个结点的二叉树有( )。A2 种形态 B4 种形态C7 种
31、形态 D5 种形态(分数:2.00)A.B.C.D. 解析:24.对于重载的运算符 ,它是一个A) 用于输入的友元函数B) 用于输入的成员函数C) 用于输出的友元函数D)用于输出的成员函数(分数:1.00)A. B.C.D.解析:解析 考查 C+语言中 运算符的意义。【解题要点】C+语言中 和 运算符都是友元函数重载,分别用于输出和输入。【考点链接】运算符 只能作为成员函数重载。25.单个用户使用的数据视图的描述称为( )。A) 外模式 B) 概念模式 C) 内模式 D) 存储模式(分数:2.00)A. B.C.D.解析:解析 单个用户使用的数据视图的描述称为外模式。26.下面的概念中,不属于
32、面向对象方法的是_ 。A) 自顶向下 B) 继承 C) 类 D) 对象(分数:2.00)A. B.C.D.解析:解析 自顶向下是结构化程序设计的特征。27.有如下程序:#includeiostream.hclass Baseprotected:int i;public:int j;;class Derived:public Baseint m;public:int n;int main()Derived d;d.i=0; /1d.j=0; /2d.m=0; /3d.n=0; /4return 0;其中主函数中有两个赋值语句有错,这两个错误的赋值语句是( )。A1和2 B1)和3 C2和3 D2
33、和4(分数:2.00)A.B. C.D.解析:28.在数据库设计中,将 E-R 图转换为关系模式的过程属于( )。A需求分析阶段 B逻辑设计阶段C概念设计阶段 D物理设计阶段(分数:2.00)A.B. C.D.解析:解析 数据库设计阶段主要包括儒朱分析、概念设计、逻辑设计和物理设计。其中逻辑设计的主要工作是将 E-R。图转换为关系模式。29.重载输入流运算符必须使用的原型为A) istreamswitch(a)case 5:switch(b)case 5:i+;break;case 6:j+;break;default:i+;j+;case 6:i+;j+;break;default:i+;j
34、+;couti“,“jendl;A1,2 B1,3C2,2 D2,3(分数:2.00)A. B.C.D.解析:32.类模板的使用实际上是将类模板实例化成一个具体的( )。A类 B对象 C函数 D模板类(分数:1.00)A.B. C.D.解析:二、填空题(总题数:15,分数:29.00)33.执行下列程序段以后程序的输出是_。void add(int int main()int y=3;add(y);coutyend1;(分数:2.00)填空项 1:_ (正确答案:4)解析:解析 C+中的参数传递包括传值与传地址两种。传值是默认的参数传递方式。如果调用函数时,须要改变实参或者返回多个值,就应该采
35、用传地址方式。传递指针属于显式的传地址方式,传递引用属于隐式的传地址方式。本题采用的是传递引用,所以实参被改变。34.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、 4 。(分数:2.00)填空项 1:_ (正确答案:判定树)解析:35.继承的方式有公有继承、私有继承和 3 种。(分数:2.00)填空项 1:_ (正确答案:保护继承)解析:解析 继承性是面向对象程序设计中最重要的机制,用户可以根据不同的需要选择 3 种不同的继承方式。36.阅读下面的程序:#includeiomanip.hvoid main()cout.fill(!);coutsetiosflags
36、(ioS:left)hex;coutsetw(6)1024endl;写出该程序的输出结果: 【11】 。(分数:2.00)填空项 1:_ (正确答案:400!)解析:37.符合结构化原则的三种基本控制结构是:选择结构、循环结构和 1。(分数:2.00)填空项 1:_ (正确答案:顺序结构)解析:38.下面的函数利用递归实现了求 1+2+3+n 的功能:int sum(int n)if(n= =0)return 0;elsereturn n+sum(n-1);在执行 sum(10)的过程中,递归调用 sum 函数的次数是_。(分数:2.00)填空项 1:_ (正确答案:11 次)解析:39.一个
37、模块直接调用的其他模块个数称为 1。(分数:2.00)填空项 1:_ (正确答案:扇出)解析:解析 在结构图中,调用一个给定模块的模块个数称为扇入,一个模块直接调用的其他模块个数称为扇出。40.用以下语句调用库函数 malloc,使字符指针 st 指向具有 11 个字节的动态存储空间,请填空。st(char * ) ;(分数:2.00)填空项 1:_ (正确答案:malloc(11) 或 malloc(sizeof(char) * 11))解析:解析 malloc 函数的参数可以是一个具体的常数,也可以是一个表达式。在本题中,可以是malloc(11) ,也可以借助于 sizeof 运算符来表
38、示。41.定义一个函数名为 fun,返回值为 int,没有参数的纯虚函数的定义是 1。(分数:2.00)填空项 1:_ (正确答案:virtual int fun-|_|-=0;)解析:解析 纯虚函数是在声明虚函数时被“初始化”为 0 的函数。定义的一般形式为:virtual 函数类型函数名(参数列表)=0。所以,根据题目要求,答案为“virtual int fun-|_|-=0;”。42.设有二维数组 int a 1020;,则 aij的地址可由首元素 a00的地址来表达,由此可得访问数组元素 aij的表达式为 【6】 。(分数:2.00)填空项 1:_ (正确答案:*(for(int i=
39、1;i=3;i+)for(int j=1;j=i;j+)sum+;(分数:2.00)填空项 1:_ (正确答案:6)解析:解析 此题考查的是 for 循环的嵌套。题目中外循环会循环 3 次,每次循环变量 i 的值分别是1、2、3;内循环会循环 i 次,故 3 次执行内循环,循环此数分别是 1、2、3 次。故最终 sum 的值为 6。46.创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用默认构造函数,下列程序涉及对象数组的创建和单个对象的创建,其输出结果是_。 #include iostream using namespace std; class
40、Foo public: Foo(int x)eoutA; Foo( ) ; int main( ) Foo f3,g(3); return 0;(分数:2.00)填空项 1:_ (正确答案:A)解析:解析 数组 f3调用的是无参构造函数,而 g(3)调用的是第一个有参构造函数,故打印 A。47.已有函数 fun(a,b),为了使函数指针变量 P 指向函数 fun,则使用的赋值语句是 1。(分数:2.00)填空项 1:_ (正确答案:p=fun)解析:解析 函数入口地址称为函数的指针。可以使用指针变量指向 fun 函数,然后通过该指针变量调用此函数。赋值语句就是将函数 fun 的入口地址赋值给指针变量 P,只需将函数名赋给 P,不能写成“p=fun(a,b)”形式。函数名就代表了函数入口地址,即 p=fun。