C语⾔常见复试⾯试问题
C语⾔
1.static关键字的作⽤?
static局部变量只被初始化⼀次,下⼀次依据上⼀次结果值;
在函数外定义的静态变量——静态全局变量,该变量的作⽤域只能在定义该变量的⽂件中,不能被其他⽂件通过extern引⽤。
aspen液滴直径
static函数与普通函数有什么区别:static函数在内存中只有⼀份,普通函数在每个被调⽤中维持⼀份拷贝
3.volatile关键字的作⽤? volatile指定的关键字可能被系统、硬件、进程/线程改变,强制编译器每次从内存中取得该变量的值,⽽不是从被优化后的寄存器中读取。例如:硬件时钟;多线程中被多个任务共享的变量等。
<关键字的作⽤? ⽤于修饰变量或函数,表明该变量或函数都是在别的⽂件中定义的,提⽰编译器在其他⽂件中寻定义。
5.sizeof关键字的作⽤? sizeof是在编译阶段处理,且不能被编译为机器码。sizeof的结果等于对象或类型所占的内存字节数urlencode编码格式
6.结构体的赋值? C语⾔中对结构体变量的赋值或者在初始化或者在定义后按字段赋值。
7.函数参数⼊栈顺序? C语⾔函数参数⼊栈顺序是从右向左的
8.inline内联函数 inline关键字仅仅是建议编译器做内联展开处理,即是将函数直接嵌⼊调⽤程序的主体,省去了调⽤/返回指令
9.、“引⽤”与指针的区别是什么?
1. 引⽤必须被初始化,指针不必。
2. 引⽤初始化以后不能被改变,指针可以改变所指的对象。bootstrap admin
3. 不存在指向空值的引⽤,但是存在指向空值的指针。
指针通过某个指针变量指向⼀个对象后,对它所指向的变量间接操作。程序中使⽤指针,程序的可读性差;⽽引⽤本⾝就是⽬标变量的别名,对引⽤的操作就是对⽬标变量的操作。
10.、.h头⽂件中的ifndef/define/endif 的作⽤? 答:防⽌该头⽂件被重复引⽤。
11.#include<file.h> 与 #include "file.h"的区别? 答:前者是从Standard Library的路径寻和引⽤file.h,⽽后者是从当前⼯作路径搜寻并引⽤file.h。thrift和grpc区别
11.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 答 :全局变量储存在静态数据区,局部变量在堆栈中。
12.什么是平衡⼆叉树? 答 :左右⼦树都是平衡⼆叉树 且左右⼦树的深度差值的绝对值不⼤于1。
13.堆栈溢出⼀般是由什么原因导致的? 答 :1.没有回收垃圾资源 2.层次太深的递归调⽤
14.冒泡排序算法的时间复杂度是什么? 答 :O(n^2)c语言学习网站免费
15.什么函数不能声明为虚函数? 答:constructor
16、队列和栈有什么区别? 答:队列先进先出,栈后进先出
17、不能做switch()的参数类型 答 :switch的参数不能为实型。
18、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。
19.什么是预编译,何时需要预编译? 答:预编译⼜称为预处理,是做些代码⽂本的替换⼯作。处理#开头的指令,⽐如拷贝#include包含的⽂件代码,#define宏定义的替换,条件编译等,就是为编译做的预备⼯作的阶段,主要处理#开始的预编译指令,预编译指令指⽰了在程序正式编译前就由编译器进⾏的操作,可以放在程序中的任何位置。 c编译系统在对程序进⾏通常的编译之前,先进⾏预处理。c提供的预处理功能主要有以下三种:1)宏定义 2)⽂件包含 3)条件编译
1、puts()将⼀个字符串输出到终端
2、gets()从终端输⼊⼀个字符串到字符数组,并且得到⼀个函数值。
3、strcat()链接两个字符数组中的字符串。
4、strcpy()字符串复制函数。
5、strcmp()⽐较字符串作⽤。
6、strlen()测试字符串长度的函数不包括“\0”
7、strlwr()将字符串中的⼤写字母转换为⼩写字母。
8、strupr()将字符串中的⼩写字母转换为⼤写字母冒泡排序代码c语言
20.函数   (1)⼀个源程序由多个函数组成。   (2)C程序的执⾏从main()函数开始;   (3)所有函数都是平⾏的;   (4)函数分类;可以分为标准和⾃定义,还可以分为有参函数和⽆参函数。
21.通过指针修改内容的汇编过程   1.到指针变量的地址   2.通过指针变量的地址,到内容的地址   3.通过地址到内容   4.修改内容

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。