复试版期末考试题三_第1页
复试版期末考试题三_第2页
复试版期末考试题三_第3页
复试版期末考试题三_第4页
复试版期末考试题三_第5页
已阅读5页,还剩3页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 C+期末题(三)-一、 选择填空题(共 20 小题,每小题 2 分,共 40 分)。1. 关于 C+与 C 语言关系的描述中,( )是错误的。a.C 语言是 C+语言的一个子集b.C 语言与 C+语言是兼容的 c.C+语言对 C 语言进行了一些改进d.C+语言和 C 语言都是面象的2按照标识符的要求,( )符号不能组成标识符。a.连接符 b.下划线c.大小写字母 d.数字字符为了避免嵌套的 if-else 语句的二义性,C 语言规定 else 总是与(缩排位置相同的 if在其之前未配对的 if在其之前未配对的最近的 if d.同一行上的 if)组成配对关系。4. 在 a.1 b.0 c.6d

2、.2a 3=1,3,2,4,5,6,0;中,a22的值是( )。5. 设char *s;,以下正确的表达式是( )。 a.s=computer;b.*s=computer;c.*s=computer; d.*s=c;6. 对于*pa5;的描述中,( )是正确的。a.pa 是一个指向数组的指针,所指向的数组是 5 个型元素b.pa 是一个指向某数组中第 5 个元素的指针,该元素是c.pa 5表示某个元素的第 5 个元素的值d.pa 是一个具有 5 个元素的指针数组,每个元素是一个型变量型指针7. 在下列表示的方法中,( )是正确的。已知:m=10; &x=m;&y=10;&z;a.b.c.d.f

3、loat &t=&m;8. 下列 for 循环的次数为( )。for(i=0, x=0; !x&i=5; i+)a.5b.6c.1d.无限9. 对于 C/C+语言的函数,下列叙述中正确的是( )。 a.函数的定义不能嵌套,但函数调用可以嵌套b.函数的定义可以嵌套,但函数调用不能嵌套 c.函数的定义和调用都不能嵌套d.函数的定义和调用都可以嵌套在一个被调用函数中,关于 return 语句使用的描述,( )是错误的。被调用函数中可以不用return 语句被调用函数中可以使用多个return 语句被调用函数中,如果有返回值,就一定要有 return 语句被调用函数中,一个 return 语句可以返回

4、多个值给调用函数在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( )。内联函数 b.重载函数 c.递归调用 d.嵌套调用使用 fseek 函数可以实现的操作是( )。改变文件指针的当前位置 b.文件的顺序读写c.文件的随机读写d.以上都不对下列外部类 b.自动类标识符中,( )的可见性与存在性不一致。c.静态类d.寄存器类14. 在如下结构定义中,不正确的是(a.struct studentno;char name10; float score;b.struct stud20no;char name10; float score;c.struct student

5、no;char name10;)。float score; stud20; d.structno;char name10; float score;stud100 ;15. 将两个字符串连接起来组成一个字符串时,选用(a.strlen( ) b.strcpy( ) c.strcat( ) d.strcmp( )( )不是构造函数的特征构造函数的函数名与类名相同 b.构造函数可以重载c.构造函数可以设置缺省参数 d.构造函数必须指定类型说明17. 已知:类 A 中一个成员函数说明如下:void Set(A&a);其中,A&的含义是( )。 a.指向类 A 的指针为ab.将 a 的地址值赋给变量

6、Set)函数。c.a 是类 A 对象的,用来作函数 Set()的参数d.变量 A 与 a 按位与作为函数Set( )的参数18. 已知:pr( )函数是一个类的常成员函数,它无返回值,下列表示中,( a.void pr( ) const;b.const void pr ( ); c.void const pr( );d.void pr(const);关于虚函数的描述中,( )是正确的。虚函数是一个 sic 类型的成员函数虚函数是一个非成员函数基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数 d.派生类的虚函数与基类的虚函数具有不同的参数个数和类型关于 new 运算符的下列描述中,

7、( )是错的。它可以用来动态创建对象和对象数组使用它创建的对象和对象数组可以使用运算符 delete 删除使用它创建对象时要调用构造函数使用它创建对象数组时必须指定初始值)是正确的。1、D 2、A 3、C 4、C 5、B6、D 7、A 8、B 9、A 10、D11、A 12、A 13、C 14、B 15、C16、D 17、C 18、A 19、C 20、D二、问答题1、 虚析构函数解答要点:对象销毁时,需要调用析构函数。在多态调用时,是用基类的指针如果析构函数是非作用?派生类的对象。虚函数,则基类指针只能对象销毁时,没有基类的析构函数,而不能派生类的析构函数,导致派生类调用派生类的析构函数,只是

8、调用了基类的析构函数。如果把析构函数定义成虚函数,则可克服这个问题。2、 拷贝构造函数在哪几种情况下调用?解答要点:用一个对象初始化另一个对象时当用对象作为函数参数传递时当函数返回对象时3、 函数重载与函数覆盖解答要点:不同,它们与多态关系?函数重载是指函数名相同,而函数的参数个数或类型不同;覆盖是指在派生类中成员函数与基类成员函数的函数名、参数个数、类型与返回值均相同;C+中正是通过虚函数的覆盖,实现多态的功能。4、 C+继承是如何工作的?解答要点:继承使得派生类能够使用基类的公有和保护成员,从而实现代码的复用,派生类可以增加成员,也可以隐藏和覆盖基类的成员。对于公有继承,基类成员的权限在派

9、生类保持不变。5、 类与对象解答要点:区别?类是类型,是对象的抽象,对象是类的具体实例。一个类可以有多个对象,每个对象都有自己的单元,而类不占单元。三、(6 分)分析下面程序的运行结果#include class Bpublic:B()B(i)b=i;virtual void virfun()coutB:virfun() called.n;private:b;class D:public Bpublic:D()D(private:d;i,j):B(i)d=j;void virfun()coutvirfun();void main()D *pd=new D; fun(pd);三、运行结果为:D:

10、virfun() called.四、(9 分)下面的程序可以统计命令行第一个参数中出现的字母个数,请填充下面空白,完成程序。#include #include void main(argc,( char*)argv;)char *str;count=0; if(argc2)exit(1);str= argv1 ; while(*str)if(isalpha(*str+) count+;prf(n 字母个数:%dn,count);提示:isalpha(ch)函数功能是检查ch 是否是字母四、填空char * argv1*str+五、(8 分) 定义一个字符栈类 Stack(包括类的实现)。数据成

11、员包括一个存放字符的数组stck 和一个栈指针 tos。栈数组的尺寸由常量 SIZE 确定。栈的基本操作为 Push()和 Pop()。constSIZE=27;class Stackpublic:Stack():tos(0); void Push(char ch); char Pop();private:char stckSIZE; tos;void Stack:Push(char ch)if(tos=SIZE) coutnStack is fulln;elsestcktos=ch;tos+;char Stack:Pop()if(tos=0)coutnStack is emptyn; return 0;tos-;return stcktos;六、(10 分)完成下面的函数,对有 n 个元素的数组a,使数组元素按逆序排列。void inverse(*a,n)i,*p;p=newn;for(i=0;i=n-1;i+) pi=ai;for(i=0;i=n-1;i+) ai=pn-i-1;delete p;七、(12 分)下面的函数统计子字符串 substr 在字符串 str 中出现的次数,如果 substr 在 str中不出现,则返回值 0。请完成该函数。 str_count(char *substr, char *str)count=0;char *har

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论