导航菜单
首页 >  嵌入式考试题库及答案解析  > C语言笔试题(嵌入式软件开发)

C语言笔试题(嵌入式软件开发)

1、一个由C/C++编译的程序占用的内存分为栈区、堆区、全局区、文字常量区、程序代码区存放什么数据?

栈区:一开始编译器就分配好的,函数的局部变量,参数,返回数据。

堆区:由程序员自己进行分配的

全局区(静态区)static):全局变量、静态数据和常量

文字常量:常量字符串

程序代码段:存放函数体的二进制代码

2、static作用?

全局变量:不赋值,默认为零

局部变量:限定作用域,局部函数内使用。

静态函数:只限本模块(C源文件作用域)调用,其他模块(其他C文件)不能调用该静态函数。

3、switch和if区别?

switch类型可以是byte,short,char,都可以隐含转换为int。但是不能是实型(浮点数)

switch是以空间换取时间;if是以时间换取空间。

4、用一个宏表示一年中有多少秒?为什么要用UL?

#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL

UL:当数值比较大时,乘以另外更大的数值时,int类型可能会越界,用ul强制类型转换可以解决这个顾虑。

5、写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个

#define MIN(x,y) x{1},{2,3}};则a[0][1]的值为0

相关推荐: