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

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

1、二级 C+-189 及答案解析(总分:96.50,做题时间:90 分钟)一、选择题(总题数:35,分数:66.00)1.能正确表示逻辑关系:“a10 或 a0”的 C语言表达式是(分数:2.00)A.a10 or a0B.a0 | a10C.a10 ”,则 strlen(s)的值是_。(分数:2.50)A.7B.8C.9D.104.下列关于二叉树的叙述中,正确的是_。(分数:2.50)A.叶子结点总是比度为 2 的结点少一个B.叶子结点总是比度为 2 的结点多一个C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数的两倍5.下列代码段声明了 3 个类: class

2、 Person; class Student:public Person; class Undergraduate:Student; 下列关于这些类之间关系的描述中,错误的是 _ 。(分数:2.00)A.类 Person 是类 Undergraduate 的基类B.类 Undergraduate 从类 Student 公有继承C.类 Student 是类 Person 的派生类D.类 Undergraduate 是类 Person 的派生类6.下列语句中,错误的是_。(分数:1.00)A.const int buffer=256;B.const int temp;C.const double

3、*point;D.const double *rt=new double(5.5);7.以下正确的描述为(分数:2.00)A.每个 C+语言程序必须在开头用预处理命令:B.预处理命令必须位于 C+源程序的首部C.在 C+语言中预处理命令都以“#”开头D.C+语言的预处理命令只能实现宏定义和条件编译的功能8.支持子程序调用的数据结构是_。(分数:1.00)A栈B树C.队列D.二叉树9.下列选项中正确的语句是_。(分数:1.00)A.char s;s=“BOOK!“;B.chsr *s;s=“BOOK!“;C.char s10;s=“BOOK!“;D.char *s;s=“BOOK!“;10.以下

4、有关析构函数的叙述不正确的是(分数:2.00)A.一个类只能定义一个析构函数B.析构函数和构造函数一样可以有形参C.析构函数不允许有返回值D.析构函数名前必须冠有符号“”11.有如下程序: #includeiostream #includestring using namespace std; class MyBag public: MyBag(string br, string cr):brand(br), color(cr)+count; static int GetCount()return count; private: string brand, color; static int

5、count; ; int MyBag:count=0; int main() MyBag one(“CityLife“, “Gray“); coutone.GetCount(); MyBag*ptr=new MyBag(“Coach“, “Black“); coutMyBag:GetCount(); return 0; 运行时的输出结果是_。(分数:1.00)A.12B.21C.22D.1112.下列语句分别是不同程序中的第一个输入输出语句。若去掉其中的“left”,输出效果将发生变化的是(分数:2.00)A.coutleftsetfill(“*“)357;B.coutleftsetw(5)3

6、57;C.coutleftsetw(5)“ABCDE“;D.coutleft“ABCDE“;13.设有说明语句: char a=“ab/123cd/0“,*p1=a; int b10=1,2,3,4,*p2=b; 以下选项中,正确的是_。(分数:2.00)A.sizeof(a)的值等于 strlen(p1)的值B.sizeof(b)的值是 4,strlen(b)的值是 4C.sizeof(*p1)的值与 sizeof(*p2)的值相等D.strlen(a)的值与 strlen(p1)的值是相等14.以下程序的输出的结果是 _ 。 #includeiostream.h void main() i

7、nt i,k,a10,p3; k=5; for(i=0;i9;i+)ai=i; for(i=0;i3;i+)pi=ai*(i+1); for(i=0;i3;i+)k+=pi*2; coutk; (分数:2.00)A.20B.21C.22D.2315.有如下程序: #include iostream using namespace std; class AA int n; public: AA(int k):n(k) int get()return n; int get()constreturn n+1; int main() AA a(5); const AA b(6); couta.get(

8、)b.get(); return 0; 执行后的输出结果是 _ 。(分数:2.00)A.55B.57C.75D.7716.某二叉树共有 7 个结点,其中叶子结点只有 1 个,则该二叉树的深度为(假设根结点在第 1 层) _ 。(分数:2.00)A.3B.4C.6D.717.已知 n 是一个 int 型变量,下列语句中错误的是 _ 。(分数:2.00)A.long*p=new longn;B.long pn;C.long*p=new longn;D.long p10;18.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是 _ 。(分数:2.00)A.DB 包含 DBS 和

