1、二级 C+-99 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:46,分数:100.00)1.已知函数 fun 的原型为 int fun(int,int,int); 下列重载函数原型中错误的是_。(分数:2.00)A.char fun(int,int);B.double fun(int,int,double);C.int fun(int,char*);D.float fun(int,int,int);2.下列关于函数重载的叙述中,错误的是_。(分数:2.00)A.重载函数的参数个数可以不同B.重载函数的参数类型可以不同C.重载函数的返回值类型必须不同D.重载函数的参
2、数个数或参数类型必须有所不同3.下列有关内联函数的叙述中,正确的是_。(分数:2.00)A.内联函数在调用时发生控制转移B.内联函数必须通过关键字 inline 来定义C.内联函数是通过编译器来实现的D.内联函数函数体的最后一条语句必须是 return 语句4.为了取代 C 中带参数的宏,在 C+中使用_。(分数:2.00)A.重载函数B.内联函数C.递归函数D.友元函数5.为了提高函数调用的实际运行速度,可以将较简单的函数定义为_。(分数:2.00)A.内联函数B.重载函数C.递归函数D.函数模板6.计算斐波那契数列第 n 项的函数定义如下: int fib(int n) if(n=0) r
3、eturn 1; else if(n=1) return 2; else return fib(n-1)+fib(n-2); 若执行函数调用表达式 fib(2),函数 fib 被调用的次数是_。(分数:2.00)A.1B.2C.3D.47.有如下类声明: class Foo int bar; 则 Foo 类的成员 bar 是_。(分数:2.00)A.公有数据成员B.公有成员函数C.私有数据成员D.私有成员函数8.有如下类定义: class Foo public: Foo(int v):value(v) / Foo() / private: Foo() / int value=0; / ; 其中
4、存在语法错误的行是_。(分数:2.00)A.B.C.D.9.有如下类定义: class Test public: Test()a=0;c=0; / int f(int a)constthis-a=a;) / static int g ()return a;) / void h(int b)Test:b=b;); / private: int a; static int b; constint c; ; int Test:b=0; 在标注号码的行中,能被正确编译的是_。(分数:2.00)A.B.C.D.10.有如下类声明: class SAMPLE int n; public: SAMPLE(i
5、nt i=0):n(i) void setValue(int n0); ; 下列关于 getValue 成员函数的实现中,正确的是_。(分数:2.00)A.SAMPLE:setValue(int.n0)n=n0;B.void SAMPLE:setValue(int n0)n=n0;C.void setValue(int n0)n=n0;D.(int n0)n=n0;11.以下关键字不能用来声明类的访问权限的是_。(分数:2.00)A.publicB.staticC.protectedD.private12.下列关于类定义的说法中,正确的是_。(分数:2.00)A.类定义中包括数据成员和函数成员
6、的声明B.类成员的缺省访问权限是保护的C.数据成员必须被声明为私有的D.成员函数只能在类体外进行定义13.如果派生类以 protected 方式继承基类,则原基类的 protected 成员和 public 成员在派生类中的访问属性分别是_。(分数:2.00)A.public 和 publicB.public 和 protectedC.protected 和 publicD.protected 和 protected14.下列有关类成员的叙述中,正确的是_。(分数:2.00)A.友元函数是类的成员函数B.类成员的默认访问权限是私有的C.类成员函数必须声明为公有的D.类的静态数据成员不能是常成员
7、15.下列运算符函数中,肯定不属于类 Value 的成员函数的是_。(分数:2.00)A.Value operator+(Value);B.Value operator-(Value,Value);C.Value operator*(int);D.Value operator/(Value);16.有如下程序: #includeiostream #includecstring using namespace std; class XCD char* a; int b; public: XCD(char* aa,int bb) a=new charstrlen(aa)+1; strcpy(a,a
8、a); b=bb; char* Geta()return a; int Getb()return b; ; intmain() char*p1=“abcd“,*p2=“weirong“; int d1=6,d2=8; XCD x(p1,d1),y(p2,d2); coutstrlen(x.Geta()+y.Getb()endl; return 0; 运行时的输出结果是_。(分数:2.00)A.12B.16C.14D.1117.有如下两个类定义: class AA; class BB AA v1,*v2; BB v3; int*v4; ; 其中有一个成员变量的定义是错误的,这个变量是_。(分数:
9、2.00)A.v1B.v2C.v3D.v418.有如下程序: #includeiostream using namespace std; class Point int x,y; public: Point(int x1=0,int y1=0):x(x1),y(y1) int get()return x+y;) ; class Circle Point cente; int radius; public: Circle(int cx,int cy,int r):center(cx,cy),radius(r) int get()return center.get()+radius; ; int
10、main() Circle c(3,4,5); coutc.get()endl; return 0; 运行时的输出结果是_。(分数:2.00)A.5B.7C.9D.1219.若 AA 为一个类,a 为该类的私有整型数据成员,getA()为该类的一个非静态公有成员函数,功能是返回 a 的值。如果 x 为该类的一个对象,要在类外访问 x 对象中 a 的值,正确的访问格式为_。(分数:2.00)A.AA.getA()B.x.getA()C.x.aD.AA:a20.有如下类定义: class MyClass int b;char a;double c; public: MyClass():c(0.0)
11、,b(0),a(“,“) ; 创建这个类的对象时,数据成员的初始化顺序是_。(分数:2.00)A.a,b,cB.c,b,aC.b,a,cD.c,a,b21.下列关于类和对象的叙述中,错误的是_。(分数:2.00)A.一个类只能有一个对象B.对象是类的具体实例C.类是对某一类对象的抽象D.类和对象的关系是一种数据类型与变量的关系22.若有如下类声明 class MyClass public: MyClass()cout1; ; 执行下列语句 MyClass a,b2,*p2: 以后,程序的输出结果是_。(分数:2.00)A.11B.111C.1111D.1111123.建立一个类对象时,系统自动
12、调用_。(分数:2.00)A.析构函数B.构造函数C.静态函数D.友元函数24.若 MyClass 是一个类名,且有如下语句序列 MyClass c1,*c2; MyClass *c3=new MyClass; MyClass 上面的语句序列所定义的类对象的个数是_。(分数:2.00)A.1B.2C.3D.425.要定义一个引用变量 p,使之引用类 MyClass 的一个对象,正确的定义语句是_。(分数:2.00)A.MyClass p=MyClass;B.MyClass p=new MyClass;C.MyClass D.MyClass a,26.下列关于对象初始化的叙述中,正确的是_。(分
13、数:2.00)A.定义对象的时候不能对对象进行初始化B.定义对象之后可以显式地调用构造函数进行初始化C.定义对象时将自动调用构造函数进行初始化D.在一个类中必须显式地定义构造函数实现初始化27.有如下程序: #includeiostream using namespace std; class Pair int m,n; public: Pair(int j,int k):m(j),n(k) int get()return m; int get()constreturn m+n; ; int main() Pair a(3,5); const Pair b(3,5); couta.get()b
14、.get(); return 0; 运行时的输出结果是_。(分数:2.00)A.33B.38C.83D.8828.有如下类定义: class MyClass int x; public: MyClass():x(0),y(0) int GetX()return x; void SetX(int xx)x=xx; int y; ; 已知 obj 是类 MyClass 的对象,下列语句中违反类成员访问控制权限的是_。(分数:2.00)A.obj.xB.obj.yC.obj.GetX()D.obj.SetX(0)29.有如下程序: #includeiostream using namespace s
15、td; class Point public: static int number; public: Pointonumber+; Point()number-;) ; int Point:number-0; void mainO Point*ptr; PointA,B; Point*ptr_point=new Point3; ptx=ptr_point; Point C; Gout+Point:number+endl; deleteptr; 运行时输出的结果是_。(分数:2.00)A.3B.4C.6D.730.在下列函数原型中,可以作为类 AA 构造函数的是_。(分数:2.00)A.void
16、 AA(int);B.int AA();C.AA(int)const;D.AA(int);31.有如下类定义: class Point int x_,y_; public: Point():x_(0),y_(0) Point(int x,int y=0):x_(x),y_(y) ; 若执行语句 Point a(2),b3,*c4; 则 Point 类的构造函数被调用的次数是_。(分数:2.00)A.2 次B.3 次C.4 次D.5 次32.下列情况中,不会调用拷贝构造函数的是_。(分数:2.00)A.用一个对象去初始化同一类的另一个新对象时B.将类的一个对象赋值给该类的另一个对象时C.函数的形
17、参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时33.有如下程序 #includeiostream #includeiomanip using namespace std; class MyClass public: MyClass()cout“A“; MyClass(char c)coutc; MyClass()cout“B“;) ; int main() MyClass p1,*p2; p2=new MyClass(“X“); delete p2; return 0; 执行这个程序屏幕上将显示输出_。(分数:2.00)A.ABXB.ABXBC.AXB
18、D.AXBB34.有如下程序: #includeiostream using namespace std; class test private: int a; public: test0cout+“constructor“+endl; test(int a)cout+a+endl;) test(const test cout+,copy constructor“+endl; test()Cout+“destructor“+endl; ; int main() test A(3); return 0; 运行时输出的结果是_。(分数:2.00)A.3B.constructordestructor
19、C.copy constructordestructorD.3destructor35.对于一个类定义,下列叙述中错误的是_。(分数:2.00)A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数B.如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数36.有如下程序: #includeiostream using namespace std; class Part public: Part(int x=0):val(x)coutval;
20、 Part()coutval;) private: int val; ; class Whole public: Whole(int x,int y,int z=0):p2(x),p1(y),val(z)coutval; Whole()coutval; private: Part p1,p2; int val; ; int main() Whole obj(1,2,3); return 0; 程序的输出结果是_。(分数:2.00)A.123321B.213312C.213D.12312337.有如下程序: #includeiostream using namespace std; class
21、Base public: Base(int x=0)coutx; ; class Derived:public Base public: Derived(int x=0)coutx; private: Base val; ; int main() Derived d(1); return 0; 程序的输出结果是_。(分数:2.00)A.0B.1C.01D.00138.有如下类定义: class MyClass Int value; public; MyClass(int n):value(n) int gerValue()constreturn value; ; 则类 MyClass 的构造函
22、数的个数是_。(分数:2.00)A.1 个B.2 个C.3 个D.4 个39.在 C+中,编译系统自动为一个类生成缺省构造函数的条件是_。(分数:3.00)A.该类没有定义任何有参构造函数B.该类没有定义任何无参构造函数C.该类没有定义任何构造函数D.该类没有定义任何成员函数40.有如下程序: #includeiostream using namespace std; class Sample public: Sample() Sample()cout“*“;) ; int main() Sample temp2,*pTemp2; return 0: 执行这个程序输出星号(*)的个数为_。(分
23、数:3.00)A.1B.2C.3D.441.有如下程序: #includeiostream using namespace std; class MyClass public: MyClass(int i=0)cout1;) MyClass(const MyClass) MyClassreturn*this; MyClass()cout4;) ; int main() MyClass obj1(1),obj2(2),obj3(obj1); return 0; 运行时的输出结果是_。(分数:3.00)A.112444B.11114444C.121444D.1131444442.有如下程序: #i
24、ncludeiostream #includecstring using namespace std; class XCF int a; public: XCF(int aa=0):a(aa)cout“1“; XCF(XCFcout“2“; XCF()couta; int Geta()return a; ; int main() XCF d1(5),d2(d1); XCF*pd=new XCF(8); coutpd-Geta(); delete pd; return 0; 运行时的输出结果是_。(分数:3.00)A.1215588B.1218855C.12185D.12851243.有如下程序
25、: #includeiostream using namespace std; class ONE int c; public: ONE():c(0)cout1; ONE(int n):c(n)cout2; ; class TWO ONE one1; ONE one2; public: TWO(int m):one2(m)cout3; ; int main() TWO t(4); return 0; 运行时的输出结果是_。(分数:3.00)A.3B.23C.123D.21344.Sample 是一个类,执行下面语句后,调用 Sample 类的构造函数的次数是_。 Sample a2,*P=ne
26、w Sample;(分数:3.00)A.0B.1C.2D.345.有如下程序: #includeiostream using namespace std; class Toy public: Toy(char*_n)strcpy(name,_n);count+; Toy()count-; char* GetName()return name; static int getCount()return count;) private: char name10; static int count; ; int Toy:count=0; int main() Toy t1(“Snoopy“),t2(“
27、Mickey“),t3(“Barbie“); coutt1.getCount()endl; return 0; 运行时的输出结果是_。(分数:3.00)A.1B.2C.3D.运行时出错46.有如下程序: #includeiostream using namespace std; class Name char name20; public: Name() strcpy(name,“); cout“?“; Name(char*fname) strcpy(name,fname); cout“?“; ; int main() Name names3=Name(“张三“),Name(“李四“); re
28、turn 0; 运行此程序输出符号?的个数是_。(分数:3.00)A.0B.1C.2D.3二级 C+-99 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:46,分数:100.00)1.已知函数 fun 的原型为 int fun(int,int,int); 下列重载函数原型中错误的是_。(分数:2.00)A.char fun(int,int);B.double fun(int,int,double);C.int fun(int,char*);D.float fun(int,int,int); 解析:解析 重载函数至少要在参数个数或参数类型上不同。而选项 D 中的函数与原
29、函数只是函数类型不同,而其他完全相同(参数个数及类型),则不能作为重载函数来使用。2.下列关于函数重载的叙述中,错误的是_。(分数:2.00)A.重载函数的参数个数可以不同B.重载函数的参数类型可以不同C.重载函数的返回值类型必须不同 D.重载函数的参数个数或参数类型必须有所不同解析:解析 两个或两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数进行最佳匹配,自动确定调用哪个函数,这就是函数的重载。3.下列有关内联函数的叙述中,正确的是_。(分数:2.00)A.内联函数在调用时发生控制转移B.内联函数必须通过关键字 inline 来定义C.内联函数是
30、通过编译器来实现的 D.内联函数函数体的最后一条语句必须是 return 语句解析:解析 此题考查的是内联函数的概念。在调用时,内联函数会像宏函数一样的展开,将调用表达式用内联函数体来替换所以它没有一般函数的参数压栈和和退栈操作,所以选项 A 错误;即使没有使用inline 说明,编译器也会将在类的说明部分定义的函数认定为内联函数,所以选项 B 错误;内联函数只是比普通函数有更高的执行效率,所以选项 D 错误。4.为了取代 C 中带参数的宏,在 C+中使用_。(分数:2.00)A.重载函数B.内联函数 C.递归函数D.友元函数解析:解析 此题考查的是内联函数。C+语言引入内联函数的原因是用它来
31、取代 C 语言的预处理宏函数。故选项 B 正确。5.为了提高函数调用的实际运行速度,可以将较简单的函数定义为_。(分数:2.00)A.内联函数 B.重载函数C.递归函数D.函数模板解析:解析 C+引入内联函数的原因是用它来取代 C 中的预处理宏函数。两者的区别在于,宏函数是由预处理器对宏进行替换,而内联函数是通过编译器来实现的。内联函数在调用时像宏函数一样展开,所以它没有一般函数的参数压栈和退栈操作,减少了调用开销,因此,内联函数比普通函数有更高的执行效率。6.计算斐波那契数列第 n 项的函数定义如下: int fib(int n) if(n=0) return 1; else if(n=1)
32、 return 2; else return fib(n-1)+fib(n-2); 若执行函数调用表达式 fib(2),函数 fib 被调用的次数是_。(分数:2.00)A.1B.2 C.3D.4解析:解析 斐波那契数列是递归函数,所以 fib(2)=fib(1)+fib(0)=2+1=3。因而执行函数调用表达式fib(2)时,函数 fib 被调用的次是 2 次。7.有如下类声明: class Foo int bar; 则 Foo 类的成员 bar 是_。(分数:2.00)A.公有数据成员B.公有成员函数C.私有数据成员 D.私有成员函数解析:解析 此题考查的是类的定义。在定义类的成员变量时,
33、如果没有使用关键字;所有成员默认定义为 private 私有权限。8.有如下类定义: class Foo public: Foo(int v):value(v) / Foo() / private: Foo() / int value=0; / ; 其中存在语法错误的行是_。(分数:2.00)A.B.C.D. 解析:解析 此题考查的是类的定义。C+语言规定,在类体内不允许对所定义的数据成员进行初始化。9.有如下类定义: class Test public: Test()a=0;c=0; / int f(int a)constthis-a=a;) / static int g ()return
34、a;) / void h(int b)Test:b=b;); / private: int a; static int b; constint c; ; int Test:b=0; 在标注号码的行中,能被正确编译的是_。(分数:2.00)A.B.C.D. 解析:解析 此题考查的是类的定义。一个类的长数据成员的初始化只能在成员初始化列表中进行,故选项 A 错误;常成员函数不能更新对象的数据成员,故选项 B 错误;静态成员函数可以直接访问类中说明的静态成员,但不能直接访问类中说明的非静态成员,故选项 C 错误。10.有如下类声明: class SAMPLE int n; public: SAMPL
35、E(int i=0):n(i) void setValue(int n0); ; 下列关于 getValue 成员函数的实现中,正确的是_。(分数:2.00)A.SAMPLE:setValue(int.n0)n=n0;B.void SAMPLE:setValue(int n0)n=n0; C.void setValue(int n0)n=n0;D.(int n0)n=n0;解析:解析 此题考查了成员函数的定义格式。在类外部对成员函数定义时的一般格式为:返回类型类名:成员函数名(参数表)函数体,故此题正确答案为选项 B。11.以下关键字不能用来声明类的访问权限的是_。(分数:2.00)A.pub
36、licB.static C.protectedD.private解析:解析 此题考查的是类的访问权限。在 C+语言中,类的访问权限有公有、保护和私有三种。故本题选 B。12.下列关于类定义的说法中,正确的是_。(分数:2.00)A.类定义中包括数据成员和函数成员的声明 B.类成员的缺省访问权限是保护的C.数据成员必须被声明为私有的D.成员函数只能在类体外进行定义解析:解析 此题考查的是类的定义。类中缺省的访问权限是私有的,所以选项 B 错误;类的数据成员和成员函数的访问控制权限均可被声明为公有、私有和保护中的一种,所以选项 C 错误;成员函数的实现可以在类体内定义,也可以在类体外定义,所以选项
37、 D 错误。13.如果派生类以 protected 方式继承基类,则原基类的 protected 成员和 public 成员在派生类中的访问属性分别是_。(分数:2.00)A.public 和 publicB.public 和 protectedC.protected 和 publicD.protected 和 protected 解析:解析 此题考查的是基类成员在派生类中的访问属性。派生类中的成员不能访问基类中的私有成员,可以访问基类中的公有成员和保护成员。派生类从基类公有继承时,基类的公有成员和保护成员在派生类中仍然是公有成员和保护成员;派生类从基类私有继承时,基类的公有成员和保护成员在派
38、生类中都变成私有成员;派生类从基类保护继承时,基类的公有成员在派生类中变成保护成员,基类的保护成员在派生类中仍然是保护成员。14.下列有关类成员的叙述中,正确的是_。(分数:2.00)A.友元函数是类的成员函数B.类成员的默认访问权限是私有的 C.类成员函数必须声明为公有的D.类的静态数据成员不能是常成员解析:解析 此题考查的是类成员的有关概念。类的友元函数可以直接访问该类的所有成员,但它不是类的成员函数,故选项 A 错误;类成员函数的访问权限可以声明为公有、保护、私有,故选项 C 错误;静态数据成员的声明是使用关键字 static,它可以是常成员,故选项 D 错误。15.下列运算符函数中,肯
39、定不属于类 Value 的成员函数的是_。(分数:2.00)A.Value operator+(Value);B.Value operator-(Value,Value); C.Value operator*(int);D.Value operator/(Value);解析:解析 运算符作为非成员函数时,由于没有隐含 this 指针,因此所有的操作数必须出现在参数表中。对于第二个选项,出现了两个操作数,必然是非成员函数,但是对于其他三个选项,有可能都是要求两个操作数的成员函数。16.有如下程序: #includeiostream #includecstring using namespace
40、std; class XCD char* a; int b; public: XCD(char* aa,int bb) a=new charstrlen(aa)+1; strcpy(a,aa); b=bb; char* Geta()return a; int Getb()return b; ; intmain() char*p1=“abcd“,*p2=“weirong“; int d1=6,d2=8; XCD x(p1,d1),y(p2,d2); coutstrlen(x.Geta()+y.Getb()endl; return 0; 运行时的输出结果是_。(分数:2.00)A.12 B.16C
41、.14D.11解析:解析 由类 XCD 的定义可知,成员函数 Geta()返回的是字符串的长度,Getb()返回的是参数 b 的值。在主函数中 strlen(x.Geta()的值等于 4,y.Getb()的值等于 8,所以输出两者的和为 12。17.有如下两个类定义: class AA; class BB AA v1,*v2; BB v3; int*v4; ; 其中有一个成员变量的定义是错误的,这个变量是_。(分数:2.00)A.v1B.v2C.v3 D.v4解析:解析 在定义类的数据成员时,类中的数据成员可以是任意类型,包括整型、浮点型、字符符型、数组、指针和引用等,也可以是对象。但是要注意
42、,只有另外一个类的对象,才可以作为该类的成员,即作为类的成员对象存在。自身类的对象是不可以作为自身类的成员存在,但自身类的指针可以。对于本题,在定义类 BB 时,不能包括其对象 v3。18.有如下程序: #includeiostream using namespace std; class Point int x,y; public: Point(int x1=0,int y1=0):x(x1),y(y1) int get()return x+y;) ; class Circle Point cente; int radius; public: Circle(int cx,int cy,int
43、 r):center(cx,cy),radius(r) int get()return center.get()+radius; ; int main() Circle c(3,4,5); coutc.get()endl; return 0; 运行时的输出结果是_。(分数:2.00)A.5B.7C.9D.12 解析:解析 根据类 Point 和类 Circle 的定义可知,类 Circle 的实例 c(3,4,5)的成员函数 c.get()返回值为 3+4+5=12。19.若 AA 为一个类,a 为该类的私有整型数据成员,getA()为该类的一个非静态公有成员函数,功能是返回 a 的值。如果
44、x 为该类的一个对象,要在类外访问 x 对象中 a 的值,正确的访问格式为_。(分数:2.00)A.AA.getA()B.x.getA() C.x.aD.AA:a解析:解析 要在类外访问 x 对象中 a 的值,必须调用类的非静态公有成员函数 getA()。20.有如下类定义: class MyClass int b;char a;double c; public: MyClass():c(0.0),b(0),a(“,“) ; 创建这个类的对象时,数据成员的初始化顺序是_。(分数:2.00)A.a,b,cB.c,b,aC.b,a,c D.c,a,b解析:解析 类的成员初始化顺序与成员变量在构造函
45、数中的位置先后顺序无关,只与成员变量在类中定义的先后顺序有关。21.下列关于类和对象的叙述中,错误的是_。(分数:2.00)A.一个类只能有一个对象 B.对象是类的具体实例C.类是对某一类对象的抽象D.类和对象的关系是一种数据类型与变量的关系解析:解析 此题考查的是类和对象的概念。类是用户定义的一种数据类型,可以使用这个类型来说明一个或多个变量,即对象。22.若有如下类声明 class MyClass public: MyClass()cout1; ; 执行下列语句 MyClass a,b2,*p2: 以后,程序的输出结果是_。(分数:2.00)A.11B.111 C.1111D.11111解
46、析:解析 此题考查的是对象的构造。本题共声明了,一个 MyClass 对象 a,一个包含 2 个 MyClass对象的数组 b 和一个包含 2 个 Myclass 对象指针的数组 p,所以一共创建了 3 个 MyClass 类的对象,即调用了 3 次构造函数。23.建立一个类对象时,系统自动调用_。(分数:2.00)A.析构函数B.构造函数 C.静态函数D.友元函数解析:解析 建立一个类的对象时,编译程序需要为对象分配存储空间,进行必要的初始化。在 C+中,这项工作是由构造函数来完成。24.若 MyClass 是一个类名,且有如下语句序列 MyClass c1,*c2; MyClass *c3=new MyClass; MyClass 上面的语句序列所定义的类对象的个数是_。(分数:2.00)A.1B.2C.3 D.4解析:解析 C1、*C2、C3 是 3 个 MyClass 对象,C4 是 MyClass 对象的引用,它是对象 C1 的别名。25.要定义一个引用变量 p,使之引用类 MyClass 的一个对象,正确的定义语句是_。(分数:2.00)A.MyClass p=MyClass;B.MyClass p=new MyCla