收藏 分销(赏)

大学C++期末考试题库及答案.pdf

上传人:天**** 文档编号:1975662 上传时间:2024-05-13 格式:PDF 页数:29 大小:204KB
下载 相关 举报
大学C++期末考试题库及答案.pdf_第1页
第1页 / 共29页
大学C++期末考试题库及答案.pdf_第2页
第2页 / 共29页
大学C++期末考试题库及答案.pdf_第3页
第3页 / 共29页
大学C++期末考试题库及答案.pdf_第4页
第4页 / 共29页
大学C++期末考试题库及答案.pdf_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、第 1 页 共 29 页20122012 年大学年大学 C+C+期末考试题库期末考试题库一、单选题:1.能作为 C+程序的基本单位是(C)。A.字符 B.语句 C.函数 D.源程序文件2.程序中主函数的名字为(A)。A.main B.MAIN C.Main D.任意标识符3.关于 C+与 C 语言的关系的描述中,(D)是错误的。A.C 语言是 C+的一个子集;B.C 语言与 C+是兼容的;C.C+对 C 语言进行了一些改进;D.C+和 C 语言都是面向对象的4.可用作 C+语言用户标识符的一组标识符是(B B)。A.void define +WORD B.a3_b3 _123 YNC.for

2、-abc Case D.2a DO sizeof5.存储以下数据,占用存储字节最多的是(D)。A.0 B.0 C.“0”D.0.06.设 int a=12;则执行完语句 a+=a*a;后,a 的值是(C)。A.12 B.144 C.156 D.2887.假设在程序中 a、b、c 均被定义成整型,所赋的值都大于 1,则下列能正确表示代数式的表达式是(D)。abc1A.1.0/a*b*c B.1/(a*b*c)C.1/a/b/(float)c D.1.0/a/b/c8.以下说法中正确的是(B)。A.C+程序总是从第一个定义的函数开始执行 B.C+程序总是从 main 函数开始执行 C.C+函数必须

3、有返回值,否则不能使用函数 D.C+程序中有调用关系的所有函数必须放在同一个程序文件中9.下面有关构造函数的描述中,正确的是(B)。A.构造函数可以带有返回值 B.构造函数的名字与类名完全相同 C.构造函数必须带有参数 D.构造函数必须定义,不能缺省10.10.在声明类时,下面的说法正确的是()。A.可以在类的声明中给数据成员赋初值B.数据成员的数据类型可以是 registerC.private,public,protected 可以按任意顺序出现D.没有用 private,public,protected 定义的数据成员是公有成员11.在下面有关析构函数特征的描述中,正确的是(A)。A.一个

4、类可以有多个析构函数 B.析构函数与类名完全相同 C.析构函数不能指定返回类型 D.析构函数可以有一个或多个参数12.构造函数是在(B)时被执行的。A.程序编译 B.创建对象 C.创建类 D.程序装入内存13.下面有关静态成员函数的描述中,正确的是(B )A.在静态成员函数中可以使用 this 指针 B.在建立对象前,就可以为静态数据成员赋值 C.静态成员函数在类外定义是,要用 static 前缀 D.静态成员函数只能在类外定义C+程序设计试卷 第 2 页 共 29 页14.下面有关友员函数的描述中,真确的说法是(A )A.友员函数是独立于当前类的外部函数 B.一个友员函数不可以同时定义为两个

5、类的友员函数 C.友员函数必须在类的外部进行定义 D.在类的外部定义友员函数时必须加上 friend 关键字15.友员的作用之一是(A )A.提高程序的运行效率 B.加强类的封装 C.实现数据的隐蔽性 D.增加成员函数的种类16.使用派生类的主要原因是(A )A.提高代码的可重用性 B.提高程序的运行效率 C.加强类的封装性 D.实现数据的隐藏17.在 C+中继承方式有几中(C )A.1 B.2 C.3 D.418.假设已经定义好了类 student,现在要定义类 derived,它是从 student 私有派生的,则定义类 derived 的正确写法是(D )A.class derived:

