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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C+分类模拟 246 及答案解析(总分:71.00,做题时间:90 分钟)一、选择题(总题数:40,分数:71.00)1.有三个关系 R. S 和 T 如下: (分数:2.00)A并B.自然连接C.笛卡尔积D交2.若执行下面的程序时,从键盘上输入 5 和 2,则输出结果是_。 # includeiostream.h void main() int a,b,k; cinab; k=a; if(ab) k=a%b; else k=b%a; coutkendl;(分数:2.50)A.5B.3C.2D.03.软件详细设计的主要任务是确定每个模块的 _ 。(分数:2.00)A.算法和使用的数据结构

2、B.外部接口C.功能D.编程4.下列情况中,不会调用拷贝构造函数的是_。(分数:1.00)A.用一个对象去初始化同一类的另一个新对象时B.将类的一个对象赋值给该类的另一个对象时C.函数的形参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时5.有如下程序: #includeiostream using namespace std; int main() int*p; *p=9; cout“the value at p:“*p; return 0; 编译运行程序将出现的情况是_。(分数:1.00)A.编译时出现语法错误,不能生成可执行文件B.运行时一定输出:T

3、he value at p:9C.运行时一定输出:The value at p:*9D.运行时有可能出错6.有如下程序: #ncludeiostremn using namespace std; class Stack public: Stack(unsigned n=10:size(n)rep_=new intsize;top=O; Stack(Stack for(int i=0;isize;i+)rep_i=s.rep_i; top=s.top; Stack()deleterep_; void push(int a)rep_top=a; top+; int opo()-top;return

4、 rep_top; bool is Empty()constreturn top=O; pavate: int*rep_; unsigned size,top; ; int main() Stack s1; for(int i=1;i5;i+) s1.push(i); Stack s2(s1); for(i=1;i3;i+) couts2.pop()“,“; s2.push(6); s1.push(7); while(!s2.isEmpty() couts2.pop()“,“; return 0; 执行上面程序的输出是(分数:1.00)A.4,3,2,1B.4,3,6,7,2,1C.4,3,6

5、,2,1D.1,2,3,47.可以用 pa 的形式访问派生类对象 p 的基类成员 a,其中 a 是_。(分数:1.00)A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员8.设有以下类和对象的定义: class A public; int m; ; A k1,k2, *p1,*p2; 则下面针对成员变量 m 的引用,错误的是_。(分数:2.50)A.k1.m=1B.k2m=2C.p1m=3D.(*p2).m=49.下列关于 C+流的描述中,错误的是_。(分数:2.00)A.cout“A表达式可输出字符 AB.eof()函数可以检测是否到达文件尾C.对磁盘文

6、件进行流操作时,必须包含头文件 fstreamD.以 ios_base:out 模式打开的文件不存在时,将自动建立一个新文件10.已知 Value 是一个类,value 是 Value 的一个对象。下列以非成员函数形式重载的运算符函数原型中,正确的是_。(分数:1.00)A.Value operator+(Value v, int i);B.Value operator+(Value v=value, int i);C.Value operator+(Value v, int i=0);D.Value operator+(Value v=value, int i=0);11.关于 this 指

7、针的说明不正确的是 _ 。(分数:1.00)A.不能在程序中修改 this 指针B.this 指针可以给其他指针赋值,但不能修改 this 指针C.静态成员函数中没有 this 指针D.this 指针可以被赋值12.设有以下定义和程序: #includeiostream.h class TestClass1 public: void show1() cout“TestClass1“endl; ; class TestClass2:TestClass1 public: void show2() cout“TestClass2“endl; ; class TestClass3:protected

8、TestClass2 public: void show3() cout“TestClass3“endl; ; void main() TestClass1 obj1; TestClass2 obj2; TestClass3 obj3; 则以下不合语法的调用语句是_。(分数:2.50)A.obj1.show1();B.obj2.show1();C.obj3.show1();D.obj2.show2();13.已知类 IMS 中两个成员函数的声明为“void listen()const;”与“void speak();”,另有两个对象的定义为“IMS obj1;”与“const IMS obj2

9、;”,则下列语句中,产生编译错误的是_。(分数:2.50)A.obj1.listen();B.obj1.speak();C.obj2.listen();D.obj2.speak();14.有如下程序: #include iostream.h #include iomanip.h using namespace std; class CSum int x,y; public: CSum (int x0,int y0):x(x0),y(y0) friend ostream return os; ; int main () CSum y(3,5); coutsetfill(“*“)8; couty;

10、 return 0; 执行上面程序的输出是(分数:2.00)A.88B.*88C.*8*8D.8*815.下列关于函数参数的叙述中,正确的是_。(分数:1.00)A.在函数原型中不必声明形参类型B.在调用一个函数时,若函数中修改了形参变量的值,则对应的实参变量的值也被修改C.函数形参的生存期与整个程序的运行期相同D.函数的形参在函数被调用时获得初始值16.有下列程序: #include stdio.h #include“string.h“ tyoedef structchar name9;char sex;float score2;STU; void f(STU a) STU b=“Zhao“

11、,“m“,85.0,90.0;int i;strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i2;i+)a.scorei=b.scorei; void main() STU c=(“Qian“,“f“,g5.0,92.0); f(c); printf(“%s,%c,%2.of,%2.of/n“,c.name,c.sex, c.score0,c.score1); 程序的运行结果是_。(分数:2.50)A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,9017.下列描述正确的是_。(分数:1.00)A.

