C语言面试深度解析:嵌入式开发笔试题
需积分: 8 118 浏览量
更新于2024-08-04
收藏 37KB DOC 举报
"C语言实际工作中的面试题"
在C语言的实际工作中,面试通常会涉及到对语言基础、指针操作、内存管理、数据结构、宏定义以及程序执行流程等多方面的理解。以下是对这些面试题的详细解答:
1. 填空题
- sizeof(char*) = 4 (通常在32位系统中,指针占用4个字节)
- sizeof(char[3]) = 3 (数组长度为3,每个字符占1字节)
- sizeof(char*[3]) = 12 (一个指针数组包含3个指针,每个指针4字节)
- sizeof(char[]) = 6 (字符串"const"包含6个字符,末尾还有一个隐含的'\0'字符)
- sizeof(char[8]) = 8 (分配8个字节,但只用到6个,剩余2字节未用)
- sizeof(char*) = 4 (字符串常量实际上是一个指向字符数组的指针)
2. a[q-p] = 2 (q-p表示从a开始到a[2]的偏移量,即2)
3. 大字节模式:78 56 34 12 小字节模式:12 34 56 78 (32位整数的高字节存储在低地址,低字节存储在高地址)
4. 输出结果是50, 20 (函数fun中的cp和dp分别被赋值为x+y和x-y,即50和-20)
5. z的值为22 (N被展开为3,Y(5+1)计算得到18,所以z=2*(3+18)=22)
6. a1 = 1 (d为0,非0为真,所以a1为1),a2 = 0 (b和c不相等,表达式b!=c为真,但赋值给整型变量a2时,真值转换为1,所以a2为0)
7. 结构体大小计算:
- sizeof(DATE) = 12 (long i 占8字节,int k[5]占20字节,但因为对齐规则,实际大小是12字节)
- sizeof(max) = 12 (DATE类型的联合体变量max)
- 所以printf的结果是:12 + 12 = 24
8. 这段代码中,sum函数有静态变量b,每次调用时b的值都会累加,而局部变量c仅在函数内部有效。因此,输出为:
7, 11, 15, 19, 23
9. 局部变量存在于栈(stack)中,全局变量存在于数据段(data segment)中,动态申请数据存在于堆(heap)中。
10. 程序的运行结果:
1, 2, 3, 4, 5,
以上是C语言面试题的详细解答,涵盖的知识点包括指针、数组、内存管理、数据类型、运算符优先级、宏定义、结构体与联合体以及变量的作用域。理解和掌握这些知识点对于C语言开发者至关重要。
2009-02-25 上传
2011-06-01 上传
2012-11-17 上传
2023-01-13 上传
2022-09-23 上传
2022-09-21 上传
2024-05-22 上传
2020-07-24 上传
2022-09-14 上传
zeropoint127
- 粉丝: 17
- 资源: 72
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