《大学C期末考试题库.pdf》由会员分享,可在线阅读,更多相关《大学C期末考试题库.pdf(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、单选题:1 .能作为C+程序的基本单位是()。A.字符 B.语句 C.函数 D.源程序文件2 .程序中主函数的名字为()。A.m ai n B.M A I N C.M ai n D.任意标识符3.关于C+与 C语言的关系的描述中,()是错误的。A.C语言是C+的一个子集;B.C 语言与C+是兼容的;C.C+对 C 语言进行了一些改进;D.C+和 C语言都是面向对象的4 .可用作C+语言用户标识符的一组标识符是()。A.v oi d def i n e+W0 R D B.a3_b3 _1 2 3 YNC.f or -abc C ase D.2 a D O si z eof5 .存储以下数据,
2、占用存储字节最多的是()。A.0 B.O C.“0 D.0.06 .设 i n t a=1 2;则执行完语句a+=a*a;后,a 的值是()。A.1 2 B.1 4 4 C.1 5 6 D.2 8 87.假 设 在 程 序 中 a、b、c 均被定义成整型,L 的表达式是()。abcA.1.0/a*b*c B.l/(a*b*c)所赋的值都大于1,则下列能正确表示代数式C.1/a/b/(f l oat)c D.1.0/a/b/c8 .以下说法中正确的是()。A.C+程序总是从第一个定义的函数开始执行B.C+程序总是从m ai n 函数开始执行C.C+函数必须有返回值,否则不能使用函数D.C+程序中
3、有调用关系的所有函数必须放在同个程序文件中9 .下面有关构造函数的描述中,正确的是()。A.构造函数可以带有返回值 B.构造函数的名字与类名完全相同C.构造函数必须带有参数 D.构造函数必须定义,不能缺省1 0 .在声明类时,下面的说法正确的是()。A.可以在类的声明中给数据成员赋初值B.数据成员的数据类型可以是r eg i sterC.pr i v ate,pu bl i c,pr otected可以按任意顺序出现D.没有用pr i v ate,pu bl i c,pr otected定义的数据成员是公有成员1 1 .在下面有关析构函数特征的描述中,正确的是()oA.一个类可以有多个析构函数
4、C.析构函数不能指定返回类型1 2.构造函数是在()时被执行的。A.程序编译 B.创建对象B.析构函数与类名完全相同D.析构函数可以有一个或多个参数C.创建类 D.程序装入内存1 3.下面有关静态成员函数的描述中,正确的是()A.在静态成员函数中可以使用th i s指针B.在建立对象前,就可以为静态数据成员赋值C.静态成员函数在类外定义是,要用stati c前缀D.静态成员函数只能在类外定义1 4.下面有关友员函数的描述中,真确的说法是()A.友员函数是独立于当前类的外部函数C+程序设计试卷B.一个友员函数不可以同时定义为两个类的友员函数C.友员函数必须在类的外部进行定义D.在类的外部定义友员
5、函数时必须加上f r i en d关键字1 5.友员的作用之一是(A.提高程序的运行效率C.实现数据的隐蔽性1 6.使用派生类的主要原因是(A.提高代码的可重用性C.加强类的封装性1 7.在C+中继承方式有几中(A.1B.2C.B.D.)B.D.)3加强类的封装增加成员函数的种类提高程序的运行效率实现数据的隐藏D.4)1 8.假设已经定义好了类s t ud e n t,定义类d e r i v e d的正确写法是(现在要定义类d e r i v e d,它是从s t ud e n t私有派生的,则)A.B.C.D.c l a s sc l a s sc l a s sc l a s sd e
6、r i v e d :s t ud e n t p r i v a t e d e r i v e d :s t ud e n t p ub l i c d e r i v e d :p ub l i c s t ud e n t d e r i v e d :p r i v a t e s t ud e n t (/19.派生类的对象对它的基类成员中()是可以访问的。B.公有继承的私有成员;I).私有继承的公有成员。A.公有继承的公有成员;C.公有继承的保护成员;20.类中定义的成员默认为()访问属性。A.p ub l i cB.p r i v a t eC.p r o t e c t e
7、dD.f r i e n d21.下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选 用()合适。A.内联函数;B.重载函数;22.C+对C语言作了很多改进,下列描述中了面向对象。A.增加了一些新的运算符;C.规定函数说明必须用原型;C.递归调用;D.嵌套调用。)使得C语言发生了质变,从面向过程变成B.允许函数重载,并允许设置缺省参数;D.引进了类和对象的概念;23 .按照标识符的要求,A.连接符24.下列变量名中,(A C H I NA25.下列各种函数中,(A构造函数()符号不能组成标识符。B.下划线是合法的。b y t e-s i z eC.大小写字母D.
8、数字字符C d o ub l e D A+a)不是类的成员函数。析构函数 C友元函数 D拷贝构造函数)BB26 .下 列()是正确的语句。A;B a=17C x+yD c o ut/z n,/27.不能作为函数重载判断的依据的是()A.返回类型B.c o n s tC.参数个数D.参数类型28.通常,拷贝构造函数的参数是()A.某个对象名 B.某个对象的成员名C.某个对象的引用名 D.某个对象的指针名29.下面对静态数据成员的描述中,正确的是()A类的不同对象有不同的静态数据成员值第2页 共4 2页C+程序设计试卷B 类的每个对象都有自己的静态数据成员C静态数据成员是类的所有对象共享的数据D静
9、态数据成员不能通过类的对象调用3 0.假定AB为一个类,则执行AB x;语句时将自动调用该类的()A.有参构造函数 B.无参构造函数 C.拷贝构造函数 D.赋值构造函数3 1.C+程序从上机到得到结果的几个操作步骤依次是()。A.编译、编辑、连接、运行 B.编辑、编译、连接、运行C.编译、运行、编辑、连接 D.编辑、运行、编辑、连接3 2.假定一条定义语句为“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定义为“in t m=7;,则定义变量p的正确语句为()。A.in t p=&m;B.in
11、t*p=&m;C.in t&p=*m;D.in t*p=m;3 8 .下面的哪个保留字不能作为函数的返回类型?。A.vo id B.in t C.n e w D.l o n g3 9 .采用重载函数的目的是()。A.实现共享 B.减少空间 C.提高速度 D.使用方便,提高可读性4 0 .假定A B 为一个类,则()为该类的拷贝构造函数的原型说明。A.A B (A B x);B.A B(in t x);C.A B(A B&x);D.vo id A B(A B&x);4 1、C+对 C语言作了很多改进,下列描述中()使得C语言发生了质变,从面向过程变成了面向对象。A、增加了一些新的运算符;B、允许
12、函数重载,并允许设置缺省参数;C、规定函数说明必须用原型;D、引进了类和对象的概念;4 2、所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()。A.类 B.对象 C.函数体 D.数据块4 3、关于n e w运算符的下列描述中,()是错误的。A、它可以用来动态创建对象和对象数组;B、使用它创建的对象或对象数组可以使用运算符d e l e te 删除;C、使用它创建对象时要调用构造函数;D、使用它创建对象数组时必须指定初始值;4 4、()不是构造函数的特征。第3页 共4 2页C+程序设计试卷A、构造函数的函数名与类名相同;B、构造函数可以重载;C、构造函数可以
13、设置缺省参数;1)、构造函数必须指定类型说明。45、假定一个类的构造函数为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、加强类的封装性;
14、C、实现数据的隐藏性;D、增加成员函数的种类;49、在 C+中,关于下列设置缺省参数值的描述中,()是正确的。A、不允许设置缺省参数值;B、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;C、只能在函数的定义性声明中指定参数的缺省值;D、设置缺省参数值时,必须全部都设置;50、关于d e l e t e 运算符的下列描述中,()是错误的。A、它必须用于n e w 返回的指针;B、使用它删除对象时要调用析构函数;C、对一个指针可以使用多次该运算符;D、指针名前只有一对方括号符号,不管所删除数组的维数。51、c o n st i n t *p 说明不能修改()。A、p指针;B、p 指针指向
15、的变量;C、p 指针指向的数据类型;I)、上述A、B、C三者;52、当需要打开A盘上的以x x k.d a t 文件用于输入时,则定义文件流对象的语句为()。A、f st r e a m f i n(A:x x k.d a t”,1)B、i f st r e a r n f i n(A:x x k.d a t ,i o s:n o c r e a t e)C、o f st r e a m f i n(A:x x k.d a t )D、i f st r e a m f i n(A:x x k.d a t ,i o s:a p p)53、派生类的对象对它的基类成员中()是可以访问的。A、公有继承的
16、公有成员;B、公有继承的私有成员;C、公有继承的保护成员;D、私有继承的公有成员;54假定一个字符串的长度为n,则定义存储该字符串的字符数组的长度至少为A、n-1B、nC、n+1 D、n+255、在 i n t a=3;*p=&a;中,*p 的 值 是(A、变量a的地址值 B、无意义56、下列常量中,()不是字符常量。C、变量p的地址值D、3A、005 B、n,C、c 57 在 i n t a=3,*p=&a;中,*p 的 值 是(A)变量a的地址值 B)无意义D、“a”)。C)变量p的地址值D)358、以下4 个选项中,不能看作一条语句的是()。A)i f(b=0)m=l;n=2;B)a=0
17、,b=0,c=0;C)i f(a 0);D);59、()不是构造函数的特征。A)构造函数的函数名与类名相同B)构造函数可以重载第4页 共4 2页C+程序设计试卷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”的逻辑表达式是()oA)Kxl&x10 C)!(x=10)D)xl|x1063、关于
18、成员函数特征的下列描述中,()是错误的。A)成员函数一定是内联函数C)成员函数可以设置缺省参数值64、有以下程序B)成员函数可以重载D)成员函数可以是静态的ttinclude void main()int i,s=0;for(i=l;i ()能正确输出结果:C+。A)char s=C+”;cout sendl;B)char s 3=Z,C+Z,;co u t s e n d l;C)char s 3=C 0 ;c o u t s en d l;D)char s 3=C;c out 有以下程序C)8D)9ttinclude void main()char*p10=abc,aabdfg,dcdbe
19、,abbd,cd;cou t p 3 en d l;执行后输出结果是A)dcdbe B)abbd C)abc D)abb69、下列静态数据成员的特性中,()是错误的。A)说明静态数据成员时前边要加修饰符staticB)静态数据成员要在类体外进行初始化C)静态数据成员不是所有对象所共用的第 5 页 共 4 2 页C+程序设计试卷D)引用静态数据成员时,要在其名称前加 类名 和作用域运算符70、有以下语句s t r u c t S i n t g;c h a r h;T;则下面叙述中不正确的是()A)S是结构体名 B)该结构体包含2个成员C)S是 s t r u c t 类型的变量 D)T是 s
20、t r u c t S 类型的变量71、派生类的对象对它的基类成员中()是可以访问的。A)公有继承的公有成员B)公有继承的私有成员C)公有继承的保护成员D)私有继承的公有成员72、实现运行时的多态性用。A、重载函数B、构造函数C、析构函数D、虚函数73 .下列变量名中,()是合法的。A.C H I N A B.b yt e-s i ze C.d o u b l e D.A+a74 .在 i n t b 3 =l,3,2,4,5,6,0 ;b 2 2 的 值 是(7A.0 B.2 C.5 D.675 .下列各运算符中,()优先级最高。A.+(双目)B.*(单目)C.=D.*=76.下列f o r
21、 循环的次数为()。f o r(i n t i(0),x=0;!x&i p=5;C.A.*p=5;D.*A 1.p=5;9 9.关于ne w 运算符的下列描述中,()是错的。A.它可以用来动态创建对象利对象数组;B.使用它创建的对象或对象数组可以使用运算符d e le t e 删除;C.使用它创建对象时要调用构造函数;D.使用它创建对象数组时必须指定初始值。1 0 0 .派生类的构造函数的成员初始化列中,不能包含()。A.基类的构造函数;B.派生类中子对象的初始化;C.基类的子对象初始化;D.派生类中一般数据成员的初始化1 0 1 .派生类的对象对它的基类成员中()是可以访问的。A.公有继承的
22、公有成员;B.公有继承的私有成员;C.公有继承的保护成员;D.私有继承的公有成员。1 0 2 .C+类体系中,不能被派生类继承的有()A.构造函数 B.虚函数 C.静态成员函数 D.赋值操作函数1 0 3.下面标识符中正确的是()。A._a b c B.3a b C.i nt D.+a b1 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。
23、则条件表达式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 le (1)表示无限循环1 0 8.有如下程序:i nt x=3;d o X-=2;c o u t x;第 8 页 共 4 2 页C+程序设计试卷 w h i le(!(一x);执行这个程序的输出结果是()。A.1 B.30 C.1-2 D.死循环1 0 9.若有以下定义,则说法错误的是()。i nt a=1 0 0,*p=&a ;A.声明变量p,其中*表示p是一个指
24、针变量B.变量p 经初始化,获得变量a的地址C.变量p只可以指向一个整形变量D.变量p的值为1 0 01 1 0 .F 面关于数组的初始化正确的是()。A.c h a r st r =b ,c B.c h a r st r 2 =a ,b ,c C.c h a r st r 2 3=a b ,e ,d ,e ,f D.c h a r st r =a ,b ,c 1 1 1 .若已定义:i nt 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)0134、下面有关重载函数的说法中正确的是()。A)重
25、载函数必须具有不同的返回值类型。B)重载函数形参个数必须不同。C)重载函数必须有不同的形参列表。D)重载函数名可以不同。135、C+语言的跳转语句中,对于b r e a k和 c o nt i nu e 说法正确的是()。A)b r e a k语句只应用于循环体中。B)c o nt i nu e 语句只应用于循环体中。C)b r e a k是无条件跳转语句,c o nt i nu e 不是。D)b r e a k和 c o nt i nu e 的跳转范围不够明确,容易产生问题。136、l o ng i nt 的字节数是()。A)4 B)1 C)0 D)8137、下列非法的字符常量是(A)B)C
26、)a D)A二、填空:1.C+语言的头文件与源程序文件扩展名分别是()和()o2.在 C+程序中使用基本输入与输出流时需要包含的头文件名是()o3.在 C+语言中,惟一的一个三目运算运算符是(4.C+中当一个函数无返回值时,则函数的类型是()。5.一个类中可以有()个构造函数,只 能 有()个析构函数。6.一般情况下,按照面向对象的要求,把类中的数据成员(属性)定义为()权限,而把成员函数(方法)定 义 为()权限.7 .在定义类的对象时,C+程序将自动调用该对象的()函数初始化对象自身.在撤销类的对象时,C+程序将自动调用该对象的()函数.8 .类继承中,缺省的继承方式是().第1 1页 共
27、4 2页C+程序设计试卷9.在 C+语言中,用转义字符序列()或操纵符()表示输出一个换行符。1 0.表达式a=a+l 表示成增量表达式为()。1 1 .当不需要函数返回任何值时,则应把该函数类型定义为()。1 2 .用于输出表达式值的标准输出流对象是()。,用于从键盘上为变量输人值的标准输人流对象是()。1 3、变量分为全局和局部两种,()。变量没有赋初值时,其值是不确定的。1 4、假定类A B 中有一个公用属性的静态数据成员b b,在类外不通过对象名访问该成员b b 的写法为()。1 5、类的成员分为 和。1 6、一个 和 的关系,正如基本数据类型与该类型的变量一样,如 i n t x;。
28、1 7、对一个类中的数据成员的初始化可以通过构造函数中的 实现,也可以通过构造函数中的 实现。1 8、类有两种用法:一种是,即生成类的对象;另 一 种 是 通 过,派生出新的类。1 9、C+语言提供的 机制允许一个派生类继承多个基类,即使这些基类是相互无关的。2 0、声明虚函数的方法是在基类中的成员函数原型前加上关键字 o2 1、如果一个类中有一个或多个纯虚函数,则这个类称为 o2 2、静态数据成员在定义或说明时,前 面 要 加 上 关 键 字。2 3、如果成员函数不需要访问类的 成员,则可以把它声明为静态成员函数。2 4、友元可以是,也可以是。2 5、若需要把一个函数“v o i d f u
29、 n();定义为一个类A的友元函数,则应在类A的定义中加入一条语句:2 6、运 算 符 函 数 中 的 关 键 字 是,它和 一起组成该运算符函数的函数名。2 7、类中运算符重载一般采用两种形式:和。2 8、面向对象程序设计的3大机制为:、和。2、类的访问权限有、和_ _ _ _ _ _ _ _ 三种。2 9、构造函数是 被创建时自动执行,对 象 消 失 时 自 动 执 行 的 成 员 函 数 称 为。3 0、如果类A继承了类B,则类A称为,类 B称为 o3 1、如果一个特定的类型S当且仅当它提供了类型T的行为时,则称类型S是类型T的3 2、在类定义中,将 置于虚函数的函数原型的末尾可以声明该
30、函数为纯虚函数。3 3、类的静态成员分为 和。3 4、友元函数的声明可以放在类的 部分,也可以放在类的 部分,它们是没有区别的。3 5、如果说类B是类A的友元类,则类B的所有成员函数都是类A的。3 6、设 a和 b 是两个整型变量,我们用a+b 的形式求这两个变量的和;设 c 和 d为浮点型变量,我们用c+d 的形式求这两个变量的和。显然运算符“+”具有不同的用途,这是_ 的 例子。3 7、对于双目运算符,若重载为类的成员函数,有一个参数;若重载为友元函数,则有一个参数。3 8、当建立,程序自动调用该类的构造函数。3 9、在 C+中有二种参数传递方式:和。第1 2页 共4 2页C+程序设计试卷
31、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 e 与 配对使用。4 6、定义函数时,在函数的类型前加上修饰词,指明将该函数定义为内联函数。4 7、有说明语句:*p;则*p+运 算 首 先 访 问,然后使 的值加1。4 8、执 行 i n t *p=n e w i n t 操作,可以得到一
32、个动态分配整型对象的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 u t =0 1|x =0)c o u t X a b c d ;e l s e c o u t w x yz:屏幕上显示的是5 6 .设一维整型数组d a t a 已进行了初始化,则其元素个数可由操作符s i ze o f 通过表达式_ _ _ _ _ _ _ _ _ _ _ _ _ _
33、_ _ _ _ _ _ _ _ _ _ _ _ _ 计算出来o5 7 .若 一 全 局 变 量 只 允 许 本 程 序 文 件 中 的 函 数 使 用,则定义它时应加上修饰符5 8.设 有 i n t w 3 4 ;,p w是 与 数 组 名 w 等价的数组指针,则 p w应初始化为5 9 .要使引用pr 代表变量c h a r *p;,则 pr 应初始化为。6 0 .在 C+中封装性、继承性和 是面向对象思想的主要特征。6 1 .假 设 i n t a=L b=2;则表达式a+b的值为 62.下面的程序实现输出x,y,z 三个数中的最大值,请填入正确的内容。#i n c lu d e v o
34、 i d m a i n ()i n t x=5,y=8,z=9,u,v;if u=x;e ls e u=y;if v=u;e ls e v=z;c o u t,v e n d l;63.C+语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取 方式。64.在 C+语言中,访问一个对象的成员所用的运算符是,访问一个指针所指向 的 对 象 的 成 员 所 用 的 运 算 符 是。65.C+语言支持的两种多态性分别是编译时的多态性和 的多态性。66.设有如下程序结构:c la s s Bo x第1 3页 共4 2页C+程序设计试卷,;v o i d m a
35、i n ()Bo x A,B,C;该程序运行时调用 次构造函数;调 用 次析构函数。67.目前,有两种重要的程序设计方法,分别是:和68.C+语言提供的基本控制结构可以分为3 种类型:顺序结构、一 和循环结构。69.函数的调用主要分为传值调用和 调用。前者的特点是70.函数重载时要求同名函数的 或 不同,否则无法确定是哪个函数。71.静 态 数 据 成 员 是 类 的 所 有 对 象 中 的 成员,而非静态数据成员是属于_ _ _ _ _ _ _ _ _ _ _ 对象的。72.设 A 为 t e s t 类的对象且赋有初值,则语句t e s t B(A);表示。73.面向对象程序设计方法中的每
36、个对象都具 有 和 两方面的特征。74.“类”指的是 p u bl i c p r o t ect ed三种存取方式对应的部分。()1 3、类中的数据成员不能为指针类型。()1 4、析构函数可以有形参。()1 5、派生类至少有一个基类。()1 6、在 公有和保护继承方式下,派生类的对象可以对基类的保护成员进行访问。()1 7、全局函数和静态成员函数也能声明为虚函数。()1 8、在一个类的对象空间里不包含静态成员的空间。()1 9、友元本身就是类的成员。()2 0、运算符重载后,原运算符的优先级和结合特性会改变。()2 1、一个类只能有一个对象。()2 2、在类中不能对所定义的数据成员进行初始化
37、。()2 3、类的公有成员函数是类与外界的接口。()2 4、构造函数没有函数类型。()2 5、在 派 生 类 的 构 造 函 数 的 初 始 化 表 中 不 能 对 包 含 基 类 的 子 对 象 初 始 化。()2 6、在公有和保护 继 承 方 式 下,派生类的成员可以对基类的保护成员进行访问。()2 7、只有类的成员函数才能声明为虚函数。()2 8、在一个类的对象空间里已经包含了静态成员的空间。()2 9、C+不允许将构造函数、析构函数和虚函数声明为友元函数。()3 0、运算符重载后,原运算符的优先级和结合特性不会改变。()3 1 .C+中使用了新的注释符(),C语言中注释符(/*/)不能
38、在C+中使用。()3 2 .数组赋初值时,初始值表中的数据项的数目可以大于或等于数组元素的个数。()3 3 .隐含的类型转换都是保值映射,显式的类型转换都是非保值映射。()3 4 .宏定义命令是以分号结束的。()3 5 .Wh i l e循环语句的循环体至少执行一次。()3 6 .返回值类型、参数个数和类型都相同的函数也可以重载。()3 7 .函数形参的作用域是该函数的函数体。()3 8 .静态类标识符在它的作用域之外是不存在的。()3 9 .对象成员的表示与结构变量成员表示相同,使用运算符.或-。()4 0 .某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。()4 1 .对象数组
39、的元素可以是不同类的对象。()4 2 .co n st c ha r*p 说明了 p是指向字符串的常量指针。()4 3 、引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。()4 4 、无论是私有继承还是保护继承中,基类中所有成员对派生类对象都是不可见的。第1 5页 共4 2页C+程序设计试卷()4 5、当 b re a k 语句用在双重循环的内循环中时,它只能退出内循环到外循环中去,而不能 直 接 退 出 整 个 双 重 循 环。()4 6、F o r循环是只有可以确定的循环次数时才可使用,否则不能用fo r循环。()4 7、返回值类型、参数个数和参数类型都相同的函数也可
40、以重载。()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 st c ha r*p t r中,p t r是指向字符串的常量指针。()5 2、多继承情况卜,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序,而 与 派 生 类 构 造 函 数 中 所
41、定 义 的 成 员 初 始 化 列 表 的 各 项 顺 序 无 关。()5 3、在说明语句i n t a(1 5),&b=a,*p=&a;中,b的值的*P 的是不相等的。()5 4、已知:i n t a(5),b(1 0);表达式+a+b+有二义性。()5 5、在不同类型操作数组成的表达式中,其表达式的类型一定是最高类型d o u b l e 型。()5 6、b re a k 语句也可以用于i f体内,它可退出i f语句。()5 7、在一个被调用函数中,一个re t u rn 语句可返回多个值给调用函数。()5 8、在传值调用中,要求实参和形参的类型完全一致并且个数相等。()5 9、fo r循
42、环中,循环变量的作用域是该循环的循环体内。()6 0、所谓私有成员是指只有类中所提供的成员函数才能直接访问它们,任何类以外的函数对它们的访问都是非法的。()6 1、c o n st c ha r*p 说明了 p是指向字符串的常量指针。()6 2、私有继承中,基类中所有成员对派生类的对象都是不可见的。()四、指出函数或程序的功能。1,t e m p l a t e v o i d A C(T y p e&x,T y p e&y )T y p e a=x;y=a ;2、i n t A B(i n t *a ,i n t n)i n t x=a 0 ;fo r(i n t i=l;i n;i+)i
43、f(a i x)x=a i ;re t u rn x;3.i n t A B(i n t *a ,i n t n)第1 6页 共4 2页C+程序设计试卷i n t x=a O;fo r(i n t i=l;i n;i+)i f(a i x)x=a i ;re t u rn x;4.fl o a t fa c t(i n t n)fl o a t t=l;fo r(i n t i=l;i =n;i+)t*二i;re t u rn t;)#i n c l u d e v o i d m a i n()fl o a t t;i n t n=1 0;c o u t fa c t (n)e n d l;
44、)五、写出程序运行结果(每小题3分,共1 5分)1、#i n c l u d e i n t a =2,4,6,8,1 0);i n t&i n d e x(i n t i)re t u rn a i ;v o i d m a i n()(i n t i;i n d e x (3)=1 2;fo r(i=0;i =4;i+)c o u t a i ,z)2、t t i n c l u d e v o i d f(i n t i n t n)i n t t e m p;t e m p=*m;*m二 n;n=t e m p;)v o i d m a i n()(i n t a=5,b=1 0;f(
45、&a,b);c o u t a z/,b e n d l;3、t t i n c l u d e i n t i=1 5;v o i d m a i n()(i n t i;i=1 0 0;第1 7页 共4 2页C+程序设计试卷c o u t !I i e nd l;)4、inc lu d e c lass t o y(p u b lic:t o y (int q,int p)(qu an=q;p ric e =p;int g e t qu an()(re t u rn qu an;int g e t _p ric e()(re t u rn p ric e;)p riv at e:int q
46、u an,p ric e;);main()(t o y o p 3 2=t o y (10,20),t o y(3 0,4 8),t o y (5 0,68),t o y (70,80),t o y (90,16),t o y (11,120),;int i;f o r(i=0;i3;i+)c o u t o p i 0.g e t _qu an(),;c o u t o p i 0.g e t _p ric e()$n;c o u t o p i 1.g e t qu an(),;c o u t o p i 1.g e t p ric e()n;)c o u t “n;re t u rn 0
47、;)5、inc lu d e c lass e x amp le(p u b lic:e x amp le(int n)(i=n;c o u t,zC o nst ru c t ing n ;Ie x amp le 0(c o u t ,D e st ru c t ing n,/;int g e t i()re t u rn i;)p riv at e:int i;);第1 8页 共4 2页C+程序设计试卷int sqr_it(e x amp le o),re t u rn o.g e t _i()*o.g e t _i();main()(e x amp le x (10);c o u t x
48、.g e t _i 0 e nd l;c o u t sqr_it(x)e nd l;re t u rn 0;)6、inc lu d e c lass T e st(p riv at e:int x;p u b lic:T e st ()(c o u t X”构造函数被执行”e nd l;x=0;)T e st。c o u t 析构函数被执行”e nd l;v o id p rint ()c o u t x=x e nd l;);v o id main()(T e st o b jl,o b j2;o b jl.p rint ();o b j2.p rint ();)7、inc lu d e
49、c lass A(p u b lic:A(int *s)c o u t se nd l;);c lass B:p u b lic A(p u b lic:B(c har*sl,c har*s2):A(sl)(c o u t s2e nd l;);c lass C:p u b lic A第1 9页 共4 2页C+程序设计试卷p u b lic:C(c har*sl,c har*s2):A(sl)(c o u t s2e nd l;);c lass D:p u b lic B,C(p u b lic:D(c har*sl,c har*s2,c har*s3,c har*s4):B(sl,s2),C
50、(s3,s4)(c o u t s4 e nd l;);v o id main()D d (c lass A”,“c lass B,“c lass C,“c lass D );)8、#inc lu d e c lass B ase(p u b lic:v irt u al v o id d isp()c o u t b ase c lass”e nd l;);c lass D e riv e l:p u b lic B ase(p u b lic:v o id d isp O c o u t w d e riv e l c lass e nd l;;c lass D e riv e 2:p u