嵌入式及手机开发[笔试题目]
千辛万苦搞来的,不过很多题目都见过了,比如《想成为嵌入式程序员应知道的0x10个基本问题》上面的
。所以有些答案就可以直接去http://blog.csdn.net/ShorminHsu/archive/2007/03/24/1539458.aspx找。
这里先放上题目,答案等后期整理出来吧。
题目:
1。用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)。
2。写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。
3。预处理器标识#error的目的是什么?
4。嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?
5。写一个数据类型:一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个
整型数。
6。嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a
的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。
7。嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址
为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。
8。字符串倒序。
9。float a,b,c 问下列两个的值:
(a+b)+c == (b+a)+c
(a+b)+c == (a+c)+b
10。关键字static的作用是什么?
关键字const有什么含意?
11。关键字volatile有什么含意?并给出三个不同的例子。
1)一个参数既可以是const还可以是volatile吗?解释为什么。
2) 一个指针可以是volatile 吗?解释为什么。
3)下面的函数有什么错误:
int square(volatile int *ptr)
{
return *ptr * *ptr;
}
12。嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址
为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。
13。动态内存分配
下面的代码片段的输出是什么,为什么?
char *ptr;
if ((ptr = (char *)malloc(0)) == NULL)
puts("Got a null pointer");
else
puts("Got a valid pointer");
14。Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。
例如,思考一下下面的例子:
#define dPS struct s *
typedef struct s * tPS;
以上两种情况的意图都是要定义dPS 和 tPS 作为一个指向结构s指针。哪种方法更好呢?(如果有的话)
为什么?
15。中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。具
代表事实是,产生了一个新的关键字 __interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断
服务子程序(ISR),请评论一下这段代码的。
__interrupt double compute_area (double radius)
{
double area = PI * radius * radius;
printf("/nArea = %f", area);
return area;
}
16。下面的代码输出是什么,为什么?
void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b > 6) ? puts("> 6") : puts("<= 6");
}
17。评价下面的代码片断:
unsigned int zero = 0;
unsigned int compzero = 0xFFFF;
/*1's complement of zero */
18。C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?
int a = 5, b = 7, c;
c = a+++b;
19。编写一个可重入的函数。
20。编写ISR需要注意哪些地方?
21。如何设计一个内存拷贝函数,考虑效率及强健性原则。
22。怎样理解"地址对齐","内存分配","处理器字节序"的意义,应用上有什么需要注意的地方吗?举例。
如何测试一个处理器的字节序?
23。至少举两个例子从硬件和微码执行的角度说明CPU响应中断的过程。
24。如何实现任务调度?
25。如何避免优先级反转?
26。任务锁和终端锁之间的区别,应用上应该怎么去选择?
27。进程间通讯与同步的手段有哪些?举例说明。
以上部分答案参考 :
《想成为嵌入式程序员应知道的0x10个基本问题》
http://blog.csdn.net/ShorminHsu/archive/2007/03/24/1539458.aspx
其余待整理。