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

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

1、二级 C+-224 及答案解析(总分:73.00,做题时间:90 分钟)一、选择题(总题数:38,分数:73.00)1.下列关于赋值运算符“=”重载的叙述中,正确的是_。(分数:2.50)A.赋值运算符只能作为类的成员函数重载B.默认的赋值运算符实现了“深层复制”功能C.重载的赋值运算符函数有两个本类对象作为形参D.如果己经定义了复制(拷贝)构造函数,就不能重载赋值运算符2.下列各组类型声明符中,含义相同的一组是_。(分数:1.00)A.unsigned long int 和 longB.signed short int 和 shortC.unsigned short 和 shortD.sho

2、rt int 和 int3.面向对象程序设计思想的主要特征中不包括_。(分数:2.50)A.继承性B.功能分解,逐步求精C.封装性和信息隐藏D.多态性4.关系数据库管理系统能实现的专门关系运算包括_。(分数:1.00)A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表5.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是_。(分数:1.00)A.一对一B.一对多C.多对多D.多对一6.下列关于派生类和基类的描述中,正确的是_。(分数:1.00)A.派生类成员函数只能访问基类的公有成员B.派生类成员函数只能访问基类的公

3、有和保护成员C.派生类成员函数可以访问基类的所有成员D.派生类对基类的默认继承方式是公有继承7.下列枚举类型的定义中,包含枚举值 3 的是_。(分数:2.00)A.enum testRED,YELLOW,BLUE,BLACK;B.enum testRED,YELLOW=4,BLUE,BLACK;C.enum testRED=-1,YELLOW,BLUE,BLACK;D.enum testRED,YELLOW=6,BLUE,BLACK;8.数据库设计中,用 ER 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的_。(分数:2.50)A.需求分析阶段B.逻辑设计阶段C.概念设计阶段

4、D.物理设计阶段9.有以下程序: #include iostream using namespace std; class count static int n; public: count ( ) n+; static int test() for (int i = 0; i 4; i+ ) n+; return n; ; int count : n = 0; int main() coutcount : test()“ “; count c1, c2; coutcount : test()end1; return 0; 执行后的输出结果是 _ 。(分数:1.00)A.4 10B.1 2C.

5、22D.2410.有如下数组声明:int value 30;,下标值引用错误的是 _ 。(分数:2.00)A.value30B.value0C.value10D.value2011.下列语句分别是不同程序中的第一个输入输出语句。若去掉其中的“left”,输出效果将发生变化的是(分数:2.00)A.coutleftsetfill(“*“)357;B.coutleftsetw(5)357;C.coutleftsetw(5)“ABCDE“;D.coutleft“ABCDE“;12.下列控制对齐方式的操作符中,错误的是_。(分数:2.50)A.internalB.centerC.leftD.right

6、13.有如下类和变量定义: class Parents public: int publicData; private: int privateData; ; class dA:public Parents/*类体略*/; class dB:private Parents/*类体略*/; dA x; dB y; 下列表达式中正确的是_。(分数:2.50)A.publicDataB.privateDataC.privateDataD.publicData14.下列关于线性链表的描述中,正确的是_。 、只含有一个指针域来存放下一个元素地址 、指针域中的指针用于指向该结点的前一个或后一个结点(即前件

7、或后件) 、结点由两部分组成:数据域和指针域。(分数:2.50)A.仅、B.仅、C.仅、D.全部15.下面类的声明中的几个语句,正确的是(设定语句是主函数中的语句)_。 class TestClass private: int data; public: TestClass(int g_data) data=g_data; void show()coutdataendl; ;(分数:2.50)A.TestClass *p;B.TestClass m;C.TestClass.data=8;D.TestClass.show();16.下列关于函数的描述中,错误的是_。(分数:1.00)A.函数可以

8、没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能被定义为模板17.下列运算符函数中肯定不属于类 FunNumber 的成员函数的是(分数:2.00)A.int operator-(FunNumber);B.FunNumber operator-( );C.FunNumber operator-(int);D.int operator-(FunNumber,FunNumber);18.下列关于运算符重载的叙述中,正确的是_。(分数:2.50)A.可以通过重载创造出新的运算符B.可以为重载运算符函数的参数设置默认值C.可以将部分运算符函数重载为非成员函数D.可以将任意运算符函数

