网站大量收购独家精品文档,联系QQ:2885784924

c和c++面试题.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c和c面试题

1.c和c++中struct 有什么区别 答:c没有Protection行为,不可以定义函数,但可以有函数指针 c++有Protection行为,默认是public;可以定义函数。 2.c++中的struct和class有什么区别 答:从语法上讲,class和struct做类型定义时只有两点区别: 默认继承权限。如果不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理 成员的默认访问权限。Class的成员默认是private权限,struct默认是public权限。 除了这两点,class和struct基本就是一个东西。语法上没有任何其它区别。 3.如何判断一段程序是由c编译程序还是由c++编译程序编译的 答:有一个宏可以用来判断 #ifdef __cplusplus cout “c++”; #else cout “c”; #endif 4.c和c++有什么不同 答:从机制上:c是面向过程的(但c也可以编写面向对象的程序);c++是面向对象的,提供了类。但是,c++编写面向对象的程序比c容易。 从适用的方向:c适合要求代码体积小的,效率高的场合,如嵌入式,c++适合更上层的,复杂的;linux核心大部分是c写的,因为它是系统软件,效率要求极高。 从名称上也可以看出,c++比c多了+,说明c++是c的超集,那为什么不叫c+ 而叫c++呢,是因为c++比c来说扩充的东西太多了,所以就在c后面放上两个+,于是就成了c++ c语言是结构化编程语言,c++是面向对象编程语言 c++侧重于对象而不是过程,侧重于类的设计而不是逻辑的设计。 5.“引用”与指针的区别是什么? 答:指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差,而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。 6.class A{ virtual void func1(); void func2();} classB: class A {void func1(){cout “fun1 in class b” endl;} virtual void func2() {cout “fun2 in class B” endl;} } A中的func1和B中的func2都是虚函数 7.int id [sizeof(unsigned long)]; 这个对吗?为什么? 答:正确;这个sizeof是编译时运算符,编译时就确定了,可以看成和机器有关的常量。 8.某文件中定义的静态全局变量(或称静态外部变量)其作用域是()? 答:本文件。静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。 9.c++函数中值的传递方式有哪几种? 答:c++函数的三种传递方式为:值传递、指针传递和引用传递。 10.对于一个频繁使用的短小函数,在c语言中应用什么实现,在c++中应用什么实现 答:c用宏定义,c++用inline 11.引用与指针有什么区别 答:1引用必须被初始化,指针不必 2引用初始化以后不能被改变(c++ 11可以改变),指针可以改变所指的对象 3不存在指向空值的引用,但是存在指向空值的指针。 12.c++中virtual与inline的含义分别是什么? 答:在基类成员函数的声明前加上virtual关键字,意味着将该成员函数声明为虚函数。Inline与函数的定义体放在一起,使该函数称为内联。Inline是一种用于实现的关键字,而不是用于声明的关键字。 虚函数的特点,如果希望派生类能够重新定义基类的方法,则在基类中将该方法定义为虚方法,这样可以启用动态联编。 内联函数的特点,使用内联函数的目的是为了提高函数的运行效率。内联函数体的代码不能过长,因为内联函数省去调用函数的时间是以代码膨胀为代介的。内联函数不能包含循环语句,因为执行循环语句要比调用函数的开销大。 13.VC中,编译工具条内的Debug与Release选项是什么含义? 答:Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。Debug带有大量的调试代码,运行时需要相应的运行库,发布模式程序紧凑不含有调试代码和信息,直接可以运行(如果不需要运行库) 14.函数assert的用法? 答:断言assert是仅在debug版本起作用的宏,用于检查“不应该”发生的情况。程序员可以把

文档评论(0)

aicencen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档