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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

【计算机类职业资格】二级C++笔试58及答案解析.doc

1、二级 C+笔试 58 及答案解析(总分:86.00,做题时间:90 分钟)一、B选择题/B(总题数:30,分数:60.00)1.设有关系 R 及关系 S,它们分别有 p、q 个元组,则关系 R 与 S 经笛卡儿积后所得新关系的元组个数是( )。(分数:2.00)A.pB.qC.p+qD.p*q2.类 Contain 的定义如下: class Contain private: int x; protected: int z; public: class Embed private: int y; public: Embed ( ) y=100; int Embed_Fun(); MyEmbed;

2、 int Contain_Fun(); ; 下列对上面定义的描述中,正确的是( )。(分数:2.00)A.定义类 Embed 对象的语句是:Contain:Embed Myobject;B.类 Contain 的成员函数 Contain_Fun()中可以访问对象 MyEmbed 的私有成员 yC.类 Embed 的成员函数 Embed_Fun()中可以直接访问类 Contain 的所有成员D.类 Embed 的成员函数 Embed_Fun()中只能直接访问类 Contain 的公有成员3.C+流中重载了运算符,它是一个( )。(分数:2.00)A.用于输出操作的成员函数B.用于输入操作的成员函

3、数C.用于输入操作的非成员函数D.用于输出操作的非成员函数4.若有以下程序: #include iostream using namespace std; int main() int a=3; cout(a+=a-=a+A) end1; return 0; 程序执行后的输出结果是( )。(分数:2.00)A.-6B.12C.0D.-125.以下程序执行后的输出结果是( )。 #include iostream using namespace std; void try(int,int,int,int); int main ( ) int x,y,z,r; x=1; y=2; try(x,y,

4、z,r); coutrend1; return 0; void try(int x,int y, int z,int r) z = x+y; x = X*X; y = y*y; r = z+x+y; (分数:2.00)A.18B.9C.10D.不确定6.在一个单链表中,若 q 节点是 p 节点的前驱节点,若在 q 与 p 之间插入节点 s,则执行( )。(分数:2.00)A.sqink=plink; plink=sB.plink=s; sqink=qC.plink=slink; slink=pD.qlink=s; slink=p7.有以下程序: #include iostream using