6、student private /.B.class derived:student public /.C.class derived:public student /.D.class derived:private student /.19.派生类的对象对它的基类成员中(C)是可以访问的。A.公有继承的公有成员;B.公有继承的私有成员;C.公有继承的保护成员;D.私有继承的公有成员。20.类中定义的成员默认为(A)访问属性。A.public B.private C.protected D.friend21.下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用(A

7、)合适。A.内联函数;B.重载函数;C.递归调用;D.嵌套调用。22.C+对 C 语言作了很多改进,下列描述中(D)使得 C 语言发生了质变,从面向过程变成了面向对象。A.增加了一些新的运算符;B.允许函数重载,并允许设置缺省参数;C.规定函数说明必须用原型;D.引进了类和对象的概念;23.按照标识符的要求,(A)符号不能组成标识符。A.连接符 B.下划线 C.大小写字母 D.数字字符24.下列变量名中,(A)是合法的。A CHINA B byte-size C double D A+a25.下列各种函数中,(C)不是类的成员函数。A 构造函数 B 析构函数 C 友元函数 D 拷贝构造函数26

8、.下列(A )是正确的语句。A ;B a=17 C x+y D cout0);D);59、(D)不是构造函数的特征。A)构造函数的函数名与类名相同 B)构造函数可以重载C)构造函数可以设置缺省参数 D)构造函数必须指定类型说明60、以下程序段中与语句 k=ab?1:0;功能等价的是(D)。A)if(ab)k=1;B)if(ab)k=0C)if(ab)k=1;D)if(ab)k=0;else k=0;else k=1;61、下列常量中,(D)不是字符常量。A)005 B)n C)c D)a62、表示“x 大于 1 而小于 10”的逻辑表达式是(B)。A)1x1&x10 C)!(x=10)D)x1

9、|x1063、关于成员函数特征的下列描述中,(A)是错误的。A)成员函数一定是内联函数 B)成员函数可以重载C)成员函数可以设置缺省参数值 D)成员函数可以是静态的64、有以下程序#include void main()int i,s=0;for(i=1;i10;i+=2)s+=i;couts;程序执行后的输出结果是(C)。A)自然数 19 的累加和 B)自然数 110 的累加和C)自然数 19 中的奇数之和 D)自然数 110 中的偶数之和65、设有定义:int n=0,*p=&n,*q=&p;则以下选项中,正确的赋值语句是(D)。A)p=1;B)*q=2;C)q=p;D)*p=5;66、(

10、A)能正确输出结果:C+。A)char s=C+;coutsendl;B)char s3=C+;coutsendl;C)char s3=C,+,+,0;coutsendl;D)char s3=C,+,+;coutsendl;67、有以下程序段int a10=1,2,3,4,5,6,7,8,9,10,*p=a,b;b=p5;b 中的值是(B)。A)5 B)6 C)8 D)968、有以下程序#include void main()char*p10=abc,aabdfg,dcdbe,abbd,cd;coutp3endl;执行后输出结果是 BC+程序设计试卷 第 6 页 共 29 页A)dcdbe B

11、)abbd C)abc D)abb69、下列静态数据成员的特性中,(C)是错误的。A)说明静态数据成员时前边要加修饰符 staticB)静态数据成员要在类体外进行初始化C)静态数据成员不是所有对象所共用的D)引用静态数据成员时,要在其名称前加和作用域运算符70、有以下语句struct S int g;char h;T;则下面叙述中不正确的是(C)。A)S 是结构体名 B)该结构体包含 2 个成员C)S 是 struct 类型的变量 D)T 是 struct S 类型的变量71、派生类的对象对它的基类成员中(A)是可以访问的。A)公有继承的公有成员B)公有继承的私有成员C)公有继承的保护成员D)

12、私有继承的公有成员72、实现运行时的多态性用。DA、重载函数 B、构造函数 C、析构函数 D、虚函数73下列变量名中,(A )是合法的。A.CHINA B.byte-size C.double D.A+a74.在 int b3=1,3,2,4,5,6,0;b22的值是(D)。A.0 B.2 C.5 D.675.下列各运算符中,(B)优先级最高。A.+(双目)B.*(单目)C.=D.*=76.下列 for 循环的次数为(B)。for(int i(0),x=0;!x&i=5;i+)A.5 B.6 C.1 D.无限77.下述关于 break 语句的描述中,(C)是正确的。A.break 语句可用于循

13、环体内,它将退出该重循环。B.break 语句可用于开关语句中,它将退出开关语句。C.break 语句可用于 if 体内,它将退出 if 语句。D.break 语句在一个循环体内可以出现多次。78.在一个被调用函数中,关于 return 语句使用的描述,(D )是错误的。A.被调用函数中可以不用 return 语句。B.被调用函数中可以使用多个 return 语句。C.被调用函数中,如果有返回值,就一定要有 return 语句。D.被调用函数中,一个 return 语句可返回多个值给调用函数。79.在 C+中,关于下列设置参数默认的描述中,(C)是正确的。A.不允许设置参数的默认值。B.设置参