12、表示 mn 为 true 或 mn 为 true 的表达式为 mnmnB.switch 语句结构中必须有 default 语句C.if 语句结构中必须有 else 语句D.如果至少有一个操作数为 true,则包含|运算符的表达式为 true18.不合法的 main 函数命令行参数表示形式是(分数:1.00)A.main(inta,char*c)B.main(int arc,char * * arv)C.main(int argc,char * argv)D.main(int argv,char * argc)19.下列关于派生类的叙述中,错误的是_。(分数:2.00)A.派生类至少要有一个基类

13、B.派生类中包括了从基类继承的成员C.一个派生类可以作为另一个派生类的基类D.基类成员被派生类继承以后访问权限保持不变20.有如下程序: #includeiostream using namespace std; class Point public: static int number; public: Point() number+; Point() number -; ; int Point:number=0; int main() Point *ptr; Point A, B; Point *ptr_point=new Point3; ptr=ptr_point; Point C; c

14、outPoint:numberendl; deleteptr; return 0; 执行这个程序的输出结果是_。(分数:1.00)A.3B.4C.6D.721.计算斐波那契数列第 n 项的函数定义如下: int fib(int n) if(n=0) return 1; else if(n=1) return 2; else return fib(n-1)+fib(n-2); 若执行函数调用表达式 fib(2),函数 fib 被调用的次数是_。(分数:2.50)A.1B.2C.3D.422.表达式 1056%3 的值是(分数:2.00)A.-1B.非零值C.0D.123.有如下类声明: clas

