嵌入式笔试【1】

因为goto会破坏程序的栈逻辑

4、循环控制条件关键字goto的使用场景有哪些?

尽管 goto 语句在编程中被广泛认为是不良的实践,因为它可能破坏程序的结构,导致资源泄露,引发无限循环等问题,但是在一些特定场景中,使用 goto 仍然是合理的。这些场景包括:

  1. 错误处理和资源清理:在 C 和 C++ 等语言中,goto 常常被用于错误处理和资源清理。例如,在打开文件或分配内存后,如果发生错误,goto 可以用于跳转到标签,进行资源清理和错误报告。然而,这种用法在面向对象的编程语言中较少使用,因为它们有更高级的错误处理机制和垃圾回收功能。
  2. 跳出多重循环:在一些情况下,当需要在嵌套循环中满足某个条件时,可以使用 goto 直接跳转到循环之外。然而,这种用法要谨慎,因为过度使用可能导致代码难以理解和维护。通常,使用条件语句来替代 goto 是更好的选择。
  3. 实现非线性控制流程:在一些特殊情况下,goto 可以用于实现非线性控制流程,例如用于算法的某些特殊步骤,或者实现类似于事件驱动的系统。然而,这种用法应尽可能地避免,因为它们通常会使程序变得难以理解和维护。

总的来说,尽管 goto 在某些特定场景中可能有其用途,但在大多数情况下,应避免使用 goto,而应优先考虑使用结构化的控制流语句(如 if、for、while 等)来组织代码。

5. 有以下程序段, 执行后,mul 的值为  105 。

int a[ ]={1,3,5,7,9}; 
int mul, *data, x;
mul=1; 
data=&a[1]; 
for(x=0; x<3; x++) 
mul *= *(data+x);

该程序段使用指针data遍历数组a中的元素,然后将这些元素相乘,最后将结果存储在变量mul中。

程序执行流程如下:

  1. 定义一个数组a,包含5个元素:1, 3, 5, 7, 9。
  2. 定义一个整数变量mul,初始化为1。
  3. 定义一个指向数组a的指针data,并将其指向数组的第二个元素(即a[1])。
  4. 使用for循环遍历数组a的前三个元素(从索引0到2),并将它们相乘。
  5. 在每次循环中,使用指针data访问当前索引的元素,并将其乘以mul。然后将结果存储在mul中。
  6. 循环结束后,mul的值将是 3 * 5 * 7 = 105。

因此,执行完这段程序后,变量mul的值为105。

6. 请声明Func函数:返回值为“int *”类型,两个形参为“double”和“char *”;并定义Func函数的函数指针p,将Func函数的首地址赋给指针变量p。

// 声明Func函数  
int* Func(double d, char* str);  
  
// 定义Func函数  
int* Func(double d, char* str) {  
    // 在这里,你可以根据d和str的值创建一个int数组,并返回它的地址。  
    // 这里只是一个示例,返回一个固定值的指针。  
    static int arr[2] = {1, 2};  
    return arr;  
}  
  
// 定义Func函数的指针p  
int (*p)(double, char*) = Func;

7.什么是进程、线程,有什么区别?

进程是资源(CPU、内存等)分配的基本单位,线程是CPU调度和分配的基本单位。统一时间,如果CPU是单核,只有一个进程在执行。所谓并发,也是顺序,只不过由于切换速度太快,你以为这些进程在同步执行而已,多核CPU可以同一个时间点,有多进程在执行。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!

img

img

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)

img

最后

资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!

g" alt=“img” style=“zoom: 67%;” />

最后

资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!

更多资料点击此处获qu!!

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值