温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C语言有哪些面试题

发布时间:2021-11-22 15:28:59 来源:亿速云 阅读:210 作者:iii 栏目:大数据

这篇文章主要介绍“C语言有哪些面试题”,在日常操作中,相信很多人在C语言有哪些面试题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言有哪些面试题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1、c语言里面关键static的作用是什么?(看到这个问题读者可以自己先思考一下,再看答案)

答案:


        (1)、在函数体中,一个被声明为静态的变量在这一函数被调用过程中维持其值保持不变。

        (2)、在模块内,模块就是你写的".C"文件(在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但是不能被模块外其它函数访问,它相当于一个本地的一个静态全局变量(注意它和非静态全局变量的区别哦)。

        (3)、在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。也就是说,这个函数被限制在声明它的模块本地内使用,不可以在模块外使用。

2、写一个“标准”宏,这个宏输入两个参数并返回较小的一个;同时讲出 # 与  ##的作用区别?

答案:

    

         (1)、第一个问题可以这样来写,注意里面使用了三目运算符:

#define  MIN(x,y)   ((x)<(y)?(x):(y))

         (2)、"#"作用是把宏参数转化为字符串的运算符,而"##"是把两个宏参数连接的运算符:

#define  STR(arg)  #arg    

这里当参数 arg 为  hello ,则宏展开的结果是"hello"

#define  STR(arg)   name_y
#define  STR(arg)   name_##y
#define  STR(arg,arg2)   arg arg2##_##arg2##_arg2  

上面示例中,假设 arg 为  int , arg2 为 a ,则上面宏展开的结果为:

name_y
name_int
inta_a_a 

3、C语言里面关键字sizeof的作用是什么?

答案:

       

        (1)sizeof是在编译阶段处理,且不能被编译为机器码。还有一点,很多人会认为它是一个库函数;它的作用是计算出各种类型变量或者结构所占的字节数:

int a ,sizeof(a)
int *a,sizeof(a)
int a[10],sizeof(a)
int a[0],sizeof(a)
sizeof(void)
sizeof(void *)

上面演示结果:

4
4
40
 0
 1
4

4、请简述用户空间的内存分配及各空间保存的数据类型:

答案:

        (1) 用户空间供为3G,分为:栈空间,堆空间,数据区,代码段。

  • 栈空间保存:局部变量,函数形参,自动变量。栈空间特点,先进后出,空间由系统管理;栈空间生命周期所在函数执行结束后释放;栈空间保存的局部变量未初始化时,默认初始化为随机值。

  • 堆空间:由malloc , calloc ,ralloc,这些好函数分配的空间位堆空间,堆空间特点:先进先出,由用户管理。

  • 数据区:又分为.bss段、.data段、常量区。其中.bss段保存的是未初始化的全局变量,当全局变量未初始化时,系统默认初始化为0;常量区保存的是常量,里面保存的值不能被修改,只能做读操作;.data段是保存已经初始化的全局变量以及被static修饰的变量(静态变量)。数据区的声明周期是整个程序执行完之后再释放。

  • 代码段保存的是代码。

到此,关于“C语言有哪些面试题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI