【计算机类职业资格】二级C++笔试-323及答案解析.doc
《【计算机类职业资格】二级C++笔试-323及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-323及答案解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-323 及答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.若有以下程序:# include iostreamusing namespace std;void sub(int x, int y, int *z)*z = y+x;int main ()int a,b, c;sub8,4.sub (6, a, sub (a.b, couta“ , “b2.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是(分数:2.00)A.控制流B.加工C.数据存储D.源和潭3.实现
2、运行时的多态性要使用(分数:2.00)A.重载函数B.析构函数C.构造函数D.虚函数4.若有定义:int k,*q;,则下列各选项中赋值表达式正确的是(分数:2.00)A.q=(class sampleprivate:int x;static int y;public:sample(int(分数:2.00)A.;static void print(sample s);6.有如下函数模板定义:templatetypename T1,int a2,int a3T1 sum(T1 a1)return(a1+a2+a3);则以下调用中正确的是(分数:2.00)A.sumint,4,3(5);B.sum
3、4,3(5);C.sumint,int,int(5);D.sum(5);7.以下运算符中不能重载的运算符是(分数:2.00)A.newB.sizeofC*D.+8.对建立良好的程序设计风格,下面描述正确的是(分数:2.00)A.程序应简单、清晰、可读性好B.符号名的命名只要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无9.下列叙述中正确的是(分数:2.00)A.实体集之间一对一的联系实际上就是一一对应的关系B.关系模型只能处理实体集之间一对一的联系C.关系模型属于格式化模型D.以上三种说法都不对10.下列数据结构中能应用二分查找的是(分数:2.00)A.有序线性链表B.有序顺序表C.
4、顺序存储的栈D.顺序存储的队列11.以下程序段的输出结果是int x=5;do coutx-end1;while(!x);(分数:2.00)A.5B.无任何输出C.4D.陷入死循环12.有如下程序:#includeiostreamusing namespace std;int main()cout. fill(*);cout. width(5);coutscientific314.15 926535end1;return 0;程序运行后,输出的结果是(分数:2.00)A.3.141593e+002B.3.1416e+002C.*3.14e+002D.314.1613.按照标识符的要求,下列选项
5、中,( )符号不能组成标识符。(分数:2.00)A.连接符B.下划线C.大小写字母D.数字字符14.一个函数为 void f(int,charch=a),另一个函数为 void f(int),则它们(分数:2.00)A.不能在同一程序中定义B.可以在同一程序中定义并可重载C.可以在同一程序中定义,但不可以重载D.以上说法均不正确15.设有下列二叉树:(分数:2.00)A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA16.数据库设计包括两个方面的设计内容,它们是(分数:2.00)A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计1
6、7.运算符函数调用格式的表达式:y/x+与表达式:y. operator/(operator+(x,0)含义相同,由此可看出()。(分数:2.00)A.“/”和“+”都是作为成员函数重载的B.“/”和“+”都是作为非成员函数重载的C.“/”是作为成员函数重载的,“+”是作为非成员函数重载的D.“/”是作为非成员函数重载的,“+”都是作为成员函数重载的18.下列关于关系运算的叙述中正确的是(分数:2.00)A.投影、选择、连接是从二维表的行的方向来进行运算B.并、交、差是从二维表的列的方向来进行运算C.投影、选择、连接是从二维表的列的方向来进行运算D.以上三种说法都不对19.为完成下面的程序,应
7、在划线处填入的语句是#includeiostreamusing namespace std;class Baseprivate:int x;public:Base(int i)x=i;Base();class Derived:public Basepublic:_ /完成类 Derive 构造函数的定义;int main()Derived obj;return 0;(分数:2.00)A.Derived(inti):Base(i)B.Derived()C.Void Derived (inti):Base(i)D.Denved(inti)Base(i);20.有以下程序:#include iost
8、reamusing namespace std;class sampleprivate:int n;public:sample() sample(int m)n=m;sample add(sample s1,sample s2)this-n-s1.n+s2.n;return (*this);void disp()cout “n=“nend1;int main (sample s1(10),s2(5),s3;s3.add(s1,s2);s3.disp();return 0;程序运行后,输出的结果是(分数:2.00)A.n=10B.n=5C.n=20D.n=1521.若有以下程序:#include
9、iostreamusing namespace std;class Aprivate:int x;public:int z;void setx(int i)x=i;int getx ()return x;:class B : public Aprivate:int m;public:int p;void setvalue(int a, int b, int c) setx((分数:2.00)A.;public:void setc(int x, inc y, int z)c=z;seta (x);setb (y);void showc()showa ();showb ();coutcend1;i
10、nt main ()C c;c. setc(1,2,3);c.showc();return 0;程序执行后的输出结果是(分数:2.00)A.1,2,3B.1,1,1C.2,2,2D.3,3,325.在下面的类定义中,错误的语句是class Samplepublic:Sample(int val); /Sample(): /private:int a=2.5; /Sample(); /;(分数:2.00)A.B.C.D.26.在长度为 n 的有序线性表中进行二分查找,需要的比较次数为(分数:2.00)A.log2nB.nlog2nC.n/2D.(n+1)/227.( )是以一种完全通用的方法来设
11、计函数或类而不必预先说明将被使用的每个对象的类型。(分数:2.00)A.模板B.类C.对象D.函数28.执行语句序列ofstream outfite(“data.dat“);if(.)cout“ok“;else cout“fail“;后,如果文件打开成功,显示“ok”,否则显示“fail”。由此可知,上面 if 语句的“”处的表达式是(分数:2.00)A.outfile.fail()或 outfileB.outfile.good()或!outfileC.outfile.good()或 outfileD.outfile.fail()或!outfile29.下面的描述中表达错误的是(分数:2.00
12、)A.公有继承时基类中的 public 成员在派生类中仍是 public 的B.公有继承时基类中的 private 成员在派生类中仍是 private 的C.公有继承时基类中的 protected 成员在派生类中仍是 protected 的D.私有继承时基类中的 public 成员在派生类中是 private 的30.假定 MyClass 为一个类,那么下列的函数说明中,( )为该类的析构函数。(分数:2.00)A.voidMyClass();B.MyClass(int n);C.MyClass();D.MyClass();31.下面不属于软件工程 3 个要素的是(分数:2.00)A.工具B.
13、过程C.方法D.环境32.有如下程序:#include iostreamusing namespace std;class sampleprivate:int x,y;public:sample(int i,int j)x=i;y=j;void disp ()cout“disp1“end1;void disp() constcout“disp2“end1;int main ()const sample a(1,2);a.disp();return 0;该程序运行后的输出结果是(分数:2.00)A.disp1B.disp2C.disp1 disp2D.程序编译时出错33.下面关于对象概念的描述中
14、,错误的是(分数:2.00)A.C+中的对象就是 C 语言中的结构变量B.对象代表着正在创建的系统中的一个实体C.对象是一个状态和操作(或方法)的封装体D.对象之间的信息传递是通过消息进行的34.下列数组的定义中,会产生错误的是(分数:2.00)A.int a=(0,1,2,3,4,5,6);B.int a10=0,1,2,3,4,5,6;C.char a5=“hello“;D.char a5=h,e,1,1,o;35.结构化程序设计的主要特点是(分数:2.00)A.每个控制结构要模块化B.每个控制结构具有封装性C.每个控制结构具有独立性D.每个控制结构只有一个入口和一个出口二、填空题(总题数
15、:14,分数:28.00)36.设一棵二叉树中有 3 个叶子结点,有 8 个度为 1 的结点,则该二叉树牛总的结点数为 【1】 。(分数:2.00)填空项 1:_37.类是一个支持集成的抽象数据类型,而对象是类的 【2】 。(分数:2.00)填空项 1:_38.结构化设计主要分为系统设计和模块设计, 【3】 的任务是决定系统的模块结构。(分数:2.00)填空项 1:_39.一般来说,数据库的设计过程要经历 3 个大的阶段,即可行性分析与研究阶段、系统设计阶段、设计实施与系统运行阶段。概念设计、逻辑结构设计、物理结构设计属于数据库设计的 【4】 阶段。(分数:2.00)填空项 1:_40.数据流
16、图有两种典型的结构形式,它们分别是变换型和 【5】 。(分数:2.00)填空项 1:_41.设有定义语句:double x=2.5, y=4.7;int a=7;那么表达式 x+a%3*(int)(x+ y)%2/4 的值为 【6】 。(分数:2.00)填空项 1:_42.函数 swap(arr,n)可完成对 arr 数组从第 1 个元素到第 n 个元素两两交换。在运行调用函数中的语句后,a0和 a1的值分别为 【7】 。a0=1;a1=2;swap(a,2);(分数:2.00)填空项 1:_43.下列程序的输出结果是 【8】 #includeiostreamusing namespace s
17、td;int main()int num=500;int Base();class Derived : public Basepublic:【10】 /完成类 Derive 构造函数的定义;int main ()Derived Obj;return 0;(分数:2.00)填空项 1:_46.下面是“二维向量”vector2D 的定义,其中作为成员函数重载的运算符“+”的功能是将两向量的分量 x 和 y 对应相加,然后返回作为相加结果的新对象;请填空补充完整。class vector2Ddouble x; /x 分量double y; /y 分量public:vector2D(double x0
18、=0, double y0=0):x(x0),y(y0)void show(cout (,y) ;vector2D operator + (vector2D);【11】 operator + (vector2D a) return vector2D( 【12】 );(分数:2.00)填空项 1:_47.已知:double A(double A) return+a;和 int A(in A) return+a;是一个函数模板的两个实例,则该函数模板定义为 【13】 (分数:2.00)填空项 1:_48.有以下程序:#includeiostream.hclass Aint x;public:A(i
19、nt a) x=a;friend class B;class Bpublic:void print(A a)a. x-;couta.xend1;void main()A a(10);B b;b.print(a) ;程序执行后的输出结果是 【14】 。(分数:2.00)填空项 1:_49.下面程序的输出结果是 【15】 。#include iostreamusing namespace std;class baseprotected:int a;public:base()cout“0“:;class basel: virtual public basepublic:base1() cout“1“
20、;class base2 : virtual public basepublic:base2()cout“2“;class derived : public base1,public base2public:derived () cout“3“; int main ()derived obj;coutend1;return 0;(分数:2.00)填空项 1:_二级 C+笔试-323 答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.若有以下程序:# include iostreamusing namespace std;void sub(int
21、x, int y, int *z)*z = y+x;int main ()int a,b, c;sub8,4.sub (6, a, sub (a.b, couta“ , “b解析:解析 本题考核对指针作为函数的参数的理解程度。分析程序:函数 sub 为 void 型。函数的形参中,z 是一个 int 型的指针变量,因此它只能从实参接收一个 int 型变量的地址。在函数 sub 体中,语句:*z=y +x;的功能是把形参 y 与 x 的和值放入形参 z 所指的存储单元中。在主函数中,3 次调用 sub 函数。第一次调用时,把 8 和 4 分别传递给形参 x 和 y,把主函数中变量 a 的地址传递
22、给形参 z,这样形参就指向了主函数中的变量 a,在 sub 函数中执行语句*z=y/x;后,把 12 放入 z 所指的存储单元中,即变量 a被赋值 11。以此类推,最后 b 被赋值 18,c 被赋值 30。所以最后输出是 12,18,30。2.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是(分数:2.00)A.控制流 B.加工C.数据存储D.源和潭解析:解析 数据流图由 4 种基本成分构成:数据流,数据处理(即加工),数据存储,外部实体(即源和潭)而控制流是程序流程图中的图符,它不属于数据流图的合法图符。选项 A 正确。3.
23、实现运行时的多态性要使用(分数:2.00)A.重载函数B.析构函数C.构造函数D.虚函数 解析:解析 本题考核虚函数的应用。动态联编一直要到程序运行时才能确定调用哪个函数。虚函数是实现动态联编的必要条件之一。没有虚函数一定不能实现动态联编,但有虚函数存在时,必须同时满足下列条件,才能实现动态联编:类之间满足子类型关系;调用虚函数操作的是指向对象的指针或对象引用,或者是由成员函数调用虚函数。4.若有定义:int k,*q;,则下列各选项中赋值表达式正确的是(分数:2.00)A.q=(class sampleprivate:int x;static int y;public:sample(int(
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 323 答案 解析 DOC
