[计算机类试卷]国家二级(C++)笔试模拟试卷78及答案与解析.doc

上传人:刘芸 文档编号:502785 上传时间:2018-11-29 格式:DOC 页数:27 大小:73.50KB
下载 相关 举报
[计算机类试卷]国家二级(C++)笔试模拟试卷78及答案与解析.doc_第1页
第1页 / 共27页
[计算机类试卷]国家二级(C++)笔试模拟试卷78及答案与解析.doc_第2页
第2页 / 共27页
[计算机类试卷]国家二级(C++)笔试模拟试卷78及答案与解析.doc_第3页
第3页 / 共27页
[计算机类试卷]国家二级(C++)笔试模拟试卷78及答案与解析.doc_第4页
第4页 / 共27页
[计算机类试卷]国家二级(C++)笔试模拟试卷78及答案与解析.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、国家二级( C+)笔试模拟试卷 78及答案与解析 1 算法的空间复杂度是指 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)算法执行过程中所需要的存储空间 2 下列关于队列的叙述中正确的是 ( A)在队列中只能插入数据 ( B)在队列中只能删除数据 ( C)队列是先进先出的线性表 ( D)队列是先进后出的线性表 3 在深度为 5的满二叉树中,叶子结点的个数为 ( A) 31 ( B) 32 ( C) 16 ( D) 15 4 下列叙述中正确的是 ( A)在模 块化程序设计中,一个模块应尽量多的包括与其他模块联系的信息 ( B)在自顶向下、逐步细化的

2、设计过程中,首先应设计解决问题的每一个细节 ( C)在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则 ( D)在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法 5 下列叙述中正确的是 ( A)程序执行的效率与数据的存储结构密切相关 ( B)程序执行的效率只取决于程序的控制结构 ( C)程序执行的效率只取决于所处理的数据量 ( D)以上三种说法都不对 6 在软件生存周期小,能准确地 确定软件系统必须做什么和必须具备哪些功能的阶段是 ( A)概要设计 ( B)详细设计 ( C)可行性分析 ( D)需求分析 7 软件需求分析阶段的工作,可以分为四个方面:需求获取,需求

3、分析,编写需求规格说明书,以及 ( A)阶段性报告 ( B)需求评审 ( C)总结 ( D)都不正确 8 在关系数据库中,用来表示实体之间联系的是 ( A)树结构 ( B)网结构 ( C)线性表 ( D)二维表 9 在面向对象的程序设计中,下列叙述中错误的是 ( A)任何一个对象构成一个独立的模块 ( B)一个对象 不是独立存在的实体,各个对象之间有关联,相互依赖 ( C)下一层次的对象可以继承上一层次对象的某些属性 ( D)上述三种说法都正确 10 将 E-R图转换到关系模式时,实体与联系都可以表示成 ( A)属性 ( B)关系 ( C)键 ( D)域 11 若有以下定义: int a=1,

4、2,3,4,5,6,7 char c1=b,c2=2; 则数值不为 2的表达式是 ( A) a1 ( B) d-c1 ( C) a3-c2 ( D) c2-0 12 面向对象程序设 计思想的主要特征中不包括 ( A)继承性 ( B)功能分解,逐步求精 ( C)封装性和信息隐藏 ( D)多态性 13 下面关于虚函数的描述中正确的是 ( A)虚函数是一个静态成员函数 ( B)虚函数是一个非成员函数 ( C)虚函数既可以在函数说明时定义,也可以在函数实现时定义 ( D)派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 14 下列运算符中不能在 C中重载的是 ( A) ?: ( B) + (

5、 C) - ( D) = 15 模板函数的真正代码是在 ( )时候产生。 ( A) 源程序中声明函数时 ( B)源程序中定义函数时 ( C)源程序中调用函数时 ( D)运行执行函数时 16 若执行语句: cout setfill(*) setw(10) 123 “OK“ end1后将输出 ( A) *1230K ( B) 123*OK ( C) *123*OK ( D) 123*OK* 17 C语言中 while循环和 do-while循环的主要区别是 ( A) do-while的循环体至少无条件执行一 次 ( B) while的循环控制条件比 do-while的循环控制条件严格 ( C) d

