更多课程 选择中心

C/C++培训
达内IT学院

400-111-8989

C/C++经典面试题及答案【一】

  • 发布:C++培训
  • 来源:C++职场
  • 时间:2019-06-18 11:08

面试题 1:简述 strcpy、sprintf 与 memcpy 的区别

三者主要有以下不同之处: 

(1)操作对象不同,strcpy 的两个操·作对象均为字符串,sprintf 的操作源对象可以是多种数据类型,

目的操作对象是字符串,memcpy 的两个对象就是两个任意可操作的内存地址,并不限于何种数据类型。

(2)执行效率不同,memcpy 最高,strcpy 次之,sprintf 的效率最低。 (3)实现功能不同,strcpy 主要实现字符串变量间的拷贝,sprintf 主要实现其他数据类型格式到字 符串的转化,memcpy 主要是内存块间的拷贝。

 说明:strcpy、sprintf 与 memcpy都可以实现拷贝的功能,但是针对的对象不同,根据实际需求,来 选择合适的函数实现拷贝功能。

面试题 2:用 C 编写一个死循环程序

while(1)

{ }

说明:很多种途径都可实现同一种功能,但是不同的方法时间和空间占用度不同,特别是对于嵌入 式软件,处理器速度比较慢,存储空间较小,所以时间和空间优势是选择各种方法的首要考虑条件。

面试题 3:编码实现某一变量某位清 0 或置 1

给定一个整型变量 a,写两段代码,第一个设置 a 的 bit 3,第二个清 a 的 bit 3,在以上两个操作中, 要保持其他位不变。

【答案】

#define BIT3 (0x1 << 3 )
 
Satic int a;

设置 a 的 bit 3:

void set_bit3( void )

{

a |= BIT3;

//将 a 第 3位置 1

}

清 a 的 bit 3

void set_bit3( void )

{

a &= ~BIT3; //将 a 第 3位清零

}

说明:在置或清变量或寄存器的某一位时,一定要注意不要影响其他位。所以用加减法是很难实现的。

面试题 4:评论下面这个中断函数

中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展——让标准 C 支持中断。具体代表事实是,产生了一个新的关键字__interrupt。下面的代码就使用了__interrupt 关键字去定义 一个中断服务子程序(ISR),请评论以下这段代码。

__interrupt double compute_area (double radius)

{

double area = PI * radius * radius;

printf(" Area = %f", area);

return area;

}

【答案】

这段中断服务程序主要有以下四个问题:

(1)ISR 不能返回一个值。

(2)ISR 不能传递参数。

(3)在 ISR 中做浮点运算是不明智的。

(4)printf()经常有重入和性能上的问题。 注意:本题的第三个和第四个问题虽不是考察的重点,但是如果能提到这两点可给面试官留下一个 好印象。

面试题 4:构造函数能否为虚函数

构造函数不能是虚函数。而且不能在构造函数中调用虚函数,因为那样实际执行的是父类的对应函数,因为自己还没有构造好。析构函数可以是虚函数,而且,在一个复杂类结构中,这往往是必须的。 析构函数也可以是纯虚函数,但纯虚析构函数必须有定义体,因为析构函数的调用是在子类中隐含的。 说明:虚函数的动态绑定特性是实现重载的关键技术,动态绑定根据实际的调用情况查询相应类的虚函数表,调用相应的虚函数。

面试题 5:谈谈你对面向对象的认识

面向对象可以理解成对待每一个问题,都是首先要确定这个问题由几个部分组成,而每一个部分其实就是一个对象。然后再分别设计这些对象,最后得到整个程序。传统的程序设计多是基于功能的思想来进行考虑和设计的,而面向对象的程序设计则是基于对象的角度来考虑问题。这样做能够使得程序更加的简洁清晰。 

 说明:编程中接触最多的“面向对象编程技术”仅仅是面向对象技术中的一个组成部分。发挥面向 对象技术的优势是一个综合的技术问题,不仅需要面向对象的分析,设计和编程技术,而且需要借助必要的建模和开发工具。

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:零基础如何学好C++
下一篇:C++程序员会被市场淘汰吗?

几个C语言经典基础算法(含代码)

不得不知道的八个C语言面试题

C/C++后台开发面试难不难,京东二面

C/C++后台开发面试难不难,来看看京东

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

  • 搜索抖音号

    搜索抖音号:1821685962

    免费领取达内课程视频学习资料

Copyright © 2021 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省