【计算机类职业资格】二级C++笔试-71及答案解析.doc
《【计算机类职业资格】二级C++笔试-71及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-71及答案解析.doc(26页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-71 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.以下关于友元函数的叙述不正确的是( )。(分数:2.00)A.友元函数提供了类之间数据共享的一个途径B.一个友元函数可以访问任何类的任何成员C.友元函数破坏了数据的封装D.友元函数增加了程序没计的灵活性2.判断 char 型变量 c 是否为小写字母的正确表达式是( )。(分数:2.00)A.a=c=zB.(c=A)C.(a=c)|(z=c)D.(c=a)(c=z)3.有以下程序:#includeiostreamusing namespace std;class Apubl
2、ic:A()cout“A“;classBpublic:B()cout“B“;classC:public AB b;public:C()cout“C”;int main()C obj;return 0;执行后的输出结果是( )。(分数:2.00)A.CBAB.BACC.ACBD.ABC4.下列定义中 P 指向的地址可更改,但*p 不能够更改的是( )。(分数:2.00)A.const int *p;B.int *const p;C.const int *const p;D.int *p;5.下列关于 C+函数的说明中,正确的是( )。(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数
3、B.函数体的最后一条语句必须是 return 语句C.标准 C+要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值数型和参数表来区分函数的不同重载形式6.如果进栈序列为 e1、e2、e3、e4,则可能的出栈序列是( )。(分数:2.00)A.e3、e1、e4、e2B.e2、e4、e3、e1C.e3、e4、e1、e2D.任意顺序7.对于语句“coutsetfill(*)setw(10)1setfill(*)setw(2)2;”的输出结果是( )。(分数:2.00)A.*1*2B.*12C.*1*2D.12*8.在 E-R 图中,用来表示实体的图形是( )。(分数:2.00)A.
4、矩形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.数据流图用于抽象描述一个软件的逻辑模型
5、,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )。(分数:2.00)A.控制流B.加工C.数据存储D.源和潭13.下列关于完全二叉树的叙述中,错误的是( )。(分数:2.00)A.除了最后一层外,每一层上的结点数均达到最大值B.可能缺少若干个左右叶子结点C.完全二叉树一般不是满二叉树D.具有结点的完全二叉树的深度为lgg 2n+114.函数 swap(a,n)可完成对 a 数组从第 1 个元素到第 n 个元素两两交换。其中 h0=1;b1=2;swap(b,2)。在运行调用函数中的语句后,b0和 b1的值分别为( )。(分数:2.00)A.1,1B.1,2C
6、.2,2D.2,115.以下选项中合法的实型常数是( )。(分数:2.00)A.5E2.0B.E-3C.2E0D.1.3E16.下列程序的运行结果是( )。#includeiostream.hint x=5;int fun(int a)int c;c=x*a;return c;void main()int x=3,a=4;x=x+fun(a);cout“x=“xend1;(分数:2.00)A.x=15B.x=17C.x=23D.x=2517.下列有关拷贝构造函数的描述中错误的是( )。(分数:2.00)A.拷贝构造函数是一种构造函数B.拷贝构造函数与一般的构造函数一样,可以设置多个形参C.每一
7、个类中都必须有一个拷贝构造函数D.拷贝构造函数的功能是用一个已知对象去初始化一个正在创建的对象。18.有以下程序:#includeiostream.hvoid 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,z);coutx,y.zend1;输出结果是( )。(分数:2.00)A.30,20,10B.10,20,30C.456,567,678D.678,567,45619.下列数据模型中,具有坚实理论基础的是( )。(分数:2.00)A.层次模型B.网状模型C.关系模D.以上 3 个都是
8、20.以下循环体的执行次数是( )。void main()int i,j;for(i=0,j=1;i=j+1;i+=2,j-)coutiend1;(分数:2.00)A.3B.2C.1D.021.下列字符串中可以用作 C+语言标识符的是( )。(分数:2.00)A._1234B.foobarC.virtualD.34var22.从工程管理角度,软件设计一般分为两步完成,它们是( )。(分数:2.00)A.概要设计与详细设计B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计23.若有如下语句#includeiostream.hvoid main()int x=3;dox=x-2
9、;coutx;while(!(-x);则上面程序段( )。(分数:2.00)A.输出的是 1B.输出的是 1 和-2C.输出的是 3 和 0D.是死循环24.下列程序的执行结果是( )。#includeiostream.h#includestdlib.hclass TestClasspublic:int x,y;TestClass()x=y=0;TestClass(int a,int b)x=a;y=b;void disp()cout“x=“x“, y=“yend1;void main()TestClass s1(2,3);s1.disp();(分数:2.00)A.x=2,y=2B.x=2,y
10、=3C.x=3,y=2D.x=3,y=325.有以下程序:void main()int a=5,b=4,c=3,d=2;if(abc)coutdend1;else if(c-1)=d)=1)coutd+1end1;elsecoutd+2end1;(分数:2.00)A.2B.3C.4D.编译时有错,无结果26.假定其中的 x 的单位是角度且不考虑 的值的精度,则与数学公式 (分数:2.00)A.B.C.D.27.以下程序中调用 cin 函数给变量 a 输入数值的方法是错误的,其错误原因是( )。#includeiostream.hvoid main()int *p,*q,a,b;p=a;cout
11、“input a:“;cinp;(分数:2.00)A.*p 表示的是指针变量 p 的地址B.p 表示的是变量 a 的地址,而不是变量 a 的值C.*p 表示的是指针变量 p 的值D.*p 只能用来说明 p 是一个指针变量28.如果表达式“-x/y”中的“-”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为( )。(分数:2.00)A.operator/(x.operator-(),y);B.operator/(operator-(x),y);C.operator-().operator/(y);D.operator/operator-(x);29.以下函数值的返
12、回值类型是( )。fun(float x)float y;y=3*x-4;return y;(分数:2.00)A.intB.不确定C.voidD.float30.有以下程序:#includeiostreamusing namespace std;int main()int x=15;while(x)10x(50)x+;if(x/3)x+;break;coutxend1;return 0;执行后的输出结果是( )。(分数:2.00)A.15B.16C.17D.1831.下面程序的结果是( )。#includeiostream.hclass Aint a;public:A():a(1)void s
13、howa()couta;class Bint a;public:B():a(2)void showa()couta;class C:public A,public Bint a;public:C():a(3)void showa()couta;void main()C c;c.showa();(分数:2.00)A.1B.2C.3D.程序有错误32.若已定义int a=1,2,3,4,5,6,7,8,9,10),p=a,i=5;则对数组元素不正确的引用是( )。(分数:2.00)A.ap-aB.*(ai)C.piD.*(*(a+i)33.下列描述中,抽象类的特性是( )。(分数:2.00)A.可
14、以说明虚函数B.可以定义友元函数C.可以进行构造函数重载D.不能说明其对象34.下列程序输出的结果是( )。#includestdio.hfunl(char a,char b)char c;c=a;a=b;b=c;fun2(char *a,char b)char c;c=*a;*a=b;b=c;fun3(char *a,char *b)char c;c=*a;*a=*b;*b=c;void main()char a,b;a=A;b=B;fun1(a,b);putchar(a);putchar(b);a=A;b=B;fun2(a,b);putchar(a);putchar(b);a=A;b=B;
15、fun3(a,b);putchar(a);putchar(b);putchar(/n);(分数:2.00)A.BABBABB.ABBBBAC.ABBABAD.ABABBA35.对长度为 n 的线性表进行顺序查找,在最坏情况下所需要的比较次数为( )。(分数:2.00)A.lgg2nB.n/2C.nD.n+1二、填空题(总题数:14,分数:30.00)36.在面向对象方法中,类的实例称为 1。(分数:2.00)填空项 1:_37.一个算法通常由两种基本要素组成:一是对数据对象的运算和操作;二是 1。(分数:2.00)填空项 1:_38.关系操作的特点是 1 操作。(分数:2.00)填空项 1:_
16、39.数据库保护分为安全性控制、 1、并发性控制和数据的恢复。(分数:2.00)填空项 1:_40.全面支持软件开发过程的软件工具集合被称为 1。(分数:2.00)填空项 1:_41.将“x+y*z”中的“+”用成员函数重载,“*”用友元函数重载应写为 -|_|-。(分数:2.00)_42.指针变量所保存的不是一般的数据值,而是程序中另一个对象的 1。(分数:2.00)填空项 1:_43.下面程序的运行结果是_和_。#includeiostream.h#define N 10#define s(x)x*x#define f(x)(x*x)void main()int i1,i2;i1=1000
17、/s(N);i2=1000/f(N);couti1“i2;(分数:4.00)填空项 1:_44.根据输出结果填空完成下面程序。#includeiostream.hclass Testprivate:static int val;int a;public:static int func();void sfunc(Test r);_/初始化静态变量 valint Test:func()return val+;void Test:sfunc(Test &r)r.a=125;cout“Result3=“r.a;void main()cout“Resuh1=“Test:func()end1;Test A
18、;cout“Resuh2=“A.func()end1;Asfunc(A);输出结果为Result1=201Result2=202Resuh3=125(分数:2.00)填空项 1:_45.请将下列类定义补充完整。class Basepublic:void fun()cout“Base:fun“end1;class Derived:public Basepublic:void fun()_/显示调用基类的 fun 函数cout“Derived:fun“end1;(分数:2.00)填空项 1:_46._是实现 C+语言编译时多态性的机制,_是实现 C+语言运行时多态性的机制。(分数:2.00)填空项
19、 1:_47.下列程序的运行结果是_。#includeiostream.hclass testprivate:int num;public:test();int TEST()return num+100;test();test:test()num=0;test:test()cout“Destructor is active“end1;void main()test x3;coutx1.TEST()end1;(分数:2.00)填空项 1:_48.若下列程序运行时输出结果为1,A,10.12,B,3.5请将程序补充完整。#includeiostreamusing namespace std;voi
20、d test(int a,char b,double c)couta,b,cend1;int main()void test(int,char,double _);test(1,A,10. 1);test(2,B);return 0;(分数:2.00)填空项 1:_49.友元类的所有成员函数都是另一个类的 1。(分数:2.00)填空项 1:_二级 C+笔试-71 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.以下关于友元函数的叙述不正确的是( )。(分数:2.00)A.友元函数提供了类之间数据共享的一个途径B.一个友元函数可以访问任何类的任
21、何成员 C.友元函数破坏了数据的封装D.友元函数增加了程序没计的灵活性解析:解析 友元函数的作用在于提高程序的运行效率,但是它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。只有在类中声明了某个函数是自己的友元函数之后,该友元函数才能够访问本类的私有成员,而不是任何类的任何成员都可以访问。2.判断 char 型变量 c 是否为小写字母的正确表达式是( )。(分数:2.00)A.a=c=zB.(c=A)C.(a=c)|(z=c)D.(c=a)(c=z) 解析:解析 字符型数据在计算机内部是以 ASC码存储的,英文大写字母和小写字母在 ASC码表中都是连续的。大写字母 AZ 是从 6
22、590,小写字母 az 是从 97122。所以只要变量 c 大于等于 a 并且等于小于 z,就能保证其为小写字母。3.有以下程序:#includeiostreamusing namespace std;class Apublic:A()cout“A“;classBpublic:B()cout“B“;classC:public AB b;public:C()cout“C”;int main()C obj;return 0;执行后的输出结果是( )。(分数:2.00)A.CBAB.BACC.ACBD.ABC 解析:解析 本题考查的是类的继承和派生。系统首先要通过派生类的构造函数调用基类的构造函数,
23、对基类成员初始化,然后对派生类中的新增成员初始化。4.下列定义中 P 指向的地址可更改,但*p 不能够更改的是( )。(分数:2.00)A.const int *p; 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;”是两者都能改变。5.下列关于 C+函数的说明中,正确的是( )。(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数B
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 71 答案 解析 DOC
