您的当前位置:首页正文

经典嵌入式工程师面试C语言题目

来源:帮我找美食网
华清远见嵌入式学院

嵌入式C语言面试题目汇总(一)

一、预处理(Preprocessor)

1、用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)

2、写一个\"标准\"宏MIN ,这个宏输入两个参数并返回较小的一个。

二、死循环(Infinite loops)

3、嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?

三、数据声明(Data declarations)

4、用变量a给出下面的定义

a)、一个整型数(An integer)

b)、一个指向整型数的指针( A pointer to an integer)

c)、一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an intege)

d)、一个有10个整型数的数组( An array of 10 integers)

e)、 一个有10个指针的数组,该指针是指向一个整型数的。(An array of 10 pointers to integers)

f)、 一个指向有10个整型数数组的指针( A pointer to an array of 10 integers) g)、 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)

h)、 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )

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

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

华清远见嵌入式学院

2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。

3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。

6、关键字const有什么含意?

7、关键字volatile有什么含意?并给出三个不同的例子。

1)、一个参数既可以是const还可以是volatile吗?解释为什么。 2)、一个指针可以是volatile 吗?解释为什么。 3)、下面的函数有什么错误: int square(volatile int *ptr) {

return *ptr * *ptr;

}

四、位操作(Bit manipulation)

8、嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。

五、访问固定的内存位置(Accessing fixed memory locations)

9、嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。

10、下面的代码输出是什么,为什么? void foo(void) {

unsigned int a = 6; int b = -20;

(a+b > 6) ? puts(\"> 6\") : puts(\"<= 6\"); }

华清远见嵌入式学院

11、评价下面的代码片断:

unsigned int zero = 0;

unsigned int compzero = 0xFFFF;

12、int a = 5, b = 7, c;

c = a+++b;

因篇幅问题不能全部显示,请点此查看更多更全内容

Top