嵌入式C考核试题

更新时间:2024-06-04 16:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

<题目>

编写:<单击输入编写人>

1. 填空:

1.1. 4分

char str[ ]= \char *p=str; int n=10;

sizeof(str)=____________________ sizeof(p)= ____________________ sizeof(n)= ____________________ void func(char str[100]) {

sizeof(str)= ____________________ }

注明你的答案是基于____________CPU和__________编译器。

1.2. 10分

int *func1(void) {

int a = 3; return &a; }

int *func2(void) {

static int a = 3; return &a; }

void func3(int *b) {

*b = 4; }

main() {

int *p, *q;

p = func1();

深圳南瑞科技有限公司 第 1 页

q = func2();

printf(\

func3(p); func3(q);

printf(\

p = func1(); q = func2();

printf(\}

三处打印的结果分别是_________________, __________________, __________________。

2. 简答,并说明原因

2.1. 4分

指针在任何情况下都可进行>, <, >=, <=, = =运算?

2.2. 4分

char s;

s的取值范围是0~255吗?

2.3. 4分

如下结构体的长度是多少? struct a {

char c1; int c2; };

2.4. 8分

void getmemory(char **p, int num) {

*p=(char *) malloc(num); }

void test(void) {

char *str=null;

getmemory(&str,100);

深圳南瑞科技有限公司 第 2 页

strcpy(str,\printf(“%s”,str);

}

printf(str)的结果是___________________,为什么?请描述程序执行过程。

3. 编程:

3.1. 12分

假设有一个寄存器,地址位于0x100000, 其0~31为分别用于使能或者禁止如下中断(为1使能,为0禁止):

0 SPI 1 I2C 2 LCD 3 NAND 11 NOR

试编写C代码实现如下接口: (1)使能/禁止某一号中断

(2)在SPI,I2C,NAND模块中使能或者禁止本身的中断

为实现上述功能创建一个工程目录,本题答案直接提交工程目录和C代码和H文件。

3.2. 12分

编写一个命令解析器函数cmd_parse(),可以接受\至\每一个命令接收到后,分别调用函数cmd1_ops(), cmd2_ops(), cmd3_ops()至cmd10_ops()。要求该命令解析器具有很好的可扩展性。

为实现上述功能创建一个工程目录,本题答案直接提交工程目录和C代码和H文件。

3.3. 12分

一个工程包含如下文件,这些文件位于同一个目录: board_a.c(板子a的硬件初始化)

tcp.c ip.c udp.c socket.h

nand_driver.c

nand_interface.h (含nand读写函数声明) spi_driver.c

spi_reg.h(SPI寄存器的宏定义) spi_interface.h(含SPI读写接口)

一些被各模块共享的数据函数,位操作函数:

深圳南瑞科技有限公司 第 3 页

math.c math_interface.h bitops.c bitops_interface.h

试考虑重新规划该工程的目录组织,文件的存放位置,以及文件的命名。

4. 工程实践

4.1. 15分

从公司产品(包括后台、保护装置、调试台、调试代码)中,找出一段你认为可以改进的代码,最好是自己工作相关的代码,进行重构,并说明理由。

代码直接提交,理由在这里书写。

4.2. 15分

从自己熟悉的嵌入式CPU中,找一个包含流水线的CPU,以该CPU为例简述流水线的作用,以及在编程中,如何充分利用流水线以提高性能。

深圳南瑞科技有限公司 第 4 页

本文来源:https://www.bwwdw.com/article/igm6.html

Top