收藏 分销(赏)

c++期末考试题及答案.doc

上传人:二*** 文档编号:4522523 上传时间:2024-09-26 格式:DOC 页数:8 大小:37.50KB
下载 相关 举报
c++期末考试题及答案.doc_第1页
第1页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

2、1 b.0 c.6 d.25. 设char *s;,以下正确的表达式是 。 a.s=puter; b.*s=puter; c.*s=puter; d.*s=c;6. 对于int *pa5;的描述中, 是正确的。 a.pa是一个指向数组的指针,所指向的数组是5个int型元素 b.pa是一个指向某数组中第5个元素的指针,该元素是int型变量 c.pa 5表示某个元素的第5个元素的值 d.pa是一个具有5个元素的指针数组,每个元素是一个int型指针7. 在以下表示引用的方法中, 是正确的。:int m=10; a.int &x=m; b.int &y=10; c.int &z; d.float &t

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

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

5、0;float score; c.struct student int no; char name10;float score; stud20; d.structint no;char name10;float score;stud100 ;15. 将两个字符串连接起来组成一个字符串时,选用 函数。 a.strlen( ) b.strcpy( ) c.strcat( ) d.strcmp( )16. ( )不是构造函数的特征 a.构造函数的函数名与类名一样 b.构造函数可以重载 c.构造函数可以设置缺省参数 d.构造函数必须指定类型说明17. :类A中一个成员函数说明如下:void Set(A

6、&a);其中,A&的含义是( )。 a.指向类A的指针为a b.将a的地址值赋给变量Set c.a是类A对象的引用,用来作函数Set的参数 d.变量A与a按位与作为函数Set( )的参数18. :print( )函数是一个类的常成员函数,它无返回值,以下表示中, 是正确的。 a.void print( ) const; b.const void print( ); c.void const print( ); d.void print(const);19. 关于虚函数的描述中, 是正确的。 a.虚函数是一个static类型的成员函数 b.虚函数是一个非成员函数 c.基类中说明了虚函数后,派生类

7、中将其对应的函数可不必说明为虚函数 d.派生类的虚函数与基类的虚函数具有不同的参数个数和类型20. 关于new运算符的以下描述中, 是错的。 a.它可以用来动态创立对象和对象数组 b.使用它创立的对象和对象数组可以使用运算符delete删除 c.使用它创立对象时要调用构造函数 d.使用它创立对象数组时必须指定初始值二、问答题15分1、 3分虚析构函数有什么作用?2、 3分拷贝构造函数在哪几种情况下调用?3、 4分函数重载与函数覆盖有什么不同,它们与多态有什么关系?4、 3分C+继承是如何工作的?5、 2分类与对象有什么区别?三、6分分析下面程序的运行结果#include class Bpubl

8、ic:B()B(int i)b=i;virtual void virfun()coutB:virfun() called.n;private:int b;class D:public Bpublic:D()D(int i,int j):B(i)d=j;private:int d;void virfun()coutvirfun();void main()D *pd=new D;fun(pd);四、9分下面的程序可以统计命令行第一个参数中出现的字母个数,请填充下面空白,完成程序。#include #include void main(int argc, argv;)char *str;int co

9、unt=0;if(argc2)exit(1);str= ;while(*str)if(isalpha( ) count+;printf(n字母个数:%dn,count);提示:int isalpha(int ch)函数功能是检查ch是否是字母五、8分 定义一个字符栈类Stack包括类的实现)。数据成员包括一个存放字符的数组stck 和一个栈指针tos。栈数组的尺寸由常量SIZE确定。栈的根本操作为Push和Pop。六、(10分)完成下面的函数,对有n个元素的数组a,使数组元素按逆序排列。void inverse(int *a, int n)七、12分下面的函数统计子字符串substr在字符串s

10、tr中出现的次数,如果substr在str中不出现,那么返回值0。请完成该函数。int str_count(char *substr, char *str)一、 选择填空题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、 虚析构函数有什么作用?解答要点:对象销毁时,需要调用析构函数。在多态调用时,是用基类的指针访问派生类的对象。如果析构函数是非虚函数,那么基类指针只能访问基类的析构函数,而不能访问派生类的析构函数,导致派生类对象销毁时,没有调用派生类的析构

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

12、有继承,基类成员的访问权限在派生类保持不变。5、 类与对象有什么区别?解答要点:类是类型,是对象的抽象,对象是类的具体实例。一个类可以有多个对象,每个对象都有自己的存储单元,而类不占存储单元。三、运行结果为:D:virfun() called.四、填空 char * argv1 *str+五、8分 定义一个字符栈类Stack包括类的实现)。数据成员包括一个存放字符的数组stck 和一个栈指针tos。栈数组的尺寸由常量SIZE确定。栈的根本操作为Push和Pop。 const int SIZE=27;class Stackpublic:Stack():tos(0);void Push(char

13、ch);char Pop();private:char stckSIZE;int 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(int *a, int n) int i,*p;p=new intn;for(i=0;i=n-1;i+)p

14、i=ai;for(i=0;i=n-1;i+)ai=pn-i-1;delete p;七、12分下面的函数统计子字符串substr在字符串str中出现的次数,如果substr在str中不出现,那么返回值0。请完成该函数。int str_count(char *substr, char *str)int count=0;char *pChar;if(substr=NULL|str=NULL) return count;while(*str!=0)pChar=substr;while(*pChar=*str)pChar+;if(*pChar=0)count+;break;else str+;/Match while(*pCh.) statementstr+;/Match while(*str.) statementreturn count; 教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。. .word.zl.

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 初中其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服