【计算机类职业资格】二级C++笔试-351及答案解析.doc
《【计算机类职业资格】二级C++笔试-351及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-351及答案解析.doc(26页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-351 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.以下叙述中正确的是(分数:2.00)A.在类中,不作特别说明的数据成员均为私有类型B.在类中,不作特别说明的成员函数均为公有类型C.类成员的定义必须是成员变量在前、成员函数在后D.类成员的定义必须放在类定义体内部2.以下叙述中不正确的是(分数:2.00)A.一个类的友元函数可以无条件的使用这个类的私有成员B.静态成员函数可以直接访问非静态数据成员C.不可以声明抽象类的对象,但可以声明抽象类的指针变量D.静态数据成员为类的所有对象所共有3.对于 int a37;下列表示中
2、错误的是(分数:2.00)A.*(*a+3)B.*(a+1)5C.*(*(a+1)D.*(if(x=y+z)cout“* * * *“;else cout“#“;(分数:2.00)A.有语法错误不能通过编译B.输出*C.可以通过编译,但是不能通过连接,因而不能运行D.输出#6.已知类 A 有公用数据成员 a,且有 A obj2;A*const ptr=new A;则下列语句正确的是(分数:2.00)A.ptr-a=100;B.ptr=C.ptr+;D.ptr=obj2;7.在面向对象方法中,实现信息隐蔽是通过对象的某一特性来实现的,这个特性是(分数:2.00)A.封装B.类C.对象D.继承8.
3、已知 char a;int b;float c;double d;则表达式 a*b+c-d 结果为(分数:2.00)A.doubleB.intC.floatD.char9.假定有下列变量定义:int k=7,x=12;则能使值为 0 的表达式是(分数:2.00)A.x*=k-k%5B.x*=(k-k%5)C.x%=(k-=5)D.(x-=k)-(k+=5)10.在 int a=3,int*p=中,P 的值是(分数:2.00)A.变量 a 的地址值B.无意义C.变量 P 的地址值D.311.在数据流图(DFD)中,带有名字的箭头表示(分数:2.00)A.模块之间的调用关系B.程序的组成成分C.数
4、据的流向D.控制程序的执行顺序12.在表达式 x-y 中,“-“是作为非成员函数重载的运算符。若使用显式的函数调用代替直接使用运算符“-“,这个表达式还可以表示为(分数:2.00)A.operator-(y)B.operatot-(y,x)C.operator-(x)D.operator-(x,y)13.设有定义:class Cpublic:int value;int x,*p;则以下引用形式中,正确的是(分数:2.00)A.x=value;B.x=C:value;C.p=p=a;q=a;则下列选项目,合法的运算是(分数:2.00)A.p+q;B.p-qC.p*qD.p%q21.下面程序的输出
5、是main( )int x=100,a=10,b=20,ok1=5,ok2=0;if(aB)if(b!=15)if(!okl)x=1;elseif(ok2)x=10;x=-1;coutxendl;(分数:2.00)A.-1B.0C.1D.不确定的值22.以下选项中,与 k=n+完全等价的表达式是(分数:2.00)A.k=n,n=n+1B.n=n+1,k=nC.k=+nD.k+=n+123.下列关于抽象类的叙述不正确的是(分数:2.00)A.含有纯虚函数的类称作抽象类B.抽象类只能是基类C.抽象类不能被实例化D.纯虚函数可以被继承24.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪
6、些功能的阶段是(分数:2.00)A.概要设计B.需求分析C.可行性分析D.详细设计25.数据的独立性是数据库技术的重要特点之一。所谓数据独立性是指(分数:2.00)A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对26.在文件操作中,代表以追加方式打开文件的模式是(分数:2.00)A.ios:ateB.ios:appC.ios:outD.ios:trunc27.已知一函数的形参说明为 int arr56,则与此等效的形参说明为(分数:2.00)A.int arrB.int5C.int*a6D.int(*a)628.以下关于派生
7、机制的描述中,不正确的是(分数:2.00)A.派生类不仅可以继承基类的成员,也可以添加自己的成员B.设置 protected 成员是为派生类访问基类成员之用C.采用不同的继承方式,将限制派生类对基类成员的访问D.采用私有继承,派生类只能得到基类的公有成员29.以下使用不当会破坏面向程序设计特性的是(分数:2.00)A.派生类B.虚函数C.抽象类D.静态函数30.下述关于数据库系统的叙述中正确的是(分数:2.00)A.数据库系统中数据的一致性是指数据类型一致B.数据库系统比文件系统能管理更多的数据C.数据库系统减少了数据冗余D.数据库系统避免了一切冗余31.有以下程序int*f(int*x,in
8、t*y)if(*x*y)return x;elsereturn y;main( )int a=7,b=8,*p,*q,*r;p=q=r=f(p,q);cout*p“,“*q“,“*rendl;执行后输出结果是(分数:2.00)A.7,8,8B.7,8,7C.8,7,7D.8,7,832.下列有关类和对象的叙述不正确的是(分数:2.00)A.任何一个对象都归属于一个具体的类B.类与对象的关系和数据类型与变量的关系相似C.类的数据成员不允许是另一个类的对象D.一个类可以被实例化成多个对象33.若有以下程序段:int a=0,b=0,c=0;c=(a-=a-5,a=b,b+3);couta“,“b“
9、,“cendl;其输出结果是(分数:2.00)A.3,0,-10B.0,0,3C.-10,3,-10D.3,0,334.析构函数的特征包括(分数:2.00)A.一个类中只能定义一个析构函数B.析构函数与类名没有关系C.析构函数的定义只能在类体内部D.析构函数可以有一个或多个参数35.向一个栈顶指针为 HS 的链式栈中插入一个 s 所指的结点时,则执行(分数:2.00)A.HS-next=s;B.snext=HSnext;HSnext=s;C.s-next=HS;HS=s;D.snext=HS;HS=HSnext;二、填空题(总题数:15,分数:30.00)36.排序是计算机程序设计中的一种重要
10、操作,常见的排序方法有插入排序、 1 和选择排序等。(分数:2.00)填空项 1:_37.对有 n 个记录的表 r1n进行直接选择排序,所需要进行的关键字间的比较次数为 1。(分数:2.00)填空项 1:_38.在关系数据库中,用来表示实体之间联系的是 1。(分数:2.00)填空项 1:_39.在测试时,完全不考虑程序的内部结构和内部特征的测试方法称为 1 测试方法。(分数:2.00)填空项 1:_40.一个项目具有一个项目主管,一个项目主管可管理多个项目。则实体集“项目主管”与实体集“项目”的联系属于 1 的联系。(分数:2.00)填空项 1:_41.假定要访问一个结构指针 p 所指对象中的
11、 b 指针成员所指的对象,则表示方法为 1。(分数:2.00)填空项 1:_42.设 px 是指向一个类动态对象的指针变量,则执行“delete px;“语句时,将自动调用该类的 1。(分数:2.00)填空项 1:_43.若需要把一个函数“void Furic1;“定义为一个类 Sample 的友元函数,则应在类 Sample 的定义中加入一条语句 2。(分数:2.00)填空项 1:_44.类 clasg one 在声明 func 成员函数时发生错误,出错原因是_。class oneprivate:int a;public:void func(two;class twoprivate:int
12、b;friend vold one:func(two;void one:func(two(分数:2.00)填空项 1:_45.下列程序从保存整数的文本文件”c:Sample.dat”中依次取出每个数据并显示出来,同时统计并显示出所有数据的个数。程序划线处的表达式为_。#includestream.h#includestdlib.hvoid main( )ifstream fin(“c:Sample.dat“,los:nocreate);if(! fin)cout“文件无法打开!“endl;exit(1);int x,i=0;while(_)coutx“;i+;fin.close( );cout
13、endl“文件中所有整数个数:“iendl;(分数:2.00)填空项 1:_46.类中包含了一个静态成员函数,则 main 函数中和 P.fl(P);语句具有同样功能的语句为_。#includeiostream.hclass Mpublic:M(int A)A=a;B+=a;static void fl(M m);private:int A;static int B;void M:f1(M m)cout“A=“m.Aendl;cout“B=“m.Bendl;int M:B=10;void main( )M P(5);P.f1(P);(分数:2.00)填空项 1:_47.main 函数中发生编译
14、错误的语句是_。#includeiostream.hclass Apublic:int a;const int b;A( ):a(10),b(20)void fun( )constcout“a=“a“/tb=“bendl;void main( )A obj1;const A*ptr=new A;ptr=ptr-a=100;ptr-fun( );(分数:2.00)填空项 1:_48.下列程序中的重载函数 disp( )发生错误,错误原因是_。#includeiostream.hclass Sampleprivate:int m;static int st;public:Sample(int a)
15、m=a;st+=a;static void disp( )coutmendl;static void disp(Sample input)coutinput.mendl;int Sample:st=2;void main( )Sample First(2),Second(4);Sample:disp( );Sample:disp(Second);(分数:2.00)填空项 1:_49.类 time 可以输出 12 小时或 24 小时制的时间,现需要设计一个缺省构造函数,缺省值为 0 时 0 分 0 秒。该缺省构造函数为_。#includeiostream.hclass Timeint h,m,s
16、;public:Time(int hour=0,int min=0,int sec=0)settime(hour,min,sec);void settime(int hour,int min,int sec)h=hour;m=min;s=sec;void show24( )cout(h10?“0“:“)h“:“(m10?“0“:“)m“:“(s10?“0“:“)sendl;void showl2( )int temp=(h= =0 | h= =12)? 12:h%12;cout(temp10?“0“:“)temp“:“(m10?“0“:“)m“:“(s10?“0“:“)s(temp0;void
17、 main( )Time t(15,43,21);t.showl2( );t.show24( );(分数:2.00)填空项 1:_50.在下列基类的定义中,有无 virtual 修饰 use 成员函数的结果将不同,其原因是_。当 use( )为虚拟函数时的程序执行结果:sizeof (A)=8sized (B)=12sizeof (C)=16当 use( )非虚拟函数时的程序执行结果:sizeof(A)=4sized(B)=8sizeof(C)=12源程序如下:#includeiostream.hclass Grandadpublic:Grandad( ):money(10)int money
18、;virtual void use( );class Father:public Grandadpublic:Father( ):money(100)int money;void use( );class Son:public Fatherpublic:Son( ):money(300)int money;void use( );void main(void)Grandad A;Father B;Son C;cout“sizeof(A)=“sizeof(A)endl;cout“sizeof(B)=“sizeof(B)endl;cout“sizeof(C)=“sizeof(C)endl;(分数:
19、2.00)填空项 1:_二级 C+笔试-351 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.以下叙述中正确的是(分数:2.00)A.在类中,不作特别说明的数据成员均为私有类型 B.在类中,不作特别说明的成员函数均为公有类型C.类成员的定义必须是成员变量在前、成员函数在后D.类成员的定义必须放在类定义体内部解析:解析 类中默认的类型是私有类型,除非特别指定为公有或保护类型。同时,并没有强制要求成员函数和数据成员的排列顺序,如果类的成员函数在类定义体内部定义,则为内联函数,一般类的成员函数都在类定义体的外部实现。2.以下叙述中不正确的是(分数
20、:2.00)A.一个类的友元函数可以无条件的使用这个类的私有成员B.静态成员函数可以直接访问非静态数据成员 C.不可以声明抽象类的对象,但可以声明抽象类的指针变量D.静态数据成员为类的所有对象所共有解析:解析 静态成员函数不能直接访问非静态数据成员。静态成员只有一份,供同一类的不同对象共享。友元函数对类的访问是完全开放的,从而增加了访问类的灵活性,但却破坏了类的封装性。3.对于 int a37;下列表示中错误的是(分数:2.00)A.*(*a+3)B.*(a+1)5 C.*(*(a+1)D.*(if(x=y+z)cout“* * * *“;else cout“#“;(分数:2.00)A.有语法
21、错误不能通过编译B.输出*C.可以通过编译,但是不能通过连接,因而不能运行D.输出# 解析:解析 注意本题本意是考察 x=y+z,但是少写了一个=,因此逻辑表达式变成了赋值语句,故 x 的值为 0,即假,因此程序执行 else 部分。本题答案为 D。6.已知类 A 有公用数据成员 a,且有 A obj2;A*const ptr=new A;则下列语句正确的是(分数:2.00)A.ptr-a=100; B.ptr=C.ptr+;D.ptr=obj2;解析:解析 本题主要考察 const 的使用,const 根据其位置的不同修饰不同的成份,从而表现出灵活的特性,考生容易混淆。此处 const 修饰
22、的是指针,即指针本身不能改变,故选项 B、C 和 D 都是错误的。但是指针指向的地址里面的值确实可以改变的,因此选项 A 是正确答案。7.在面向对象方法中,实现信息隐蔽是通过对象的某一特性来实现的,这个特性是(分数:2.00)A.封装 B.类C.对象D.继承解析:解析 封装是面向对象方法中的一种信息隐蔽技术。8.已知 char a;int b;float c;double d;则表达式 a*b+c-d 结果为(分数:2.00)A.double B.intC.floatD.char解析:解析 本题考察混合运算表达式类型,由表达式中具有最高优先级的类型所确定,所以答案为A。9.假定有下列变量定义:
23、int k=7,x=12;则能使值为 0 的表达式是(分数:2.00)A.x*=k-k%5B.x*=(k-k%5)C.x%=(k-=5) D.(x-=k)-(k+=5)解析:解析 A 项:x=x*(7-7%5),x=7*5,x=35;B 项:x=x*(7-7%5),x=35;D 项:(x=x-k)-(k=k+5),5-12,-7;C 项:x=x%(k=k-5),x-12%2,x=0。故正确答案为 C 项。10.在 int a=3,int*p=中,P 的值是(分数:2.00)A.变量 a 的地址值 B.无意义C.变量 P 的地址值D.3解析:解析 本题实际是考察指针的含义。指针代表的是变量或函数
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 351 答案 解析 DOC
