文章

57

粉丝

0

获赞

0

访问

10.5k

头像
2025年(408)计算机学科专业基础综合试题 - 第46题回答
操作系统
发布于2025年12月18日 15:58
阅读数 211


评分及理由

(1)得分及理由(满分2分)

学生答案:进程控制块位于内核区;进程处于阻塞态。

标准答案:PCB位于内核区;执行scanf()时进程处于阻塞态。

学生回答完全正确。得2分。

(2)得分及理由(满分3分)

学生答案:main()函数代码位于用户栈;调用scanf()函数,printf()函数需执行驱动程序来实现。

标准答案:main()函数的代码位于只读代码段;其直接调用的scanf()和printf()需要执行驱动程序。

学生答案存在逻辑错误:main()函数的代码应位于只读代码段(.text段),而非用户栈。用户栈是用于存放函数调用时的局部变量、返回地址等运行时数据,而非代码本身。此错误属于对进程地址空间布局理解有误。但学生正确指出了scanf()和printf()需要驱动程序,这部分正确。

扣分:由于对main()函数代码位置的回答错误,扣除此小题的大部分分数。考虑到其正确指出了需要驱动程序的函数,给予部分分数。得1分。

(3)得分及理由(满分3分)

学生答案(综合两次识别):ptr被分配在可读写数据段区域(或运行时堆区域,存在矛盾);length被分配在用户栈区域;ptr指向的字符串位于运行时堆区域。

标准答案:ptr位于读/写数据段;length(若不在寄存器)位于用户栈;ptr指向的字符串位于堆区。

学生答案存在部分逻辑错误和矛盾: 1. 对于ptr的存储位置,第一次识别和第二次识别的总结都提到了“可读写数据段区域”,这是正确的(因为ptr是全局变量)。但第二次识别结果中又出现了“ptr被分配在运行时堆区域”的错误表述,这可能是识别重复或混淆。根据“禁止扣分”原则,若存在识别矛盾,以正确表述为准,此处不因矛盾而额外扣分。 2. length位于用户栈,回答正确。 3. ptr指向的字符串位于运行时堆区域,回答正确。 因此,该小题答案核心内容正确。

得3分。

题目总分:2+1+3=6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发