9、 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMSD.没有任何关系19.若在表达式“y/x”中,“/”是作为成员函数重载的运算符,则该表达式还可以表示为_。(分数:2.00)A.Operator/(y)B.operator/(x,y)C.operator/(x)D.operator/(y,x)20.下列程序执行结果是 #includeiostream.h class A public: int a; A( ):a(10)toutaendl; ; void main( ) A obj1; A obj2(obj1); cout“ “obj2.aendl; (分数:2

10、.00)A.10 10B.编译错误缺少拷贝构造函数C.10 随机数D.随机数随机数21.一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是_。(分数:2.50)A.123456ABCDEB.EDCBA54321C.ABCDE12345D.54321EDCBA22.有如下程序: #includeiostream using namespace std; class Music public: void setTitle(char*str) strcpy(title, str); protected: char type10; pr

11、ivate: char title20; ; class Jazz: public Music public: void set(char*str) strcpy(type, “Jazz“);/ strcpy(title, str);/ ; 下列叙述中正确的是_。(分数:1.00)A.程序编译正确B.程序编译时语句出错C.程序编译时语句出错D.程序编译时语句和都出错23.表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是 _ 。(分数:1.00)A.showbase()和 eof()B.showpoint()和 eof()C.showpoint()和 bad()D.showpoint

12、()和 good()24.两个或两个以上模块之间联系的紧密程度称为_。(分数:1.00)A.耦合性B.内聚性C.复杂性D.数据传输特性25.以下非法的赋值表达式是(分数:2.00)A.n(i2,+i);B.j+;C.+(i+1);D.xj0;26.下列数据结构中具有记忆作用的是(分数:2.00)A栈B.队列C.有序表D.二叉树27.有如下类定义: class Animal public: virtual void Name()=0; ; class Koala:public Animal public: void Name()/*函数体略*/ ; 关于上述类定义,下列描述中错误的是_。(分数:

13、2.50)A.类 Koala 是类 Animal 的派生类B.类 Koala 中的 Name 函数是一个虚函数C.类 Animal 中的 Name 函数是一个纯虚函数D.语句“Animal a;”能够建立类 Animal 的一个对象 a28.下列叙述中,不属于设计准则的是_。(分数:2.50)A.提高模块独立性B.使模块的作用域在该模块的控制域中C.设计成多入口、多出口模块D.设计功能可预测的模块29.下面是类 MyClass 的定义,对定义中各语句描述正确的是_。 class MyClass public: void MyClass(int a) X=a; / int f(int a,int

14、 b) / X=a; Y=b; int f(int a,int b, int c=0) / X=a; Y=b; Z=c; static void g() X=10; / private: int X, Y, Z; ;(分数:2.50)A.语句是类 MyClass 的构造函数定义B.语句和语句实现类成员函数的重载C.语句实现对类成员变量 X 的更新操作D.语句、和都不正确30.通过运算符重载,只能改变运算符原有的_。(分数:1.00)A.优先级B.操作数个数C.操作数类型D.结合性31.当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是_。(分

15、数:2.50)A.任何B.公有或保护C.保护或私有D.私有32.有如下程序: #includeiostream using namespace std; class Name char name20; public: Name() strcpy(name,“); cout“?“; Name(char*fname) strcpy(name,fname); cout“?“; ; int main() Name names3=Name(“张三“),Name(“李四“); return 0; 运行此程序输出符号?的个数是_。(分数:3.00)A.0B.1C.2D.333.有如下程序: #include

16、iostream using namespace std; class Point public: static int number; public: Pointonumber+; Point()number-;) ; int Point:number-0; void mainO Point*ptr; PointA,B; Point*ptr_point=new Point3; ptx=ptr_point; Point C; Gout+Point:number+endl; deleteptr; 运行时输出的结果是_。(分数:2.00)A.3B.4C.6D.734.有以下程序: #include

