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

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

1、二级 C+笔试-420 及答案解析(总分:84.00,做题时间:90 分钟)一、选择题(总题数:35,分数:60.00)1.针对数组定义 int data10;,下列表述中错误的是( )。A) 用*data 可访问到数组的首元素B) 用 data9可访问到数组的末元素C) 用 data10访问数组元素会超出数组边界D) data 共有 10 个元素,其首元素是 data-1(分数:2.00)A.B.C.D.2.执行语句: coutsetfill(*)setw(10)setfill(#)left123 “OK“end1;后将输出A) 123*OKB) 123#OKC) 123*OK*D) 123

2、#OK#(分数:1.00)A.B.C.D.3.定义如下枚举类型:enumMonday,Tuesday,Wednesday,Thrusday,Friday=2:则下列语句正确的是A) 表达式 Wednesday=Friday 的值是 trueB) Day day;day=3;C) Day day;day=Monday+3;D) Day day;day=Tuesday+10;(分数:1.00)A.B.C.D.4.以下程序的输出结果是( )。#include iostream.hVoid main()int a33=1,2),3,4,5,6i,j,s=0;for(i=1;i3;i+)for(j=0;

3、ji;j+) s+=aij;coutsendl;A) 14 B) 19C) 20 D) 21(分数:2.00)A.B.C.D.5.有如下类声明:class XAint x;public:XA(int n)x=n;class XB:public XAint y;public:XB(int a,int b);在构造函数 XB 的下列定义中,正确的是( )。A) XB:XB(int a,int b):x(a),y(b)B) XB:XB(int a,int b):XA(a),y(b)C) XB:XB(int a,int b):x(a),XB(b)D) XB:XB(int a,int b):XA(a),

4、XB(b)(分数:2.00)A.B.C.D.6.在数据流图(DFD) 中,带有名字的箭头表示A) 模块之间的调用关系 B) 程序的组成成分C) 控制程序的执行顺序 D) 数据的流向(分数:2.00)A.B.C.D.7.有以下程序:#include iostreamusing namespace std;int main()int num23,*p;int t,i,j,k=10;p=num0;for(i=0;i2;i+)for(j=0;j3;j+)k+;*p=k;for(t=2;t*p;t+)if(!(*pt)j-; *p-;break;*p+;cout*(p-1)end1;return 0;程

5、序运行后的输出结果是( )。A) 19 B) 11 C) 29 D) 23(分数:1.00)A.B.C.D.8.C+中的类有两种用法:一种是类的实例比,即生成类的对象,并参与系统的运行;另一种是通过( )派生出新的类。A) 复用 B) 继承 C) 封装 D) 引用(分数:1.00)A.B.C.D.9.在 C+中,实现封装性需借助于( )。A) 枚举 B) 类 C) 数组 D) 函数(分数:2.00)A.B.C.D.10.设有以下程序段:int a5=0,*p,*q;p=a;q=a;则下列选项中,合法的运算是( )。A) p+q B) p-qC) p*q D) p%q(分数:2.00)A.B.C

6、.D.11.下列说法有错误的是 _。A) 公有继承时基类的 public 成员在派生类中仍是 publicB) 私有继承时基类的 public 成员在派生类中为 privateC) 保护继承时基类的 protected 成员在派生类中是 protectedD) 保护继承时基类的 private 成员在派生类中是 protected(分数:2.00)A.B.C.D.12.下列程序的运行结果为 #includeiostreamhvoid print(double a) cout+a;void print(int a,int b)coutba;Void main()print(1.2); cout“

7、 “; print(3,4);A)1.2 34 B)2.2 34 C)1.2 43 D)2.2 43(分数:1.00)A.B.C.D.13.有如下函数模板定义: templateclass T T func(T x,T y)return x*x+y*y; 在下列对 func 的调用中,错误的是 A) func(3,5); B) func(30,55); C) func(3,55); D) funeint(3,55);(分数:2.00)A.B.C.D.14.下列叙述中错误的是A) 二叉树不是线性结构 B) 线性表是非线性结构C) 线性链表是线性结构 D) 栈与队列是线性结构(分数:2.00)A.

