文章

16

粉丝

42

获赞

14

访问

4.9k

头像
2025年计算机学科专业基础综合试题 - 第46题回答
操作系统
发布于2025年10月16日 12:12
阅读数 366


(1) PCB 位置与进程状态

• PCB(进程控制块) 位于内核区,因为 PCB 是操作系统管理进程的数据结构,由内核维护。

• 执行 scanf() 等待键盘输入时,该进程处于阻塞状态(等待 I/O 完成)。
(2) main() 代码区域与需驱动函数

• main() 函数的代码位于只读代码区(因为程序代码是只读的)。

• 直接调用的 scanf() 函数需要通过执行驱动程序实现,因为它涉及键盘输入的硬件交互。
(3) 变量分配区域

• 指针变量 ptr 是局部变量,在函数栈中分配,因此位于用户栈区域。

• 如果 length 没有分配在寄存器中,它是局部变量,也会位于用户栈区域。

• ptr 指向的字符串是通过 malloc 动态分配的,位于堆区
 


评分及理由

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

学生答案正确指出PCB位于内核区,以及执行scanf()时进程处于阻塞状态。这两点与标准答案完全一致,因此得满分2分。

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

学生正确指出main()函数的代码位于只读代码区,并正确识别scanf()需要通过驱动程序实现。但遗漏了printf()函数,printf()输出到控制台同样需要执行驱动程序。因此扣1分,得2分。

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

学生正确指出ptr指向的字符串位于堆区,但错误地认为ptr变量本身在用户栈区域。ptr是全局变量,应分配在可读写数据段,而不是用户栈。length变量的分配位置回答正确。由于ptr变量的区域回答错误,扣1分,得2分。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发