1、二级 C+-201 及答案解析(总分:82.00,做题时间:90 分钟)一、选择题(总题数:35,分数:58.50)1.以下程序的输出结果是_。 main() int a=4,b=5,c=0,d; d=!a coutdendl; (分数:2.50)A.1B.0C.非 0 的数D.-12.有如下程序: #includeiostream using namespace gtd; class Sample public: Sample() Sample()cout“*“; ; int main() Sample temp2,*pTemp2; return 0; 运行这个程序输出星号*的个数为_。(分
2、数:1.00)A.1B.2C.3D.43.已知一函数的形参说明为 int arr56,则与此等效的形参说明为_。(分数:1.00)A.int arrB.int5C.int*a6D.int(*a)64.若有如下类定义 class Number double Convert() return double(value); public: void Add(); void Add(int x); private: int value; ; 则下列叙述中,错误的是_。(分数:1.00)A.类中有 1 个私有数据成员B.类中有 1 个私有成员函数C.编译时会产生 Add()函数重定义错误D.成员函数 C
3、onvert()是内联函数5.有如下类的定义。应在空格处填入的语句是 ( )。 class MyClass _ int x, y; public: MyClass(int a=0,int b=0) x=a; y=b; static void change) x-=10; y-=10; ;(分数:1.00)A.staticB.constC.mutableD.不需要填入内容6.下列不属于 C+预定义的流对象的是(分数:2.50)A.cfileB.cinC.coutD.clog7.在下列枚举符号中,用来定位文件开始位置的符号常量是_。(分数:1.00)A.ios_base:curB.ios_base
4、:outC.ios_base:begD.ios_base:end8.有如下程序: #includeiostream void fun(intx=y;y=t; int main() int a2=23,42; fun(a1,a0); std:couta0“,“a1std:endl; return 0; 执行后的输出结果是_。(分数:2.00)A.42,42B.23,23C.23,42D.42,239.对长度为 n 的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2 的排序方法是_。(分数:1.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序10.下列数据结构中,能够按照“先进后出
5、”原则存取数据的是_。(分数:1.00)A.循环队列B栈C.队列D.二叉树11.下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是(分数:2.00)A.选择B.连接C.投影D并12.己知基类 Employee 只有一个构造函数,其定义如下: Employee:Employee(int n):id(n) Manager 是 Employee 的派生类,则下列对 Manager 的构造函数的定义中,正确的是_。(分数:2.00)A.Manager:Manager(int n):id(n)B.Manager:Manager(int n)id=n;C.Manager:Mana
6、ger(int n):Employee(n)D.Manager:Manager(int n)Employee(n);13.在面向对象方法中,不属于“对象”基本特点的是_。(分数:2.50)A.一致性B.分类性C.多态性D.标识唯一性14.设有以下定义和程序: #include iostream.h class A1 public: void showl() cout“class A1“end1; ; Class A2 : public A1 public: void show2() cout“Class A2“end1; ; Class A3 : protected A2 public: vo
7、id show3() cout”Class A 土”end1; ; void main() A1 obj1; A2 obj2; A3 obj3; 则以下不合语法的调用语句是 _ 。(分数:1.00)A.obj1show1();B.obj2show1();C.obj3show1();D.obj2show2();15.已知 Value 是一个类,Value 是 Value 的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是_。(分数:2.00)A.Value operator+(Value v,int i);B.Value operator+(Value v=value,int i)
8、;C.Value operator+(Value vint i=0);D.Value operator+(Value v=value,int i=0);16.算法的空间复杂度是指 _ 。(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间17.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是_。(分数:1.00)A.学生成绩管理系统B.C 语言编译程序C.UNIX 操作系统D.数据库管理系统18.下列关于 this 指针的叙述中,正确的是 _ 。(分数:2.00)A.任何与类相关的函数都有 t
9、his 指针B.类的成员函数都有 this 指针C.类的友元函数都有 this 指针D.类的非静态成员函数才有 this 指针19.有如下程序段: int i=2; do i*=i; cout“#“; if(i1000)break; while(1); 运行时,输出字符“#“个数是_。(分数:2.00)A.3B.4C.5D.620.C+类体系中,不能被派生类继承的有 _ 。(分数:1.00)A.构造函数B.虚函数C.静态成员函数D.赋值操作函数21.有如下程序: #includeiostream using namespace std; int main() void function(dou
10、ble val); double val; function(val); coutval; return 0; void function(double val) val=3; 编译运行这个程序将出现的情况是_。(分数:1.00)A.编译出错,无法运行B.输出:3C.输出:3.0D.输出一个不确定的数22.C+语言本身没有定义 I/O 操作,但 I/O 操作包含在 C+实现中。C+标准库 iostream 提供了基本的I/O 类。I/O 操作分别由两个类 istream 和_提供。(分数:2.50)A.fstreamB.iostreamC.ostreamD.cin23.下列描述中,错误的是_。
11、(分数:2.50)A.公有继承时基类中的公有成员在派生类中仍是公有成员B.公有继承时基类中的保护成员在派生类中仍是保护成员C.保护继承时基类中的公有成员在派生类中仍是公有成员D.保护继承时基类中的保护成员在派生类中仍是保护成员24.在 C+中,编译系统自动为一个类生成默认构造函数的条件是_。(分数:1.00)A.该类没有定义任何有参构造函数B.该类没有定义任何无参构造函数C.该类没有定义任何构造函数D.该类没有定义任何成员函数25.下列运算符不能重载为友元函数的足_。(分数:1.00)A.=() ( ) -B.+ - + - -C. = =D.+= -= *= /=26.下列关于类模板的模板参
12、数的叙述中,错误的是_。(分数:1.00)A.模板参数可以作为数据成员的类型B.模板参数可以作为成员函数的返回类型C.模板参数可以作为成员函数的参数类型D.模板参数不能作为成员函数的局部变量的类型27.有两个关系 R 和 T 如下: (分数:2.50)A.选择B交C.投影D并28.下列虚基类的声明中正确的是 _。(分数:2.00)A.class virtual B: public AB.class B: public A virtualC.class B: public virtual AD.virtual class B: public A29.表达式 1056%3 的值是(分数:2.00)
13、A.-1B.非零值C.0D.130.下列错误的定义语句是_。(分数:2.50)A.int X3=0,1,1,2,3);B.int x43=1,2,0,1,2,3,1,2,3,1,2,3;C.int x4=1,2,3,1,2,3,1,2,3,1,2,3;D.int x3=1,2,3,4;31.有如下类定义: class Test public: Test()a=0;c=0;/ int f(int a)constthis-a=a;/ static int g()return a;/ voidh(intb)Test:b=b;/ private: int a; static int b; const
14、int c; ; int Test:b=0; 在标注号码的行中,能被正确编译的是_。(分数:1.00)A.B.C.D.32.可以用 p.a 的形式访问派生类对象 p 的基类成员 a,其中 a 是 _ 。(分数:2.00)A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员33.存取指针所指的值时,采用的运算符是_。(分数:2.50)A.#B.C.%D.*34.有如下程序: #includeiostream using namespace std; class Instrument public: virtual void Display()=0; ; cla
15、ss Piano:public Instrument public: vold Display()/*函数体程序略*/ ; int main() Instrument s; Instrument*p=0; /.; return 0; 下列叙述中正确的是_。(分数:2.50)A.语句“Insturment*p=0;”编译时出错B.语句“Instrument s;”编译时出错C.类 Piano 中的 Display 函数不是虚函数D.类 Instrumen 是一个虚基类35.有如下语句序列: char str10; cinstr; 当从键盘输入“I love this game”时,str 中的字
16、符串是_。(分数:1.00)A.“I love this game“B.“I love thi“C.“I love“D.“I“二、填空题(总题数:15,分数:23.50)36.执行语句序列 char str110=“ABCD“,str210=“XYZxyz“; for(int i=0;strli=str2i;i+); 后,数组 strl 中的字符串是 1。 (分数:2.00)37.下面程序的执行结果是 1。 #includeiostream #includeiomanip using namespace std; void main() coutsetfill(“x“)setw(10)“Hel
17、lo“endl; (分数:2.00)38.在长度为 n 的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为 _ 1_ 。 (分数:1.00)39.C+是一种面向对象的程序设计语言,它充分支持面向对象思想中的三个主要特征是 1 性; 2 性和 3性。 (分数:1.00)40.若有以下程序: #include iostream using namespace std; class Base public: void who() cout“Base“end1; ; class Derivedl: public Base public: void who() cout“Derived“end1
18、; ; int main() Base *p; Derived1 obj1; p= p-who(); return 0; 则该程序运行后的输出结果是 _ 1_ 。 (分数:2.00)41.冒泡排序算法在最好的情况下的元素交换次数为 【1】 。 (分数:1.00)42.C+程序第 1 条语句是从 _ 1_ 函数开始执行的。 (分数:2.00)43.执行下列语句后,变量 sum 的值是 _ 1_ 。 int sum=0; for(int i=1;i=3;i+) for(int j=1;j=i;j+) sum+; (分数:2.00)44.下列程序在构造函数和析构函数中申请和释放类的私有成员,请完成该
19、类的实现。 class MyClass public: MyClass(int a); MyClass(); private: int *X; ; MyClass: MyClass(int a) 1; MyClass:MyClass() 2; (分数:2.50)45.、*、-、:、?:这五个运算符 1 重载。 (分数:1.00)46.诊断和改正程序中错误的工作通常称为 _ 1_ 。 (分数:1.00)47.数据模型按不同应用层次分成 3 种类型,它们是概念数据模型、 _ 1_ 和物理数据模型。 (分数:1.00)48.类 time 可以输出 12 小时或 24 小时制的时间,现需要设计一个缺省
20、构造函数,缺省值为 0 时 0 分 0 秒。该缺省构造函数为 1。 #includeiostream.h class Time int h,m,s; public: Time(int hour=0,int min=0,int sec=0)settime(hour,min,sec); void settime(int hour,int min,int sec)h=hour;m=min;s=sec; void show24( ) cout(h10?“0“:“)h“:“(m10?“0“:“) m“:“(s10?“0“:“)sendl; void showl2( ) int temp=(h= =0 |
21、 h= =12)? 12:h%12; cout(temp10?“0“:“)temp“:“(m10?“0“:“) m“:“(s10?“0“:“)s(temp0 ; void main( ) Time t(15,43,21); t.showl2( ); t.show24( ); (分数:2.00)49. 1 是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。 (分数:1.00)50.用以下语句调用库函数 malloc,使字符指针 st 指向具有 11 字节的动态存储空间,请填空。st=(char*) 1; (分数:2.00)二级 C+-201
22、 答案解析(总分:82.00,做题时间:90 分钟)一、选择题(总题数:35,分数:58.50)1.以下程序的输出结果是_。 main() int a=4,b=5,c=0,d; d=!a coutdendl; (分数:2.50)A.1 B.0C.非 0 的数D.-1解析:解析 本题考查逻辑运算,只要考生掌握了逻辑运算的优先级就可以正确得到答案为选项 A。或运算的优先级最高, class Sample public: Sample() Sample()cout“*“; ; int main() Sample temp2,*pTemp2; return 0; 运行这个程序输出星号*的个数为_。(分
23、数:1.00)A.1B.2 C.3D.4解析:解析 本题考查构造函数和析构函数,题中定义了对象数组,那么析构时就析构两次,输出两个*。答案为 B。3.已知一函数的形参说明为 int arr56,则与此等效的形参说明为_。(分数:1.00)A.int arrB.int5C.int*a6D.int(*a)6 解析:解析 二维数组可以看做是一维数组的扩展。选项 D 表示的是一个一维数组,里面每个元素是一个指针,而指针肯定指向某个地址,从而完成二维数组的扩展。考生要了解*和的运算优先级。4.若有如下类定义 class Number double Convert() return double(valu
24、e); public: void Add(); void Add(int x); private: int value; ; 则下列叙述中,错误的是_。(分数:1.00)A.类中有 1 个私有数据成员B.类中有 1 个私有成员函数C.编译时会产生 Add()函数重定义错误 D.成员函数 Convert()是内联函数解析:解析 若定义类的关键字为 class,那么在类中定义的变量或函数默认为 private。类中有一个私有数据成员 value,一个私有成员函数 Convert(),且为内联函数(内联函数是指那些定义在类体内的函数)。选项 A、B、D 正确。Add(),add(int)为重载函数,
25、编译时不会报错,故答案为 C 选项。5.有如下类的定义。应在空格处填入的语句是 ( )。 class MyClass _ int x, y; public: MyClass(int a=0,int b=0) x=a; y=b; static void change) x-=10; y-=10; ;(分数:1.00)A.static B.constC.mutableD.不需要填入内容解析:解析 本题考核静态成员函数的使用。由题可知,函数 change()为类 MyClass 的静态成员函数。先来了解静态成员函数:静态成员函数与静态数据成员相似,也从属于类,只要类存在,静态成员函数就可以使用,静态
26、成员函数的定义是在一般函数的定义前加上关键词 static。调用静态成员函数的格式如下:类名:静态成员函数名(参数表); 静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员(因为非静态数据成员只有对象存在时才有意义)。但静态数据成员和静态成员函数可由任意访问权限许可的函数访问。和一般成员函数类似,静态成员函数也有访问限制,私有静态成员函数不能由外界访问。由静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员可知,变量 x 和 y 只能是类 MyClass 的静态数据成员,所以 x 和 y 的定义为“sta
27、tic int x,y;”。6.下列不属于 C+预定义的流对象的是(分数:2.50)A.cfile B.cinC.coutD.clog解析:7.在下列枚举符号中,用来定位文件开始位置的符号常量是_。(分数:1.00)A.ios_base:curB.ios_base:outC.ios_base:beg D.ios_base:end解析:解析 本题考查文件流,ios_base:cur 表示相对于当前位置,负数表示当前位置之前,选项 A错误;ios_base:out 表示在文件流的建立中为文件的输出而打开,选项 B 错误;ios_base:end 表示相对于文件尾部的位置,选项 D 错误;ios_b
28、ase:beg 表示相对于文件的开始位置,答案为 C 选项。8.有如下程序: #includeiostream void fun(intx=y;y=t; int main() int a2=23,42; fun(a1,a0); std:couta0“,“a1std:endl; return 0; 执行后的输出结果是_。(分数:2.00)A.42,42B.23,23 C.23,42D.42,23解析:解析 此题考查是是函数的调用以及参数值的传递。函数 fun 中的第一个参数是引用传值方式,是双向的;第二个参数是按值传递,是单向的。9.对长度为 n 的线性表排序,在最坏情况下,比较次数不是 n(n
29、-1)/2 的排序方法是_。(分数:1.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序 解析:解析 除了堆排序算法的比较次数是 O(nlog2n),其他的都是 n(n-1)/2。10.下列数据结构中,能够按照“先进后出”原则存取数据的是_。(分数:1.00)A.循环队列B栈 C.队列D.二叉树解析:解析 栈是按先进后出的原则组织数据的。队列是先进先出的原则组织数据。11.下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是(分数:2.00)A.选择B.连接 C.投影D并解析:解析 连接运算是对两个关系进行的运算,其意义是从两个关系的笛卡尔积中选出满足给定属性间
30、一定条件的那些元组。而两个关系的笛卡尔积中的属性个数是两个原关系中的属性个数之和。即两个关系经连接运算后得到的新关系中属性个数多于原来关系中属性个数。正确答案是 B。12.己知基类 Employee 只有一个构造函数,其定义如下: Employee:Employee(int n):id(n) Manager 是 Employee 的派生类,则下列对 Manager 的构造函数的定义中,正确的是_。(分数:2.00)A.Manager:Manager(int n):id(n)B.Manager:Manager(int n)id=n;C.Manager:Manager(int n):Employe
31、e(n) D.Manager:Manager(int n)Employee(n);解析:解析 基类的构造函数是带有参数的,派生类从基类派生,这就需要在派生类的构造函数名后面显示的调用基类的构造函数。13.在面向对象方法中,不属于“对象”基本特点的是_。(分数:2.50)A.一致性 B.分类性C.多态性D.标识唯一性解析:解析 对象是类的实例,它具有如下特征:标识唯一性、分类性、多态性、封装性、模块独立性。14.设有以下定义和程序: #include iostream.h class A1 public: void showl() cout“class A1“end1; ; Class A2 :
32、 public A1 public: void show2() cout“Class A2“end1; ; Class A3 : protected A2 public: void show3() cout”Class A 土”end1; ; void main() A1 obj1; A2 obj2; A3 obj3; 则以下不合语法的调用语句是 _ 。(分数:1.00)A.obj1show1();B.obj2show1();C.obj3show1(); D.obj2show2();解析:解析 C+中,通过类的对象只能访问类的公有成员,不能访问类的保护成员和私有成员。A2 是A1 的公有派生类
33、,A3 是 A2 的保护派生类,所以类 A1 的成员函数 showl()在类 A3 中呈现保护属性,不能通过 A3 类的对象访问。15.已知 Value 是一个类,Value 是 Value 的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是_。(分数:2.00)A.Value operator+(Value v,int i);B.Value operator+(Value v=value,int i); C.Value operator+(Value vint i=0);D.Value operator+(Value v=value,int i=0);解析:解析 此题考查的是重
34、载加法运算符“+”。“+”是二元运算符,其第一操作数是对象本身,i为第二操作数,由此可知选项 B 正确。16.算法的空间复杂度是指 _ 。(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间 解析:解析 一个算法的空间复杂度,一般是指执行这个算法所需的存储空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间及算法执行过程中所需要的额外空间。17.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是_。(分数:1.00)A.学生成绩管理系统 B.C 语言编译程序C.
35、UNIX 操作系统D.数据库管理系统解析:解析 软件按功能可以分为:应用软件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。所以 B、C、D 都是系统软件,只有 A 是应用软件。18.下列关于 this 指针的叙述中,正确的是 _ 。(分数:2.00)A.任何与类相关的函数都有 this 指针B.类的成员函数都有 this 指针C.类的友元函数都有 this 指针D.类的非静态成员函数才有 this 指针 解析:19.有如下程序段: int i=2; do i*=i; cout“#“; if(i1000)break; while(1); 运行时,输出
36、字符“#“个数是_。(分数:2.00)A.3B.4 C.5D.6解析:20.C+类体系中,不能被派生类继承的有 _ 。(分数:1.00)A.构造函数 B.虚函数C.静态成员函数D.赋值操作函数解析:21.有如下程序: #includeiostream using namespace std; int main() void function(double val); double val; function(val); coutval; return 0; void function(double val) val=3; 编译运行这个程序将出现的情况是_。(分数:1.00)A.编译出错,无法运
37、行B.输出:3C.输出:3.0D.输出一个不确定的数 解析:解析 本题考查函数调用及传值方式传递参数,执行函数 function 时,并没有将 3 的值传回来,而 val 又没有初始化,所以会输出一个不确定的值,D 选项正确。22.C+语言本身没有定义 I/O 操作,但 I/O 操作包含在 C+实现中。C+标准库 iostream 提供了基本的I/O 类。I/O 操作分别由两个类 istream 和_提供。(分数:2.50)A.fstreamB.iostreamC.ostream D.cin解析:解析 本题考查的是 C+标准库 iostream 提供的基本 I/O 类。istream 提供了向
38、流中插入数据的有关操作;ostream 提供了从流中提取数据的有关操作。23.下列描述中,错误的是_。(分数:2.50)A.公有继承时基类中的公有成员在派生类中仍是公有成员B.公有继承时基类中的保护成员在派生类中仍是保护成员C.保护继承时基类中的公有成员在派生类中仍是公有成员 D.保护继承时基类中的保护成员在派生类中仍是保护成员解析:解析 保护继承时,类成员的访问级别只能是降低为保护模式,因此即使基类的公有成员,也被缩小为保护模式。24.在 C+中,编译系统自动为一个类生成默认构造函数的条件是_。(分数:1.00)A.该类没有定义任何有参构造函数B.该类没有定义任何无参构造函数C.该类没有定义
39、任何构造函数 D.该类没有定义任何成员函数解析:解析 本题考查默认构造函数的生成,如果用户定义的类中没有声明、定义任何构造函数,编译器就会自动为该类生成默认构造函数,称为合成的构造函数。C 选项正确。25.下列运算符不能重载为友元函数的足_。(分数:1.00)A.=() ( ) - B.+ - + - -C. = =D.+= -= *= /=解析:解析 关于运算符重载为友元函数有如下规定:一般情况下,单目运算符最好重载为类的成员函数,双目运算符则最好重载为类的友元函数;双目运算符“=、()、- ”不能重载为类的友元函数。所以本题答案为 A。26.下列关于类模板的模板参数的叙述中,错误的是_。(
40、分数:1.00)A.模板参数可以作为数据成员的类型B.模板参数可以作为成员函数的返回类型C.模板参数可以作为成员函数的参数类型D.模板参数不能作为成员函数的局部变量的类型 解析:解析 此题考查的是模板参数。模板参数是一种参数化的数据模型,在模板类或模板函数中,只要使用数据类型的地方都能使用模板参数来代表一种未知的数据类型。所以,模板参数可以作为成员函数的局部变量类型。27.有两个关系 R 和 T 如下: (分数:2.50)A.选择B交C.投影 D并解析:解析 投影是从表中选出指定的属性值组成新表,是单目运算。28.下列虚基类的声明中正确的是 _。(分数:2.00)A.class virtual
41、 B: public AB.class B: public A virtualC.class B: public virtual A D.virtual class B: public A解析:29.表达式 1056%3 的值是(分数:2.00)A.-1B.非零值C.0 D.1解析:30.下列错误的定义语句是_。(分数:2.50)A.int X3=0,1,1,2,3);B.int x43=1,2,0,1,2,3,1,2,3,1,2,3;C.int x4=1,2,3,1,2,3,1,2,3,1,2,3; D.int x3=1,2,3,4;解析:解析 本题考查数组的定义一维数组定义和初始化是允许省
42、略行下标,不允许省略列下标,故选项 C 错误。31.有如下类定义: class Test public: Test()a=0;c=0;/ int f(int a)constthis-a=a;/ static int g()return a;/ voidh(intb)Test:b=b;/ private: int a; static int b; const int c; ; int Test:b=0; 在标注号码的行中,能被正确编译的是_。(分数:1.00)A.B.C.D. 解析:解析 只能通过构造函数的参数初始化列表对常数据成员进行初始化,本题中常数据成员为c。通过默认构造函数初始化 c,所
43、以不正确。常成员函数只能引用本类中数据成员,而不能修改它,所以不正确。静态成员函数由于没有 this 指针,所以不能访问本类中的非静态成员,所以错误。32.可以用 p.a 的形式访问派生类对象 p 的基类成员 a,其中 a 是 _ 。(分数:2.00)A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员 解析:解析 只有公有继承的公有成员才能被派生类的对象直接访问,其他的情况都会因为访问权限问题产生错误。33.存取指针所指的值时,采用的运算符是_。(分数:2.50)A.#B.C.%D.* 解析:解析 对指针所指向的地址取值时,采用约存取运算符为*。B 为取地
44、址符。34.有如下程序: #includeiostream using namespace std; class Instrument public: virtual void Display()=0; ; class Piano:public Instrument public: vold Display()/*函数体程序略*/ ; int main() Instrument s; Instrument*p=0; /.; return 0; 下列叙述中正确的是_。(分数:2.50)A.语句“Insturment*p=0;”编译时出错B.语句“Instrument s;”编译时出错 C.类 P
45、iano 中的 Display 函数不是虚函数D.类 Instrumen 是一个虚基类解析:解析 抽象类只能作为别的类的基类,不能生成对象。35.有如下语句序列: char str10; cinstr; 当从键盘输入“I love this game”时,str 中的字符串是_。(分数:1.00)A.“I love this game“B.“I love thi“C.“I love“D.“I“ 解析:解析 cin 是 C+预定义的标准输入流对象,cin 用来接收字符串时,遇“空格”、“TAB”、“回车”时都会结束。所以本题答案为 D。二、填空题(总题数:15,分数:23.50)36.执行语句序
46、列 char str110=“ABCD“,str210=“XYZxyz“; for(int i=0;strli=str2i;i+); 后,数组 strl 中的字符串是 1。 (分数:2.00)解析:XYZxyz解析 注意 for 的循环体为空语句,其第二个表达式为一个赋值语句而不是一个逻辑表达式语句。因此,for 循环的作用实际上是将 str2 的字符逐个赋值给 str1 中的对应位置。37.下面程序的执行结果是 1。 #includeiostream #includeiomanip using namespace std; void main() coutsetfill(“x“)setw(10)“Hello“endl; (分数:2.00)解析:xxxxxHello解析 setfill(“x“)设置填充