14、数默认值只能在定义函数时设置。C.设置参数默认值时,应该是先设置右边的再设置左边的。D.设置参数默认值时,应该全部参数都设置。C+程序设计试卷 第 7 页 共 29 页80.下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用(A)合适。A.内联函数 B.重载函数 C.递归调用 D.嵌套调用 81.下列的各类函数中,(C)不是类的成员函数。A.构造函数 B.析构函数 C.友元函数 D.拷贝初始化构造函数 82.(D)不是构造函数的特征A.构造函数的函数名与类名相同 B.构造函数可以重载 C.构造函数可以设置缺省参数 D.构造函数必须指定类型说明 83.f1(in

15、t)是类 A 的公有成员函数,p 是指向成员函数 f1()的指针,采用(C)是正确的。A.p=f1 B.p=A:f1 C.p=A:f1()D.p=f1()84.下列定义中,(A)是定义指向数组的指针 p。A.int*p5 B.int(*p)5 C.(int*)p5 D.int*p 85循环 while(int i=0)i-;执行次数是(A )。A.0 B.1 C.5 D.无限86.设 int x;,则经过(C )后,语句*px=0;可将 x 值置为 0。A.int*px;B.int const*px=&x;C.int*const px=&x;D.const int*px=&x;87.设 voi

16、d f1(int*m,long&n);int a;long b;则以下调用合法的是(B )。A.f1(a,b);B.f1(&a,b);C.f1(a,&b);D.f1(&a,&b)88.关于对象概念的描述中,(A)是错误的。A.对象就是 C 语言中的结构变量;B.对象代表着正在创建的系统中的一个实体;C.对象是一个状态和操作(或方法)的封装体;D.对象之间的信息传递是通过消息进行的;89.在下列 double 型常量表示中,(A )是错误的。A.E15;B.35;C.3E5;D.3E-590.下列给字符数组进行初始化中,(A )是正确的。A.char s1=12345abcd;B.char s2

17、3=xyz;C.char s33=a,x,y;D.char s423=xyz,mnp;91.对于 int*pa5;的描述,(D)是正确的。A.pa 是一个指向数组的指针,所指向的数组是 5 个 int 型元素;B.pa 是一个指向某个数组中第 5 个元素的指针,该元素是 int 型变量;C.pa5表示某个数组的第 5 个元素的值;D.pa 是一个具有 5 个元素的指针数组,每个元素是一个 int 型指针;92.下列各运算符中,(A)优先级最低。A?:B.|C.|D.!=93.下列 for 循环的循环体执行次数为(D)。for(int i(0),j(10);i=j=4;i+,j-)A.0;B.1

18、;C.4;D.无限;94.下述关于开关语句的描述中,(A)是正确的。A.开关语句中 default 子句可以没有,也可以有一个;B.开关语句中每个语句序列中必须有 break 语句;C+程序设计试卷 第 8 页 共 29 页C.开关语句中 default 子句只能放在最后;D.开关语句中 case 子句后面的表达式可以是整形表达式。95.下列存储类标识符中,(C)的可见性与存在性不一值。A.外部类;B.自动类;C.内部静态类;D.寄存器类。96.下述静态数据成员的特征中,(D)是错误的。A.说明静态数据成员时前边要加修饰符 static;B.静态数据成员要在类体外进行初始化;C.引用静态数据成

19、员时,要在静态数据成员名前加和作用域运算符;D.静态数据成员不是所有对象所共用的。97.(A)是析构函数的特征。A.一个类中只能定义一个析构函数;B.析构函数与类名不同;C.析构函数的定义只能在类体内;D.析构函数可以有各个或多个参数。;98.已知:p 是一个指向类 A 数据成员 m 的指针,A1 是类 A 的一个对象。如果要给 m 赋值为 5,(C)是正确的。A.A1.p=5;B.A1-p=5;C.A.*p=5;D.*A1.p=5;99.99.关于关于 newnew 运算符的下列描述中,运算符的下列描述中,(D D )是错的。是错的。A.A.它可以用来动态创建对象和对象数组;它可以用来动态创