17、 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.29D.2335.下列关于运算符重载的叙述中,正确的是_。(分数:2.50)A.通过运算符重载机制可以为 C+语言扩充新的运算符B.运算符重载的作

18、用是使已有的运算符作用于类的对象C.重载运算符的操作数类型可以全部为基本类型D.所有运算符都可以重载二、填空题(总题数:15,分数:30.50)36.下列程序的输出结果为 _ 1_ 。 #include iostream. h void main() char a=“abcdabcabfgacd“; int i1=0,i2=0,i=0; while (ai) if (ai=“a“) i1+; if (ai=“q“) i2+; i+; couti1“i2end1; (分数:2.00)37.与公式 (分数:2.50)38.当派生类中有和基类相同名字的成员时,派生类的同名成员会 _ 1_ 基类的成员

19、。 (分数:2.00)39.表达式 x.operator+(y.operator+(0)还可以写成 1。 (分数:2.00)40.在 C+中,运行时的多态性是通过 1 体现的。 (分数:2.00)41.常用的黑箱测试有等价分类法、 1 、因果图法和错误推测法 4 种。 (分数:1.00)42.下列程序的运行结果是 1。 #includeiostream.h) class test private: int num; public: test(); int TEST()return num+100; test(); ; test:test()num0; test:test()cout“Destr

20、uctor is active“endl; void main() test x3; coutx1.TEST()end1; (分数:2.00)43.有如下的程序: #include fstream using namespace std; int main () ofstream outf(“D: /temp“ ,ios_base:trunc); outf“World Wide Web“; outf.close (); ifstream inf(“D: /temp“); char s20; infs; inf.close(); couts; return0; 执行上面的程序将输出 1。 (分数

21、:3.50)44.有以下程序: #includeiostream using namespace std; int main() int i=1,sum=0; Loop:if(i=20) sum+=i; i+; goto Loop; coutsumend1; return 0; 该程序运行后的输出结果是 _ 1_ 。 (分数:1.00)45.执行语句 coutsetw(6)setfill(“*“)12endl; 结果是 _ 1_ 。 (分数:2.00)46.执行语句序列 int x=10, coutx“-“rendl; 输出结果为 1。 (分数:2.00)47.写出执行完下列代码段之后指定变量

22、的值: bool x=true, y=false, z=false; x=x y=x|y z=!(x!=y)|(y=z); 则 x= 1,y= 2,z= 3。 (分数:2.50)48.虚函数必须是类的 _ 1_ 。 (分数:2.00)49.设一棵二叉树的中序遍历结果为 ABCDEFG,前序遍历结果为 DBACFEG,则后序遍历结果为 1。 (分数:2.00)50.将一个函数声明为一个类的友元函数必须使用关键字 _ 1_ 。 (分数:2.00)二级 C+-189 答案解析(总分:96.50,做题时间:90 分钟)一、选择题(总题数:35,分数:66.00)1.能正确表示逻辑关系:“a10 或 a

23、0”的 C语言表达式是(分数:2.00)A.a10 or a0B.a0 | a10C.a10 ”,则 strlen(s)的值是_。(分数:2.50)A.7 B.8C.9D.10解析:解析 C 语言中 strlen()函数的功能是返回字符串的长度,其中“/0“是一个转义字符,它占存储空间,但不计入字符串的长度。所以选项 A 正确。4.下列关于二叉树的叙述中,正确的是_。(分数:2.50)A.叶子结点总是比度为 2 的结点少一个B.叶子结点总是比度为 2 的结点多一个 C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数的两倍解析:解析 由二叉树的性质可以知道在二叉树

24、中叶子结点总是比度为 2 的结点多一个。5.下列代码段声明了 3 个类: class Person; class Student:public Person; class Undergraduate:Student; 下列关于这些类之间关系的描述中,错误的是 _ 。(分数:2.00)A.类 Person 是类 Undergraduate 的基类B.类 Undergraduate 从类 Student 公有继承 C.类 Student 是类 Person 的派生类D.类 Undergraduate 是类 Person 的派生类解析:解析 类 Undergraduate 从类 Student 私有