8、B.C.D.15.在 C+语言中函数返回值的类型是由( )决定的。A) 调用该函数时系统临时B) return 语句中的表达式类型C) 定义该函数时所指定的函数类型D) 调用该函数时的主调函数类型(分数:2.00)A.B.C.D.16.下列不是在关系代数中专门的关系运算的是( )。A) 插入 B) 连接 C) 选择 D) 投影(分数:2.00)A.B.C.D.17.在数据库系统中,把具有以下特征中之 _ 两个特征的数据模型称为网状模型。A) 允许有一个以上的结点没有双亲B) 有且仅有一个结点无双亲C) 根以外的结点有且仅有一个双亲D) 一个结点可以有多个双亲(分数:2.00)A.B.C.D.1

9、8.在位运算中,操作数每左移一位,其结果相当于A)操作数乘以 2 B)操作数除以 2 C)操作数除以 4 D)操作数乘以 4(分数:1.00)A.B.C.D.19.数据库设计的根本目标是要解决A) 数据共享问题 B) 数据安全问题C) 大量数据存储问题 D) 简化数据维护(分数:2.00)A.B.C.D.20.有如下程序:#includeiostream)using namespace std;classBasepublic:Base(int x0)coutx;Class Derived:public Basepublic:Derived(int x0)coutx;private:Base V

10、al;int main()Derived d(1);return 0;A) 100 B) 000 C) 010 D) 001(分数:2.00)A.B.C.D.21.“商品”与“顾客”两个实体集之间联系一般是( )。A) 一对一 B) 多对多 C) 一对多 D) 多对一(分数:2.00)A.B.C.D.22.设有 int x11;,则表达式(x+*2/3)的值是( )。A) 7 B) 8 C) 11 D) 12(分数:2.00)A.B.C.D.23.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化( )。A与虚基类下面的派生类个数有关 B多次

11、 C两次 D一次(分数:1.00)A.B.C.D.24.语句 ofstream f(“SALARYDAT“,iosappiosbinary);的功能是建立流对象 f,试图打开文件SALARYDAT 并与之连接,并且A)若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B)若文件存在,将其置为空文件;若文件不存在,打开失败C)若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D)若文件存在,打开失败;若文件不存在,建立一个新文件(分数:1.00)A.B.C.D.25.若执行下面的程序时,从键盘上输入 3 和 4,则输出结果是main( )int a,b,s;cin

12、ab;s=a;if(aB)s=b;s=s*s;coutsendl;A) 14 B) 16 C) 18 D) 20(分数:2.00)A.B.C.D.26.有如下函数模板定义:templatetypename T1,typename T2,typename T3T2 plus T1 t1,T3 t3)return t1+t3;则以下调用中正确是A) plus(3,5L);B) plus(3,5L);C) plusint(3,5L);D) plusint,double(3,5L);(分数:1.00)A.B.C.D.27.有以下程序:#include iostream#include mathusin

13、g namespace std;class pointprivate:double x;double y;public:point(double a,double b) x=a;y=b;friend double distance(point a,point b) ;double distance(point a,point b) return sqrt (a.x-b.x)* (a.x-b.x)+(a.y-b.y)*(a.y-b.y);int main ( )point pl(1,2);point p2 (5, 2);coutdistance (pl,p2) end1;return 0;程序运

14、行后的输出结果是( )。A) 1 B) 5 C) 4 D) 6(分数:1.00)A.B.C.D.28.在下列函数原型中,可以作为类 AA 构造函数的是( )。A) void AA(int); B) int AA();C) AA(int)const; D) AA (int);(分数:2.00)A.B.C.D.29.一个函数带有参数说明时,则参数的默认值应该在( )中给出。A) 函数定义 B) 函数声明C) 函数定义或声明 D) 函数调用(分数:2.00)A.B.C.D.30.在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( )来实现。A) 调用语句 B) 命令C) 中令 D) 消息