20、建对象和对象数组;B.B.使用它创建的对象或对象数组可以使用运算符使用它创建的对象或对象数组可以使用运算符 deletedelete 删除删除;C.C.使用它创建对象时要调用构造函数;使用它创建对象时要调用构造函数;D.D.使用它创建对象数组时必须指定初始值。使用它创建对象数组时必须指定初始值。100.派生类的构造函数的成员初始化列中,不能包含(C )。A.基类的构造函数;B.派生类中子对象的初始化;C.基类的子对象初始化;D.派生类中一般数据成员的初始化101.派生类的对象对它的基类成员中(A)是可以访问的。A.公有继承的公有成员;B.公有继承的私有成员;C.公有继承的保护成员;D.私有继承

21、的公有成员。102C+类体系中,不能被派生类继承的有(A)。A.构造函数 B.虚函数 C.静态成员函数 D.赋值操作函数103下面标识符中正确的是(A )。A_abc B3ab C int D+ab104下列哪项(D)不是面向对象程序设计的主要特征?a.封装b.继承c.多态d.结构105已知 i=5,j=0,下列各式中运算结果为 j=6 的表达式是(A )。Aj=i+(+j)Bj=j+i+Cj=+i+j Dj=j+i106若整型变量 a、b、c、d 中的值依次为:1、4、3、2。则条件表达式 ab?a:cd?c:d的值 AA1 B2 C3 D4107以下不正确的是(C )。A语句 for(i=

22、0;i+)表示无限循环 Bfor(;)表示无限循环C+程序设计试卷 第 9 页 共 29 页Cfor()也表示无限循环 Dwhile(1)表示无限循环108有如下程序:int x=3;doX-=2;couta+&cd)?+d:ab”的值为(D)。A)9 B)6 C)8 D)0134、下面有关重载函数的说法中正确的是(C)。A)重载函数必须具有不同的返回值类型。B)重载函数形参个数必须不同。C)重载函数必须有不同的形参列表。D)重载函数名可以不同。135、C+语言的跳转语句中,对于 break 和 continue 说法正确的是(B)。A)break 语句只应用于循环体中。B)continue

23、语句只应用于循环体中。C)break 是无条件跳转语句,continue 不是。D)break 和 continue 的跳转范围不够明确,容易产生问题。136、longint的字节数是(D )。A)4 B)1 C)0 D)8 137、下列非法的字符常量是(C )。A)#B)C)a D)A 二、填空:1.C+语言的头文件与源程序文件扩展名分别是(.h )和(.cpp )。2.在 C+程序中使用基本输入与输出流时需要包含的头文件名是(iostr eam )。3.在 C+语言中,惟一的一个三目运算运算符是(?:)。4.C+中当一个函数无返回值时,则函数的类型是(void )。C+程序设计试卷 第 1

24、2 页 共 29 页5.一个类中可以有(多)个构造函数,只能有(一 )个析构函数。6.一般情况下,按照面向对象的要求,把类中的数据成员(属性)定义为(私有 )权限,而把成员函数(方法)定义为(公有 )权限.7.在定义类的对象时,C+程序将自动调用该对象的(构造 )函数初始化对象自身.在撤销类的对象时,C+程序将自动调用该对象的(折构 )函数.8.类继承中,缺省的继承方式是(私有继承 ).9在 C+语言中,用转义字符序列(n )或操纵符(endl )表示输出一个换行符。10表达式 a=al 表示成增量表达式为(+a )。11当不需要函数返回任何值时,则应把该函数类型定义为(void )。12用于

25、输出表达式值的标准输出流对象是(cout)。,用于从键盘上为变量输人值的标准输人流对象是(cin )。13、变量分为全局和局部两种,(全局变量默认初始化为 0)。变量没有赋初值时,其值是不确定的。14、假定类 AB 中有一个公用属性的静态数据成员 bb,在类外不通过对象名访问该成员 bb 的写法为(AB::bb )。15、类的成员分为数据成员和成员函数。16、一个类和对象的关系,正如基本数据类型与该类型的变量一样,如 int x;。17、对一个类中的数据成员的初始化可以通过构造函数中的赋值实现,也可以通过构造函数中的初始化列表实现。18、类有两种用法:一种是定义对象,即生成类的对象;另一种是通