6、o-while允许从外部转到循环体内 ( D) do-while的循环体不能是复合语句 18 设有以下程序段: int a5=0, *p, *q; p=a; q=a; 则下列选项中,合法的运算是 ( A) p+q ( B) p-q ( C) p*q ( D) P q 19 已知: int n=10;那么下列语句中错误的是 ( A) int*p=new longn; ( B) int pn; ( C) int*p=new long(n); ( D) int p10; 20 以下程序执行后的输出结果是 #include iostream using namcspace std; void try(

7、int,int,int,int); int main() int x, y, z, r; x=1; y=2; try(x,y,z,r); cout r end1; return 0; void try(int x,int y, int z,int r) z = x+y; x = x*x; y = y*y; r = z+x+y; ( A) 18 ( B) 9 ( C) 10 ( D)不确定 21 若有如下程序: #include iostream using namespaces std; int s=O; class sample static int n; public: sample(in

8、t i) n=i; static void add() s+=n; ; int sample:s=O; int main() sample a(2),b(5); sample: :add(); cout s end1; return 0; 程序运行后的输出结果是 ( A) 2 ( B) 5 ( C) 7 ( D) 3 22 下列类的定义中,有 ( ) 处语法错误。 class Base public: Base() Base(int i) data=i; private: int data; ; class Derive: public Base public: Derive(): Base(

9、O) Derive(int x) d=x; void setvalue(int i) data=i; private: d; ; ( A) 1 ( B) 2 ( C) 3 ( D) 4 23 c流中重载了运算符 ,它是一个 ( A)用于输出操作的成员函数 ( B)用于输入操作的成员函数 ( C)用于输入操作的非成员函数 ( D)用于输出操作的非成员函数 24 有如下函数模板定义: template typename T1,typename T2,typename T3 T2 plus T1 t1,T3 t3)return t1+t3; 则以下调用中正确是 ( A) plus(3,5L); (

10、B) plus (3, 5L); ( C) plus int (3,5L); ( D) plus int,double (3,5L); 25 下列打开文件的表达式中,错误的是 ( A) ofstream ofile; ofile open(“C: vcabc.txt“,ios:binary); ( B) fstream iofile; iofile open(“abc.txt“,ios:ate); ( C) ifstream ifile (“C:vc abc.txt“); ( D) cout.open(“C: vcabc.txt“,ios:binary); 26 假定 MyClass为一个类,

11、则该类的拷贝构造函数的声明语句为 ( A) MyClass class Base public: Base() x=0; int x; ; class Derivedl: virtual public Base public: Derived1() x=10; ; class Derived2: virtual public Base publici Derived2() x=20; ; class Derived :public Derived1,protected Derived2 ; int main() Derived obj; cout obj.x end1; return 0; 该

