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

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

1、二级 C+笔试-53 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列叙述中正确的是(分数:2.00)A.程序设计过程中的主要工作是编制程序B.程序设计的主要目标是编制出运行结果正确的程序C.不良的程序设计风格会增加程序的复杂性D.上述三种说法都不对2.如果算符函数调用格式的表达式:x.operator-(operator+(y,0)中的“-”是作为成员函数重载的,“+”是作为友元函数重载的,那么该表达式还可以表示为:()(分数:2.00)A.x-y+B.x-(+y)C.(x+)-yD.+x-y3.在进行了任何 C+流的操作后,都可以用

2、 C+流的有关成员函数检测流的状态,其中只能用于检测刚进行的操作是否失败函数名是(分数:2.00)A.failB.eofC.badD.good4.下列叙述中正确的是(分数:2.00)A.用 E-R 图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系B.用 E-R 图只能表示实体集之间一对一的联系C.用 E-R 图只能表示实体集之间一对多的联系D.用 E-R 图表示的概念数据模型只能转换为关系数据模型5.以下程序的输出结果是#includeiostreamusing nameSpace std;int main()cout.fill(*);coutwidth(5);couthex100

3、end1;return 0;(分数:2.00)A.*100B.*64C.100*D.64*6.以下函数实现的功能是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.将字符串中的小写字母变成大写字母7.下列叙述中正确的是(分数:2.00)A.软件就是程序清单B.软件就是存放在计算机中的文件C.软件应包括程序清单以及运行结果D.软件包括程序、数据和文档8.在最坏情况下,下列排序方法中

4、时间复杂度最小的是(分数:2.00)A.冒泡排序B.快速排序C.插入排序D.堆排序9.关系表中的每一横行称为一个(分数:2.00)A.元组B.字段C.属性D.码10.下列关于类中成员函数特征的描述中错误的是(分数:2.00)A.类的成员函数一定是内联函数B.类的成员函数可以重载C.成员函数可以设置参数的默认值D.成员函数可以是静态的11.在结构化方法中,软件功能分解属于下列软件开发中的阶段是(分数:2.00)A.概要设计B.需求分析C.详细设计D.编程调试12.有以下程序:#includeiostream#includemathusing namespace std;class pointpr

5、ivate:double x;double y;public:point(double a,double B) x=a;y=b;friend double distance (point a,point B) ;double distance (point a,point B) return sqrt(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);int main()point p1(1,2);point p2(5,2);coutdistance(p1,p2)end1;return 0;程序运行后的输出结果是(分数:2.00)A.1B.5C.4D.613.关于在

6、调用模板函数时实参的使用,下列表述中正确的是(分数:2.00)A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任何情况下都不能省略14.有如下数组声明:int value30;,下标值引用错误的是(分数:2.00)A.value30B.value0C.value10D.value2015.设有语句:char str1=“string“,str28,*str3,*str4=“s

7、tring“;,则下列对库函数 strcpy 调用不正确的是(分数:2.00)A.strcpy(str1,“Hello1“);B.strcpy(str2,“Hello2“);C.strcpy(str3,“Hello3“);D.strcpy(str4,“Hell04“);16.若有以下程序:#includeiostreamusing namespace std;class Basepublic:Base()x=O;int x;Class Derived1:virtual public Basepublic:Derived1()x=10;class Derived2:Virtual public

8、Basepublic:Derived2()x=20;class Derived:public Derived1,protected DeriVed2;int main()Derived obj;coutObj.xend1;return 0;该程序运行后的输出结果是(分数:2.00)A.10B.20C.30D.017.数据结构分为逻辑结构和存储结构,下列数据结构中不属于存储结构的是(分数:2.00)A.线性链表B.二叉链表C.栈与队列D.循环队列18.for(int x=0,y=0;!xC.obj3show1();D.obj2show2();30.有如下程序:#includeiostreamus

9、ing namespace std;class Baseprivate:char c;piblic:Base(char n):c(n)Base()coutC;class DeriVed:public Baseprivate:char c;public:Derived(char n):Base(n+1),c(n)Derived()coutc;int main()Derived obj(x);return 0;执行上面的程序将输出(分数:2.00)A.xyB.yxC.xD.y31.带有虚基类的多层次派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样对虚基类的子对象初始化(分数:2.00

10、A.与虚基类下面的派生类个数有关B.多次C.二次D.一次32.有如下程序:#includeiostreamusing namespace std;class pointint x,y;public:point(int vx,int vy)x=vx;y=vy;point()x=0;y=0;point operator+(point p1)point p;int px=x+p1.x;int py=y+p1.y;return point(px,py);point operator-(point p1)point p;int px=x-p1.x;int py=y-p1.y;return point(

11、px,py);void print()coutx“,“yend1;int main()point p1(10,10),p2(20,20);p1=p1+p2;p1.print();retrun 0;执行后的输出结果是(分数:2.00)A.10,10B.20,20C.10,20D.30,3033.在模块化程序设计中,按功能划分模块的原则是(分数:2.00)A.各模块的功能尽量单一,且各模块之间的联系尽量的少B.各模块的功能尽量单一,且各模块之间的联系尽量紧密C.各模块应包括尽量多的功能D.各模块应包括尽量多的输入输出操作34.设有以下语句,对 a 数组元素的引用中(其中 0=i10)不正确的是in

12、t a10=0,1,2,3,4,5,6,7,8,9,*p=a;(分数:2.00)A.ap-aB.*(元素 b 出栈后,元素 c,d 进栈,栈中有 3 个元素,分别为 a,c,d:元素 d,c 出栈后,元素 e,f 进栈,栈中有 3 个元素,分别为 a,e, f;最后,元素 f,e,a 出栈,栈为空。可以看出,进栈的顺序为 a,b,c,d,e,f,出栈的顺序为 b,d,c,f,e,a,满足题目要求。每次进栈操作后,栈中最多有 3 个元素,所以,为了顺利完成这些操作,栈的容量应至少为 3。本题的正确答案为 A。23.有如下程序#includeiostreamusing nameSpace std;

13、class basepublic:vinual void f1()cout“F1 Base“;virtual void f2()cout“F2Base“;class derive:public basevoid f1()cout“F1Derive“;void f2(int x)cout“F2Derive“;int main()base obj1,*p;derive obj2;p=C.obj3show1(); D.obj2show2();解析:解析 本题考核派生类的使用以及访问权限问题。C+中,通过类的对象只能访问类的公有成员,不能访问类的保护成员和私有成员。A2 是 A1 的公有派生类,A3

14、是 A2 的保护派生类,所以类 A1 的成员函数 show1()在类 A3 中呈现保护属性,不能通过 A3 类的对象访问。30.有如下程序:#includeiostreamusing namespace std;class Baseprivate:char c;piblic:Base(char n):c(n)Base()coutC;class DeriVed:public Baseprivate:char c;public:Derived(char n):Base(n+1),c(n)Derived()coutc;int main()Derived obj(x);return 0;执行上面的程序

15、将输出(分数:2.00)A.xy B.yxC.xD.y解析:解析 在 C+中,由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。在此题的程序中,在主函数 main 结束时,派生类 Derived 对象。obj 将被删除,所以就会调用对象的析构函数。先调用派生类的析构函数,输出 x,然后调用基类的析构函数,输出 y。31.带有虚基类的多层次派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样对虚基类的子对象初始化(分数:2.00)A.与虚基类下面的派生类个数有关B.

16、多次C.二次D.一次 解析:解析 本题考核虚基类以及构造函数。使用虚基类解决二义性问题的关键是在派生类中只产生一个虚基类对象。虚基类子对象由最派生类的构造函数通过调用虚基类的构造函数进行初始化(最派生类的构造函数的成员初始化列表中必须列出对虚基类构造函数的调用,否则,表示使用该虚基类的缺省构造函数)。由于最派生类总是相对,因此,从虚基类直接或间接派生的派生类中的构造函数的成员初始化列表中都要列出对虚基类构造函数的调用。但只有用于建立对象的最派生类的构造函数才调用虚基类的构造函数,此时最派生类的所有基类中列出的对虚基类的构造函数的调用在执行过程中都被忽略,从而保证对虚基类子对象只初始化一次。32

17、有如下程序:#includeiostreamusing namespace std;class pointint x,y;public:point(int vx,int vy)x=vx;y=vy;point()x=0;y=0;point operator+(point p1)point p;int px=x+p1.x;int py=y+p1.y;return point(px,py);point operator-(point p1)point p;int px=x-p1.x;int py=y-p1.y;return point(px,py);void print()coutx“,“yend

18、1;int main()point p1(10,10),p2(20,20);p1=p1+p2;p1.print();retrun 0;执行后的输出结果是(分数:2.00)A.10,10B.20,20C.10,20D.30,30 解析:解析 本题主要考查 C+中运算符重载的机制与实现。运算符重载函数一般分为成员函数形式和友元函数形式,这两种形式都可以访问类中的私有成员。本题中的运算符重载形式为成员函数形式。程序在类 point 中声明了私有数据成员 int x 和 int y,并定义了两种形式的构造函数以完成对对象的初始化;之后,程序对运算符“+”进行了重载,另其输入参数为类 point 的对象

19、输出为操作符“+”右侧该对象的私有数据成员 x 和 y 与操作符“+”左侧同类型对象的私有数据成员 x 和 y 的加和:print()函数则输出对象中数据成员的值。程序 main()函数中,实例化了类 point 的两个对象 p1 和 p2,并完成对对象的初始化。在语句“p1=p1+p2;”中,由于操作符“+”左右两端的操作数为 point 类的对象,复合类point 定义中的操作符“+”的重载函数,因此程序将调用重载后的操作符函数,并返回两 point 对象数据成员的加和值,覆盖对象 p1 的数据成员。因此 print()函数输出对象 p1 的数据成员值应该为:x=10+20=30,y=1

20、0+20=3033.在模块化程序设计中,按功能划分模块的原则是(分数:2.00)A.各模块的功能尽量单一,且各模块之间的联系尽量的少 B.各模块的功能尽量单一,且各模块之间的联系尽量紧密C.各模块应包括尽量多的功能D.各模块应包括尽量多的输入输出操作解析:解析 模块化设计是指把一个大程序按人们能理解的大小规模进行分解。划分模块的基本原则是使每个模块都易于理解。按照人类思维的特点,按功能来划分模块最为自然。在按功能划分模块时,要求各模块的功能尽量单一,各模块之间的联系尽量少。所以,选项 A 正确:选项 B 错误;选项 C 错误。本题的正确答案为 A。34.设有以下语句,对 a 数组元素的引用中(

21、其中 0=i10)不正确的是int a10=0,1,2,3,4,5,6,7,8,9,*p=a;(分数:2.00)A.ap-aB.*(&ai)C.piD.*(*(a+i) 解析:解析 本题考核数组与指针。A 选项中,p 为指针,数组名 a 代表数组的首地址,所以 p-a 就是指针到数组首地址的偏移量。B 选项中,&ai是取数组 a 中第 i 个元素的地址,而对于*(&ai,由指针运算符*的运算规则可知,语句*(&ai就是返回地址&ai空间中存放的值,也即 ai。C) 选项,由于指针 p 已指向数组 a,所以 pi就等于 ai。这是常用的一种数组元素引用方式。D) 选项是以指针方式对数组元素进行引

22、用,由于 a 只是代表数组的首地址,并不是指针,所以表达式*(*(a+i)是错误的,正确的引用应该为:*(*(p+i)。35.算法的时间复杂度是指(分数:2.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法程序中的指令条数D.算法执行过程中所需要的基本运算次数 解析:解析 算法的时间复杂度实际上就是执行算法程序所需要的计算工作量。为了客观地反映算法性能,在度量算法的时间复杂度时,应该与编写算法程序所使用的程序设计语言、执行算法程序时所使用的计算工具以及程序员的水平无关。选项 A 错误,因为同一算法程序在运行速度不同的计算机上运行时,其计算时间是不同的。选项 B 错误。算法所编写的程

23、序长度往往与程序设计语言以及程序员的水平有关,同一个算法,用不同的程序设计语言或者不同的程序员所编写出的程序其长度可能会大不相同。选项 C 错误,因为根据一个算法所编制出的程序中,其指令条数往往与程序设计语言以及程序员的水平有关,不能用算法程序中的指令条数来度量算法的时间复杂度。所以,本题的正确答案为 D。二、填空题(总题数:14,分数:30.00)36.在长度为 n 的线性表中查找一个表中不存在的元素,需要的比较次数为 【1】 。(分数:2.00)填空项 1:_ (正确答案:n)解析:解析 在长度为 n 的线性表中查找一个表中不存在的元素,需要的比较次数为 n。37.在面向对象的程序设计中,用来请求对象执行某一处理或回答某些信息的要求称为 【2】 。(分数:2.00)填空项 1:_ (正确答案:消息)解析:解析 消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。38.源程序文档化要求程序应加注释。注释一般分为序言性注释和 【3】 (分数:2.00)

展开阅读全文
相关资源
猜你喜欢
  • UNI 6980-1971 Measuring instruments Go and not go calliper gauges singol jaw for nominal sizes above 3 to 100 mm 《测量工具 标称尺寸超过3-100mm的光滑变速单凹口轴》.pdf UNI 6980-1971 Measuring instruments Go and not go calliper gauges singol jaw for nominal sizes above 3 to 100 mm 《测量工具 标称尺寸超过3-100mm的光滑变速单凹口轴》.pdf
  • UNI 6981-1971 Measuring instruments Go and not go calliper gauges double jaw for nominal sizes above 3 to 100 mm 《测量工具 标称尺寸超过3-100mm的光滑极限双凹口轴》.pdf UNI 6981-1971 Measuring instruments Go and not go calliper gauges double jaw for nominal sizes above 3 to 100 mm 《测量工具 标称尺寸超过3-100mm的光滑极限双凹口轴》.pdf
  • UNI 6982-1971 Measuring instruments Setting plugs for adjustable go and not go screw ring gauges for ISO metric threads with nominal diameter above 1 5 to 50 mm 《测量工具 用于ISO公制螺纹的标称直.pdf UNI 6982-1971 Measuring instruments Setting plugs for adjustable go and not go screw ring gauges for ISO metric threads with nominal diameter above 1 5 to 50 mm 《测量工具 用于ISO公制螺纹的标称直.pdf
  • UNI 6983-1971 Measuring instruments Setting plugs for adjustable go and not go screw ring gauges for ISO metric threads with nominal diameter above 50 to 70 mm 《测量工具 用于过端螺纹环规和标称直径超.pdf UNI 6983-1971 Measuring instruments Setting plugs for adjustable go and not go screw ring gauges for ISO metric threads with nominal diameter above 50 to 70 mm 《测量工具 用于过端螺纹环规和标称直径超.pdf
  • UNI 6984-1971 Measuring instruments Go and not go screw plug gauges and go and not go check plugs for new solid go and not go screw ring gauges for ISO metric threads with nominal .pdf UNI 6984-1971 Measuring instruments Go and not go screw plug gauges and go and not go check plugs for new solid go and not go screw ring gauges for ISO metric threads with nominal .pdf
  • UNI 6985-1971 Measuring instruments Go screw plug gauges and go check plugs for new solid go and not go screw ring gauges for ISO metric threads with nominal diameter above 50 to 1.pdf UNI 6985-1971 Measuring instruments Go screw plug gauges and go check plugs for new solid go and not go screw ring gauges for ISO metric threads with nominal diameter above 50 to 1.pdf
  • UNI 6986-1971 Measuring instruments Not go screw plug gauges check plugs for new solid go and not go screw ring gauges and wear check plugs for solid and adjustable go and not go snomi.pdf UNI 6986-1971 Measuring instruments Not go screw plug gauges check plugs for new solid go and not go screw ring gauges and wear check plugs for solid and adjustable go and not go snomi.pdf
  • UNI 6987-1971 Measuring instruments Not go screw plug gauges and wear check plugs for solid and adjustable go and not go screw ring gauges for ISO metric threads with nominal diame.pdf UNI 6987-1971 Measuring instruments Not go screw plug gauges and wear check plugs for solid and adjustable go and not go screw ring gauges for ISO metric threads with nominal diame.pdf
  • UNI 6988-1971 Measuring instruments Go screw plug gauges for ISO metric threads with nominal diameter above 1 5 to 50 mm and setting plugs for go and not go screw calliper gauges w.pdf UNI 6988-1971 Measuring instruments Go screw plug gauges for ISO metric threads with nominal diameter above 1 5 to 50 mm and setting plugs for go and not go screw calliper gauges w.pdf
  • 相关搜索

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

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