【计算机类职业资格】二级C++笔试17及答案解析.doc
《【计算机类职业资格】二级C++笔试17及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试17及答案解析.doc(15页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试 17 及答案解析(总分:88.00,做题时间:90 分钟)一、B选择题/B(总题数:30,分数:60.00)1.有如下程序: #include iostream.h class x protected: int a; public: x() a=1; ; class x1 : virtual public x public: x1() a+=1; couta; ; class x2 : virtual public x public: x2() a+=2; couta; ; class y : public xl,public x2 public: y() coutaend1;
2、 ; int main() y obj; return O; 该程序运行后的输出结果是( )。(分数:2.00)A.1B.123C.242D.2442.以下程序的输出结果是 ( )。 #include iostream using namespace std; int f(int b,int m, int n) int i,s = O; for(i = m;in;i+=2) s+=b i; return s; int main ( ) int x a = 1,2,3,4,5,6,7,8,9; x = f(a,3,7); coutxend1; return 0; (分数:2.00)A.10B.1
3、8C.8D.153.已知二叉树的前序序列为 ABDCEFG,中序序列为 DBCAFEG,则其后序序列为( )。(分数:2.00)A.DCBAFGEB.DCBFGEAC.DCBFEGAD.DCBGFEA4.设有如下程序: #include iostream using namespace std; class A public: int i; display() cout“class A/n“; ; class B public: int i; display() cout“class B/n“; ; class C : public A, public B int j; public: int
4、 i; show ( ) j = i * i; display(); ; int main() C demo; demo.show(); return O; 则主程序运行时将( )。(分数:2.00)A.因为变量 i 的重复定义而报错B.因为对象 demo 间接调用 display()函数时产生二义性而报错C.因为类定义的语法错误而不能运行D.没有语法错误,能够正常输出结果5.下列关于多继承二义性的描述中,错误的是( )。(分数:2.00)A.一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性。B.解决二义性的最常用的方法是对成员名的限定法C.基类和派生类中同时出
5、现的同名函数,也存在二义性问题D.一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,可能出现二义性6.有以下程序: #include iostream using namespace std; char *x=“First“, “Second“, “Third“ ; void f(char *z ) cout*z+end1; int main ( ) char *y; y=x; f(y); return 0; (分数:2.00)A.产生语法错误B.FirstC.SecpndD.Third7.常用的关系运算是关系代数和( )。(分数:2.00)A.集合代数
6、B.逻辑演算C.关系演算D.字段8.下列数组的定义中,会产生错误的是( )。(分数:2.00)A.int a=0,1,2,3,4,5,6;B.int a10=0,1,2,3,4,5,6;C.char a5=“hello“;D.char a5=h,e,1,1,o;9.在一个单链表 HL 中,若要向表头插入一个由指针 p 指向的节点,则需要执行语句序列( )。(分数:2.00)A.HL=p;p-next=HL;B.p-next=HL;HL=p;C.p-next=HL;p=HL;D.p-next=HL-next;HL-next=p10.下列 for 循环执行的次数为( )。 for(int i=0,
7、j=10;i=j=10;i+,j-)(分数:2.00)A.0B.11C.10D.无数次11.下面类的定义,有( )处错误。 class MyClass public: void MyClass(); MyClass(int Value);private: int i=0; ;(分数:2.00)A.1B.2C.3D.412.有以下程序: #include iostream using namespace std; class Point public: void SetPoint(int x,int y); void Move(int xOff,int yOff); int GetX() ret
8、urn X; int GetY() return Y; private: int X,Y; ; void Point:SetPoint(int x, int y) X=x; Y=y; void Point: :Move(int xOff, int yOff) X+=xOff; Y+=yOff; int main () Point p1; p1.SetPoint(1,2); p1.Move (5, 6); cout“Point1 is (“p1.GetX(),p1.GetY()“)“end1; return 0; 执行后的输出结果是( )。(分数:2.00)A.Point1 is (6,8)B.
9、Point1 is (1,2)C.Point1 is (5,6)D.Point1 is (4,4)13.在一个长度为 n 的线性表中删除一个元素,最坏情况下需要移动的数据元素数目为 ( )。(分数:2.00)A.1B.n-1C.n+1D.n214.以下程序的功能是:按顺序读入 10 名学生 4 门课程的成绩,计算出每个学生的平均分数并输出,程序如下: #includeiostream using namespace std; int main( ) int n,k; float score,sum,ave; sum = 0.0; for(n = 1;n =10; n+) for(k =1;k=
10、4;k+) cinscore; sum += score; ave=sum/4.0; cout“NO“n“ave:“aveend1; return 0; 上述程序运行后结果不正确,调式中发现有一条语句出现在程序中的位置不正确。 这条语句是非曲直( )。(分数:2.00)A.sum=0.0;B.sum+=score;C.ave= sum/4.0D.cout“N“n“ave:“aveend1;15.下列关于 getline() 函数的描述中,不正确的是( )。(分数:2.00)A.getline()函数是用来从键盘上读取字符串的B.getline()函数读取字符串长度是受限制的C.getline(
11、)函数读取字符串时,遇到终止符时就停止D.getline()函数中所使用的终止符只能是换行符16.若有定义: int*p; 则下列各选项中,不同于表达式“*p=*p+1;”的是( )。(分数:2.00)A.*p+;B.+*p;C.*p+=1;D.+(*;17.一组记录的排序码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为( )。(分数:2.00)A.38,40,46,56,79,84B.40,38,46,79,56,84C.40,38,46,56,79,84D.40,38,46,84,56,7918.下列关于 goto 语句的描述中,正确
12、的是( )。(分数:2.00)A.goto 语句可在一个文件中随意转向B.goto 语句后面要跟一个它所转向的语句C.goto 语句可以同时转向多条语句D.goto 语句可以从一个循环体内转到循环体外19.下面不属于软件设计原则的是( )。(分数:2.00)A.抽象B.模块化C.自底向上D.信息隐蔽20.为使下列程序的正确输出结果为: Now is 2004-7-6 12:12:12 那么应该在程序划线处填入的语句是( )。#include iostream using namespace std; class TIME; class DATE public: DATE(int y=2004,
13、int m=1,int d=1) year=y; month=m; day=d; void DateTime(TIME private: int year,month, day; ; class TIME public: TIME(int h=0,int m=0,int s=0) hour=h; minute=m; second=s; _; /将类 DATE 中成员函数 DateTime 声明为类 TIME 的友元函数 private: int hour,minute, second; ; void DATE: :DateTime(TIME int main ( ) DATE d(2004,7
14、,6); TIME t (12, 12, 12); d. DateTime (t); return 0; (分数:2.00)A.friend void DateTime(TIME &;B.friend void DATE:DateTime(TIME C.void DateTime(TIME &;D.friend void DateTime(TIME &;21.定义如下枚举类型: enumMonday,Tuesday,Wednesday,Thursday,Friday=2; 则下列语句正确的是( )。(分数:2.00)A.表达式 Wednesday=Friday 的值是 trueB.Dayday
15、;day=3;C.Dayday;day=Monday+3;D.Dayday;day=Tuesday+10;22.在 C+语言中,函数形参的默认存储类型是( )。(分数:2.00)A.autoB.registerC.staticD.extem23.有如下程序: #includeiostream using namespace std; class base public: virtual void f1() cout“F1Base“; virtual void f2() cout“F2Base “; ; class derive : public base void f1 ( ) cout“F1
16、Derive“; void f2( int x ) cout“F2 Derive“; ;int main () base objl, * p; derive obj2; p = p - f1(); p - f2(); return 0; 执行后的输出结果是( )。(分数:2.00)A.F1Derive F2BaseB.F1Derive F2DeriveC.F1Base F2BaseD.F1Base F2Derive24.有以下程序: #include iostream using namespace std; class MyClass int m; publ i c: static int
17、n; MyClass ( ) m = 0; void setvalue() m+; n+; void output () cout“m=“m , n=“nend1; ; int MyClass : n=0; int main() MyClass obj1, obj2; obj1.setvalue(); objl.output(); obj2.setvalue(); obj2.output(); return 0; (分数:2.00)A.m= 1 ,n= 1 换行m= 1 ,n=1B.m= 1 ,n= 1 换行m=1 ,n=2C.m=1,n=1换行m=2,n=1D.m=1,n=1换行m=2,n=
18、225.要把高级语言编写的源程序转换为目标程序,需要使用( )。(分数:2.00)A.编辑程序B.驱动程序C.调试程序D.编译程序26.源程序中应包含一些内部文档,以帮助阅读和理解源程序,源程序的内部文档通常包括选择合适的标识符、注解和( )。(分数:2.00)A.程序的视觉组织B.尽量不用或少用 GOTO 语句C.检查输入数据的有效性D.设计良好的输出报表27.下列叙述中,正确的是( )。(分数:2.00)A.入栈运算只需将新元素插到栈顶指针指向的位置B.出栈运算只需将栈顶元素赋给一个指定变量C.出栈运算与读栈顶元素是相同的操作D.读栈顶元素不删除栈顶元素28.下列关于严格控制 goto 语
19、句使用的理解中,错误的是( )。(分数:2.00)A.用一个非结构化的程序设计语言实现一个结构化的构造B.若不使用 goto 语句会使功能模糊C.在某种可以改善而不是损害程序可读性的情况下D.goto 语句可以完全不用29.规范化理论中消除其中多余的数据相关性是靠分解( )。(分数:2.00)A.关系运算B.内模式C.外模式D.视图30.以下选项中,合法的字符常量是( )。(分数:2.00)A.“N“B./010C.68D.D二、B填空题/B(总题数:14,分数:28.00)31.对待排序文件的初始状态作要求的排序方法是U 【1】 /U。(分数:2.00)填空项 1:_32.Jackson 方
20、法是一种面向U 【2】 /U的结构化方法。(分数:2.00)填空项 1:_33.软件工程的 3 个要素是工具、过程和U 【3】 /U。(分数:2.00)填空项 1:_34.数据的物理独立性是指当数据的U 【4】 /U改变时,通过系统内部的自动映象或转换功能,保持了数据的逻辑结构不变。(分数:2.00)填空项 1:_35.软件测试的常用方法通常可分为白盒测试和U 【5】 /U。前者是根据程序的内部逻辑来设计测试用例,后者是根据软件的规格说明来设计测试用例。(分数:2.00)填空项 1:_36.假定输入的 10 个整数为:32,64,53,87,54,32,98,56,98,83。那么下列程序的运
21、行结果是U 【6】 /U。 #include iostream using namespace std; int main() int a,b,C,X; a = b = C = 0; for(int i = 0;i10;i+) cinx; switch(x%3) case 0 :a+=x; break; case 1 :b+=x; break; case 2 : C+=x; break; couta“,“b“,“Cend1; return 0; (分数:2.00)填空项 1:_37.以下程序中的 select()函数功能是:在 N 行 M 列的二维数组中选出一个最大值作为函数值返回,并通过形参
22、传回此最大值的行下标。请填空完成此程序。 #includeiostream #define N 3 #define M 3 using namespace std; int select(int aNM,int *n) int i,j,row=0,colum=0; for(i=0;iN;i+) for(i=0;jM;j+) if(aijarowcolum) row=i; colum=j; *n=U 【7】 /U; returnU 【8】 /U; int main() int aNM=9,11,23,6,1,15,9,17,20; int max,n; max=select(a, templat
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 17 答案 解析 DOC