12、程序运行后的输出结果是 ( A) 20 ( B) 30 ( C) 10 ( D) 0 32 如果表达式 y*x+中, “*”是作为成员函数重载的运算符, “+”是作为友元函数重载的运算符,采用运算符函数调用格式,该表 达式还可表示为 ( A) x.operator+(0).operator*(y); ( B) operator*(x.operator+(0), y); ( C) y.operator*(operator+(x,O) ( D) operator*(operator+(x, 0), y) 33 关于类模板,下列表述不正确的是 ( A)用类模板定义一个对象时,不能省略实参 ( B)类

13、模板只能有虚拟类型参数 ( C)类模板本身在编译中不会生成任何代码 ( D)类模板的成员函数都是模板函数 34 有以下程序 #include iostream using namespace std; static int days =31,28,31,30,31,30,3l, 31, 30,31, 30,31; class date private: int month, day, year; public: date(int m, int d, int y) month=m; day=d; year=y; date() void disp() cout year “-“month “-“

14、day end1; date operator+(int day) date dt=*this; day+=dt.day; while(day daysdt.month 1) day-=daysdt.month-1; if(+dt.month=13) dt.month=1; dt.year+; dt.day=day; retrn dt; ; int main() date d1(6, 20, 2004), d2; d2=d1+20; d2.disp(); return 0; 执行后的输出结果是 ( A) 2004-7-10 ( B) 2004-6-20 ( C) 2004-7-20 ( D)程

15、序编译时出错 35 若有以下程序: #include iOStream using namespaces std; class A public: A() A(int i) x1=i; void dispa() cout“X1=“ x1 “,“: private; int x1; ; class B: public A public: B() B(int i): A(i+10) x2=i; void dispb() dispa(); cout “x2=“ x2 end1; private: int x2; ; int main() B b(2); b dispb() return 0; 程序运

16、行后的输出结果是 ( )。 ( A) x1=10,x2=2 ( B) x1=12,x2=10 ( C) x1=12,x2=2 ( D) x1=2,x2=2 36 在数据结构中,从逻辑上可以把数据结构分成线性结构和【 】。 37 在双链表中,每个节点有两个指针域,一个指向前驱节点,另一个指向【 】。 38 【 】是当前软件开发环境中富有特色的研究工作和发展方向。 39 数据库是指按照一定的规则存储在计算机中的【 】的集合,它能被各种用户共享。 40 模块的独立性一般用两个准则来度量,即模块间 的【 】和模块的内聚性。 41 设在主函数中有以下定义和函数调用语句,且 fun()函数为 void类型

17、,请写出fun()函数的首部【 】。 int main ( ) double s10 22; int n; fun (s); return 0; 42 给出以下程序的执行结果【 】。 #include iostream using namespace std; int n=1; void Fun(); int main () n+; Fun ( ); if (n 0) int n=5; cout “Block: n=“ n “, “; cout “Main: n=“ end1; return 0; void Fun ( ) int n=10; cout “Fun: n=“ n “,“; 43

18、C+的类继承中,默认的继承方式是【 】。 44 表达式 x=operator-(y, z)还可以表示为【 】。 45 如果一个函数模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都必须重复使用关键词【 】。 46 下面程序的运行结果为【 】。 #include iostream.h void main() unsigned char value=127; int total=100; value+; total+=value; cout total end1; A) 227 B) 100 C) 127 D) 27 47 有如下程序: #include iostream usin

19、g namespace std; class shapes protected: int x,y; public: void setvalue(int d, int w=0) x=d; y=w; virtual void disp()=0; ; class square : public shapes public: void disp() cout x*y end1; ; int main() shapes *ptr; square s1; ptr= ptr- setvalue(10,5); ptr- disp(); return 0; 执行上面的程序将输出【 】。 48 有以下程序: #i

20、nclude iostream #include fstream using namespace std; int main() fstream file; file.open(“abc.txt“, ios_base:in); if (! file ) cout “Can not open abc.txt“ end1; abort(); char ch; int i = 0; while ( ! file.eof() ) file.get(ch); i+; cout “Characters : “ i end1; file.close(); return 0; 程序实现的功能是【 】。 49

21、fun()函数的功能是:首先对 a所指的 N行 N列的矩阵,找出各行中的最大的数,再求这 N个最大值中的最小的那个数作为函数返回值。请填空完成此程序。 #define N 100 int fun(int (*A) N) int row, col, max, min; for(row=0; row for(max=arow0, col=1; col if(【 】 ) max=arowcol; if(row=0) min=max; else if(【 】 ) min=max; return min; 50 有以下程序: #include iostream using namespace std;

22、class CFactorial private: int value; int fact; public: CFactorial ( int val ); void CalculateFactorial(); void Display(); ; CFactorial : CFactorial( int val ) value = val; fact = 1; void CFactorial : CalculateFactorial() int i = value; while ( i 1 ) fact *= i-; void CFactorial : Display() cout value

23、 “!=“ fact end1; int main() CFactorial A( 5 ); A CalculateFactorial(); A Display(); return 0; 程序中,类 CPactorial的功能是【 】,该程序运行的结果是【 】。 国家二级( C+)笔试模拟试卷 78答案与解析 1 【正确答案】 D 【 试题解析】 算法的空间复杂度指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。正确答案为 D。 2 【正确答案】 C 【试题解析】 队列是指允许在一端进行插入、而在另一

24、端进行删除的线性表,选项 A和选项 B 错误。允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。所以,队列又称为 “先进先出 ”或 “后进后出 ”的线性表,它体现了 “先来先服务 ”的原则,选项 C正确,选项 D错误。 3 【正确答案】 C 【试题解析】 二叉树的一个性质是,在二叉树的第 k 层上,最多有 2k-1, (k 1)个结点。对于满二叉树,每一层上的结点数都达到最大值,即在满二叉树的第 k层上有 2k-1个结点。所以,在深度为 5的满二叉树中,所有叶子结点在第 5层上,即其结点数为 2k-1=25-1=16

25、。 4 【正确答案】 C 【试题解析】 选项 A错误,在模块化设计中,要求将一个大程序按人们能理解的大小规模进行分解,使每个模块都能易于理解,各模块的功能尽量单一,各模块之间 的联系尽量的少。 选项 B 错误,自顶向下、逐步细化的设计过程,主要包括两个方面:将复杂问题的解法分解和细化成由若干模块组成的层次结构;将一个模块的功能逐步分解细化为一系列的处理步骤,直到某种程序设计语言的语句或某种机器指令。即在自顶向下、逐步细化的设计过程中,是按照先全局后局部、先整体后细节、先抽象后具体的方法设计程序。 选项 D错误,由于在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则,所以,在程序设计过

26、程中,结构化程序设计方法与模块化程序设计方法是要同时采用的。 选项 C为正确答案。 5 【 正确答案】 A 【试题解析】 程序执行的实际计算工作量与不仅与程序的控制结构有一定的关系,还与处理的数据量有关,但还与数据的存储结构密切相关。所以,选项 A正确,选项 B和 C错误。所以,本题的正确答案为 A。 6 【正确答案】 D 【试题解析】 在需求分析阶段中,根据可行性研究阶段所提交的文档,特别是从数据流图出发,对目标系统提出清晰、准确和具体的要求,即要明确系统必须做什么的问题。本题的正确答案为 D。 7 【正确答案】 B 【试题解析】 需求分析阶段的工作,可以概括为以下 4个方面:需求 获取、需

27、求分析、编写需求规格说明书和需求评审。本题的正确答案为 B。 8 【正确答案】 D 【试题解析】 在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。即关系模型是用表格数据来表示实体本身及其相互之间的联系。本题的正确答案是 D。 9 【正确答案】 B 【试题解析】 在面向对象的程序设计中,一个对象是一个可以独立存在的实体。各个对象之间相对独立,相互依赖性小。所以,选项 B 错误,应为所选。 10 【正确答案】 B 【试题解析】 把概念模型转换成关系数据模型就是把 E-R图转换成一组关系模式,每一个实体型转换为一个关系模式,每个联系分别转换为关系模式。本题的正确答案是 B。 11 【正

28、确答案】 D 【试题解析】 本题考查数组的定义、初始化及其引用,以及对字符 ASCII码值的熟悉程度。解本题的关键在于熟悉字符的 ASCII码值。字符在进行数学运算时取其 ASCII码值,其中 b的 ASCII码值为 98, d的 ASCII码值为 100,字符 2的 ASCII码值为 50。根据以上知识,可知 D) 选项中表达式 c2-0的值为 50。 12 【正确答案】 B 【试题解析】 C+是一种面向对象的程序设计语言,它充分支持面向对象思想中的 3个主要特征:封装性、继承性、多态性。 B 选项所描述是结构化程序设计的思想。 13 【正确答案】 D 【试题解析】 本题考核虚函数的概念。虚

