【计算机类职业资格】计算机等级考试二级(C++)41及答案解析.doc

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

1、计算机等级考试二级(C+)41 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(每小题 2分,共 70分) 下列各(总题数:35,分数:70.00)1.关于静态数据成员的描述中正确的是( )。(分数:2.00)A.“=a+b+c/3”B.“(a+b+c)/3”C.“=(a+b+c)/3”D.以上表达式均错2.下列语句中,错误的是_。(分数:2.00)A.const int buffer=256;B.const double*point;C.int const buffer=256;D.double*const point;3.有以下程序: #define P 3 void F

2、(int x)return(P*x*x); main() printf(“%d/n“,F(3+5); 程序运行后的输出结果是_。 (分数:2.00)A.192B.29C.25D.编译出错4.下列关于构造函数说法不正确的是( )。(分数:2.00)A.4个字节B.5个字节C.6个字节D.7个字节5.C+语言中,表示一条语句结束的标号是( )。(分数:2.00)A.#B.;C./D.6.有如下程序 #include using namespace std; class Obj static int i; public: Obj()i+; Obj()i-; static int getVal()te

3、turn i; ; int Obj:i=0; void f ()Obj ob2;coutfunc1(); P-func2(); return 0; 运行此程序,屏幕上将显示输出【 】 (分数:2.00)A.B1 B2B.A1 A2C.B1 A2D.A1 B223.存在定义 int a10,x,*pa;,若 pa: int num; ; void f(char *name, int num) struct STU s2=“SunDan“,20044,“Penghua“,20045; num=s0.num; strcpy(name,s0.name); main() struct STU s2=“Y

4、angSan“,20041,“LiSiGao“,20042,*p; p= f(p-name,p-num); printf(“%s %d/n“,p-name,p-num); 程序运行后的输出结果是_。(分数:2.00)A.SunDan 20042B.SunDan 20044C.LiSiGuo 20042D.YangSan 2004125.以下关于 C+语言类的说法中正确的是( )。(分数:2.00)A.a =10 or a =0B.a =0 | a =10C.a =10 *sp=“right!“;B.char s10;s=“right!“;C.char s10;*s=“right!“;D.cha

5、r *sp=“right!“;35.下列关于运算符重载不正确的是( )。(分数:2.00)A.throwsB.throwC.ThrowableD.Exception二、填空题(每空 2分,共 30分)(总题数:15,分数:30.00)36.以下程序运行后的输出结果是 1。 #includeiostreamh void fun(int x,int y) x=x+y;y=x-y;x=x-y; cout x “,“ y “ ,“; void main2 int x=2,y=3;fun(x,y); cout x “,“ y endl; (分数:2.00)填空项 1:_37.如果要把返回值为 void的

6、函数 A声明为类 B的友元函数,则应在类 B的定义中加入的语句是 1。(分数:2.00)填空项 1:_38.以下函数 fun 的功能是返回 str 所指字符串中以形参 c 中字符开头的后续字符串的首 地址,例如:str 所指字符串为:Hello!,c 中的字符为 e,则函数返回字符串:ello!的首地址。若 str 所指字符串为空串或不包含 c 中的字符,则函数返回 NULL。请填空。 char *fun(char *str, char c) int n=0;char *p=str; if(p!=NULL) while(pn!=c if(pn= /0) return NULL; return(

7、 1); (分数:2.00)填空项 1:_39.要采用“cin,tout”进行输入输出时,必须包含的头文件是 1。(分数:2.00)填空项 1:_40.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接 模块(桩模块)。其中 1 的作用是将测试数据传送给被测试的模块,并显示 被测试模块所产生的结果。(分数:2.00)填空项 1:_41.以下程序的输出结果是 1。 #includeiostreamh void main2 int a=0; a+=(a=8); cout a; (分数:2.00)填空项 1:_42.类模板的使用实际上是将类模板实例化成一个具体的 1。(分数:2.

8、00)填空项 1:_43.问题处理方案的正确而完整的描述称为 1。(分数:2.00)填空项 1:_44.下面程序的输出结果是 1。 #includeiostream.h void main2 int a6=1,2,3,4,5,6; for(int i=0;i填空项 1:_45.下列软件系统结构图 (分数:2.00)46.我们通常用到的 cin ,是属于 1 输入。(分数:2.00)填空项 1:_47.C+语言中关键字运算符有 new,delete 和 1。(分数:2.00)填空项 1:_48.以下程序运行后的输出结果是 1。 void swap(int x,int y) int t; t=x;

9、x=y;y=t;printf(“%d %d “,x,y); main2 int a=3,b=4; swap(a,b); printf(“%d %d“,a,b); (分数:2.00)填空项 1:_49.C+语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取 1 方式。(分数:2.00)填空项 1:_50.请定义一个函数名为 A,返回值为 int,没有参数的纯虚函数的定义是 1。(分数:2.00)填空项 1:_计算机等级考试二级(C+)41 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(每小题 2分,共 70分) 下列各(总题数:35,分

10、数:70.00)1.关于静态数据成员的描述中正确的是( )。(分数:2.00)A.“=a+b+c/3”B.“(a+b+c)/3”C.“=(a+b+c)/3” D.以上表达式均错解析:本题考查的是滚动条事件的应用。在 Visual Basic中,与滚动条有关的事件是 Scroll和 Change事件。当在滚动条内拖动滚动块时触发 Scroll事件;改变滚动框的位置后,将触发 Change事件。Scroll事件用于跟踪滚动条中的动态变化,Change 事件用于得到滚动条的最后的值。2.下列语句中,错误的是_。(分数:2.00)A.const int buffer=256;B.const doubl

11、e*point;C.int const buffer=256;D.double*const point;解析:3.有以下程序: #define P 3 void F(int x)return(P*x*x); main() printf(“%d/n“,F(3+5); 程序运行后的输出结果是_。 (分数:2.00)A.192B.29C.25D.编译出错 解析:return 语句用于从被调函数带回一个函数值。void 关键字表示“无类型”,即不需要从被调函数中 带回函数值,所以不需要 return 语句,故编译时出错。4.下列关于构造函数说法不正确的是( )。(分数:2.00)A.4个字节B.5个字

12、节C.6个字节 D.7个字节解析:在本题中,Dim b(-1 To 10,2 To 9,20)As Integer 定义了一个三维数组,如果没有指定下界,缺省值是 0,所以计算数组中的个数就容易了,表达式为:(10 -(-1)+1)(9-2+1)(20-0+1)=2016,所以选项 B)是正确答案。5.C+语言中,表示一条语句结束的标号是( )。(分数:2.00)A.#B.; C./D.解析:C+语言中语句的结束符是分号。6.有如下程序 #include using namespace std; class Obj static int i; public: Obj()i+; Obj()i-;