25、继承,继承方式缺省则默认是 private。6.下列语句中,错误的是_。(分数:1.00)A.const int buffer=256;B.const int temp; C.const double *point;D.const double *rt=new double(5.5);解析:解析 const 是一个 C+语言的关键字,它限定一个变量不允许被改变。使用 const 在一定程度上可以提高程序的安全性和可靠性。限定符声明变量只能被读,必须初始化。B 选项中没有初始化,C 选项为指向常量的指针,定义时初始化与否均可,如果是 const*double point 形式,则为常指针,必须在

26、定义时进行初始化,A、C、D 都正确。7.以下正确的描述为(分数:2.00)A.每个 C+语言程序必须在开头用预处理命令:B.预处理命令必须位于 C+源程序的首部C.在 C+语言中预处理命令都以“#”开头 D.C+语言的预处理命令只能实现宏定义和条件编译的功能解析:解析 本题中,A 和 B 的描述是一样的,故可以捧除。在 C+中,建议用 inline 函数取代 C 语言中的宏定义功能。8.支持子程序调用的数据结构是_。(分数:1.00)A栈 B树C.队列D.二叉树解析:解析 栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行

27、子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为 A。9.下列选项中正确的语句是_。(分数:1.00)A.char s;s=“BOOK!“;B.chsr *s;s=“BOOK!“;C.char s10;s=“BOOK!“;D.char *s;s=“BOOK!“; 解析:解析 在选项 D 中,字符指针 s 指向字符串常量 BOOK!。故选项 D 正确。10.以下有关析构函数的叙述不正确的是(分数:2.00)A.一个类只能定义一个析构函数B.析构函数和构造函数一样可以有形参 C.析构函数不允许有返回值D.析构函数名前必须冠有符号“”

28、解析:解析 本题考察析构函数的定义和使用,析构函数不能有形参,也没有返回值,故正确答案应为B。11.有如下程序: #includeiostream #includestring using namespace std; class MyBag public: MyBag(string br, string cr):brand(br), color(cr)+count; static int GetCount()return count; private: string brand, color; static int count; ; int MyBag:count=0; int main()

29、 MyBag one(“CityLife“, “Gray“); coutone.GetCount(); MyBag*ptr=new MyBag(“Coach“, “Black“); coutMyBag:GetCount(); return 0; 运行时的输出结果是_。(分数:1.00)A.12 B.21C.22D.11解析:解析 静态成员变量 count 在构造函数中完成前缀自增 1 的运算,所以语句 MyBag one(“CityLife”,“Gray”)在调用构造函数时,完成+count,此时调用 one.GetCount()输出 count的值为 1;同理 new MyBag 语句也会调

30、用构造函数,完成+count,此时 count 的值为 2,通过类名 MyBag调用 GetCount()时,输出 count 的值为 2,最终输出结果为 12,答案为 A 选项。12.下列语句分别是不同程序中的第一个输入输出语句。若去掉其中的“left”,输出效果将发生变化的是(分数:2.00)A.coutleftsetfill(“*“)357;B.coutleftsetw(5)357; C.coutleftsetw(5)“ABCDE“;D.coutleft“ABCDE“;解析:13.设有说明语句: char a=“ab/123cd/0“,*p1=a; int b10=1,2,3,4,*p2

31、=b; 以下选项中,正确的是_。(分数:2.00)A.sizeof(a)的值等于 strlen(p1)的值B.sizeof(b)的值是 4,strlen(b)的值是 4C.sizeof(*p1)的值与 sizeof(*p2)的值相等D.strlen(a)的值与 strlen(p1)的值是相等 解析:14.以下程序的输出的结果是 _ 。 #includeiostream.h void main() int i,k,a10,p3; k=5; for(i=0;i9;i+)ai=i; for(i=0;i3;i+)pi=ai*(i+1); for(i=0;i3;i+)k+=pi*2; coutk; (分

32、数:2.00)A.20B.21 C.22D.23解析:解析 程序中首先在第一个 for 循环中将数组 a 每一个元素赋值为 0,1,2,。然后在第二个循环中数组 p 的第 i 元素为 a 中的第 i*(i+1),即 0,2,6,第三个循环中数组 p 中的每个元素值乘以2,然后加上 5,累加。15.有如下程序: #include iostream using namespace std; class AA int n; public: AA(int k):n(k) int get()return n; int get()constreturn n+1; int main() AA a(5); c

