文章
121
粉丝
0
获赞
0
访问
14.5k
1)n=0时,f1会出现死循环,因为i是不断递增的,n-1所表示的是最大的无符号整数,无论怎么加都不可能超过他,所以会死循环。如果变成有符号整数,不会死循环,因为出现负数,直接就结束了。
2)float是浮点数,最大的表示范围是2^23,刚好不越界,所以相同。机器数分别是:00FF FFFFH和4B7F FFFFH
3) float在32位的时候最多有23位尾数,f2(24)已经溢出。
4)总共有32位,f1(31)则是有32个1,符号位是1,因此是负数。最大的n是30.
5)f2是float,尾数全为0,符号位是0,表示正无穷。最大的n是23。
评分及理由
(1)得分及理由(满分4分)
学生正确解释了n=0时死循环的原因:无符号整数n-1为最大值,条件永真。同时正确指出改为int后不会死循环,因为n-1=-1,条件不成立。但未明确说明无符号比较和带符号比较的区别,解释略显简略。扣1分。
得分:3分
(2)得分及理由(满分3分)
学生正确指出f1(23)和f2(23)返回值相等,并给出了正确的机器数。但解释部分“float最大的表示范围是2^23”表述不准确(应为23位尾数),不过不影响核心结论。扣0.5分。
得分:2.5分
(3)得分及理由(满分1分)
学生提到“float在32位时最多有23位尾数”正确,但将现象归因于“溢出”不准确(实际是舍入导致数值增大)。扣0.5分。
得分:0.5分
(4)得分及理由(满分2分)
学生正确解释f1(31)返回-1的原因(32位1解释为负数),并正确给出最大n=30。答案完整准确。
得分:2分
(5)得分及理由(满分3分)
学生正确解释7F80 0000H为正无穷,但未说明阶码全1、尾数全0的格式要求。第二问最大n=23错误(应为126),第三问最大n=23正确。第二问扣1分,第三问给满分。
得分:2分
题目总分:3+2.5+0.5+2+2=10分
登录后发布评论
暂无评论,来抢沙发