【计算机类职业资格】二级C++笔试-390及答案解析.doc
《【计算机类职业资格】二级C++笔试-390及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-390及答案解析.doc(21页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-390 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.假设线性表的长度为 n,则在最坏情况下,冒泡排序需要的比较次数为(分数:2.00)A.log2nB.n2C.O(n1.5)D.n(n-1)/22.执行语句 for(i =1+4;);,后变量 i 的值是(分数:2.00)A.3B.4C.5D.不定3.线性表 L=(a1,a2,a3,ai,an),下列说法正确的是(分数:2.00)A.每个元素都有一个直接前件和直接后件B.线性表中至少要有一个元素C.表中诸元素的排列顺序必须是由小到大或由大到小D.除第一个元素和最后一个元素
2、外,其余每个元素都有一个且只有一个直接前件和直接后件4.若有如下语句#includeiostream.hvoid main( ) int x=3;dox=x-2;coutx;while(!(-x);则上面程序段(分数:2.00)A.输出的是 1B.输出的是 1 和-2C.输出的是 3 和 0D.是死循环5.判断 char 型变量 c 是否为小写字母的正确表达式是(分数:2.00)A.a=c=2B.(c=) y=j;void show( )cout“x=“x“ “y=“yendl;void show( )constcout“x=“ “y=“yendl;privated:int x; int y;
3、void main( )Myclass my l (3,4);const my2(7,8);my lshow( );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=825.在 C+语言中,不合法的实型数据的是(分数:2.00)A.0.123B.123e3C.2.1e3.5D.123.026.有如下程序#includeiostream.hint func(int a,int b) return(a+b) ;void main( )int x=2,y=5,z=8, r;r=
4、func ( func(x,y),z);cout r; 该程序的输出的结果是(分数:2.00)A.12B.13C.14D.1527.下列语句的输出结果coutstrlen(“/t/“/065/xff/n“);(分数:2.00)A.5B.14C.8D.输出项不合法,无正常输出28.关系表中的每一横行称为一个(分数:2.00)A.元组B.字段C.属性D.码29.分布式数据库系统不具有的特点是(分数:2.00)A.数据分布性和逻辑整体性B.位置透明性和复制透明性C.分布性D.数据冗余30.下列定义中 p 指向的地址可更改,但*p 不能够更改的是(分数:2.00)A.const int * p;B.i
5、nt * const p;C.const int * const p;D.int *p;31.下列数据模型中,具有坚实理论基础的是(分数:2.00)A.层次模型B.网状模型C.关系模型D.以上 3 个都是32.软件工程的出现是由于(分数:2.00)A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展,33.下列字符串中可以用作 C+语言标识符的是(分数:2.00)A._1234B.foo barC.virtualD.34var34.有以下程序#includeiostream.hvoid fun(int a,int b,int c) a=456,b=567,c=678;
6、void main( )int x=10,y=20,z=30;fun(x,y,z);cout x , y , z endl;输出结果是(分数:2.00)A.30,20,10B.10,20,30C.456,567,678D.678,567,45635.软件开发离不开系统环境资源的支持,其中必要的测试数据属于(分数:2.00)A.硬件资源B.通信资源C.支持软件D.辅助资源二、填空题(总题数:13,分数:30.00)36.在算法正确的前提下,评价一个算法的两个标准是 【1】 。(分数:2.00)填空项 1:_37.将代数式 (分数:2.00)填空项 1:_38.软件危机出现于 60 年代末,为了解
7、决软件危机,入们提出了 【3】 的原理来设计软件,这就是软件工程诞生的基础。(分数:2.00)填空项 1:_39. 【4】 是数据库设计的核心。(分数:2.00)填空项 1:_40.在关系模型中,把数据看成一个二维表,每一个二维表称为一个 【5】 。(分数:2.00)填空项 1:_41.一个 C+语言程序的开发步骤通常包括编辑、 【6】 、链接、运行和调试。(分数:2.00)填空项 1:_42.若已知 a=10,b=20,则表达式!ab 的值为 【7】 。(分数:2.00)填空项 1:_43.下面程序的运行结果是 【8】 和 【9】 。#includeiostream.h#define N 1
8、0#define s( x ) x*x#define f( x ) ( x*x ) void main( )int i1,i2;i1=1000/s(N);i2=1000/f(N);cout i 1 “ “ i2;(分数:4.00)填空项 1:_44.友元类的所有成员函数都是另一个类的 【10】 。(分数:2.00)填空项 1:_45. 【11】 是实现 C+语言编译时多态性的机制, 【12】 是实现 C+语言运行时多态性的机制。(分数:4.00)填空项 1:_46.表达式 x.operator+( )还可写成 【13】 。(分数:2.00)填空项 1:_47.以下程序的输出结果是 【14】 。
9、#includeiostream.hvoid main( )int a=0;a+= ( a=8 );cout a;(分数:2.00)填空项 1:_48.若要在 C 盘根目录下作为二进制文件打开文件 test.dat ,则应该用的语句是 【15】 。(分数:2.00)填空项 1:_二级 C+笔试-390 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.假设线性表的长度为 n,则在最坏情况下,冒泡排序需要的比较次数为(分数:2.00)A.log2nB.n2C.O(n1.5)D.n(n-1)/2 解析:解析 假设线性表的长度为 n,则在最坏情况下,
10、冒泡排序要经过 n/2 遍的从前往后的扫描和 n/2 遍的从后往前的扫描,需要的比较次数为 n(n- 1)/2。2.执行语句 for(i =1+4;);,后变量 i 的值是(分数:2.00)A.3B.4C.5 D.不定解析:解析 for 语句中的表达式可以部分或全部省略,但两个“;”不能省略,若 3 个表达式均省略,会因为缺少条件判断,导致循环无限执行,而形成死循环。本题中当 i 的值为 5 的时候,循环终止。3.线性表 L=(a1,a2,a3,ai,an),下列说法正确的是(分数:2.00)A.每个元素都有一个直接前件和直接后件B.线性表中至少要有一个元素C.表中诸元素的排列顺序必须是由小到
11、大或由大到小D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件 解析:解析 线性表可以为空表;第一个元素没有直接前件,最后一个元素没有直接后件;线性表的定义中,元素的排列并没有规定大小顺序。4.若有如下语句#includeiostream.hvoid main( ) int x=3;dox=x-2;coutx;while(!(-x);则上面程序段(分数:2.00)A.输出的是 1B.输出的是 1 和-2 C.输出的是 3 和 0D.是死循环解析:解析 do-while 语句的一般格式为 do 循环体语句 while(表达式);先执行循环体语句一次,再判断表达式的
12、值,若为真则继续执行循环,否则终止循环。本题中,先执行 x=x-2,即为 1。判断表达式的值,!(-x)为真,x=0,继续循环。再次执行循环体语句后,x=-2,此时表达式的值为 0,结束循环。5.判断 char 型变量 c 是否为小写字母的正确表达式是(分数:2.00)A.a=c=2B.(c=) t=x;x=y;y=t;如果在 main 函数中用 swap(a,B,会有什么结果呢?在函数调用开始时,a 的值传送给 x,b 的值传递给 y。执行完 swap()函数后,x 和 y 的值是互换了,但 main()函数中的 a 和 b 并未互换。也就是说由于“单向传递”的“值传递”方式,形参值的改变无
13、法传递给实参。为了使在函数中改变了的变量值能被 main()函数所用,不能采取上述办法,而应该用指针变量做函数参数。在函数执行过程中使指针变量所指向的变量值发生变化,函数调用结束后,这些变量值的变化被保留下来,这样就实现了调用函数改变变量的值,在主调函数中使用这些改变了的值的目的。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,是整型
14、变量。而*p 是指针变量 p 所指向的变量,但 p 中并无确切地址,用*p 可能会造成破坏系统的正常工作状态。应该将*p1 的值赋给一个整型变量,用整型变量作为过渡变量实现*p1 和*p2 的交换。14.对于语句 cout setfill(*) setw(10)1setfill (*) setw (2) 2;的输出结果是(分数:2.00)A.* * * * * * * * *1*2 B.* * * * * * * *12C.* * * * * * *1*2D.12* * * * * * * *解析:解析 C+语言中 setfill 的意思是在空格的地方填上 setfill 函数中的参数字符,s
15、etw 的意思是设置整个输出字符串的字符个数,本题中用*来代替空格。15.在单链表中,增加头结点的目的是(分数:2.00)A.方便运算的实现 B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性表的链式存储实现解析:解析 头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点目的是为了便于运算的实现。16.算法分析的目的是(分数:2.00)A.找出数据结构的合理性B.找出算法中输入和输出之间的关系C.分析算法的易懂性和可靠性D.分析算法的效率以求改进 解析:解析 算法分析是指对一个算法的运行时间和占用空间做
16、定量的分析,一般计算出相应的数量级,常用时间复杂度和空间复杂度表示。分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行效率。17.在 C+语言中,打开一个文件就是将这个文件与一个什么建立关联?(分数:2.00)A.流 B.类C.结构D.对象解析:解析 C+的 I/O 系统是通过一种称为流的机制来实现文件和控制台的 I/O 操作。简单地说,在C+中,输入输出操作是通过流来完成的。而文件流以磁盘文件以及其他可按文件方式进行管理的外部设备为输入输出对象。每个文件流都应当与一个打开的文件相联系;关闭一个文件就是取消这种联系。18.关于 C+语言与 C 语言关系描述中错误的是(分数:2
17、.00)A.C+语言是 C 语言的超集B.C+语言对 C 语言进行了扩充C.C+语言包含 C 语言的全部语法特征D.C+语言与 C 语言都是面向对象的程序设计语言 解析:解析 C 语言是一种面向过程的程序设计语言,而 C+语言是一种面向对象的设计语言,C +语言是 C 语言的超集,它包含了 C 语言的所有语言特性,并进行了扩充。19.函数模板:templateclass TT add(T x,T y)return x+y;下列对 add 函数的调用不正确的是(分数:2.00)A.add (1,2)B.add int (1,2)C.add (1.0,2) D.add(1.0,2.0)解析:解析
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 390 答案 解析 DOC
