




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+程序设计基础题库一、选择题 1下面不属于面向对象语言的特征的是_B_。A继承性 B兼容性 C多态性 D封装性2. C+语言是从早期的C语言发展演变而来的,与C语言相比,它在求解问题上进行的最大改进是_B_。A、面向过程 B、面向对象 C、安全性 D、复用性3C+的基本数据类型中,用来判断真假的数据类型为 B 。A、int B、bool C、char D、float4关于字符常量的写法,错误的是_A_。A、/ B、a C、t D、05. 下面C+标识符命名正确的是:_D_。A、class B、mail C、1var D、_inline6. 下面基本数据类型初始化表达式错误的是_C_。A、int i(5); B、float f=3.56f; C、char c=ab D、double f=3.56;7. C+对C语言作了很多改进,下列描述中_D_使得C语言发生了质变,从面向过程变成了面向对象。A、增加了一些新的运算符;B、允许函数重载,并允许设置缺省参数;C、规定函数说明必须用原型;D、引进了类和对象的概念;8. 在C+中,关于下列函数参数的描述中,_B _是正确的。A、C+语言中,实参是按照自左至右的顺序求值的;B、若一个参数设置了默认值,则其右边的所有参数都具有默认值;C、函数参数的默认值不允许是表达式;D、设置参数默认值时,应该全部参数都设置;9. 重载函数在调用时选择的依据中,_D_是错误的。 A、参数个数; B、参数的类型; C、函数名字; D、函数的类型。10. 已知程序中已经定义了函数test,其原型是int test(int,int,double);,则下列重载形式中不正确的是_A_。A、char test(int,int,int); B、double test(int,int,double);C、int test(int,int,float); D、int test(int,double) ;11. 关于类的概念下列说法正确的是_C_。A、类和结构体是同一个概念 B、类的数据成员外界都不可访问C、类可以没有显式的构造函数 D、类一定要有显式的析构函数12. 关于类和对象的说法正确的是_。A、面向对象程序设计方法通过数据抽象和行为抽象,封装形成了“类” B、类具有的行为由变量表示。C、 类的属性一般由函数表示,且定义为public的 D、类是具体的,对象是抽象的13. 关于类和对象不正确的说法是_C_。A、类是一种类型,它封装了数据和操作 B、对象是类的实例C、一个类的对象只有一个 D、一个对象必属于某个类14已知A是一个类,则执行语句 “A a; ”时,将自动调用该类的_A_。A、 构造函数 B、拷贝构造函数 C、析构函数 D、数据成员 15. 在下列关键字中,用于说明类中公有成员的是_A_。 Apublic; Bprivate; Cprotected; Dfriend 16. _D_是析构函数的特征。 A、析构函数可以有一个或多个参数; B、析构函数名与类名不同; C、析构函数的定义只能在类体内;D、 一个类中只能定义一个析构函数;17. 如果类的成员在定义时使用关键字public来设置访问权限,则该成员是_A_。A公有类型 B. 私有类型 C. 受保护类型 D. 任意类型18. 关于成员函数特征的下列描述中,_A_是错误的。 A、成员函数一定是内联函数; B、成员函数可以重载; C、成员函数可以设置缺省参数值;D、 成员函数可以是静态的;19. 下列描述中,_D_是不正确的。 A、面向对象程序设计可重用性较好; B、对象之间通过消息进行信息传递; C、多态性体现了行为共享; D、面向对象方法的核心是继承;20派生类的对象对它的基类成员中 A 是可以访问的。 A、公有继承的公有成员; B、公有继承的私有成员; C、公有继承的保护成员;D、私有继承的公有成员;21.下列标识符的定义中合法的是( A/C )。A.-abc B. for C. intl D.”how”22.执行下列语言后,i和j的值分别为( C )。int i=5,j=8,t;int &ri=i;int &rj=j;t=ri;ri=rj;rj=t;A.5和5 B. 5和8 C. 8和5 D.8和823.下列关于C+函数的叙述中正确的是( D )。A. 函数在调用之前必须先声明 B. 每个函数都必须返回一个值C. 每个函数至少要有一个参数 D. 函数可以自己调用自己24.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( B )。A. 地址传递 B. 单向值传递 C. 双向值传递 D.不确定 25.系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中不能被作为依据的是( D )。A. 参数个数 B. 参数类型 C. 函数名称 D.函数类型26.标志着C+从面相过程变成面相对象的主要措施是( D )。A.增加了新的运算符 B.允许函数重载,设置默认参数C.规定函数声明必须用原型 D.引用了类和对象的概念27.有关类和对象的说法错误的是( C )。A.对象是类的一个实例B.任何一个对象只能属于一个具体的类C.一个类只能有一个对象D.类与对象的关系和数据类型与变量的关系相似28.对任意一个类,析构函数的个数最多为( B )个。A.0 .B.1 C.2 D.429.已知A是一个类,则执行语句A a;时,将自动调用该类的( B )。A.有参构造函数 B.无参构造函数C.拷贝构造函数 D.赋值构造函数30.下述静态数据成员的特性中,( D )是错误的。A.说明数据成员时前边要加修饰符staticB.静态数据成员要在类体外进行初始化C.引用静态数据成员时,要在静态数据成员名前加“类名”和作用域运算符 D.静态数据成员不是所有对象所共有的。31. 下面有关C+构造函数和析构函数说法正确的是 D 。A、如果不声明任何构造函数,系统会赋给一个默认(无参)的构造函数。如果自定义了构造函数,系统也会赋给默认的构造函数。B、析构函数是用来完成对象被删除前的清理工作,它可以接受参数。C、构造函数和析构函数都可以是虚函数。D、构造方法是与类同名的方法,它可以重载。32已知类D继承类B,且有声明语句B b,*p; D d; 下面赋值语句错误的是_C_。A、d=b; B、p=&d; C、b=d; D、p=&b;33下列有关继承和派生的叙述中,正确的是_。A、如果一个派生类私有继承其基类,则该派生类中的成员不能访问基类的保护成员B、派生类的成员函数可以访问基类的所有成员C、在创建派生类对象时,先调用派生类构造函数,再调用基类的构造函数。D、在销毁派生类对象时,先调用派生类析构函数,再调用基类的析构函数。34C+语言的跳转语句中,对于break和continue说法正确的是_ B A、break语句只应用与循环体中B、continue语句只应用于循环体中C、break是无条件跳转语句,continue不是D、break和continue都可以用于跳出if条件分支。35下面是关于派生类声明的开始部分,其中正确的是_D_。A、class virtual B:public A B、virtual class B:public A C、class B:public A virtual D、class B: virtual public A36. 对基类和派生类的关系描述中, B 是错的。 A、派生类是基类的具体化; B、派生类是基类的子集; C、派生类是基类定义的延续; D、派生类是基类的组合。 37下列运算符中,不能被重载的是 C 。 A& B- C .* D+38静态数据成员的初始化必须在 B 。 A、类内 B、类外 C、在构造函数内 D、静态成员函数内39关于虚函数与抽象类,下列表述正确的是_D_。A、虚函数声明可以同时出现在类定义中的函数原型声明中,和成员函数的实现的时候。B、虚函数不能声明为静态函数。C、抽象类可以实例化。D、 派生类必须重新定义基类的虚函数。40. 设置虚基类的目的是 B 。 A 简化程序; B. 消除二义性; C. 提高运行效率; D. 减少目标代码。41.执行语句:int a=5,*pa;pa=&a; 后,下面描述错误的是( A )。Apa的值为5 B. pa指向整形变量aC. *pa表示变量a的值 D. pa的值是变量a的地址42.假设 a=5,执行下列语句后,a 的值为( D )。switch(a) case 4: a+;case 5: a- -;case 6: +a: break;case 7: - - a;default: a+; A. 2 B. 3 C. 4 D. 543.有函数原型声明语句如下:void fun(int x,int y=10,char z=# );下面调用语句中不合法的是(C )。A.fun(5) B.fun(5,8) C.fun(6,*) D.fun(10,10,*)44.调用函数时,如果实参是一个数组名,则向函数传递的是( B )。A. 数组的长度 B. 数组的首地址 C. 数组中每个元素的地址 D. 数组中每个元素的值45.在C+中,关于下列设置参数默认值的描述中,正确的是( C )。A. 不允许设置参数的默认值B.设置参数默认值只能在定义函数时设置C. 设置参数默认值时,应该是先设置右边的,再设置左边的D. 设置参数默认值时,应该全部参数都设置46.有关类的说法错误的是( D )。A.类是一种用户自定义的数据类型B.只有类中的成员函数才能存取类中的私有数据C.在类中如果不作特殊说明,所指的数据均为私有类型D. 在类中如果不作特殊说明,所指的成员函数均为公有类型47.下列关于构造函数的描述中,错误的是( D )。A.构造函数的函数名与类名相同 B.构造函数可以重载C.构造函数可以设置默认参数 D.构造函数必须指定类型说明48.通常拷贝构造函数的参数是( D )。 A.某个对象名 B.某个对象的成员名 C.某个对象的指针名 D.某个对象的引用名49.已知A是一个类,则执行语句A a;时,将自动调用该类的( B )。A.有参构造函数 B.无参构造函数C.拷贝构造函数 D.赋值构造函数50.关于友元,下面说法中正确的是( A )。A.一个类的成员函数可以说明为另一个类的友元B.当一个类说明为另一个类的友元时,这个类中的第一个成员可以访问另一个类C.如果类A是类B的友元,类B又是类C的友元,则类A是类C的友元D.如果类A是类B的友元,类B也是类A的友元二、填空题 1. 在面向对象的程序设计中,将一类对象的公共性质进行数据抽象和行为抽象,然后将抽象得到的数据和行为进行封装,形成了_ 类 ,它的实例称为_ 对象 。2. C+基本数据类型中, 布尔 类型只有两个值false和true。3. 函数形参和实参结合的方式有值调用、传地址调用、引用调用,其中, 传地址 调用方式和 引用 调用方式形参的改变能引起实参的改变。4. 默认形参值必须按照_ _ 从右向左 的顺序声明。5. 在C+程序中,同名函数如果形参的 参数类型 或 个数 不同,可以重载。6. 面向对象程序设计主要的特性是_ 封装 、_ 继承 和抽象性、_ 多态 。7. 在面向对象的程序设计中,把对象的一组属性和操作组装在一起,形成一个独立的实体,体现了面向对象方法的_ 封装 特征;而同一个消息被不同类型的对象接收时产生不同的行为,体现的是面向对象方法的_ 多态 特征。8. C+中定义“类”的关键字是_ class _。9. 类的访问权限共有三种,分别为 public _、 private _和protected。类中被说明为_ public _访问权限的成员,可以被该类的对象访问到。 private _访问权限和 protected _访问权限的成员,类外的函数和对象不能访问。10. 类的构造函数的函数名与_ 类名 相同。类的析构函数的函数名与_ 相同。11. C+中动态内存分配的的操作符是 。 运算符用于撤销由new建立的对象,释放对象指针所指向的内存空间。12. 一个类继承自多个父类,称为 多继承 。13. 在类中,使用 static 关键字进行静态成员的声明。友元函数是用关键字 friend _修饰的成员函数。C+中使用关键字 const _定义符号常量。14. 基类中被说明为_ private _的成员只能被其派生类的成员函数访问,不能被外界函数访问。带有纯虚函数的类是 抽象类 。15. 常用的C+标准输入输出流对象是cin和 cout 。16.类的构造函数的函数名与 类名 相同。17.在类中,使用 static 关键字进行静态成员的声明。18.常用的C+标准输入输出流对象是 cin 和cout。19.一个完整程序中必须有一个名为 main 的函数。20.在C+的一个程序中可以定义多个同名的函数,称为 重载 。21.友元函数是用关键字_ friend _修饰的成员函数。22.在面向对象的程序设计中,将一类对象的公共性质进行数据抽象和行为抽象,然后将抽象得到的数据和行为进行封装,形成了_ 类 ,它的实例称为_ 对象 。23. 面向对象程序设计主要的特性是封装性、继承和 多态 、 抽象性 。24.一个完整程序中必须有一个名为 mian 的函数。25.在C+的一个程序中可以定义多个同名的函数,称为 重载 。26.在一个函数的定义或声明前加上关键字 inline ,该函数就声明为内联函数。27.在C+中,类成员有3种访问权限,其中 public 成员提供给用户的接口功能。28.被声明为const的数据成员只允许声明为 的成员函数访问。29.在类的派生与继承中,可以中断派生链的继承方式是 私有继承 。30.在面向对象的程序设计中,将一类对象的公共性质进行数据抽象和行为抽象,然后将抽象得到的数据和行为进行封装,形成了_ 类 ,它的实例称为_ 对象 。三、判断题1. 在C+中,标识符Max和MAX是一样的。2. 被定义为bool类型的变量,取值即为真或假。3. 对象是属性和行为的封装体。4. 在C+语言中,使用struct(结构体)定义的类与使用class定义的类是一样的。5. 如果一个类的所有对象都共享某一个变量,则应当将该变量定义为该类的私有成员。6. 构造函数和析构函数都不能重载。7. 派生类是从基类派生出来,它不能再生成新的派生类。8. 派生类的继承方式中有两种:公有继承和私有继承。9. 在私有继承中,基类中所有成员对派生类都是不可见的。10. 参数个数和类型都相同的函数也可以重载。11.C+中标识符内的大小写字母是没有区别的。12.C+中只能使用注释符号(/),不能使用注释符号(/*/)。13.常量87.363的数据类型是float。14.引用是某个变量的别名,对引用的操作就是对被引用变量的操作。15.同一程序中局部变量和全局变量不可以同名。16.在C+程序中,循环体中可以出现break语句或continue语句。17.switch语句中可以没有default子句。18.没用参数的两个函数是不能重载的。19.使用关键字class定义的类中缺省的访问权限是私有(private)的。20.返回值类型、参数个数和类型都相同的函数也可以重载。21.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。22.构造函数可以声明为虚函数。23.析构函数是一种函数体为空的成员函数。24.构造函数和析构函数都不能重载。25.可以在类的构造函数中对静态数据成员进行初始化。26.一个函数功能不太复杂,但被频繁调用,可以声明为内联函数。27.类的访问权限主要有public、protected和private。28.类的构造函数名与类名相同。29.类的析构函数名与类名相同。30.保护继承方式下基类的保护成员在派生类中仍是保护成员。四、程序题 1. 填空完成下面对Point类的定义。Class_ Point /声明Point类 public: Point(int xx=0,int yy=0)X=xx; Y=yy; Point (Point &p); /复制构造函数 int GetX() return X; int GetY() return Y; Private _: int X,Y; /X,Y为私有成员;2. 填空完成下面对Time类的定义。_class_ Time /声明Time类 _public_: void setTime(int h,int m,int s)/setTime()为公有的成员函数hour=h; minute=m; second=s void showTime()couthour”:”minute”:”secondendl; private: int hour, minute, second; /hour,minute,second为私有成员;3. 填空完成下面对Time类的定义。class Time /声明Time类 _public_: void setTime(int h,int m,int s)/setTime()为公有的成员函数hour=h; minute=m; second=s void showTime()couthour”:”minute”:”secondendl; _private_: int hour, minute, second; /hour,minute,second为私有成员;4.定义一个时钟类Clock,有私有数据成员:时(hour)、分(minute)、秒(second),有公有成员函数setTime()实现对时钟的设置,以及公有成员函数showTime()实现时间的输出。class_ Clock /声明clock类 _public_: void setTime(int h,int m,int s)/setTime()为公有的成员函数hour=h; minute=m; second=s void showTime()couthour”:”minute”:”secondendl; private: int hour, minute, second; /hour,minute,second为私有成员;5.有如下程序class Baseprotected: Base()coutA; Base(char c)coutc;class Derived:public Basepublic: Derived(char c)coutc;void main() Derived d1(B); 执行这个程序屏幕上将显示输出_c_ _。6. 有如下代码class Base private: void fun1() const coutfun1; protected: void fun2() const coutfun2; public: void fun3() const coutfun3; ;class Derived: protected Baseprivate: void fun4() const coutfun4; public: void fun () fun1() ; /fun2() ; /fun3() ; /fun4() ; /;其中有语法错误的语句是_ _。7.定义一个哺乳动物类Mammal,有私有数据成员age,有公有成员函数SetAge( )和GetAge()实现age的赋值和输出。要求代码书写规范。8. 定义一个类Score,它包含私有数据成员english_score(英语分数),公有成员函数setScore()和printScore(),其中,setScore()用来设置english_score的值,printScore()用来输出english_score的值。在主程序中定义类Score的两个对象stu1和stu2,其英语成绩分别为80.5和90.5。9. 声明一个Dog类,包含age、weight等属性,以及对这些属性操作的方法。实现并测试这个类。10. 定义一个Circle类,有数据成员radius(半径),成员函数getArea(),计算圆的面积,构造一个Circle的对象进行测试。#include using namespace std;const double PI=3.14159265;class circle public: circle(double r) radius = r; virtual double area() return 0.0; virtual double volume() return 0.0; protected: double radius;class column:public circle public: column( double r,double h ):circle( r ) double area() return PI * radius * radius;int main() circle *p;p = &cobj; cout 圆: endl; cout 面积 = area() endl;11. 简述面向对象程序设计的四个主要特征和编程方式。12. 有如下程序class B0/基类B0声明 public:void display()coutB0:display()endl;class B1: public B0 /基类B1声明 public:void display()coutB1:display()endl;class D1: public B1 /派生类D1声明 public:void display()coutD1:display()display();void main() B0 b0;/声明B0类对象B1 b1;/声明B1类对象D1 d1;/声明D1类对象B0 *p;/声明B0类指针p=&b0;/B0类指针指向B0类对象fun(p);p=&b1;/B0类指针指向B1类对象fun(p);p=&d1;/B0类指针指向D1类对象fun(p);执行这个程序屏幕上将显示输出 _ _ _ _ _ _ _ 。13执行下列语句: 输出结果 (1)5 。#includevoid main()int arrayA5=1,3,5,7,9;int i=2;coutarrayAi=*(arrayA+i)endl;14.填空完成下面对X类的定义class x (1)public /公有属性; (2) x(int a,int b) /构造函数 a=a1; b=b1; x() (3) /默认构造函数 a=0; b=0; x(x&obj) (4) /拷贝构造函数 a =obj.a; b=obj.b; private: int a,b; ;15.编写一个程序,输入n本书的书名,将书名排序,输出排序后的书名。#include#include using namespace std;void main()Const(1) int n=5; / 定义为常量 string bookn;string temp;int i,j;for(i=0;in;i+)coutinput no.(i+1) booki (2) ; /通过cin 输入书名;for(i=1;in;i+)for(j=0;ji;j+)if (bookibookj) Temp=booki;booki=bookj;bookj=temp; (3) /实现booki、bookj的排序for(i=0;in;i+)coutbookiendl; (4) ;/通过cout 对排序后的书名输出;16.执行下列语句,输出结果为: (1) 15 #includevoid main()int x=4;int *p; p=&x;*p=15;coutvalue of *p is*pendl; 17.填空完成下面对CDate类的定义。 class(1) CDate / CDate 类的声明; public: CDate(2) (int y,int m,int d); / CDate类的构造函数声明 void setDate(int y,int m,int d); void display() coutyear,month,dayendl; private(3) : int year, month, day ; / year, month, day声明为私有成员;; Void CDate: setdata(int y,int m,int d)(4) /构造函数的实现 year=y; month=m; day=d;18.编写一个程序,设计一个类Trig,给定三角形的三条边长x,y,z,包含一个友元函数计算两个三角形面积之和。#include #include class Trig public: Trig(int a=0,int b=0,int c=0) x=a;y=b;z=c; (1) / 实现构造函数;friend float areasum(Trig t1,Trig t2) Float s,area return(t1.area()+t2.area(); (2) ; /通过友函数,直接返回t1,t2面积之和;float area() float s,area;s=(x+y+z)/2.0;area=sqrt(s*(s-x)*(s-y)*(s-z);return area;(3) /计算三角形的面积,并返回;private: int x,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025黑龙江鸡西市博物馆现公益性岗位招聘2人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025江苏连云港市灌云万邦人力资源有限公司招聘人员考前自测高频考点模拟试题及一套答案详解
- 2025届春季中核集团社会招聘及实习生招聘模拟试卷附答案详解(典型题)
- 安全培训落实课件
- 2025安徽岳西县事业单位引进急需紧缺专业人才3人考前自测高频考点模拟试题及完整答案详解一套
- 2025年温岭市公开选调公务员32人考前自测高频考点模拟试题及一套完整答案详解
- 2025年安徽宿州萧县云水水务社会招聘9人考前自测高频考点模拟试题附答案详解(模拟题)
- 2025内蒙古敖汉旗教育系统“绿色通道”引进高校毕业生15人考前自测高频考点模拟试题有答案详解
- 涂料的环保知识培训课件
- 涂料工艺基础知识培训课件
- 导游证《中国古代建筑》知识考试(重点)题库(含答案)
- 《大气的组成和垂直分层》
- GB/T 2423.17-2024环境试验第2部分:试验方法试验Ka:盐雾
- 第一次月考试卷(月考)-2024-2025学年三年级上册数学人教版
- 新高考生物综合复习《稳态与调节》高考真题汇编(图片版含答案)
- CJT 399-2012 聚氨酯泡沫合成轨枕
- 中小微企业FTTR-B全光组网解决方案
- 第七单元单元任务“视频拍摄脚本写作”统编版高中语文必修上册
- 提高感染性休克集束化治疗完成率工作方案
- 山东省汽车维修工时定额(T-SDAMTIA 0001-2023)
- 初级中药师考试试题
评论
0/150
提交评论