ImageVerifierCode 换一换
格式:DOC , 页数:18 ,大小:79KB ,
资源ID:1324241      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1324241.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】二级C++分类模拟243及答案解析.doc)为本站会员(Iclinic170)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【计算机类职业资格】二级C++分类模拟243及答案解析.doc

1、二级 C+分类模拟 243 及答案解析(总分:75.50,做题时间:90 分钟)一、选择题(总题数:40,分数:75.50)1.在 32 位的计算机中,一个 char 型数据所占的内存长度的字节是_。(分数:2.50)A.4B.1C.2D.82.关于 C+语言与 C 语言关系描述中错误的是(分数:1.00)A.C+语言是 C 语言的超集B.C+语言对 C 语言进行了扩充C.C+语言包含 C 语言的全部语法特征D.C+语言与 C 语言都是面向对象的程序设计语言3.已知表达式+x 中的“+”是作为成员函数重载的运算符,则与+x 等效的运算符函数调用形式为_。(分数:1.00)A.operator+

2、(1)B.operator+(x)C.operator+()D.operator+(x)4.当使用 ifstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为_。(分数:2.00)A.ios_base:inB.ios_base:in | ios_base:outC.ios_base:outD.ios_base:in class Base public: virtual void function1()cout“0“; void function2()out“1“; ; class Derived:public Base oublic: void function1()cou

3、t“2“; void function2()cout“3“; ; int main() Base*p=new Derived(); p-function1(); p-function2(); return 0; 运行时的输出结果是_。(分数:1.00)A.01B.21C.03D.236.用链表表示线性表的优点是 _ 。(分数:2.00)A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序和逻辑顺序相同7.下列关于派生类的叙述中,错误的是_。(分数:2.50)A.派生类至少要有一个基类B.派生类中包括了从基类继承的成员C.一个派生类可以作为另一个派生类的基类

4、D.基类成员被派生类继承以后访问权限保持不变8.数据流程图(DFD 图)是 _ 。(分数:2.00)A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具D.面向对象方法的需求分析工具9.当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为_。(分数:2.50)A.ios base:inB.ios_base:binaryC.ios base:in|ios_base:outD.ios_base:out10.在软件测试设计中,软件测试的主要目的是 _ 。(分数:2.00)A.实验性运行软件B.证明软件正确C.演示软件的正确功能D.发现软件错误而执

5、行程序11.一个函数为 void(int,char=“a“),另一个函数为 void f(int),则它们 _ 。(分数:1.00)A.不能在同一程序中定义B.可以在同一程序中定义并可重载C.可以在同一程序中定义,但不可以重载D.以上说法均不正确12.若已定义了类 Vehicle,则下列派生类定义中,错误的是_。(分数:2.50)A.class Car:Vehicle/*类体略*/B.class Car:public Car/*类体略*/C.class Car:public Vehicle/*类体略*/D.class Car:virtual public Vehicle/*类体略*/13.执行

6、下面的程序段后,变量 k 的值为 _ 。 int k=3,s2; s0=k; k=s1*10;(分数:1.00)A.不定值B.33C.30D.1014.派生类的成员函数不能访问基类的_。(分数:2.50)A.共有成员和保护成员B.共有成员C.私有成员D.保护成员15.有下列程序: #include stdio.h #include“string.h“ tyoedef structchar name9;char sex;float score2;STU; void f(STU a) STU b=“Zhao“,“m“,85.0,90.0;int i;strcpy(a.name,b.name); a

7、.sex=b.sex; for(i=0;i2;i+)a.scorei=b.scorei; void main() STU c=(“Qian“,“f“,g5.0,92.0); f(c); printf(“%s,%c,%2.of,%2.of/n“,c.name,c.sex, c.score0,c.score1); 程序的运行结果是_。(分数:2.50)A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,9016.若执行下面的程序时,从键盘上输入 5 和 2,则输出结果是_。 # includeiostream.h void main() in

8、t a,b,k; cinab; k=a; if(ab) k=a%b; else k=b%a; coutkendl;(分数:2.50)A.5B.3C.2D.017.C+系统预定了 4 个用于标准数据流的对象,下列选项中不属于此类对象的是_。(分数:2.00)A.coutB.cinC.cerrD.cset18.下列关于函数重载的叙述中,错误的是_。(分数:2.00)A.重载函数的参数个数可以不同B.重载函数的参数类型可以不同C.重载函数的返回值类型必须不同D.重载函数的参数个数或参数类型必须有所不同19.执行语句序列 ofstream outfile(“DATA. DAT“); if(.)cout