29、函数是非静态的成员函数,它不能是友元函数,但可以在另一个类中被声明为友元函数。所以 A) 选项不正确;虚函数必须是类的成员函数,所以 B) 选项是错误的:虚函数声明只能出现在类定义的函数原型声明中,而不能在成员函数的函数体实现的地方,所以 C) 选项是不正确的:一般要求基类中说明了虚函数后,派生类说明的虚 函数应该与基类中虚函数的参数个数相等,对应参数的类型相同。如果不相同,则将派生类虚函数的参数类型强制转换为基类中虚函数的参数类型。故 D) 选项的说法是正确的。 14 【正确答案】 A 【试题解析】 本题考核运算符的重载。 C+中, “:、 *、 .、 ?:”这 4个运算符不能重载。 15

30、【正确答案】 C 【试题解析】 本题考核模板函数的使用。在说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中对象的形参,然后生成一个重载函数。由此可知模板函数 的真正代码是在函数调用时产生的。 16 【正确答案】 A 【试题解析】 本题考核格式控制数据的输入输出。函数 setfill (char C) 用于设置填充字符,在输出数据时,如果数据宽度小于设置的宽度,则空闲位置要用填充字符填满。函数 setw(int n)用于设置输入输出宽度,宽度设置的效果只对一次输入或输出有效,在完成一次数据的输出或输入后,宽度设置自动恢复为 0,例如题中语句以宽