26、过派生,派生出新的类。19、C+语言提供的多态机制允许一个派生类继承多个基类,即使这些基类是相互无关的。20、声明虚函数的方法是在基类中的成员函数原型前加上关键字virtual。21、如果一个类中有一个或多个纯虚函数,则这个类称为虚基类。22、静态数据成员在定义或说明时,前面要加上关键字static。23、如果成员函数不需要访问类的非静态成员,则可以把它声明为静态成员函数。24、友元可以是全局函数,也可以是其他类的成员函数。25、若需要把一个函数“void fun();”定义为一个类 A 的友元函数,则应在类 A 的定义中加入一条语句:friend void fun();。26、运算符函数中的

27、关键字是operator,它和运算符一起组成该运算符函数的函数名。27、类中运算符重载一般采用两种形式:成员函数和友元函数。28、面向对象程序设计的 3 大机制为:封装性、继承性和多态性。2、类的访问权限有public、private和protected三种。29、构造函数是对象被创建时自动执行,对象消失时自动执行的成员函数称为析构函数。30、如果类 A 继承了类 B,则类 A 称为基类,类 B 称为派生类。31、如果一个特定的类型 S 当且仅当它提供了类型 T 的行为时,则称类型 S 是类型 T 的子类型。32、在类定义中,将=0置于虚函数的函数原型的末尾可以声明该函数为纯虚函数。33、类的

28、静态成员分为静态数据成员和静态成员函数。C+程序设计试卷 第 13 页 共 29 页34、友元函数的声明可以放在类的私有部分,也可以放在类的共有部分,它们是没有区别的。35、如果说类 B 是类 A 的友元类,则类 B 的所有成员函数都是类 A 的成员函数。36、设 a 和 b 是两个整型变量,我们用 a+b 的形式求这两个变量的和;设 c 和 d 为浮点型变量,我们用 c+d 的形式求这两个变量的和。显然运算符“+”具有不同的用途,这是运算符重载的例子。37、对于双目运算符,若重载为类的成员函数,有 1个参数;若重载为友元函数,则有2 个参数。38、当建立_一个新的对象_,程序自动调用该类的构

29、造函数。39、在 C+中有二种参数传递方式:_传值_ 和_引用_。40、模板对处理数据的类型的要求不同可以分为两种类型:_函数模板_ 和 _ 类模板_。41、异常是通过_检查(try)_、_抛出(throw)_和_捕捉(catch)_ 来实现的。42、虚函数实现了 C+的_多态_ 机制,类实现了 C+的_封装_ 机制。43、面向对象程序设计的_继承_机制提供了重复利用程序资源的一种途径。44、C+语言程序设计的三种基本结构是:_顺序结构_、_选择结构_、_循环结构_。45、为了避免嵌套的条件语句 if-else 的二义性,C+语言规定 else 与_if _配对使用。46、定义函数时,在函数的

30、类型前加上修饰词 _ inline _,指明将该函数定义为内联函数。47、有说明语句:*p;则*p+运算首先访问 _*p_,然后使_p_ 的值加 1。48、执行 int*p=new int 操作,可以得到一个动态分配整型对象的_指针_。49、有说明语句:int*p;则(*p)+运算首先访问 _*p_,然后使 _*p_的值加1。50 C+目标程序经_编译链接_后生成扩展名为 exe 的可执行程序文件。51 16 位计算机中整型占_2_个字节存储空间。52 要在屏幕上显示Hello,world!应执行语句 cout=0|x=0)coutabcd;else coutwxyz;屏幕上显示的是_abcd

31、_。56 设一维整型数组 data 已进行了初始化,则其元素个数可由操作符 sizeof 通过表达式_ sizeof(data)/sizeof(int)_计算出来。57 若一全局变量只允许本程序文件中的函数使用,则定义它时应加上修饰符_ static _。58 设有 int w34;,pw 是与数组名 w 等价的数组指针,则 pw 应初始化为_ int*4 pw=w;_。59.要使引用 pr 代表变量 char*p;,则 pr 应初始化为_ char*&pr=p;_。60在 C+中封装性、继承性和_多态性 61假设 int a=1,b2;则表达式 a+-b 的值为 _2_。62下面的程序实现输

