干货C/C++程序员面试基础知识

Posted 速学c语言

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了干货C/C++程序员面试基础知识相关的知识,希望对你有一定的参考价值。

点击蓝字速学C语言”关注我们哟!


【干货】C/C++程序员面试基础知识(一)


1、问题:Stdio.h 的主要作用?

回答:stdio .h头文件定义了三个变量类型、一些宏和各种函数来执行输入和输出。


2、问题: \n 、\r 与\t什么意思?

回答:'\n' 换行, 将当前位置移到下一行开头;

\r是回车, 将当前位置移到本行开头;

\t水平制表(HT) (跳到下一个TAB位置。


3、问题:|与|| 、&与&&的区别?

回答:首先 &和|称为位运算符(按位进行与或),&&和||(按结果真假或0/1进行与或)称为逻辑运算符;逻辑运算符性能比较好。

他检查第一个操作数的值,再根据该操作数的值进行操作,可能根本就不处理第二个操作数。使用&&和||运算符来代替&和|,性能会有一定提高。


【干货】C/C++程序员面试基础知识(一)


4、问题: 后缀名为.c与.cpp?

回答:.c是c语言的源程序格式,.cpp是c++语言的源程序格式;C89规定,在任何执行语句之前,在块的开头声明所有局部变量。

在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。


5、问题: 不使用任何中间变量如何将a/b的值进行交换?

回答:

①使用加减运算实现交换,a=a+b; b=a-b; a=a-b;(在a+b与a-b可能数据溢出)

②使用局部变量,int temp=a; a=b; b=temp;

③使用异或运算,a^=b; b^=a; a^=b;


6、问题:c和c++有什么不同?

回答:C是一个结构化的语言,重点在于算法和数据结构,对语言本身C是C++的子集。

C程序的设计首先考虑的是如何通过一个过程实现对输入进行运算后输出,对于C++考虑的是如何构造一个对象模型,让这个模型能够匹配对应的问题,通过获取对象的状态信息得到输出或实现过程控制。

因此,C与C++的最大区别在于,他们解决问题的思路方法是不一样的。

C实现了C++中过程化控制及其他相关功能,而在C++中相对于C还有所加强,引入了重载、内联函数、异常处理等,同时拓展了面向对象的设计内容,如类、继承、虚函数、模板等。

附:C是面向过程的、C++面向对象(在C++中一样可以写出与C一样过程化的程序,所以只能说C++具有面向对象的特性)、Java是真正面向对象化的程序。


【干货】C/C++程序员面试基础知识(一)


7、问题: 为什么标准头文件都有

#ifndef _xxxxxx; #define _xxxxxx #endif?

回答:这样定义是为了避免重复定义。重复声明可以,但是重复定义是不可以的。重复声明只要名称完全相同即可。但是重复定义会出现编译错误的,即使同名也不可以。


8、问题: #include<head.h>与#include “head.h”的区别?

回答:尖括号< >表明这个文件是一个工程或标准的头文件,在预处理查找过程中会首先检查系统预定义的目录,如果没有找到就报错。

双引号" "表明这是一个用户自定义的头文件,查找文件的时候会先在当前文件目录中查找,如果没有找到再去系统预定义的目录中查找,如果没有找到再报错。



版权申明:内容来源网络,版权归原创者所有。

除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。



你想要的C/C++全套资料尽在这里!


END

扫描下方的微信二维码

菜单栏回复‘源码’可以获取项目源码

今天就聊到这里啦,大家记得 点赞收藏,分享转发,关注 哟!

点一下你会更好看耶

以上是关于干货C/C++程序员面试基础知识的主要内容,如果未能解决你的问题,请参考以下文章

C++干货 | C/C++程序员面试易错题

[C/C++笔试面试题] 程序设计基础 - 位操作函数数组篇

嵌入式求职面试软件基础知识-C/C++

C/C++ 语言 零碎知识点的总结干货

重磅干货 | 五万字长文总结 C/C++ 知识(上)

重磅干货 | 五万字长文总结 C/C++ 知识(下)