ImageVerifierCode 换一换
格式:DOC , 页数:22 ,大小:76KB ,
资源ID:1324243      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1324243.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】二级C++分类模拟245及答案解析.doc)为本站会员(Iclinic170)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【计算机类职业资格】二级C++分类模拟245及答案解析.doc

1、二级 C+分类模拟 245及答案解析(总分:70.50,做题时间:90 分钟)一、选择题(总题数:40,分数:70.50)1.关于在调用模板函数时实参的使用,下列表述中正确的是(分数:2.00)A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任何情况下都不能省略2.下列关于内联函数的叙述中,错误的是_。(分数:2.50)A.内联函数的定义必须出现在内联函数第一次被调用之前B.

2、内联函数主要解决程序的运行效率问题C.类体中定义的函数都是内联函数D.内联函数不能有参数3.C+语言做了很多改进,下列描述中 _ 使得 C语言发生了质变,即从面向过程变成面向对象。(分数:2.00)A.增加了一些新的运算符B.允许函数重载,并允许设置默认参数C.规定函数说明必须用原型D.引进类和对象的概念4.下列循环语句中有语法错误的是_。(分数:2.50)A.int i; for(i=1; i10; i+)cout“*“;B.int i, j; for(i=1, j=0; i10; i+, j+)cout“*“;C.int i=0; for(;i10; i+)cout“*“;D.for(1)

3、cout“*“;5.支持数据库各种操作的软件系统叫做 _ 。(分数:2.00)A.数据库管理系统B.文件系统C.数据库系统D.操作系统6.有下列程序: #include stdio.h #define PT 3.5; #define S(x) PT*x*x; votd main() int a=1;b=2; prinif(“%4.If/n“,S(a+b); 程序运行后的输出结果是_。(分数:2.50)A.14.OB.31.5C.7.5D.程序有错,无输出结果7.有如下类定义: class AA int a; public: int getRef() const return / int get

4、Value() const return a;/ void set(int n)consta=n; / friend void show(AA aa)const couta;/ ; 其中四个函数的定义中正确的是_。(分数:1.00)A.B.C.D.8.有如下程序: #include iostream using namespace std; int main() int *p; *p=9; cout“The value at p:“*p; return 0; 编译运行程序将出现的情况是_。(分数:1.00)A.编译时出现语法错误,不能生成可执行文件B.运行时一定输出:The value at

