【计算机类职业资格】二级C++笔试-248及答案解析.doc
《【计算机类职业资格】二级C++笔试-248及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-248及答案解析.doc(21页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-248 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.拷贝构造函数的参数一般是(分数:2.00)A.某对象名B.某对象成员名C.某对象的引用名D.指向对象的指针名2.类 A是类 B的友元,类 B是类 C的友元,则下列说法正确的是(分数:2.00)A.类 B是类 A的友元B.类 C是类 A的友元C.类 A是类 C的友元D.以上都不对3.有如下程序#includeiostream.hvoid main( )char ch25=“6937“,“8254“,*p2;int i,j,s=0;for(i=0;i2;i+)pi=chi;
2、for(i=0;i2;i+)for(j=0;pij/0;j+=2)s=10*s+pij0;couts;该程序的输出结果是(分数:2.00)A.69825B.63825C.6385D.6938254.sizeof(float)是(分数:2.00)A.一个双精度型表达式B.一个整型表达式C.一种函数调用D.一个不合法的表达式5.关于静态数据成员的描述中正确的是(分数:2.00)A.类的静态数据成员不是类的所有对象共享的数据B.类的静态数据成员不能被类的成员函数调用C.类的静态数据成员不能被类的构造函数调用D.类的静态数据成员必须进行初始化6.下面叙述不正确的是(分数:2.00)A.基类的保护成员在
3、派生类中仍然是保护的成员B.基类的保护成员在公有派生类中仍然是保护的C.基类的保护成员在私有派生类中仍然是私有的D.对基类成员的访问必须是无二义性7.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,在划线处应填入的选项是 #includeiostream.hvoid main( )int a,b,t;cinab; f while(_)if(ab) t=a;a=b;b=t;cout a “ “ b end1;cin a b;(分数:2.00)A.!a=bB.a!=bC.a=bD.a=b8.对于下面的程序ifstream fin(c:/test.txt);if(
4、fin)cout“ok“;elsecout“wrong“;对于 if语句中的内容可以换为(分数:2.00)A.fin.fail( ):B.fin.bad( );C.fin.good( );D.fin.eof( );9.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(分数:2.00)A.软件投机B.软件危机C.软件工程D.软件产生10.以下程序的输出结果是#includeiostream.hlong fun(int n)long s;if(n=1|n=2)s=2;else s=n-fun(n-1);return s;void main( )coutfun(3);(分数:2.00
5、)A.1B.2C.3D.411.下列函数的运行结果是#includeiostream.hint f(int a,int B) int c;if(ab) c=1else if(ab) c=0;else c=-1;return(c) ;void main( )int i=2,j=3;int p=f(i,j);cout p;(分数:2.00)A.-1B.1C.2D.编译出错,无法运行12.对以下说明语句的正确理解是int a10=6,7,8,9,10;(分数:2.00)A.将 5个初值依次赋给 s 1至 a 5B.将 5个初值依次赋给 a 0至 a 4C.将 5个初值依次赋给 a 6至 a l0D.
6、因为数组长度与初值的个数不相同,所以此语句不正确13.下面不属于软件设计原则的是(分数:2.00)A.抽象B.模块化C.自底向上D.信息隐蔽14.下列 SQL语句中,用于修改表结构的是(分数:2.00)A.ALTERB.CREATEC.UPDATED.INSERT15.设有 int x=11;,则表达式(x+*2/3)的值是(分数:2.00)A.7B.8C.11D.1216.下面这个程序的结果是#includeiostream.hclass Aprivate:int a;public:void seta( );int geta( );void A:seta( )a = 1;int A:geta
7、( ) return a;class Bprivate:int a;public:void seta( );int geta( );void B:seta( )a=2;int B:geta( )return a; class C:public A,public Bprivate:int b;public:void display( );void C:display( )int b=geta( );cout b;void main( )C c;c.seta( );c.display( );(分数:2.00)A.1B.2C.随机输出 1或 2D.程序有错17.在计算机中,算法是指(分数:2.00)
8、A.加工方法B.解题方案的准确而完整的描述C.排序方法D.查询方法18.有如下说明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+819.对表达式 for(表达式 1;表达式 3)可理解为(分数:2.00)A.for(表达式 1;0;表达式 3)B.for(表达式 1;1;表达式 3)C.for(表达式 1;表达式 3;)D.for(;表达式 3)20.以下对 C+语言函数的有关描述中,正确的是(分数:2.00)A.在 C+语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实
9、参B.C+语言函数既可以嵌套定义又可以递归调用C.函数必须无返回值,否则不能使用函数D.函数必须有返回值,返回值类型不定21.以下不正确的定义语句是(分数:2.00)A.double x5=2.0,4.0,6.0,8.0,10.0;B.int y5=0,1,3,5,7,9;C.char c1 =1,2,3,4,5;D.char c2 =/x10,/xa,/x8;22.数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及(分数:2.00)A.数据的存储结构B.计算方法C.数据映象D.逻辑存储23.关系模型允许定义 3类数据约束,下列不属于数据约束的是(分数:2.0
10、0)A.实体完整性约束B.参照完整性约束C.域完整性约束D.用户自定义的完整性约束24.下列运算符中全都可以被友元函数重载的是(分数:2.00)A.=,+,- ,/B. , +,( ),newC.-,+ , * , D. , ,+,*25.对于模板定义关键字 class和 typename说法不正确的是(分数:2.00)A.程序中的 class并不能都替换为 typenameB.class和 typename都可互相替换C.程序中的 typename都能替换为 classD.程序中的部分 class可以替换为 typename26.C+语言中标点符号中表示一条预处理命令开始的是(分数:2.00
11、)A.#B.;C.*D.27.每个 C+程序中都必须有且仅有一个(分数:2.00)A.类B.预处理命令C.主函数D.语句28.串的长度是(分数:2.00)A.串中不同字符的个数B.串中不同字母的个数C.串中所含字符的个数且字符个数大于零D.串中所含字符的个数29.开发大型软件时,产生困难的根本原因是(分数:2.00)A.大系统的复杂性B.入员知识不足C.客观世界千变万化D.时间紧、任务重30.下表正确的是在父类中的访问属性 访问修饰符 在子类中的访问属性(分数:2.00)A.public private 不能直接访问B.protect public publicC.private public
12、 不能直接访问D.protect private protect31.不合法的 main函数命令行参数表示形式是(分数:2.00)A.main(int a,char*c )B.main(int arc,char*arv)C.main(int argc,char*argv)D.main(int argv,char*argc )32.设有程序段int k=10;while(k=0)k=k1;则下面描述中正确的是(分数:2.00)A.循环执行 10次B.无限循环C.循环体语句一次也不执行D.循环体语句执行一次33.以下不属于对象的基本特点的是(分数:2.00)A.分类性B.多态性C.继承性D.封装性
13、34.以下程序的输出结果是#includeiostream.hvoid main( )char x=040;cout (X1) ;(分数:2.00)A.100B.80C.64D.3235.数据库、数据库系统和数据库管理系统之间的关系是(分数:2.00)A.数据库包括数据库系统和数据库管理系统B.数据库系统包括数据库和数据库管理系统C.数据库管理系统包括数据库和数据库系统D.3者没有明显的包含关系二、填空题(总题数:13,分数:30.00)36.长度为 n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为 【1】 。(分数:2.00)填空项 1:_3
14、7.用树型结构表示实体类型及实体间联系的数据模型称为 【2】 。(分数:2.00)填空项 1:_38.类是一个支持集成的抽象数据类型,而对象是类的 【3】 。(分数:2.00)填空项 1:_39.数据流图的类型有 【4】 和事务型。(分数:2.00)填空项 1:_40.当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的 【5】 。(分数:2.00)填空项 1:_41.在 C+语言的面向对象程序设计框架中, 【6】 是程序的基本组成单元。(分数:2.00)填空项 1:_42.C+语言程序的注释可以出现在程序中的任何地方,一个注释以 【
15、7】 作为开始和结束的标记。(分数:2.00)填空项 1:_43.以下程序的输出结果是 【8】 。#includeiostream.hvoid fun( )static int a=0;a+ =2;cout a “ “;void main( )int cc;for(cc=1;cc4;cc+)fun( );coutend1;(分数:2.00)填空项 1:_44.用以下语句调用库函数 malloc,使字符指针 st指向具有 11个字节的动态存储空间,请填空。st=(char*) 【9】 ;(分数:2.00)填空项 1:_45.以下程序的输出结果是 【10】 。#includeiostream.hu
16、nsigned fun (unsigned num)unsigned k=1;dok*=num%10;num/=10; while(num);return k;void main( )unsigned n=26;cout fun(n) end1;(分数:2.00)填空项 1:_46.下列程序在构造函数和析构函数中申请和释放类的数据成员 int *a,申请时使用形参 b初始化 a,请填空。class Apublic:A(int b) ;A( );private:int *a;A:A(int b) 【11】 ;A:A( )【12】 ;(分数:4.00)填空项 1:_47.C+语言中的多态性是在编译
17、时通过 【13】 和模板体现的,在运行时是通过 【14】 体现的。(分数:4.00)填空项 1:_48.将 x+y*z中的“+”用成员函数重载,“*”用友元函数重载应写为 【15】 。(分数:2.00)填空项 1:_二级 C+笔试-248 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.拷贝构造函数的参数一般是(分数:2.00)A.某对象名B.某对象成员名C.某对象的引用名 D.指向对象的指针名解析:解析 C+语言中拷贝构造函数的参数一般是某个对象的引用名。2.类 A是类 B的友元,类 B是类 C的友元,则下列说法正确的是(分数:2.00)A
18、.类 B是类 A的友元B.类 C是类 A的友元C.类 A是类 C的友元D.以上都不对 解析:解析 选项 A、选项 B和选项 C都不正确,因为友元关系是单项的,并且没有交换性、传递性。3.有如下程序#includeiostream.hvoid main( )char ch25=“6937“,“8254“,*p2;int i,j,s=0;for(i=0;i2;i+)pi=chi;for(i=0;i2;i+)for(j=0;pij/0;j+=2)s=10*s+pij0;couts;该程序的输出结果是(分数:2.00)A.69825B.63825C.6385 D.693825解析:解析 该题主要要搞清
19、楚以下几点:定义了一个指针数组 char*p2后,程序中第一个循环 for(i=0;i2;i+)pi=chi;的作用是使指针数组的 P0元素(它本身是一个指针)指向了二维数组 ch的第一行字符串,并使指针数组的 p1元素指向了二维数组 ch的第二行字符串,这样,就使指针数组 p和二维数组 ch建立起了一种对应关系,以后对二维数组 ch的某个元素的引用就有两种等价的形式: chij或 pij。对二维数组 ch的初始化,使其第一行 ch0中存入了字符串“6937”,第二行 chl中的内容为字符串“8254”。程序中第二个循环中的循环体 s=s*10+pij-0;的功能是这样的,每执行一次,将 s中
20、的值乘以 10(也即,将 s中的数值整体向左移动一位,并在空出来的个位上添一个 o),再将当前 Pij中的字符量转换为相应的数字,然后把这个数字加到 s的个位上。注意到内层循环的循环条件pij/0是指 pij中的字符只要不是字符串结束标志/0就继续循环,语句 j+=2;是使下标 j每次增加 2,也即一个隔一个地从 pi所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从 p 0所指向的字符串“6937”中一个隔一个地取出字符,分别是“6”和“3”,然后从 p1所指向的字符串“8254”中一个隔一个地取出字符,分别是“8”和“5”,同时经过转换和相加运算后,结果s中的值应该是 638
21、5。4.sizeof(float)是(分数:2.00)A.一个双精度型表达式B.一个整型表达式 C.一种函数调用D.一个不合法的表达式解析:解析 该函数用于数据类型和变量。注意:sizeof 操作符不能用于函数,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、void 类型等。5.关于静态数据成员的描述中正确的是(分数:2.00)A.类的静态数据成员不是类的所有对象共享的数据B.类的静态数据成员不能被类的成员函数调用C.类的静态数据成员不能被类的构造函数调用D.类的静态数据成员必须进行初始化 解析:解析 C+类中的静态成员变量是该类中所有对象所共有的,它能
22、够被类中的任何函数调用,所以选项 A,选项 B,选项 C是错误的。而类的静态数据成员是必须要进行初始化才能使用的。6.下面叙述不正确的是(分数:2.00)A.基类的保护成员在派生类中仍然是保护的成员 B.基类的保护成员在公有派生类中仍然是保护的C.基类的保护成员在私有派生类中仍然是私有的D.对基类成员的访问必须是无二义性解析:解析 C+语言中如果基类的成员是保护的,它被继承后在子类中该成员可能是保护的,也可能不是,主要看继承的权限是 public还是 protected或 private 的。7.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,在划线处应填入
23、的选项是 #includeiostream.hvoid main( )int a,b,t;cinab; f while(_)if(ab) t=a;a=b;b=t;cout a “ “ b end1;cin a b;(分数:2.00)A.!a=bB.a!=b C.a=bD.a=b解析:解析 根据本题提出的条件可知,控制循环的表达式应该是所输入的两数互不相等,也即只有满足这一条件时,两数才能进行排序输出的操作,由此得出循环的控制表达式应该为 a!=b。8.对于下面的程序ifstream fin(c:/test.txt);if(fin)cout“ok“;elsecout“wrong“;对于 if语句
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 248 答案 解析 DOC
