《大学C++-期末考试题库.pdf》由会员分享,可在线阅读,更多相关《大学C++-期末考试题库.pdf(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、大学C+考试题库一、单选题:1.能作为C+程序的基本单位是()。A.字符 B.语句 C.函数 D.源程序文件2.程序中主函数的名字为()。A.m ain B.M A I N C.M ain D.任意标识符3.关于C+与 C语言的关系的描述中,()是错误的。A.C 语言是C+的一个子集;B.C 语言与C+是兼容的;C.C+对 C 语言进行了一些改进;D.C+和 C语言都是面向对象的4 .可用作C+语言用户标识符的一组标识符是()。A.vo id defin e+W 0R D B.a3_b3 _123 YNC.fo r -abc C as e D.2a D O s iz eo f5 .存储以下数据
2、,占用存储字节最多的是(A.0 B.O C.“0”D.0.06 .设 in t a=12;则执行完语句a+=a*a;后,a 的值是()。A.12 B.14 4 C.15 6 D.2887.假设在程序中a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式-的 表 达 式 是(abc)。A.1.0/a*b*cB.l/(a*b*c)C.1/a/b/(fl o at)c D.1.0/a/b/c8.以下说法中正确的是()。A.C+程序总是从第一个定义的函数开始执行B.C+程序总是从m ain 函数开始执行C.C+函数必须有返回值,否则不能使用函数D.C+程序中有调用关系的所有函数必须放在
3、同个程序文件中9 .下面有关构造函数的描述中,正确的是A.构造函数可以带有返回值C.构造函数必须带有参数10.在声明类时,下面的说法正确的是(B.构造函数的名字与类名完全相同D.构造函数必须定义,不能缺省)。A.可以在类的声明中给数据成员赋初值B.数据成员的数据类型可以是r egis terC.p r ivate,p ubl ic,p r o tected可以按任意顺序出现D.没有用p r ivate,p ubl ic,p r o tected定义的数据成员是公有成员11.在下面有关析构函数特征的描述中,正确的是()oA.一个类可以有多个析构函数C.析构函数不能指定返回类型12.构造函数是在(
4、)时被执行的。A.程序编译 B.创建对象B.析构函数与类名完全相同D.析构函数可以有一个或多个参数C.创建类 D.程序装入内存13.下面有关静态成员函数的描述中,正确的是()A.在静态成员函数中可以使用this 指针B.在建立对象前,就可以为静态数据成员赋值C.静态成员函数在类外定义是,要用s tatic前缀D.静态成员函数只能在类外定义14.下面有关友员函数的描述中,真确的说法是()A.友员函数是独立于当前类的外部函数B.一个友员函数不可以同时定义为两个类的友员函数C.友员函数必须在类的外部进行定义D.在类的外部定义友员函数时必须加上fr ien d关键字15 .友员的作用之一是(A.提高程
5、序的运行效率C.实现数据的隐蔽性16.使用派生类的主要原因是(A.提高代码的可重用性C.加强类的封装性17.在C+中继承方式有几中(A.1 B.2B.加强类的封装D.增加成员函数的种类)B.提高程序的运行效率D.实现数据的隐藏)C.3 D.418.假设已经定义好了类s t u d e n t,现在要定义类d e r i v e d,它是从s t u d e n t 私有派生的,则定义类d e r i v e d 的正确写法是()A.c l a s s d e r i v e d :s t u d e n t p r i v a t e!/B.c l a s s d e r i v e d :s
6、 t u d e n t p u b l i c /C.c l a s s d e r i v e d :p u b l i c s t u d e n t /D.c l a s s d e r i v e d :p r i v a t e s t u d e n t /19.派生类的对象对它的基类成员中()是可以访问的。A.公有继承的公有成员;B.公有继承的私有成员;C.公有继承的保护成员;D.私有继承的公有成员。2 0.类中定义的成员默认为()访问属性。A.p u b l i c B.p r i v a t e C.p r o t e c t e d D.f r i e n d2 1.下列
7、存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选 用()合适。A.内联函数;B.重载函数;C.递归调用;D.嵌套调用。2 2 .C+对 C语言作了很多改进,下列描述中()使得C语言发生了质变,从面向过程变成了面向对象。A.增加了一些新的运算符;B.允许函数重载,并允许设置缺省参数;C.规定函数说明必须用原型;D.引进了类和对象的概念;2 3.按照标识符的要求,)符号不能组成标识符。A.连接符 B.下划线 C.大小写字母2 4.下列变量名中,()是合法的。A C H IN A B b y t e-s i z e C d o u b l e D A+aD.数字字符2
8、5.下列各种函数中,()不是类的成员函数。A 构造函数 B 析构函数 C 友元函数 D 拷贝构造函数2 6.下 列()是正确的语句。A ;B a=17 C x+y D c o u t n 2 7.不能作为函数重载判断的依据的是()A.返回类型 B.c o n s t C.参数个数 D.参数类型2 8.通常,拷贝构造函数的参数是()A.某个对象名B.某个对象的成员名C.某个对象的引用名 D.某个对象的指针名2 9.下面对静态数据成员的描述中,正确的是()A类的不同对象有不同的静态数据成员值B类的每个对象都有自己的静态数据成员C静态数据成员是类的所有对象共享的数据D静态数据成员不能通过类的对象调用
9、30.假定A B 为一个类,则执行A B x;语句时将自动调用该类的()A.有参构造函数 B.无参构造函数 C.拷贝构造函数 D.赋值构造函数31.C+程序从上机到得到结果的几个操作步骤依次是()。A.编译、编辑、连接、运行 B.编辑、编译、连接、运行C.编译、运行、编辑、连接 D.编辑、运行、编辑、连接32 .假定一条定义语句为“i n t a 10L x,*p=a;,若要把数组a中下标为3的元素值赋给x,则不正确的语句为()。A.x=p 3 ;B.x=*(a+3);C.x=a 3 ;D.x=*p+3;3 3 .关于封装,下列说法中不正确的是()。A.通过封装,对象的全部属性和操作结合在一起
10、,形成一个整体B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)C.通过封装,每个对象都成为相对独立的实体D.通过封装,对象的属性都是不可见的3 4 .预处理命令在程序中都是以()符号开头的。A.*B.#C.&D.3 5 .存储以下数据,占用存储字节最少的是()。A.0 B.O C.“0 D.0.03 6 .程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符号作为分隔符。A.空格或逗号 B.逗号或回车 C.逗号或分号 D.空格或回车3 7 .假定变量m定义为“i n t m=7;,则定义变量p 的正确语句为()。A.i n t p=&m;B.i n t*p=&m;C.i
11、 n t&p=*m;D.i n t*p=m;3 8 .下面的哪个保留字不能作为函数的返回类型?。A.v oi d B.i n t C.n ew D.l on g3 9 .采用重载函数的目的是()。A.实现共享 B.减少空间 C.提高速度 D.使用方便,提高可读性4 0 .假定A B 为-一个类,则()为该类的拷贝构造函数的原型说明。A.A B (A B x);B.A B(i n t x);C.A B(A B&x);D.v oi d A B(A B&x);4 1、C+对 C语言作了很多改进,下列描述中()使得C语言发生了质变,从面向过程变成了面向对象。A、增加了一些新的运算符;B、允许函数重载,
12、并允许设置缺省参数;C、规定函数说明必须用原型;D、引进了类和对象的概念;4 2、所谓数据封装就是将组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()。A.类 B.对象 C.函数体 D.数据块4 3、关于n ew 运算符的下列描述中,()是错误的。A、它可以用来动态创建对象和对象数组;B、使用它创建的对象或对象数组可以使用运算符del ete删除;C、使用它创建对象时要调用构造函数;D、使用它创建对象数组时必须指定初始值;4 4、()不是构造函数的特征。A、构造函数的函数名与类名相同:B、构造函数可以重载;C、构造函数可以设置缺省参数:I)、构造函数必须指定类型说明。45、假
13、定一个类的构造函数为B(i n t x,i n t y)a=x-;b=a*y ;,则执行B x(3,5);语句后,x.a和 x.b的值分别为()A、3 和 5 B、5 和 3 C、3 和 15 D、20 和 546、关于成员函数特征的下列描述中,()是错误的。A、成员函数一定是内联函数;B、成员函数可以重载;C、成员函数可以设置缺省参数值;D、成员函数可以是静态的;47、在公有继承的情况下,基类成员在派生类中的访问权限()。A、受限制 B、保持不变 C、受保护 D、不受保护48、友元的作用是()。A、提高程序的运用效率;B、加强类的封装性;C、实现数据的隐藏性;D、增加成员函数的种类;49、在
14、 C+中,关于下列设置缺省参数值的描述中,()是正确的。A、不允许设置缺省参数值;B、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;C、只能在函数的定义性声明中指定参数的缺省值;D、设置缺省参数值时,必须全部都设置;5 0、关于d e l e t e 运算符的下列描述中,()是错误的。A、它必须用于n e w 返回的指针;B、使用它删除对象时要调用析构函数;C、对个指针可以使用多次该运算符;D、指针名前只有一对方括号符号,不管所删除数组的维数。5 1、c o n s t i n t *p说明不能修改()。A、p 指针;B、p 指针指向的变量;C、p 指针指向的数据类型;I)、上述A、
15、B、C 三者;5 2、当需要打开A盘上的以x x k.d a t 文件用于输入时,则定义文件流对象的语句为()。A、f s t r e a m f i n(A:x x k.d a t”,1)B、i f s t r e a m f i n(A:x x k*d a t”,i o s:n o c r e a t e)C、o f s t r e a m f i n(A:x x k.d a t )D、i f s t r e a m f i n (A:x x k.d a t ,i o s:a.pp)5 3、派生类的对象对它的基类成员中()是可以访问的。A、公有继承的公有成员;B、公有继承的私有成员;C、公
16、有继承的保护成员;D、私有继承的公有成员;5 4假定一个字符串的长度为n,则定义存储该字符串的字符数组的长度至少为()。A、n-1B、nC、n+1 D、n+25 5、在 i n t a=3;*p=&a;中,*p 的 值 是()。A、变量a的地址值 B、无意义5 6、下列常量中,()不是字符常量。A、005 B、n C、c 5 7 在 i n t a=3,*p=&a;中,*p 的 值 是(A)变量a的地址值 B)无意义C、变量p 的地址值D、“a”)。C)变量p 的地址值D、3D)35 8、以下4 个选项中,不能看作一条语句的是()。A)i f(b=0)m=l;n=2;B)a=0,b=0,c=0
17、;C)i f(a 0);D);5 9、()不是构造函数的特征。A)构造函数的函数名与类名相同 B)构造函数可以重载C)构造函数可以设置缺省参数D)构造函数必须指定类型说明60、以下程序段中与语句k=ab?1:0;功能等价的是()。A)if(ab)k=l;B)if(ab)k=0C)if(ab)k=l;D)if(ab)k=0;else k=0;else k=l;61、下列常量中,()不是字符常量。A”005 B”n(C)c D)a62、表 示“x 大 于 1而小于10”的逻辑表达式是()。A)lxl&x10 C)!(x=10)D)xl|x1063、关于成员函数特征的下列描述中,()是错误的。A)成
18、员函数一定是内联函数C)成员函数可以设置缺省参数值64、有以下程序B)成员函数可以重载D)成员函数可以是静态的include void main()int i,s=0;for(i=l;i10;i+=2)s+=i;couts;程序执行后的输出结果是()oA)自然数19 的累加和 B)自然数110的累加和C)自然数19 中的奇数之和 D)自然数110中的偶数之和65、设有定义:int n=0,*p=&n,*q=&p;则以下选项中,正确的赋值语句是()。A)p=l;B)*q=2;C)q=p;D)*p=5;66、()能正确输出结果:C+。A)char s=C+”;co u t s endl;B)cha
19、r s 3=VC+V;coutsendl;C)char s3=C 0;cout sendl;D)char s 3=C ;c o u t s endl;67、有以下程序段int a10=l,2,3,4,5,6,7,8,9,10),*p=a,b;b=p5;b 中的值是()。A)5 B)668、有以下程序C)8D)9Sinclude void main()char*p10=abc,aabdfg,dcdbe,abbd,cd;cou t p 3 en d l;执行后输出结果是A)dcdbe B)abbd C)abc D)abb69、下列静态数据成员的特性中,()是错误的。A)说明静态数据成员时前边要加修
20、饰符staticB)静态数据成员要在类体外进行初始化C)静态数据成员不是所有对象所共用的D)引用静态数据成员时,要在其名称前加 类名 和作用域运算符7 0、有以下语句s tru ct S in t g;char h;T;则下面叙述中不正确的是()oA)S 是结构体名 B)该结构体包含2个成员C)S 是 s tru ct类型的变量 D)T是 s tru ct S 类型的变量7 1、派生类的对象对它的基类成员中()是可以访问的。A)公有继承的公有成员B)公有继承的私有成员C)公有继承的保护成员D)私有继承的公有成员7 2、实现运行时的多态性用。A、重载函数B、构造函数C、析构函数D、虚函数7 3
21、.下列变量名中,()是合法的。A.C H I N A B.by te-s ize C.do u ble D.A+a7 4 .在 in t b 3 =l,3,2 ,4,5,6 ,0 ;b 2 2 的 值 是(7A.0 B.2 C.5 D.67 5 .下列各运算符中,()优先级最高。A.+(双目)B.*(单目)C.=D.*=7 6 .下列fo r循环的次数为()。fo r(in t i(0),x=0;!x&i p=5;C.A.*p=5;D.*A1.p=5;99.关于n ew 运算符的下列描述中,()是错的。A.它可以用来动态创建对象利对象数组;B.使用它创建的对象或对象数组可以使用运算符del e
22、t e删除;C.使用它创建对象时要调用构造函数;D.使用它创建对象数组时必须指定初始值。1 0 0 .派生类的构造函数的成员初始化列中,不能包含()。A.基类的构造函数;B.派生类中子对象的初始化;C.基类的子对象初始化;D.派生类中一般数据成员的初始化1 0 1 .派生类的对象对它的基类成员中()是可以访问的。A.公有继承的公有成员;B.公有继承的私有成员;C.公有继承的保护成员;D.私有继承的公有成员。1 0 2 .C+类体系中,不能被派生类继承的有()。A.构造函数 B.虚函数 C.静态成员函数 D.赋值操作函数1 0 3 .下面标识符中正确的是()。A._ab c B.3 ab C.i
23、 n t D.+ab1 0 4.下列哪项()不是面向对象程序设计的主要特征?a.封装 b.继承 c.多态 d.结构1 0 5.已知i=5,j=0,下列各式中运算结果为j=6 的表达式是()。A.j=i+(+j)B.j=j+i+C.j=+i+j D.j=j+i1 0 6 .若整型变量a、b、c、d 中的值依次为:1、4、3、2。则条件表达式a b?a:c d?c:d的值A.1 B.2 C.3 D.41 0 7.以下不正确的是()。A.语句fo r (i=0;i+)表示无限循环 B.fo r (;)表示无限循环C.fo r ()也表示无限循环 D.w h i l e(1)表示无限循环1 0 8.有
24、如下程序:i n t x=3;do X-=2;c o u t x;w h i l ed(-x);执行这个程序的输出结果是()。A.1 B.3 0 C.1-2 D.死循环1 0 9.若有以下定义,则说法错误的是()。i n t a=1 0 0,*p=&a;A.声明变量p,其中*表示p是一个指针变量B.变量p 经初始化,获得变量a 的地址C.变量p只可以指向一个整形变量D.变量p的值为1 0 01 1 0 .下面关于数组的初始化正确的是()。A.c h ar s t r =b ,c B.c h ar s t r 2 =、a ,b ,c C.c h ar s t r 2 3 =a b ,e,d ,e
25、,f D.c h ar s t r =a ,b ,c 1 1 1 .若已定义:i n t a =0,1,2,3,4,5,6,7,8,9,*P=a,i:其中0 W i a+&c d)?+d:a b 的 值 为()。A)9 B)6 0 8 D)01 3 4、下面有关重载函数的说法中正确的是()。A)重载函数必须具有不同的返回值类型。B)重载函数形参个数必须不同。C)重载函数必须有不同的形参列表。D)重载函数名可以不同。1 3 5、C+语言的跳转语句中,对于b re a k 和 c o n ti n ue 说法正确的是()。A)b re a k 语句只应用于循环体中。B)c o n ti n ue
26、语句只应用于循环体中。C)b re a k 是无条件跳转语句,c o n ti n ue 不是。D)b re a k 和 c o n ti n ue 的跳转范围不够明确,容易产生问题。1 3 6、l o n g i n t 的字节数是()。A)4 B)1 C)0 D)81 3 7、下列非法的字符常量是(A)B)C)a D)A 二、填空:1 .C+语言的头文件与源程序文件扩展名分别是()和()。2 .在 C+程序中使用基本输入与输出流时需要包含的头文件名是()o3 .在 C+语言中,惟一的一个三目运算运算符是()。4 .C+中当一个函数无返回值时,则函数的类型是()。5.一个类中可以有()个构造
27、函数,只 能 有()个析构函数。6.一般情况下,按照面向对象的要求,把类中的数据成员(属性)定义为()权限,而把成员函数(方法)定 义 为()权限.7.在定义类的对象时,C+程序将自动调用该对象的()函数初始化对象自身.在撤销类的对象时,C+程序将自动调用该对象的()函数.8.类继承中,缺省的继承方式是().9.在C+语言中,用转义字符序列()或操纵符()表示输出一个换行符。10.表达式a=a+l表示成增量表达式为().11.当不需要函数返回任何值时,则应把该函数类型定义为()。12.用于输出表达式值的标准输出流对象是()。,用于从键盘上为变量输入值的标准输人流时象是()o13、变量分为全局和
28、局部两种,()。变量没有赋初值时,其值是不确定的。14、假定类AB中有一个公用属性的静态数据成员b b,在类外不通过对象名访问该成员b b的写法为().15、类的成员分为 和。16、一个 和 的关系,正如基本数据类型与该类型的变量一样,如in t x;。17、对一个类中的数据成员的初始化可以通过构造函数中的 实现,也可以通过构造函数中的 实现。18、类有两种用法:一种是,即生成类的对象;另 一 种 是 通 过,派生出新的类。19、C+语言提供的 机制允许一个派生类继承多个基类,即使这些基类是相互无关的。20、声 明 虚 函 数 的 方 法 是 在 基 类 中 的 成 员 函 数 原 型 前 加
29、 上 关 键 字。21、如果一个类中有一个或多个纯虚函数,则 这 个 类 称 为。22、静态数据成员在定义或说明时,前 面 要 加 上 关 键 字。23、如果成员函数不需要访问类的 成员,则可以把它声明为静态成员函数。24、友元可以是,也可以是。25、若需要把一个函数“void fu n();定义为一个类A的友元函数,则应在类A的定义中加入一条语句:。26、运 算 符 函 数 中 的 关 键 字 是,它和 一起组成该运算符函数的函数名。27、类中运算符重载一般采用两种形式:和 o28、面向对象程序设计的3大机制为:、和 o 2,类的访问权限有、和 三种。29、构造函数是 被 创 建 时 自 动
30、 执 行,对 象 消 失 时 自 动 执 行 的 成 员 函 数 称 为。30、如果类A继承了类B,则类A称为,类B称为 o31、如果一个特定的类型S当且仅当它提供了类型T的行为时,则称类型S是类型T的 一32、在类定义中,将 置于虚函数的函数原型的末尾可以声明该函数为纯虚函数。33、类的静态成员分为 和。34、友元函数的声明可以放在类的 部分,也可以放在类的 部分,它们是没有区别的。35、如果说类B是类A的友元类,则类B的所有成员函数都是类A的。36、设a和b是两个整型变量,我们用a+b的形式求这两个变量的和:设c和d为浮点型变量,我们用c+d的形式求这两个变量的和。显然运算符“+”具有不同
31、的用途,这是_ 的 例 子。37、对于双目运算符,若重载为类的成员函数,有一个参数;若重载为友元函数,则有一个参数。38、当建立_ _ _ _ _ _ _ _ _ _,程序自动调用该类的构造函数。39、在C+中有二种参数传递方式:和.4 0、模板对处理数据的类型的要求不同可以分为两种类型:和。4 1、异常是通过、和 来实现的。4 2、虚函数实现了 C+的.机制,类实现了 C+的 机制。4 3、面向对象程序设计的 机制提供了重复利用程序资源的一种途径。4 4、C+语言程序设计的三种基本结构是:一 一、一、一。4 5、为了避免嵌套的条件语句i f-e l s e 的二义性,C+语言规定e l s
32、e 与 配对使用。4 6、定义函数时,在函数的类型前加上修饰词,指明将该函数定义为内联函数。4 7、有说明语句:*p;则*p+运算首先访问,然后使 的值加1。4 8、执 行 i n t *p=n e w i n t 操作,可以得到一个动态分配整型对象的4 9、有说明语句:i n t *p;则(*2+运 算 首 先 访 问,然 后 使 的值加1。5 0 .C+目标程序经 后生成扩展名为e x e 的可执行程序文件。5 1 .1 6 位计算机中整型占 个字节存储空间。5 2 .要在屏幕上显示 H e l l o ,w o r l d!”应执行语句c o ut =0|x=0)c o utz/a b
33、c d,z;e l s e c o ut,zwx y z,z;屏幕上显示的是56 .设一维整型数组d a ta -进行了初始化,则其元素个数可由操作符s i z e o f 通过表达式_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 计算出来。57 .若 一 全 局 变 量 只 允 许 本 程 序 文 件 中 的 函 数 使 用,则定义它时应加上修饰符58.设 有 i n t w 3 4 ;,pw 是 与 数 组 名 w 等价的数组指针,则 pw 应初始化为59.要使引用p r 代表变量c h a r *p;,则 p r 应初始化为。6
34、 0.在 C+中封装性、继承性和 是面向对象思想的主要特征。6 1.假 设 i n t a=l,b =2;则表达式a+b的值为。6 2.下面的程序实现输出x,y,z 三个数中的最大值,请填入正确的内容。#i n c l ud e vo i d m a i n ()i n t x=5,y=8,z=9,u,v;if u=x;e l s e u=y;if v=u;e l s e v=z;c o ut v=J,ve n d l;)6 3.C+语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取 方式。6 4.在 C+语言中,访问一个对象的成员所用的运算符是,访问
35、一个指针所指向的对象的成员所用的运算符是 o6 5.C+语言支持的两种多态性分别是编译时的多态性和 的多态性。6 6 .设有如下程序结构:c l a s s Bo x,);vo i d m a i n 0 Bo x A,B,C;该程序运行时调用 次构造函数;调 用 次析构函数。6 7 .目前,有两种重要的程序设计方法,分别是:和6 8.C+语言提供的基本控制结构可以分为3 种类型:顺序结构、一 和循环结构。6 9.函数的调用主要分为传值调用和 调用。前者的特点是7 0.函数重载时要求同名函数的 或 不同,否则无法确定是哪个函数。7 1.静态数据成员是类的所有对象中的 成员,而非静态数据成员是属
36、于_ _ _ _ _ _ _ _ _ _ _ 对象的。7 2.设 A为 te s t类的对象且赋有初值,则语句te s t B(A);表示。7 3.面向对象程序设计方法中的每个对象都具有 和 两方面的特征。7 4.”类”指的是.7 5.构造数据类型,包括数组、和类等。7 6 .C+中数据类型标识符S i g n e d C h ar,其字节数为一 范围是7 7 .在 函 数 体 内 部 定 义 的 变 量 称 为 在所有函数体外部定义的变量称为7 8 .有一数 学 表 达 式 为 2/3(f-32),要 写 成 对 应 的 C+的表达式时,正确地写法应写7 9.类的静态成员是 的成员,不是 的
37、成员,静态成员在进行引用性说明,在_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 进行定义性说明.8 0.使 用 传 统 的 结 构 化 程 序 设 计 方 法 设 计 程 序 的 步 骤 是、8 1.“封装”指的是 o8 2.可以让新类继承已定义的类的 和,这个新类称为原 来 的 类 称 为 o新 类 可 以 从 一 个 类 中 派 生,这叫,也可以从多个类中派生,称为 o8 3.指 针 类 型 变 量 用 于 存 储,在内存中它占有 存储单元。8 4 .类有三种继承方式,分别是:、。三、判断下列描述的正确性:1 、C+中标识符内的大小写字母是没有区别的。()2、C+是
38、种以编译方式实现的高级语言。()3、在 公 有 继 承 中,基 类 中 的 公 有 成 员 和 私 有 成 员 在 派 生 类 中 都 是 可 见 的。()4、在 私 有 继 承 中,基 类 中 所 有 成 员 对 派 生 类 都 是 不 可 见 的。()5、返 回 值 类 型、参 数 个 数 和 类 型 都 相 同 的 函 数 也 可 以 重 载。()6、使 用 关 键 字 c l as s 定 义 的 类 中 缺 省 的 访 问 权 限 是 私 有(p r i v at e)的。()7、类的私有成员只能被类中的成员函数访问,任何类以外的函数对它们的访问都是非法的。8、C+中使用了新的注释符
39、(),C语言中注释符(/*/)不能在C+中使用。(9、While 循环语句的循环体至少执行一次。()10、引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。()11、类封装了数据和操作。()12、在类的定义中,必须包含private public,p ro tected三种存取方式对应的部分。()13、类中的数据成员不能为指针类型。()14、析构函数可以有形参。()15、派生类至少有一个基类。()16、在 公有和保护继承方式下,派生类的对象可以对基类的保护成员进行访问。()17、全局函数和静态成员函数也能声明为虚函数。()18、在一个类的对象空间里不包含静态成员的空间。()
40、19、友元本身就是类的成员。()20、运算符重载后,原运算符的优先级和结合特性会改变。()21、一个类只能有一个对象。()22、在类中不能对所定义的数据成员进行初始化。()23、类的公有成员函数是类与外界的接口。()24、构造函数没有函数类型。()25、在 派 生 类 的 构 造 函 数 的 初 始 化 表 中 不 能 对 包 含 基 类 的 子 对 象 初 始 化。)()26、在公有和保护 继 承 方 式 下,派生类的成员可以对基类的保护成员进行访问。()27、只有类的成员函数才能声明为虚函数。()28、在一个类的对象空间里已经包含了静态成员的空间。()29、C+不允许将构造函数、析构函数和
41、虚函数声明为友元函数。()30、运算符重载后,原运算符的优先级和结合特性不会改变。()31.C+中使用了新的注释符(),C语言中注释符(/*/)不能在C+中使用。()32.数组赋初值时,初始值表中的数据项的数目可以大于或等于数组元素的个数。()33.隐含的类型转换都是保值映射,显式的类型转换都是非保值映射。()34.宏定义命令是以分号结束的。()35.While循环语句的循环体至少执行一次。()36.返回值类型、参数个数和类型都相同的函数也可以重载。()37.函数形参的作用域是该函数的函数体。()38.静态类标识符在它的作用域之外是不存在的。()39.对象成员的表示与结构变量成员表示相同,使用
42、运算符.或-。()40.某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。()41.对象数组的元素可以是不同类的对象。()42.const char*p说明了 p 是指向字符串的常量指针。()43、引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。()44、无论是私有继承还是保护继承中,基类中所有成员对派生类对象都是不可见的。)4 5、当 b r e a k 语句用在双重循环的内循环中时,它只能退出内循环到外循环中去,而不能 直 接 退 出 整 个 双 重 循 环。()4 6、Fo r 循环是只有可以确定的循环次数时才可使用,否则不能用f o r 循环。()4 7
43、、返回值类型、参数个数和参数类型都相同的函数也可以重载。()4 8、通 常 的 拷 贝 初 始 化 函 数 的 参 数 是 某 个 对 象 的 成 员 名 或 对 象 的 引 用 名。()4 9、友元函数是类的成员函数,所以可以存取或修改该类中的私有成员。()5 0、已知:类 A中-个成员函数说明如下:v o i d S e t (A&a);其 中 A&a 的含意是将a的 地 址 值 赋 给 变 量 S e t()5 1、在语句c o n s t c h a r *p t r 中,p t r 是指向字符串的常量指针。()5 2、多继承情况卜,派生类的构造函数的执行顺序取决于定义派生类时所指定的
44、各基类的顺序,而 与 派 生 类 构 造 函 数 中 所 定 义 的 成 员 初 始 化 列 表 的 各 项 顺 序 无 关。()5 3、在说明语句i n t a(15),&b=a,*p=&a;中,b的值的*P的是不相等的。()5 4、已知:i n t a(5),b(10);表达式+a+b+有二义性。()5 5、在不同类型操作数组成的表达式中,其表达式的类型一定是最高类型d o u b l e 型。()5 6、b r e a k 语句也可以用于i f 体内,它可退出i f 语句。()5 7、在一个被调用函数中,一个r e t u r n 语句可返回多个值给调用函数。()5 8、在传值调用中,要
45、求实参和形参的类型完全一致并且个数相等。()5 9、f o r 循环中,循环变量的作用域是该循环的循环体内。()6 0、所谓私有成员是指只有类中所提供的成员函数才能直接访问它们,任何类以外的函数对它们的访问都是非法的。()6 1、co n s t char *p 说明了 p是指向字符串的常量指针。()6 2、私有继承中,基类中所有成员对派生类的对象都是不可见的。()四、指出函数或程序的功能。1、t emp lat e v o id A C(Typ e&x ,Typ e&y)(Typ e a=x;y=a;)2、in t A B (in t *a,in t n)(in t x=a0;fo r (i
46、n t i=l;i n;i+)if(ai x)x=ai;r et u r n x;3.in t A B(in t *a,in t n)in t x=aO;fo r (in t i=l;i n;i+)if(ai x)x=ai;r et u r n x;4.flo at fact(in t n)flo at t=l;fo r(in t i=l;i=n;i+)t*二i;r et u r n t;)#in clu de v o id main()flo at t;in t n=1 0;co u t fact (n)en dl;)五、写出程序运行结果(每小题3分,共1 5分)1、/in clu de i
47、n t a=2,4,6,8,1 0);in t&in dex(in t i)r et u r n ai;v o id main()(in t i;in dex (3)=1 2;fo r (i=0;i 二4;i+)co u t t t in clu de v o id f(in t *m,in t n)(in t t emp;t emp=*m;*m二 n;n=t emp;)v o id main()(in t a=5,b=1 0;f(&a,b);co u t a,/,,b en dl;3、t t in clu de in t i=1 5;v o id main()(in t i;i=1 00;:
48、i=i+l;co u t I I i en dl;4#in clu de clas s t o y(p u blic:t o y(in t q,in t p)(q u an =q;p r ice=p;)in t get _q u an()(r et u r n q u an;in t get _p r ice()(r et u r n p r ice;)p r iv at e:in t q u an,p r ice;);main()(t o y o p 3 2=t o y(1 0,2 0),t o y(3 0,4 8),t o y(5 0,6 8),t o y(7 0,8 0),t o y(9
49、 0,1 6),t o y(ll,1 2 0),);in t i;fo r (i=0;i 3;i+)_co u t o p i 0.get _q u an(),”;co u t o p i 0.get _p r ice()/zn,/;co u t o p i 1.get _q u an()X,;co u t o p i 1.get _p r ice()n ;co u t z,n,z;r et u r n 0;)5、in clu de clas s ex amp le(p u blic:ex amp le(in t n)(i=n;co u t ,zC o n s t r u ct in gnIe
50、x amp le 0(co u t D es t r u ct in gn;in t get i()r et u r n i;)p r iv at e:in t i;in t s q r it(ex amp le o),r et u r n o.get _i()*o.get _i();main()(ex amp le x (1 0);co u t x.get _i()en dl;co u t s q r _it(x)en dl;r et u r n 0;6、#in clu de clas s Tes t|p r iv at e:in t x;p u blic:Tes t ()(co u t”构