15、(分数:2.00)A.B.C.D.31.下列叙述中正确的是A) 在模块化程序设计中,一个模块应尽量多的包括与其他模块联系的信息B) 在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节C) 在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则D) 在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法(分数:2.00)A.B.C.D.32.最简单的交换排序方法是( )。A) 快速排序 B) 选择排序C) 堆排序 D) 冒泡排序(分数:2.00)A.B.C.D.33.设栈 S 的初始状态为空。元素 a,b,c,d,e,f 依次通过栈 S,若出栈的顺序为 b,d,

16、 c,f,e,a,则栈 S 的容量至少应该为A) 3 B) 4 C) 5 D) 6(分数:2.00)A.B.C.D.34.下列 for 循环语句执行的次数是 _。for (int i=0, x=0; !xi+)A) 5 B) 6C) 1 D) 无限(分数:2.00)A.B.C.D.35.以下程序的输出结果是( )。#include iostream.hVoid main()int a33= 1,2 , 3,4 , 5,6 , i, j, s=0;for(i=1;i3;i+)for(j=0;ji; j+) s+=aij;coutsend1;A) 14 B) 19C) 20 D) 21(分数:2.

17、00)A.B.C.D.二、填空题(总题数:15,分数:24.00)36.在面向对象方法中,允许作用于某个对象上的操作称为_。(分数:1.00)填空项 1:_37.以下程序的功能是输出 1 至 100 之间每位数的乘积大于每位数的和的数,例如对于数字 12,有1*21+2,故不输出该数:对于 27,有 2*72+7,故输出该数。请填空。#includeiostream.hvoid main()int n,k=1,s=o,m;for (n=1:n=100:n+=k=1;s=0;_,while( )k*=m10;s+=m10;_;if(ks)coutn:(分数:1.00)填空项 1:_38.请将下列

18、程序补充完整,使得输出结果为 bbaa。#includeiostreamusing namespace std;class Apublic:_cout“aa“;class B:public Apublic:B()cout“bb“;int main()B *p=new B;delete p;return 0;(分数:2.00)填空项 1:_39.下面是“二维向量”vector2D 的定义,其中作为成员函数重载的运算符“+”的功能是将两向量的分量 x 和 y 对应相加,然后返回作为相加结果的新对象。请填空补充完整。class vector2Ddouble x; x 分量double y; y 分量

19、public:vector2D(double x0=0,double y0=0) :x(x0),y(y0)void show(cout (,y) ;vector2D operator + (vector2D) ;_operator + (vector2D a) return vector2D(_);(分数:1.00)填空项 1:_40.以下程序的执行结果是_#includeiostreamh#includeiomanip.hvoid print(int n)if(n!=0)print(n-1);for(int i=1;i=n;i+=coutsetw(3)i;coutendl;void main

20、()print (4);(分数:1.00)填空项 1:_41.将代数式 (分数:1.00)填空项 1:_42. 1 是从二维表列的方向进行的运算。(分数:1.00)填空项 1:_43.下列程序的运行结果是_。#inclUde(iostreamh)Class Apublic:Virtual void use()cout“inA/n”;class B:public Apublic:virtual void use()cout“inB/n”;;class C:public Bpublic:Virtual void use()cout“in C/n”;void main()A *obj;Obj=new

21、 C;Obj-use();delete obj;(分数:2.00)填空项 1:_44.己知类 sample 是一个抽象类,其成员函数 display 是无形参、无返回类型的纯虚函数,请完成其声明:class samplepublic:sample();_;(分数:2.00)填空项 1:_45.目前,有两种重要的高级语言,分别是结构化程序和 1。(分数:2.00)填空项 1:_46.一棵二叉树第八层(根结点为第一层)的结点数最多为 1 个。(分数:2.00)填空项 1:_47.已知一个函数的原型是:int fn(double a);若要以 5.27 为实参调用该函数,应使用表达式_。(分数:2.

22、00)填空项 1:_48.一个模块直接调用的其他模块个数称为 1。(分数:2.00)填空项 1:_49.假定 A 为一个类,则语句 A(Afor(i=1;i3;i+)for(j=0;ji;j+) s+=aij;coutsendl;A) 14 B) 19C) 20 D) 21(分数:2.00)A. B.C.D.解析:5.有如下类声明:class XAint x;public:XA(int n)x=n;class XB:public XAint y;public:XB(int a,int b);在构造函数 XB 的下列定义中,正确的是( )。A) XB:XB(int a,int b):x(a),y

