




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+程序设计练习题 一、选择题 1. 有函数 f定义如下: int f(int a = 1, int b = 2, int c = 3) return a + b + c; 下列说法中错误的是(D) 。 A函数调用 f()的结果为 6。 B函数调用 f(f(f()的结果为 16。 C函数调用 f(f(), f()的结果为 15 D函数调用 f(f(), f(f()的结果为 21。 2.C+中,关于参数默认值的描述正确的是( B) 。 A.只能在函数定义时设置参数默认值 B.设置参数默认值时,应当从右向左设置 C.设置参数默认值时,应当全部设置 D.设置参数默认值后,调用函数不能再对参数赋值 3. 如果类 A 被说明成类 B 的友元,则 (D ) A. 类 A的成员即类 B 的成员 B. 类 B 的成员即类 A 的成员 C. 类 A的成员函数不得访问类 B的成员 D. 类 B 不一定是类 A 的友元 4、如下是某同学定义的类 A,则其中有(B)处错误。 class A int a = 1; void A(); A(void); A2 B3 C4 D5 5、针对下列类型定义,可以出现在 main函数中的语句有(A) 。 class Date private: int year, month, day; ; ADate d; BDate:year = 1; CDate d = 2009, 1, 1; Dcout “abc“ 11.下列程序中,访问出错的是(B) 。 class A private: int x; protected: int y() x = 1; / A public: int z; ; class B : public A public: void u() cout f(); / A pa-v(); / B B b; pa = pa-f(); / C pa-v(); / D 15.以下(C )成员函数表示纯虚函数。 A.virtual int vf(int); B.void vf(int)=0; C.virtual void vf()=0; D.virtual void vf(int) 17.下列程序段中,ofs 是 ofstream类的对象,ifs 是 ifstream类的对象,c 是 char型变量,则执行结果是(B) 。 while (ifs.get(c) ofs.put(c); A把一个文件的第 1个字节写入到另一个文件中 B把一个文件的内容全部写入到另一个文件 C仅仅把字符 c写入到一个文件中 D把两个文件的内容合并到一起 4. 下面说法正确的是 (B) A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义 D.类的内联函数必须在类体外通过加关键字 inline 定义 18.下列(B)循环能够把 26个小写字母以文本方式写入文件中。 int main() int a; ofstream ofs(“data.txt“); a = a; while (a fun(); 52.C+中,关于参数默认值的描述正确的是(A ) 。 A.只能在函数定义时设置参数默认值 B.设置参数默认值时,应当从右向左设置 C.设置参数默认值时,应当全部设置 D.设置参数默认值后,调用函数不能再对参数赋值 53如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函 数调用格式,则可表示为(A ) 。 A. a.operator+(b) B. b.operator+(a) C. operator+(a,b) D. operator(a+b) 54.实现运行时的多态性要使用( D )。 A.重载函数 B.构造函数 C.析构函数 D.虚函数 55对数组名作函数的参数,下面描述正确的是(B ) 。 A.数组名作函数的参数,调用时将实参数组复制给形参数组。 B.数组名作函数的参数,主调函数和被调函数共用一段存储单元。 C.数组名作参数时,形参定义的数组长度不能省略。 D.数组名作参数,不能改变主调函数中的数据。 56对于一个功能不太复杂,并且要求加快执行速度,选用(A )合适。 A.内联函数 B.重载函数 C.递归调用 D.嵌套调用 57.在 int a=3,int *p= 则执行下面语句后,x 的值是 B if(xy) z=x; x=y; y=z; A. 10 B. 20 C. 30 D. 0 64、循环语句 whlie(int i=0 )i-;的循环次数是 A A. 0 B. 1 C. 5 D. 无限 65、一个函数无返回值时,应选择的说明符是 C A. static B. extern C. void D. 无说明符 66、对重载函数形参的描述中,错误的是 D A. 参数的个数可能不同 B. 参数的类型可能不同 C. 参数的顺序可能不同 D. 参数的个数、类型、顺序都相同,只是函数的返回值类型不同 67、以下能正确定义数组并正确赋初值的语句是 D A. int N=5,bNN; B. int a2=1,3,4,5; C. int c2=1,2,3,4; D. int d32=1,2,3,4; 68、下列给字符数组进行的初始化中,不正确的是 D A. char s1=“abcd“; B. char s23=x,y,0; C. char s3=a,x,y,0; D. char s46=“xyz“,“mnp“; 69、通常的拷贝构造函数的参数是 C A 某个对象名 B某个对象成员名 C 某个对象的引用 D某个对象的指针名 70、关于构造函数特点的描述中,错误的是 A A. 定义构造函数必须指出类型 B. 构造函数的名字与该类的类名相同 C. 一个类中可定义 0至多个构造函数 D. 构造函数是一种成员函数 71、下面程序的运行结果为 D +using namespace std;后选 C #include int add(int a,int b); void main() extern int x,y; cout_ 。 11、已知有定义“int x, a=5,7,9, *pa=a;”,在执行“x=+*pa;”语句 后,x 的值是_6_,*(pa+1)的值为_7_。 12.若希望用一个已有对象来构造另一个同类型的对象,可以使用 拷贝构造函 数 来实现。 13、假定 AB为一个类,则类定义体中的“AB(AB”语句为该类_拷贝构 造函数_的原型语句,而“operator=(AB”为该类_赋值重载函数_ 的原型语句。 14、为了访问某个类的私有数据成员,必须在该类中声明该类的 友元 。 15、静态成员是局部于类的成员,它提供一种同类对象的_共享 _机制。 16、访问一个指针所指向的对象的成员所用的运算符是 _-_ 。 17. 面向对象程序设计有四个主要特点,即抽象、封装、_继承_和_多态 _。 18.在用 class定义一个类时,数据成员和成员函数的默认访问权限是 _private_。 19.在函数体之后加 _const_ 关键字可以防止覆盖函数改变数据成员的值。 20.私有数据通常由公有成员函数来访问(读和写)。这些函数统称为_操作 _。 21.在字长为 32 位的机器中,sizeof(float) 4 字节,sizeof(double) 8 字节 22.引用通常用作函数的参数和_引用变量_。 23. 如果 new返回的指针丢失,则所分配的堆空间无法收回,称为 _内存 泄漏_ 。 24. C+中多态性包括两种多态性:_编译_时的多态性和_运行_时的 多态性。 25. 若有 char a80;则 cina表示从键盘上读入一个_字符串_ 到数组 a 中。 26.静态数据成员是类的所有对象中 共享 的成员, 静态数据成员初始化与一 般数据成员初始化 不同 。 27. C+流类库定义的 cin,cout,cerr 和 clog是_全局流对象_ 。 28. 访问一个指针所指向的对象的成员所用的运算符是 _-_ 。 29. 假定用户没有给一个名为 shape 的类定义析构函数,则系统自动给出的缺 省析构函数定义为 _shap:shap()_ 。 30._构造函数_是特殊的成员函数,在创建和初始化对象时调用。 _静态成员_是局部于类的成员,它提供一种同类对象的_共享_机制。 31.运算符重载的作用是使运算符可以操作自定义的_类_,但重载后运算符原 有的 操作_不变。 32.派生类不能访问基类的_私有_成员,但可以访问基类的公有成员和_保护_ 成员。 33.具有_纯虚拟函数_的类称为抽象类。 三、判断题 1.( F)基类中被说明为 protected和 private的成员只能被其派生类的成 员函数访问,不能被其它的函数访问。 2.(F)break语句也可以用于 if体内,它可退出 if语句。 3.( F) 类的静态数据成员需要在定义每个类的对象时进行初始化。 4 (F)友元函数说明在类体内,它是一种成员函数。 5.(F)在传值调用中,要求实参和形参的类型完全一致并且个数相等。 6.(T) 如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数 原型相同,那么,这个函数自动继承基类中虚函数的特性。 7 (F)异常必须在其产生的当前函数中捕获,而不能在外层函数中捕获该 异常。 8.(T) 如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数 原型相同,那么,这个函数自动继承基类中虚函数的特性。 9.( F) 类的静态数据成员需要在定义每个类的对象时进行初始化。 10( T)程序的编译是以文件为单位的,因此将程序分到多个文件中可以 减少每次对程序修改所带来的编译工作量。 11( T)重载函数必须有不同的参数列表。 12.( T)类 B从类 A公有继承,则程序段 A a;B 会引发编译错误。 13.(T)拷贝构造函数用于用类的一个对象去初始化该类的另一个对象时 使用,也可已用于当函数的形参是类的对象,调用函数时,进行形参与实参结 合时使用。 14(T)类中所提供的成员函数可以直接访问私有成员。 15. ( T ) int i,*p= class A friend double count(A public: A(double t, double r):total(t),rate(r) private: double total; double rate; ; double count(A return a.total; int main(void) A x(80,0.5),y(100,0.2); cout using namespace std; class Count private: static int counter; int obj_id; public: Count(); /constructor static void display_total(); /static function void display(); Count(); /destructor ; int Count:counter; /definition of static data member Count:Count() counter+; obj_id = counter; Count:Count() counter-; cout class example private: int date; static int count; public: example(int y=10):date(y) cout class A public: A(); A(int i,int j); A()cout #include class Base private: char msg30; protected: int n; public: Base(char s,int m=0):n(m) strcpy(msg,s); void output(void) cout class X public: X(int i) x=i; cout class Samp public: void Setij(int a,int b)i=a,j=b; Samp() cout int func(int a) int b=0; static int c=4; b+; c-; return(a+b+c); void main( ) int a=2; for(int j=0;j class Abc public: Abc( )a=0; b=0; c=0; Abc(int i,int j,int k)a=i; b=j; c=k; void get(int j=b; k=c; Abc operator * (Abc obj); private: int a,b,c; ; Abc Abc:operator * (Abc obj) Abc tempobj; tempobj.a=a*obj.a; tempobj.b=b*obj.b; tempobj.c=c*obj.c; return tempobj; void main() Abc obj1(1,2,3),obj2(5,5,5),obj3; int a,b,c; obj3=obj1*obj2; obj3.get(a,b,c); cout #include using namespace std; const double Pi=acos(-1.0); class Shape public: virtual double area() return 0; ; class Circle:public Shape public: Circle(double a):r(a) virtual double area() return r*r*Pi; private: double r; ; class Square:public Shape public: Square(double a):l(a) virtual double area() return l*l; private: double l; ; class Rectangle:public Shape public: Rectangle(double aa,double bb): a(aa),b(bb) virtual double area() return a*b;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 童话改编动画片编剧聘用协议
- 体育赛事赞助商权益合作协议
- 特色美食连锁加盟合作协议
- 车辆贷款居间服务与信贷风险管理专项协议
- 桥梁工程施工包工合同
- 病原体快速识别-洞察及研究
- 高速互联网接入-洞察阐释
- 食品行业法规更新-洞察阐释
- 2025-2030中国樱桃汁行业销售态势与消费趋势预测报告
- 智能优化算法+大数据分析-洞察阐释
- 2025年安全生产考试题库(危险化学品安全)危险化学品安全操作规范应用试题
- T/CIQA 74-2024人工智能(AI)鉴定通用规范
- 美容院洗涤协议书
- 肥胖症诊疗指南(2024年版)解读
- 2025甘肃省农垦集团有限责任公司招聘生产技术人员145人笔试参考题库附带答案详解
- 餐饮服务员培训全流程解析
- 《成人高血压合并2型糖尿病和血脂异常基层防治中国专家共识(2024年版)》解读
- 《小学交通安全教育》课件
- 2024北京西城区五年级(下)期末英语试题及答案
- 2025-2030中国电池镀镍钢板行业市场发展趋势与前景展望战略研究报告
- 2025届广东省东莞市东华中学初三联合考试数学试题试卷含解析
评论
0/150
提交评论