文章
108
粉丝
40
获赞
1
访问
4.7k
1)PCB位于内核区,当执行scanf()等待键盘输入的时候,进程处于阻塞态
2)main函数的代码位于只读数据代码区,当调用printf()和scanf()的时候需要靠驱动程序实现
3)ptr被分配到栈区,如果length没有被分配到寄存器中,会被分配到栈区,ptr指向的字符位于堆区
评分及理由
(1)得分及理由(满分2分)
学生答案正确指出PCB位于内核区,执行scanf()时进程处于阻塞态,与标准答案完全一致。得2分。
(2)得分及理由(满分3分)
学生答案正确指出main()函数代码位于只读代码段(只读数据代码区表述基本正确),并正确识别scanf()和printf()需要驱动程序实现。但标准答案中明确为“只读代码段”,学生表述为“只读数据代码区”虽不够精确但含义接近,且函数识别正确。得3分。
(3)得分及理由(满分3分)
学生答案错误:ptr是全局变量,应分配在可读写数据段(如BSS段),而非栈区;length是局部变量,若未分配在寄存器则应在用户栈,此部分正确;ptr指向的字符串由malloc分配,位于堆区,此部分正确。因ptr分配位置错误,扣1分。得2分。
题目总分:2+3+2=7分
登录后发布评论
暂无评论,来抢沙发