32、出 x,y,z 三个数中的最大值,请填入正确的内容。#includeC+程序设计试卷 第 14 页 共 29 页void main()int x=5,y=8,z=9,u,v;if_(xu)_ u=x;else u=y;if_(uv)_ v=u;else v=z;cout”v=”v _。65C+语言支持的两种多态性分别是编译时的多态性和 _运行时_的多态性。66设有如下程序结构:class Box ;void main()Box A,B,C;该程序运行时调用_3_次构造函数;调用 _3_次析构函数。67目前,有两种重要的程序设计方法,分别是:_面向过程_和_面向对象_。68 C+语言提供的基本控

33、制结构可以分为 3 种类型:顺序结构、_分支_ 和循环结构。69函数的调用主要分为传值调用和_引用调用_调用。前者的特点是_不能改变传入变量的值 _。70函数重载时要求同名函数的_参数个数_或_参数类型_不同,否则无法确定是哪个函数。71静态数据成员是类的所有对象中的_共享_成员,而非静态数据成员是属于_一个具体_对象的。72设 A 为 test 类的对象且赋有初值,则语句 test B(A);表示_将对象 A 复制给对象 B _。73.面向对象程序设计方法中的每个对象都具有_属性_和_方法_两方面的特征。74.“类”指的是_对象的类型,代表了某一批对象的共性和特征_。75.构造数据类型,包括

34、数组、_指针_、_结构体和共用体_、_枚举_和类等。76.C+中数据类型标识符 Signed Char,其字节数为_1_,范围是_-128 到 127_。77.在函数体内部定义的变量称为_局部变量_。在所有函数体外部定义的变量称为_全局变量_。78.有一数学表达式为 2/3(f-32),要写成对应的 C+的表达式时,正确地写法应写_2.0/3.0*(f-32)_。79.类的静态成员是_的所有对象中共享_的成员,不是_某个对象_的成员,静态成员在_类的声明中_进行引用性说明,在_其文件作用域的其他地方_进行定义性说明。80.使用传统的结构化程序设计方法设计程序的步骤是_自顶向下_、_逐步细化_、

35、_模块化设计_。81.“封装”指的是_将有关的数据和操作代码封装在一个对象中,形成一个基本单位,各个对象之间相互独立,互不干扰,且将对象中某些部分对外隐藏C+程序设计试卷 第 15 页 共 29 页_。82.可以让新类继承已定义的类的_数据成员_和_成员函数_,这个新类称为_继承_,原来的类称为_基类_。新类可以从一个类中派生,这叫_单继承_,也可以从多个类中派生,称为_多重继承_。83.指针类型变量用于存储_另一变量的地址_,在内存中它占有_一个_存储单元。84.类有三种继承方式,分别是:_公有继承_、_保护继承_、_私有继承_。七、指出下列程序的错误,并说明为什么:1、#include c

36、lass Student int sno;int age;void printStu();void setSno(int d);void printStu()coutnStudent No.is sno,;coutage is age.endl;void setSno(int s)sno=s;void setAge(int a)age=a;void main()Student lin;lin.setSno(20021);lin.setAge(20);lin.printStu();1)void printStu()应该改为 void Student:printStu()2)void setSno

37、(int s)应该改为 void Student:setSno(int s)3)Student 的定义中应加入成员函数的声明语句 void setAge(int a);4)void setAge(int a)应该改为 void Student:setAge(int a)5)应将成员函数定义为 public 类型 在前面加 public:2、#include class PointC+程序设计试卷 第 16 页 共 29 页public:int x,y;private:Point()x=1;y=2;void main()Point cpoint;cpoint.x=2;2.应将成员 x 定义为 p

38、ublic3、#include void main()int x=0,y=5,z=3;while(z0&+x3)y=y-1;coutxyz;4、#includevoid main()int x=10;int&y=x;coutx=x,y=yendl;x+;coutx=x,y=yendl;y+;coutx=x,y=yendl;5、#include void main()int i,n=0;for(i=2;i10;i+)if(i%3!=0)continue;n+;coutn;6、#include class A int*a;C+程序设计试卷 第 17 页 共 29 页public:A(int x)a

39、=new int(x);cout*a=*a;void main()A x(3),*p;p=new A(5);delete p;7、#include class base public:virtual int func()return 0;class derived:public base public:int func()return 100;void main()derived d;base&b=d;cout b.func()endl;cout b.base:func()endl;8、#include#define pi=3.1416;const float r=3.2;void main(

