文章
116
粉丝
0
获赞
5
访问
14.4k

评分及理由
(1)得分及理由(满分2分)
学生回答:进程控制块位于“只读代码段”,进程状态为“阻塞态”或“阻塞状态”。
评分分析:标准答案为“进程控制块位于内核区”。进程控制块(PCB)是操作系统内核管理进程的数据结构,必然位于内核区,而非用户空间的只读代码段。因此,关于PCB位置的回答存在逻辑错误,扣1分。关于进程状态,学生回答“阻塞态”是正确的,可得1分。本题共2分,学生得1分。
(2)得分及理由(满分3分)
学生回答:main()函数位于“可读写数据段”,其直接调用的“scanf, printf”需要通过驱动程序实现。
评分分析:标准答案为“main()函数的代码位于只读代码段”。代码(包括main函数)应存放在只读代码段(.text段),而非可读写数据段。因此,关于main函数位置的回答存在逻辑错误,扣1分。关于需要驱动程序的函数,学生正确指出了scanf和printf(它们涉及I/O操作,最终需要调用驱动程序),这部分回答正确,可得2分。本题共3分,学生得2分。
(3)得分及理由(满分3分)
学生回答:变量ptr位于“运行时的堆”;变量length位于“用户栈”;ptr指向的字符串位于“运行时的堆”。
评分分析:标准答案为“ptr位于读/写数据段,length位于用户栈,ptr指向的字符串位于堆区”。
① 对于变量ptr:ptr是全局变量,应分配在可读写数据段(.data或.bss段),而非堆区。学生回答错误,扣1分。
② 对于变量length:学生回答“用户栈”是正确的,可得1分。
③ 对于ptr指向的字符串:该字符串空间由malloc(100)动态分配,位于堆区。学生回答“运行时的堆”是正确的,可得1分。
本题共3分,学生得2分。
题目总分:1+2+2=5分
登录后发布评论
暂无评论,来抢沙发