1、二级 C+-9-1 及答案解析(总分:83.50,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:58.50)1.有如下类声明:class XAint x;public:XA(int n)x=n;class XB:public XAint y;public:XB(int a,int b);在构造函数 XB 的下列定义中,正确的是U /U。 A. XB:XB(int a,int b):x(a),y(b) B. XB:XB(int a,int b):XA(a),y(b) C. XB:XB(int a,int b):x(a),XB(b) D. XB:XB(int a,int b):XA(
2、a),XB(b)(分数:2.00)A.B.C.D.2.静态数据成员是为U /U的数据。 A. 私有 B. 保护 C. 所有对象共享 D. 类成员(分数:2.00)A.B.C.D.3.下列选项中不属于软件生命周期开发阶段任务的是U /U。 A.软件测试 B.概要设计 C.软件维护 D.详细设计(分数:2.00)A.B.C.D.4.能正确表示逻辑关系:“a10 或 a0”的 C语言表达式是 A. a10 or a0 B. a0 | a10 C. a10 void try(int,int,int,int);int main ( )int x,y,z,r;x=1;y=2;try(x,y,z,r);co
3、utrend1;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. 不确定(分数:1.00)A.B.C.D.11.在一个长度为 n 的线性表中删除一个元素,最坏情况下需要移动的数据元素数目为 U /U。 A. 1 B. n-1 C. n+1 D. n2(分数:1.00)A.B.C.D.12.下列叙述中错误的是U /U。 A. 一个函数中可以有多条 return 语句 B. 调用函数必须在一条独立的语句中完成 C. 函数中可通过 return 语句传递函
4、数值 D.主函数名 main 也可以带有形参(分数:2.00)A.B.C.D.13.假设 a 为一个整型数组名,则元素 a4的字节地址为_ 。 A. a+4 B. a+8 C. a+16 D. a+32(分数:2.00)A.B.C.D.14.下列叙述中正确的是 A. 数据库系统是一个独立的系统,不需要操作系统的支持 B. 数据库设计是指设计数据库管理系统 C. 数据库技术的根本目标是要解决数据共享的问题 D. 数据库系统中,数据的物理结构必须与逻辑结构一致(分数:1.00)A.B.C.D.15.下面关于动态联编的描述中,错误的是U /U。 A. 动态联编是以虚函数为基础的。 B. 动态联编是在
5、运行时确定所调用的函数代码 C. 动态联编调用函数操作是指向对象的指针或者对象的引用。 D. 动态联编是在编译时确定操作函数(分数:2.00)A.B.C.D.16.下列说法中错误的是 A.公有继承时基类中的 public 成员在派生类中仍是 public 成员 B.私有继承时基类中的 protecte 成员在派生类中仍是 protected 成员 C.私有继承时基类中的 public 成员在派生类中是 private 成员 D.保护继承时基类中的 public 成员在派生类中是 protected 成员 (分数:1.00)A.B.C.D.17.判断字符型变量 ch 是否为大写英文字母,应使用表
6、达式U /U。 A.ch=Aint main ()char s=“/n123/“;coutstrlen (s) “, “sizeof (s) end1;return 0; A. 赋初值的字符串有错 B. 6,7 C. 5,6 D. 6,6(分数:1.00)A.B.C.D.21.对关系 S 和 R 进行集合运算,结果中既包含 S 中的所有元组也包含 R 中的所有元组,这样的集合运算称为U /U。 A.并运算 B.交运算 C.差运算 D.积运算(分数:2.00)A.B.C.D.22.下列关于重载函数的调用时选择的依据中,错误的是U /U。 A. 根据函数参数个数不同 B. 根据函数参数类型不同 C
7、. 根据函数名字不同 D. 根据函数的返回值不同(分数:2.00)A.B.C.D.23.下列关于 break 语句的叙述不正确的是U /U。 A. break 语句可用在循环体中,它将使执行流程跳出本层循环体 B. break 语句可用在 switch 语句中,它将使执行流程跳出当前 switch 语句 C. break 语句可用在 if 语句中,它将使执行流程跳出当前 if 语句 D. break 语句在一层循环体中可以出现多次(分数:2.00)A.B.C.D.24.语句 coutsetprecision(2)1024.4567;的输出结果为 A.1024.4567 B.1024 C.102
8、4.45 D.le+003(分数:1.00)A.B.C.D.25.有如下语句序列:char str10;cinstr;当从键盘输入“I love this game“时,str 中的字符串是 A. “I love this game“ B. “I love this“ C. “I love“ D. “I“(分数:2.00)A.B.C.D.26.若有如下定义和语句:int s45,(*p)5;p=S;则指针对 s 数组中第三个元素的正确引用形式是U /U。 A. p03 B. p12 C. p02 D. p13(分数:2.00)A.B.C.D.27.带有虚基类的多层派生类构造函数的成员初始化列表
9、中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化_。 A.与虚基类下面的派生类个数有关 B.多次 C.两次 D.一次(分数:1.00)A.B.C.D.28.派生类的成员函数不能访问基类的U /U。 A.公有成员和保护成员 B.公有成员 C.私有成员 D.保护成员(分数:2.00)A.B.C.D.29.有如下程序:# includeiostreamusmg namespace std;class Apublic:A(int i): r1(i)void print()(coutEr1-;void print()constcoutCr1*r1一;private:int r1;int main
10、()A a1(2); const A a2(4);a1.print(); a2.print();return 0;运行时的输出结果是_。 A.运行时出错 B.E2-Cl6- C.C4-C16- D.E2-E4-(分数:2.50)A.B.C.D.30.数据库系统的核心是 A.数据库 B.数据库管理系统 C.模拟模型 D.软件工程 (分数:1.00)A.B.C.D.31.语句 cout setprecison (3)3.1415926end1;的输出为U /U。 A.3.14 B.3.1 C.3.142 D.3.141(分数:2.00)A.B.C.D.32.模板函数的真正代码是在U /U时候产生。
11、 A. 源程序中声明函数时 B. 源程序中定义函数时 C. 源程序中调用函数时 D. 运行执行函数时(分数:2.00)A.B.C.D.33.关于二义性的描述错误的是U /U。 A. 一个子类的两个父类中都有某个同名成员,在子类中对该成员访问可能出现二义性 B. 解决二义性可以用对成员名的限定法 C. 父类和子类中同时出现同名函数,也可能存在二义性 D. 一个子类是从两个父类派生出来的,而这两个父类只有一个共同的父类,对该父类成员进行访问时,可能出现二义性(分数:1.00)A.B.C.D.34.关于在调用模板函数时实参的使用,下列表述中正确的是 A. 对于虚拟类型参数所对应的模板实参,如果能从模
12、板函数的实参中获得相同的信息,则都可以省略 B. 对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略 C. 对于虚拟类型参数所对应的模板实参,若能够省略则必须省略 D. 对于常规参数所对应的模板实参,任何情况下都不能省略(分数:2.00)A.B.C.D.35.下列程序的执行结果是_。#includeiostream.h#includestdlib.hclass TestClasspublic:int x,y;TestClass () x=y=0;TestClass (int a,int b)x=a;y=b;void disp()cout“x=“x“,y=“ye
13、nd1;void main()TestClass s1(2,3);s1.disp(); A. x=2,y=2 B. x=2,y=3 C. x=3,y=2 D. x=3,y=3(分数:2.00)A.B.C.D.二、B填空题/B(总题数:15,分数:25.00)36. 1 是从二维表列的方向进行的运算。(分数:1.00)填空项 1:_37.类中数据成员和成员函数的默认访问级别为 1。(分数:2.00)填空项 1:_38.以下程序运行后的输出结果是U U /U /U。 #include iostream #include string using namespace std; class Y; cl
14、ass X iht x; char *strx; public: X(int a,char *str) x=a; strx=new charstrlen(str)+1; strcpy(strx,str); void show(Y ; class Y private: iht y; char *stry; public: Y(int b,char *str) y=b; stry=new charstrlen(str)+ 1 ; strcpy(stry, str); friend void X:show(Y ; void X:show(Y coutob.stryendl; int main() X
15、 a(10,“stringX“); Y b(20,“stringY“); a.show(b); return 0; (分数:1.00)填空项 1:_39.数据的逻辑结构在计算机存储器内的表示,称为数据的U U /U /U。(分数:2.00)填空项 1:_40.软件工程研究的内容主要包括: 【4】 技术和软件工程管理。(分数:1.00)填空项 1:_41.假设用一长度为 50 的数组(数组元素的下标从 0 到 49)作为栈的存储空间,栈底指针 bottom 指向栈底元素,栈顶指针 top 指向栈顶元素,如果 bottom=49,top=30(数组下标),则栈中具有 1 个元素。(分数:2.00)
16、填空项 1:_42.已知有函数 f 的定义如下: int f() static int s=0; s+=2; return s; 则在某程序中第二次执行函数调用语句 f();时,函数 f 的返回值是_。(分数:2.00)填空项 1:_43.已知下列程序的输出结果是 42,请将画线处缺失的部分补充完整。 #include iostream using namespace std; class Foo int value; public: Foo 0=:value(0) void setValue(int value) U U /U /U= value; /给 Foo 的数据成员 value 赋值
17、 void print() cout value; ; int main() Foo f; f.setValue(42); f.print(); return(); (分数:2.00)填空项 1:_44.下列程序运行后的输出结果是 _。 #includeiostream.h void main() int s=0,k for(k=7;k=0;k-) switch(k) case 1: case 4: case 7:s+ +;break: case 2: case 3: case 6:break; case 0: case 5:s+=2;break; cout“s=“sendl; (分数:1.0
18、0)填空项 1:_45.数据的逻辑结构在计算机存储空间中的存放形式称为数据的 1。(分数:2.00)填空项 1:_46.下面程序的执行结果是_。 #includeiostream #includeiomanip using namespace std; void main() coutsetfill(x)setw(10)“Hello“endl; (分数:2.00)填空项 1:_47.虚函数必须是类的 1。(分数:2.00)填空项 1:_48.一个类中有 1 个析构函数。(分数:1.00)填空项 1:_49.软件生命周期分为软件定义期、软件开发期和软件维护期,详细设计属于 1 中的一个阶段。(分
19、数:2.00)填空项 1:_50.在算法正确的前提下,评价一个算法的两个标准是U /U。(分数:2.00)填空项 1:_二级 C+-9-1 答案解析(总分:83.50,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:58.50)1.有如下类声明:class XAint x;public:XA(int n)x=n;class XB:public XAint y;public:XB(int a,int b);在构造函数 XB 的下列定义中,正确的是U /U。 A. XB:XB(int a,int b):x(a),y(b) B. XB:XB(int a,int b):XA(a),y(b)
20、 C. XB:XB(int a,int b):x(a),XB(b) D. XB:XB(int a,int b):XA(a),XB(b)(分数:2.00)A.B. C.D.解析:解析 此题考查的是派生类中构造函数的定义。派生类的构造首先要调用基类的构造函数,对基类成员初始化;然后对派生类中的新增成员初始化。格式:派生类名(构造函数形参表)基类构造函数(形参表)。2.静态数据成员是为U /U的数据。 A. 私有 B. 保护 C. 所有对象共享 D. 类成员(分数:2.00)A.B.C. D.解析:解析 静态数据成员是一种特殊的数据成员。静态数据成员不属于某一个对象,在为对象所分配的空间中不包括静态
21、数据成员所占的空间。所有对象共享这些静态数据成员,都可以引用它。3.下列选项中不属于软件生命周期开发阶段任务的是U /U。 A.软件测试 B.概要设计 C.软件维护 D.详细设计(分数:2.00)A.B.C. D.解析:4.能正确表示逻辑关系:“a10 或 a0”的 C语言表达式是 A. a10 or a0 B. a0 | a10 C. a10 void try(int,int,int,int);int main ( )int x,y,z,r;x=1;y=2;try(x,y,z,r);coutrend1;return 0;void try(int x,int y, int z,int r)z
22、= x+y;x = X*X;y = y*y;r = z+x+y; A. 18 B. 9 C. 10 D. 不确定(分数:1.00)A.B.C.D. 解析:解析 本题常见的错误解答是:把 x=1,y=2 代入到函数 try 中,逐步计算出 r=8。最后得到 r 的输出值是 8。下面是正确解答。根据程序逐步分析: 程序中定义了一个名为 try 的 void 型函数,即函数 try()没有任何返回值。 而 try()函数在主函数中是以一条独立语句的方式被调用的,且主函数最后输出变量 r 的值。 但在主函数中,并没有对变量 r 赋值。 在 C+语言中,数据只能从实参单向传递给形参,称为按值传递。也就是
23、说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以,虽然在函数 try()中,r 的值为 8,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。11.在一个长度为 n 的线性表中删除一个元素,最坏情况下需要移动的数据元素数目为 U /U。 A. 1 B. n-1 C. n+1 D. n2(分数:1.00)A.B. C.D.解析:解析 在一般情况下,要删除第 i 个元素时,首先是从第 i+1 个元素开始,直到第 n 个元素之间共 n-i 个元素依次向前移动一个位置,删除结束后,线性表的长度减 1。最坏情况指的是删除线性表的第一个元素,则需要移动表中第 1 个元素以外所有的
24、元素,答案为 B。12.下列叙述中错误的是U /U。 A. 一个函数中可以有多条 return 语句 B. 调用函数必须在一条独立的语句中完成 C. 函数中可通过 return 语句传递函数值 D.主函数名 main 也可以带有形参(分数:2.00)A.B. C.D.解析:解析 当函数有返回值时,调用函数可以作为一个表达式的子表达式而不作为一条独立的语句存在。13.假设 a 为一个整型数组名,则元素 a4的字节地址为_ 。 A. a+4 B. a+8 C. a+16 D. a+32(分数:2.00)A.B.C. D.解析:解析 a4的字节地址为 a+4*4。14.下列叙述中正确的是 A. 数据
25、库系统是一个独立的系统,不需要操作系统的支持 B. 数据库设计是指设计数据库管理系统 C. 数据库技术的根本目标是要解决数据共享的问题 D. 数据库系统中,数据的物理结构必须与逻辑结构一致(分数:1.00)A.B.C. D.解析:解析 A 选项,数据库系统需要操作系统的支持,必不可少,故其叙述不正确。B 选项错误,数据库设计是指设计一个能满足用户要求,性能良好的数据库。D 选项也不对,数据库应该具有物理独立性和逻辑独立性,改变其一而不影响另一个。正确答案为 C。15.下面关于动态联编的描述中,错误的是U /U。 A. 动态联编是以虚函数为基础的。 B. 动态联编是在运行时确定所调用的函数代码
26、C. 动态联编调用函数操作是指向对象的指针或者对象的引用。 D. 动态联编是在编译时确定操作函数(分数:2.00)A.B.C.D. 解析:解析 动态联编一直到程序运行时才能确定调用哪个函数。没有虚函数不能够实现动态联编,调用虚函数操作的是指向对象的指针或者对象的引用。16.下列说法中错误的是 A.公有继承时基类中的 public 成员在派生类中仍是 public 成员 B.私有继承时基类中的 protecte 成员在派生类中仍是 protected 成员 C.私有继承时基类中的 public 成员在派生类中是 private 成员 D.保护继承时基类中的 public 成员在派生类中是 pro
27、tected 成员 (分数:1.00)A.B. C.D.解析:17.判断字符型变量 ch 是否为大写英文字母,应使用表达式U /U。 A.ch=Aint main ()char s=“/n123/“;coutstrlen (s) “, “sizeof (s) end1;return 0; A. 赋初值的字符串有错 B. 6,7 C. 5,6 D. 6,6(分数:1.00)A.B.C. D.解析:解析 本题考核字符串的长度和字符型数组所占的字节数。本题在定义字符数组时没有定义数组长度,但赋给数组初值,初值的个数即为数组的长度。故数组长度为 6(包括/0)。字符串的长度为有效字符的个数,为 5。所
28、以程序最后输出 5,6。21.对关系 S 和 R 进行集合运算,结果中既包含 S 中的所有元组也包含 R 中的所有元组,这样的集合运算称为U /U。 A.并运算 B.交运算 C.差运算 D.积运算(分数:2.00)A. B.C.D.解析:解析 关系的并运算是指由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。22.下列关于重载函数的调用时选择的依据中,错误的是U /U。 A. 根据函数参数个数不同 B. 根据函数参数类型不同 C. 根据函数名字不同 D. 根据函数的返回值不同(分数:2.00)A.B.C. D.解析:解析 函数的重载要求函数名相同。23.下列关于 bre
29、ak 语句的叙述不正确的是U /U。 A. break 语句可用在循环体中,它将使执行流程跳出本层循环体 B. break 语句可用在 switch 语句中,它将使执行流程跳出当前 switch 语句 C. break 语句可用在 if 语句中,它将使执行流程跳出当前 if 语句 D. break 语句在一层循环体中可以出现多次(分数:2.00)A.B.C. D.解析:24.语句 coutsetprecision(2)1024.4567;的输出结果为 A.1024.4567 B.1024 C.1024.45 D.le+003(分数:1.00)A.B.C.D. 解析:解析 setprecisio
30、n()函数的考查。 解题要点 setprecision()函数为设置小数位数。 考点链接 C+中 I/O 流各种函数的使用例如: setw(),setfill()。25.有如下语句序列:char str10;cinstr;当从键盘输入“I love this game“时,str 中的字符串是 A. “I love this game“ B. “I love this“ C. “I love“ D. “I“(分数:2.00)A.B.C.D. 解析:26.若有如下定义和语句:int s45,(*p)5;p=S;则指针对 s 数组中第三个元素的正确引用形式是U /U。 A. p03 B. p12
31、C. p02 D. p13(分数:2.00)A.B.C. D.解析:解析 “p=s;”语句将指针 p 指向数组 s。而数组为二维数组,下标标识由 0 开始,所以第二个元素为下标为 0 行的 2 列,即 p02。27.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化_。 A.与虚基类下面的派生类个数有关 B.多次 C.两次 D.一次(分数:1.00)A.B.C.D. 解析:解析 带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化一次。28.派生类的成员函数不能访问基类的U /U。 A.公有成
32、员和保护成员 B.公有成员 C.私有成员 D.保护成员(分数:2.00)A.B.C. D.解析:解析 基类的私有成员在派生类中都是不可见的,如果一个派生类要访问基类中声明的私有成员,可以将这个派生类声明为友元。29.有如下程序:# includeiostreamusmg namespace std;class Apublic:A(int i): r1(i)void print()(coutEr1-;void print()constcoutCr1*r1一;private:int r1;int main()A a1(2); const A a2(4);a1.print(); a2.print()
33、;return 0;运行时的输出结果是_。 A.运行时出错 B.E2-Cl6- C.C4-C16- D.E2-E4-(分数:2.50)A.B. C.D.解析:解析 const 关键字可以用于参与对重载函数的区分。重载的原则是常对象调用常成员函数,一般对象调用一般成员函数。30.数据库系统的核心是 A.数据库 B.数据库管理系统 C.模拟模型 D.软件工程 (分数:1.00)A.B. C.D.解析:解析:数据库管理系统(DatabaseManagementSystem,简称 DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,数据库管理
34、系统是数据库系统的核心。31.语句 cout setprecison (3)3.1415926end1;的输出为U /U。 A.3.14 B.3.1 C.3.142 D.3.141(分数:2.00)A. B.C.D.解析:32.模板函数的真正代码是在U /U时候产生。 A. 源程序中声明函数时 B. 源程序中定义函数时 C. 源程序中调用函数时 D. 运行执行函数时(分数:2.00)A.B.C. D.解析:解析 本题考核模板函数的使用。在说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中对象的形参,然后生成一个重载函数。由此可知模板函数的真正代
35、码是在函数调用时产生的。33.关于二义性的描述错误的是U /U。 A. 一个子类的两个父类中都有某个同名成员,在子类中对该成员访问可能出现二义性 B. 解决二义性可以用对成员名的限定法 C. 父类和子类中同时出现同名函数,也可能存在二义性 D. 一个子类是从两个父类派生出来的,而这两个父类只有一个共同的父类,对该父类成员进行访问时,可能出现二义性(分数:1.00)A.B.C. D.解析:34.关于在调用模板函数时实参的使用,下列表述中正确的是 A. 对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略 B. 对于虚拟类型参数所对应的模板实参,如果它们是参数表中
36、的最后的若干个参数,则都可以省略 C. 对于虚拟类型参数所对应的模板实参,若能够省略则必须省略 D. 对于常规参数所对应的模板实参,任何情况下都不能省略(分数:2.00)A.B.C.D. 解析:解析 模板函数的实参可以省略,但模板实参的省略并不是必然的,而是有条件的。在调用一个模板函数时,编译系统需要足够的信息来判别每个虚拟类型参数所对应的实际类型,可以从两个不同的渠道获得这样的信息:从模板实参表(用和括起来的参数表)或从模板函数实参表(用()括起来的参数表),模板实参的信息优先于函数实参的信息。如果从后者获得的信息已经能够判定其中部分或全部虚拟类型参数所对应的实际参数,而且它们又正好是参数表
37、中最后的若干个参数,则模板实参表中的那几个参数可以省略。如果模板实参表中的实参都被省略了,则连空表也可以不要。反之,对于某个模板实参,如果从模板函数的实参表中无法获得同样的信息,就不能省略;或者虽然能够获得同样的信息,但在它后面还有其他不能省略的实参,则其自身还是不能省略由此可知只有 D) 选项的说法是正确的。35.下列程序的执行结果是_。#includeiostream.h#includestdlib.hclass TestClasspublic:int x,y;TestClass () x=y=0;TestClass (int a,int b)x=a;y=b;void disp()cout
38、“x=“x“,y=“yend1;void main()TestClass s1(2,3);s1.disp(); A. x=2,y=2 B. x=2,y=3 C. x=3,y=2 D. x=3,y=3(分数:2.00)A.B. C.D.解析:解析 由主函数入手,定义了类 TestClass 的对象 s1(2,3),当类对象进入其作用域时调用构造函数,构造函数应读是调用具有参数的“TestClass(int a,int b)x=a;y=b;)”。然后引用成员函数disp(),则输出为“cout”x=“x”,y=“yend1;”。即 x=2,y=3。二、B填空题/B(总题数:15,分数:25.00)
39、36. 1 是从二维表列的方向进行的运算。(分数:1.00)填空项 1:_ (正确答案:关系运算)解析:解析 本题考查了关系运算的基本知识。 解题要点 在关系模型的数据语言中,一般除了运用常规的集合运算,(并、交、差、笛卡尔积等)外,还定义了一些专门的关系运算,如投影、选择、连接等。前者是将关系(即二维表)看成是元组的集合,这些运算主要是从二维表的行的方向来进行的;后者主要是从二维表的列的方向来进行的运算。两者统称为关系代数。37.类中数据成员和成员函数的默认访问级别为 1。(分数:2.00)填空项 1:_ (正确答案:私有或 private)解析:解析 此题考查的是类的成员的默认访问权限。在
40、未声明,即默认情况下,类中数据成员和成员函数的默认访问级别为私有。38.以下程序运行后的输出结果是U U /U /U。 #include iostream #include string using namespace std; class Y; class X iht x; char *strx; public: X(int a,char *str) x=a; strx=new charstrlen(str)+1; strcpy(strx,str); void show(Y ; class Y private: iht y; char *stry; public: Y(int b,char
41、*str) y=b; stry=new charstrlen(str)+ 1 ; strcpy(stry, str); friend void X:show(Y ; void X:show(Y coutob.stryendl; int main() X a(10,“stringX“); Y b(20,“stringY“); a.show(b); return 0; (分数:1.00)填空项 1:_ (正确答案:stringX stringY)解析:解析 本题考核友元函数的应用。该程序中,类 X 的成员函数 show ()在类 Y 中说明为类 Y 的友元函数,因此,在该友元成员 show ()
42、中可以访问类 Y 的私有成员 stry。成员函数 show()的功能就是输出类 X 的私有成员 strx 和 Y 对象 ob 的私有成员 stry。主函数 main()中定义了 X 类的一个对象 a 和 Y 类的一个对象 b,并且都进行了初始化。然后调用对象 a 的成员函数 show,输出对象 a 中私有成员 strx 中的内容和对象 b 中私有成员 stry 中的内容,即字符串 stringX 和 stringY。39.数据的逻辑结构在计算机存储器内的表示,称为数据的U U /U /U。(分数:2.00)填空项 1:_ (正确答案:存储结构)解析:解析 数据的逻辑结构在计算机存储器内的表示,
43、称为数据的存储结构。40.软件工程研究的内容主要包括: 【4】 技术和软件工程管理。(分数:1.00)填空项 1:_ (正确答案:【4】软件开发)解析:解析:基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:软件 开发技术和软件工程管理。软件开发技术包括:软件开发方法学、开发过程、开发工具和 软件丁程环境,其主体内容是软件开发方法学。软件工程管理包括:软件管理学、软件工 程经济学,以及软件心理学等内容。41.假设用一长度为 50 的数组(数组元素的下标从 0 到 49)作为栈的存储空间,栈底指针 bottom 指向栈底元素,栈顶指针 top 指向栈顶元素,如果 bottom=49,
44、top=30(数组下标),则栈中具有 1 个元素。(分数:2.00)填空项 1:_ (正确答案:19)解析:解析 当前栈中的所有元素的个数就是用栈底指针减去栈顶指针。42.已知有函数 f 的定义如下: int f() static int s=0; s+=2; return s; 则在某程序中第二次执行函数调用语句 f();时,函数 f 的返回值是_。(分数:2.00)填空项 1:_ (正确答案:4)解析:解析 本题考查内部静态变量。当函数执行完返回调用点时,该变量并不撤销,其值将继续保留,下次进入该函数时,其值仍然存在。43.已知下列程序的输出结果是 42,请将画线处缺失的部分补充完整。 #include iostream using name
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1