9、“OK“;else cout“FAIL“; 后,如果文件打开成功,显示“OK”,否则显示“FAIL”。由此可知,上面 if 语句的处的表达式是_。(分数:2.50)A.outfile.fail()或 outfileB.outfile.good()或!outfileC.out.file.good()或 outfileD.outfile.fail()或!outfile20.有如下程序: #includeiostream using namespace std; int main() void function(double val); double val; function(val); cout

10、val; return 0; void function(double val) val=3; 编译运行这个程序将出现的情况是_。(分数:2.00)A.编译出错,无法运行B.输出:3C.输出:3.0D.输出一个不确定的数21.下列关于虚基类的描述中错误的是(分数:2.00)A.虚基类子对象的初始化由最派生类完成B.虚基类子对象的初始化次数与虚基类下面的派生类个数有关C.设置虚基类的目的是消除二义性D.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数调用22.有两个关系 R 和 S 如下: (分数:2.50)A.选择B.投影C.自然连接D并23.有如下 4 个语句: co

11、ut“A“setfill(“*“)leftsetw(7)“B“endl; coutsetfill(“*“)leftsetw(7)“A“B“endl; cout“A“serfill(“*“)rightsetw(7)“B“endl; coutsetfill(“*“)rightsetw(7)“A“B“endl; 其中能显示 A*B 的是_。(分数:2.00)A.和B.和C.和D.和24.有 3 个关系 R、S 和 T 如下: (分数:2.50)A并B.自然连接C.笛卡儿积D交25.下面程序的输出结果是_。 #include iostream using namespace std; int fun(

12、char *s); int main() coutfun(“Hello“); return 0; int fun(char *s) char *t=s; while(*t!=“/0“)t+; return(t-s); (分数:3.00)A.语法错,不能输出正确结果B.5C.6D.026.下列关于模板形参的描述中,错误的是_。(分数:2.50)A.模板形参表必须在关键字 template 之后B.模板形参表必须用括弧()括起来C.可以用 class 修饰模板形参D.可以用 typename 修饰模板形参27.下列叙述中正确的是_。(分数:1.00)A.软件测试应该由程序开发者来完成B.程序经调试

13、后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上三种说法都不对28.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是_。(分数:1.00)A.提高耦合性降低内聚性有利于提高模块的独立性B.降低耦合性提高内聚性有利于提高模块的独立性C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度D.内聚性是指模块间互相连接的紧密程度29.已知有数组定义 char a34; 下列表达式中错误的是_。(分数:2.00)A.a2=“WIN“B.strcpy(a2,“WIN“)C.a23=“w“D.a01=a0130.下列字符串中,正确的 C+标识符是 _ 。(分数:2.00)A.foo

14、-1B.2bC.newD._25631.同一概念在一处为实体而在另一处为属性或联系的冲突在视图集成中称为_。(分数:2.50)A.命名冲突B.概念冲突C.域冲突D.约束冲突32.在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则 _ 。(分数:2.00)A.完全相同B.完全不同C.部分相同D.以上都不对33.有如下程序: #includeiostream using namespace std; class test private: int a; public: test()cout“constructor“endl; test(int a)coutaendl; t