9、重载为静态成员函数19.有如下类定义: class Point private: static int how_many; ; _how_many=0; 要初始化 Point 类的静态成员 how_many,下画线处应填入的内容是_。(分数:1.00)A.intB.static intC.int Point:D.static int Point:20.下列关于栈叙述正确的是 _ 。(分数:2.00)A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.以上三种说法都不对21.下列叙述中错误的是 _ 。(分数:2.00)A.主函数 main 也可以带形参B.函数中通过

10、return 返回函数值C.调用函数必须在一条独立的语句中完成D.一个函数中可以有多条 return 语句22.下列静态数据成员的特性中,错误的是 _。(分数:2.00)A.静态数据成员的声明以关键字 static 开头B.静态数据成员必须在文件作用域内初始化C.引导数据成员时,要在静态数据成员前加类名和作用域运算符D.静态数据成员不是一个类所有对象共享的23.下面程序的输出是 main() int x=100, a=10, b=20, ok1=5, ok2=0; if(ab) if(b! =15) if( ! ok1) else if(ok2) x= 10 x=-1 coutxend1; (

11、分数:2.00)A.-1B.0C.1D.不确定的值24.有如下程序 #includeiostream using namespace std; class MyClass public: MyClass()+count; MyClass()-count; static int getcount()return count; private: static int count; ; int MyClass:count=0; int main() MyClass obj; coutobj.getcount(); MyClass*ptr=new MyClass; coutMyClass:getcou

