【计算机类职业资格】国家计算机二级(C++)89及答案解析.doc
《【计算机类职业资格】国家计算机二级(C++)89及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家计算机二级(C++)89及答案解析.doc(13页珍藏版)》请在麦多课文档分享上搜索。
1、国家计算机二级(C+)89 及答案解析(总分:460.00,做题时间:120 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.以下哪个基类中的成员函数表示纯虚函数?(分数:2.00)A.virtual void vf(int)B.void vf(int)=0C.virtual void vf(=0)D.virtual void yf(int) 2.要想使 2378965421 的输出为 237887 应用的语句是( )。(分数:2.00)A.一个子类的两个父类中都有某个同名成员,在子类中对该成员访问可能出现二义性B.解决二义性可以用对成员名的限定法
2、C.父类和子类中同时出现同名函数,也可能存在二义性D.一个子类是从两个父类派生出来的,而这两个父类又有一个共同的父类,对该父类成员进行访问时,可能出现二义性3.数据库设计的根本目标是要解决_。 (分数:2.00)A.数据共享问题B.数据安全问题C.大量数据存储问题D.简化数据维护4.已知枚举类型声明语句为: enum COLORWHITE,YELLOW,GREEN5,RED,BLACK10;则下列说法中错误的是(分数:2.00)A.枚举常量 YELLOW 的值为 1B.枚举常量 RED 的值为 6C.枚举常量 BLACK 的值为 10D.枚举常量 WHITE 的值为 15.有如下说明 int
3、a10: 1,2,3,4,5,6,7,8,9,10 ,* p=a; 则数值为 9 的表达式是( )。 (分数:2.00)A.*p+9B.*(p+8)C.*p+=9D.p+86.决定 C+语言中函数的返回值类型的是( )。(分数:2.00)A.return 语句中的表达式类型B.调用该函数时系统随机产生的类型C.调用该函数时的主调用函数类型D.在定义该函数时所指定的数据类型7.下列运算符不能重载为友元函数的是【 】(分数:2.00)A.= ( ) -B.+ - +-C. = next=q-next;B.p-next=p-next-next;C.p-next=r;D.p=q-next;21.对类成
4、员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( )。(分数:2.00)A.公有类型B.私有类型C.保护类型D.友元类型22.下列描述中哪个是正确的?(分数:2.00)A.私有派生的子类无法访问父类的成员B.类 A 的私有派生子类的派生类 C 无法初始化其祖先类 A 对象的属性,因为类 A 的成员对类 C 是不可访问的C.私有派生类不能作为基类派生子类D.私有派生类的所有子孙类将无法继续继承该类的成员23.以下程序的功能是:给 r 输入数据后计算半径为 r 的圆面积 s,程序在编译时出错。 main() /* Beginning */ int r; float
5、s; scanf(“%d“, s=*r*r; printf(“s=%f/n“,s); 出错的原因是_。 (分数:2.00)A.注释语句书写位置错误B.存放圆半径的变量 r 不应该定义为整型C.输出语句中格式描述符非法D.计算圆面积的赋值语句中使用了非法变量24.有三个关系 R、S 和 T 如下: (分数:2.00)A.并B.自然连接C.笛卡尔积D.交25.假定 int 类型变量占用两个字节,其有定义 int x l0= 0,2,4 ;,则数组 x 在内存中所占字节数是( )。(分数:2.00)A.3B.6C.10D.2026.有以下程序: #include main() char p=a,b,
6、c,q10=a,b,c; printf(“%d %d/n“,strlen(p),strlen(q); 以下叙述中正确的是_。(分数:2.00)A.在给 p 和 q 数组置初值时,系统会自动添加字符串结束符,故输出的长度都为 3B.由于 p 数组中没有字符串结束符,长度不能确定;但 q 数组中字符长度为 3C.由于 q 数组中没有字符串结束符,长度不能确定;但 p 数组中字符长度为 3D.由于 p 和 q 数组中没有字符串结束符,故长度都不能确定27.若定义 intk=7,x=12;,则能使值为 3 的表达式是( )。(分数:2.00)A.Alt+F2B.ablC.随机出儿个数D.不发生变化28
7、.在 C+语言程序中,对象之间的相互通信通过( )。(分数:2.00)A.a=1;B.+i;C.a=a+1=5D.! (+a! =b-)29.以下程序的输出结果是( )。 #includeiostreamh void main( ) inti,j,x=0; for(i=0;i 2;i+) x+; for(j=0;j 3;j+) if (j% 2)continue; x+; x+; cout “x=“ x; (分数:2.00)A.若干个二维表B.一个 DBF 文件C.一个 DBC 文件D.若干个 DBC 文件30.不能作为重载函数的调用的依据是( )。(分数:2.00)A.参数个数B.参数类型C
8、.函数类型D.函数名称31.如果表达式+x/y 中,+是作为友元函数重载的,/是作为成员函数重载的,则该表达式还可为( )。(分数:2.00)A.抽象类就是其中有函数定义但没有实现的类B.抽象类是可以被实例化的C.派生类不能成为抽象类D.抽象类的子类必须实现父类中的纯虚函数32.下面程序段的运行结果是( )。 voidmain( ) ihtt,a,b,C; a=1;b=2;C=2; while(abc) t=a;a=b;b=t;c-; couta“,“b“,“C; (分数:2.00)A.8B.9C.7D.633.下面程序输出的结果是( )。 #includeiostreamh void mai
9、n( ) int i; int a33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) coutaii“ “; (分数:2.00)A.1 5 9B.7 5 3C.3 5 7D.5 9 134.有以下程序 main() int i,t3=9,8,7,6,5,4,3,2,1; for(i=0;iA.7 5 3B.3 5 7C.3 6 9D.7 5 135.下面这个程序的结果是( )。 #includeiostreamh classA private: inta; public: voidseta( );intgeta( ); voidA:seta( ) a=1; intA:ge
10、ta( ) returna; classB private: inta; publiC: voidseta( );intgeta( ); voidB:seta( ) a=2; intB:geta( ) returna; classC:publicA,publicB private: intb; public: voiddisplay( ); voidC:display( ) int b:geta( ); coutb; voidmain( ) Cc; cseta( ); c.display( ); (分数:2.00)A.虚线B.点线C.不可见D.实线二、填空题(每空 2 分,共 30 分)(总题
11、数:13,分数:390.00)36.下面程序的结果为 1。 #includeiostream.h void main2 int a=1,b=2; bool c=1; if(ab)|c) cout“true“endl; else cout“false“endl; (分数:30.00)填空项 1:_37.为解决在多重继承环境中因公共基类带来的 1 问题,C+语言提供了虚基类机制。(分数:30.00)填空项 1:_38.下列程序段的输出结果是 1。 coutfixed509.123456789endl; (分数:30.00)填空项 1:_39.若将一个二元运算符重载为类的成员函数,其形参个数应该是
12、1 个。(分数:30.00)填空项 1:_40.对于下面定义的类 MyClass,请在函数 f1 中添加对象成员把 n 的值修改为 50。 class MyClass public: MyClass(int x)n=x; void SetNum (int nl) n=nl; private: int n; ; int f( ) MyClass * ptr=new MyClass(45);2 (分数:30.00)填空项 1:_41.C+语言支持的两种多态性分别是编译时的多态性和 1 的多态性。(分数:30.00)填空项 1:_42.一个关系表的行为 1 。(分数:30.00)43.在类的对象被创
13、建的时候, 1 函数会被自动调用。 (分数:30.00)填空项 1:_44.在关系数据库中,把数据表示成二维表,每一个二维表称为 1。(分数:30.00)填空项 1:_45.在关系数据库中,用来表示实体之间联系的是 1。(分数:30.00)填空项 1:_46.构造函数是和 1 同名的函数。(分数:30.00)填空项 1:_47.以下程序的结果为 1。 #include”iostreamh” templatetypename T T total(T * data) T s=0; while( * data) s+= * data +; return s; int main2 int x = 2,
14、4,6,8,0,12,14,16,18 ; cout total(x); return 0; cout end1; (分数:30.00)填空项 1:_48.在 c+语言的面向对象程序设计框架中, 1 是程序的基本组成单元。(分数:30.00)填空项 1:_国家计算机二级(C+)89 答案解析(总分:460.00,做题时间:120 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.以下哪个基类中的成员函数表示纯虚函数?(分数:2.00)A.virtual void vf(int)B.void vf(int)=0 C.virtual void vf(=0
15、)D.virtual void yf(int) 解析:C+中纯虚函数的定义与虚函数的关键字一样,在函数末尾要加上“=0”。2.要想使 2378965421 的输出为 237887 应用的语句是( )。(分数:2.00)A.一个子类的两个父类中都有某个同名成员,在子类中对该成员访问可能出现二义性B.解决二义性可以用对成员名的限定法C.父类和子类中同时出现同名函数,也可能存在二义性 D.一个子类是从两个父类派生出来的,而这两个父类又有一个共同的父类,对该父类成员进行访问时,可能出现二义性解析:多线程不是同时执行几个事件,在某个时间上,计算机还是在执行一个事件,只是多线程将程序分为几个并行的子任务,
16、由它们并发交叉执行。在宏观上看,好像是同时执行几个事件。 3.数据库设计的根本目标是要解决_。 (分数:2.00)A.数据共享问题 B.数据安全问题C.大量数据存储问题D.简化数据维护解析:由于数据的集成性使得数据可为多个应用所共享,特别是在网络发达的今天,数据库与网络的结合 扩大了数据关系的应用范围。数据的共享本身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。因此,数据库设计的根本目标是要解决数据共享问题。4.已知枚举类型声明语句为: enum COLORWHITE,YELLOW,GREEN5,RED,BLACK10;则下列说法中错误的是(分数:2
17、.00)A.枚举常量 YELLOW 的值为 1B.枚举常量 RED 的值为 6C.枚举常量 BLACK 的值为 10D.枚举常量 WHITE 的值为 1 解析:枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值;枚举元素本身由系统定义了一个表示序号的数值,从 0 开始顺序定义为 0,1,2。所以枚举函数中对象的值应从。开始,依次加 1,如果有的对象已赋值,则后面也按照前面的值依次加 1 的原则。5.有如下说明 int a10: 1,2,3,4,5,6,7,8,9,10 ,* p=a; 则数值为 9 的表达式是( )。 (分数:2.00)A.*p+9B.*(p+8) C.*p+=9D.p+
18、8解析:在 C+语言的数组元素的引用方法,如数组元素 a0,可以用表达式*(p+0),即*p 来引用,对于数组元素 a1,可以用表达式*(P+1)来引用,在这里,p+1 的值就是数组元素 a1的地址,对此地址使用“间接访问运算符”:*(p+1)就代表存储单元 a1,注意:一对圆括号不可少。同样,对于数组元素a2,则可以用表达式*(p+2)来引用,对于数组元素 a9,可以用表达式*(P+9)来引用。因此,当指针变量 p 指向 a 数组的起始地址时,若 0i B.+ - +-C. = ,赋值运算符,( )和 是不能够重载为友元函数的运算符。对双目运算符,友元函数有两个参数;对单目运算符,友元函数有
19、一个参数。8.下列描述中,抽象类的特性是( )。(分数:2.00)A.class B B.class B extends A C.class B extends A B( )System.out.println(“=“+i); D.class A 解析:局部变量在使用前必须进行初始化,而代码中的变量 k 在使用前 没有进行初始化。 9.以下能正确定义字符串的语句是_。 (分数:2.00)A.char str=/064;B.char str=“/x43“;C.char str=;D.char str=“/0“; 解析:C 语言中,字符串是用一对双引号括起来的字符序列,并用字符型数组来存放,故选项
20、 A、C 不属 于字符串, 选项 B 定义的是一个字符变量 str,却用来存放字符串,显然也不正确,所以选项 D 正确。10.不能重载的运算符是( )。(分数:2.00)A.newB.sizeofC.* D.+解析:C+语言规定* 运算符是不能被重载的。11.使用输入输出操作符 setw,可以控制(分数:2.00)A.输出精度B.输出宽度 C.对齐方式D.填充字符解析:setw 操作符可以控制输出宽度。12.以下叙述中错误的是_。 (分数:2.00)A.用户所定义的标识符允许使用关键字 B.用户所定义的标识符应尽量做到“见名知意”C.用户所定义的标识符必须以字母或下划线开头D.用户定义的标识符
21、中,大、小写字母代表不同标识解析:C 语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。大写字母和小写字母被认为是两个不同的字符,用户在定义标识符时应做到“见名知意”,且不允许使用 关键字作标识符。13.有如下程序: #includeiostreamh long fib(int n) if(n 2) return(fib(n-1)+fib(n-2) ); else return(2); void main( ) cout fib(3); 该程序的输出结果是( )。 (分数:2.00)A.2B.4 C.6D.8解析:fib(3)=fib(2)+fib(1),而
22、 fib(2)的返回值为 2,fib(1)的返回值也为 2,故输出的 fib(3)的值为4。14.在公有继承的情况下,允许派生类直接访问的基类成员包括【 】(分数:2.00)A.公有成员B.公有成员和保护成员 C.公有成员、保护成员和私有成员D.保护成员解析:派生类从基类公有继承时,派生类中的成员不能访问基类中的私有成员,可以访问基类中的公有成员和保护成员。15.设有如下三个关系表 (分数:2.00)A.T=RSB.T=RSC.T=RSD.T=R/S解析:16.如果类 A 被说明成类 B 的友元,则( )。(分数:2.00)A.类 A 的成员即类 B 的成员B.类 B 的成员即类 A 的成员C
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 C89 答案 解析 DOC
