博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
嵌入式及手机开发[笔试题目]
阅读量:4071 次
发布时间:2019-05-25

本文共 1981 字,大约阅读时间需要 6 分钟。

嵌入式及手机开发[笔试题目]

千辛万苦搞来的,不过很多题目都见过了,比如《想成为嵌入式程序员应知道的0x10个基本问题》上面的

。所以有些答案就可以直接去找。

这里先放上题目,答案等后期整理出来吧。

题目:

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://fogji.baihongyu.com/

你可能感兴趣的文章
ping 报name or service not known
查看>>
FTP 常见问题
查看>>
zookeeper单机集群安装
查看>>
do_generic_file_read()函数
查看>>
Python学习笔记之数据类型
查看>>
Python学习笔记之特点
查看>>
Python学习笔记之安装
查看>>
shell 快捷键
查看>>
VIM滚屏操作
查看>>
EMC 2014存储布局及十大新技术要点
查看>>
linux内核内存管理(zone_dma zone_normal zone_highmem)
查看>>
将file文件内容转成字符串
查看>>
循环队列---数据结构和算法
查看>>
优先级队列-数据结构和算法
查看>>
链接点--数据结构和算法
查看>>
servlet中请求转发(forword)与重定向(sendredirect)的区别
查看>>
Spring4的IoC和DI的区别
查看>>
springcloud 的eureka服务注册demo
查看>>
eureka-client.properties文件配置
查看>>
MODULE_DEVICE_TABLE的理解
查看>>