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

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

1、二级 C+-208 及答案解析(总分:82.00,做题时间:90 分钟)一、选择题(总题数:35,分数:59.00)1.有如下类定义: class B public: void fun1() private: void fun2() protected: void fun3() ; class D: public B protected: void fun4() ; 若 obj 是类 D 的对象,则下列语句中不违反访问控制权限的是_。(分数:1.00)A.obj. fun1();B.obj. fun2();C.obj. fun3();D.obj. fun4();2.如下程序运行时的输出结果是

2、#includeiostream using namespace std; class ONE int c; public: ONE( ):c(0)eout1; ONE(int n):C(n)cout2; ; class TW0 ONE onel; ONE one2; public: TWO(int m):one2(m)eout3; ; int main( ) TWO t(4); return 0; (分数:2.00)A.3B.23C.123D.2133.判断字符型变量 ch 是否为大写英文字母,应使用表达式_。(分数:2.00)A.ch=“A“ class Basel public : Ba

3、sel(int d) cout d; Basel () ; class Base2 public : Base2 ( int d) cout d ; Base2() ; class Derived : public Base1 ,Base2 public : Derived(int a, int b, int c, int d) :Base1(b), Base2(a), b1(d), b2(e) private : int b1 ; int b2 ; ; int main() Derived d(1,2,3,4) ; return 0 ; 执行这个程序的输出记过是 _ 。(分数:1.00)A.

