文章
52
粉丝
0
获赞
0
访问
1.5k
评分及理由
(1)得分及理由(满分2分)
第一问:学生回答计算f(10)需要调用函数f1 55次,这是错误的。正确的调用次数应为10次,因为每次递归调用参数n减1,从10到1共10次。第二问:学生回答执行"return n*f1(n-1);"会递归调用f1,这是正确的,对应第16行的call指令。因此第一问扣1分,第二问得1分,本小题得1分。
(2)得分及理由(满分2分)
第一问:学生正确指出第12条指令是条件转移指令。第二问:学生正确列出了第16、20、30条指令一定会使程序跳转执行。因此本小题得2分。
(3)得分及理由(满分4分)
第一问:学生正确计算出第17行指令的虚拟地址为0040102AH。第二问:学生正确计算了偏移量为FFFFFFD6H。第三问:学生正确判断为小端方式。因此本小题得4分。
(4)得分及理由(满分4分)
第一问:学生正确指出原因是超过2^31-1,发生溢出。第二问:学生建议将int改为double,这个修改虽然可以扩大表示范围,但标准答案建议使用long long更合适,因为这是整数运算。考虑到double是浮点数,可能损失精度,但确实可以解决溢出问题,因此给分。本小题得4分。
(5)得分及理由(满分4分)
第一问:学生回答"高32位不全为0或1",这个表述不够准确,标准答案应为"高33位为非全0或非全1"。第二问:学生建议加一条条件转移指令,这个回答不够具体,标准答案应为加一条"溢出自陷指令"。因此第一问扣1分,第二问扣1分,本小题得2分。
题目总分:1+2+4+4+2=13分
登录后发布评论
暂无评论,来抢沙发