文章
185
粉丝
0
获赞
0
访问
35.0k

评分及理由
(1)得分及理由(满分2分)
学生两次识别结果均正确指出进程控制块位于内核区,执行scanf()等待键盘输入时进程处于阻塞态。与标准答案完全一致。得2分。
(2)得分及理由(满分3分)
学生两次识别结果均正确指出main()函数代码位于只读代码段(第一次识别为“R段代码段”,可理解为只读代码段,不扣分)。对于需要驱动程序实现的函数,第一次识别为scanf()和printf(),第二次识别为scanf()和printf()(但表述为“系统调用”,驱动程序是实现系统调用的底层模块,此表述在操作系统语境下可接受,且与标准答案一致)。因此答案正确。得3分。
(3)得分及理由(满分3分)
本题有三个小问。学生两次识别结果均正确指出length变量分配在用户栈,ptr指向的字符串位于运行时堆(即堆区)。对于变量ptr的分配区域,学生的两次识别结果存在矛盾:第一次识别先说“ptr被分配在运行时堆区”,紧接着又说“ptr被分配在可读写数据段”;第二次识别重复了同样的矛盾表述。根据C语言语义,ptr是一个全局指针变量,其本身应存储在可读写数据段(.data或.bss),而非堆区。学生虽然给出了正确位置“可读写数据段”,但同时也给出了错误位置“运行时堆区”,造成了逻辑矛盾。因此,对于“ptr被分配在哪个区域”这一问,不能给分。其余两问正确。故本小题扣1分,得2分。
题目总分:2+3+2=7分
登录后发布评论
暂无评论,来抢沙发