slogan 专业知识问答平台!
佰学网 >教育 > 立知教育 > c语言面试经常问到的问题

c语言面试经常问到的问题

原创 2023-04-20 22:00:01

c语言面试经常问到的问题有:描述⼀下gcc的编译过程;内存的最⼩存储单位以及内存的最⼩计量单位分别是;变量的声明与定义有啥区别;描述⼀下变量的命名规则 ;等等。

c语言面试经常问到的问题具体如下:

1、描述⼀下gcc的编译过程?

gcc编译过程分为4个阶段:预处理、编译、汇编、链接。

预处理:头⽂件包含、宏替换、条件编译、删除注释

编译:主要进⾏词法、语法、语义分析等,检查⽆误后将预处理好的⽂件编译成汇编⽂件。

汇编:将汇编⽂件转换成 ⼆进制⽬标⽂件

链接:将项⽬中的各个⼆进制⽂件+所需的库+启动代码链接成可执⾏⽂件

2、内存的最⼩存储单位以及内存的最⼩计量单位分别是?

内存的最⼩存储单位为 ⼆进制位, 内存的最⼩计量单位 字节

3、#include 与#include ""的区别?

include到系统指定⽬录寻找头⽂件,#include ""先到项⽬所在⽬录寻找头⽂件,如果没有找再到系统指定的⽬录下寻找

4、描述⼀下变量的命名规则

变量名有字⺟、数值、下划线组成,但不能以数值开头

5、变量的声明与定义有啥区别?

声明变量 不需要 建⽴存储空间, 变量的定义需要建⽴存储空间

6、谈谈c语⾔中有符号和⽆符号的区别?

有符号:数据的最⾼位为符号位,0表示正数,1表示负数

⽆符号:数据的最⾼位不是符号位,⽽是数据的⼀部分

7、谈谈计算机中补码的意义

统⼀了零的编码

将符号位与其他位统⼀处理将减法运算转换成加法运算

8、谈谈数组的特点

同⼀个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的

9、数组的分类

数组的分类主要是:静态数组、动态数组两类。

静态数组:类似int arr[5];在程序运⾏就确定了数组的⼤⼩,运⾏过程不能更改数组的⼤⼩。

动态数组:主要是在堆区申请的空间,数组的⼤⼩是在程序运⾏过程中确定,可以更改数组的⼤⼩。

10、描述⼀下⼀维数组的不初始化、部分初始化、完全初 始化的不同点

不初始化:如果是局部数组 数组元素的内容随机 如果是全局数组,数组的元素内容为0

部分初始化:未被初始化的部分⾃动补0

完全初始化:如果⼀个数组全部初始化 可以省略元素的个数 数组的⼤⼩由初始化的个数确定

11、谈谈数组名作为类型、作为地址、对数组名取地址的 区别?

数组名作为类型:代表的是整个数组的⼤⼩

数组名作为地址:代表的是数组⾸元素的地址

对数组名取地址:代表的是数组的⾸地址

12、谈谈你对⼆维数组在物理上以及逻辑上的数组维度理解

⼆维数组在逻辑上是⼆维的,在物理上是⼀维的

13、描述⼀下函数的定义与函数的声明的区别

函数定义:是指对函数功能的确⽴,包括指定函数名、函数类型、形参及其类型、函数体等,它是⼀个完整的、独⽴的函数单位。

函数的声明:是把函数的名字、函数类型以及形参的个数、类型和顺序(注意,不包括函数体)通知编译系统,以便在对包含函数调⽤的语句进⾏编译时,据此对其进⾏对照检查(例如函数名是否正确,实参与形参的类型和个数是否⼀致)

14、描述⼀下指针与指针变量的区别

指针:没存中每⼀个字节都会分配⼀个32位或64位的编号,这个编号就是地址, ⽽指针就是内存单元的编号。

指针变量:本质是变量 只是该变量存放的是空间的地址编号

15、关键字const是什么含意?

只要能说出const意味着“只读”。

16、什么是预编译,何时需要预编译

1、总是使用不经常改动的大型代码体。

2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。

预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。

17、关键字static的作用是什么?

答案:定义静态变量

18、char * constp char const * p const char *p 上述三个有什么区别?

答案:

char * const p; //常量指针,p的值不可以修改

char const * p;//指向常量的指针,指向的常量值不可以改 const char *p; //和char const *p

char * const p是一个char型指针,指针是常量,不允许修改,即类似p=q的语句是错误的; char const * p和const char * p是同一种char型指针,指针指向的字符被看作是常量,不允许修改,即类似*p = q的语句是错误的。

19、一个32位的机器,该机器的指针是多少位答案:

指针是多少位只要看地址总线的位数就行了。80386以后的机子都是32的数据总线。所以指针的位数就是4个字节了。

©本文版权归作者所有,任何形式转载请联系我们:xiehuiyue@offercoming.com。

来自佰学网

刘老师

刘老师

中国人大教育学硕士

关注