收藏 分享(赏)

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

上传人:cjc2202537 文档编号:4853006 上传时间:2019-01-16 格式:DOC 页数:29 大小:160.50KB
下载 相关 举报
大学C++期末考试题库及答案.doc_第1页
第1页 / 共29页
大学C++期末考试题库及答案.doc_第2页
第2页 / 共29页
大学C++期末考试题库及答案.doc_第3页
第3页 / 共29页
大学C++期末考试题库及答案.doc_第4页
第4页 / 共29页
大学C++期末考试题库及答案.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、第 1 页 共 29 页2012 年大学 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)。A. void define +WORD B. a3_b3 _12

2、3 YNC. for -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+程序总是从第一个

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

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

5、的说法是(A )A. 友员函数是独立于当前类的外部函数B. 一个友员函数不可以同时定义为两个类的友员函数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,现在要定义类 derive

6、d,它是从 student 私有派生的,则定义类 derived 的正确写法是( D )A. class derived :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. p

7、rivate C. protected D. friend21.下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( A )合适。A. 内联函数; B. 重载函数; C. 递归调用; D. 嵌套调用。22.C+对 C 语言作了很多改进,下列描述中(D)使得 C 语言发生了质变,从面向过程变成了面向对象。A. 增加了一些新的运算符; B. 允许函数重载,并允许设置缺省参数;C. 规定函数说明必须用原型; D. 引进了类和对象的概念;23.按照标识符的要求, (A)符号不能组成标识符。A. 连接符 B. 下划线 C.大小写字母 D. 数字字符24.下列变量名中,