33、onst AA b(6); couta.get()b.get(); return 0; 执行后的输出结果是 _ 。(分数:2.00)A.55B.57 C.75D.77解析:16.某二叉树共有 7 个结点,其中叶子结点只有 1 个,则该二叉树的深度为(假设根结点在第 1 层) _ 。(分数:2.00)A.3B.4C.6D.7 解析:解析 对于任意一棵二叉树 T,如果叶子结点数为 n0,度为 2 的结点数为 n2,二者之间的关系是n0=n2+1,该题中度为 2 的结点数为 0,且只有一个叶子结点,因此,树中度为 1 的结点有 6 个,很容易想到树的高度为 7。17.已知 n 是一个 int 型变量

34、,下列语句中错误的是 _ 。(分数:2.00)A.long*p=new longn;B.long pn; C.long*p=new longn;D.long p10;解析:18.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是 _ 。(分数:2.00)A.DB 包含 DBS 和 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMS D.没有任何关系解析:解析 数据库系统(DBS)是指在计算机系统中引入数据库后的系统,一般有数据库(DB)、数据库管理系统(DBMS)、应用系统、数据库管理员和用户构成。19.若在表达式“y/x”中,“/”是作为成

35、员函数重载的运算符,则该表达式还可以表示为_。(分数:2.00)A.Operator/(y)B.operator/(x,y)C.operator/(x) D.operator/(y,x)解析:20.下列程序执行结果是 #includeiostream.h class A public: int a; A( ):a(10)toutaendl; ; void main( ) A obj1; A obj2(obj1); cout“ “obj2.aendl; (分数:2.00)A.10 10 B.编译错误缺少拷贝构造函数C.10 随机数D.随机数随机数解析:解析 本题考察拷贝构造函数的知识。如果类中没

36、有实现拷贝构造函数,则编译器会为其自动生成一个。对于本题这种简单对象,默认生成的拷贝构造函数可以完成数据成员的自动赋值,对于复杂对象,则可能需要显式定义拷贝构造函数。21.一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是_。(分数:2.50)A.123456ABCDEB.EDCBA54321 C.ABCDE12345D.54321EDCBA解析:解析 栈是按照“先进后出”的原则组织数据,入栈的顺序为 12345ABCDE,1 为栈底元素,最后出栈,E 为栈顶元素最先出栈,因此出栈的顺序为 EDCBA54321。22.有如下程序

37、: #includeiostream using namespace std; class Music public: void setTitle(char*str) strcpy(title, str); protected: char type10; private: char title20; ; class Jazz: public Music public: void set(char*str) strcpy(type, “Jazz“);/ strcpy(title, str);/ ; 下列叙述中正确的是_。(分数:1.00)A.程序编译正确B.程序编译时语句出错C.程序编译时语句出

38、错 D.程序编译时语句和都出错解析:解析 本题考查公用继承和保护继承对基类成员的访问属性。公用继承中,基类的公用成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有。保护成员不能被类外访问,但是可以被派生类的成员函数访问。Type 成为派生类的保护成员,可以被派生类访问,title 仍为基类私有,派生类不能直接访问。所以答案为 C。23.表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是 _ 。(分数:1.00)A.showbase()和 eof()B.showpoint()和 eof() C.showpoint()和 bad()D.showpoint()和 good()

39、解析:24.两个或两个以上模块之间联系的紧密程度称为_。(分数:1.00)A.耦合性 B.内聚性C.复杂性D.数据传输特性解析:解析 耦合性是模块间互相连接的紧密程度的度量,取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。25.以下非法的赋值表达式是(分数:2.00)A.n(i2,+i);B.j+;C.+(i+1); D.xj0;解析:解析 对于任何一种赋值运算,其赋值号或复合赋值号左边必须是一个左值。左值是指具有对应的可由用户访问的存储单元,并且能够由用户改变其值的量。而在 C 选项中赋值号对应的是表达式“i+1”,不是一个左值,因此是非法的赋值表达式。26.下列数据结构中具有