31、度 10输出数据 “123”后,字符串 “OK的输出宽度就自动恢复为 0了。而且输出的初始状态为右对齐,所以最终的输出为 *123OK。 17 【正确答案】 A 【试题解析】 本题考核 C语言中 while循环和 do-while循环之间的区别。do-while语句与 while语句不同的是, do-while循环中的语句至少会执行一次,而 while语句中当条件在第一次循环就不满足时,语句一次也不会执行 18 【正确答案】 B 【试题解析】 本题考核指针的运算。 C语言中,指向同一字符串的指针之间可以,也只能进行减运算,减运算后返回的是一整型数,表示指针之间的地址偏移量。 19 【正确答 案

32、】 B 【试题解析】 本题考核指针、数组和 new 运算符。运算符 new用于动态申请存储空间,它的操作数为某种数据类型且可以带有初值表达式或元素个数,若带初值,则其表达式为:指针 =new类型 (初值 ),例如 C选项所示,若带有元素个数,则其语法格式为:指针 =new类型 元素个数 ,例如 A选项所示。数组定义中数组大小必须为常量,而 B) 选项中的 n为一变量所以是错误的。 20 【正确答案】 D 【试题解析】 本题考核函数调用 (参数的传递 )。本题常见的错误解答是:把x=1, y=2代 入到函数 try中,逐步计算出 r=8。最后得到 r的输出值是 8。以下是正确解答,根据程序逐步分

33、析:程序中定义了一个名为 try的 void型函数,即函数 try没有任何返回值。而 try函数在 main 函数中是以一条独立语句的方式被调用的,且 main 函数最后输出变量 r的值。但在 main 函数中,并没有对变量 r赋值。在 C语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以虽然在函数 try中, r的值为 8,但它并不能传递给实参,当然最终的输出肯定是不确定的 随机数了。 21 【正确答案】 B 【试题解析】 本题考核静态数据成员和静态成员函数的应用。程序中定义一个类sample,它包括一个静态数据成员 n

34、和一个静态成员函数 add,并在类的构造函数中给类私有静态数据成员 n赋值。在主函数 main 中,定义对象 a(2)时,通过构造函数使静态数据成员 n 的值变为 2,在定义对象 b(5)时,通过构造函数使静态数据成员 n=5(覆盖了前面的 n=2),再执行 sample:add()使全局变量 s=5。 22 【正确答案】 B 【试题解析】 本题考核派生类的定义和成 员的访问权限。第一处错误:在派生类的构造函数 Derive(int x)中没有调用基类的构造函数对基类对象初始化:第二处错误:数据 data是基类 Base的私有成员,派生类 Derive不能访问,所以在函数setvalue中对

35、data 的赋值是错误的。 23 【正确答案】 D 【试题解析】 本题考核运算符的重载。 C+流中重载了和,其中用于有格式输入, 用于有格式输出,且都重载为非成员函数。 24 【正确答案】 D 【试题解析】 本题考核函数模板的使用。 C+中对函数模板的调用有 时候只使用了函数实参,而没有使用模板实参,模板实参都被省略了,但模板实参的省略并不是必然的,而是有条件。模板实参不能省略的情况有:从模板函数实参表获得的信息有矛盾:需要获得特定类型的返回值,而不管参数的类型如何:虚拟类型参数没有出现在模板函数的形参中;函数模板含有常规形参。题中定义的函数模板中虚拟类型参数 T2没有出现在模板函数的形参列表