15、est(const test cout“copy constructor“endl; test()cout“destructor“endl; ; int main() test A(3); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.3B.constructordestructorC.copy constructordestructorD.3destructor34.某二叉树共有 150 个结点,其中有 50 个度为 1 的结点,则_。(分数:1.00)A.不存在这样的二叉树B.该二叉树有 49 个叶子结点C.该二叉树有 50 个叶子结点D.该二叉树有 51 个叶子结

16、点35.下面的叙述中错误的是_。(分数:2.50)A.派生类可以使用 private 派生B.对基类成员的访问必须是无二义性的C.基类成员的访问能力在派生类中维持不变D.赋值兼容规则电适用于多继承的组合36.对于长度为 n 的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是_。(分数:1.00)A.冒泡排序为 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/237.有以下程序: #include iostream using namespace std; int main() int num23,*p; int t,i,j,k=10; p=num0; for

17、(i=0;i2;i+) for(j=0;j3;j+) k+; *p=k; for(t=2;t*p;t+) if(!(*pt) j-; *p-; break; *p+; cout*(p-1)end1; return 0; 程序运行后的输出结果是 _ 。(分数:1.00)A.19B.11C.29D.2338.有如下程序: #includelostream using namespace std; class MyClass public: MyClass() cout “*“; MyClass(MyClass MyClass() cout “; ; int main(); MyClass a; M

18、yclass b(a); return 0; 运行时的输出结果是_。(分数:2.00)A.*#B.#*C.*#D.#*39.将下面类 TestClass 中的函数 fun()的对象成员 n 值修改为 100 的语句应该是 _ 。 class TcstClass public: TestClass(int x)n=x; void SetNum(int n1)n=n1; private: int n; int fun() TestClass * ptr=new TestClass(45); _; (分数:2.00)A.TestClass(100)B.ptr-SetNum(100)C.SetNum(

19、100)D.ptr-n=10040.有如下类定义: 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:二级 C+分类模拟 243 答案解析(总分:75.50,做题时间:90 分钟)一、选择题(总题数:40,分数:75.50)1.在 32 位的计算机中,一个 char 型数据所占的内存长度的字节是_。(分数:2.50)A.4B.1 C.2D.

20、8解析:解析 在 32 位的计算机中,一个 char 型数据所占的内存长度的字节是 1。2.关于 C+语言与 C 语言关系描述中错误的是(分数:1.00)A.C+语言是 C 语言的超集B.C+语言对 C 语言进行了扩充C.C+语言包含 C 语言的全部语法特征D.C+语言与 C 语言都是面向对象的程序设计语言 解析:解析:C 语言是一种面向过程的程序设计语言,而 C+语言是一种面向对象的设计语言,C+语言是C 语言的超集,它包含了 C 语言的所有语言特性,并进行了扩充。3.已知表达式+x 中的“+”是作为成员函数重载的运算符,则与+x 等效的运算符函数调用形式为_。(分数:1.00)A.oper

21、ator+(1)B.operator+(x)C.operator+() D.operator+(x)解析:解析 本题考查的是前缀自增运算符的重载。由于题意中“+”是作为成员函数重载的运算符,所以若要显式的调用该运算符,需要使用该类的对象加上“.”运算符,即 x.operator+();又因为为了区分前缀运算符和后缀运算符,在调用后缀运算符时,需要给出一个整型实参值,而前缀运算符则不需要,所以+x 等效的运算符函数调用形式为:x.operator+(),答案为 C 选项。4.当使用 ifstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为_。(分数:2.00)A.ios_b

22、ase:in B.ios_base:in | ios_base:outC.ios_base:outD.ios_base:in class Base public: virtual void function1()cout“0“; void function2()out“1“; ; class Derived:public Base oublic: void function1()cout“2“; void function2()cout“3“; ; int main() Base*p=new Derived(); p-function1(); p-function2(); return 0;

23、运行时的输出结果是_。(分数:1.00)A.01B.21 C.03D.23解析:解析 本题中需要注意的是虚函数的定义:指向基类的指针在操作它的多态类对象时,会根据不同的类对象,调用其相应的函数,这个函数就是虚函数。所以 p-functionl();会指向实现类Derived,而 p-function2()则会指向 Base。6.用链表表示线性表的优点是 _ 。(分数:2.00)A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作 D.数据元素的物理顺序和逻辑顺序相同解析:解析 在链表中因为除了存放数据元素之外,还要存放指针,所以链表花费的存储空间比顺序表还要多。在插入和删除数据

24、元素时,只需要移动相应的记录指针即可。在链表中,数据的物理结构与逻辑结构不一定相同,因为是靠指针来实现对数据的指定,所以不能进行随机存取。7.下列关于派生类的叙述中,错误的是_。(分数:2.50)A.派生类至少要有一个基类B.派生类中包括了从基类继承的成员C.一个派生类可以作为另一个派生类的基类D.基类成员被派生类继承以后访问权限保持不变 解析:解析 一个派生类可以作为另一个派生类的基类;无论是单继承还是多继承,派生类至少有一个基类;派生类的成员除了它自己的成员外,还包含了它的基类成员;派生类中继承的基类成员的访问权限到派生类受继承方式影响的。8.数据流程图(DFD 图)是 _ 。(分数:2.

25、00)A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具D.面向对象方法的需求分析工具 解析:解析 数据流程图是一种结构化分析描述模型,用来对系统的功能需求进行建模。9.当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为_。(分数:2.50)A.ios base:inB.ios_base:binaryC.ios base:in|ios_base:outD.ios_base:out 解析:解析 对于 ifstream,默认打开模式是 ios_base:in。ifstream 只能用于输入,不可用于输出。对于 ofstream,默认打开模式

26、是 ios_base:out。ofstream 只能用于输出,不可用于输入。对于fstream,没有默认的打开模式,因此在打开文件时必须在 ios_base:in、ios_base:out 和ios_base:in|ios_base:out 这三种打开模式中指定一个。10.在软件测试设计中,软件测试的主要目的是 _ 。(分数:2.00)A.实验性运行软件B.证明软件正确C.演示软件的正确功能D.发现软件错误而执行程序 解析:解析 使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。测试要以

27、查找错误为中心,而不是为了演示软件的正确功能。11.一个函数为 void(int,char=“a“),另一个函数为 void f(int),则它们 _ 。(分数:1.00)A.不能在同一程序中定义B.可以在同一程序中定义并可重载C.可以在同一程序中定义,但不可以重载 D.以上说法均不正确解析:12.若已定义了类 Vehicle,则下列派生类定义中,错误的是_。(分数:2.50)A.class Car:Vehicle/*类体略*/B.class Car:public Car/*类体略*/ C.class Car:public Vehicle/*类体略*/D.class Car:virtual p

28、ublic Vehicle/*类体略*/解析:13.执行下面的程序段后,变量 k 的值为 _ 。 int k=3,s2; s0=k; k=s1*10;(分数:1.00)A.不定值 B.33C.30D.10解析:解析 解本题考核数组元素的初值及其引用。若数组为 auto 型,且没有进行初始化,其元素的值为不确定。本程序中,虽然给 s0赋了一个初值,但 s1的值依旧是不确定的,所以执行语句“k=s1*10”后,k 的值也不确定的。14.派生类的成员函数不能访问基类的_。(分数:2.50)A.共有成员和保护成员B.共有成员C.私有成员 D.保护成员解析:解析 类的私有成员只能在其内部访问。15.有下

29、列程序: #include stdio.h #include“string.h“ tyoedef structchar name9;char sex;float score2;STU; void f(STU a) STU b=“Zhao“,“m“,85.0,90.0;int i;strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i2;i+)a.scorei=b.scorei; void main() STU c=(“Qian“,“f“,g5.0,92.0); f(c); printf(“%s,%c,%2.of,%2.of/n“,c.name,c.sex,

30、c.score0,c.score1); 程序的运行结果是_。(分数:2.50)A.Qian,f,95,92 B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90解析:解析 本题考查在结构体中函数的调用,主函数调用 f(c)后,实参传向形参,但程序中没有返回语句,故形参不能将值传回实参,实参之间值的传递具有不可逆性,所以 printf 输出的还是 c 中实参的值。16.若执行下面的程序时,从键盘上输入 5 和 2,则输出结果是_。 # includeiostream.h void main() int a,b,k; cinab; k=a; if(ab) k=a%b