40、记忆作用的是(分数:2.00)A栈 B.队列C.有序表D.二叉树解析:解析 栈是按照“先进后出”(FILO-First In Last Out)或“后进先出”(LIFO-Last In First Out)的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表。因此,栈具有记忆作用。27.有如下类定义: class Animal public: virtual void Name()=0; ; class Koala:public Animal public: void Name()/*函数体略*/ ; 关于上述类定义,下列描述中错误的是_。(分数:2.50)A.类 Koala 是类

41、 Animal 的派生类B.类 Koala 中的 Name 函数是一个虚函数C.类 Animal 中的 Name 函数是一个纯虚函数D.语句“Animal a;”能够建立类 Animal 的一个对象 a 解析:28.下列叙述中,不属于设计准则的是_。(分数:2.50)A.提高模块独立性B.使模块的作用域在该模块的控制域中C.设计成多入口、多出口模块 D.设计功能可预测的模块解析:解析 大量软件设计表明,以下的设计准则是可以借鉴为设计的指导和对软件结构图进行优化,这些准则是:提高模块独立性;模块规模适中;深度、宽度、扇出和扇入适当;使模块的作用域在该模块的控制域中;应减少模块的接口和界面的复杂性

42、;设计成单入口、单出口的模块;设计功能可预测的模块。29.下面是类 MyClass 的定义,对定义中各语句描述正确的是_。 class MyClass public: void MyClass(int a) X=a; / int f(int a,int b) / X=a; Y=b; int f(int a,int b, int c=0) / X=a; Y=b; Z=c; static void g() X=10; / private: int X, Y, Z; ;(分数:2.50)A.语句是类 MyClass 的构造函数定义B.语句和语句实现类成员函数的重载C.语句实现对类成员变量 X 的更新

43、操作D.语句、和都不正确 解析:30.通过运算符重载,只能改变运算符原有的_。(分数:1.00)A.优先级B.操作数个数C.操作数类型 D.结合性解析:解析 重载运算符时,运算符的优先级、结合性或操作数数目不能改变,选项 A、B、D 是错误的;选项 C 正确。答案为 C 选项。31.当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是_。(分数:2.50)A.任何B.公有或保护 C.保护或私有D.私有解析:解析 保护继承时基类的 public 和 protected 是保护的,私有继承时基类的 public 和protected 是私有的。32

44、.有如下程序: #includeiostream using namespace std; class Name char name20; public: Name() strcpy(name,“); cout“?“; Name(char*fname) strcpy(name,fname); cout“?“; ; int main() Name names3=Name(“张三“),Name(“李四“); return 0; 运行此程序输出符号?的个数是_。(分数:3.00)A.0B.1C.2D.3 解析:解析 类 Name 有两个构造函数,在默认构造函数中,给字符数组 name 赋空值,并输出

45、一个?;在带有字符指针的构造函数中,把字符指针 fname 所指的字符串赋给字符数组 name,并输出一个?。所以在主函数中,定义了 Name 的三个对象,name0、name1、name2,在创建这三个对象时,会调用构造带参数的函数对前两个对象赋值,调用默认的构造函数把 name2的值赋为空值。这时会输出三个“?”符号。33.有如下程序: #includeiostream using namespace std; class Point public: static int number; public: Pointonumber+; Point()number-;) ; int Point

46、:number-0; void mainO Point*ptr; PointA,B; Point*ptr_point=new Point3; ptx=ptr_point; Point C; Gout+Point:number+endl; deleteptr; 运行时输出的结果是_。(分数:2.00)A.3B.4C.6 D.7解析:解析 此题是静态成员、对象的构造和对象的生存期等知识点的综合考查。此题定义了一个静态成员变量 number,初始值为 0。主函数中第 2 行定义了 2 个 Point 对象,此时 number 变为 2;随后 new运算符又定义了一个包含 3 个 Point 对象元素的数组,其通过 delete 结束后 number 的值变为 5;然后又定义了一个 Point 对象 C,number 变为 6;最后输出 number 的内容。34.有以下程序: #include iostream using namespace std; int main() int n

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

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

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