23、(b)B) XB:XB(int a,int b):XA(a),y(b)C) XB:XB(int a,int b):x(a),XB(b)D) XB:XB(int a,int b):XA(a),XB(b)(分数:2.00)A.B. C.D.解析:解析 此题考查的是派生类中构造函数的定义。派生类的构造首先要调用基类的构造函数,对基类成员初始化;然后对派生类中的新增成员初始化。格式:派生类名(构造函数形参表)基类构造函数(形参表)。6.在数据流图(DFD) 中,带有名字的箭头表示A) 模块之间的调用关系 B) 程序的组成成分C) 控制程序的执行顺序 D) 数据的流向(分数:2.00)A.B.C.D.

24、解析:解析 数据流相当于一条管道,并有一级数据(信息) 流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。7.有以下程序:#include iostreamusing namespace std;int main()int num23,*p;int t,i,j,k=10;p=num0;for(i=0;i2;i+)for(j=0;j3;j+)k+;*p=k;for(t=2;t*p;t+)if(!(*pt)j-; *p-;break;*p+;cout*(p-1)end1;return 0

25、;程序运行后的输出结果是( )。A) 19 B) 11 C) 29 D) 23(分数:1.00)A.B.C. D.解析:解析 本题考核数组与指针的关系。程序首先初始化指针 p,让其指向二维数组 num 的首元素,即 num00。程序中,第 1 个 for 循环是为二维数组的每行元素赋值而设置的循环,第 2 个 for 循环是为二维数组的每列元素赋值而设定的,第 3 个 for 循环是为判断数组元素是否是素数而设置的。在第 3个 for 循环中,如果*p 的值能被小于它的数整除(即不是素数),则执行“j-;*p-;”,然后跳出第 3个 for 循环。j-的含义是让其前面的赋值语句重新赋值,而*p

26、-的含义是使指针指向前一个单元。语句“*p+;”将指针移到下一个单元,在下一次循环时,k 加 1,并 k 赋给*p,看*p 是否为素数,这样一直到满足条件为止,即数组 num23中的数都为素数。最后数组 num 中各元素的值分别为大于 10 的素数,即分别为:11,13;17,19,23,29。程序最后要求输出*p 的值,由于此时指针已指向数组 num 的最后一个元素,即 num12。所以输出的值是 29。8.C+中的类有两种用法:一种是类的实例比,即生成类的对象,并参与系统的运行;另一种是通过( )派生出新的类。A) 复用 B) 继承 C) 封装 D) 引用(分数:1.00)A.B. C.D

27、.解析:9.在 C+中,实现封装性需借助于( )。A) 枚举 B) 类 C) 数组 D) 函数(分数:2.00)A.B. C.D.解析:10.设有以下程序段:int a5=0,*p,*q;p=a;q=a;则下列选项中,合法的运算是( )。A) p+q B) p-qC) p*q D) p%q(分数:2.00)A.B. C.D.解析:11.下列说法有错误的是 _。A) 公有继承时基类的 public 成员在派生类中仍是 publicB) 私有继承时基类的 public 成员在派生类中为 privateC) 保护继承时基类的 protected 成员在派生类中是 protectedD) 保护继承时基

28、类的 private 成员在派生类中是 protected(分数:2.00)A.B.C.D. 解析:12.下列程序的运行结果为 #includeiostreamhvoid print(double a) cout+a;void print(int a,int b)coutba;Void main()print(1.2); cout“ “; print(3,4);A)1.2 34 B)2.2 34 C)1.2 43 D)2.2 43(分数:1.00)A.B. C.D.解析:解析 本题考查的是函数的调用,第一次调用 min(2,3),因为 23,所以返回值为 2,第二次调用 min(1,2),因为

