嵌入式linux面试题

2019-07-12 17:53发布

基础试题(C语言)

一、ANSI C/C++方面的知识
一.1、简答题。下面的题目必须全部答对才给分(20分):
1、 如何在C中初始化一个字符数组。
2、 如何在C中为一个数组分配空间。
3、 如何初始化一个指针数组。
4、 如何定义一个有10个元素的整数型指针数组。
5、 s[10]的另外一种表达方式是什么。
6、 GCC3.2.2版本中支持哪几种编程语言。
C,C++,java,ada,fortran
7、 要使用CHAR_BIT需要包含哪个头文件。 #include #define CHAR_BIT 8
Description
CHAR_BIT is the number of bits for smallest object that is not a bit-field (byte).
Portability
CHAR_BIT conforms to ISO/IEC 9899:1990 (C90) and ISO/IEC 9899:1999 (C99). 一般计算机都把1字节定义为8位,但在有些老式的机器上有7位或者9位的情况,所以在编码的时候通常为了兼容性,把1字节的位数不直接用8而且是用CHAR_BIT宏定义来表示。
8、 对(-1.2345)取整是多少? C语言有以下几种取整方法:
1、直接赋值给整数变量。如:
int i = 2.5; 或 i = (int) 2.5;
这种方法采用的是舍去小数部分,可以用于你的问题。
2、C/C 中的整数除法运算符“/”本身就有取整功能(int / int),而下面介绍的取整函数返回值是double。整数除法对正数的取整是舍去小数部分,可以用于你的问题。但是整数除法对负数的取整结果和使用的C编译器有关。
3、使用floor函数。floor(x)返回的是小于或等于x的最大整数。如:
floor(2.5) = 2
floor(-2.5) = -3
4、使用ceil函数。ceil(x)返回的是大于x的最小整数。如:
ceil(2.5) = 3
ceil(-2.5) = -2
floor()是向负无穷大舍入,floor(-2.5) = -3;ceil()是向正无穷大舍入,ceil(-2.5) = -2。floor函数可以用于你的问题。

9、 如何让局部变量具有全局生命期。
10、C中的常量字符串应在何时定义?
11、如何在两个.c文件中引用对方的变量。
12、使用malloc之前需要做什么准备工作。
13、realloc函数在使用上要注意什么问题。 extern void *realloc(void *mem_address, unsigned int newsize); 功能:先按照newsize指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来mem_address所指内存区域,同时返回新分配的内存区域的首地址。即重新分配存储器块的地址。
14、strtok函数在使用上要注意什么问题。 char *strtok(char *s, const char *delim); strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为