13、 static int getVal()teturn i; ; int Obj:i=0; void f ()Obj ob2;coutfunc1(); P-func2(); return 0; 运行此程序,屏幕上将显示输出【 】 (分数:2.00)A.B1 B2B.A1 A2C.B1 A2 D.A1 B2解析:在 C+中,一个基类指针(或引用)可以用于指向它的派生类对象,而且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际所指向的对象类的那个重定义版本。基类中的实函数也可以在派生类中重定义,但重定义的函数仍然是实函数。在实函数的情况下,通过基类指针(或引用)所调用的只能是基类

14、的那个函数版本,无法调用到派生类中的重定义函数。23.存在定义 int a10,x,*pa;,若 pa: int num; ; void f(char *name, int num) struct STU s2=“SunDan“,20044,“Penghua“,20045; num=s0.num; strcpy(name,s0.name); main() struct STU s2=“YangSan“,20041,“LiSiGao“,20042,*p; p= f(p-name,p-num); printf(“%s %d/n“,p-name,p-num); 程序运行后的输出结果是_。(分数:2.

15、00)A.SunDan 20042 B.SunDan 20044C.LiSiGuo 20042D.YangSan 20041解析:本题主函数中定义了结构体类型的指针变量 p,并使其指向了结构体类型的数组 s1,并通过调用函数 f 改变了指针变量 p 所指向的结构体中成员变量 name 的值,但并未改变其 num 的值。这是因为函数 f 中的形参 name 是一个字符型指针变量,它指向了主函数中指针变量 p 所指向的结构体的成员变量 name, 所以对函数 f 中的形参*name 的改变也就是对主函数中 p-name 的改变,而函数 f 中对形参 num 的改变并 不会影响主函数中 p-num

16、的值,因为此时传递给 num 的是一个值,而不是地址。25.以下关于 C+语言类的说法中正确的是( )。(分数:2.00)A.a =10 or a =0B.a =0 | a =10C.a =10 *sp=“right!“;B.char s10;s=“right!“;C.char s10;*s=“right!“;D.char *sp=“right!“; 解析: 选项 A 定义了字符型的指针变量 sp,则*sp 存储的是第一个字符,而给它赋的是字符串,故错;选项 B 表示代表数组的首地址,而题中给它赋的是字符串,所以错误;选项 C 定义了一个字符型的数组 s10,再通过*s 给数组元素赋初值,这时

17、是与选项 A 相同的错误。35.下列关于运算符重载不正确的是( )。(分数:2.00)A.throwsB.throw C.ThrowableD.Exception解析:字符型数据在计算机内部是以 ASCII码存储的,英文大写字母和小写字母在 ASCII码表中都是连续的。大写字母 AZ 是从 6590,小写字母 az 是从 97122。所以只要变量 c大于等于 a并且等于小于 2就能保证其为小写字母。二、填空题(每空 2分,共 30分)(总题数:15,分数:30.00)36.以下程序运行后的输出结果是 1。 #includeiostreamh void fun(int x,int y) x=x+

18、y;y=x-y;x=x-y; cout x “,“ y “ ,“; void main2 int x=2,y=3;fun(x,y); cout x “,“ y endl; (分数:2.00)填空项 1:_ (正确答案:3,2,2,3)解析:main 函数和 fun函数中的变量 x和 y都是局部变量,它们各自独立,在本题 fun 函数中:接入实参的值传递:x=2,y=3,执行:x=x+y 后,x=5,y=3,执行:x=x-y 后,x=5,y=3,执行:y=x-y 后,x=3,y=2。所以,第一次执行 cout显示结果是 3和 2返回到 main函数中,输出 main函数中的 x和 y的值 2,3