31、; else k=b%a; coutkendl;(分数:2.50)A.5B.3C.2 D.0解析:解析 本题考查简单的 if.else 语句。先执行条件 if(ab),显然不成立,则执行 else 语句。17.C+系统预定了 4 个用于标准数据流的对象,下列选项中不属于此类对象的是_。(分数:2.00)A.coutB.cinC.cerrD.cset 解析:解析 C+流有 4 个预定义的流对象,它们分别是:cin 标准输入;cout 标准输出;cerr 标准出错信息输出;clog 带缓冲的标准出错信息输出。18.下列关于函数重载的叙述中,错误的是_。(分数:2.00)A.重载函数的参数个数可以不

32、同B.重载函数的参数类型可以不同C.重载函数的返回值类型必须不同 D.重载函数的参数个数或参数类型必须有所不同解析:解析 两个或两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数进行最佳匹配,自动确定调用哪个函数,这就是函数的重载。19.执行语句序列 ofstream outfile(“DATA. DAT“); if(.)cout“OK“;else cout“FAIL“; 后,如果文件打开成功,显示“OK”,否则显示“FAIL”。由此可知,上面 if 语句的处的表达式是_。(分数:2.50)A.outfile.fail()或 outfileB.out

33、file.good()或!outfileC.out.file.good()或 outfile D.outfile.fail()或!outfile解析:20.有如下程序: #includeiostream using namespace std; int main() void function(double val); double val; function(val); coutval; return 0; void function(double val) val=3; 编译运行这个程序将出现的情况是_。(分数:2.00)A.编译出错,无法运行B.输出:3C.输出:3.0D.输出一个不确定

