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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C+分类模拟 271 及答案解析(总分:56.00,做题时间:90 分钟)一、选择题(总题数:35,分数:56.00)1.MyClock 为一个类,则指向“MyClock a,* p;”语句时,调用该类构造函数 _ 次。(分数:2.00)A.1B.2C.3D.42.定义无符号整数为 Uint,下面可以作为类 Uint 实例化值的是_。(分数:1.00)A.-369B.369C.0.369D.整数集合(1,2,3,4,5)3.下列关于构造函数的描述中,错误的是_。(分数:1.00)A.构造函数名与类名相同B.构造函数可以有返回值C.构造函数可以重载D.每个类都有构造函数4.若有函数原型声明

2、为“void fun(int*x,int ”,下列叙述中,错误的是_。(分数:2.00)A.调用函数 fun 时必须给出 3 个实参B.函数 fun 中有 1 个指针形参C.函数 fun 中有 1 个形参有默认值D.函数 fun 中有 1 个引用形参5.下列关于运算符重载的描述中,错误的是_。(分数:3.00)A.可以通过运算符重载在 C+中创建新的运算符B.赋值运算符只能重载为成员函数C.运算符函数重载为类的成员函数时,第一操作数是该类对象D.重载类型转换运算符时不需要声明返回类型6.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是(分数:2.00

3、)A.友元函数B.虚函数C.构造函数D.析构函数7.下列关于单目运算符+、-的叙述中,正确的是 _ 。(分数:1.00)A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是 char 型变量和血型变量,但不能是 float 型变量C.它们的运算对象可以是 int 型变量,但不能是 doule 型变量和 float 型变量D.它们的运算对象可以是 char 型变量、int 型变量和 float 型变量8.为了取代 C 中带参数的宏,在 C+中使用_。(分数:2.00)A.重载函数B.内联函数C.递归函数D.友元函数9.有如下程序: #includeiostream using name

4、space std; class A public: static int a; void init()a=1; A(int a=2)init();a+; ; int A:a=0; A obj; int main() coutobj.a; return 0; 运行时输出的结果是_。(分数:1.00)A.0B.1C.2D.310.有以下程序: #include iostream #include strinq using namespace std; int main() char a = “a“/“b“/“c“/“d“,“e“,“f“,“g“,“h“,“/0“; int i j; i=size

5、of(A) ; j=strlen(A) ; couti“,“jend1; return 0; 程序运行后的结果是 _ 。(分数:1.00)A.9,9B.8,9C.1,8D.9,811.下列叙述中错误的是_。(分数:2.50)A.在程序中凡是以“#”开始的语句行都是预处理命令行B.预处理命令行的最后不能以分号表示结束C.#define MAX 是合法的宏定义命令行D.C 程序中预处理命令行的处理是在程序执行的过程中进行的12.有如下程序: #includeiostreamh long fib(int n) if(n 2) return(fib(n-1)+fib(n-2) ); else retu

6、rn(2); void main( ) cout fib(3); 该程序的输出结果是(分数:1.00)A.2B.4C.6D.813.下列不属于 C+规定的类继承方式是_。(分数:2.50)A.protectiveB.privateC.protectedD.public14.下列描述正确的是(分数:1.00)A.表示 m n 为 true 或 m n 为 true 的表达式为 m n m=s0k; for(i=1;in;i+) if(sikm)m=sik; return m; void main() int a44=1,2,3,4),11,12,13,14,21,22,23,24,31,32,3

