【计算机类职业资格】二级C++笔试-360及答案解析.doc
《【计算机类职业资格】二级C++笔试-360及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-360及答案解析.doc(21页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-360 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.软件工程的出现是由于(分数:2.00)A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展2.下列描述中,抽象类的特性是(分数:2.00)A.可以说明虚函数B.可以定义友元函数C.可以进行构造函数重载D.不能说明其对象3.下列定义中 p 指向的地址可更改,但*p 不能够更改的是(分数:2.00)A.const int* p;B.int* const p;C.const int*const p;D.int*p;4.下面有关 for 循环的正确描述
2、是(分数:2.00)A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在 for 循环中,不能用 break 语句跳出循环体D.for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来5.下面程序的结果是#includeiostreamhclass Aint a;public:A():a(1)void showa()couta;class Bint a;public:B():a(2)void showa()couta;class C:public A,public Bint a;public:C():a(3) voidshowa()co
3、uta;voidmain()C c;cshowa();(分数:2.00)A.1B.2C.3D.程序有错误6.this 指针是 C+语言实现什么的一种机制?(分数:2.00)A.抽象B.封装C.继承D.重载7.在数据流图(DFD)中,带有名字的箭头表示(分数:2.00)A.模块之间的调用关系B.程序的组成成分C.控制程序的执行顺序D.数据的流向8.有以下程序#includeiostreamhvoid fun(int a,int b,int c)a=456,b=567,c=678;void main()int x=10,y=20,z=30;fun(x,y,2);cout X , y , z end
4、l;输出结果是(分数:2.00)A.30,20,10B.10,20,30C.456,567,678D.678,567,4569.执行语句 for(i=1;i+4;);,后变量 i 的值是(分数:2.00)A.3B.4C.5D.不定10.若有如下语句#includeiostreamhvoid main()int x=3:doX=X-2;coutX;while(!(-x);则上面程序段(分数:2.00)A.输出的是 1B.输出的是 1 和-2C.输出的是 3 和 0D.是死循环11.下列数据模型中,具有坚实理论基础的是(分数:2.00)A.层次模型B.网状模型C.关系模型D.以上 3 个都是12.
5、下面的语句中错误的是(分数:2.00)A.int a=5;int x a;B.const int a=5;int x a;C.int n=5;int*p=new inta;D.const int n = 5;int *p = new inta;13.判断 char 型变量 c 是否为小写字母的正确表达式是(分数:2.00)A.a=c=zB.(c=A)void show()cout“x=“ x“ “ “y=“ yendl;void show()constcout“x=“y=“yendl;privated:int x; int y;void main()Myclassmy1(3,4);const
6、my2(7,8);mylshow();my2show();(分数:2.00)A.x=4,y=3;x=7,y=8B.x=3,y=4;X=7,y=8C.x=7,y=8;x=4,y=3D.x=8,y=7;x=7,y=828.关于 C+语言与 C 语言关系描述中错误的是(分数:2.00)A.C+语言是 C 语言的超集B.C+语言对 C 浯言进行了扩充C.C+语言包含 C 语言的全部语法特征D.C+语言与 C 语言都是面向对象的程序设计语言29.以下程序中调用 cin 函数给变量 a 输人数值的方法是错误的,其错误原因是#includeiostreamhvoid main()int*p,*q,a,b;p
7、= B.int* const p;C.const int*const p;D.int*p;解析:解析 const int*p;是只能改变指针地址,int*const p;是只能改变*p 的内容,const int* const P;是指针的地址和*p 的内容都不能改变,int * p;是两者都能改变。4.下面有关 for 循环的正确描述是(分数:2.00)A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在 for 循环中,不能用 break 语句跳出循环体D.for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 解析:解析 选项
8、A)for 循环可以用于循环次数不确定的情况;选项 B)for 循环是先判断表达式,后执行循环体语句;选项 C)在 for 循环中,可以用 break 语句跳出循环体,从而接着执行循环体后面的语句。5.下面程序的结果是#includeiostreamhclass Aint a;public:A():a(1)void showa()couta;class Bint a;public:B():a(2)void showa()couta;class C:public A,public Bint a;public:C():a(3) voidshowa()couta;voidmain()C c;csho
9、wa();(分数:2.00)A.1B.2C.3 D.程序有错误解析:解析 类 A,类 B,中都有 showa()函数,类 C 继承后再次重写 showa()函数就解决了继承的二义性,这时 cshowa()函数显示的就是类 C 中的 showa()的值。6.this 指针是 C+语言实现什么的一种机制?(分数:2.00)A.抽象B.封装 C.继承D.重载解析:解析 this 指针是 C+语言实现封装的一种机制,它将对象和该对象调用的成员函数连接在一起,在外部看来,每一个对象都拥有自己的函数成员。7.在数据流图(DFD)中,带有名字的箭头表示(分数:2.00)A.模块之间的调用关系B.程序的组成成
10、分C.控制程序的执行顺序D.数据的流向 解析:解析 数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加下流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。8.有以下程序#includeiostreamhvoid fun(int a,int b,int c)a=456,b=567,c=678;void main()int x=10,y=20,z=30;fun(x,y,2);cout X , y , z endl;输出结果是(分数:2.00)A.30,20,10B.10,20,30 C.456,5
11、67,678D.678,567,456解析:解析 本题:考查函数中变量的作用范围,在主函数中给变量 x,y,z 赋值,然后将其作为实参传递给了函数 fun(),虽然在函数 fun()中改变了这 3 个变量的值,但只是同名的局部变量,不影响函数中变量的值,所以在凋用函数 fun()结束后,主函数 3 个变量的值未改变。9.执行语句 for(i=1;i+4;);,后变量 i 的值是(分数:2.00)A.3B.4C.5 D.不定解析:解析 for 语句中的表达式可以部分或全部省略,但两个“;”不能省略,若 3 个表达式均省略,会因为缺少条件判断,导致循环无限执行,而形成死循环。本题中当 i 的值为
12、5 的时候,循环终止。10.若有如下语句#includeiostreamhvoid main()int x=3:doX=X-2;coutX;while(!(-x);则上面程序段(分数:2.00)A.输出的是 1B.输出的是 1 和-2 C.输出的是 3 和 0D.是死循环解析:解析 dowhile 语句的一般格式为 do 循环体语句 while(表达式);,先执行循环体语句一次,再判断表达式的值,若为真则继续执行循环,否则终止循环。本题中,先执行 x=x-2,即为 l。判断表达式的值,!(-x)为真,x=0,继续循环。再次执行循环体语句后,x=-2,此时表达式的值为 0,结束循环。11.下列数
13、据模型中,具有坚实理论基础的是(分数:2.00)A.层次模型B.网状模型C.关系模型 D.以上 3 个都是解析:解析 关系模型较之格式化模型(网状模型和层次模型)有以下方面的优点,即数据结构比较简单、具有很高的数据独立性、可以盲接处理多对多的联系,以及有坚实的理论基础。12.下面的语句中错误的是(分数:2.00)A.int a=5;int x a; B.const int a=5;int x a;C.int n=5;int*p=new inta;D.const int n = 5;int *p = new inta;解析:解析 在 C+中定义数组时,数组的范围参数在静态定义时必须是一个常数,而
14、在动态分配内存定义时可以是常数,也可以是一个赋了值得参数。故选项 A)是错误的定义方法。13.判断 char 型变量 c 是否为小写字母的正确表达式是(分数:2.00)A.a=c=zB.(c=A)t=x;x=y;y=t如果在 main 函数中用 swap(a,b),会有什么结果呢?在函数调用开始时,a 的值传送给 x,b 的值传递给 y。执行完 swap()函数后,x 和 y 的值是互换了,但 main()函数中的 a 和 b 并未互换。也就是说由于“单向传递”的“值传递”方式,形参值的改变无法传递给实参。为了使在函数中改变了的变量值能被 main()函数所闻,不能采取上述办法,而应该用指针变
15、量做函数参数。布函数执行过程中使指针变量所指向的变量值发生变化,函数调用结束后,这些变量值的变化被保留下来,这样就实现了调用函数改变变量的值,在主凋函数中使用这些改变了的值的目的。swap(int*p1,int*p2) int p;p= *p1;*p1 =*P2;*p2=p;注意交换*P1 和*p2 的值是如何实现的,如果写成下面这样就有问题了!swap(int*P1,int*p2) int*P;*p=*P1;/*此语句有问题*/*p1=*p2;*p2=*p:*p1 就是 a,是整型变量。而*p 是指针变量 p 所指向的变量,但 p 中并无确切地址,用*p 可能会造成破坏系统的正常工作状态。应
16、该将*p1 的值赋给一个整型变量,用整型变量作为过渡变量实现*P1 和*p2 的交换。15.线性表 L=(a1,a2,a3,ai,an),下列说法正确的是(分数:2.00)A.每个元素都有一个直接前件和直接后件B.线性表中至少要有一个元素C.表中诸元素的排列顺序必须是由小到大或由大到小D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件 解析:解析 线性表可以为主表;第一个元素没有直接前件,最后一个元素没有直接后件;线性表的定义中,元素的排列并没有规定大小顺序。16.假设线性表的长度为 n,则在最坏情况下,冒泡排序需要的比较次数为(分数:2.00)A.log2nB
17、.n2C.O(n1.5)D.n(n1)/2 解析:解析 假设线性表的长度为 n,则在最坏情况下,冒泡排序要经过 n/2 遍的从前往后的扫描和 n/2 遍的从后往前的扫描,需要的比较次数为 n(n- 1)/2。17.有如下程序#includeiostreamhint func(int a,int b)return(a+b);void main()int x=2,y=5,z=8,r;r=func (func (x,y),z);coutr;该程序的输出的结果是(分数:2.00)A.12B.13C.14D.15 解析:解析 语句 r=time(func(x,y),z);中, fun(x,y)是一次凋用
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 360 答案 解析 DOC