36、中,所以在调用时不能省略, D选项的调用省略了 T3,这是允许的。 25 【正确答案】 D 【试题解析】 本题考核文件的 I/0操作。流可以分为 3类:输入流、输出流以及输 入 /输出流,相应地必须将流说明为 ifstream、 ofstream 以及 fstream类的对象。如,说明一个输入流对象: ifstream ifile;。说明了流对象后,可使用函数 open()打开文件。文件的打开即是在流与文件之间建立一个连接。 open()的函数原型为:void open(const char*filename, int mode,int port=filebuf:openprot);其中,fi

37、lename 是文件名字,它可包含路径说明。 mode说明文件的打开模式。除了open()成员函数 外, ifstream、 ofstream以及 fstream三类流的构造函数也可以打开文件,其参数同 open()函数。例如: ifstream ifile(“c:vcabc.txt“);。打开的文件使用完毕后,必须使用 close()函数将其关闭。 close()函数也是流类的成员函数,它没有参数与返回值,其作用是将缓冲区的内容刷新并撤销流与文件之间的连接。当流对象的生存周期后,相应的析构函数也会将文件关闭。由此可知, A) 、B) 和 C) 选项的表达式都是正确的。对于 D) 选项,由于

38、open函数并不是 cout对象中的成员函数,所以对 open 的调用是非法的。 26 【正确答案】 C 【试题解析】 本题考核拷贝构造函数的概念。声明拷贝构造函数的格式为:类名 :拷贝构造函数 (const类名 &引用名 );,其中 const是修饰符可以省略。 27 【正确答案】 C 【试题解析】 本题考核构造函数。在 C中,构造函数不能被继承,因此,派生类的构造函数必须通过调用基类的构造函数来初始化基类子对象。所以,在定义派生类的构造函数时,除了对自己的数据成员进行初始化外,还必须负责调用基类构造函 数使基类的数据成员得以初始化。如果派生类中还有子对象,还应包含对于对象初始化的构造函数。

39、但是它不负责基类中子对象的初始化。 28 【正确答案】 D 【试题解析】 本题考核 this 指针的使用。类成员函数 add 中通过 this 指针实现私有数据成员 n的赋值。 29 【正确答案】 C 【试题解析】 本题考核派生类的定义和访问权限。本题涉及多层次的继承关系。类 B 是类 A的派生类,类 C又是类 B的派生类。类 C中的构造函数调用了类 B的构造函数来初始化类 B 的私有数据成员,而类 B的构造函数又调用了类 A的构造函数 来初始化类 A的私有数据成员。由此可知,程序最后的输出为 3,4。 30 【正确答案】 D 【试题解析】 本题考核继承与派生。基类与,派生类的关系为:基类是对

40、派生类的抽象,派生类是对基类的具体化。基类抽取了它的派生类的公共特征,而派生类通过增加信息将抽象的基类变为某种有用的类型,派生类是基类定义的延续。派生类是基类的组合。公有派生类的对象可以作为基类的对象处理。由此可知A) 、 B) 和 C) 选项都是正确的。而在继承中,采用不同的继承方式,将限制派生类对基类成员的访问。所以 D) 选项是错误的。 31 【正确答案】 A 【试题解析】 本题考核虚基类的应用。本题中,虽然 Derived1 和 Derived2都是由共同的基类 x派生而来的,但山于引入了虚基类,使得它们分别对应基类的不同副本。这时数据成员 x只存在一份拷贝,不论在类 Derived1

41、 修改,还是在类Derived2中修改,都是直接对这惟一拷贝进行操作。本题程序执行语句 “Derived obj”时,就会先调用虚基类 Base的构造函数,使得 x=0,然后执行类 Derived1的构造函数使得 x=10,再执行类 Derived2 的构造函数,使得 x=20。最后 输出 x的值为 20。 32 【正确答案】 C 【试题解析】 本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符 +,且 c1、 c2 都是该类的对象,则 c1 operator+(c2)与 c1+c2含义相同。如果十作为该类的非成员函数重载,则 operator+(c1,c2)与 c1+c2含义

