【计算机类职业资格】二级C++笔试379及答案解析.doc

上传人:terrorscript155 文档编号:1324772 上传时间:2019-10-17 格式:DOC 页数:14 大小:76KB
下载 相关 举报
【计算机类职业资格】二级C++笔试379及答案解析.doc_第1页
第1页 / 共14页
【计算机类职业资格】二级C++笔试379及答案解析.doc_第2页
第2页 / 共14页
【计算机类职业资格】二级C++笔试379及答案解析.doc_第3页
第3页 / 共14页
【计算机类职业资格】二级C++笔试379及答案解析.doc_第4页
第4页 / 共14页
【计算机类职业资格】二级C++笔试379及答案解析.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、二级 C+笔试 379 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.以下选项中,与 k=n+完全等价的表达式是(分数:2.00)A.k=n,n=n+1B.n=n+1,k=nC.k=+nD.k+=n+12.下面的描述中错误的是(分数:2.00)A.调用函数时,实参可以是表达式B.调用函数时,实参与形参可以共用内存单元C.调用函数时,将为形参分配内存单元D.调用函数时,实参与形参的类型必须一致3.在最坏情况下,冒泡排序所需要的比较次数为(分数:2.00)A.n/2B.(n+1)/2C.n(n-1)/2D.n(n+1)/24.在 int

2、 a=3,int*p=中,P 的值是(分数:2.00)A.变量 a 的地址值B.无意义C.变量 P 的地址值D.35.若有以下程序段: int a=0,b=0,c=0; c=(a-=a-5,a=b,b+3); couta“,“b“,“cendl; 其输出结果是(分数:2.00)A.3,0,-10B.0,0,3C.-10,3,-10D.3,0,36.在数据流图(DFD)中,带有名字的箭头表示(分数:2.00)A.模块之间的调用关系B.程序的组成成分C.数据的流向D.控制程序的执行顺序7.析构函数的特征包括(分数:2.00)A.一个类中只能定义一个析构函数B.析构函数与类名没有关系C.析构函数的定

3、义只能在类体内部D.析构函数可以有一个或多个参数8.以下叙述中正确的是(分数:2.00)A.在类中,不作特别说明的数据成员均为私有类型B.在类中,不作特别说明的成员函数均为公有类型C.类成员的定义必须是成员变量在前、成员函数在后D.类成员的定义必须放在类定义体内部9.以下叙述中不正确的是(分数:2.00)A.一个类的友元函数可以无条件的使用这个类的私有成员B.静态成员函数可以直接访问非静态数据成员C.不可以声明抽象类的对象,但可以声明抽象类的指针变量D.静态数据成员为类的所有对象所共有10.下述关于数据库系统的叙述中正确的是(分数:2.00)A.数据库系统中数据的一致性是指数据类型一致B.数据

