




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、20小题,每小题2分,共40一、选择填空题(共分)。1.关于C+与C语言关系的描述中,(D)是错误的。a.C语言是C+语言的一个子集b.C语言与C+语言是兼容的c. C+语言对C语言进行了一些改进d. C+语言和C语言都是面向对象的2 .按照标识符的要求,(A)符号不能组成标识符。a.连接符b,下划线c.大小写字母d.数字字符3 .为了避免嵌套的ielse语句的二义性,C语言规定else总是与(C)组成配对关系。a.缩排位置相同的ifb.在其之前未配对的ifc.在其之前未配对的最近的ifd.同一行上的if4 .在"inta3=1,3,2,4,5,6,0;"中,a22的值是(
2、C)Oa.1b.Oc. 6d. 25.设"char*s;",以下正确的表达式是(B)。a.s="computer”;b.*s="computer"c.*s二"computer”;d.*s='c'6.对于"int*pa5;”的描述中,(D)是正确的。a. pa是一个指向数组的指针,所指向的数组是5个int型元素b.pa是一个指向某数组中第5个元素的指针,该型变量个元素的值5个元素的指针数 int型指针(A )是正确的。元素是c.pa5表示某个元素的第5d.pa是一个具有组,每个元素是一个7 .在下列表示引用的方
3、法中,已知:intm=10;a. int&x=m;b. int&y=10;c. int&z;d.float&t=&m;8 .下列千or循环的次数为(B)ofor(i0,x=0;!x&&i=5;i+)a. 5b. 6c. 1d.无限9 .对于C/C+语言的函数,下列叙述中正确的是(A)oa.函数的定义不能嵌套,但函数调用可以嵌套b.函数的定义可以嵌套,但函数调用不能嵌套c.函数的定义和调用都不能嵌套d.函数的定义和调用都可以嵌套10 .在一个被调用函数中,关于return语句使用的描述,(D)是错误的。a.被调用函数中可以不用return语
4、句b.被调用函数中可以使用多个return语句c.被调用函数中,如果有返回值,就一定要有return语句d.被调用函数中,一个return语句可以返回多个值给调用函数11 .在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用(A)oa.内联函数b.重载函数c.递归调用d.嵌套调用12 .使用fseek函数可以实现的操作是(A)。a.改变文件指针的当前位置b.文件的顺序读写c.文件的随机读写d.以上都不对13 .下列存储标识符中,(C)的可见性与存在性不一致。a.外部类b.自动类c.内部静态类d.寄存器类14 .在如下结构定义中,不正确的是(B)。a.structst
5、udentintno;charname10;fIoatscore;1;b. structstud20(intno;charname10;fIoatscore;);c.structstudentintno;charname10;fIoatscore;stud20;d.structintno;charname10;fIoatscore;stud100;15 .将两个字符串连接起来组成一个字符串时,选用(C)函数。a.strIen()b.strcpy()c.strcat()d.strcmp()16 .(D)不是构造函数的特征a.构造函数的函数名与类名相同b.构造函数可以重载c.构造函数可以设置缺省参
6、数d.构造函数必须指定类型说明17 .已知:类A中一个成员函数说明如下:voidSet(A&a);其中,A&的含义是(0。a.指向类A的指针为ab.将a的地址值赋给变量Setc.a是类A对象的引用,用来作函数Set()的参数d.变量A与a按位与作为函数Set()的参数18 .已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,(A)是正确的。a.voidprint()const;b.constvoidprint();c.voidconstprint();d.voidprint(const);19 .关于虚函数的描述中,(C)是正确的。a.虚函数是一个stati
7、c类型的成员函数b.虚函数是一个非成员函数c.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数d.派生类的虚函数与基类的虚函数具有不同的参数个数和类型20 .关于new运算符的下列描述中,(D)是错的。a.它可以用来动态创建对象和对象数组b.使用它创建的对象和对象数组可以使用运算符delete删除c.使用它创建对象时要调用构造函数d.使用它创建对象数组时必须指定初始值二、问答题(15分)1、(3分)虚析构函数有什么作用?对象销毁时要调用析构函数,如果不是定义的虚析构函数,基类指针只能访问基类析构,不能访问派生类析构,若定义的虚析构则可以解决这问题2、(3分)拷贝构造函数在哪几种情
8、况下调用?用一个对象初始化另一个对象;当函数返回对象;当对象作为函数参数传递。3、(4分)函数重载与函数覆盖有什么不同,它们与多态有什么关系?函数重载函数名相同,而函数参数个数,函数类型不同;覆盖是指函数名,函数个数,函数类型都相同。C+是通过虚函数的覆盖,实现多态的功能。4、(3分)C+继承是如何工作的?5、(2分)类与对象有什么区别?三、(6分)分析下面程序的运行结果#incIude<iostream.h>cIassB(pubIic:BOB(inti)b=i;virtuaIvoidvirfun()(cout«"B:virfun()caIIed.n"
9、)private:intb;);cIassD:pubIicB(publie:DOD(inti,intj):B(i)d=j;private:intd;voidvirfun()(cout«"D:virfun()caIIed.n");voidfun(B*obj)(obj->virfun();)voidmain()D*pd=newD;fun(pd);)四、(9分)下面的程序可以统计命令行第一个参数中出现的字母个数,请填充下面空白,完成程序。#include<stdio.h>#incIude<ctype.h>voidmain(intargc,a
10、rgv;)char*str;intcount=0;if(argc<2)exit(1);str=argv1;while(*str)if(isaIpha(*str+)count+;printf("n字母个数:%dn",count);提ZF:intisalpha(intch)函数功能是检查ch是否是字母五、(8分)定义一个字符栈类Stack(包括类的实现)。toso栈数组的尺寸由常量SIZE确定。栈 Pop(10分)完成下面的函数,对有n个元素的数组a,(12分)下面的函数统计子字符串substr在str中出现的次数,如果substr在数据成员包括一个存放字符的数组stck
11、和一个栈指针的基本操作为Push。和0o-X-八、使数组元素按逆序排列。voidinverse(int*a,intn)()七、字符串str中不出现,则返回值0o请完成该函数。intstr_count(char*substrfchar*str)一、选择填空题I、D2、A3、C4、C5、B6、D7、A8、B9、A10、DII、A12、A13、C14、B15、C16、D17、C18、A19、C20、D二、问答题1、虚析构函数有什么作用?解答要点:对象销毁时,需要调用析构函数。在多态调用时,是用基类的指针访问派生类的对象。如果析构函数是非虚函数,则基类指针只能访问基类的析构函数,而不能访问派生类的析构
12、函数,导致派生类对象销毁时,没有调用派生类的析构函数,只是调用了基类的析构函数。如果把析构函数定义成虚函数,则可克服这个问题。2、拷贝构造函数在哪几种情况下调用?解答要点:用一个对象初始化另一个对象时当用对象作为函数参数传递时当函数返回对象时3、函数重载与函数覆盖有什么不同,它们与多态有什么关系?解答要点:函数重载是指函数名相同,而函数的参数个数或类型不同;覆盖是指在派生类中成员函数与基类成员函数的函数名、参数个数、类型与返回值均相同;C+中正是通过虚函数的覆盖,实现多态的功能。4、C+继承是如何工作的?解答要点:继承使得派生类能够使用基类的公有和保护成员,从而实现代码的复用,派生类可以增加成
13、员,也可以隐藏和覆盖基类的成员。对于公有继承,基类成员的访问权限在派生类保持不变。5、类与对象有什么区别?解答要点:类是类型,是对象的抽象,对象是类的具体实例。一个类可以有多个对象,每个对象都有自己的存储单元,而类不占存储单元。三、运行结果为:D:virfun0called.char*argv1*str+五、(8分)定义一个字符栈类Stack(包括类的实现)o数据成员包括一个存放字符的数组stck和一个栈指针tos。栈数组的尺寸由常量SIZE确定。栈的基本操作为Push。和Pop0oconstintSIZE=27;cIassStack(pubIic:Stack():tos(0);voidPus
14、h(charch);charPop();private:charstckSIZE;inttos;voidStack:Push(charch)(if(tos=SIZE)cout«"nStackisfuIIn"eIsestcktos=ch;tos+;)charStack:Pop()(if(tos=0)cout«HnStackisemptynH;return0;)tos;returnstcktos;)六、(10分)完成下面的函数,对有n个元素的数组a,使数组元素按逆序排列。voidinversednt*a,intn)()inti,*p;p二newintn;for(i=0;i<=n-1;i+)pi=ai;for(i=0;i<=n-1;i+)ai=pn-i-1;deIetep;七、(12分)下面的函数统计子字符串substr在字符串str中出现的次数,如substr在str中不出现,果则返回值0。请完成该函数。intstr_count(char*substr,char*str)intco
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开封大学《思维与逻辑学》2023-2024学年第二学期期末试卷
- 金华职业技术学院《地质与地貌学实践》2023-2024学年第二学期期末试卷
- 皮装饰制品的消费者行为研究考核试卷
- 电子乐器模块接口设计考核试卷
- 皮革服装制作中的节能环保技术考核试卷
- 游戏开发工具与编程语言考核试卷
- 矿物成因类型与勘查标志考核试卷
- 矿石质量评价与控制考核试卷
- 矿山开采与环境保护协调发展考核试卷
- 皮革护理的国际化发展考核试卷
- 4月25日全国儿童预防接种宣传日积极接种疫苗保护儿童健康课件
- 个人医保代办委托书
- 海南天之虹生物科技有限公司 年产36万吨饲料厂加工项目 环评报告
- 人教版美术六年级下册全册教学设计教案表格式
- 洛神赋赏析分析课件
- 文本信纸(A4横条直接打印版)模板
- 城市色彩设计指南
- 抗菌药物季度分析报告
- 小学标准作文稿纸模板
- 4-熔化焊与热切割作业基础知识(一)
- 初中语文八年级下册 综合性学习(含答案)
评论
0/150
提交评论