7、3,34; printf(“%d/n“,fun(a,4,0); 程序的运行结果是_。(分数:2.50)A.4B.34C.31D.3216.设有以下定义和程序: #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: void show3() cout”Class A 土”end1; ; void main() A1 o

8、bj1; A2 obj2; A3 obj3; 则以下不合语法的调用语句是 _ 。(分数:1.00)A.obj1show1();B.obj2show1();C.obj3show1();D.obj2show2();17.若为 Fraction 类重载前增 1 运算符+,应在类体中将其声明为_。(分数:1.00)A.Fractionpoerator+();B.Fractionpoerator+(int);C.friend Fractionoperator+();D.friend Fractionoperator+(int);18.己知基类 Employee 只有一个构造函数,其定义如下: Emplo

9、yee:Employee(int n):id(n) Manager 是 Employee 的派生类,则下列对 Manager 的构造函数的定义中,正确的是_。(分数:2.00)A.Manager:Manager(int n):id(n)B.Manager:Manager(int n)id=n;C.Manager:Manager(int n):Employee(n)D.Manager:Manager(int n)Employee(n);19.已知表达式+x 中的“+”是作为成员函数重载的运算符,则与+x 等效的运算符函数调用形式为_。(分数:1.00)A.operator+(1)B.operat

10、or+(x)C.operator+()D.operator+(x)20.有如下程序: #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.get(); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.33B.38C.83D.8821.下

11、面叙述中错误的是(分数:2.00)A.软件测试的目的是发现错误并改正错误B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为 DebugD.软件测试应严格执行测试计划,排除测试的随意性22.下列程序的运行结果是_。 #includeiostream.h int x=5; int fun(int a) int c; c=X*a; return C; void main() int x=3,a=4; x=x+fun(a); cout“x=“xendl; (分数:1.00)A.x=15B.x=17C.x=23D.x=2523.一个栈的初始状态为空。现将元素 1、2、3、4、5

12、、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是_。(分数:2.50)A.12345ABCDEB.EDCBA54321C.ABCDE12345D.5432IEDCBA24.将 x+y*z 中的“+”用成员函数重载,“*”用友元函数重载应写为_。(分数:2.50)A.operator+(operator*(y,z)B.operator+(operator*(y,z)C.operator+(x*(y,z)D.x+(operator*(y,z)25.有关构造函数的说法不正确的是 _ 。(分数:1.00)A.构造函数名字和类的名字一样B.构造函数在说明类变量时自动执行C.构造函数无任

13、何函数类型D.构造函数有且只有一个26.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是_。(分数:1.00)A.编译程序B.操作系统C.教务管理系统D.汇编程序27.已知有定义 const int D=5; int i=1; double f=032; char c=15; 则下列选项错误的是(分数:1.00)A.+i;B.D-;C.c+;D.-f28.下列字符串中不能作为 C+标识符使用的是_。(分数:1.00)A.IN25B.testC._1481D.12329.数据字典(DD)所定义的对象都包含于_。(分数:2.50)A.程序流程图B.数据流图(DF

14、D 图)C.方框图D.软件结构图30.有如下程序: #includeiostream using namespace std; class 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.100B.000C.010D.00131.有如下程序: #include iostream using name

15、space std; class XX protected: int k; public: XX(int n=5):k(n) XX() cout“XX“; virtual void f() const=0; ; inline void XX:f() const coutk+3; class YY:public XX public: YY()cout“YY“; void f()const coutk-3; XX:f(); ; int main() XX p.f(); delete return 0; ; 执行上面的程序将输出_。(分数:2.50)A.28XXB.28YYXXC.-33XXD.-3

16、3XXYY32.有如下程序段: int *a=new int2; a0=0; a1=1; int *b= cout*b; 运行这个程序段将输出_。(分数:2.50)A.整数 1B.a0的地址C.a1的地址D.整数 033.下列程序的运行结果是 #includeiostreamh class A int a; public: A( )a=0; A(int aa) a=aa; couta+; ; void main( ) A x,y(2),z(3); coutend1; (分数:1.00)A.00B.23C.34D.2534.下列选项中,不是一个算法的基本特征的是_。(分数:1.00)A.完整性B

17、.可行性C.有穷性D.拥有足够的情报35.下面关于虚函数的描述,错误的是(分数:1.00)A.在成员函数声明的前面加上 virtual 修饰,就可把该函数声明为虚函数B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数C.虚函数可以是另一个类的友元函数,但不能是静态成员函数D.基类中说明的纯虚函数在其任何派生类中都必须实现二级 C+分类模拟 271 答案解析(总分:56.00,做题时间:90 分钟)一、选择题(总题数:35,分数:56.00)1.MyClock 为一个类,则指向“MyClock a,* p;”语句时,调用该类构造函数 _ 次。(分数:2.00)A.1 B.2C.3D.

18、4解析:解析 *p 不调用类的构造函数,*p 并不定义类对象,而是定义了一个指针指向一个 MyClock 的对象。2.定义无符号整数为 Uint,下面可以作为类 Uint 实例化值的是_。(分数:1.00)A.-369B.369 C.0.369D.整数集合(1,2,3,4,5)解析:解析 A 是有符号数,C 是浮点数,D 是集合,并不是类的实例化对象,只有 B 完全符合。3.下列关于构造函数的描述中,错误的是_。(分数:1.00)A.构造函数名与类名相同B.构造函数可以有返回值 C.构造函数可以重载D.每个类都有构造函数解析:解析 构造函数没有返回值,虽然叫函数但是它没有任何返回值,包括 vo

19、id 型都不是,官方叫法为“构造器”。4.若有函数原型声明为“void fun(int*x,int ”,下列叙述中,错误的是_。(分数:2.00)A.调用函数 fun 时必须给出 3 个实参 B.函数 fun 中有 1 个指针形参C.函数 fun 中有 1 个形参有默认值D.函数 fun 中有 1 个引用形参解析:5.下列关于运算符重载的描述中,错误的是_。(分数:3.00)A.可以通过运算符重载在 C+中创建新的运算符 B.赋值运算符只能重载为成员函数C.运算符函数重载为类的成员函数时,第一操作数是该类对象D.重载类型转换运算符时不需要声明返回类型解析:解析 运算符重载应尽可能保持其原有的基

20、本语义,而不是创建新的运算符。重载的运算符应该体现为原运算符的功能在新数据类型上的延伸,它的使用应当使程序中算法的表达式显得更流畅、自然,使阅读程序的人在不借助于其他说明资料的情况下就能够正确理解。6.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是(分数:2.00)A.友元函数B.虚函数C.构造函数 D.析构函数解析:解析 构造函数在创建对象时系统自动调用,其功能是使用给定的值将对象初始化。7.下列关于单目运算符+、-的叙述中,正确的是 _ 。(分数:1.00)A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是 char 型变量和血型变

21、量,但不能是 float 型变量C.它们的运算对象可以是 int 型变量,但不能是 doule 型变量和 float 型变量D.它们的运算对象可以是 char 型变量、int 型变量和 float 型变量 解析:解析 本题考核 C+的-和+运算符。在 C+中,-和+这两种运算符是单目运算符,其运算对象可以是整型、字符型、float 型和 double 型等基本数据类型。8.为了取代 C 中带参数的宏,在 C+中使用_。(分数:2.00)A.重载函数B.内联函数 C.递归函数D.友元函数解析:解析 此题考查的是内联函数。C+语言引入内联函数的原因是用它来取代 C 语言的预处理宏函数。故选项 B

22、正确。9.有如下程序: #includeiostream using namespace std; class A public: static int a; void init()a=1; A(int a=2)init();a+; ; int A:a=0; A obj; int main() coutobj.a; return 0; 运行时输出的结果是_。(分数:1.00)A.0B.1 C.2D.3解析:解析 本题考查构造函数,本题中对类中的 a 数据成员先是赋值为 0,当定义了对象 obj 时,执行构造函数,将 a 的值变为了 1,所以输出 1。10.有以下程序: #include ios

23、tream #include strinq using namespace std; int main() char a = “a“/“b“/“c“/“d“,“e“,“f“,“g“,“h“,“/0“; int i j; i=sizeof(A) ; j=strlen(A) ; couti“,“jend1; return 0; 程序运行后的结果是 _ 。(分数:1.00)A.9,9B.8,9C.1,8D.9,8 解析:解析 本题考查 sizeof 运算符和字符串函数 strlen()的区别。 sizeof 运算符返回其后表达式或类型标识符所表示的数在内存中所占的字节数。 函数 strlen()的功

24、能是返回 string 的长度,但不包括结束字符“/0“。 字符数组 a 在内存中所占的字节数为 9。而字符数组 a 中不包括结束字符“/0“的字符数为 8。11.下列叙述中错误的是_。(分数:2.50)A.在程序中凡是以“#”开始的语句行都是预处理命令行B.预处理命令行的最后不能以分号表示结束C.#define MAX 是合法的宏定义命令行D.C 程序中预处理命令行的处理是在程序执行的过程中进行的 解析:解析 预处理命令是以“#”开始的语句,每一条预处理命令必须单独占用一行,由于不是 C 语言的语句,并且命令行的最后不能以分号表示结束,定义格式为“#de-fine 标识符字符串”,预处理命令

25、行是系统对源程序进行编译之前进行处理的,不是在程序执行的过程中。12.有如下程序: #includeiostreamh long fib(int n) if(n 2) return(fib(n-1)+fib(n-2) ); else return(2); void main( ) cout fib(3); 该程序的输出结果是(分数:1.00)A.2B.4 C.6D.8解析:解析:fib(3)=fib(2)+fib(1),而 fib(2)的返回值为 2,fib(1)的返回值也为 2,故输出的 fib(3)的值为 4。13.下列不属于 C+规定的类继承方式是_。(分数:2.50)A.protect

26、ive B.privateC.protectedD.public解析:解析 本题考查的是类继承方式的相关知识。类的继承方式包括 3 中:公有继承(public)、私有继承(privatc)和保护继承(protected),所以题中 B、C、D 都属于,只有 A 不属于,故选择 A。14.下列描述正确的是(分数:1.00)A.表示 m n 为 true 或 m n 为 true 的表达式为 m n m=s0k; for(i=1;in;i+) if(sikm)m=sik; return m; void main() int a44=1,2,3,4),11,12,13,14,21,22,23,24,

27、31,32,33,34; printf(“%d/n“,fun(a,4,0); 程序的运行结果是_。(分数:2.50)A.4B.34C.31 D.32解析:解析 在程序中 fun 函数的功能在于求取二维数组 s 中 1 至 n 行中每行第 k 个元素中的最大者。注意:i=0 时为第一行,故 fun(a,4,0)在于求取 11、21、31 中的最大值,显然为 31。16.设有以下定义和程序: #include iostream.h class A1 public: void showl() cout“class A1“end1; ; Class A2 : public A1 public: voi

28、d show2() cout“Class A2“end1; ; Class A3 : 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();解析:解析 C+中,通过类的对象只能访问类的公有成员,不能访问类的保护成员和私有成员。A2 是A1 的公有派生类,A3 是 A2 的保护派生类,所以类 A1

29、 的成员函数 showl()在类 A3 中呈现保护属性,不能通过 A3 类的对象访问。17.若为 Fraction 类重载前增 1 运算符+,应在类体中将其声明为_。(分数:1.00)A.Fractionpoerator+();B.Fractionpoerator+(int);C.friend Fractionoperator+(); D.friend Fractionoperator+(int);解析:解析 声明必须以友元 friend 开头。为了区分,用+()表示前自增,用+(int)表示后自增。18.己知基类 Employee 只有一个构造函数,其定义如下: Employee:Emplo

30、yee(int n):id(n) Manager 是 Employee 的派生类,则下列对 Manager 的构造函数的定义中,正确的是_。(分数:2.00)A.Manager:Manager(int n):id(n)B.Manager:Manager(int n)id=n;C.Manager:Manager(int n):Employee(n) D.Manager:Manager(int n)Employee(n);解析:解析 基类的构造函数是带有参数的,派生类从基类派生,这就需要在派生类的构造函数名后面显示的调用基类的构造函数。19.已知表达式+x 中的“+”是作为成员函数重载的运算符,则

31、与+x 等效的运算符函数调用形式为_。(分数:1.00)A.operator+(1)B.operator+(x)C.operator+() D.operator+(x)解析:解析 本题考查的是前缀自增运算符的重载。由于题意中“+”是作为成员函数重载的运算符,所以若要显式的调用该运算符,需要使用该类的对象加上“.”运算符,即 x.operator+();又因为为了区分前缀运算符和后缀运算符,在调用后缀运算符时,需要给出一个整型实参值,而前缀运算符则不需要,所以+x 等效的运算符函数调用形式为:x.operator+(),答案为 C 选项。20.有如下程序: #includeiostream us

32、ing 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.get(); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.33B.38 C.83D.88解析:解析 本题考查常对象、常成员函数及构造函数。常对象只能调用常成员函数,所以本题中,对象 a 为普通对象,执行 a.get()

33、后,会执行默认构造函数,输出 3;对象 b 为常对象,执行 b.get()后,会执行常构造函数,输出 8。21.下面叙述中错误的是(分数:2.00)A.软件测试的目的是发现错误并改正错误 B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为 DebugD.软件测试应严格执行测试计划,排除测试的随意性解析:解析 软件测试的目的是暴露错误,评价程序的可靠性。软件调试的目的是发现错误的位置并改正错误。软件测试和软件调试不是同一个概念。22.下列程序的运行结果是_。 #includeiostream.h int x=5; int fun(int a) int c; c=X*a;

34、 return C; void main() int x=3,a=4; x=x+fun(a); cout“x=“xendl; (分数:1.00)A.x=15B.x=17C.x=23 D.x=25解析:解析 由主函数 main 入手,首先 x 被赋值为 3,a 被赋值为 4,然后调用 fun 函数,参数为 4,所以在 fun 函数中的 a=4。而主程序中的 x 作用域是由它定义开始到 cout 输出,在 fun 函数中无效。而在fun 函数定义前的变量 x 作用域是整个程序,所以 fun 函数中的 x 值为 5,这样 c 的值就为 20。在主函数中的 x+fun(a)中的 x 为靠近这条语句的

35、x 定义,即 3,所以最后 x 的值为 20+3=23。23.一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是_。(分数:2.50)A.12345ABCDEB.EDCBA54321 C.ABCDE12345D.5432IEDCBA解析:解析 本题考查栈的特性,栈是按照“后进先出”的原则组织数据的,所以出栈顺序是EDCBA54321。24.将 x+y*z 中的“+”用成员函数重载,“*”用友元函数重载应写为_。(分数:2.50)A.operator+(operator*(y,z)B.operator+(operator*(y,z

36、) C.operator+(x*(y,z)D.x+(operator*(y,z)解析:解析 在定义了重载运算符后的函数后,函数 operator+重载了运算符“+”。如果在类以外的其他地方定义了一个函数,在类体中用 friend 对该函数进行声明,此函数就称为本类的友元函数。“*”用友元函数重载就是运算符函数不作为成员函数,而把它放在类外,“.*”被改写为“operator*”。“+”为成员函数重载,x.operator+。所以“x+y*z”被改写为“x.operator+(operator*(y,z)”。25.有关构造函数的说法不正确的是 _ 。(分数:1.00)A.构造函数名字和类的名字一

37、样B.构造函数在说明类变量时自动执行C.构造函数无任何函数类型D.构造函数有且只有一个 解析:26.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是_。(分数:1.00)A.编译程序B.操作系统C.教务管理系统 D.汇编程序解析:解析 编译软件、操作系统、汇编程序都属于系统软件,只有 C 教务管理系统才是应用软件。27.已知有定义 const int D=5; int i=1; double f=032; char c=15; 则下列选项错误的是(分数:1.00)A.+i;B.D-; C.c+;D.-f解析:解析 “+”,“-”运算符不能用于常量。28.下列

38、字符串中不能作为 C+标识符使用的是_。(分数:1.00)A.IN25B.testC._1481D.123 解析:解析 C+规定标识符只能由字母、数字和下划线 3 种字符组成,且第一个字符必须为字母或下划线。所以选项 D 不能作为标识符,答案为 D。29.数据字典(DD)所定义的对象都包含于_。(分数:2.50)A.程序流程图B.数据流图(DFD 图) C.方框图D.软件结构图解析:解析 数据字典用于对数据流图中出现的被命名的图形元素进行确切地解释,是结构化分析中使用的工具。30.有如下程序: #includeiostream using namespace std; class Base p

39、ublic: 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.100B.000C.010D.001 解析:解析 本题考查的知识点是类的构造。建立一个类的对象时,构造函数的执行顺序如下:执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上

40、而下);执行自身的构造函数。本题 Derived 类继承于 Base 类,所以首先会构造基类 Base,但 Derived 类的构造函数没有初始化列表,所以将调用 Base 类的默认构造函数,输出一个 0。接下来由于它的成员中还定义了一个 Base 类的对象,而构造函数也没有显示初始化这个对象,所以再次调用 Base 类的默认构造函数输出一个 0。最后构造自身,因为主函数中传入了构造参数 1,所以构造自身时输出了一个 1。故最终输出结果为 001。31.有如下程序: #include iostream using namespace std; class XX protected: int k

41、; public: XX(int n=5):k(n) XX() cout“XX“; virtual void f() const=0; ; inline void XX:f() const coutk+3; class YY:public XX public: YY()cout“YY“; void f()const coutk-3; XX:f(); ; int main() XX p.f(); delete return 0; ; 执行上面的程序将输出_。(分数:2.50)A.28XX B.28YYXXC.-33XXD.-33XXYY解析:32.有如下程序段: int *a=new int2;

42、 a0=0; a1=1; int *b= cout*b; 运行这个程序段将输出_。(分数:2.50)A.整数 1B.a0的地址C.a1的地址D.整数 0 解析:解析 本题考查的是程序执行相关知识。int*a=new int2的意思是从堆里申请一个 int 空间,里面存的值为 2,并将 a 指针指向那个 int 空间。 ; void main( ) A x,y(2),z(3); coutend1; (分数:1.00)A.00B.23 C.34D.25解析:解析 本题考查的是对构造函数的掌握,另外“+”运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加 1。34.下列选项中,不是一个

43、算法的基本特征的是_。(分数:1.00)A.完整性 B.可行性C.有穷性D.拥有足够的情报解析:解析 作为一个算法,一般应该具有下列匹个特征:可行性,即考虑到实际的条件能够达到一个满意的结果;确定性,算法中的每一个步骤都必须是有明确定义的;有穷性,一个算法必须在有限的时间内完成;拥有足够的情报。35.下面关于虚函数的描述,错误的是(分数:1.00)A.在成员函数声明的前面加上 virtual 修饰,就可把该函数声明为虚函数B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数 C.虚函数可以是另一个类的友元函数,但不能是静态成员函数D.基类中说明的纯虚函数在其任何派生类中都必须实现解析:解析 基类中说明的虚函数,在派生类中自然就是虚函数,对于纯虚函数必须在后面继承的派生类中给出具体的实现;静态成员函数不能进行动态联编,所以虚函数不能是静态的。

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