文章
7
粉丝
80
获赞
0
访问
70
(1)
- PCB(进程控制块)位于内核空间(操作系统管理进程的核心数据结构)。
- 执行 scanf() 等待键盘输入时,进程因等待I/O事件处于阻塞状态(Blocked)。
(2)
- main() 函数的代码位于代码段(Text Segment)(存储程序可执行指令)。
- 直接调用的 scanf() 和 printf() 需要通过驱动程序实现功能:
- scanf() 涉及键盘输入,需调用键盘驱动程序读取硬件输入;
- printf() 涉及显示器输出,需调用显示驱动程序控制硬件输出。
(3)
- 变量 ptr 是函数内局部指针变量,分配在栈区(Stack)(存储局部变量和函数调用信息)。
- 变量 length 若未分配在寄存器中,作为局部变量也分配在栈区。
- ptr 指向的字符串由 malloc(100) 动态分配,位于堆区(Heap)(动态内存分配区域)。
评分及理由
(1)得分及理由(满分2分)
得分:2分
理由:学生准确回答了PCB位于内核空间,并正确指出执行scanf()时进程处于阻塞状态。答案与标准答案完全一致。
(2)得分及理由(满分3分)
得分:3分
理由:学生正确指出main()函数的代码位于代码段(Text Segment),并准确说明scanf()和printf()需要通过驱动程序实现功能,涉及键盘和显示器的硬件操作。答案与标准答案完全一致。
(3)得分及理由(满分3分)
得分:2分
理由:学生正确回答了ptr指向的字符串位于堆区,以及length若未分配在寄存器中则位于栈区。但错误地将ptr分配在栈区,实际上ptr是全局变量,应分配在可读写数据段。因此扣1分。
题目总分:2+3+2=7分
登录后发布评论
暂无评论,来抢沙发