34、的数 解析:21.下列关于虚基类的描述中错误的是(分数:2.00)A.虚基类子对象的初始化由最派生类完成B.虚基类子对象的初始化次数与虚基类下面的派生类个数有关 C.设置虚基类的目的是消除二义性D.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数调用解析:解析 虚基类主要是为了消除在多重继承中的二义性问题。实际上,说某个类是虚基类,并不是该类本身有什么特殊的地方,而是在继承的时候加上 virtual 修饰词。虚基类不同于抽象类,虚基类是可以被实例化的,派生类初始化时,必须列出虚基类的构造函数调用。虚基类对象的初始化次数只于对象的多少有关,与类的层次结构是没有关系的。故本

35、题正确答案为 B。22.有两个关系 R 和 S 如下: (分数:2.50)A.选择 B.投影C.自然连接D并解析:解析 由关系 R 得到关系 S 是一个一元运算,而自然连接和并都是多元运算可以排除选项 C 和选项 D。关系 S 是由关系 R 的第 3 个元组组成,很显然这是对关系 R 进行选择运算的结果。投影运算则是要从关系 R 中选择某些列。可以简单地理解,选择运算是对行的操作,投影运算是对列的操作。23.有如下 4 个语句: cout“A“setfill(“*“)leftsetw(7)“B“endl; coutsetfill(“*“)leftsetw(7)“A“B“endl; cout“A

36、“serfill(“*“)rightsetw(7)“B“endl; coutsetfill(“*“)rightsetw(7)“A“B“endl; 其中能显示 A*B 的是_。(分数:2.00)A.和B.和C.和 D.和解析:解析 此题考查 C+流的使用。setfill()作用是设置填充字符;left 是使输出数据在指定宽度内左对齐;right 是使输出数据在指定宽度内右对齐。24.有 3 个关系 R、S 和 T 如下: (分数:2.50)A并B.自然连接C.笛卡儿积D交 解析:解析 由题可知,T 中的数据既在 R 中,也在 S 中,符合这个概念的是“交”运算,选项 D 正确。25.下面程序的输

37、出结果是_。 #include iostream using namespace std; int fun(char *s); int main() coutfun(“Hello“); return 0; int fun(char *s) char *t=s; while(*t!=“/0“)t+; return(t-s); (分数:3.00)A.语法错,不能输出正确结果B.5 C.6D.0解析:26.下列关于模板形参的描述中,错误的是_。(分数:2.50)A.模板形参表必须在关键字 template 之后B.模板形参表必须用括弧()括起来 C.可以用 class 修饰模板形参D.可以用 typ

