试题五(共14分)
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】代码安全漏洞往往是系统或者网络被攻破的头号杀手。在C语言程序开发中,由于C语言自身语法的一些特性,很容易出现各种安全漏洞。因此,应该在C程序开发中充分利用现有开发工具提供的各种安全编译选项,减少出现漏洞的可能性。
刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
试题五(共14分)
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】代码安全漏洞往往是系统或者网络被攻破的头号杀手。在C语言程序开发中,由于C语言自身语法的一些特性,很容易出现各种安全漏洞。因此,应该在C程序开发中充分利用现有开发工具提供的各种安全编译选项,减少出现漏洞的可能性。
【问题2】(4分)
图5.2给出了C程序的典型内存布局,请回答如下问题。

(1)请问图5.1的代码第9行的变量authenticated保存在图5.2所示的哪个区域中?
(2)请问stack的两个典型操作是什么?
(3)在图5.2中的stack区域保存数据时,其地址增长方向是往高地址还是往低地址增长方向?
(4)对于图5.1代码中的第9行和第10行代码的两个变量,哪个变量对应的内存地址更高?
(1)stack区。
(2)入栈、出栈
(3)往低地址方向增长
(4)authenticated
(1)根据说明,图5.1中的变量authenticated是局部变量,而局部变量通常存放在stack(栈)区中,因此该变量保存在图5.2所示的stack区域中。
(2)stack(栈)的两个典型操作是入栈和出栈。入栈操作是将数据压入栈顶,出栈操作是从栈顶弹出数据。
(3)在图5.2中的stack区域保存数据时,其地址增长方向是往低地址方向增长,即新分配的内存地址低于之前分配的内存地址。
(4)对于图5.1代码中的第9行和第10行代码的两个变量,由于它们都是局部变量,因此都存放在栈区。而堆栈的特点是先进后出,且地址增长方向是往低地址增长。由于authenticated先进入堆栈,所以其对应的内存地址更高。
本文链接:【问题2】(4分) 图5.2给出了C程序的典型内存布局,请回答如下问题。 (1)请问图5.1的代码
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!