29、 l2,所以返回 1。13.有如下函数模板定义: templateclass T T func(T x,T y)return x*x+y*y; 在下列对 func 的调用中,错误的是 A) func(3,5); B) func(30,55); C) func(3,55); D) funeint(3,55);(分数:2.00)A.B.C. D.解析:解析 在模板函数调用中,当没有类型参数时,要求函数调用的实参必须类型相同,如果实参类型不相同,则必须有类型参数加以强制转换,否则编译会报错。14.下列叙述中错误的是A) 二叉树不是线性结构 B) 线性表是非线性结构C) 线性链表是线性结构 D) 栈与

30、队列是线性结构(分数:2.00)A.B. C.D.解析:解析 线性表肯定是线性结构。二叉树是非线性结构;线性链表是线性结构;栈与队列是特殊的线性表,也是线性结构;线性表是线性结构。15.在 C+语言中函数返回值的类型是由( )决定的。A) 调用该函数时系统临时B) return 语句中的表达式类型C) 定义该函数时所指定的函数类型D) 调用该函数时的主调函数类型(分数:2.00)A.B.C. D.解析:解析 本题考查对函数定义的掌握程度。函数类型决定了函数返回值的,类型。函数值返回类型可以由编译器自动完成类型转换。在函数有返回值的调用中,编译器将 return 后面的表达式的类型强制转换为该函

31、数定义时指定的返回值类型。16.下列不是在关系代数中专门的关系运算的是( )。A) 插入 B) 连接 C) 选择 D) 投影(分数:2.00)A. B.C.D.解析:解析 在关系代数中专门的关系运算包括选择、连接、投影和除等运算。17.在数据库系统中,把具有以下特征中之 _ 两个特征的数据模型称为网状模型。A) 允许有一个以上的结点没有双亲B) 有且仅有一个结点无双亲C) 根以外的结点有且仅有一个双亲D) 一个结点可以有多个双亲(分数:2.00)A.B. C.D.解析:18.在位运算中,操作数每左移一位,其结果相当于A)操作数乘以 2 B)操作数除以 2 C)操作数除以 4 D)操作数乘以 4

32、(分数:1.00)A. B.C.D.解析:解析 左移运算符“”是双目运算符。其功能把“”左边的运算数的各二进位全部左移若干位,由“”右边的数指定移动的位数,高位丢弃,低位补 0。左移 1 位,相当于该数乘以 2。19.数据库设计的根本目标是要解决A) 数据共享问题 B) 数据安全问题C) 大量数据存储问题 D) 简化数据维护(分数:2.00)A. B.C.D.解析:解析 本题考核数据库技术的根本目标,很简单,记忆性题目。数据库技术的根本目标就是要解决数据的共享问题,选项 A 正确。20.有如下程序:#includeiostream)using namespace std;classBasepu

33、blic:Base(int x0)coutx;Class Derived:public Basepublic:Derived(int x0)coutx;private:Base Val;int main()Derived d(1);return 0;A) 100 B) 000 C) 010 D) 001(分数:2.00)A.B.C.D. 解析:解析 本题考查的知识点是:类的构造。建立一个类的对象时,构造函数的执行顺序如下:执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下):执行自身的构造函数。本题

34、 Derived 类继承于 Base 类,所以首先会构造基类 Base,但 Derived 类的构造函数没有初始化列表,所以将调用 Base 类的默认构造函数,输出一个 0。接下来由于它的成员中还定义了一个 Base 类的对象,而构造函数也没有显示初始化这个对象,所以再次调用 Base 类的默认构造函数输出、一个 0。最后构造自身,因为主函数中传入了构造参数 1,所以构造自身时输出了一个 1。故最终输出结果为 001。21.“商品”与“顾客”两个实体集之间联系一般是( )。A) 一对一 B) 多对多 C) 一对多 D) 多对一(分数:2.00)A.B. C.D.解析:解析 对于“商品”和“顾客

