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

上传人:explodesoak291 文档编号:1324548 上传时间:2019-10-17 格式:DOC 页数:20 大小:69.50KB
下载 相关 举报
【计算机类职业资格】二级C++笔试-309及答案解析.doc_第1页
第1页 / 共20页
【计算机类职业资格】二级C++笔试-309及答案解析.doc_第2页
第2页 / 共20页
【计算机类职业资格】二级C++笔试-309及答案解析.doc_第3页
第3页 / 共20页
【计算机类职业资格】二级C++笔试-309及答案解析.doc_第4页
第4页 / 共20页
【计算机类职业资格】二级C++笔试-309及答案解析.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、二级 C+笔试-309 及答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列叙述中正确的是( )。(分数:2.00)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程牛需要应用工程化原则D.软件工程只是解决软件开发中的技术问题2.下列叙述中错误的是( )。(分数:2.00)A.主函数 main 也可以带形参B.函数中通过 return 返回函数值C.调用函数必须在一条独立的语句中完成D.一个函数中可以有多条 return 语句3.下面程序的输出结果是( )。#include

2、iostreamusing namespace std;void main()int i=1;while(i=8)if(+i3!=2)continue;else couti;(分数:2.00)A.369B.258C.36D.254.在软件开发中,下面任务不属于设计阶段的是( )。(分数:2.00)A.数据结构设计B.给出系统模块结构C.定义模块算法D.定义需求并建立系统模型5.cout 是 I/O 流库预定义的( )。(分数:2.00)A.常量B.类C.对象D.成员函数6.要把多个目标程序组成可执行文件,需要使用( )。(分数:2.00)A.编辑程序B.链接程序C.调试程序D.编译程序7.下列

3、程序段的执行结果为( )。#includeiostreamusing namespace std;class exampleint n;public:example(int i)n=i;void add()s+=n;static int s;void pr()coutsendl;int example:s=0;int fuc(char *x);int main()example x(2),y(3),z(4);x. add();y. add();zpr();return 0;(分数:2.00)A.2B.3C.5D.68.C+中,对于结构中定义的成员,其默认的访问权限为( )。(分数:2.00)A

4、.protectedB.publicC.staticD.private9.在公有派生的情况下,派生类中定义的成员函数只能访问原基类的( )。(分数:2.00)A.公有成员和保护成员B.公有成员和私有成员C.私有成员和保护成员D.公有成员、私有成员和保护成员10.下列关于 C+运算符结合性的说法,正确的是( )。(分数:2.00)A.赋值运算符是左结合性的B.复合运算符是左结合性的C.单目运算符是左结合性的D.双目算术运算符是左结合性的11.下面程序的输出结果是( )。#includeiostreamusing namespace std;int main()int a=2,b= -1,c=2;

5、if(ab)if(b0)c=0;else c+=1;coutcendl;return 0;(分数:2.00)A.0B.1C.2D.312.下面程序输出的结果是( )。#includeiostreamusing namespace std;int fuc (char *x);int main()coutfuc(“hello“)endl;return 0;int fuc(char *x)char *y=x;while(*y! =/0)y+;return(y-x);(分数:2.00)A.5B.6C.0D.语法错误,不能输出结果13.设有两个串 p 和 q,求 q 在 p 中首次出现位置的运算称作(

6、)。(分数:2.00)A.连接B.模式匹配C.求子串D.求串长14.C+语言中 while 循环和 dowhile 循环的主要区别是( )。(分数:2.00)A.dowhile 的循环体至少五条件执行一次B.while 的循环控制条件比 dowhile 的循环控制条件严格C.dowhile 允许从外部转到循环体内D.dowhile 的循环体不能是复合语句15.设一棵完全二叉树共有 699 个节点,则在该二叉树中的叶子节点数为( )。(分数:2.00)A.349B.350C.255D.35116.在 C+中用来实现运行时多态性的是( )。(分数:2.00)A.重载函数B.析构函数C.构造函数D.