19、。37.如果要把返回值为 void的函数 A声明为类 B的友元函数,则应在类 B的定义中加入的语句是 1。(分数:2.00)填空项 1:_ (正确答案:friend void A-|_|-;)解析:C+中类的友元函数在声明时应在该函数前面加上关键字 friend,同样如果要声明一个类为另一个类的友元类也要在前面类名前加上 friend。 38.以下函数 fun 的功能是返回 str 所指字符串中以形参 c 中字符开头的后续字符串的首 地址,例如:str 所指字符串为:Hello!,c 中的字符为 e,则函数返回字符串:ello!的首地址。若 str 所指字符串为空串或不包含 c 中的字符,则函

20、数返回 NULL。请填空。 char *fun(char *str, char c) int n=0;char *p=str; if(p!=NULL) while(pn!=c if(pn= /0) return NULL; return( 1); (分数:2.00)填空项 1:_ (正确答案:strn 或 *(str+n) 或 pn 或 p+n)解析:此题主要是将形参 c 中的字符与 str 中的字符相比较,返加以形参 c 中字符开头的后续字符串,题目 中的变量 n 起到了记录形参 c 中字符所在 str 字符串中的位置,固返回的结果用 strn或其等效形式表示。39.要采用“cin,tout

21、”进行输入输出时,必须包含的头文件是 1。(分数:2.00)填空项 1:_ (正确答案:iostreamh)解析:iostreamh 是与输入输出有关的类文件。 40.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接 模块(桩模块)。其中 1 的作用是将测试数据传送给被测试的模块,并显示 被测试模块所产生的结果。(分数:2.00)填空项 1:_ (正确答案:驱动模块)解析:在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。 其中,驱动模块相当于被测试模块的主程序,它接收测试数据,并传给被测试模块,输出实际测试结果。 承接模块通常用于代替

22、被测试模块调用的其他模块,其作用仅做少量的数据操作,是一个模拟子程序,不 必将子模块的所有功能带入。41.以下程序的输出结果是 1。 #includeiostreamh void main2 int a=0; a+=(a=8); cout a; (分数:2.00)填空项 1:_ (正确答案:16)解析:本题考查 C+赋值表达式的运用。赋值表达式的值就是所赋值变量的值,本题中 a+=8相当于a=a+8,对表达式逐步进行求解: a+=(a=8)此时,a 的值由于赋值为 8,而不是 0 a+=8 a=a+8 a=16 42.类模板的使用实际上是将类模板实例化成一个具体的 1。(分数:2.00)填空项

23、 1:_ (正确答案:类)解析:本题考查的是类模板的使用方式,就是把类模板的一般化定义实例化为一个真正的类。43.问题处理方案的正确而完整的描述称为 1。(分数:2.00)填空项 1:_ (正确答案:算法)解析:所谓算法是指解题方案的准确而完整的描述。44.下面程序的输出结果是 1。 #includeiostream.h void main2 int a6=1,2,3,4,5,6; for(int i=0;i填空项 1:_ (正确答案:1 2 3 4 5)解析:本题考查的是考生使用简单循环输出数组元素的能力,因为结束条件是 i45.下列软件系统结构图 (分数:2.00)解析:46.我们通常用到

24、的 cin ,是属于 1 输入。(分数:2.00)填空项 1:_ (正确答案:有格式)解析:本题考查关于输入输出的概念。C+中运算符“ ”和“ ”都是属于有格式的输入输出。47.C+语言中关键字运算符有 new,delete 和 1。(分数:2.00)填空项 1:_ (正确答案:sizeof)解析:C+语言中关键字运算符有 3个分别 new,delete 和 sizeof。new 是申请内存, delete 是释放内存,sizeof 是求字节数。48.以下程序运行后的输出结果是 1。 void swap(int x,int y) int t; t=x;x=y;y=t;printf(“%d %d

25、 “,x,y); main2 int a=3,b=4; swap(a,b); printf(“%d %d“,a,b); (分数:2.00)填空项 1:_ (正确答案:4 3 3 4)解析:用变量作为函数的实参时,属单向传递,即“值传送”方式,此种函数参数的传递方式只能由实参 传给形参,不能由形参传回来给实参。49.C+语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取 1 方式。(分数:2.00)填空项 1:_ (正确答案:传地址)解析:本题考查的是传值调用和传址调用的区别-传值调用只是进行值的简单复制,返回之后不会改变原来的值;而传址调用是把参数的地址传入,会改变原来的值。 50.请定义一个函数名为 A,返回值为 int,没有参数的纯虚函数的定义是 1。(分数:2.00)填空项 1:_ (正确答案:virtual int A-|_|-=0;)解析:C+语言中的纯虚函数是一种特殊的函数,它没有自己的定义,只有声明,纯虚函数与虚函数声明的不同就在于在函数后面加上了“=0”。

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

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

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