文章
327
粉丝
40
获赞
2
访问
40.2k
(1)PCB在内核区,执行scanf()的时候,进程处于阻塞态
(2)main函数的代码位于只读代码段, 调用的scanf()和print()需要通过驱动实现
(3)ptr被分配到了栈中,length如果没有被分配到寄存器,会被分配到栈中,ptr指向的字符串位于堆中
评分及理由
(1)得分及理由(满分2分)
学生答案正确指出PCB位于内核区,执行scanf()时进程处于阻塞态,与标准答案完全一致。得2分。
(2)得分及理由(满分3分)
学生答案正确指出main()函数代码位于只读代码段,并正确识别scanf()和printf()需要驱动程序实现。但标准答案中明确要求指出"直接调用的哪些函数",学生答案中"print()"应为"printf()",存在拼写错误,但含义正确,不影响得分。得3分。
(3)得分及理由(满分3分)
学生答案指出ptr被分配到栈中,这是错误的。ptr是全局变量,应分配在可读写数据段(BSS段或数据段),而不是栈中。变量length分配在栈中正确,ptr指向的字符串在堆中正确。由于ptr的分配位置错误,扣1分。得2分。
题目总分:2+3+2=7分
登录后发布评论
暂无评论,来抢沙发