12、nt(); delete ptr; coutMyClass:getcount(); return 0; 程序的输出结果是_。(分数:2.50)A.121B.232C.221D.12225.下列函数中对调用它的函数没有起到任何作用的是(分数:2.00)A.void f1(double B.double f1(double x)return x-1.5;C.void f3(double x)-x;D.double f4(double *x)-*x; return*x;26.字符串“a+b=12/n/t”的长度为_。(分数:2.50)A.12B.10C.8D.627.在深度为 5 的满二叉树中,叶子

13、结点的个数为(分数:1.00)A.31B.32C.16D.1528.在 E-R 图中,用来表示实体联系的图形是_。(分数:2.50)A.椭圆图B.矩形C.菱形D.三角形29.如果表达式-x/y 中的“-”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为_。(分数:1.00)A.operator/(x.operator-(),y);B.operator/(operator-(x),y);C.operator-().operator/(y);D.operator/(operator-(x);30.下列关于函数模板的描述中,正确的是_。(分数:2.50)A.函数模板是一

14、个实例函数B.使用函数模板定义的函数没有返回类型C.函数模板的类型参数与函数的参数相同D.通过使用不同的类型参数,可以从函数模板得到不同的实例函数31.有如下程序: #include iostream using namespace std: class Test public: Test() n+=2; Test() n-=3; ; static int getNum() return n; privaue: static int n: ; int Test:n=1; int main() Test* p=new Test; delete p; cout“n=“Test:getNum()en

15、d1; return 0; 执行后的输出结果是(分数:2.00)A.n=0B.n=1C.n=2D.n=332.若有如下语句 #includeiostream.h void main() int x=3; do x=x-2; coutx; while(!(-x); 则上面程序段_。(分数:2.50)A.输出的是 1B.输出的是 1 和-2C.输出的是 3 和 0D.是死循环33.以下 for 语句中不是死循环的是 _ 。(分数:2.00)A.for(int i=0;i1;+i);B.for(int i=0;+i);C.for(int i=1;i0;+i);D.for(;);34.下列关于 C+函

16、数的叙述中,正确的是_。(分数:2.00)A.函数不能自己调用自己B.每个函数都必须返回一个值C.每个函数至少要有一个参数D.函数在被调用之前必须先进行声明或定义35.在为一个类重载下列运算符时,只能作为该类成员函数重载的运算符是_。(分数:1.00)A.+B.()C.D.+36.有如下程序: #includeiostream using namespace std; class BASE public: BASE()cout“BASE“;) ; class DERIVED:public BASE public: DERIVED()cout“DERIVED“; ; int main()DERI

17、VED x;return 0; 执行后的输出结果是 _ 。(分数:2.00)A.BASEB.DERIVEDC.BASEDERIVEDD.DERIVEDBASE37.下列各种函数中,_ 不是类的成员函数。(分数:2.00)A.构造函数B.析构函数C.友元函数D.拷贝构造函数38.在进行了任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态;其中只能用于检测输入操作的函数的函数名是_。(分数:2.50)A.failB.eofC.badD.good二级 C+-224 答案解析(总分:73.00,做题时间:90 分钟)一、选择题(总题数:38,分数:73.00)1.下列关于赋值运算符“=”

18、重载的叙述中,正确的是_。(分数:2.50)A.赋值运算符只能作为类的成员函数重载 B.默认的赋值运算符实现了“深层复制”功能C.重载的赋值运算符函数有两个本类对象作为形参D.如果己经定义了复制(拷贝)构造函数,就不能重载赋值运算符解析:2.下列各组类型声明符中,含义相同的一组是_。(分数:1.00)A.unsigned long int 和 longB.signed short int 和 short C.unsigned short 和 shortD.short int 和 int解析:解析 本题考查整型变量的类型,A、C 选项中前者为无符号的,后者为有符号的,D 选项中short int

19、 为 2 个字节,int 为 4 个字节。3.面向对象程序设计思想的主要特征中不包括_。(分数:2.50)A.继承性B.功能分解,逐步求精 C.封装性和信息隐藏D.多态性解析:4.关系数据库管理系统能实现的专门关系运算包括_。(分数:1.00)A.排序、索引、统计B.选择、投影、连接 C.关联、更新、排序D.显示、打印、制表解析:解析 关系数据库管理系统能实现的专门关系运算包括选择、投影、连接。5.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是_。(分数:1.00)A.一对一B.一对多C.多对多 D.多对一解析:解析 因为一个人可以操作多个计

20、算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。6.下列关于派生类和基类的描述中,正确的是_。(分数:1.00)A.派生类成员函数只能访问基类的公有成员B.派生类成员函数只能访问基类的公有和保护成员 C.派生类成员函数可以访问基类的所有成员D.派生类对基类的默认继承方式是公有继承解析:解析 派生类成员函数不能访问基类的 private 成员,只能由基类的对象来访问。这才体现了C+的数据封装特性。7.下列枚举类型的定义中,包含枚举值 3 的是_。(分数:2.00)A.enum testRED,YELLOW,BLUE,BLACK; B.enum testRED,YELLOW=

21、4,BLUE,BLACK;C.enum testRED=-1,YELLOW,BLUE,BLACK;D.enum testRED,YELLOW=6,BLUE,BLACK;解析:解析 声明枚举类型的语法格式为:enum类型名枚举值表;枚举值表包含多个枚举值,它们用逗号隔开,每个枚举值就是一个枚举常量。枚举值有两种定义形式:一是值名;二是值名=整型常量。关于枚举类型有以下 4 点说明: 一个 enum 类型实际上是 int 类型的一个子集,其每一个枚举值代表一个整数。 n 个枚举值全部未赋常量值时,它们自左至右分别与整数 0,1,n-1 对应。 若第 i 个枚举值赋常量值为 m,则其未赋常量值的后续

22、枚举值分别与整数 m+1,m+2对应,直到下一个赋了值的枚举值或结束。因此,为枚举值赋的整型常量值应从左到右递增。 枚举类型的声明也可作为组声明若干整型符号常量的方法。也就是说,把每个要声明的符号常量作为一个枚举值,将各个枚举值合在一起定义成一个枚举类型。 对于本题来说,在选项 A 中,对 4 个枚举值没有赋常量值,所以它们从左到右与整数 0,1,2,3 相对应。因而选项 A 为正确选项。8.数据库设计中,用 ER 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的_。(分数:2.50)A.需求分析阶段 B.逻辑设计阶段C.概念设计阶段D.物理设计阶段解析:解析 本题考查的知识点

23、是 E-R 图。E-R 图也即实体联系图(Entity Relationship Diagram),提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。E-R 图设计属于数据库设计的需求分析阶段。9.有以下程序: #include iostream using namespace std; class count static int n; public: count ( ) n+; static int test() for (int i = 0; i 4; i+ ) n+; return n; ; int count : n = 0; int main() coutcount

24、: test()“ “; count c1, c2; coutcount : test()end1; return 0; 执行后的输出结果是 _ 。(分数:1.00)A.4 10 B.1 2C.22D.24解析:解析 程序首先定义了类 count,其内部含有 private 类型数据成员“static int n;”,同时含有 public 类型构造函数 count()和静态成员函数 static int test(),这两个函数的功能分别是为对象申请系统资源并将静态数据成员 n 加 1 和将静态数据成员 n 加 4。主函数前,程序将静态数据成员 n 初始化为 0,该数据成员为所有类 coun

25、t 的对象所共有的数据成员。主函数中,程序首先执行静态成员函数test()(由于 test 声明为 static,因此其调用时无需通过具体对象)。而其执行过程中,静态数据成员 n应该加 4 变成 n=4,因此此处输出为 4。此后程序创建对象 c1 和 c2,由于在每次创建过程中都要调用构造函数 count(),而每次调用 count()函数后,静态数据成员 n 值都会加 1,因此,创建两个对象之后,n值变为 n=6;再次执行 test()函数后,n 的值再次加 4,此时变为 n=6+4=10。故程序全部执行后,变量 n值变为 10,而中间程序输出为“4 10”。10.有如下数组声明:int v

26、alue 30;,下标值引用错误的是 _ 。(分数:2.00)A.value30 B.value0C.value10D.value20解析:11.下列语句分别是不同程序中的第一个输入输出语句。若去掉其中的“left”,输出效果将发生变化的是(分数:2.00)A.coutleftsetfill(“*“)357;B.coutleftsetw(5)357; C.coutleftsetw(5)“ABCDE“;D.coutleft“ABCDE“;解析:12.下列控制对齐方式的操作符中,错误的是_。(分数:2.50)A.internalB.center C.leftD.right解析:13.有如下类和变量

27、定义: class Parents public: int publicData; private: int privateData; ; class dA:public Parents/*类体略*/; class dB:private Parents/*类体略*/; dA x; dB y; 下列表达式中正确的是_。(分数:2.50)A.publicData B.privateDataC.privateDataD.publicData解析:14.下列关于线性链表的描述中,正确的是_。 、只含有一个指针域来存放下一个元素地址 、指针域中的指针用于指向该结点的前一个或后一个结点(即前件或后件) 、

28、结点由两部分组成:数据域和指针域。(分数:2.50)A.仅、B.仅、C.仅、D.全部 解析:解析 在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。 在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。其中指针用于指向该结点的前一个或后一个结点(即前件或后件)。15.下面类的声明中的几个语句,正确的是(设定语句是主函数中的语句)_。 class TestClass private: int data; public: TestClass(int g_data) data=g_data; voi

29、d show()coutdataendl; ;(分数:2.50)A.TestClass *p; B.TestClass m;C.TestClass.data=8;D.TestClass.show();解析:解析 C+中,若没有类的显式声明构造函数则系统会为其提供一个默认的构造函数,若提供了构造函数则会将系统提供的默认的构造函数覆盖。调用构造函数时,实参必须与形参匹配。但是如果声明一个对象指针时,不是定义一个对象,不调用对象的构造函数。16.下列关于函数的描述中,错误的是_。(分数:1.00)A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能被定义为模板 解析:解析

30、 本题考查函数的基础知识,函数可以没有返回值,没有参数,也可以是一个类的成员,函数可以定义为模板,即模板函数。17.下列运算符函数中肯定不属于类 FunNumber 的成员函数的是(分数:2.00)A.int operator-(FunNumber);B.FunNumber operator-( );C.FunNumber operator-(int);D.int operator-(FunNumber,FunNumber); 解析:解析 运算符重载,“-”号是单目运算符,而 D 被重载为双目运算符,所以为错误的。18.下列关于运算符重载的叙述中,正确的是_。(分数:2.50)A.可以通过重载

31、创造出新的运算符B.可以为重载运算符函数的参数设置默认值C.可以将部分运算符函数重载为非成员函数 D.可以将任意运算符函数重载为静态成员函数解析:19.有如下类定义: class Point private: static int how_many; ; _how_many=0; 要初始化 Point 类的静态成员 how_many,下画线处应填入的内容是_。(分数:1.00)A.intB.static intC.int Point: D.static int Point:解析:解析 本题考查静态数据成员,静态数据成员可以初始化,但只能在类体外进行初始化,其一般形式为:数据类型类名:静态数据成

32、员名=初值。所以本题答案为 C。20.下列关于栈叙述正确的是 _ 。(分数:2.00)A.栈顶元素最先能被删除 B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.以上三种说法都不对解析:解析 栈是限定在一端进行插入删除的先入后出的线性表数据结构,栈顶元素最后被插入到栈中,但是最先被删除;而栈底元素最先被插入,最后被删除。21.下列叙述中错误的是 _ 。(分数:2.00)A.主函数 main 也可以带形参B.函数中通过 return 返回函数值C.调用函数必须在一条独立的语句中完成 D.一个函数中可以有多条 return 语句解析:解析 当函数有返回值时,调用函数可以作为一个表达式的子表达

33、式,而不是作为一条独立的语句存在。22.下列静态数据成员的特性中,错误的是 _。(分数:2.00)A.静态数据成员的声明以关键字 static 开头B.静态数据成员必须在文件作用域内初始化C.引导数据成员时,要在静态数据成员前加类名和作用域运算符D.静态数据成员不是一个类所有对象共享的 解析:23.下面程序的输出是 main() int x=100, a=10, b=20, ok1=5, ok2=0; if(ab) if(b! =15) if( ! ok1) else if(ok2) x= 10 x=-1 coutxend1; (分数:2.00)A.-1 B.0C.1D.不确定的值解析:解析

34、本题考察订语句的嵌套,else 总是与最近的那个 if 配对,只要考生按照逻辑表达式的值进行细心判断就可以得到正确的答案。考生需要注意的是,在 C+语言中,0 表示假,非 0 即为真,因此可以用数字作为逻辑判断的依据。24.有如下程序 #includeiostream using namespace std; class MyClass public: MyClass()+count; MyClass()-count; static int getcount()return count; private: static int count; ; int MyClass:count=0; int

35、 main() MyClass obj; coutobj.getcount(); MyClass*ptr=new MyClass; coutMyClass:getcount(); delete ptr; coutMyClass:getcount(); return 0; 程序的输出结果是_。(分数:2.50)A.121 B.232C.221D.122解析:解析 本题主要考查构造函数和析构函数的调用,以及静态成员的使用。生成对象,自动调用构造函数,执行“+count;”,count 变为 1。通过对象调用成员函数 getcount(),输出 count 值为 1。定义指针 ptr 指向动态分配的

36、对象空间,也要自动调用构造函数,count 第二次自增,值为 2。通过类名和作用域运算符“:”可以直接访问类的静态成员,输出 count 值为 2。“delete ptr;”需要回收 new 为其分配的动态空间,要自动调用析构函数,count 自减后值为 1。25.下列函数中对调用它的函数没有起到任何作用的是(分数:2.00)A.void f1(double B.double f1(double x)return x-1.5;C.void f3(double x)-x; D.double f4(double *x)-*x; return*x;解析:解析 本题考核函数的调用和参数值的传递(形参、

37、实参)。选项 C 中的函数 D 调用采用按值传递的方式,函数中对形参的修改没有影响到实参的值,而且函数 G 还没有返回值,所以函数耀对调用它的函数没有起到任何作用。选项 A 中的函数 f1 采用引用传递的方式影响实参的值,选项 D 中的函数 f4 通过返回值和指针调用来影响调用函数;选项 B 中的函数 f2 采用返回值的形式对其调用函数发生作用。26.字符串“a+b=12/n/t”的长度为_。(分数:2.50)A.12B.10C.8 D.6解析:解析 /n 表示回车,/t 是制表符。27.在深度为 5 的满二叉树中,叶子结点的个数为(分数:1.00)A.31B.32C.16 D.15解析:解析

38、 二叉树的一个性质是,在二叉树的第 k 层上,最多有 2 k-1 (k1)”个结点。对于满二叉树,每一层上的结点数都达到最大值,即在满二叉树的第 k 层上有 2(上标)个结点。所以,在深度为 5 的满二叉树中,所有叶子结点在第 5 层上,即其结点数为 2 k-1 =2 5-1 =16。28.在 E-R 图中,用来表示实体联系的图形是_。(分数:2.50)A.椭圆图B.矩形C.菱形 D.三角形解析:解析 E-R 图用矩形表示实体,椭圆形表示属性,菱形表示实体之间的联系。29.如果表达式-x/y 中的“-”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为_。(分数:1

39、.00)A.operator/(x.operator-(),y);B.operator/(operator-(x),y); C.operator-().operator/(y);D.operator/(operator-(x);解析:解析 本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且 c1、c2都是该类的对象,则 c1.operator+(c2)与 c1+c2 含义相同。如果+作为该类的非成员函数重载,则operator+(c1,c2)与 c1+c2 含义相同。同理,运算符“/”作为友元函数重载,则(-x)/y 与表达式operator/(-x),y)相同。前缀运算

40、符“-”作为友元函数重载,则-x 与 operator-(x)相同,所以组合起来是 operator/(operator-(x),y);,即 B 选项。30.下列关于函数模板的描述中,正确的是_。(分数:2.50)A.函数模板是一个实例函数B.使用函数模板定义的函数没有返回类型C.函数模板的类型参数与函数的参数相同D.通过使用不同的类型参数,可以从函数模板得到不同的实例函数 解析:解析 函数模板只是声明了一个函数的描述即模板,不是一个可以直接执行的函数,只有根据实际情况用实参的数据类型参数标识符之后,才能产生真正的函数。31.有如下程序: #include iostream using nam

41、espace std: class Test public: Test() n+=2; Test() n-=3; ; static int getNum() return n; privaue: static int n: ; int Test:n=1; int main() Test* p=new Test; delete p; cout“n=“Test:getNum()end1; return 0; 执行后的输出结果是(分数:2.00)A.n=0 B.n=1C.n=2D.n=3解析:解析 本题考核静态数据成员与静态成员函数的定义与使用方式。静态数据成员是类中所有对象共享的成员,而不是某个对

42、象的成员题中变量 n 是静态数据成员,对象对其操作的结果具有叠加作用,main 函数中先定义了 Test 的对象*p,然后又 delete p,所以对静态数据 n 进行了两次操作,分别是“n+=2”和“n-=3”,n 的初始值是 1,那么 n 最后的值变为 0。main 函数最后通过调用静态函数 getNum得到 n 的值,并输出。32.若有如下语句 #includeiostream.h void main() int x=3; do x=x-2; coutx; while(!(-x); 则上面程序段_。(分数:2.50)A.输出的是 1B.输出的是 1 和-2 C.输出的是 3 和 0D.是

43、死循环解析:解析 do.while 语句的一般格式为“do 循环体语句 while(表达式);”,先执行循环体语句一次,再判断表达式的值,若为真则继续执行循环,否则终止循环。本题中,先执行 x=x-2,即为 1。判断表达式的值,!(-x)为真,x=0,继续循环。再次执行循环体语句后,x=-2,此时表达式的值为 0,结束循环。33.以下 for 语句中不是死循环的是 _ 。(分数:2.00)A.for(int i=0;i1;+i); B.for(int i=0;+i);C.for(int i=1;i0;+i);D.for(;);解析:解析 本题考查循环语句 for 的使用。for 循环开始时,首

44、先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。在 for 语句中,如果省略了终止条件判断部分,并且在语句中没有 break,或终止条件判断部分始终没有终止,都将出现死循环。34.下列关于 C+函数的叙述中,正确的是_。(分数:2.00)A.函数不能自己调用自己B.每个函数都必须返回一个值C.每个函数至少要有一个参数D.函数在被调用之前必须先进行声明或定义 解析:35.在为一个类重载下列运算符时,只能作为该类成员函数重载的运算符是_。(分数:1.00)A.+B.() C.D.+解析:解析 本题考查重载运算符,C+规

45、定有的运算符(如赋值运算符、下标运算符、函数调用运算符)必须定义为类的成员函数。所以本题选 B。36.有如下程序: #includeiostream using namespace std; class BASE public: BASE()cout“BASE“;) ; class DERIVED:public BASE public: DERIVED()cout“DERIVED“; ; int main()DERIVED x;return 0; 执行后的输出结果是 _ 。(分数:2.00)A.BASEB.DERIVEDC.BASEDERIVEDD.DERIVEDBASE 解析:解析 本题考查

46、派生类的定义和使用。当对象被删除时,派生类的析构函数就被执行。由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。所以当 main 函数结束时,派生类 DERIVED 的对象 x 将被删除,那么派生类 DERIVED 的析构函数先被调用,输出 DERIVED,然后调用基类的析构函数输出 BASE。37.下列各种函数中,_ 不是类的成员函数。(分数:2.00)A.构造函数B.析构函数C.友元函数 D.拷贝构造函数解析:解析 构造函数、析构函数和拷贝构造函数都是类的成员函数。38.在进行了任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态;其中只能用于检测输入操作的函数的函数名是_。(分数:2.50)A.failB.eof C.badD.good解析:

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

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

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