【计算机类职业资格】二级C++-74及答案解析.doc
《【计算机类职业资格】二级C++-74及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-74及答案解析.doc(22页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-74 及答案解析(总分:63.50,做题时间:90 分钟)一、选择题(总题数:20,分数:33.50)1.最简单的交换排序方法是 _ 。(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序2.将 E-R 图转换到关系模式时,实体与实体间的联系可以表示成 _ 。(分数:2.00)A.属性B.关系C键D域3.有如下程序: #includeiostream using namespace std; class Point int x,y; public: Point(int x1=0,int y1=0):x(x1),y(y1) int get()return x+y;) ;
2、class Circle Point cente; int radius; public: Circle(int cx,int cy,int r):center(cx,cy),radius(r) int get()return center.get()+radius; ; int main() Circle c(3,4,5); coutc.get()endl; return 0; 运行时的输出结果是_。(分数:2.00)A.5B.7C.9D.124.下列重载函数中,正确的是 _ 。(分数:2.00)A.void fun(int a,float b);void fun(int c,float d
3、)B.void fun( int a,float b);void fun(float a,int b)C.float fun(int a,float b);int fun(int b,float a)D.int fun(int a,int b);float fun(int a,int b)5.有以下程序: #includeiostream using namespace std; Class sample private: int n; public: sample() sample(int m) n=m; sample add(sample s1,samplc s2) this-n=s1.n
4、+s2.n; return(*this); void disp() cout“n”nendl; ; int main() sample s1(10),s2(5),s3; s3.add(s1,s2); s3.disp(); return 0; 程序运行后,输出的结果是 _ 。(分数:2.00)A.n10B.n5C.n20D.n=156.在深度为 5 的满二叉树中,叶子节点的个数为(分数:2.00)A.32B.31C.16D.157.若有以下程序: void g(int *q) (*q) +; (*q) +; void main() int line 5; int *p=line; for (i=
5、0; i5; i+) *p=i; g( for (i=0; i5; i+) coutlinei; coutend1; 该程序运行后的输出结果为( )。(分数:1.00)A.12345B.01234C.11111D.555558.下列关于运算符重载的描述中,错误的是 _ 。(分数:2.00)A.:运算符不能重载B.类型转换运算符只能作为成员函数重载C.将运算符作为非成员函数重载时必须定义为友元D.重载运算符应完成“下标访问”操作9.下面关于友元函数的描述正确的是 _ 。(分数:2.00)A.友元函数不能访问类的私有成员B.友元函数破坏了类的封装性和隐藏性C.友元函数是类的成员函数D.友元函数的实
6、现必须在类的内部定义10.继承具有 _ ,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。(分数:1.00)A.规律性B.传递性C.重复性D.多样性11.有如下程序: #includeiost ream using namespace std; class XA int a; public: static int b; XA(int aa):a(aa)b+; XA() int get()return a; ; int XA:b=0 int main() XA d1(1),d2(3); coutd1.get+d2.get+XA:bendl; return 0; 运行时
7、的输出结果是_。(分数:1.00)A.5B.6C.7D.812.下面程序的运行结果是 #include“ iostreamh“ #define sum(a,b)a * b void main( ) int x; x=sam(1+2,3); cout x; (分数:1.00)A.0B.9C.7D.513.有如下程序: #include iostream #include iomarup using namespace std; int main() coutsetw(10)setfill(“x“)setprecision(8)left; cout12.3456793_98765; return
8、0; 若程厚的输出是 12.345679x98765xxxxx,则划线处缺失的部分是 _ 。(分数:2.00)A.setw(10)B.setfill(“x“)C.setprecision(8)D.right14.关于抽象类下面说法正确的是(分数:1.00)A.抽象类就是其中有函数定义但没有实现的类B.抽象类是可以被实例化的C.派生类不能成为抽象类D.抽象类的子类必须实现父类中的纯虚函数15.下列数据模型中,具有坚实理论基础的是(分数:1.00)A.层次模型B.网状模型C.关系模型D.以上 3 个都是16.有以下程序: #include iostream using namespace Std;
9、 int main( ) int a = 15,b = 21,m = 0; switch(a%3) case 0: m+; break; case 1: m+; switch(b%2) default: m+; case 0: m+; break; coutmend1; return 0; 程序运行后的输出结果是 _ 。(分数:1.00)A.1B.2C.3D.417.可以用 p.a 的形式访问派生类对象 p 的基类成员 a,其中 a 是 _ 。(分数:2.00)A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员18.若变量已正确定义为 inL 型,要通过语
10、句“scanf(“%d,%d“,a,b,c);”给 a 赋值 1、给 b 赋值 2、给 c 赋值 3,以下输入形式中错误的是( 代表一个空格符)_。 A 1,2,3回车 B1 2 3回车 C1, 2, (分数:2.50)A.B.C.D.19.定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为 _ 。(分数:2.00)A.私有继承B.非私有继承C.保护继承D.公有继承20.若有以下定义: int a=1,2,3,4,5,6,7); char cl=“b“,c2=“2“; 则数值不为 2 的表达式是 _ 。(分数:2.00)A.a1B.“d“-c1C.a“3“-c2D.c2-0二
11、、填空题(总题数:18,分数:30.00)21.派生类构造函数的执行顺序是先执行 _ 1_ 的构造函数,然后执行成员对象的构造函数,最后执行 _ 2_ 的构造函数。 (分数:1.00)22.下面程序的功能是:将字符数组 a 中下标值为偶数的元素从小到大排列,其他元素不变。请填空。 #include iostream,h #include string.h main() char a=“clanguage“,t; /一定是偶数个数 int i,j,k; k=strlen(a); for(i=0;i=k-2;i+=2) for(j=i+2;j=k;j=j+2) if( 1) t=ai;ai=aj;
12、aj=t; coutaendl; (分数:2.00)23.静态数据成员在定义或说明时,要在前面加上关键字 1;静态成员函数的实现中,不能直接引用类中说明为非静态的成员。 (分数:2.00)24.多态性分为两类:编译时的多态性和 1。 (分数:2.00)25.下面是计算 n 的阶乘的递归函数,请将该函数的定义补充完整。 unsigned f(unsigned n) if(n=1) return 1; else return _ 1_ ; (分数:2.00)26.以下程序输出的结果是 _ 1_ 。 #includeiostream.h void main( ) int a=5,b=4,c=3,d;
13、 d=(abC) ; coutd; (分数:1.00)27.有以下程序: #include iostream using namespace std; class Base int a; public: Base(int x) a-x; void show() couta; ; class Derived : public Base int b; public: Derived(int i) :Base(i+1) void show() coutb; ; int main ( ) Base b(5) ,*pb; Derived d(1); pb= pb-show (); return 0; 运
14、行后的打印结果是 _ 1_ 。 (分数:1.00)28.下面程序的输出结果是 _ 1_ 。 #include iostream using namespace std; class base protected: int a; public: base()cout“0“: ; class basel: virtual public base public: base1() cout“1“; ; class base2 : virtual public base public: base2()cout“2“; ; class derived : public base1,public base2
15、 public: derived () cout“3“; int main () derived obj; coutend1; return 0; (分数:2.00)29.全面支持软件开发过程的软件工具集合被称为 1。 (分数:2.00)30.有如下的函数定义: int Xfun(int x) int y=x; int x=10;y+=x; return x+y; 通过表达式 Xfun(5)调用该函数,则得到的返回值为 1。 (分数:2.00)31.创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用默认构造函数,下列程序涉及对象数组的创建和单个对象的
16、创建,其输出结果是 1。 #include iostream using namespace std; class Foo public: Foo(int x)eout“A“; Foo( ) ; int main( ) Foo f3,g(3); return 0; (分数:2.00)32.数据库保护分为安全性控制 _ 1_ 、并发性控制和数据的恢复。 (分数:1.00)33.在最坏情况下,堆排序需要比较的次数为 _ 1_ 。 (分数:1.00)34.下列程序的输出结果是 1。 #includeiostream.h class base int x,y; public: base(int i,i
17、nt j)x=i;y=j; virtual int add( )return x+y; ; class three:public base int z; public: three(int i,int j,int k):base(i,j)z=k;) int add( )return(base:add( )+z); ; void main( ) three*q=new three(10,20,30); coutq-add( )endl; (分数:2.00)35.下列程序中需要清理动态分配的数组,划线处应有的语句是 1。 #includeiostream, h class person int a
18、ge, tall; public: person() age= 0; tall= 40; cout“A baby is born. “end1; person(int i) age=i, tall=40, cout“A old person. “end1; person(int i, int i) age = i; tall = j; cout “ a old person with tall. “ end1; person( ) cout“ person dead. “end 1; void show() cout“age= “age“ ,tall= “tallend1; ; void ma
19、in() person * ptr; ptr = new person3; ptr0=person ( ) ptr1=person(18); ptr2=person(20,120); for(int i=0;i3; i+) ptri. show( ); 2 (分数:2.00)36.插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到已排序序列中的正确位置。InsertSort 类的成员函数 sort()实现了插入排序算法。请将画线处缺失的部分补充完整。 class InsertSort public: InsertSort(int* a0,int n0):a(a0),n(n0)/参
20、数 a0 是某数组首地址,n 是数组元素个数 void sort() /此函数假设已排序序列初始化状态只包含 a0,未排序序列初始为 a1.an-1 for(int i=1;in;11i) int t=ai; int j; for( _ 1_ ;j0;-j) if(t=aj-1)break; aj=aj-1; aj=t; protected: int *a,n;/指针 a 用于存放数组首地址,n 用于存放数组元素个数 ; (分数:2.00)37.以下程序的功能是输出 1 至 100 之间每位数的乘积大于每位数的和的数,例如对于数字 12,有1*21+2,故不输出该数;对于 27,有 2*72+
21、7,故输出该数。请填空。 #includeiostream.h void main() int n,k=1,s=o,m: for (n=l:n=100;n+= k=l;s=0; 1; while( 2) k*=m%10;s+=m%10; _ 3_ ; if(ks)coutn; (分数:1.00)38.以下函数模板 max 的功能是返回数组 a 中最大元素的值。请将横线处缺失部分补充完整。 template typename TT max(T a,int n) T m=a0; for(int i=1 ;in;i+) if(aim) _ 1_ return m; (分数:2.00)二级 C+-74
22、 答案解析(总分:63.50,做题时间:90 分钟)一、选择题(总题数:20,分数:33.50)1.最简单的交换排序方法是 _ 。(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序 解析:解析 所谓的交换类排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序快速排序。冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。2.将 E-R 图转换到关系模式时,实体与实体间的联系可以表示成 _ 。(分数:2.00)A.属性B.关系 C键D域解析:解析 将 E-R 图转换成指定 RDBMS 中的关系模式是数据库逻辑设计的主要工作。从 E-R 图
23、到关系模式的转换是比较直接的,实体和联系都可以表示成关系。3.有如下程序: #includeiostream using namespace std; class Point int x,y; public: Point(int x1=0,int y1=0):x(x1),y(y1) int get()return x+y;) ; class Circle Point cente; int radius; public: Circle(int cx,int cy,int r):center(cx,cy),radius(r) int get()return center.get()+radius;
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C74 答案 解析 DOC