35、”两个实体集来说,一种商品可被多个顾客来购买,而一个顾客也可以购买多种商品。因此,两者的联系属于多对多的联系。22.设有 int x11;,则表达式(x+*2/3)的值是( )。A) 7 B) 8 C) 11 D) 12(分数:2.00)A. B.C.D.解析:解析 当自加运算符做后缀表达式的时候,表达式的值不变,只有变量的值增 1,所以表达式(x+*2/3)相当于(11*2/3)取整后为 7。23.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化( )。A与虚基类下面的派生类个数有关 B多次 C两次 D一次(分数:1.00)A.B.C.D

36、. 解析:24.语句 ofstream f(“SALARYDAT“,iosappiosbinary);的功能是建立流对象 f,试图打开文件SALARYDAT 并与之连接,并且A)若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B)若文件存在,将其置为空文件;若文件不存在,打开失败C)若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D)若文件存在,打开失败;若文件不存在,建立一个新文件(分数:1.00)A. B.C.D.解析:解析 本题考查的是文件流的操作, app 表示追加方式打开文件(即将指针移至文件尾),bi- naw 表示以二进制方式打开文件。25.若

37、执行下面的程序时,从键盘上输入 3 和 4,则输出结果是main( )int a,b,s;cinab;s=a;if(aB)s=b;s=s*s;coutsendl;A) 14 B) 16 C) 18 D) 20(分数:2.00)A.B. C.D.解析:26.有如下函数模板定义:templatetypename T1,typename T2,typename T3T2 plus T1 t1,T3 t3)return t1+t3;则以下调用中正确是A) plus(3,5L);B) plus(3,5L);C) plusint(3,5L);D) plusint,double(3,5L);(分数:1.00

38、)A.B.C.D. 解析:解析 本题考核函数模板的使用。C+中对函数模板的调用有时候只使用了函数实参,而没有使用模板实参,模板实参都被省略了,但模板实参的省略并不是必然的,而是有条件。模板实参不能省略的情况有:从模板函数实参表获得的信息有矛盾:需要获得特定类型的返回值,而不管参数的类型如何:虚拟类型参数没有出现在模板函数的形参中;函数模板含有常规形参。题中定义的函数模板中虚拟类型参数T2 没有出现在模板函数的形参列表中,所以在调用时不能省略,D 选项的调用省略了 T3,这是允许的。27.有以下程序:#include iostream#include mathusing namespace st

39、d;class pointprivate:double x;double y;public:point(double a,double b) x=a;y=b;friend double distance(point a,point b) ;double distance(point a,point b) return sqrt (a.x-b.x)* (a.x-b.x)+(a.y-b.y)*(a.y-b.y);int main ( )point pl(1,2);point p2 (5, 2);coutdistance (pl,p2) end1;return 0;程序运行后的输出结果是( )。A)

40、 1 B) 5 C) 4 D) 6(分数:1.00)A.B.C. D.解析:解析 本题考核友元函数的应用。分析程序:类 point 中定义了两个私有成员 x 和 y,以及一个友元函数 distance()。从而,函数 distance 可以访问类 point 中的任何成员。在函数 distance()中,返回值为 sqrt(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)。由此可知,函数distance()的功能是计算 a、b 两点之间的距离。在主函数中,先定义两点:p1(1,2)和 p2(5,2)。然后调用函数 distance()计算两点之间的距离为4,所以程序

41、最后输出为 4。28.在下列函数原型中,可以作为类 AA 构造函数的是( )。A) void AA(int); B) int AA();C) AA(int)const; D) AA (int);(分数:2.00)A.B.C.D. 解析:29.一个函数带有参数说明时,则参数的默认值应该在( )中给出。A) 函数定义 B) 函数声明C) 函数定义或声明 D) 函数调用(分数:2.00)A.B.C. D.解析:30.在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( )来实现。A) 调用语句 B) 命令C) 中令 D) 消息(分数:2.00)A.B.C.D. 解析:解析 在面向对象方法中