38、ename 修饰模板形参解析:解析 主要考查函数模板的定义。声明一个函数模板的格式为“tcmplate模板形参表声明函数声明”,其中具有 typename参数名、class参数名、类型修饰参数名三种形式,形参用“”括起来。27.下列叙述中正确的是_。(分数:1.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上三种说法都不对 解析:解析 程序调试就是诊断和改正程序中的错误,由程序开发者完成。软件测试是为了发现错误而执行程序的过程,它由专门的测试人员完成。软件维护是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程,

39、是软件生存周期中非常重要的一个阶段。28.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是_。(分数:1.00)A.提高耦合性降低内聚性有利于提高模块的独立性B.降低耦合性提高内聚性有利于提高模块的独立性 C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度D.内聚性是指模块间互相连接的紧密程度解析:解析 模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以 A 错误,B 正确。耦合性是模块间互相连接的紧密程度的度量而内聚性

40、是指一个模块内部各个元素间彼此结合的紧密程度,所以 C 与 D 错误。29.已知有数组定义 char a34; 下列表达式中错误的是_。(分数:2.00)A.a2=“WIN“ B.strcpy(a2,“WIN“)C.a23=“w“D.a01=a01解析:解析 本题主要是对字符数组的考查。选项 A 中 a2为一个地址,所以不能用等号进行赋值操作。30.下列字符串中,正确的 C+标识符是 _ 。(分数:2.00)A.foo-1B.2bC.newD._256 解析:31.同一概念在一处为实体而在另一处为属性或联系的冲突在视图集成中称为_。(分数:2.50)A.命名冲突B.概念冲突 C.域冲突D.约束

41、冲突解析:解析 同一概念在一处为实体,而在另一处为属性或联系的冲突称为概念冲突。32.在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则 _ 。(分数:2.00)A.完全相同 B.完全不同C.部分相同D.以上都不对解析:解析 在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则完全相同。33.有如下程序: #includeiostream using namespace std; class test private: int a; public: test()cout“constructor“endl; test(int a)coutaend

42、l; test(const test cout“copy constructor“endl; test()cout“destructor“endl; ; int main() test A(3); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.3B.constructordestructorC.copy constructordestructorD.3destructor 解析:解析 本题考查默认构造函数和带参数的构造函数以及析构函数,本题中定义了一个对象 A(3),对象带着参数,所以执行带参数的构造函数,输出 3,然后执行析构函数,输出 destructor。所以本题

43、答案为 D。34.某二叉树共有 150 个结点,其中有 50 个度为 1 的结点,则_。(分数:1.00)A.不存在这样的二叉树 B.该二叉树有 49 个叶子结点C.该二叉树有 50 个叶子结点D.该二叉树有 51 个叶子结点解析:解析 在树结构中,一个结点所拥有的后件个数称为该结点的度。对任何一棵二叉树,度为 0 的结点(即叶子结点)总是比度为 2 的结点多一个。二叉树中有 150 个结点,设叶子结点个数为 n 0 ,度为 1的结点个数为 50,设度为 2 的结点个数为 n 2 。150=n 0 +50+n 2 且 n 0 =n 2 +1,则 n 0 =50.5,n 2 =49.5。由于结点

44、个数必须是整数,所以不存在这样的二叉树,故选择 A 选项。35.下面的叙述中错误的是_。(分数:2.50)A.派生类可以使用 private 派生B.对基类成员的访问必须是无二义性的C.基类成员的访问能力在派生类中维持不变 D.赋值兼容规则电适用于多继承的组合解析:36.对于长度为 n 的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是_。(分数:1.00)A.冒泡排序为 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/2 解析:解析 本题主要考查对排序算法的理解。冒泡排序法首先将第一个记录的关键字与第二个记录的关键字进行比较,若逆序则交换,然后比较第二个与

45、第三个,以此类推,直至第 n-1 个与第 n 个记录的关键字进行比较。第一趟冒泡排序使最大的关键字元素放到最后。以此类推,进行第 2n 次冒泡排序。如果在排序过程中不存在逆序,则排序结束。在最坏情况下,冒泡排序中,若初始序列为“逆序”序列,则需要比较 n(n-1)/2 次。快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字比另一部分记录的关键字小,然后分别对这两部分记录继续进行排序,最终达到整个记录有序。对于快速排序,当初始记录序列按关键字有序或基本有序时,快速排序退化为冒泡排序,最坏情况下比较次数为 n(n-1)/2。37.有以下

46、程序: #include iostream using namespace std; int main() int num23,*p; int t,i,j,k=10; p=num0; for(i=0;i2;i+) for(j=0;j3;j+) k+; *p=k; for(t=2;t*p;t+) if(!(*pt) j-; *p-; break; *p+; cout*(p-1)end1; return 0; 程序运行后的输出结果是 _ 。(分数:1.00)A.19B.11C.29 D.23解析:解析 本题考核数组与指针的关系。程序首先初始化指针 p,让其指向二维数组 num 的首元素,即 num00。程序中,第 1 个 for 循环是为二维数组的每行元素赋值而设置的循环,第 2 个 for 循环是为二维数组的每列元素赋值而设定的,第 3 个 for 循环是为判断数组元素是否是素数而设置的。在第 3

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