- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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版本起作用的宏,用于检查“不应该”发生的情况。程序员可以把
您可能关注的文档
最近下载
- JBL PartyBox 1000用户中文手册.pdf
- 2023年牛津译林版七年级英语下册《Unit 4》单元测试(附答案).doc VIP
- 《计算机网络技术基础 》(王崇刚)教案 (理论部分) 网络体系结(一)网络体系结构概述.pdf VIP
- AP物理2 单元练习题1 Fluids and Thermal Physics.pdf VIP
- 《计算机网络技术基础 》(王崇刚)教案 (实训部分) 上机实训(七) .docx VIP
- EPC工程设计管理主要内容.docx
- 装修公司融资商业计划书(精选5).pptx
- 生化期末考试吉林大学2015.pdf VIP
- 计算机网络技术基础与实训.pptx VIP
- 2023年牛津译林版七年级英语下册Unit8 测试题(附答案).doc VIP
文档评论(0)