【计算机类职业资格】计算机等级考试二级(C++)39及答案解析.doc
《【计算机类职业资格】计算机等级考试二级(C++)39及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】计算机等级考试二级(C++)39及答案解析.doc(14页珍藏版)》请在麦多课文档分享上搜索。
1、计算机等级考试二级(C+)39 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.以下不合法的用户标识符是_。 (分数:2.00)A.j2_KEYB.DoubleC.4dD._8_2.下列数据结构中,能用二分法进行查找的是_。 (分数:2.00)A.顺序存储的有序线性表B.线性链表C.二叉链表D.有序线性链表3.下面程序应能对两个整型变量的值进行交换。以下正确的说法是( )。 #includeiostreamh void swap(int p,int q) int t; t=p; p=q; q=t; v
2、oid main( ) int a=10,b=20; couta“ “b; swap(B.+i;C.a=a+1=5D.! (+a! =b-)7.sizeof(float)是( )。(分数:2.00)A.一个双精度型表达式B.一个整型表达式C.一种函数调用D.一个不合法的表达式8.关于模板下列说法不正确的是( )。(分数:2.00)A.用类模板定义一个对象时,不能省略实参B.类模板只能有虚拟类型参数C.类模板本身在编译中不会生成任何代码D.类模板的成员函数都是模板函数9.当把以下四个表达式用作 if 语句的控制表达式时,有一个选项与其他三个选项含义 不同,这个选项是_。 (分数:2.00)A.k
3、%2B.k%2=1C.(k%2)!=0D.!k%2=110.下列有关继承和派生的途述中,正确的是【 】(分数:2.00)A.如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员B.派生类的成员函数可以访问基类的所有成员C.基类对象可以赋值给派生类对象D.如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类11.在 C中用来实现运行时多态性的是【 】(分数:2.00)A.重载函数B.析构函数C.构造函数D.虚函数12.通常拷贝构造函数的参数是( )。(分数:2.00)A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名13.下列程序的运行结果是( )。
4、 #includeiostreamh void fun(int *a,iht *B) int *k; k=a;a=b;b=k; void main( ) inta=3,b=6,*x= fun 函数返回值是_。 (分数:2.00)A.不确定的值B.一个整数C.形参 p 中存放的值D.形参 p 的地址值18.已知下列语句中的 x 和 y 都是 int 型变量,其中错误的语句是【 】(分数:2.00)A.xy:B.xy;C.(xy)D.xy;19.下列描述中错误的是( )。(分数:2.00)A.公有继承的私有成员B.私有继承的公有成员C.私有继承的保护成员D.保护继承的保护成员20.设有以下定义和语
5、句 char str20= “Program“,*p; p=str; 则以下叙述中正确的是_。 (分数:2.00)A.*p 与 str0中的值相等B.str 与 p 的类型完全相同C.str 数组长度和 p 所指向的字符串长度相等D.数组 str 中存放的内容和指针变量 p 中存放的内容相同21.以下程序的输出结果是( )。 #includeiostreamh void main( ) int a=21,b=11; cout- -a+b; (分数:2.00)A.建立自定义对话框时必须执行添加窗体的操作B.自定义对话框实际上是 VB 的窗体C.在窗体上还要使用其他控件才能组成自定义对话框D.自定
6、义对话框不一定要有与之对应的事件过程22.执行下列程序段,结果是( )。 #includeiostreamh void main( ) int x=40; char y=C; int n; n=(x case 1 : n+=k; case 2 : case 3 : n+=k; k-; printf(“%d/n“,n); 程序运行后的输出结果是_。 (分数:2.00)A.0B.4C.6D.732.C流中重载的运算符是一个【 】(分数:2.00)A.用于输出操作的非成员函数B.用于输入操作的非成员函数C.用于输出操作的成员函数D.用于输入操作的成员函数33.下面程序输出的结果是( )。 #incl
7、udeiostreamh void main( ) int i; int a33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) coutaii“ “; (分数:2.00)A.15B.16C.510D.61034.能正确表示逻辑关系:“a10 或 a0”的 C+语言表达式是( )。(分数:2.00)A.a =10 or a =0B.a =0 | a =10C.a =10 if(*s) f(s,t); main() char str10=“abcdefg“,*p; p=str+strlen(str)/2+1; f(p,p-2); printf(“%s/n“,str); 程序运
8、行后的输出结果是_。(分数:2.00)A.abcdefgB.gfedcbaC.gbcdefaD.abedcfg二、填空题(每空 2 分,共 30 分)(总题数:15,分数:30.00)36.设置虚基类的目的是 1,通过 2 表示虚基类。(分数:2.00)填空项 1:_37.在 C+语言中每个类都有一个 1 指针,该指针指向正在调用成员函数的对象。(分数:2.00)填空项 1:_38.如果类 B 继承了类 A,则称类 A 为类 B 的基类,类 B 称为类 A 的 1。(分数:2.00)填空项 1:_39.若要在 C 盘根目录下作为二进制文件打开文件 testdat,则应该用的语句是 1。(分数:
9、2.00)填空项 1:_40.若要在 C 盘根目录下作为二进制文件打开文件 testdat,则应该用的语句是 1。(分数:2.00)填空项 1:_41.C+中封装性、继承性和 1 是面向对象思想的主要特征。(分数:2.00)填空项 1:_42.将以下程序写成三目运算表达式是 1。 if(a B) max=a; else max=b; (分数:2.00)填空项 1:_43.将 x+y 中的+运算符用友元函数重载应写为 1。(分数:2.00)填空项 1:_44.语句 int * i;i=new int 10;,释放指针 i 的语句是 1。(分数:2.00)填空项 1:_45.下列程序的执行结果为
10、1。 #includeiostream.h void main2 cout.fill( * ); cout.width(10); cout“hello“endl; (分数:2.00)填空项 1:_46.以下程序的输出结果是 1。 #includeiostreamh void main2 int a=0; a+=(a=8); cout a; (分数:2.00)填空项 1:_47.下列 for 语句的循环次数为 1。 for(int a=0,b=1;b void main( ) int a=10,b=20; couta“ “b; swap( t= * p; * p=*q;*q=t;执行程序时,先将
11、 a 的地址传递给指针变量 p,b 的地址传递给指针变量 q,然后将*p(a 的值)的值传递给t,将*q(b 的值)传递给 * p,将 t 的值传递给 * q,从而将 a 值和 b 值互换。4.下列语句的输出结果( )。 cout strlen(“/t/“/065/xff/n“); (分数:2.00)A.5 B.14C.8D.输出项不合法,无正常输出解析:该字符串中包含的字符是/t(跳格符)、/“ (双引号)、/065 (ASCII 值为八进制 065,也即十进制为 51 的字符)、/xff(ASCII 值为十六进制 ff,也即十进制为 255 的字符)、/n(换行符)。5.关于虚函数下面说的
12、正确的是(分数:2.00)A.若在重定义虚函数时使用了 virtual,则该重定义函数还是虚函数B.虚函数不能声明为友元C.子类必须重定义父类的虚函数D.虚函数不能是 static 的 解析:虚函数一定不能定义为静态的。虚函数可以声明为友元,子类也不是必须重定义父类的虚函数,若在重定义虚函数时使用了 virtual,则该重定义函数不一定还是虚函数。6.在 C+语言程序中,对象之间的相互通信通过( )。(分数:2.00)A.a=1;B.+i; C.a=a+1=5D.! (+a! =b-)解析:赋值表达式的组成是:在赋值运算符的左边是一变量,右边是一表达式。选项 B) =8+b+c=9 中,前半句
13、 a=8+b+c 正确,但的是 a+b+c=9 左边其实是一个表达式,而不是一个变量。选项 C) i=l23*4 中,连用两个双目运算符,双目运算符的用法是左右两端必须都是表达式或变量才行。选项 D) a=a+7=c+b,a+7=c+b 的左边也是个表达式,而非变量。 7.sizeof(float)是( )。(分数:2.00)A.一个双精度型表达式B.一个整型表达式 C.一种函数调用D.一个不合法的表达式解析:该函数用于数据类型和变量。注意:size of 操作符不能用于函数,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、void 类型等。8.关于模板下
14、列说法不正确的是( )。(分数:2.00)A.用类模板定义一个对象时,不能省略实参B.类模板只能有虚拟类型参数 C.类模板本身在编译中不会生成任何代码D.类模板的成员函数都是模板函数解析:本题考查模板概念。类模板可以有虚拟类型参数。9.当把以下四个表达式用作 if 语句的控制表达式时,有一个选项与其他三个选项含义 不同,这个选项是_。 (分数:2.00)A.k%2B.k%2=1C.(k%2)!=0D.!k%2=1 解析:本题选项 A、B、C 中表达式用作 if 语句控制表达式时,其值一致,即判断 k 的值是否为奇数,若 为奇数,其表达式为真,否则为假;而选项 D 的表达式“!k%2=1”相当于
15、“!(k%2)=1”,若 k 的值为奇 数,则此表达式的值为假。10.下列有关继承和派生的途述中,正确的是【 】(分数:2.00)A.如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员B.派生类的成员函数可以访问基类的所有成员C.基类对象可以赋值给派生类对象D.如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类 解析:派生类继承私有继承基类,该派生类对象可以访问基类中的公有成员和保护成员,而基类的私有成员在派生类中不可访问。如果派生类没有给出全部纯虚函数的实现,该派生类仍然是一个抽象类。11.在 C中用来实现运行时多态性的是【 】(分数:2.00)A.重载函数B.析构
16、函数C.构造函数D.虚函数 解析:本题考核虚函数。在 C语言中,多态性可分为两类:编译时的多态性和运行时的多态性。编译时的多态性是通过函数重载和模板体现。其实现机制称为静态联编(也译为静态绑定),即在编译阶段决定执行哪个同名的被调用函数:运行时的多态性是通过体现的,其实现机制称为动态联编(也译为动态绑定),即在编译阶段不能决定执行哪个同名的被调用函数,只在执行阶段才能依据要处理的对象类型来决定执行哪个类的成员函数。用来实现运行时多态性的是虚函数。12.通常拷贝构造函数的参数是( )。(分数:2.00)A.某个对象名B.某个对象的成员名C.某个对象的引用名 D.某个对象的指针名解析:拷贝初始化构
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 计算机等级考试 二级 C39 答案 解析 DOC