8、( A )是合法的。A CHINA B byte-size C double D A+a25.下列各种函数中, ( C)不是类的成员函数。A 构造函数 B 析构函数 C 友元函数 D 拷贝构造函数26.下列( 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

9、(a1for(i=1;ivoid main( ) char *p10=“abc“,“aabdfg“,“dcdbe“,“abbd“,“cd“;cout和作用域运算符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)私有继承的公有成员72、实现运行时的多态性用 。DA、重载函数 B、构造函数 C、析

10、构函数 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. 静态数据成员不是所有对象所共用的。97. ( A)是析构函数的特征。A. 一个类中只能定义一个析构函数; B. 析构函数与类名不同;C. 析构函数的定义只能在类体内; D. 析构函数可以有各个或多个参数。;98. 已知:p 是一个指向类 A

11、数据成员 m 的指针,A1 是类 A 的一个对象。如果要给 m 赋值为 5, ( C )是正确的。A. A1.p=5; B. A1-p=5;C. A.*p=5; D. *A1.p=5;99. 关于 new 运算符的下列描述中,( D )是错的。A. 它可以用来动态创建对象和对象数组;B. 使用它创建的对象或对象数组可以使用运算符 delete 删除;C. 使用它创建对象时要调用构造函数;D. 使用它创建对象数组时必须指定初始值。 100. 派生类的构造函数的成员初始化列中,不能包含(C ) 。A. 基类的构造函数;B. 派生类中子对象的初始化;C. 基类的子对象初始化;D. 派生类中一般数据成

12、员的初始化101. 派生类的对象对它的基类成员中( A)是可以访问的。A. 公有继承的公有成员;B. 公有继承的私有成员;C. 公有继承的保护成员;D. 私有继承的公有成员。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=

13、j+i106若整型变量 a、b、c、d 中的值依次为:1、4、3、2。则条件表达式 aa+if_(xu)_ u=x;else u=y;if_(uv)_ v=u;else v=z;cout _。65C+语言支持的两种多态性分别是编译时的多态性和 _运行时_的多态性。66设有如下程序结构:class Box ;void main()Box A,B,C; 该程序运行时调用_3_次构造函数;调用 _3_次析构函数。67目前,有两种重要的程序设计方法,分别是:_面向过程_和_面向对象_。68 C+语言提供的基本控制结构可以分为 3 种类型:顺序结构、_分支_ 和循环结构。69函数的调用主要分为传值调用和

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

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

16、本单位,各个对象之间相互独立,互不干扰,且将对象中某些部分对外隐藏_。82.可以让新类继承已定义的类的_数据成员_和_成员函数_,这个新类称为_继承_,原来的类称为_基类_。新类可以从一个类中派生,这叫_单继承_,也可以从多个类中派生,称为_多重继承_。83.指针类型变量用于存储_另一变量的地址_,在内存中它占有_一个_存储单元。84.类有三种继承方式,分别是:_公有继承_、_保护继承_、_私有继承_。七、指出下列程序的错误,并说明为什么:1、#include class Studentint sno;int age;void printStu();void setSno(int d);voi

17、d printStu() coutclass Pointpublic:int x,y;private:Point()x=1;y=2;void main()Point cpoint;cpoint.x=2;2.应将成员 x 定义为 public3、#include void main( ) int x=0,y=5,z=3;while(z0 int coutvoid main( ) int i,n=0;for(i=2;i class A int *a; public: A(int x)a=new int(x);cout class base public:virtual int func () re

18、turn 0; ;class derived: public base public:int func() return 100; ;void main() derived d;basecout #define pi=3.1416; const float r=3.2; void main() 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; cout class vehicle / 定义汽车类 protected: int wheels; / 车轮数 float weight; / 重量 publ

19、ic: 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 show(); ; class truck:public vehicle / 定义卡车类 int

20、 passenger_load; / 载人数 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; vehicle:weight=weight; int vehicle:get_wheels() return

21、 wheels; float vehicle:get_weight() return weight/wheels; void vehicle:show() cout using namespace std;class Point;/先声明类型 Pointint horizontalDistance(const Point/水平距离函数声明int verticalDistance(const Point/垂直距离函数声明class Pointprivate:int x;/横坐标int y;/纵坐标public:Point(int x=0, int y = 0)/构造函数this-x = x;th

22、is-y = y;friend int horizontalDistance(const Pointfriend int verticalDistance(const Point; /水平距离函数定义int horizontalDistance(const Pointelsereturn second.x-first.x;/垂直距离函数定义int verticalDistance(const Pointelsereturn second.y-first.y;int main() Point a(1,2); /定义三个 Point 对象Point b(0,0);Point c(-1,-1);/测

23、试cout /#include/此头文件与下面的 setprecision(3)对应,可同时加上,控制输出精度using namespace std;#define PI 3.1415926/点类如下:class Pointpublic:Point()Point(float x1,float y1)x=x1;y=y1;virtual float area()=0;virtual float perim()=0;/周长private:float x;float y;class Circle:public Pointpublic:Circle(float x1,float y1,float r1)

24、;float area();float perim();private:float r;Circle:Circle(float x1,float y1,float r1):Point(x1,y1)r=r1;float Circle:area()return PI*r*r;float Circle:perim()return 2*PI*r;int main()Point *p;Circle circle(0,0,3);/前两个为 point(0,0),第三个常量“3“为圆的半径。p=coutperim()area()using namespace std;class Point;/先声明类型 P

25、ointint horizontalDistance(const Point/水平距离函数声明int verticalDistance(const Point/垂直距离函数声明class Pointprivate:int x;/横坐标int y;/纵坐标public:Point(int x=0, int y = 0)/构造函数this-x = x;this-y = y;friend int horizontalDistance(const Point;/水平距离函数定义int horizontalDistance(const Pointelsereturn second.x-first.x;i

26、nt main() Point a(1,2);/定义三个 Point 对象Point b(0,0);Point c(-1,-1);coutclass TDatepublic:TDate(); /构造函数TDate(int nMoth,int nDay,int nYear); /构造函数重载void SetDay(int nDay=1); /三个设置某个成员变量的成员函数 ,都带有默认值void SetMonth(int nMonth=1);void SetYear(int nYear=2001);void SetDate(int nMoth,int nDay,int nYear);/一个非静态

27、成员函数friend void PrintDate(TDate cTdate); /友员函数 private:int m_nMonth;int m_nDay;int m_nYear;TDate:TDate()m_nDay=1;m_nMonth=1;m_nYear=2000;TDate:TDate(int nMoth,int nDay,int nYear)m_nYear=nYear;m_nDay=nDay;m_nMonth=nMoth;void TDate:SetDate(int nMoth,int nDay,int nYear)m_nYear=nYear;m_nDay=nDay;m_nMont

28、h=nMoth;void TDate:SetDay(int nDay/*=1*/)m_nDay=nDay;void TDate:SetMonth(int nMonth/*=1*/)m_nMonth=nMonth;void TDate:SetYear(int nYear/*=2000*/)m_nYear=nYear;void PrintDate(TDate cTDate)printf(“Date is:%d-%d-%d“,cTDate.m_nYear,cTDate.m_nMonth,cTDate.m_nDay);void main()TDate cTdate; cTdate.SetDate(6,

29、1,2012); /使用成员函数cTdate.SetDay(10);TDate CMyDate(6,1,2012);/重载的构造函数生成对象实例PrintDate(CMyDate); /使用友员函数23、定义个 datetime 类,使其对象可以显示当前系统时间和日期 。编写一个程序,该程序的输入有三个整数,找出其中最大的两个整数并输出这两个整数的和#include#includeclass datetimepublic:int year;int month;int day;int hour;int min;int sec;datetime()struct tm* ptm;time_t m;time(ptm = localtime(year = ptm-tm_year+1900;month = ptm-tm_mon+1;day = ptm-tm_mday;hour = ptm-tm_hour;min = ptm-tm_min;sec = ptm-tm_sec;void output() printf(“%.4d/%.2d/%.2d %.2d:%.2d:%.2dn“,year,month,day,hour,min,sec);void main(void)datetime d;d.output();

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

当前位置:首页 > 网络科技 > C/C++资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报