国庆策划01 知识挑战赛:检验一下学习成果吧! 你好,我是课程编辑小新。现在还是国庆假期,先祝你假期快乐!

到现在为止,课程已经更新过半,不知道你的学习进度如何了?是不是还在和前面某节课相互“battle”,或者定了个计划,预备先梳理完前置知识再来学习课程,但忙着忙着就忘了……悠闲的假期,正是你沉下心深度学习,跟上大部队节奏的好机会。

我和LMOS老师商量之后,特意策划了三期加餐内容,作为国庆的特别策划。今天是第一期,我们先做做题,检验一下自己的学习成果,查漏补缺;第二期我会邀请两位课代表分享分享他们的学习方法、经验;第三期我们再公布今天主观题的参考答案。

接下来,就让我们进入知识挑战赛这个环节吧!点击下面的按钮即可挑战客观题,一共10道题目,5道单选题,5道多选题,满分100分,系统自动评分。

接下来是两道主观题,请听题。

第一题

在前面课程里,我们一起揭秘了C语言编译器的“搬砖”日常,搞清楚了C语言会如何处理各种类型变量、各种运算符、流程控制以及由它们组成的函数,并把这些内容加以转换,对应到机器指令。你知道在这个转换过程中,C编译器为了提高程序的执行性能,会有哪些额外的操作呢?试试概括一下这些操作?

第二题

在[堆与栈的区别和应用]这节课中,我们知道了堆与栈区别。同时,我们也清楚了C语言的函数的局部变量和返回地址都保存在栈中,如果有人对这栈中数据破坏就会导致安全隐患,例如改写返回地址,使之指向别的恶意程序。那问题来了,请问我们有什么栈保护机制么,可以用你的语言描述一下么?

期待你的回答,我们下节课见!

参考资料

https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e8%ae%a1%e7%ae%97%e6%9c%ba%e5%9f%ba%e7%a1%80%e5%ae%9e%e6%88%98%e8%af%be/%e5%9b%bd%e5%ba%86%e7%ad%96%e5%88%9201%20%e7%9f%a5%e8%af%86%e6%8c%91%e6%88%98%e8%b5%9b%ef%bc%9a%e6%a3%80%e9%aa%8c%e4%b8%80%e4%b8%8b%e5%ad%a6%e4%b9%a0%e6%88%90%e6%9e%9c%e5%90%a7%ef%bc%81.md