42、,对象之间通过消息进行通信。消息中只包含传递者的要求,它告诉接受者需要做哪些处理,但并不指示接受者应该怎么完成这些处理,接受者独立决定采用什么方式完成所需的处理。31.下列叙述中正确的是A) 在模块化程序设计中,一个模块应尽量多的包括与其他模块联系的信息B) 在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节C) 在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则D) 在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法(分数:2.00)A.B.C. D.解析:解析 选项 A 错误,在模块化设计中,要求将一个大程序按人们能理解的大小规模进行分解,使每个模

43、块都能易于理解,各模块的功能尽量单一,各模块之间的联系尽量的少。选项 B 错误,自顶向下、逐步细化的设计过程,土要包括两个方面:将复杂问题的解法分解和细化成由若干模块组成的层次结构:将一个模块的功能逐步分解细化为一系列的处理步骤,直到某种程序设计语言的语句或某种机器指令。即在自顶向下、逐步细化的设计过程中,是按照先全局后局部、先整体后细节、先抽象后具体的方法设计程序。选项 D 错误,由于在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则,所以,在程序设计过程中,结构化程序设计方法与模块化程序设计方法是要同时采用的。选项 C 为正确答案。32.最简单的交换排序方法是( )。A) 快速排

44、序 B) 选择排序C) 堆排序 D) 冒泡排序(分数:2.00)A.B.C.D. 解析:解析 交换排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序。冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。33.设栈 S 的初始状态为空。元素 a,b,c,d,e,f 依次通过栈 S,若出栈的顺序为 b,d, c,f,e,a,则栈 S 的容量至少应该为A) 3 B) 4 C) 5 D) 6(分数:2.00)A. B.C.D.解析:解析 根据题中给定的条件,可以作如下的模拟操作:元素 a,b 进栈,栈中有 2 个元素,分别为 a,b;元素 b

45、出栈后,元素 c, d 进栈,栈中有 3 个元素,分别为 a,c,d;元素 d,c 出栈后,元素 e,f 进栈,栈中有 3 个元素,分别为 a,e,f;最后,元素 f,e,a 出栈,栈为空。可以看出,进栈的顺序为 a,b,c,d,e,f,出栈的顺序为 b,d,c,f,e,a,满足题目要求。每次进栈操作后,栈中最多有 3 个元素,所以,为了顺利完成这些操作,栈的容量应至少为 3。本题的正确答案为 A。34.下列 for 循环语句执行的次数是 _。for (int i=0, x=0; !xi+)A) 5 B) 6C) 1 D) 无限(分数:2.00)A.B. C.D.解析:35.以下程序的输出结果

46、是( )。#include iostream.hVoid main()int a33= 1,2 , 3,4 , 5,6 , i, j, s=0;for(i=1;i3;i+)for(j=0;ji; j+) s+=aij;coutsend1;A) 14 B) 19C) 20 D) 21(分数:2.00)A. B.C.D.解析:二、填空题(总题数:15,分数:24.00)36.在面向对象方法中,允许作用于某个对象上的操作称为_。(分数:1.00)填空项 1:_ (正确答案:方法在面向对象方法中;方法是指允许作用于某个对象上的各种操作。允许作用于某个对象上的操作称为方法。)解析:37.以下程序的功能是

47、输出 1 至 100 之间每位数的乘积大于每位数的和的数,例如对于数字 12,有1*21+2,故不输出该数:对于 27,有 2*72+7,故输出该数。请填空。#includeiostream.hvoid main()int n,k=1,s=o,m;for (n=1:n=100:n+=k=1;s=0;_,while( )k*=m10;s+=m10;_;if(ks)coutn:(分数:1.00)填空项 1:_ (正确答案:m-n m m/=10)解析:38.请将下列程序补充完整,使得输出结果为 bbaa。#includeiostreamusing namespace std;class Apublic:_cout“aa“;clas

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

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

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