4、库系统比文件系统能管理更多的数据C.数据库系统减少了数据冗余D.数据库系统避免了一切冗余11.已知一函数的形参说明为 int arr56,则与此等效的形参说明为(分数:2.00)A.int arrB.int5C.int*a6D.int(*612.假定有下列变量定义: int k=7,x=12; 则能使值为 0 的表达式是(分数:2.00)A.x*=k-k%5B.x*=(k-k%5)C.x%=(k-=5)D.(x-=-(k+=5)13.对于 int a37;下列表示中错误的是(分数:2.00)A.*(*a+3)B.*(a+1)5C.*(*(a+1)D.*(A*const ptr=new A;则下

5、列语句正确的是(分数:2.00)A.ptr-a=100;B.ptr=C.ptr+;D.ptr=obj2;15.有以下程序 int*f(int*x,int*y) if(*x*y) return x; else return 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,816.以下使用不当会破坏面向程序设计特性的是(分数:2.00)A.派生类B.虚函数C.抽象类D.静态函数17.下列有关类和对象的叙述不正确的是(分数

6、:2.00)A.任何一个对象都归属于一个具体的类B.类与对象的关系和数据类型与变量的关系相似C.类的数据成员不允许是另一个类的对象D.一个类可以被实例化成多个对象18.下面的程序的结果是 main( ) int x=3,y=0, z=0; if(x=y+z)cout“* * * *“; else cout“#“; (分数:2.00)A.有语法错误不能通过编译B.输出*C.可以通过编译,但是不能通过连接,因而不能运行D.输出#19.在文件操作中,代表以追加方式打开文件的模式是(分数:2.00)A.ios:ateB.ios:appC.ios:outD.ios:trunc20.下列叙述中错误的是(分

7、数:2.00)A.二叉树不是线性结构B.线性表是非线性结构C.线性链表是线性结构D.栈与队列是线性结构21.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(分数:2.00)A.概要设计B.需求分析C.可行性分析D.详细设计22.下面关于 for 循环的正确描述是(分数:2.00)A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在 for 循环中,不能用 break 语句跳出循环体D.for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来23.以下关于派生机制的描述中,不正确的是(分数:2.00)A.派生类

8、不仅可以继承基类的成员,也可以添加自己的成员B.设置 protected 成员是为派生类访问基类成员之用C.采用不同的继承方式,将限制派生类对基类成员的访问D.采用私有继承,派生类只能得到基类的公有成员24.向一个栈顶指针为 HS 的链式栈中插入一个 s 所指的结点时,则执行(分数:2.00)A.HS-next=s;B.snext=HSnext;HSnext=s;C.s-next=HS;HS=s;D.snext=HS;HS=HSnext;25.设有定义: class C public: int value; ; int x,*p; 则以下引用形式中,正确的是(分数:2.00)A.x=value

9、;B.x=C:value;C.p= p=a; q=a; 则下列选项目,合法的运算是(分数:2.00)A.p+q;B.p-qC.p*qD.p%q27.在面向对象方法中,实现信息隐蔽是通过对象的某一特性来实现的,这个特性是(分数:2.00)A.封装B.类C.对象D.继承28.下列关于抽象类的叙述不正确的是(分数:2.00)A.含有纯虚函数的类称作抽象类B.抽象类只能是基类C.抽象类不能被实例化D.纯虚函数可以被继承29.下面程序的输出是 main( ) int x=100,a=10,b=20,ok1=5,ok2=0; if(aB) if(b!=15) if(!okl) x=1; else if(o

10、k2)x=10; x=-1; coutxendl; (分数:2.00)A.-1B.0C.1D.不确定的值30.数据的独立性是数据库技术的重要特点之一。所谓数据独立性是指(分数:2.00)A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对31.已知 char a;int b;float c;double d;则表达式 a*b+c-d 结果为(分数:2.00)A.doubleB.intC.floatD.char32.下列关于关系运算的叙述中正确的是(分数:2.00)A.投影、选择、连接是从二维表的行的方向来进行运算B.投影、选择、

11、连接是从二维表的列的方向来进行运算C.并、交、差是从二维表的列的方向来进行运算D.以上三种说法都不对33.即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员,这说明继承具有(分数:2.00)A.规律性B.传递性C.重复性D.多样性34.在表达式 x-y 中,“-“是作为非成员函数重载的运算符。若使用显式的函数调用代替直接使用运算符“-“,这个表达式还可以表示为(分数:2.00)A.operator-(B.operatot-(y,C.operator-(D.operator-(x,35.不带头结点的单链表 head 为空的判定条件是(分数:2.00)A.head=NULL

12、B.headnext=NULLC.headnext=headD.head!=NULL二、B填空题/B(总题数:15,分数:30.00)36.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、 1 和选择排序等。(分数:2.00)填空项 1:_37.对有 n 个记录的表 r1n进行直接选择排序,所需要进行的关键字间的比较次数为 1。(分数:2.00)填空项 1:_38.在关系数据库中,用来表示实体之间联系的是 1。(分数:2.00)填空项 1:_39.在测试时,完全不考虑程序的内部结构和内部特征的测试方法称为 1 测试方法。(分数:2.00)填空项 1:_40.一个项目具有一个项目

13、主管,一个项目主管可管理多个项目。则实体集“项目主管”与实体集“项目”的联系属于 1 的联系。(分数:2.00)填空项 1:_41.假定要访问一个结构指针 p 所指对象中的 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 在声明 f

14、unc 成员函数时发生错误,出错原因是_。 class one private: int a; public: void func(two ; class two private: int b; friend vold one:func(two ; void one:func(two (分数:2.00)填空项 1:_45.下列程序从保存整数的文本文件”c:Sample.dat”中依次取出每个数据并显示出来,同时统计并显示出所有数据的个数。程序划线处的表达式为_。 #includestream.h #includestdlib.h void main( ) ifstream fin(“c:Sam

15、ple.dat“,los:nocreate); if(! fin) cout“文件无法打开!“endl; exit(1); int x,i=0; while(_) coutx“; i+; fin.close( ); coutendl“文件中所有整数个数:“iendl; (分数:2.00)填空项 1:_46.类中包含了一个静态成员函数,则 main 函数中和 P.fl(P);语句具有同样功能的语句为_。 #includeiostream.h class M public: M(int A)A=a;B+=a; static void fl(M m); private: int A; static

16、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 函数中发生编译错误的语句是_。 #includeiostream.h class A public: int a; const int b; A( ):a(10),b(20) void fun( )const cout“a=“a“/tb=“bendl; ;void main( ) A obj1; const A*ptr=new A; ptr= ptr

17、-a=100; ptr-fun( ); (分数:2.00)填空项 1:_48.下列程序中的重载函数 disp( )发生错误,错误原因是_。 #includeiostream.h class Sample private: int m; static int st; public: Sample(int a)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)

18、; Sample:disp( ); Sample:disp(Second); (分数:2.00)填空项 1:_49.类 time 可以输出 12 小时或 24 小时制的时间,现需要设计一个缺省构造函数,缺省值为 0 时 0 分 0 秒。该缺省构造函数为_。 #includeiostream.h class Time int h,m,s; 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

19、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 main( ) Time t(15,43,21); t.showl2( ); t.show24( ); (分数:2.00)填空项 1:_50.在下列基类的定义中,有无 virtual 修饰 use 成员函数的结果将不同,其原因是_。 当

20、use( )为虚拟函数时的程序执行结果: sizeof(A)=8 sized(B)=12 sizeof(C)=16 当 use( )非虚拟函数时的程序执行结果: sizeof(A)=4 sized(B)=8 sizeof(C)=12 源程序如下: #includeiostream.h class Grandad public: Grandad( ):money(10) int money; virtual void use( ) ; class Father:public Grandad public: Father( ):money(100) int money; void use( ) ;

21、 class Son:public Father public: 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; (分数:2.00)填空项 1:_二级 C+笔试 379 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.以下选项中,与

22、k=n+完全等价的表达式是(分数:2.00)A.k=n,n=n+1 B.n=n+1,k=nC.k=+nD.k+=n+1解析:解析 本题考察自增运算符和赋值运算符的运算顺序。对于 n+,表达式的值为 n,n 值为 n+1;对+n 来说,表达式和 n 值均为 n+1。2.下面的描述中错误的是(分数:2.00)A.调用函数时,实参可以是表达式B.调用函数时,实参与形参可以共用内存单元 C.调用函数时,将为形参分配内存单元D.调用函数时,实参与形参的类型必须一致解析:解析 函数调用时,如果实参是表达式,则表达式的结果传入形参。形参和实参之间进行数据的拷贝,当然需要为形参临时分配内存单元,函数调用完成之

23、后,形参分配的单元被系统收回。 因此选项B 为正确答案。3.在最坏情况下,冒泡排序所需要的比较次数为(分数:2.00)A.n/2B.(n+1)/2C.n(n-1)/2 D.n(n+1)/2解析:解析 在长度为 n 的线性表中,在最坏情况下,冒泡排序需要经过 n/2 遍的从前往后的扫描和n/2 遍从后往前的扫描,共需 n(n-1)/2。4.在 int a=3,int*p=中,P 的值是(分数:2.00)A.变量 a 的地址值 B.无意义C.变量 P 的地址值D.3解析:解析 本题实际是考察指针的含义。指针代表的是变量或函数等在内存的地址。5.若有以下程序段: int a=0,b=0,c=0; c

24、=(a-=a-5,a=b,b+3); couta“,“b“,“cendl; 其输出结果是(分数:2.00)A.3,0,-10B.0,0,3 C.-10,3,-10D.3,0,3解析:解析 本题考察逗号表达式的使用规则。逗号表达式的求值步骤为:从左向右依次计算表达式的值,将最后一个表达式的值作为整个逗号表达式的值,本题中 C 最后结果为 b+3 的值即 3,a,b 的值均不变为 0,故正确答案为 B 项。6.在数据流图(DFD)中,带有名字的箭头表示(分数:2.00)A.模块之间的调用关系B.程序的组成成分C.数据的流向 D.控制程序的执行顺序解析:解析 在数据流图中,用标有名字的箭头来表示数据

25、流。7.析构函数的特征包括(分数:2.00)A.一个类中只能定义一个析构函数 B.析构函数与类名没有关系C.析构函数的定义只能在类体内部D.析构函数可以有一个或多个参数解析:解析 析构函数不能有参数,是唯一的,没有返回类型,其主要工作就是完成对象销毁前的资源回收等工作。8.以下叙述中正确的是(分数:2.00)A.在类中,不作特别说明的数据成员均为私有类型 B.在类中,不作特别说明的成员函数均为公有类型C.类成员的定义必须是成员变量在前、成员函数在后D.类成员的定义必须放在类定义体内部解析:解析 类中默认的类型是私有类型,除非特别指定为公有或保护类型。同时,并没有强制要求成员函数和数据成员的排列

26、顺序,如果类的成员函数在类定义体内部定义,则为内联函数,一般类的成员函数都在类定义体的外部实现。9.以下叙述中不正确的是(分数:2.00)A.一个类的友元函数可以无条件的使用这个类的私有成员B.静态成员函数可以直接访问非静态数据成员 C.不可以声明抽象类的对象,但可以声明抽象类的指针变量D.静态数据成员为类的所有对象所共有解析:解析 静态成员函数不能直接访问非静态数据成员。静态成员只有一份,供同一类的不同对象共享。友元函数对类的访问是完全开放的,从而增加了访问类的灵活性,但却破坏了类的封装性。10.下述关于数据库系统的叙述中正确的是(分数:2.00)A.数据库系统中数据的一致性是指数据类型一致

27、 B.数据库系统比文件系统能管理更多的数据C.数据库系统减少了数据冗余D.数据库系统避免了一切冗余解析:解析 数据库系统从整体角度看待和描述数据,数据不再面向某个应用,而是面向整个系统,因此数据可以被多个用户和多个应用程序共享使用。数据共享可以大大减少数据的冗余,节约存储空间。还能够避免数据之间的不相容性和不一致性。11.已知一函数的形参说明为 int arr56,则与此等效的形参说明为(分数:2.00)A.int arrB.int5C.int*a6D.int(*6 解析:解析 二维数组可以看作是一维数组的扩展。选项 D 表示的是一个一维数组,里面每个元素是一个指针,而指针肯定指向某个地址,从

28、而完成二维数组的扩展。考生要注意选项 C 中*和的运算优先级。12.假定有下列变量定义: int k=7,x=12; 则能使值为 0 的表达式是(分数:2.00)A.x*=k-k%5B.x*=(k-k%5)C.x%=(k-=5) D.(x-=-(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 项。13.对于 int a37;下列表示中错误的是(分数:2.00)A.*(*a+3)B.*(a+1

29、)5 C.*(*(a+1)D.*(A*const ptr=new A;则下列语句正确的是(分数:2.00)A.ptr-a=100; B.ptr=C.ptr+;D.ptr=obj2;解析:解析 本题主要考察 const 的使用,const 根据其位置的不同修饰不同的成份,从而表现出灵活的特性,考生容易混淆。此处 const 修饰的是指针,即指针本身不能改变,故选项 B、C 和 D 都是错误的。但是指针指向的地址里面的值确实可以改变的,因此选项 A 是正确答案。15.有以下程序 int*f(int*x,int*y) if(*x*y) return x; else return y; main( )

30、 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,7 C.8,7,7D.8,7,8解析:解析 value 作为类的数据成员在引用时可以通过对象来引用,也可以通过域操作符引入类名来限定。因此选项 A 和 C 可以排除,由于选项 D 中 p 是指针,它对指针变量的赋值方式是错误的。16.以下使用不当会破坏面向程序设计特性的是(分数:2.00)A.派生类B.虚函数C.抽象类D.静态函数 解析:解析 静态函数作为一种共享成份,过量使用或不当使用都可能造成程序间和对象间使用的

31、混乱。而派生类,抽象类和虚函数则是构成了类层次和多态性的基础,是 C+中面向对象思想的重要实现方式。17.下列有关类和对象的叙述不正确的是(分数:2.00)A.任何一个对象都归属于一个具体的类B.类与对象的关系和数据类型与变量的关系相似C.类的数据成员不允许是另一个类的对象 D.一个类可以被实例化成多个对象解析:解析 对象是类的实例,类的成员可以是其他类的对象。那么在该类实例化的时候,必须保证其他类的对象已经生成,否则将会出现错误。18.下面的程序的结果是 main( ) int x=3,y=0, z=0; if(x=y+z)cout“* * * *“; else cout“#“; (分数:2

32、.00)A.有语法错误不能通过编译B.输出*C.可以通过编译,但是不能通过连接,因而不能运行D.输出# 解析:解析 注意本题本意是考察 x=y+z,但是少写了一个=,因此逻辑表达式变成了赋值语句,故 x 的值为 0,即假,因此程序执行 else 部分。本题答案为 D。19.在文件操作中,代表以追加方式打开文件的模式是(分数:2.00)A.ios:ateB.ios:app C.ios:outD.ios:trunc解析:解析 本题考察的是流操作中的文件打开方式,in,out 和 app 分别表示读,写和追加。20.下列叙述中错误的是(分数:2.00)A.二叉树不是线性结构B.线性表是非线性结构 C

33、.线性链表是线性结构D.栈与队列是线性结构解析:解析 线性表肯定是线性结构。二叉树是非线性结构;线性链表是线性结构;栈与队列是特殊的线性表,也是线性结构;线性表是线性结构。21.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(分数:2.00)A.概要设计B.需求分析 C.可行性分析D.详细设计解析:解析 在需求分析阶段中,要求能准确地确定软件系统必须做什么和必须具备哪些功能。正确答案为 B。22.下面关于 for 循环的正确描述是(分数:2.00)A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在 for 循环中,不

34、能用 break 语句跳出循环体D.for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 解析:解析 for 循环作为 C 语言中的一种重要的控制结构之一。23.以下关于派生机制的描述中,不正确的是(分数:2.00)A.派生类不仅可以继承基类的成员,也可以添加自己的成员B.设置 protected 成员是为派生类访问基类成员之用C.采用不同的继承方式,将限制派生类对基类成员的访问D.采用私有继承,派生类只能得到基类的公有成员 解析:解析 继承方式不同,派生类能够访问的基类的成员数量也不同。继承方式有三种:公有继承,私有继承和保护继承,每种继承方式结合成员函数的类型可以组合成不同的

35、访问级别,从而提供了灵活多样的派生类访问基类的权限。24.向一个栈顶指针为 HS 的链式栈中插入一个 s 所指的结点时,则执行(分数:2.00)A.HS-next=s;B.snext=HSnext;HSnext=s;C.s-next=HS;HS=s; D.snext=HS;HS=HSnext;解析:解析 向链式栈中插入一个结点,就是在单链表的表头插入一个结点,同时将新结点的位置赋予栈顶指针。所以答案为 C。25.设有定义: class C public: int value; ; int x,*p; 则以下引用形式中,正确的是(分数:2.00)A.x=value; B.x=C:value;C.

36、p= p=a; q=a; 则下列选项目,合法的运算是(分数:2.00)A.p+q;B.p-q C.p*qD.p%q解析:解析 本题考核指针的运算。C+语言中,指向同一字符串的指针之间可以,也只能进行减运算,减运算后返回的是一整型数,表示指针之间的地址偏移量。27.在面向对象方法中,实现信息隐蔽是通过对象的某一特性来实现的,这个特性是(分数:2.00)A.封装 B.类C.对象D.继承解析:解析 封装是面向对象方法中的一种信息隐蔽技术。28.下列关于抽象类的叙述不正确的是(分数:2.00)A.含有纯虚函数的类称作抽象类B.抽象类只能是基类 C.抽象类不能被实例化D.纯虚函数可以被继承解析:解析 抽

37、象类是指包含纯虚函数的类,基类和派生类都可以是抽象类,给其他派生类提供参考,由于含纯虚函数,故抽象类不能实例化。29.下面程序的输出是 main( ) int x=100,a=10,b=20,ok1=5,ok2=0; if(aB) if(b!=15) if(!okl) x=1; else if(ok2)x=10; x=-1; coutxendl; (分数:2.00)A.-1 B.0C.1D.不确定的值解析:解析 本题考察 if 语句的嵌套,else 总是与最近的那个 if 配对,只要考生按照逻辑表达式的值进行细心判断就可以得到正确的答案。考生需要注意的是,在 C+语言中,0 表示假,非 0 即

38、为真,因此可以用数字作为逻辑判断的依据。30.数据的独立性是数据库技术的重要特点之一。所谓数据独立性是指(分数:2.00)A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对 解析:解析 数据独立性是指物理独立性和逻辑独立性。物理独立性是指由于数据的存储结构与逻辑结构之间由系统提供映象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。逻辑独立性是指由于数据的局部逻辑结构与总体逻辑结构之间也由系统提供映象,使得当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可

39、以不必修改。由此可知,选项 A、B 和 C 中的说法都是错误的。正确答案是 D。31.已知 char a;int b;float c;double d;则表达式 a*b+c-d 结果为(分数:2.00)A.double B.intC.floatD.char解析:解析 本题考察混合运算表达式类型,由表达式中具有最高优先级的类型所确定,所以答案为A。32.下列关于关系运算的叙述中正确的是(分数:2.00)A.投影、选择、连接是从二维表的行的方向来进行运算B.投影、选择、连接是从二维表的列的方向来进行运算 C.并、交、差是从二维表的列的方向来进行运算D.以上三种说法都不对解析:解析 A 和 B 是互

40、相矛盾的,答案必然是这两者之_。在关系模型的数据语言中,常规的集合运算(并、交、差、笛卡尔积等),是将关系(即二维表)看成是元组的集合,这些运算主要是从二维表的行的方向来进行的;投影、选择、连接等运算主要是从二维表的列的方向来进行运算。正确答案是 B。33.即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员,这说明继承具有(分数:2.00)A.规律性B.传递性 C.重复性D.多样性解析:解析 继承具有传递性,从而在类的层次结构中才表现出丰富多彩的特性,呈现出动态性。34.在表达式 x-y 中,“-“是作为非成员函数重载的运算符。若使用显式的函数调用代替直接使用运算符“-

41、“,这个表达式还可以表示为(分数:2.00)A.operator-(B.operatot-(y,C.operator-(D.operator-(x, 解析:解析 本题考核运算符 l 的重载。运算符函数有两种调用形式。第一种是像一般函数那样用函数名进行调用,如 c1.operator+(c2)或 operator+(c1,c2)。第二种是通过运算符构成表达式的形式进行调用,如 c1+c2。所以选项 D 的标书是正确的。35.不带头结点的单链表 head 为空的判定条件是(分数:2.00)A.head=NULL B.headnext=NULLC.headnext=headD.head!=NULL解

42、析:解析 在不带头结点的单链表 head 中,head 指向第一个元素结点,head=NULL 表示该链表为空,所以答案为 A。二、B填空题/B(总题数:15,分数:30.00)36.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、 1 和选择排序等。(分数:2.00)填空项 1:_ (正确答案:交换排序)解析:解析 常见的排序方法有插入排序(包括简单插入排序法和希尔排序法等)、交换排序(包括冒泡排序和快速排序法等)和选择排序(包括简单选择排序和堆排序等)。37.对有 n 个记录的表 r1n进行直接选择排序,所需要进行的关键字间的比较次数为 1。(分数:2.00)填空项 1:_

43、 (正确答案:n(n-1)/2)解析:解析 选择排序的思想为:扫描整个线性表,从中选出最小的元素,将它交换到表的最前面;然后对剩下的子表采用同样的方法,直到子表空为止。第一个元素需要比较 n-1 次,第二次元素需要比较n-2 次,依次类推,倒数第二个元素只须比较 1 次即可,所以总的比较次数为:(n-1)+(n-2)+2+1=n(n-1)/2。38.在关系数据库中,用来表示实体之间联系的是 1。(分数:2.00)填空项 1:_ (正确答案:二维表)解析:解析 在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。即关系模型是用表格数据来表示实体本身及其相互之间的联系。39.在测试时,完

44、全不考虑程序的内部结构和内部特征的测试方法称为 1 测试方法。(分数:2.00)填空项 1:_ (正确答案:黑盒)解析:解析 黑盒测试方法只是根据程序功能导出测试用例,完全不考虑程序的内部结构和内部特征。40.一个项目具有一个项目主管,一个项目主管可管理多个项目。则实体集“项目主管”与实体集“项目”的联系属于 1 的联系。(分数:2.00)填空项 1:_ (正确答案:一对多)解析:解析 实体集“项目主管”与实体集“项目”的联系属于一对多的联系。41.假定要访问一个结构指针 p 所指对象中的 b 指针成员所指的对象,则表示方法为 1。(分数:2.00)填空项 1:_ (正确答案:*(p-b))解

45、析:解析 注意运算符的优先级问题,可用括号括起来以明确含义。42.设 px 是指向一个类动态对象的指针变量,则执行“delete px;“语句时,将自动调用该类的 1。(分数:2.00)填空项 1:_ (正确答案:析构函数)解析:解析 采用 new 进行动态分配内存生成新对象的时候,对象执行构造函数,在执行 delete 时,执行对象的析构函数以回收资源。43.若需要把一个函数“void Furic1;“定义为一个类 Sample 的友元函数,则应在类 Sample 的定义中加入一条语句 2。(分数:2.00)填空项 1:_ (正确答案:friend void Func-|_|-;)解析:解析

46、 注意 friend 关键词应加在函数的前面,表示该函数作为本类的一个友元函数。44.类 clasg one 在声明 func 成员函数时发生错误,出错原因是_。 class one private: int a; public: void func(two ; class two private: int b; friend vold one:func(two ; void one:func(two (分数:2.00)填空项 1:_ (正确答案:class one 前没有声明语句 class two;)解析:解析 当一个类作为另一个类的成员函数、成员函数的参数或其他情况的时候,要确保编译器能正确解析。由于在 rclass orle 之前没有关于 class two 的任何说明,而在 class one 的 func 函数中却用了 class two 类的参数。因此是错误的。45.下列程序从保存整数的文本文件”c:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1