40、)float s1,s2,c1,c2,r1;c1=pi*r*r;s1=2*pi*r;r=2.8;c2=pi*r*r;s2=2*pi*r;coutc2s2;C+程序设计试卷 第 18 页 共 29 页1)#define pi=3.1416;应改为#define pi 3.14162)修改了 const 类型的变量 r 应改为 static float r=3.2;3)coutc2s2;应改为 coutc2 s九、编程题:6、设计一个汽车类 Vehicle,包含数据成员车轮数和车重,由它派生出类 Car 和类Truck,前者包含载客数,后者包含载重量。编写程序实现。#include class v

41、ehicle/定义汽车类 protected:int wheels;/车轮数 float weight;/重量 public:vehicle(int wheels,float weight);int get_wheels();float get_weight();float wheel_load();void show();class car:public vehicle/定义小车类 int passenger_load;/载人数 public:car(int wheels,float weight,int passengers=4);int get_passengers();void sho

42、w();class truck:public vehicle/定义卡车类 int passenger_load;/载人数 C+程序设计试卷 第 19 页 共 29 页float payload;/载重量 public:truck(int wheels,float weight,int passengers=2,float max_load=24000.00);int get_passengers();float efficiency();void show();vehicle:vehicle(int wheels,float weight)vehicle:wheels=wheels;vehic

43、le:weight=weight;int vehicle:get_wheels()return wheels;float vehicle:get_weight()return weight/wheels;void vehicle:show()cout 车轮:wheels 个 endl;cout 重量:weight 公斤 endl;car:car(int wheels,float weight,int passengers):vehicle(wheels,weight)passenger_load=passengers;C+程序设计试卷 第 20 页 共 29 页 int car:get_pas

44、sengers()return passenger_load;void car:show()cout 车型:小车 endl;vehicle:show();cout 载人:passenger_load 人 endl;cout endl;truck:truck(int wheels,float weight,int passengers,float max_load):vehicle(wheels,weight)passenger_load=passengers;payload=max_load;int truck:get_passengers()return passenger_load;flo

45、at truck:efficiency()return payload/(payload+weight);void truck:show()cout 车型:卡车 endl;C+程序设计试卷 第 21 页 共 29 页vehicle:show();cout 载人:passenger_load 人 endl;cout 效率:efficiency()endl;cout endl;void main()car car1(4,2000,5);truck tru1(10,8000,3,340000);cout 输出结果 endl;car1.show();tru1.show();7、设计一个点类 Point

46、,包含点的坐标 x,y 两个数据成员,采用友元类的方式分别计算两点间的水平距离和垂直距离。#includeusing namespace std;class Point;/先声明类型 Pointint horizontalDistance(const Point&first,const Point&second);/水平距离函数声明int verticalDistance(const Point&first,const Point&second);/垂直距离函数声明class Pointprivate:int x;/横坐标 int y;/纵坐标public:C+程序设计试卷 第 22 页 共

47、29 页 Point(int x=0,int y=0)/构造函数 this-x=x;this-y=y;friend int horizontalDistance(const Point&first,const Point&second);friend int verticalDistance(const Point&first,const Point&second);/水平距离函数定义 int horizontalDistance(const Point&first,const Point&second)if(first.x-second.x=0)return first.x-second.x

48、;else return second.x-first.x;/垂直距离函数定义int verticalDistance(const Point&first,const Point&second)if(first.y-second.y=0)return first.y-second.y;else return second.y-first.y;int main()Point a(1,2);/定义三个 Point 对象 Point b(0,0);Point c(-1,-1);C+程序设计试卷 第 23 页 共 29 页/测试 cout horizontalDistance(a,b)endl;cou

49、t horizontalDistance(a,c)endl;cout verticalDistance(a,b)endl;cout verticalDistance(a,c)endl;return 0;8、设计一个点类 Point,包含横、纵两个坐标数据 x,y,由它派生出圆类 Circle,并添加一个半径数据 r,求其面积 area。#include /#include/此头文件与下面的 setprecision(3)对应,可同时加上,控制输出精度using namespace std;#define PI 3.1415926/点类如下:class Pointpublic:Point()Po

50、int(float x1,float y1)x=x1;y=y1;virtual float area()=0;virtual float perim()=0;/周长private:float x;float y;C+程序设计试卷 第 24 页 共 29 页;class Circle:public Pointpublic:Circle(float x1,float y1,float r1);float area();float perim();private:float r;Circle:Circle(float x1,float y1,float r1):Point(x1,y1)r=r1;fl

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服