4、1234B.2134C.12D.215.对下列二叉树 (分数:2.00)A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG6.若已经声明了函数原型“bool fun(bool a,int b=0);”,则下列重载函数声明中正确的是_。(分数:1.00)A.bool fun(bool a=true,int b=0); Bint fun(bool a,int B);B.void fun(double a,intC.;D.void fun(bool a,int b=0);7.若 MyClass 为一个类,执行“MyClass a4,*p5;”语句时会自动调用该类构造函数的次数是

5、_。(分数:2.00)A.2B.5C.4D.98.假设函数 fun 已经定义,其原型为“void fun(int a,int b=7,char*p=“*“);”下列函数调用中错误的是_。(分数:2.00)A.fun(5)B.fun(5,8)C.fun(6,“#“)D.fun(0,0,“=“)9.有如下类声明: class Foo int bar; 则 Foo 类的成员 bar 是_。(分数:2.00)A.公有数据成员B.公有成员函数C.私有数据成员D.私有成员函数10.包容类 Contain 和内嵌类 Embed 定义如下: #includeiostream.h class Contain p

6、rivate: int X; protected: int z; public: class Embed private: int y; public: Embed()y=100; int Embed_Fun(); MyEmbed; int Contain_Fun(); ; 对上面的定义,正确的描述是 _ 。(分数:1.00)A.定义类 Embed 对象的语句是:Contain? Embed embed;B.类 Contain 的成员函数 Contain_Fun()中可以用 MyEmbe D.y 的方式访问类 Embed 的私有成员 yC.类 Embed 的成员函数 Embed_Fun()中可

7、以直接访问 Contain 的私有成员 xD.类 Embed 的成员函数 Embed_Fun()中可以直接访问 Contain 的保护成员 Z11.有如下类定义: class Bag public: Bag(int p=200, char s=“M“):price(p), size(s) coutsize; private: int price; char size; ; 若执行语句 Bag Alice, Kelly(Mice), *Twins2, F44; 则输出结果为_。(分数:1.00)A.MMMMMMMMB.MMMMMMC.MMMMMD.MMMM12.下列关于模板的描述中,错误的是_。

8、(分数:1.00)A.类模板的成员函数都是模板函数B.函数模板是一种参数化类型的函数C.满足一定条件时可以省略模板实参D.模板形参只能由关键字 typename 声明13.从工程管理角度,软件设计一般分为两步完成,它们是 _ 。(分数:2.00)A.概要设计与详细设计B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计14.假定其中的 x 的单位是角度且不考虑丌的值的精度,则与数学公式 (分数:2.50)A.sqrt(cos(x)B.sqrt(abs(cos(x*3.14/180)C.sqrt(abs(cos(x*(/180)D.sqrt(fabs(cos(x*3.14/18

9、0)15.下列关于虚函数的说明中,正确的是_。(分数:1.00)A.从虚基类继承的函数都是虚函数B.虚函数不得是静态成员函数C.只能通过指针或引用调用虚函数D.抽象类中的成员函数都是虚函数16.有如下程序: #includeiostream using namespace std; class A public: A(int i):r1(i) void print() cout“E“r1“-“; void print() const cout“C“r1*r1“-“; private: int r1; ; int main() A a1(2); const A a2(4); a1.print()

10、; a2.print(); return 0; 运行时的输出结果是_。(分数:2.00)A.运行时出错B.E2-C16-C.C4-C16-D.E2-E4-17.下面程序的输出结果为 _ 。 #includeiostream.h class TestClass public: TestClass ()val+; static int val; ; int TestClass:val=0; void main() TestClass cs1; coutcs1.val“; TestClass cs2; TestClass cs3,cs4; coutcs2.valendl; (分数:2.00)A.03

11、B.13C.14D.2418.有 3 个关系 R、S 和 T 如下: (分数:2.50)A并B.自然连接C.笛卡儿积D交19.已知在一个类体中包含如下函数原型:VOLUMEOPER ATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是_。(分数:1.00)A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符C.这是一个成员函数D.这个函数不改变类的任何数据成员的值20.有如下程序: #includeiostream using namespace std; void f1(intx=y;y=z; void f2(int x,int y)int z=x

12、;x=y;y=z; int main() int x=10,y=26; f1(x,y); f2(x,y); coutyendl; return 0; 运行时的输出结果是_。(分数:2.50)A.10B.16C.26D.3621.在软件设计中,不属于过程设计工具的是_。(分数:1.00)A.PDL(过程设计语言)B.PAD 图C.N-S 图D.DFD 图22.下列描述中正确的是_ 。(分数:2.00)A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合23.下列叙述中,错误的是_。(分数:2.50)A.false 是一个逻辑型常量

13、B.“b“是一个字符型常量C.365 是一个 int 常量D.3.1415926 是一个 double 常量24.下列程序执行后,输出的结果是_。 int x=-5,y=0; while(+x) y+; coutyendl;(分数:2.50)A.1B.2C.4D.525.下列叙述中正确的是_。(分数:1.00)A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对26.下列叙述中错误的是 _ 。(分数:2.00)A.一个函数中可以有多条 return 语句B.调用函数必须在一条独立的语句中完成C.函数中可通过 return 语句传递函数

14、值D.主函数名 main 也可以带有形参27.关于关键字 class 和 typename,下列表述正确的是_。(分数:3.00)A.程序中所有的 class 都可以替换为 typenameB.程序中所有的 typename 都可以替换为 classC.A 和 B 都可以D.A 和 B 都不可以28.有如下类定义: class AA int a; Public: AA(int n=0):a(n) ; class BB:public AA public: BB(int n)_ ; 其中横线处的缺失部分是_。(分数:1.00)A.:a(n)B.:AA(n)C.a(n);D.a=n;29.下列关于运

15、算符重载不正确的是_。(分数:1.00)A.运算符重载不能改变运算符的操作数个数B.运算符重载不能改变运算符的优先级C.运算符重载不能改变运算符的结合性D.运算符重载能改变对预定义类型数据的操作方式30.下列选项合法的标识符是_。(分数:2.50)A.1_1B.1-1C._11D.1_ _31.下列关于运算符重载的叙述中,错误的是_。(分数:2.00)A.有的运算符可以作为非成员函数重载B.所有的运算符都可以通过重载而被赋予新的含义C.不得为重载的运算符函数的参数设置默认值D.有的运算符只能作为成员函数重载32.下列关于 C+流的说明中,正确的是 _ 。(分数:2.00)A.与键盘、屏幕、打印

16、机和通信端口的交互都可以通过流类来实现B.从流中获取数据的操作称为插入操作,向流中添加数据的操作称为提取操作C.cin 是一个预定义的输入流类D.输出流有一个名为 open 的成员函数,其作用是生成一个新的流对象33.有如下函数模板: templateclass TT square(T x) retum x*x; 其中的参数 T 是_。(分数:1.00)A.函数形参B.函数实参C.模板实参D.模板形参34.若有说明:int s34=0则下面叙述正确的 _ 。(分数:1.00)A.只有元素 s00可得到初值 0B.此说明语句不正确C.数组 s 中各个元素都可得到初值,但其值不一定为 0D.数组

17、s 中每个元素均可得到初值 035.若有定义“int a23;”,下列选项中对 a 数组元素正确引用的是_。(分数:1.00)A.a2!1B.a23C.a03D.a12!1二、填空题(总题数:15,分数:23.00)36.己知类 sample 是一个抽象类,其成员函数 display 是无形参、无返回类型的纯虚函数,请完成其声明:class sample public: sample(); 1 ; (分数:2.00)37.一个 C+程序的开发步骤通常包括编辑、 1、链接、运行和调试。 (分数:1.00)38.算法的基本特征是可行性、确定性、 1 和拥有足够的情报。 (分数:1.00)39.冒泡

18、排序在最好情况下时间复杂度为 _ 1_ 。 (分数:2.00)40.一个抽象类的派生类可以实例化的必需条件是实现了所有的 _ 1_ 。 (分数:2.00)41.C+语言的标识符是以字母或 1 开头的,由字母、数字、 2 组成的字符串。 (分数:2.50)42.插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到已排序序列中的正确位置。InsertSort 类的成员函数 sort( )实现了插入排序算法。请将画线处缺失的部分补充完整。 class InsertSort public: InsertSort(int*aO,int nO):a(aO),n(nO) /参数 a0 是某组首地

19、址,n 是数组元素个数 void sort( ) /此函数假设已排序序列初始化状态只包含 a0,未排序序列初始为 a1.an-1 for(int i=1;in;+i); int t=ai; int j; for( 1;j0;-j) if(taj-1)break; aj=aj-1; aj=t; protected: int*a,n; /指针 a 用于存放数组首地址,n 用于存放数组元素个数 ; (分数:2.00)43.下面程序的结果为 _ 1_ 。 #includeiostreamh voidmain() int a=1,b=2; bool c=1; if(ab)|(c)cout “ture“

20、end1; else cout “false“ end1; (分数:1.00)44. 1 使一个函数可以定义成对许多不同数据类型完成同一个任务。 (分数:1.00)45.长度为 n 的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为 1。 (分数:1.00)46.将下面的语句段(a)补充完整,使其和语句段(b)在功能上完全等价: (a)double s=0.0; 1; int k=0; do s+=d; 2; d=1.0/(k*(k+1); while( 3); (b)double s=1.0; for(int k=1;k=10;k+)s+=1.0

21、/(k*(k+1); (分数:1.50)47.有一种只在循环语句或 switch 语句中使用的流程控制语句,表示该语句的关键字是 _ 1_ 。 (分数:2.00)48.Jackson 结构化程序设计方法是英国的 MJackson 提出的,它是一种面向 _ 1_ 的设计方法。 (分数:1.00)49.C+语言中关键字运算符有 new,delete 和 1。 (分数:1.00)50.结构化方式由结构化分析,结构化设计和 _ 1_ 构成,它是一种面向数据流的开发方法。 (分数:2.00)二级 C+-208 答案解析(总分:82.00,做题时间:90 分钟)一、选择题(总题数:35,分数:59.00)

22、1.有如下类定义: class B public: void fun1() private: void fun2() protected: void fun3() ; class D: public B protected: void fun4() ; 若 obj 是类 D 的对象,则下列语句中不违反访问控制权限的是_。(分数:1.00)A.obj. fun1(); B.obj. fun2();C.obj. fun3();D.obj. fun4();解析:解析 本题考查公用继承对基类成员的访问属性。在公用继承中,基类的公用成员和保护成员在派生类中保持原有的访问属性,其私有成员仍为基类私有。所以

23、在本题中,在类外引用成员函数时,派生对象只能引用基类的公用成员函数 fun1,故本题答案为 A。2.如下程序运行时的输出结果是 #includeiostream using namespace std; class ONE int c; public: ONE( ):c(0)eout1; ONE(int n):C(n)cout2; ; class TW0 ONE onel; ONE one2; public: TWO(int m):one2(m)eout3; ; int main( ) TWO t(4); return 0; (分数:2.00)A.3B.23C.123 D.213解析:解析 派

24、生类中含有对象时构造函数的调用顺序是:则先执行基类的构造函数,然后执行对象成员的构造函数,最后执行派生类的构造函数。析构函数的调用次序与构造函数的次序则相反。所以在创建对象 t4时,先调用基类无参构造函数 0NE( ):c(0),打印 1:然后调用对象 one2(m)的构造函数ONE(int n):c(n),打印 2;最后调用派生类的构造函数 TWO(int m),打印 3。3.判断字符型变量 ch 是否为大写英文字母,应使用表达式_。(分数:2.00)A.ch=“A“ class Basel public : Basel(int d) cout d; Basel () ; class Bas

25、e2 public : Base2 ( int d) cout d ; Base2() ; class Derived : public Base1 ,Base2 public : Derived(int a, int b, int c, int d) :Base1(b), Base2(a), b1(d), b2(e) private : int b1 ; int b2 ; ; int main() Derived d(1,2,3,4) ; return 0 ; 执行这个程序的输出记过是 _ 。(分数:1.00)A.1234B.2134C.12D.21 解析:解析 本题考查派生类的构造函数和析

26、构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数,对象释放时,先执行派生类的析构函数,再执行基类的析构函数。本题中定义一个派生类对象时,分别调用基类的构造函数,所以分别输出 21。5.对下列二叉树 (分数:2.00)A.ACBDFEG B.ACBDFGEC.ABDCGEFD.FCADBEG解析:6.若已经声明了函数原型“bool fun(bool a,int b=0);”,则下列重载函数声明中正确的是_。(分数:1.00)A.bool fun(bool a=true,int b=0); Bint fun(bool a,int B);B.void fun(dou

27、ble a,intC.; D.void fun(bool a,int b=0);解析:解析 本题考查函数重载相关知识,重载函数是函数的一种特殊情况,为方便使用,C+允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。A、B、D 选项的部分形参都与原函数相同,所以不能作为重载函数,选项 C 正确。7.若 MyClass 为一个类,执行“MyClass a4,*p5;”语句时会自动调用该类构造函数的次数是_。(分数:2.00)A.2B.5C.4 D.9解析:解析 语句 MyClass a4,*p5不

28、仅定义了 4 个 MyClass 对象,分别为 a0,a1,a2,a3,而且定义了 5 个指向 MyClass 对象的指针变量,分别为*p0,*p1,*p2,*p3,*p4,所以共调用MyClass 的构造函数 4 次。8.假设函数 fun 已经定义,其原型为“void fun(int a,int b=7,char*p=“*“);”下列函数调用中错误的是_。(分数:2.00)A.fun(5)B.fun(5,8)C.fun(6,“#“) D.fun(0,0,“=“)解析:解析 根据函数 fun()的定义,其前两个形参为整型变量,第三个形参为字符型变量。所以在调用时,必须符合形参的数据类型,而选项

29、 C 的第二个实参的数据类型为字符串,不符合第二个形参的数据类型。9.有如下类声明: class Foo int bar; 则 Foo 类的成员 bar 是_。(分数:2.00)A.公有数据成员B.公有成员函数C.私有数据成员 D.私有成员函数解析:解析 此题考查的是类的定义。在定义类的成员变量时,如果没有使用关键字;所有成员默认定义为 private 私有权限。10.包容类 Contain 和内嵌类 Embed 定义如下: #includeiostream.h class Contain private: int X; protected: int z; public: class Embe

30、d private: int y; public: Embed()y=100; int Embed_Fun(); MyEmbed; int Contain_Fun(); ; 对上面的定义,正确的描述是 _ 。(分数:1.00)A.定义类 Embed 对象的语句是:Contain? Embed embed; B.类 Contain 的成员函数 Contain_Fun()中可以用 MyEmbe D.y 的方式访问类 Embed 的私有成员 yC.类 Embed 的成员函数 Embed_Fun()中可以直接访问 Contain 的私有成员 xD.类 Embed 的成员函数 Embed_Fun()中可

31、以直接访问 Contain 的保护成员 Z解析:11.有如下类定义: class Bag public: Bag(int p=200, char s=“M“):price(p), size(s) coutsize; private: int price; char size; ; 若执行语句 Bag Alice, Kelly(Mice), *Twins2, F44; 则输出结果为_。(分数:1.00)A.MMMMMMMMB.MMMMMMC.MMMMM D.MMMM解析:解析 首先 Bag Alice 语句,会调用默认构造函数 Bag(int p=200,char s=“M“),输出 size

32、的值 M;接着 Bag Kelly(Alice)语句会调用编译器生成的复制构造函数,完成初始化,复制构造函数只负责初始化成员变量,没有输出语句;Bag *Twins2定义一个 Bag*类型的数组,包含两个 Bag*类型的元素,并不会构造 Bag 对象,没有输出;而:Bag F44定义了一个 Bag 类型的数组,包含 4 个 Bag 类型的元素,同时这 4 个元素会使用默认构造函数完成初始化,所以调用 Bag(int p=200,char s=“M“),输出 4 个 M。综上,输出结果为 MMMMM,答案为 C 选项。12.下列关于模板的描述中,错误的是_。(分数:1.00)A.类模板的成员函数

33、都是模板函数B.函数模板是一种参数化类型的函数C.满足一定条件时可以省略模板实参D.模板形参只能由关键字 typename 声明 解析:解析 templatetypename(或 class)数据类型参数标识符。13.从工程管理角度,软件设计一般分为两步完成,它们是 _ 。(分数:2.00)A.概要设计与详细设计 B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计解析:解析 从软件工程角度看,软件设计分为概要设计和详细设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构 i 详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库。14.假定

34、其中的 x 的单位是角度且不考虑丌的值的精度,则与数学公式 (分数:2.50)A.sqrt(cos(x)B.sqrt(abs(cos(x*3.14/180)C.sqrt(abs(cos(x*(/180)D.sqrt(fabs(cos(x*3.14/180) 解析:解析 本题考查数学表达式的掌握,首先应转换为弧度,然后作为 cos 函数的参数求绝对值,最后是开方函数。考生需要掌握的是常用的数学函数。15.下列关于虚函数的说明中,正确的是_。(分数:1.00)A.从虚基类继承的函数都是虚函数B.虚函数不得是静态成员函数 C.只能通过指针或引用调用虚函数D.抽象类中的成员函数都是虚函数解析:解析 在

35、某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数。虚函数必须是基类的非静态成员函数,其访问权限可以是 protected 或 public。如果一个类包含了纯虚函数,称此类为抽象类。所以本题答案为 B。16.有如下程序: #includeiostream using namespace std; class A public: A(int i):r1(i) void print() cout“E“r1“-“; void print() const cout“C“r1*r1“-“; private: int r1; ; int main() A a1(2); const

36、 A a2(4); a1.print(); a2.print(); return 0; 运行时的输出结果是_。(分数:2.00)A.运行时出错B.E2-C16- C.C4-C16-D.E2-E4-解析:解析 类 A 包括一个整型数据成员 r1,一个一般成员函数 print(),一个常成员函数 print()const。在主函数中定义了对象 a1,并对 r1 的值赋 2 和常对象 a2,并对 r1 的值赋 4,在 C+中,常对象不能被更新,所以常对象只能调用类的常成员函数,而不能调用一般成员函数。而一般的对象,既可以调用一般成员函数也可以调用常成员函数。所以在本题中,当执行 a1.print()

37、时,输出为 E2-,执行a2.print()时,输出为 C16-。17.下面程序的输出结果为 _ 。 #includeiostream.h class TestClass public: TestClass ()val+; static int val; ; int TestClass:val=0; void main() TestClass cs1; coutcs1.val“; TestClass cs2; TestClass cs3,cs4; coutcs2.valendl; (分数:2.00)A.03B.13C.14 D.24解析:解析 由主函数 main 入手,定义 TestClass

38、 类的对象 cs1,执行 cs1.val,其中 val 为静态变量,根据“int TestClass:val=0;”初始化,TestClass 中的 TestClass ()val+;构造函数执行后,val值为 1。主函数中接着定义对象 cs2,cs3,cs4。执行“coutcs2.valendl;”中的 val 值为 4。18.有 3 个关系 R、S 和 T 如下: (分数:2.50)A并B.自然连接C.笛卡儿积D交 解析:解析 由题可知,T 中的数据既在 R 中,也在 S 中,符合这个概念的是“交”运算,选项 D 正确。19.已知在一个类体中包含如下函数原型:VOLUMEOPER ATOR

39、-(VOLUME)const;,下列关于这个函数的叙述中,错误的是_。(分数:1.00)A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符 C.这是一个成员函数D.这个函数不改变类的任何数据成员的值解析:解析 本题考核运算符的重载。题中语句为运算符一这是一个二元运算符,且是作为常成员函数来重载的,所以它不能更新对象的数据成员,也不能调用该类中没有用 const 修饰的成员函数。20.有如下程序: #includeiostream using namespace std; void f1(intx=y;y=z; void f2(int x,int y)int z=x;x=

40、y;y=z; int main() int x=10,y=26; f1(x,y); f2(x,y); coutyendl; return 0; 运行时的输出结果是_。(分数:2.50)A.10 B.16C.26D.36解析:解析 函数 f1 的参数传递方式采用传引用方式,调用函数 f1 后,实参变量 x、y 的值被交换。此时,x=26,y=10。函数 f2 的参数传递方式采用传值方式,调用函数 f2 后,不会改变实参变量 x、y 的值。故程序输出 y 的值为 10。21.在软件设计中,不属于过程设计工具的是_。(分数:1.00)A.PDL(过程设计语言)B.PAD 图C.N-S 图D.DFD

41、图 解析:解析 PDL 是过程设计语言(Procedure DesignLanguage)的简写,也称程序描述语言,是用于描述模块算法设计和处理细节的语言;N-S 图是编程过程中常用的一种分析工具,提出了最初分析问题方法;PAD 是问题分析图(Problem Analysis Diagram)的简写,它用二维树型结构的图表示程序的控制流,将这种图转换为程序代码比较容易;DFD(数据流图)是描述数据处理过程的工具。22.下列描述中正确的是_ 。(分数:2.00)A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合 解析:解析 软件

42、与程序有区别,软件的相关概念。23.下列叙述中,错误的是_。(分数:2.50)A.false 是一个逻辑型常量B.“b“是一个字符型常量 C.365 是一个 int 常量D.3.1415926 是一个 double 常量解析:解析 字符型常量用一对单引号括起来,用双引号括起来的是字符串常量。故 B 错误。24.下列程序执行后,输出的结果是_。 int x=-5,y=0; while(+x) y+; coutyendl;(分数:2.50)A.1B.2C.4 D.5解析:解析 循环条件是+x,在 c+中,对于非 0 值全都为真,0 代表假。x 的初始值为-5,所以循环能进行 4 次。25.下列叙述

43、中正确的是_。(分数:1.00)A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对 解析:解析 程序可以实现算法,所以 A 错。设计算法除了考虑数据结构外,还需考虑结果的可靠性,以及算法效率,等等。26.下列叙述中错误的是 _ 。(分数:2.00)A.一个函数中可以有多条 return 语句B.调用函数必须在一条独立的语句中完成 C.函数中可通过 return 语句传递函数值D.主函数名 main 也可以带有形参解析:解析 当函数有返回值时,调用函数可以作为一个表达式的子表达式而不作为一条独立的语句存在。27.关于关键字 class

44、 和 typename,下列表述正确的是_。(分数:3.00)A.程序中所有的 class 都可以替换为 typenameB.程序中所有的 typename 都可以替换为 class C.A 和 B 都可以D.A 和 B 都不可以解析:28.有如下类定义: class AA int a; Public: AA(int n=0):a(n) ; class BB:public AA public: BB(int n)_ ; 其中横线处的缺失部分是_。(分数:1.00)A.:a(n)B.:AA(n) C.a(n);D.a=n;解析:解析 本题考查公用继承对基类成员的访问属性。公用继承中,基类的公用成

45、员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有,本题中若要给派生类继承下来基类的私有成员赋值,那么只能调用基类的成员函数来对它赋值,成员变量默认的访问权限为私有,即 a 为私有变量。所以本题答案为 B。29.下列关于运算符重载不正确的是_。(分数:1.00)A.运算符重载不能改变运算符的操作数个数B.运算符重载不能改变运算符的优先级C.运算符重载不能改变运算符的结合性D.运算符重载能改变对预定义类型数据的操作方式 解析:解析 本题考查 C+语言中操作符重载的概念。运算符重载的关键字是 operator。运算符重载的规则是重载时不能改变运算符的操作数个数,不能改变运算符的优先级,

46、不能改变运算符的结合性,不能改变对预定义类型数据的操作方式。30.下列选项合法的标识符是_。(分数:2.50)A.1_1B.1-1C._11 D.1_ _解析:解析 C 语言中标识符命名的规则是:标识符只能由字母、数字和下画线组成,第一个字符必须为字母或下画线。所以选项 C 正确。31.下列关于运算符重载的叙述中,错误的是_。(分数:2.00)A.有的运算符可以作为非成员函数重载B.所有的运算符都可以通过重载而被赋予新的含义 C.不得为重载的运算符函数的参数设置默认值D.有的运算符只能作为成员函数重载解析:解析 “运算符重载”是针对 C+中原有运算符进行的,不可能通过重载创造新的运算符。除了*,.*,-*,:,?:,这五个运算符以外,其他运算符都可以重载。32.下列关于 C+流的说明中,正确的是 _ 。(分数:2.00)A.与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现 B.从流中获取数据的操作称为插入操作,向流中添加数据的操作称为提取操作C.cin 是一个预定义的输入流类D.输出流有一个名为 open 的成员函数,其作用是生成一个新的流对象解析:33.有如下函数模板: templateclass TT square(T x) retum x*x; 其中的参数 T 是_。(分数:1.00)A.函数形参B.函数实参C.模板实参D.模板形

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

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

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