C语言面试题_2015.4.28

1:说说面向过程和面向对象

面向过程编程采取的是时间换空间的策略,因为在早期计算机配置低,内存小,如何节省内存则成了首要任务,哪怕是运行的时间更长。随着硬件技术的发展,硬件不再成为瓶颈,相反更好的模拟现实世界、系统的可维护性等问题凸显出来,于是面向对象设计应运而生。当下:应用在PC机上的一般应用系统,由于不太需要考虑硬件的限制,而系统的可维护性等方面却要求很高,一般采用面向对象方式;而在内存限制有所要求的嵌入式系统,则大多采用面向过程方式进行设计编程。

面向过程是分析解决问题的步骤,然后用函数把这些步骤一步一步的实现,然后在使用的时候一一调用则可。面向对象是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。


2:c++中类的三个特性?简单介绍这三个特性

封装:

  封装是指将数据与具体操作的实现代码放在某个对象内部,使这些代码的实现细节不被外界发现,外界只能通过接口使用该对象,而不能通过任何形式修改对象内部实现,正是由于封装机制,程序在使用某一对象时不需要关心该对象的数据结构细节及实现操作的方法。使用封装能隐藏对象实现细节,使代码更易维护,同时因为不能直接调用、修改对象内部的私有信息,在一定程度上保证了系统安全性。

继承:

  继承来源于现实世界,一个最简单的例子就是孩子会具有父母的一些特征,即每个孩子都会继承父亲或者母亲的某些特征,当然这只是最基本的继承关系,现实世界中还存在着更复杂的继承,面向对象之所以使用继承机制主要是用于实现代码的复用多个类所公用的代码部分可以只在一个类中提供,而其他类只需要继承即可。

多态:

  多态与继承纤细紧密,是面向对象编程中另一个突出的特征,所谓的多态是指在继承体系中,所有派生类都从基类继承接口,但由于每个派生类都是独立的实体,因此在接收同一消息的时候,可能会生成不同的响应。多态的作用作为隐藏代码实现细节,使得代码能够模块化;扩展代码模块,实现接口重用。简单来说:一种行为产生多种效果。

3:
64位
struct {
int a;
char ch;
short b;
}student;
sizeof(student)大小;

这个题考的时字节对齐。4字节对齐,所以sizeof(student)大小是8


4:typedef

定义新的类型名以代替已有的类型名。


5:enum和它的作用

枚举,是一种数据类型。这种类型的变量的值只能是所指定的若干名字之一。



6:struct/函数/class类  对他们的理解

在C语言结构体中,只能定义数据成员,不能定义函数成员,是C语言提供的处理一组不同类型数据的类型。

函数是实现某一特定功能的一段代码的封装。

class类是面向对象编程语言的对象,是用户自定义的数据类型。包含对象的属性和行为。


7:static和作用

static是关键词,可以用来修饰变量和函数,用来限定作用域和生存期。


8:const 作用
const为类型修饰符,定义数据为只读类型,不可修改。

9:c和c++动态内存如何创建和释放,有什么特点

C语言提供的动态内存函数有malloc,calloc和realloc三个函数,释放有free函数,申请的内存空间不会进行初始化。

C++中用new和delete来创建和释放内存,对象在创建的同时要自动执行构造函数,在消亡之前要自动执行解析函数。



10:c中指针和c++中引用的区别

指针和引用都是内存的概念,指针是一个实体,而引用只是一块内存的别名;引用只能在定义时被初始化一次,之后不可变,指针可变;引用不能为空,指针内可以为空。


11:c函数能返回多个值吗?如果想返回多个怎么办?

C函数只能返回一个值,如果想返回多个值,可以用指针、数组、全局变量、函数参数等形式在函数中进行处理。



12:extern作用

置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外,extern也可用来进行链接指定。


qianfeng 2015-4-28

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值