42、相同。同理,运算符 *作为成员函数重载,则 y*(x+)与 y.operator*(x+)含义相同,后缀+作为友元函数重载,那么 x+与 operator+(x,O)含义相同,所以选项 C是正确的。 33 【正确答案】 B 【试题解析】 本题考核类模板的概念。类模板就是一系列相关类的模型或样板,这些类的成员组成相同,成员函数的源代码形式相同,所不同的只是所针对的类型 (成员的类型以及成员函数的参数和返回值的类型 )。 C+中可以委类模板的参数设置默认值,所以 B) 选项是不正确的,其他选项的表述都是正确的。 34 【正确答案】 A 【试题解析】 本题考核运算符的重载。本题通过将 “+”运算符重

43、载为类 date的成员函数实现简单的对象加法, 35 【正确答案】 C 【试题解析】 本题考核派生 类的构造函数。在 C+中,构造函数不能被继承,因此,派生类的构造函数必须通过调用基类的构造函数来初始化基类子对象。所以,在定义派生类的构造函数时,除了对自己的数据成员进行初始化外,还必须负责调用基类构造函数使基类的数据成员得以初始化。如果派生类中还有子对象,还应包含对于对象初始化的构造函数。 36 【正确答案】 非线性结构 【试题解析】 逻辑结构即数据元素之间的逻辑关系,是从逻辑关系上描述数据,与数据的存储无关。因此根据数据元素与数据元素之间的关系,逻辑结构被分为两大类:线性结构和非线性结构。而

44、集 合结构与非集合结构、树形结构和图状结构指的都是特定的数据结构类型。 37 【正确答案】 后续节点 (后继节点 ) 【试题解析】 链式存储结构的节点中,只有一个指示直接后继的指针域。因此从某个点出发,只能顺指针往后寻查其他节点。若要寻查节点的直接前驱,则需要从表头指针出发,影响查找效率。为了克服单链表这种单向性的缺点,可利用双向链表。双向链表的节点中,有两个指针域,其一指向直接后继,另一个指向直接前驱。 38 【正确答案】 计算机辅助软件工程 (CASE) 【试题解析】 CASE 将各种软件工具、 开发机器和一个存放开发过程信息的中心数据库组合起来,形成软件工程环境。 39 【正确答案】 数

45、据 【试题解析】 数据库是由一个互相关联的数据的集合和一组用以访问这些数据的程序组成,这些数据按一定的数据模型组织、描述和储存 40 【正确答案】 耦合性 【试题解析】 模块的独立性是评价设计好坏的重要标准,衡量软件的模块的独立性使用耦合性和内聚性两个定型的度量标准。内聚性是一个模块内部各个元素之间彼此结合的紧密程度的度量。耦合性是模块间互相连接的紧密程度的度量。 41 【正确答案】 void fun(b22) 【试题解析】 此题考核的知识点是函数的定义形式与数组名作为函数的参数。函数头的定义形式是 “存储类型说明符数据类型说明符函数名 (形参列表 )”,此题没有涉及到函数的存储类别。如果函数

46、的参数是数组,其第 1维的长度可以省略。因此本题的函数首部可以写成: void fun(b22)。 42 【正确答案】 Fun: n=10,Block: n=5,Main: n=2 【试题解析】 变量的作用域是程序中变量有效的区域,它是变量的一个重要特征。在题中,变量 n有 3种身份,其一是作 为全局变量的 n,其二是作为 if语句块内局部变量的 n,其三是函数内部局部变量的 n。程序最后要求输出各个作用域内n 的值。 43 【正确答案】 公有 【试题解析】 C+中类的默认继承方式为公有。 44 【正确答案】 x=y-z; 【试题解析】 本题考核运算符函数的两种调用方式。 45 【正确答案】 class 【试题解析】 本题考核模板的定义。函数模板的一般说明形式如下: template类型形参表 返回类型函数名卜形参表 ) 函数体 其中,类型形参表可以包含基本数据类型,也可以包含类类型。类型形参需要加前缀 class。如果类型形参多于一个,则每个类型形参都要使用

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

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

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