文章
212
粉丝
0
获赞
0
访问
28.4k

评分及理由
(1)得分及理由(满分2分)
学生答案“内核区 阻塞态”与标准答案“PCB位于内核区,执行scanf()时进程处于阻塞态”完全一致。得2分。
(2)得分及理由(满分3分)
学生答案第一部分“只读代码段”正确,得1分。第二部分“分配和释放内存的功能”存在逻辑错误。题目问的是main函数直接调用的哪些函数需要通过执行驱动程序实现,标准答案为scanf和printf。学生答案提到的“分配和释放内存的功能”对应malloc和free,它们属于库函数对系统调用的封装,其核心内存管理由操作系统内核完成,但通常不归类为需要“执行驱动程序”的I/O操作。驱动程序特指管理硬件(如键盘、显示器、磁盘)的软件。因此,此部分回答错误,扣2分。本题得1分。
(3)得分及理由(满分3分)
学生答案的三个空依次为“运行时堆”、“用户栈”、“用户栈”。
第一空:变量ptr被分配的区域。ptr是全局变量,应位于可读写数据段。学生答“运行时堆”(即堆区)错误,堆区是ptr指向的内存所在区域,而非ptr本身所在区域。扣1分。
第二空:变量length被分配的区域。若不在寄存器,则位于用户栈。学生答案正确,得1分。
第三空:ptr指向的字符串位于的区域。字符串存储在malloc动态分配的内存中,位于堆区(即运行时堆)。学生答“用户栈”错误,扣1分。
本题得1分。
题目总分:2+1+1=4分
登录后发布评论
暂无评论,来抢沙发