7、虚函数17.下列对于软件测试的描述,正确的是( )。(分数:2.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误D.软件测试的目的是使程序符合结构化原则18.下列关于抽象类和纯虚函数的说法错误的是( )。(分数:2.00)A.抽象类只能作为基类使用,而纯虚函数的实现由派生类给出B.抽象类是指具有纯虚函数的类C.纯虚函数是一种特殊的虚函数,它允许没有具体的实现D.一个基类的说明中有纯虚函数,则该基类的派生类一定不再是抽象类19.以下程序输出的结果是( )。#includeiostreamusing namespace

8、std;int main()int *x,*y,z=10;y=B.cout“Hello!“endlC.;D.int i=1;int f=i;coutfendl;30.已知:int n=10; 在下列定义引用的语句中,正确的是( )。(分数:2.00)A.int r=5;coutiendl;return 0;(分数:2.00)填空项 1:_45.函数 f()的功能是将形参 x 的值转换为二进制数,所得二进制数的每一位数放在一维数组 y 中返回。二进制的最低位放在下标为 0 的元素中,请将程序补充完整。void f(int x,int y)int m=0,n;don=x 【10】 ;ym+ =n;

9、x/=2;while(x);(分数:2.00)填空项 1:_46.在 C+中,类的成员有 3 种访问权限,它们分别是公有、 【11】 和私有。(分数:2.00)填空项 1:_47.下列程序在构造函数和析构函数中申请和释放类的私有成员,请完成该程序。class Myclasint *x;public:MyClas(int n);MyClas();MyClas:MyClas(intn)【12】 ;MyClas:MyClas()【13】 ;(分数:2.00)填空项 1:_48.在 C+中,设置虚基类的目的是 【14】 。(分数:2.00)填空项 1:_49.以下程序执行后输出的结果是 【15】 。#

10、includeiostream#includefstreamusing namespace std;int main()ofstream ofile(“D:/temp.txt“);if(!ofile)cout“temp.txt cannot open“endl;return 0;ofile“This is a book“ “ “ 54321endl;ofile.close();ifstream ifile(“D:/temp.txt“);if(!ifile)cout“temp.txt cannot open“ endl;return 0;charstr40;ifile str;ifile.clo

11、se();coutStrendl;return 1;(分数:2.00)填空项 1:_二级 C+笔试-309 答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列叙述中正确的是( )。(分数:2.00)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程牛需要应用工程化原则 D.软件工程只是解决软件开发中的技术问题解析:解析 软件工程是计算机软件开发和维护的工程学科,它采用工程的概念原理、技术和方法来开发和维护软件,它把经过实践考验而证明正确的管理技术和当前能够得到的最好技术结合

12、起来。2.下列叙述中错误的是( )。(分数:2.00)A.主函数 main 也可以带形参B.函数中通过 return 返回函数值C.调用函数必须在一条独立的语句中完成 D.一个函数中可以有多条 return 语句解析:解析 当函数有返回值时,调用函数可以作为一个表达式的子表达式,而不是作为一条独立的语句存在。3.下面程序的输出结果是( )。#includeiostreamusing namespace std;void main()int i=1;while(i=8)if(+i3!=2)continue;else couti;(分数:2.00)A.369B.258 C.36D.25解析:解析

13、本题程序执行的流程是:首先对 i 自增,然后判断 i 被 3 除的余数是否是 2;如果是,就输出。所以程序输出的结果是 258。4.在软件开发中,下面任务不属于设计阶段的是( )。(分数:2.00)A.数据结构设计B.给出系统模块结构C.定义模块算法D.定义需求并建立系统模型 解析:解析 选项 D 是需求分析阶段的任务。5.cout 是 I/O 流库预定义的( )。(分数:2.00)A.常量B.类C.对象 D.成员函数解析:解析 C+中包含了 4 个预定义的流对象:cout、cin、cerr、clog。6.要把多个目标程序组成可执行文件,需要使用( )。(分数:2.00)A.编辑程序B.链接程

14、序 C.调试程序D.编译程序解析:解析 C+是以编译方式实现的高级语言。C+程序的实现必须要使用某种 C+语言的编译器进行编译。编译器的功能是将程序的源代码(.cpp)转换为机器代码的形式,称为目标代码(.obj)。然后,再使用目标代码进行链接,生成可执行文件(.exe),等待下一步执行的过程。7.下列程序段的执行结果为( )。#includeiostreamusing namespace std;class exampleint n;public:example(int i)n=i;void add()s+=n;static int s;void pr()coutsendl;int exam

15、ple:s=0;int fuc(char *x);int main()example x(2),y(3),z(4);x. add();y. add();zpr();return 0;(分数:2.00)A.2B.3C.5 D.6解析:解析 s 为静态数据成员,其初始值为 0。a,b,c 为定义的 3 个对象,其各自的私有成员 n 为2,3,4。执行 x.add();语句后,s=2;再执行 y.add();后,s=5;最后执行输出语句 z.pr(),即输出s 的值 5。8.C+中,对于结构中定义的成员,其默认的访问权限为( )。(分数:2.00)A.protectedB.public C.stat

16、icD.private解析:解析 C+中,结构与类的不同之处在于结构中的成员默认是公有的,结构的继承默认也是公有的;而类的继承默认是私有的,类的成员默认也是私有的。9.在公有派生的情况下,派生类中定义的成员函数只能访问原基类的( )。(分数:2.00)A.公有成员和保护成员 B.公有成员和私有成员C.私有成员和保护成员D.公有成员、私有成员和保护成员解析:解析 无论在什么派生情况下,派生类总是能够访问到基类公有和保护成员,而无法访问到基类的私有成员。10.下列关于 C+运算符结合性的说法,正确的是( )。(分数:2.00)A.赋值运算符是左结合性的B.复合运算符是左结合性的C.单目运算符是左结

17、合性的D.双目算术运算符是左结合性的 解析:解析 运算符的结合方式有两种:左结合和右结合。左结合表示运算符优先与其左边的标识符进行运算,如加法;右结合表示运算符优先与其右边的标识符结合,如单目算术运算符+和-。赋值运算符、复合运算符和单目运算符都是右结合的,双目算术运算符是左结合的。11.下面程序的输出结果是( )。#includeiostreamusing namespace std;int main()int a=2,b= -1,c=2;if(ab)if(b0)c=0;else c+=1;coutcendl;return 0;(分数:2.00)A.0B.1C.2 D.3解析:解析 本题考查

18、订语句中 if 与 else 的搭配问题。C+程序在编译时并不看缩进格式,而只是关心语法结构。根据规定:else 关键字总是与它前面最近的未配对的且可见的那个 if 关键字配对。因此上述程序中的 else 应该与第 2 个订关键字配对,所以程序最后 c 的值并没有改变。12.下面程序输出的结果是( )。#includeiostreamusing namespace std;int fuc (char *x);int main()coutfuc(“hello“)endl;return 0;int fuc(char *x)char *y=x;while(*y! =/0)y+;return(y-x)

19、;(分数:2.00)A.5 B.6C.0D.语法错误,不能输出结果解析:解析 函数 fuc()的功能是计算字符串 x 的长度,因此程序的输出是 5。13.设有两个串 p 和 q,求 q 在 p 中首次出现位置的运算称作( )。(分数:2.00)A.连接B.模式匹配 C.求子串D.求串长解析:解析 设有两个串 p 和 q,求 q 在 p 中首次出现位置的运算称为模式匹配。14.C+语言中 while 循环和 dowhile 循环的主要区别是( )。(分数:2.00)A.dowhile 的循环体至少五条件执行一次 B.while 的循环控制条件比 dowhile 的循环控制条件严格C.dowhil

20、e 允许从外部转到循环体内D.dowhile 的循环体不能是复合语句解析:解析 dowhile 语句与 while 语句不同的是,dowhile 循环中的语句至少会执行一次,而 while 语句中当条件在第一次循环就不满足时,语句一次也不会执行。15.设一棵完全二叉树共有 699 个节点,则在该二叉树中的叶子节点数为( )。(分数:2.00)A.349B.350 C.255D.351解析:解析 所谓完全二叉树是指除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。具有 n 个结点的完全二叉树,其父结点数为 int(n/2),而叶子结点数等于总结点数减去父结点数。本题

21、n=699,故父结点数等于 int(699/2)=349,叶子结点数等于 699-349=350。16.在 C+中用来实现运行时多态性的是( )。(分数:2.00)A.重载函数B.析构函数C.构造函数D.虚函数 解析:解析 C+中的多态性分为两类:编译时的多态性和运行时的多态性。编译时的多态性通过函数重载和模板体现的,而运行时的多态性是通过虚函数体现的。17.下列对于软件测试的描述,正确的是( )。(分数:2.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误 D.软件测试的目的是使程序符合结构化原则解析:解析 软件测

22、试是为了发现错误而执行过程的过程,软件测试是以查找程序中的错误为中心,而不是为了演示软件的正确功能。18.下列关于抽象类和纯虚函数的说法错误的是( )。(分数:2.00)A.抽象类只能作为基类使用,而纯虚函数的实现由派生类给出B.抽象类是指具有纯虚函数的类C.纯虚函数是一种特殊的虚函数,它允许没有具体的实现D.一个基类的说明中有纯虚函数,则该基类的派生类一定不再是抽象类 解析:解析 一个抽象类的派生类在重新定义一个纯虚函数时,可以继续将之声明为纯虚函数,此时该派生类仍然为抽象类。19.以下程序输出的结果是( )。#includeiostreamusing namespace std;int m

23、ain()int *x,*y,z=10;y=B.cout“Hello!“endl C.;D.int i=1;int f=i;coutfendl;解析:解析 选项 A 和选项 D 是复合语句,C 是空语句,而选项 B 中没有以“;”结尾,这不是 C+语句。30.已知:int n=10; 在下列定义引用的语句中,正确的是( )。(分数:2.00)A.int r=5;coutiendl;return 0;(分数:2.00)填空项 1:_ (正确答案:5)解析:解析 对引用的操作实际上就是对其所代表的数据对象的操作。在本题中,引用 r 被变量 i 初始化,r 被赋值为 7 即等于 i 被赋值。因此输出

24、结果为 5。45.函数 f()的功能是将形参 x 的值转换为二进制数,所得二进制数的每一位数放在一维数组 y 中返回。二进制的最低位放在下标为 0 的元素中,请将程序补充完整。void f(int x,int y)int m=0,n;don=x 【10】 ;ym+ =n;x/=2;while(x);(分数:2.00)填空项 1:_ (正确答案:2)解析:解析 函数 f()的功能是将形参 x 的值转换为二进制数,所以程序的空白处应填入 2。46.在 C+中,类的成员有 3 种访问权限,它们分别是公有、 【11】 和私有。(分数:2.00)填空项 1:_ (正确答案:保护)解析:解析 类成员有 3

25、 类访问权限:公有(public)、私有(private)和保护(protected)。47.下列程序在构造函数和析构函数中申请和释放类的私有成员,请完成该程序。class Myclasint *x;public:MyClas(int n);MyClas();MyClas:MyClas(intn)【12】 ;MyClas:MyClas()【13】 ;(分数:2.00)填空项 1:_ (正确答案:x=new int(n),delete x)解析:解析 在类的构造函数中,是申请内存空间,并使指针 x 指向构造函数的形参 n,所以构造函数的函数体应为:x=newint(n);。在析构函数中,是释放类

26、的私有成员,即指针变量 x,所以析构函数的函数体应该为 deletex;。48.在 C+中,设置虚基类的目的是 【14】 。(分数:2.00)填空项 1:_ (正确答案:解决二义性问题)解析:解析 C+中可以将共同基类设置为虚基类,这时从不同的路径继承过来的该类成员在内存中只有一个复制,这样就可解决同名成员的二义性。49.以下程序执行后输出的结果是 【15】 。#includeiostream#includefstreamusing namespace std;int main()ofstream ofile(“D:/temp.txt“);if(!ofile)cout“temp.txt can

27、not open“endl;return 0;ofile“This is a book“ “ “ 54321endl;ofile.close();ifstream ifile(“D:/temp.txt“);if(!ifile)cout“temp.txt cannot open“ endl;return 0;charstr40;ifile str;ifile.close();coutStrendl;return 1;(分数:2.00)填空项 1:_ (正确答案:This)解析:解析 程序中利用对象 ofile 在文件 temp.txt 中写入“This is a book 54321”。然后利用对象 ifile 打开文件,将其中的数据输入到变量 str 中,由于读时遇到空格就终止,所以 str 中存放的字符串为“This”。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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