文章
183
粉丝
0
获赞
1
访问
39.4k

评分及理由
(1)得分及理由(满分2分)
学生答案正确指出进程控制块位于内核区,执行scanf()等待时进程处于阻塞态。与标准答案完全一致。得2分。
(2)得分及理由(满分3分)
学生答案正确指出main函数代码位于只读代码段,并正确识别出scanf()和printf()需要调用驱动程序。与标准答案一致。得3分。
(3)得分及理由(满分3分)
本题需要分析三个部分:ptr变量、length变量、ptr指向的字符串的存储位置。
标准答案:ptr(全局变量)位于可读写数据段;length(局部变量)若不在寄存器则位于用户栈;ptr指向的字符串(malloc分配)位于堆区。
学生第一次识别结果:ptr分配在“运行时堆型”(应为“运行时堆区”),length分配在“可读写数据段”,ptr指向“运行时堆区”。其中,ptr变量的位置判断错误(应为数据段而非堆区),length变量位置判断错误(应为栈而非数据段),ptr指向的字符串位置判断正确。
学生第二次识别结果:ptr分配在“只读代码段”,length分配在“可读写数据段”,ptr指向“运行时堆区”。其中,ptr变量的位置判断错误(应为数据段而非代码段),length变量位置判断错误(应为栈而非数据段),ptr指向的字符串位置判断正确。
综合两次识别,学生对于ptr和length的存储区域判断均存在逻辑错误,仅对ptr指向的字符串位于堆区判断正确。因此,本小题得1分(仅给字符串位置正确的分数)。
题目总分:2+3+1=6分
登录后发布评论
暂无评论,来抢沙发