15、s SAMPLE int n; public: SAMPLE(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;24.有如下程序: #includeiostream using namespace std; class B public: virtual void show( )

16、cout“B“; ; class D:public B public: void show( )cout“D“; ; void funl(B*ptr)ptr-show( ); void fun2(B int main() int*p; *p=9; cout“The value at p:“*p; return 0; 编译运行程序将出现的情况是_。(分数:2.00)A.编译时出现语法错误,不能生成可执行文件B.运行时一定输出:The value at p:9C.运行时一定输出:The value at p:*9D.运行时有可能出错28.要利用 C+流进行文件操作,必须在程序中包含的头文件是(分数

17、:2.00)A.iostreamB.fstreamC.strstreamD.iomanip29.要定义一个引用变量 p,使之引用类 MyClass 的一个对象,正确的定义语句是_。(分数:2.50)A.MyClass p=MyClass;B.MyClass p=new MyClass;C.MyClassD.MyClass a, 30.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是_。(分数:2.50)A.一对一B.一对多C.多对多D.多对一31.下列函数参数默认值定义错误的是 _ 。(分数:2.00)A.Fun(int x,int y=0)B

18、.Fun(int x=100)C.Fun(int x=0,int y)D.Fun(int x=f()(假定函数 f()已经定义)32.在深度为 7 的满二叉树中,叶子结点的个数为(分数:1.00)A.32B.31C.64D.6333.有如下程序 #includeiostream using namespace std; class MyClass public: MyClass()+count; MyClass()-count; static int getcount()return count; private: static int count; ; int MyClass:count=0

19、; int main() MyClass obj; coutobj.getcount(); MyClass*ptr=new MyClass; coutMyClass:getcount(); delete ptr; coutMyClass:getcount(); return 0; 程序的输出结果是_。(分数:2.50)A.121B.232C.221D.12234.若有如下定义和语句: int s45,(*p)5; p=S; 则指针对 s 数组中第三个元素的正确引用形式是 _ 。(分数:2.00)A.p03B.p12C.p02D.p1335.软件按功能可以分为应用软件、系统软件和支撑软件(或工具

20、软件)。下面属于应用软件的是_。(分数:1.00)A.学生成绩管理系统B.C 语言编译程序C.UNIX 操作系统D.数据库管理系统36.若有如下程序: #includeiostream using namespace std; int s=0; class sample static int n; public: sample(int i) n=i; static void add() S+=n; ; int sample:n=0; int main() sample a(2),b(5); sample:add(); coutsendl; return 0; 程序运行后的输出结果是 _ 。(分

21、数:2.00)A.2B.5C.7D.337.下面关于类概念的描述中 _ 是错误的。(分数:1.00)A.类是抽象数据类型的实现B.类是具有共同行为的若干对象的统一描述体C.类是创建对象的样板D.类就是 C 语言中的结构体类型38.有如下程序: class Base public: int data; ; class Derivedl: public Base ; class Derived2: protected Base ; int main() Derivedl d1; Derived2 d2; d1. data=0;/ d2. data=0;/ return 0; 下列关于程序编译结果的

22、描述中,正确的是_。(分数:1.00)A.皆无编译错误B.有编译错误,无编译错误C.无编译错误,有编译错误D.皆有编译错误39.Sample 是一个类,执行下面语句后,调用 Sample 类的构造函数的次数是_。 Sample a2,*P=new Sample;(分数:3.00)A.0B.1C.2D.340.已知枚举类型定义语句为: enunl Token NAME,NUMBER,PLUS=5,MINUS,PRINT=10 ; 则下列叙述中错误的是(分数:2.00)A.枚举常量 NAME 的值为 1B.枚举常量 NuMBER 的值为 1C.枚举常量 MINus 的值为 6D.枚举常量 PRIN

23、T 的值为 10二级 C+分类模拟 246 答案解析(总分:71.00,做题时间:90 分钟)一、选择题(总题数:40,分数:71.00)1.有三个关系 R. S 和 T 如下: (分数:2.00)A并B.自然连接C.笛卡尔积D交 解析:解析 关系 R 与 s 并,由属于 R 或属于 s 的元组构成的集合组成;R 和 S 的广义笛卡儿积是一个(n+m)列的元组的集合。元组的前 n 列是关系 R 的一个元组,后 m 列是关系 S 的一个元组;关系 R 与 S 的交既属于 R 同时又属于 S 的元组构成的集合。自然连接,要求两个关系中进行比较的分量必须是相同的属性组,并且在结果集中将重复属性列去掉

24、。2.若执行下面的程序时,从键盘上输入 5 和 2,则输出结果是_。 # includeiostream.h void main() int a,b,k; cinab; k=a; if(ab) k=a%b; else k=b%a; coutkendl;(分数:2.50)A.5B.3C.2 D.0解析:解析 本题考查简单的 if.else 语句。先执行条件 if(ab),显然不成立,则执行 else 语句。3.软件详细设计的主要任务是确定每个模块的 _ 。(分数:2.00)A.算法和使用的数据结构 B.外部接口C.功能D.编程解析:4.下列情况中,不会调用拷贝构造函数的是_。(分数:1.00)A

25、.用一个对象去初始化同一类的另一个新对象时B.将类的一个对象赋值给该类的另一个对象时 C.函数的形参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时解析:解析 本题考查复制构造函数,在以下 3 种情况下使用:程序中需要新建立一个对象,并用另一个对象对它初始化;函数的参数为类的对象;函数的返回值是类的对象。其中 B 选项是由赋值运算符重载实现的。5.有如下程序: #includeiostream using namespace std; int main() int*p; *p=9; cout“the value at p:“*p; return 0; 编译

26、运行程序将出现的情况是_。(分数:1.00)A.编译时出现语法错误,不能生成可执行文件B.运行时一定输出:The value at p:9C.运行时一定输出:The value at p:*9D.运行时有可能出错 解析:解析 先定义指针变量,然后给指针变量赋初值有三种情况:用取地址运算符“ class Stack public: Stack(unsigned n=10:size(n)rep_=new intsize;top=O; Stack(Stack for(int i=0;isize;i+)rep_i=s.rep_i; top=s.top; Stack()deleterep_; void

27、push(int a)rep_top=a; top+; int opo()-top;return rep_top; bool is Empty()constreturn top=O; pavate: int*rep_; unsigned size,top; ; int main() Stack s1; for(int i=1;i5;i+) s1.push(i); Stack s2(s1); for(i=1;i3;i+) couts2.pop()“,“; s2.push(6); s1.push(7); while(!s2.isEmpty() couts2.pop()“,“; return 0;

28、执行上面程序的输出是(分数:1.00)A.4,3,2,1B.4,3,6,7,2,1C.4,3,6,2,1 D.1,2,3,4解析:7.可以用 pa 的形式访问派生类对象 p 的基类成员 a,其中 a 是_。(分数:1.00)A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员 解析:解析 只有公有继承的公有成员才能被派生类的对象直接访问,其他的情况都会因为访问权限问题产生错误。8.设有以下类和对象的定义: class A public; int m; ; A k1,k2, *p1,*p2; 则下面针对成员变量 m 的引用,错误的是_。(分数:2.50)A.k

29、1.m=1B.k2m=2 C.p1m=3D.(*p2).m=4解析:解析 A*p1,A*p2 为指向 A 类对象的指针,故“p1m=3,(*p2).m=4”是正确的。但 k2 不是指针,k2m 的表示是错误的。9.下列关于 C+流的描述中,错误的是_。(分数:2.00)A.cout“A表达式可输出字符 A B.eof()函数可以检测是否到达文件尾C.对磁盘文件进行流操作时,必须包含头文件 fstreamD.以 ios_base:out 模式打开的文件不存在时,将自动建立一个新文件解析:解析 cout 是一个标准输出流对象。称之为提取运算符,它的功能是从输入流中提取数据赋值给一个变量。为插入运算

30、符,其功能是把表达式的值插入到输出流中。当系统执行 coutx 操作时,首先根据 x 值的类型调用相应的插入运算符重载器函数,把 x 的值传送给对应的形参,接着执行函数体,把 x 的值输出到显示器屏幕上,在当前屏幕光标位置处显示出来,然后返回 ostream 流,以便继续使用插入运算符输出下一个表达式的值。对于本题来说,要输出字符A的值应该写成 cout“A“。因而选项 A 是错误的。10.已知 Value 是一个类,value 是 Value 的一个对象。下列以非成员函数形式重载的运算符函数原型中,正确的是_。(分数:1.00)A.Value operator+(Value v, int i

31、); B.Value operator+(Value v=value, int i);C.Value operator+(Value v, int i=0);D.Value operator+(Value v=value, int i=0);解析:解析 本题考查运算符重载,其中重载运算符的函数不能有默认的参数,所以本题答案为 A。11.关于 this 指针的说明不正确的是 _ 。(分数:1.00)A.不能在程序中修改 this 指针B.this 指针可以给其他指针赋值,但不能修改 this 指针C.静态成员函数中没有 this 指针D.this 指针可以被赋值 解析:12.设有以下定义和程序:

32、 #includeiostream.h class TestClass1 public: void show1() cout“TestClass1“endl; ; class TestClass2:TestClass1 public: void show2() cout“TestClass2“endl; ; class TestClass3:protected TestClass2 public: void show3() cout“TestClass3“endl; ; void main() TestClass1 obj1; TestClass2 obj2; TestClass3 obj3;

33、 则以下不合语法的调用语句是_。(分数:2.50)A.obj1.show1();B.obj2.show1();C.obj3.show1(); D.obj2.show2();解析:解析 TestClass1 为 TestClass2 的私有基类,所以派生类 TestClass2 中继承过来的 show1()为私有的。TestClass3 为 TestClass2 的受保护派生类。所以 TestClass3 定义的对象不能访问 TestClass中的 show1()。13.已知类 IMS 中两个成员函数的声明为“void listen()const;”与“void speak();”,另有两个对象

34、的定义为“IMS obj1;”与“const IMS obj2;”,则下列语句中,产生编译错误的是_。(分数:2.50)A.obj1.listen();B.obj1.speak();C.obj2.listen();D.obj2.speak(); 解析:解析 引用,其实就是给某个变量起个别名,这个别名代表的还是那个变量,如果用这个别名使用这个变量,那么使用的就是变量的本身。如果对这个别名的内容进行修改,那么修改的就是被绑定别名的变量的本身。如果对引用加上 const 限定,那么,别名就不能在修改变量本身。14.有如下程序: #include iostream.h #include iomanip

35、.h using namespace std; class CSum int x,y; public: CSum (int x0,int y0):x(x0),y(y0) friend ostream return os; ; int main () CSum y(3,5); coutsetfill(“*“)8; couty; return 0; 执行上面程序的输出是(分数:2.00)A.88B.*88C.*8*8D.8*8 解析:解析 本题考核知识点包括:类与对象、运算重载、I/O 的格式化输出。语句 “coutsetfill(“*“)8;“输出 8。语句“couty;“将调用运算符重载输出*

36、8,因为前面语句中设置的填充符号现在还有效,而数据“8“的宽度不够 5,所以剩下 4 个字符的宽度用填充符号“*“填充。15.下列关于函数参数的叙述中,正确的是_。(分数:1.00)A.在函数原型中不必声明形参类型B.在调用一个函数时,若函数中修改了形参变量的值,则对应的实参变量的值也被修改C.函数形参的生存期与整个程序的运行期相同D.函数的形参在函数被调用时获得初始值 解析:解析 本题考查函数参数的相关知识,函数原型中必须声明形参类型,所以 A 选项错误,调用一个函数时如果修改了形参值,那么实参可能改变也可能不改变,所以 B 选项错误,函数形参的生存期一般在函数执行整个函数中存在,除了静态变

37、量,所以 C 选项错误。16.有下列程序: #include stdio.h #include“string.h“ tyoedef structchar name9;char sex;float score2;STU; void f(STU a) STU b=“Zhao“,“m“,85.0,90.0;int i;strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i2;i+)a.scorei=b.scorei; void main() STU c=(“Qian“,“f“,g5.0,92.0); f(c); printf(“%s,%c,%2.of,%2.of/

38、n“,c.name,c.sex, c.score0,c.score1); 程序的运行结果是_。(分数:2.50)A.Qian,f,95,92 B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90解析:解析 本题考查在结构体中函数的调用,主函数调用 f(c)后,实参传向形参,但程序中没有返回语句,故形参不能将值传回实参,实参之间值的传递具有不可逆性,所以 printf 输出的还是 c 中实参的值。17.下列描述正确的是_。(分数:1.00)A.表示 mn 为 true 或 mn 为 true 的表达式为 mnmnB.switch 语句结构中必须有 default

39、语句C.if 语句结构中必须有 else 语句D.如果至少有一个操作数为 true,则包含|运算符的表达式为 true 解析:解析 本题主要考查 C+语言的基本语法,选项 A 中应该为 mn|mn;选项 B 中 default 语句可有可无;选项 C 中 if 可以单独作为一条语句,不必须和 else 搭配。18.不合法的 main 函数命令行参数表示形式是(分数:1.00)A.main(inta,char*c)B.main(int arc,char * * arv)C.main(int argc,char * argv) D.main(int argv,char * argc)解析:解析 在

40、 C+语言里,main 函数也可以有参数,例如:main(int arvc,char*argv),argc:是指向字符串的指针数组,而选项 C)是第二个形参是指向字符变量的指针,是错误的。19.下列关于派生类的叙述中,错误的是_。(分数:2.00)A.派生类至少要有一个基类B.派生类中包括了从基类继承的成员C.一个派生类可以作为另一个派生类的基类D.基类成员被派生类继承以后访问权限保持不变 解析:解析 派生类对象对基类成员的访问权限:对于公有继承,只有基类的公有成员可以被派生类对象访问,其他(保护和私有)成员不能被访问。对于私有继承和保护继承,基类中所有成员都不能被派生类对象访问。派生类对基类

41、成员的访问权限:对于公有继承,基类中公有成员和保护成员可以访问,而基类中私有成员不能被访问。对于私有继承和保护继承,也是基类中的公有成员和保护成员可以被派生类访问,而基类中的私有成员不能被访问。20.有如下程序: #includeiostream using namespace std; class Point public: static int number; public: Point() number+; Point() number -; ; int Point:number=0; int main() Point *ptr; Point A, B; Point *ptr_point

42、=new Point3; ptr=ptr_point; Point C; coutPoint:numberendl; deleteptr; return 0; 执行这个程序的输出结果是_。(分数:1.00)A.3B.4C.6 D.7解析:解析 本题考查默认构造函数,题目中定义一个对象 A、B 以及对象数组 Point3,又定义了对象 C,共执行 6 次构造函数,number 变为了 6,所以本题答案为 C。21.计算斐波那契数列第 n 项的函数定义如下: int fib(int n) if(n=0) return 1; else if(n=1) return 2; else return fi

43、b(n-1)+fib(n-2); 若执行函数调用表达式 fib(2),函数 fib 被调用的次数是_。(分数:2.50)A.1B.2C.3 D.4解析:解析 针对递归调用的含义。当 n 为 2 时有 fib(0),fib(1)fib(2)被调用,且 fib(0),fib(1)时调用结束,即共 3 次。22.表达式 1056%3 的值是(分数:2.00)A.-1B.非零值C.0 D.1解析:23.有如下类声明: class SAMPLE int n; public: SAMPLE(int i=0):n(i) void setValue(int n0); ; 下列关于 getValue 成员函数的

44、实现中,正确的是_。(分数: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。24.有如下程序: #includeiostream using namespace std; class B public: virtual void show( )cout“B“; ; cla

45、ss D:public B public: void show( )cout“D“; ; void funl(B*ptr)ptr-show( ); void fun2(B int main() int*p; *p=9; cout“The value at p:“*p; return 0; 编译运行程序将出现的情况是_。(分数:2.00)A.编译时出现语法错误,不能生成可执行文件B.运行时一定输出:The value at p:9C.运行时一定输出:The value at p:*9D.运行时有可能出错 解析:解析 此题考查的是指针的使用。本题中,在给*p 赋值前,指针 p 并没有指向一个具体的

46、对象。此时可以通过编译,但运行时由于 p 中为随机值,该赋值可能会破坏内存中某个重要的地址空间的内容,导致程序出错。28.要利用 C+流进行文件操作,必须在程序中包含的头文件是(分数:2.00)A.iostreamB.fstreamC.strstreamD.iomanip 解析:解析 头文件 iomapip 用于输入/输出的格式控制,头文件 iostrearn 包含了对输入/输出流进行操作所需的基本信息。29.要定义一个引用变量 p,使之引用类 MyClass 的一个对象,正确的定义语句是_。(分数:2.50)A.MyClass p=MyClass;B.MyClass p=new MyClass;C.MyClass D.MyClass a, 解析:解析 C 项是动态创建引用 p 使它指向 MyClass 类的对象。引用的格式类型名 class MyClass public: MyClass()+count; MyClass()-count; static int getcount()return count; private: static int count; ; int My

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