5、namespace std; int main ( ) int n3,i,j,k = 2; for(i = 0;ik;i+) ni = O; for(i = O;ik;i+) for(j = O;jk;j+) nj = ni + 1; coutn 0 end1; return 0; 上述程序运行后,输出结果是( )。(分数:2.00)A.0B.1C.2D.38.下列关于队列的叙述中,正确的是( )。(分数:2.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表9.在进行单元测试时,常用的方法是( )。(分数:2.00)A.采用白盒测试,辅

6、之以黑盒测试B.采用黑盒测试,辅之以白盒测试C.只使用白盒测试D.只使用黑盒测试10.下列对变量的引用中,错误的是( )。(分数:2.00)A.int a; int class A private: int x; public: A(int a) x=a; friend class B; ; class B public: void print(A a) a.x-; couta, xend1; ; int main () A a(10); B b; b.print (a) ; return 0; 程序执行后的输出结果是( )。(分数:2.00)A.9B.10C.11D.1212.以下各选项中,

7、( )中都是 C+语言保留字。(分数:2.00)A.cout,operator,thisB.short,string,staticC.if,while,=D.private,public,printf13.利用 ER 模型进行数据库的概念设计,可以分成 3 步:首先设计局部 ER 模型,然后把各个局部 ER 模型综合成一个全局的模型,最后对全局 ER 模型进行( )。(分数:2.00)A.简化B.结构化C.最小化D.优化14.以下内容属于存储在计算机内有结构的数据集合的是( )。(分数:2.00)A.数据库系统B.数据库C.数据库管理系统D.数据结构15.假定 MyClass 为一个类,则该类

8、的拷贝构造函数的声明语句为 ( )。(分数:2.00)A.MyClassB.MyClass (MyClass ;C.MyClass(MyClass &;D.MyClass (MyClass *;16.以下程序段有( )处错误。 #include iostream using namespaces std; class Sample private: int n; public: Sample (int i n=i; void setvalue(int i) n=i; void display() cout“n=“nend1; ; int main ( ) const Sample a(lO);

9、 a. setvalue (5); a.display(); return 0; (分数:2.00)A.1B.2C.3D.417.以下函数实现的功能是 ( )。 void fun(char *s) char *p,*q, temp; p=s; q=s+strlen (s) -1; while (pq) temp=*p; *p=*q; *p=temp; p+; q-; (分数:2.00)A.将一个字符串首尾颠倒B.计算字符串的长度C.统计字符串中的空格个数D.将字符串中的小写字母变成大写字母18.设有语句: char str1=“string“,str28,*str3,*str4=“string

10、“; 则下列对库函数 strcpy()调用不正确的是( )。(分数:2.00)A.strcpy(str1,“Hell01“);B.strcpy(str2,“Hell02“);C.strcpy(str3,“Hell03“);D.strcpy(str4,“Hell04“);19.算法的空间复杂度是指( )。(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间20.有以下程序: #include iostream using namespace std; int main () int n; cinn; if (n+10) cout

11、nend1; else coutn-end1; return 0; 若执行该程序时从键盘上输入 9,则输出结果是( )。(分数:2.00)A.11B.10C.9D.821.有以下程序: #include iostream using namespace std; class sample private: int n; public: sample() sample (int m) n=m; sample add(sample sl,sample s2) this-n=sl.n+s2.n; return (*this); void disp() cout“n=“nend1; ; int mai

12、n ( ) sample sl(10) ,s2 (5),s3; s3.add(s1,s2); s3.disp(); return 0; 程序运行后,输出的结果是( )。(分数:2.00)A.n=10B.n=5C.n=20D.n=1522.下面几种调试方法中,不适合调试大规模程序的是( )。(分数:2.00)A.强行排错法B.回溯法C.原因排除法D.静态调试23.已知枚举类型定义语句为: enum Token NAME,NUMBER,PLUS=5,MINUS,PRINT=10; 则下列说法中,错误的是( )。(分数:2.00)A.枚举常量 NAME 的值为 1B.枚举常量 NUMBER 的值为

13、1C.枚举常量 MINUS 的值为 6D.枚举常量 PRINT 的值为 1024.为使程序的输出结果为: Base: fun 那么应在下列程序画线处填入的正确语句是( )。 #include iostream using namespace std; class Base public: void fun () cout“Base: :fun“end1; ; class Derived : public Base public: void fun ( ) cout“Derived: :fun“end1; ; int main ( ) Base a,*pb; Derived b; _; pb-f

14、un(); /调用基类的成员函数 fun() return 0 ; (分数:2.00)A.pb= class Base int x; protected: int y; public: int z; void setx(int i) x=i; int getx ( ) return x; ; class Inherit : private Base private: int m; public: int p; void setvalue(int a,int b,int c, int d) setx(a) ; y=b; z=c; m=d; void display() coutgetx ()“,

15、 “y“, “z“, “mend1; ; int main() Inherit A; A.setvalue(1,2,3,4); A.display(); return 0; 程序运行后的输出结果是( )。(分数:2.00)A.1,2,3,4B.产生语法错误C.4,3,2,1D.2,3,4,526.编制好的程序,首先要确保它的正确性和可靠性,还应强调良好的编程风格。在书写功能性注解时应考虑( )。(分数:2.00)A.仅为整个程序作注解B.仅为每个模块作注解C.为程序段作注解D.为每个语句作注解27.一个满二叉树其深度为 4,则其叶子节点的个数为( )。(分数:2.00)A.8B.16C.32D

16、.428.有如下类的定义。空格处的语句是( )。 class MyClass _ int x, y; public: MyClass(int a=0,int b=0) x=a; y=b; static void change() x-=10; y-=10; ;(分数:2.00)A.staticB.constC.privateD.不需要填入内容29.下列函数中,哪项是正确的递归函数( )。 A int Fun(int n) if(n1) return 1; else return n*Fun(n+1); B) int Fun(ira n) if(abs(n)1) return 1; else r

17、eturn n*Fun(n/2); C) int Fun(int n) if(n1) return 1; else return n*Fun(n*2)1 D) int Fun(int n) if(n1) return 1; else retun n*Fun(n-1); (分数:2.00)A.B.C.D.30.下列类的定义中,有( )处语法错误。 class Base public: Base ( ) Base(int i) data=i; private: int data; ; class Derive : public Base public: Derive() : Base(O) Der

18、ive (int x) d=x; void setvalue(int i) data=i; private: d; ;(分数:2.00)A.1B.2C.3D.4二、B填空题/B(总题数:13,分数:26.00)31.数据的逻辑结构可用一个二元组 B(K,R)来表示,其中 K 是U 【1】 /U,R 是U 【2】 /U。(分数:2.00)填空项 1:_32.设栈 S 和队列 Q 的初始状态为空,元素 e1、e2、e3、e4、e5 和 e6 依次通过栈 S,一个元素出栈后即进入队列 Q,若 6 个元素出队的顺序是 e2、e4、e3、e6、e5、e1,则栈 S 的容量至少应是U 【3】 /U。(分数

19、:2.00)填空项 1:_33.下图所示的二叉树的先序遍历序列是U 【4】 /U。 (分数:2.00)填空项 1:_34.数据库管理系统是位于U 【5】 /U之间的软件系统。(分数:2.00)填空项 1:_35.有以下程序: #include iostream using namespace std; int main() int i=010,j=10; cout(+i)“,“i-end1; return 0; 则该程序运行后的输出结果是U 【6】 /U。(分数:2.00)填空项 1:_36.设有以下程序: #includeiostream using namespace std; int m

20、ain() int a,b,k:4,m=6,*p1= if (yz) a=y; y=z; z=a; if (xy) a=x; x=y; y=a; (分数:2.00)填空项 1:_42.以下程序运行后的输出结果是U 【14】 /U。 #include iostream #include string using namespace std; class Y; class X int x; char *strx; public: X(int a, char *str) x=a; strx=new charstrlen(str)+l; strcpy(strx,str); void show(Y ;

21、class Y private: int y; char *stry; public: Y(int b,char *str) y=b; stry=new charstrlen(str)+l; strcpy(stry, str); friend void X:show(Y ; void X:show(Y coutob.stryend1; int main() X a(10,“stringX“); Y b(20,“stringY“); a. show (B) ; return 0; (分数:2.00)填空项 1:_43.若有以下程序: #include iostream using namespa

22、ce std; #define PI 3.14 class Point private: int x,y; public: Point (int a,int b) x=a; y=b; int getx () return x; int gety() return y; ; class Circle : public Point int r; public: Circle(int a, int b,int C) : Point (a, b) r=c; int getr() return r; double area() return PI*r*r; ; int main() Circle c1(

23、5,7,10); coutc1.area()end1; return 0; 程序执行后的输出结果是U 【15】 /U。(分数:2.00)填空项 1:_二级 C+笔试 58 答案解析(总分:86.00,做题时间:90 分钟)一、B选择题/B(总题数:30,分数:60.00)1.设有关系 R 及关系 S,它们分别有 p、q 个元组,则关系 R 与 S 经笛卡儿积后所得新关系的元组个数是( )。(分数:2.00)A.pB.qC.p+qD.p*q 解析:解析 本题考核对笛卡儿积运算的掌握。笛卡儿积是两个关系的合并操作,关系 R 的每一个行依次跟关系 S 的每一个行组成一个新元组,因此关系 R 与 S

24、经笛卡儿积后所得新关系的元组个数是 p*q。2.类 Contain 的定义如下: class Contain private: int x; protected: int z; public: class Embed private: int y; public: Embed ( ) y=100; int Embed_Fun(); MyEmbed; int Contain_Fun(); ; 下列对上面定义的描述中,正确的是( )。(分数:2.00)A.定义类 Embed 对象的语句是:Contain:Embed Myobject; B.类 Contain 的成员函数 Contain_Fun()

25、中可以访问对象 MyEmbed 的私有成员 yC.类 Embed 的成员函数 Embed_Fun()中可以直接访问类 Contain 的所有成员D.类 Embed 的成员函数 Embed_Fun()中只能直接访问类 Contain 的公有成员解析:解析 对象 MyEmbed 是类 Contain 的成员对象,通过对象 MyEmbed 不能访问其私有数据成员 y,所以选项 B 是错误的。 类 Embed 是类 Contain 的嵌套类,类 Embed 的成员函数不能直接访问类 Contain的所有成员,所以选项 C 和 D 都是错误的。3.C+流中重载了运算符,它是一个( )。(分数:2.00)

26、A.用于输出操作的成员函数B.用于输入操作的成员函数C.用于输入操作的非成员函数D.用于输出操作的非成员函数 解析:解析 C+流中重载了和,其中用于有格式输入,用于有格式输出。且都重载为非成员函数。4.若有以下程序: #include iostream using namespace std; int main() int a=3; cout(a+=a-=a+A) end1; return 0; 程序执行后的输出结果是( )。(分数:2.00)A.-6B.12C.0D.-12 解析:解析 本题考核运算符的优先级和结合性。根据运算符的优先级和结合性用括号来分出表达式的优先级:a+=(a-=(a*

27、A) )。先计算 a*a 得 9,再执行语句:a-=9:得到 a=-6,然后执行 a+=a 得到结果-12。5.以下程序执行后的输出结果是( )。 #include iostream using namespace std; void try(int,int,int,int); int main ( ) int x,y,z,r; x=1; y=2; try(x,y,z,r); coutrend1; return 0; void try(int x,int y, int z,int r) z = x+y; x = X*X; y = y*y; r = z+x+y; (分数:2.00)A.18B.9

28、C.10D.不确定 解析:解析 本题常见的错误解答是:把 x=1,y=2 代入到函数 try 中,逐步计算出 r=8。最后得到 r 的输出值是 8。下面是正确解答。根据程序逐步分析: 程序中定义了一个名为 try 的 void 型函数,即函数 try()没有任何返回值。 而 try()函数在主函数中是以一条独立语句的方式被调用的,且主函数最后输出变量 r 的值。 但在主函数中,并没有对变量 r 赋值。 在 C+语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以,虽然在函数 try()中,r 的值为 8,但它并不能传递给实参

29、,当然最终的输出肯定是不确定的随机数了。6.在一个单链表中,若 q 节点是 p 节点的前驱节点,若在 q 与 p 之间插入节点 s,则执行( )。(分数:2.00)A.sqink=plink; plink=sB.plink=s; sqink=qC.plink=slink; slink=pD.qlink=s; slink=p 解析:解析 在单链表中插入一个元素需要执行以下步骤:首先将待插入节点的前驱节点的指针域指向待插入节点,然后将待插入节点的指针域指向待插入节点的前驱节点原先的后继节点。7.有以下程序: #include iostream using namespace std; int ma

30、in ( ) int n3,i,j,k = 2; for(i = 0;ik;i+) ni = O; for(i = O;ik;i+) for(j = O;jk;j+) nj = ni + 1; coutn 0 end1; return 0; 上述程序运行后,输出结果是( )。(分数:2.00)A.0B.1C.2D.3 解析:解析 本题考核数组的定义、初始化及其使用。根据程序逐步分析:程序首先给数组 n 的所有元素赋初值 0,然后执行一个嵌套的循环结构。嵌套循环的执行过程如下: i=0 时,j 分别取值 0、1,使得 n0、n1的值分别变 1、2,内层循环结束。 i=1 时,对外层循环进行判断,

31、符合循环条件,执行内层循环,j 分别取值 0、1,使得 n0、n1的值变为 3、3,退出内层循环。 i=2 时,判断外层循环,不再符合循环条件,退出外层循环,执行 cout 语句,输出 n0的值为 3。8.下列关于队列的叙述中,正确的是( )。(分数:2.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表 D.队列是先进后出的线性表解析:解析 队列是指允许在一端进行插入,而在另一端进行删除的线性表。允许插入的一端称为队尾,允许删除的一端称为队头,所以在队列中既可以插入数据,也能删除数据,所以选项 A、B 是错误的。在这种数据结构中,最先插入的元素最先能够被删除,因

32、此队列又称为先进先出的线性表。答案是 C。9.在进行单元测试时,常用的方法是( )。(分数:2.00)A.采用白盒测试,辅之以黑盒测试 B.采用黑盒测试,辅之以白盒测试C.只使用白盒测试D.只使用黑盒测试解析:解析 本题考核软件测试方法的应用。白盒测试是测试程序内部的逻辑结构及有关信息,黑盒测试只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。从程序内部的逻辑结构对系统进行测试才是测试的根本,即是比较深层次的测试,更容易发现和解决程序中的问题,因此单元测试时应该以白盒测试为主,而黑盒测试只能作辅助。10.下列对变量的引用中,错误的是( )。(分数:2.00)A.int a; in

33、t class A private: int x; public: A(int a) x=a; friend class B; ; class B public: void print(A a) a.x-; couta, xend1; ; int main () A a(10); B b; b.print (a) ; return 0; 程序执行后的输出结果是( )。(分数:2.00)A.9 B.10C.11D.12解析:解析 本题考核友元类的应用。在程序中,类 B 是类 A 的友元类,因此,在类 B 的所有成员函数中均可访问类 A 的任何成员。在 main()中,先定义类 A 的一个对象 a

34、(10)和类 B 的一个对象 b。然后通过对象 b 调用其成员函数 print(),输出对象 a 的私有成员 x 的值减 1 即 9。12.以下各选项中,( )中都是 C+语言保留字。(分数:2.00)A.cout,operator,this B.short,string,staticC.if,while,=D.private,public,printf解析:解析 本题主要考察有关 C+语言保留字这个知识点。C+语言中,运算符(=)、函数名(printf)和非基本数据类型(string)都不是 C+语言的保留字(关键词)。13.利用 ER 模型进行数据库的概念设计,可以分成 3 步:首先设计局

35、部 ER 模型,然后把各个局部 ER 模型综合成一个全局的模型,最后对全局 ER 模型进行( )。(分数:2.00)A.简化B.结构化C.最小化D.优化 解析:解析 本题考核实体联系模型。在概念设计中按照模块的划分画出每个模块的 ER 图,然后把这些图合成一张 ER 图作为全局模型,最后应该对全局 ER 图进行优化,看看是否有重复和不合理的地方。不能只是进行简单的合并。14.以下内容属于存储在计算机内有结构的数据集合的是( )。(分数:2.00)A.数据库系统B.数据库 C.数据库管理系统D.数据结构解析:解析 本题考查考生对几个概念的理解。其中数据库系统是指数据库和数据库管理系统软件的合称。

36、数据库管理系统是一个帮助用户创建和管理数据库的应用程序的集合。数据结构描述数据的类型、内容、性质以及数据间的联系。数据库是指存储在计算机内有结构的数据集合。15.假定 MyClass 为一个类,则该类的拷贝构造函数的声明语句为 ( )。(分数:2.00)A.MyClassB.MyClass (MyClass ;C.MyClass(MyClass &; D.MyClass (MyClass *;解析:解析 声明拷贝构造函数的格式为: 类名:拷贝构造函数(const类名 class Sample private: int n; public: Sample (int i n=i; void set

37、value(int i) n=i; void display() cout“n=“nend1; ; int main ( ) const Sample a(lO); a. setvalue (5); a.display(); return 0; (分数:2.00)A.1B.2 C.3D.4解析:解析 本题考查常对象的掌握。本程序中有两个错误: 第 1 处错误是“asetvalue(5);”语句,由于对象 a 为常对象,所以对象 a 的私有数据成员 n 不能被更新。 第 2 处错误是语句“a.display();”。由于对象 a 为常对象,所以通过对象 a 只能调用它的成员函数,而成员函数dis

38、play()不是常成员函数。17.以下函数实现的功能是 ( )。 void fun(char *s) char *p,*q, temp; p=s; q=s+strlen (s) -1; while (pq) temp=*p; *p=*q; *p=temp; p+; q-; (分数:2.00)A.将一个字符串首尾颠倒 B.计算字符串的长度C.统计字符串中的空格个数D.将字符串中的小写字母变成大写字母解析:解析 在该函数中,循环开始时,指针 p 指向字符串的第 1 个字符,指针 q 指向字符串的最后一个字符,首先交换这两个字符:然后,指针 p 前进一个字符位置 (指向下一个字符),指针 q 后退一

39、个字符位置(指向前一个字符):经过若干次循环,条件 pq 将为假(即指针 p 和指针 q 相遇),循环结束。从而实现了将一个字符串首尾颠倒的功能。18.设有语句: char str1=“string“,str28,*str3,*str4=“string“; 则下列对库函数 strcpy()调用不正确的是( )。(分数:2.00)A.strcpy(str1,“Hell01“);B.strcpy(str2,“Hell02“);C.strcpy(str3,“Hell03“); D.strcpy(str4,“Hell04“);解析:解析 本题考核库函数 strcpy()的正确调用。函数 strcpy(

40、)的函数原型为: char*strcpy(char*strDest,constchar*strSrC) ; 其功能是复制 strSrc 所有字符到 strDest,并返回strDest。 根据函数 strcpy()的原型可知,选项 A、B 和 D 的调用都是正确的。在选项 C 中,由于指针*str3 没有初始化其字符长度,容易引起访问越界,故是不正确的。19.算法的空间复杂度是指( )。(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间 解析:解析 本题考查算法的空间复杂度,是重点之一。算法的空间复杂度一般是指这个算法执行时

41、所需要的内存空间,其中包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间,其中额外空间还包括算法程序执行过程的工作单元以及某种数据结构所需要的附加存储空间。20.有以下程序: #include iostream using namespace std; int main () int n; cinn; if (n+10) coutnend1; else coutn-end1; return 0; 若执行该程序时从键盘上输入 9,则输出结果是( )。(分数:2.00)A.11B.10 C.9D.8解析:解析 程序的功能是从键盘输入一个整数,然后执行 if 语句

42、的条件表达式“n+10”,表达式“n+10”等价于“n10;n+;”这两条语句。所以输出结果 n 的值为 10。21.有以下程序: #include iostream using namespace std; class sample private: int n; public: sample() sample (int m) n=m; sample add(sample sl,sample s2) this-n=sl.n+s2.n; return (*this); void disp() cout“n=“nend1; ; int main ( ) sample sl(10) ,s2 (5)

43、,s3; s3.add(s1,s2); s3.disp(); return 0; 程序运行后,输出的结果是( )。(分数:2.00)A.n=10B.n=5C.n=20D.n=15 解析:解析 本题考核 this 指针的使用。类中成员函数 add 中的 this 指针指向该成员函数被调用的对象。在主函数 main()中调 s3add(s1,s2),即对象 s3 的私有变量 n 的值为对象 s1 和 s2 私有变量的和,所以程序最后输出 15,即选项 D。22.下面几种调试方法中,不适合调试大规模程序的是( )。(分数:2.00)A.强行排错法B.回溯法 C.原因排除法D.静态调试解析:解析 本题

44、考查对几种调试方法的掌握,其中强行排错法是最常用也是最低效的,主要思想是通过“计算机找错”,适合调试大规模程序。 回溯法是从出现错误征兆处开始,人工沿控制流程往回追踪,直至发现出错的根源。这是在小程序中常用的一种有效的调试方法。程序变大后,可能的回溯路线显著增加,以致人工进行完全回溯可望而不可及。原因排除法是靠演绎、归纳以及二分法来实现的适合调试大规模程序。静态调试是一种调试手段,主要是指通过人的思维来分析源程序代码和排错。23.已知枚举类型定义语句为: enum Token NAME,NUMBER,PLUS=5,MINUS,PRINT=10; 则下列说法中,错误的是( )。(分数:2.00)

45、A.枚举常量 NAME 的值为 1 B.枚举常量 NUMBER 的值为 1C.枚举常量 MINUS 的值为 6D.枚举常量 PRINT 的值为 10解析:解析 枚举类型定义了一些整型符号常量的集合,使用枚举类型时应该注意以下几点: 枚举类型的第一个常量默认值是 0。 枚举类型常量的值允许彼此相同。 虽然枚举类型常量是整数类型,但是不允许使用整数直接赋值给枚举类型变量,也不允许与整数进行运算,只可以与整数进行比较。 由此可知,枚举常量 NAME 的值应为 0。所以选项 A 是错误的。24.为使程序的输出结果为: Base: fun 那么应在下列程序画线处填入的正确语句是( )。 #include

46、 iostream using namespace std; class Base public: void fun () cout“Base: :fun“end1; ; class Derived : public Base public: void fun ( ) cout“Derived: :fun“end1; ; int main ( ) Base a,*pb; Derived b; _; pb-fun(); /调用基类的成员函数 fun() return 0 ; (分数:2.00)A.pb= class Base int x; protected: int y; public: int z; void setx(int i) x=i; int getx ( ) return x; ; class Inherit : private Base private: int m; public: int p; void setvalue(int a,int b,int c, int d) setx(a) ;

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