富兰电子嵌入式软件开发笔试题与知识点详解
4星 · 超过85%的资源 | 下载需积分: 9 | DOC格式 | 70KB |
更新于2025-01-07
| 34 浏览量 | 举报
富兰电子09年应届生软件开发工程师的笔试题目涉及了嵌入式软件的基础概念和技术。这次考试主要考察了以下几个关键知识点:
1. 字符数组与字符指针的区别:
- `char *a="abc";`:这是一个字符型指针,它指向一个静态存储的字符串"abc"的首地址,字符串本身存储在常量区,不随指针变化而改变。
- `char b[]="abc";`:b是一个字符数组,它也包含字符串"abc",但数组会分配足够的空间存放完整的字符串,包括结束符'\0',占用4个字节。
- `char c[3]="abc";`:c是长度为3的字符数组,只能存储最多3个字符,因为数组大小不包括结束符,所以c数组实际只有两个字符。
2. 数据类型在Windows NT下32位系统中的字节长度:
- 整型(int)占用4个字节。
- 长整型(long int)占用8个字节。
- 字符型(char)占用1个字节。
- 结构体和联合体的大小计算:
- `TEST_INFO_T`结构体中,`str`数组占用4个字节(假设每字符占1字节),`Params`联合体中,由于`iPara1`是int,占据4字节,`iPara2`数组占据5字节(动态分配,但这里不考虑动态内存分配),`iPara3`也是int,再加`iPara4`,共10字节。加上`cPara5`和`cPara6`数组(假设`cPara6`占11字节,包括结束符),结构体总大小为`4 + 10 + 11 = 25`字节。
- `TEST_INFO_T stTestInfo`的大小为28字节,这可能是因为在结构体外部定义时,增加了一些额外的开销。
3. 动态内存分配和内存大小:
- `void *p = malloc(strlen("hello world"));`:`malloc`返回的是指向动态分配内存的指针,但在32位系统中,指针本身通常占4个字节,但实际分配的内存大小是`strlen("hello world")`,即11字节(包括结束符),这里是内存大小而不是指针大小。
4. 字符数组、指针和整数变量的大小:
- `char str[]="Hello";`:`str`数组占用6个字节,包括字符串本身和结束符。
- `char *p=str;`:指针`p`占用4个字节。
- `int n=10;`:`n`是整数,占用4个字节。
5. 函数`CheckFileName`中的变量:
- 全局字符数组`acFileName_p[2][50]`在整个程序运行期间有效,每个子数组占用50字节,共100字节,但这里只提到数组,未提及具体内容。
这份笔试题主要测试应聘者的C语言基础、数据结构、内存管理以及对嵌入式环境的理解,涵盖了字符数组、指针、数据类型大小、内存分配以及全局变量的概念。通过这些问题,富兰电子旨在评估求职者能否在实际项目中处理字符串处理、内存操作和基本的系统编程技能。
相关推荐