5、p:9C.运行时一定输出:The value at p:*9D.运行时有可能出错9.在下列原型所示的 C+函数中,按“传值”方式传递参数的是_。(分数:1.00)A.void f1(int x);B.void f2(int*x);C.void B(const int*x);D.void f4(int10.若有以下程序: #includeiostream usingnamespacestd; voidsub(intx,inty,int*2) *z=y+x; int main() int a,b,C; sub(8,4, class Obj static int i; public: Obj()i+

6、; Obi()i-; static int getVal() return i; ; int Obj:i=0; void f()Obj ob2; coutob2.getVal(); int main() Obj ob1; f(); Obj *ob3=new Obj; coutob3-getVal(); delete ob3; coutObj:getVal(); return 0; 程序的输出结果是 _ 。(分数:2.00)A.232B.231C.222D.22113.有如下程序: #includeiostream using namespace std; void f1(int void f2

7、(int x)+x; int main() int x=10,y=12; f1(x); f2(y); coutx+yendl; return 0; 运行这个程序的输出结果是_。(分数:2.00)A.22B.23C.24D.2514.算法的空间复杂度是指 _ 。(分数:1.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行过程中所需要的存储空间15.有如下类模板定义: templatetypename T class BigNumber longn ; public: BigNumber(T i):n(i) BigNumber operator+(BigNumbe

8、r b) return BigNumber(n+b.n); 已知 b1、b2 是 BigNumber的两个对象,则下列表达式中错误的是_。(分数:2.00)A.b1+b2B.b1+3C.3+b1D.3+316.阅读以下程序 #includeiostream.h void main() char line10; cinline; coutlineendl; 如运行时输入“This is an example.CR”,则程序的输出结果是_。(分数:2.50)A.ThisB.This isC.This is aD.This is an example17.在对函数进行原型声明时,下列语法成分中,不需

9、要的是_。(分数:2.00)A.函数返回类型B.函数参数列表C.函数名D.函数体18.下列基本结构中,能简化大量程序代码行的是_。(分数:2.50)A.顺序结构B.分支结构C.选择结构D.重复结构19.要利用 C+流实现输入输出的各种格式控制,必须在程序中包含的头文件是_。(分数:2.50)A.fstreamB.istreamC.cstdlibD.iomanip20.若有定义语句“double x,y.*px,*py;执行了 px=x;py=y;”后,正确的输入语句是_。(分数:2.50)A.scanf(“%f%f“,x,y);B.scanf(“%f%f“x,y);C.scanf(“%If%l

10、e“,px,py);D.scanf(“%lf%lf“x,y);21.已知类 A有公用数据成员 a,并重载了“”运算符,且有 A obj2;const A*ptr new A;则下列语句错误的是 _ 。(分数:2.00)A.ptr-a=100;B.ptr=C.ptr+;D.obj2=*ptr;22.有以下类定义 class MyClass private: int id; char gender; char*phone; public: MyClass():id(0),gender(“#“),phone(NULL) MyClass(int no,char ge=“#“,char*ph=NULL)

11、 id=no;gender=ge;phone=ph; ; 下列类对象定义语句中错误的是(分数:2.00)A.MyClassmyObj;B.MyClassmyObj(11,“13301111155“);C.MyClassmyObj(12,“m“);D.MyClassmyObj(12);23.设有以下定义和程序: #include iostream.h class A1 public: void showl() cout“class A1“end1; ; Class A2 : public A1 public: void show2() cout“Class A2“end1; ; Class A3

12、 : protected A2 public: void show3() cout”Class A 土”end1; ; void main() A1 obj1; A2 obj2; A3 obj3; 则以下不合语法的调用语句是 _ 。(分数:1.00)A.obj1show1();B.obj2show1();C.obj3show1();D.obj2show2();24.下列叙述中正确的是_。(分数:2.50)A.循环队列是队列的一种链式存储结构B.循环队列是一种逻辑结构C.循环队列是队列的一种顺序存储结构D.循环队列是非线性结构25.负责数据库中查询操作的数据库语言是_。(分数:2.50)A.数据

13、定义语言B.数据管理语言C.数据操纵语言D.数据控制语言26.在 C+中,打开一个文件就是将这个文件与一个 _ 建立关联;关闭一个文件就取消这种关联。(分数:1.00)A类B流C.对象D.结构27.有如下程序: #includeiostream using namespace std; class TestClass protected: TestClass()cout“x“;) TestClass(char c)coutc; class TestClass1:public TestClass public: TestClass1(char c)coutc; int main() TestCl

14、ass1 d1(“y“); return 0; 执行这个程序,屏幕上将显示输出_。(分数:1.00)AyB.yxC.xyD.yy28.关于构造函数 A()的拷贝构造函数正确的是(分数:1.00)A.A(A *B) ;B.A(AB) ;C.A(A29.下列选项中,不是一个算法的基本特征的是_。(分数:1.00)A.完整性B.可行性C.有穷性D.拥有足够的情报30.有如下程序: #includeiostream using namespace std; class Part public: Part(int x =0):val(x)coutval; Part()coutval; private:

15、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; 执行这个程序的输出结果是_。(分数:1.00)A.123321B.213312C.213D.12312331.有如下程序: #include iostream using namespaee std; class Basel public : Basel(

16、int d) cout d; Basel () ; class Base2 public : Base2 ( int d) cout d ; Base2() ; class Derived : public Base1 ,Base2 public : Derived(int a, int b, int c, int d) :Base1(b), Base2(a), b1(d), b2(e) private : int b1 ; int b2 ; ; int main() Derived d(1,2,3,4) ; return 0 ; 执行这个程序的输出记过是 _ 。(分数:1.00)A.1234

17、B.2134C.12D.2132.有如下语句序列: int x=100, coutx“-“rendl; 已知其中变量 x的地址为 0012FF7C,则执行该语句序列的输出结果为_。(分数:2.00)A.100-100B.100-0012FF7CC.0012FF7C-100D.0012FFTC-0012FFTC33.在数据结构中,从逻辑上可以把数据结构分成_。(分数:2.50)A.内部结构和外部结构B.线性结构和非线性结构C.紧凑结构和非紧凑结构D.动态结构和静态结构34.有以下类定义: class MyClass private: int id; char gender; char* phon

18、e; public: MyClass():id(0), gender(“#“),phone(NULL) MyClass(int no,char ge=“#“,char*ph=NULL) id=no;gender=ge;phone=ph;) ; 下列类对象定义语句中错误的是()。(分数:1.00)A.MyClass myObj;B.MyClass myObj(11,“13301111155“);C.MyClass myObj(12,“m“);D.MyClass myObj(12);35.软件测试的目的是_。(分数:2.50)A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现

19、程序中的错误36.设有基类定义: class Cbase private: int a; protected: int b; public: int c; ; 派生类采用何种继承方式可以使成员变量 b成为自己的私有成员(分数:2.00)A.私有继承B.保护继承C.公有继承D.私有、保护、公有均可37.若有以下的定义, int a =1,2,3,4,5,6,7,8,9,10,*p=a;则值为 3的表达式是 _。(分数:2.00)A.p+=2,*(p+)B.p+=2,*+pC.p+=3,*p+D.p+=2,+*p38.有以下程序: #includeiostream using namespace

20、std; class sample private: int n; public: sample() sample(int m) n-m; sample add(sample s1,sample s2) this-n=s1.n+s2.n; return(*this): void disp() cout“n=“nendl; ; int main() sample s1(10),s2(5),s3; s3.add(s1,s2); s3.disp(); return 0; 程序运行后,输出的结果是_。(分数:1.00)A.n=10B.n=5C.n=20D.n=1539.下列对于线性链表的描述中正确的是

21、(分数:2.00)A.存储空间不一定是连续,且各元素的存储顺序是任意的B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的40.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是(分数:2.00)A.友元函数B.虚函数C.构造函数D.析构函数二级 C+分类模拟 245答案解析(总分:70.50,做题时间:90 分钟)一、选择题(总题数:40,分数:70.50)1.关于在调用模板函数时实参的使用,下列表述中正确的是(分数:2.00)A.对于虚拟

22、类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任何情况下都不能省略 解析:解析 模板函数的实参可以省略,但模板实参的省略并不是必然的,而是有条件的。在调用一个模板函数时,编译系统需要足够的信息来判别每个虚拟类型参数所对应的实际类型,可以从两个不同的渠道获得这样的信息:从模板实参表(用和括起来的参数表)或从模板函数实参表(用()括起来的参数表),模板实参的信息优先于函数实参的信息。如果从

23、后者获得的信息已经能够判定其中部分或全部虚拟类型参数所对应的实际参数,而且它们又正好是参数表中最后的若干个参数,则模板实参表中的那几个参数可以省略。如果模板实参表中的实参都被省略了,则连空表也可以不要。反之,对于某个模板实参,如果从模板函数的实参表中无法获得同样的信息,就不能省略;或者虽然能够获得同样的信息,但在它后面还有其他不能省略的实参,则其自身还是不能省略由此可知只有 D) 选项的说法是正确的。2.下列关于内联函数的叙述中,错误的是_。(分数:2.50)A.内联函数的定义必须出现在内联函数第一次被调用之前B.内联函数主要解决程序的运行效率问题C.类体中定义的函数都是内联函数D.内联函数不

24、能有参数 解析:3.C+语言做了很多改进,下列描述中 _ 使得 C语言发生了质变,即从面向过程变成面向对象。(分数:2.00)A.增加了一些新的运算符B.允许函数重载,并允许设置默认参数C.规定函数说明必须用原型D.引进类和对象的概念 解析:4.下列循环语句中有语法错误的是_。(分数:2.50)A.int i; for(i=1; i10; i+)cout“*“;B.int i, j; for(i=1, j=0; i10; i+, j+)cout“*“;C.int i=0; for(;i10; i+)cout“*“;D.for(1)cout“*“; 解析:解析 该题考查的内容是 for循环语句,

25、其中 for循环语句的语法格式是: for(表达式 1; 表达式 2; 表达式 3)语句 其中表达式 1和表达式 2和表达式 3都可以省略,但是分号不能省略,这时 for语句是一个死循环。因此D项是错误的,for 语句没有这种语法格式。5.支持数据库各种操作的软件系统叫做 _ 。(分数:2.00)A.数据库管理系统 B.文件系统C.数据库系统D.操作系统解析:6.有下列程序: #include stdio.h #define PT 3.5; #define S(x) PT*x*x; votd main() int a=1;b=2; prinif(“%4.If/n“,S(a+b); 程序运行后的

26、输出结果是_。(分数:2.50)A.14.OB.31.5C.7.5D.程序有错,无输出结果 解析:解析 这个程序有错误不能通过编泽。#define 宏定义后不可有分号;用分号隔开后,int 只定义了 a,b 要重新定义。7.有如下类定义: class AA int a; public: int getRef() const return / int getValue() const return a;/ void set(int n)consta=n; / friend void show(AA aa)const couta;/ ; 其中四个函数的定义中正确的是_。(分数:1.00)A.B.

27、C.D.解析:解析 本题考查常成员函数,常成员函数只能引用本类中的数据成员,而不能修改它。所以本题答案为 B。8.有如下程序: #include iostream using namespace std; int main() int *p; *p=9; cout“The value at p:“*p; return 0; 编译运行程序将出现的情况是_。(分数:1.00)A.编译时出现语法错误,不能生成可执行文件B.运行时一定输出:The value at p:9C.运行时一定输出:The value at p:*9D.运行时有可能出错 解析:解析 先定义指针变量,然后给指针变量赋初值有三种情

28、况:用取地址运算符“ B.void f2(int*x);C.void B(const int*x);D.void f4(int解析:解析 函数参数的 3种传递方式:将变量名作为形参和实参,即传值方式;传递变量指针;引用形参。其中 B、C 选项都是传递变量指针,D 选项为引用形参,所以本题答案为 A。10.若有以下程序: #includeiostream usingnamespacestd; voidsub(intx,inty,int*2) *z=y+x; int main() int a,b,C; sub(8,4, class Obj static int i; public: Obj()i+

29、; Obi()i-; static int getVal() return i; ; int Obj:i=0; void f()Obj ob2; coutob2.getVal(); int main() Obj ob1; f(); Obj *ob3=new Obj; coutob3-getVal(); delete ob3; coutObj:getVal(); return 0; 程序的输出结果是 _ 。(分数:2.00)A.232B.231C.222D.221 解析:13.有如下程序: #includeiostream using namespace std; void f1(int voi

30、d f2(int x)+x; int main() int x=10,y=12; f1(x); f2(y); coutx+yendl; return 0; 运行这个程序的输出结果是_。(分数:2.00)A.22B.23 C.24D.25解析:14.算法的空间复杂度是指 _ 。(分数:1.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行过程中所需要的存储空间 解析:15.有如下类模板定义: templatetypename T class BigNumber longn ; public: BigNumber(T i):n(i) BigNumber operat

31、or+(BigNumber b) return BigNumber(n+b.n); 已知 b1、b2 是 BigNumber的两个对象,则下列表达式中错误的是_。(分数:2.00)A.b1+b2B.b1+3C.3+b1 D.3+3解析:解析 C+运算符的重载有两个方式,一种是做为成员函数,另一种是做为友元函数。前种 C+默认省略第一个参数(事实上是对象本身),而后一种是所有的参数都要写全。比如对加法的重载:成员方式为 COperator operator+(COperator ,在调用的过程中我们可以理解为 result=operator+(op);友元方式为 friend COperator

32、 operator-(COperator ,在调用的过程中我们可以理解为 result=operator-(op1,op2);。 对于本题来说,整数 3与 b1相加时,3 是 int型,b1 是 BigNumberT型,int 型不能和别的型做运算。16.阅读以下程序 #includeiostream.h void main() char line10; cinline; coutlineendl; 如运行时输入“This is an example.CR”,则程序的输出结果是_。(分数:2.50)A.This B.This isC.This is aD.This is an example解

33、析:解析 本题考查 C+中 cin输入流对象的使用规则,其特点是以空格、回车和 tab为分隔符。因此 this和 is之间的空格告诉 cin对象停止接收后面的数据。故正确答案为 A。17.在对函数进行原型声明时,下列语法成分中,不需要的是_。(分数:2.00)A.函数返回类型B.函数参数列表C.函数名D.函数体 解析:解析 在 C+中函数在使用之前要预先声明,这种声明在标准 C+中称为函数原型。函数给出了函数名、返回类型以及在调用函数时必须指明参数个数和类型。18.下列基本结构中,能简化大量程序代码行的是_。(分数:2.50)A.顺序结构B.分支结构C.选择结构D.重复结构 解析:解析 重复结

34、构又称为循环结构,它根据给定的条件,判断是否需要重复执行某一相同或类似的程序段,利用重复结构可以简化大量的程序行。19.要利用 C+流实现输入输出的各种格式控制,必须在程序中包含的头文件是_。(分数:2.50)A.fstreamB.istreamC.cstdlibD.iomanip 解析:解析 C+提供了很多格式控制的操作符,包含在头文件 iomanip中。20.若有定义语句“double x,y.*px,*py;执行了 px=x;py=y;”后,正确的输入语句是_。(分数:2.50)A.scanf(“%f%f“,x,y);B.scanf(“%f%f“x,y);C.scanf(“%If%le“

35、,px,py); D.scanf(“%lf%lf“x,y);解析:解析 此题主要考查输入函数的字符格式,If 和 le表示以带小数点的数学形式或指数形式输入浮点数。21.已知类 A有公用数据成员 a,并重载了“”运算符,且有 A obj2;const A*ptr new A;则下列语句错误的是 _ 。(分数:2.00)A.ptr-a=100; B.ptr=C.ptr+;D.obj2=*ptr;解析:解析 本题考查 const修饰符的作用。注意:const 位置不同,其修饰的部分也是不同的。本题中 const修饰的是 ptr所指的对象本身,所以,ptr 是可以重新指向新的对象,而 ptr-a 则

36、无法被更新。22.有以下类定义 class MyClass private: int id; char gender; char*phone; public: MyClass():id(0),gender(“#“),phone(NULL) MyClass(int no,char ge=“#“,char*ph=NULL) id=no;gender=ge;phone=ph; ; 下列类对象定义语句中错误的是(分数:2.00)A.MyClassmyObj;B.MyClassmyObj(11,“13301111155“); C.MyClassmyObj(12,“m“);D.MyClassmyObj(1

37、2);解析:解析 本题考核构造函数的应用。对象建立用初始化列表对数据成员进行时,列表中的参数类型要与构造函数中形参类型一致。B 选项中第二个参数为“13301111155”是字符串,而构造函数中第二个形参为 char型,两者不一致造成错误。23.设有以下定义和程序: #include iostream.h class A1 public: void showl() cout“class A1“end1; ; Class A2 : public A1 public: void show2() cout“Class A2“end1; ; Class A3 : protected A2 public

38、: void show3() cout”Class A 土”end1; ; void main() A1 obj1; A2 obj2; A3 obj3; 则以下不合语法的调用语句是 _ 。(分数:1.00)A.obj1show1();B.obj2show1();C.obj3show1(); D.obj2show2();解析:解析 C+中,通过类的对象只能访问类的公有成员,不能访问类的保护成员和私有成员。A2 是A1的公有派生类,A3 是 A2的保护派生类,所以类 A1的成员函数 showl()在类 A3中呈现保护属性,不能通过 A3类的对象访问。24.下列叙述中正确的是_。(分数:2.50)A

39、.循环队列是队列的一种链式存储结构B.循环队列是一种逻辑结构C.循环队列是队列的一种顺序存储结构 D.循环队列是非线性结构解析:解析 顺序存储就是指用一组连续的存储单元依次存储,链式存储内存中地址小是挨着的,循环队列增设了头指针和尾指针,实现空间的最大利用。25.负责数据库中查询操作的数据库语言是_。(分数:2.50)A.数据定义语言B.数据管理语言C.数据操纵语言 D.数据控制语言解析:解析 数据操纵语言专门负责查询、增加、删除等数据操作。26.在 C+中,打开一个文件就是将这个文件与一个 _ 建立关联;关闭一个文件就取消这种关联。(分数:1.00)A类B流 C.对象D.结构解析:27.有如

40、下程序: #includeiostream using namespace std; class TestClass protected: TestClass()cout“x“;) TestClass(char c)coutc; class TestClass1:public TestClass public: TestClass1(char c)coutc; int main() TestClass1 d1(“y“); return 0; 执行这个程序,屏幕上将显示输出_。(分数:1.00)AyB.yxC.xy D.yy解析:解析 本题中类 TestClass为基类,TestClass1 为

41、 TeslClass的派生类。由 main主函数入手,定义 TestClass1类型的对象 d1,参数值为 y。TestClass1 类继承 TestClass,所以主函数中“TestClassldl(“y“);”语句首先调用“TesiClass1(char c)courc;)”然后调用基类中的“TestClass()cout“x“;”输出 x,然后执行“TestClass(char c)coutc;”输出 y,即答案为“xy”。28.关于构造函数 A()的拷贝构造函数正确的是(分数:1.00)A.A(A *B) ;B.A(AB) ;C.A(A解析:解析 考查拷贝构造函数的方法。 解题要点 固

42、定的一种拷贝方式就是类名: 类名const类名 class Part public: Part(int x =0):val(x)coutval; 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; 执行这个程序的输出结果是_。(分数:1.00)A.123321

43、B.213312 C.213D.123123解析:解析 本题考查带参数的构造函数。本题中定义了一个对象 obj,那么执行其构造函数,初始化p1,p2 的顺序是由声明这两个成员的顺序决定的,而不是由参数化列表顺序决定,所以本题中,会先执行 p1,输出 2,然后执行 p2输出 1,然后输出 3,最后一次输出 312。所以本题答案为 B。31.有如下程序: #include iostream using namespaee std; class Basel public : Basel(int d) cout d; Basel () ; class Base2 public : Base2 ( in

44、t d) cout d ; Base2() ; class Derived : public Base1 ,Base2 public : Derived(int a, int b, int c, int d) :Base1(b), Base2(a), b1(d), b2(e) private : int b1 ; int b2 ; ; int main() Derived d(1,2,3,4) ; return 0 ; 执行这个程序的输出记过是 _ 。(分数:1.00)A.1234B.2134C.12D.21 解析:解析 本题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类

45、的构造函数,然后再执行派生类的构造函数,对象释放时,先执行派生类的析构函数,再执行基类的析构函数。本题中定义一个派生类对象时,分别调用基类的构造函数,所以分别输出 21。32.有如下语句序列: int x=100, coutx“-“rendl; 已知其中变量 x的地址为 0012FF7C,则执行该语句序列的输出结果为_。(分数:2.00)A.100-100 B.100-0012FF7CC.0012FF7C-100D.0012FFTC-0012FFTC解析:33.在数据结构中,从逻辑上可以把数据结构分成_。(分数:2.50)A.内部结构和外部结构B.线性结构和非线性结构 C.紧凑结构和非紧凑结构

46、D.动态结构和静态结构解析:解析 逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间为一对一的关系,非线性结构表示数据元素之间为一对多或者多对一的关系。34.有以下类定义: class MyClass private: int id; char gender; char* phone; public: MyClass():id(0), gender(“#“),phone(NULL) MyClass(int no,char ge=“#“,char*ph=NULL) id=no;gender=ge;phone=ph;) ; 下列类对象定义语句中错误的是()。(分数:1.00)A.MyClass myObj;B.MyClass myObj(11,“13301111155“); C.MyClass myObj(12,“m“);D.MyClass myObj(12);解析:解析 本题考查构造函数的应用。对象建立用初始化列表对数据成员进行时,列表中的参数类型要与构造函数中形参类型一致。B 选项中第二个参数为 13301111155,是字符串,而构造函数中第二个形参为 c

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1