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

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

1、二级 C+笔试 353 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.静态成员函数不能说明为(分数:2.00)A.整型函数B.常函数C.虚函数D.内联函数2.以下程序的输出结果为 main()int m7,n=4;float a38.4,b=6.4,x;x=m/2+n*a/b+1/2;coutxend1;(分数:2.00)A.27.000000B.27.500000C.28.000000D.28.5000003.关于虚函数的描述中正确的是(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数既可以在函数说

2、明时定义,也可以在函数实现时定又D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型4.若有说明:int a 34;则对 a 数组元素的非法引用是(分数:2.00)A.a02*1B.a13C.a4-20D.a045.静态成员函数没有(分数:2.00)A.返回值B.this 指针C.指针参数D.返回类型6.下面赋值语句中正确的是(分数:2.00)A.a=7+b+ca+7;B.a7+b+a+7;C.a=7+b,b+,a+7 ;D.a7+b,ca+7;7.类的构造函数的作用是(分数:2.00)A.一般成员函数B.类的初始化C.对象的初始化D.删除对象创建的所有对象8.在下面的函数声明中,存

3、在着语法错误的是(分数:2.00)A.void BC(int a,inB.void BD(int,inC.void BE(int,int=5)D.int BF(int x;int9.下列表示纯虚函数的成员函数是(分数:2.00)A.virtual int func(in;B.void func(in=0;C.virtual void func0;D.virtual void func(in10.以下叙述中不正确的是(分数:2.00)A.在 C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B.在 C 的函数中,最好使用全局变量C.在 C 中,形式参数只是局限于所在函数D.在

4、C 中,函数名的存储类别为外部11.所有在函数中定义的变量及函数的形式参数,都属于(分数:2.00)A.全局变量B.局部变量C.静态变量D.常量12.C+语言中函数返回值的类型决定于(分数:2.00)A.return 语句中的表达式类型B.调用函数的主调函数类型C.调用函数时临时类型D.定义函数时所指定的函数类型13.C+语言中在 C 语言的基础上增加的特性不包括(分数:2.00)A.G 构B.引用C.类和对象D.静态成员函数14.下列关于栈的叙述中正确的是(分数:2.00)A.只能在栈顶插入元素,而不能删除元素B.可以插入元素,也能删除元素C.插入元素时需要移动栈中所有的元素D.删除元素时需

5、要移动栈中所有的元素15.对于下列语句,正确的判断是 for(x0,y=O;(y! 123) void main() int a=10, b=20; couta“, “bend1; int a=0, b=0; for (int i=1;i8;i+) a+=i; b+=a; couta“, “b“, “: aend1; couta“, “bend1; (分数:2.00)填空项 1:_43.对于下列语句 char* strl = “Hello“; char * str2 =. “Hello“; *strl = P; coutstr2end1; 其输出结果为:U 【8】 /U(分数:2.00)填空项

6、 1:_44.下列程序不能通过编译,应该在划线部分填写的语句是U 【9】 /U。 #includeiostream. h #includestdlib. h double Fune(int a, int b, char ch) double x; switch(ch) case +: x=double(a) +b; break; case -: x= double(a) -b; break; case /: x=double(a) * b; break; case /: if(B) x=double(a) /b; else exit(1) break default: exit(1); _ v

7、oid main() coutFunc(32 , 6 ,-) “,“; coutFunc(32, 6 ,*) “,“; coutFunc(32, 6 ,/) end1; (分数:2.00)填空项 1:_45.根据下面的主程序,完成类的一种构造函数的最简单形式。 #includeiostream. h class base private: int num; public: U 【10】 /U; ; void main() base try(6); (分数:2.00)填空项 1:_46.下列程序的执行结果为U 【11】 /U。 #inciudeiostream, h int f(int i) r

8、eturn + +i; int g(int void main() int a, b; a=b=0; a+ =f(g(A) ); b+=f(f(B) ); cout%= “a“, b=“(bend1; (分数:2.00)填空项 1:_47.下列程序的运行结果是U 【12】 /U。 # includeiostream. h class A public: virtual void use()cout “in A/n“; ; class B:public A public: virtual void use()cout “in B/n“; ; class C: public B public: v

9、irtual void use() cout “in C/n“; ;void main() A *obj; obi=new C; obj-use() delete obj; (分数:2.00)填空项 1:_48.完成下列类的构造函数,初始化语句为U 【13】 /U。 #include iostream. h class Test private: int x, y; public, void Test(int initx, int inity) _ void printx() coutx“y“=“x-y; ; void main() Test x(300, 200); x. printx();

10、 (分数:2.00)填空项 1:_49.根据下列程序的执行结果,可以断定划线部分的修饰符应为U 【14】 /U。 执行结果: i9a football is created. a football is created. i=10 a football is destroyed. a football is created. i=20 a football is destroyed. a football is destroyed. 源程序: # ineludeiostream. h class Football public: Football() cout“a football is cr

11、eated. “end1; Football() cout“a football is destroyed. “end1; ; void func(int i) _ Football f1; Football f2; cout“i= “iend1; void main() func(10); func(20); (分数:2.00)填空项 1:_50.下列程序的输出结果是U 【15】 /U。 # includeiostream. h class MyClass public: int number; void set(int i); ; int number=3; void MyClass: :

12、set (int i) number=i; void main( ) MyClass my1; int number=10; my1. set(5), coutmy1, number,; my1. set(number); coutmy1. number,; my1. set(: :number); coutmy1. number.; (分数:2.00)填空项 1:_二级 C+笔试 353 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.静态成员函数不能说明为(分数:2.00)A.整型函数B.常函数C.虚函数 D.内联函数解析:解析 静

13、态函数不能说明为虚函数。2.以下程序的输出结果为 main()int m7,n=4;float a38.4,b=6.4,x;x=m/2+n*a/b+1/2;coutxend1;(分数:2.00)A.27.000000 B.27.500000C.28.000000D.28.500000解析:解析 本题考查表达式值的类型由参与运算的所有变量的类型中优先级最高的变量类型所决定。不过要注意的是整型向 float 型转换时将丢失小数部分,即向下驭值。3.关于虚函数的描述中正确的是(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数既可以在函数说明时定义,也可以在函数实现时定

14、又D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 解析:解析 虚函数不能定义为静态函数;虚函数的作用在于继承,表现出动态性。所以,在派生类中定义的虚函数必须和基类中对应的虚函数具有相同的参数个数和类型。4.若有说明:int a 34;则对 a 数组元素的非法引用是(分数:2.00)A.a02*1B.a13C.a4-20D.a04 解析:解析 在数组这部分的知识里面,数组下标越界是一个比较容易忽略的问题,其下标是从。开始,至 n-1 为止,因此选项 D 是正确答案。5.静态成员函数没有(分数:2.00)A.返回值B.this 指针 C.指针参数D.返回类型解析:解析 this 指

15、针是系统隐含的用于指向当前对象的指针。由于静态函数是同类中所以对象都共享的函数,在内存当中只存在一份,不属于某个对象所有,所以静态函数没有 this 指针。6.下面赋值语句中正确的是(分数:2.00)A.a=7+b+ca+7;B.a7+b+a+7;C.a=7+b,b+,a+7 ;D.a7+b,ca+7; 解析:解析 赋值语句合法的重要标志之一就是赋值符号的左侧应该表示为一个变量,即可以在内存中存在一块空间用于存放赋值符号右侧的值。据此,可以断定选项 A 和 B 可以排除。注意;选项 C 中不是逗号表达式,要考虑优先级的问题。本题答案为 D。7.类的构造函数的作用是(分数:2.00)A.一般成员

16、函数B.类的初始化C.对象的初始化 D.删除对象创建的所有对象解析:解析 本题考查类的构造函数的作用,构造函数一般负责完成对象建立时的初始化工作,如资源的分配。8.在下面的函数声明中,存在着语法错误的是(分数:2.00)A.void BC(int a,inB.void BD(int,inC.void BE(int,int=5)D.int BF(int x;int 解析:解析 函数声明时,可以指定其形参的默认值,不过要从右向左指定;可以省略形参名,仅以形参类型表示;形参表之间用逗号分割。因此,本题答案为 D。9.下列表示纯虚函数的成员函数是(分数:2.00)A.virtual int func(

17、in;B.void func(in=0;C.virtual void func0; D.virtual void func(in解析:解析 本题考查纯虚函数的定义形式。由于纯虚函数在最后要有“=0“,故据此排除 A 和 D。而 B中没有出现 virtual 关键词,故正确答案为 C。10.以下叙述中不正确的是(分数:2.00)A.在 C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B.在 C 的函数中,最好使用全局变量 C.在 C 中,形式参数只是局限于所在函数D.在 C 中,函数名的存储类别为外部解析:解析 本题也是考查 C 语言中函数的概念及其使用。函数调用时,值可以双

18、向传递,并没有限制使用全局变量还是局部变量,需要根据程序的逻辑需要进行选择。11.所有在函数中定义的变量及函数的形式参数,都属于(分数:2.00)A.全局变量B.局部变量 C.静态变量D.常量解析:解析 本题考查几种变量的作用域范围及其分类。12.C+语言中函数返回值的类型决定于(分数:2.00)A.return 语句中的表达式类型B.调用函数的主调函数类型C.调用函数时临时类型D.定义函数时所指定的函数类型 解析:解析 函数在定义时已经可以指定其函数类型,则函数返回值类刹就是该类型。13.C+语言中在 C 语言的基础上增加的特性不包括(分数:2.00)A.G 构 B.引用C.类和对象D.静态

19、成员函数解析:解析 本题很简单,不过考生要注意引用是 C+的新特性。只有结构是 C 语言就出现的特性。14.下列关于栈的叙述中正确的是(分数:2.00)A.只能在栈顶插入元素,而不能删除元素B.可以插入元素,也能删除元素 C.插入元素时需要移动栈中所有的元素D.删除元素时需要移动栈中所有的元素解析:解析 栈(stack)是限定在一端进行插入与删除的线性表。15.对于下列语句,正确的判断是 for(x0,y=O;(y! 123) void main() int a=10, b=20; couta“, “bend1; int a=0, b=0; for (int i=1;i8;i+) a+=i;

20、b+=a; couta“, “b“, “: aend1; couta“, “bend1; (分数:2.00)填空项 1:_ (正确答案:a 重定义)解析:解析 在本题中 for 循环外围的大括号对没有实质含义,仅用于函数的作用城范围。如果去掉该括号,编译错误就会发生,因为变量 a 出现了重定义错误。43.对于下列语句 char* strl = “Hello“; char * str2 =. “Hello“; *strl = P; coutstr2end1; 其输出结果为:U 【8】 /U(分数:2.00)填空项 1:_ (正确答案:Pello)解析:解析 注意,两个字符串都没有名字,属字符串常

21、量,在内容中是同一份内容。因此,对 strl进行重新赋值,仅仅替换了该字符数组的第一个字符。两个指针指向同一个字符串,因此输出为 Pello。44.下列程序不能通过编译,应该在划线部分填写的语句是U 【9】 /U。 #includeiostream. h #includestdlib. h double Fune(int a, int b, char ch) double x; switch(ch) case +: x=double(a) +b; break; case -: x= double(a) -b; break; case /: x=double(a) * b; break; cas

22、e /: if(B) x=double(a) /b; else exit(1) break default: exit(1); _ void main() coutFunc(32 , 6 ,-) “,“; coutFunc(32, 6 ,*) “,“; coutFunc(32, 6 ,/) end1; (分数:2.00)填空项 1:_ (正确答案:return x;)解析:解析 本题函数声明时指定了函数的返回值为 double,因此在函数体中必须存在一个 return 语句。45.根据下面的主程序,完成类的一种构造函数的最简单形式。 #includeiostream. h class base

23、 private: int num; public: U 【10】 /U; ; void main() base try(6); (分数:2.00)填空项 1:_ (正确答案:base(int n))解析:解析 注意,根据 main 函数中对类 base 的使用情况可知,base 类必须提供整型单参构造函数,同时要求构造其最简单的形式,故函数体为空。46.下列程序的执行结果为U 【11】 /U。 #inciudeiostream, h int f(int i) return + +i; int g(int void main() int a, b; a=b=0; a+ =f(g(A) ); b

24、+=f(f(B) ); cout%= “a“, b=“(bend1; (分数:2.00)填空项 1:_ (正确答案:a=3,b2)解析:解析 本题考查函数间引用传递的知识点。g(a)执行之后,返回值为 1,a 也变为 1,这就是引用传递的特点。然后执行 f(1),返回值为 2,此时 a2+1,故 a 此时为 3。由于 f(b)不具有引用传递的特征,因此,执行后 b=0+2,结果为 2。47.下列程序的运行结果是U 【12】 /U。 # includeiostream. h class A public: virtual void use()cout “in A/n“; ; class B:pu

25、blic A public: virtual void use()cout “in B/n“; ; class C: public B public: virtual void use() cout “in C/n“; ;void main() A *obj; obi=new C; obj-use() delete obj; (分数:2.00)填空项 1:_ (正确答案:in C)解析:解析 本题考查虚函数和多态性。原本 obj 指向祖先类,随后被赋值,指向新的子孙类,则在使用 use 这个重载的虚函数时,根据当前指向可确定调用子孙的同名虚函数。48.完成下列类的构造函数,初始化语句为U 【1

26、3】 /U。 #include iostream. h class Test private: int x, y; public, void Test(int initx, int inity) _ void printx() coutx“y“=“x-y; ; void main() Test x(300, 200); x. printx(); (分数:2.00)填空项 1:_ (正确答案:x=initx; y=inity;)解析:解析 本题考查的是类的私有数据如何从接口成员函数那里数据的。本题虽然简单,却体现了类的数据封装思想,并指明了如何完成这种封装。49.根据下列程序的执行结果,可以断定

27、划线部分的修饰符应为U 【14】 /U。 执行结果: i9a football is created. a football is created. i=10 a football is destroyed. a football is created. i=20 a football is destroyed. a football is destroyed. 源程序: # ineludeiostream. h class Football public: Football() cout“a football is created. “end1; Football() cout“a foot

28、ball is destroyed. “end1; ; void func(int i) _ Football f1; Football f2; cout“i= “iend1; void main() func(10); func(20); (分数:2.00)填空项 1:_ (正确答案:static)解析:解析 观察一下输出中对象的构造函数和析构函数的执行次数可以看出,再次进入时某对行没有被构造,亦即该对象在 func 执行后没有被销毁,再次进入时则不需要重构,可以体现这种功能的标识符只有 static。50.下列程序的输出结果是U 【15】 /U。 # includeiostream. h

29、class MyClass public: int number; void set(int i); ; int number=3; void MyClass: :set (int i) number=i; void main( ) MyClass my1; int number=10; my1. set(5), coutmy1, number,; my1. set(number); coutmy1. number,; my1. set(: :number); coutmy1. number.; (分数:2.00)填空项 1:_ (正确答案:5,10,3)解析:解析 本题考查全局变量,局部变量和类的数据成员之间的使用上的差别。使用全局变量时需要用域作用符来限定该变量,否则编译器无法正确区分。

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

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

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