文章

20

粉丝

0

获赞

0

访问

578

头像
2017年计算机学科专业基础综合试题 - 第43题回答
计算机组成原理
发布于2025年10月28日 16:42
阅读数 47

(1)因为循环条件是i<=n-1,当n取无符号数0是,n-1下溢出,n的值取32位的1,所以f1会出现死循环。若将f1中的变量i和n都定义为int型,依旧会出现死循环,因为n的值为-1,i到达不了负数域。

(2)不相等。f1(23)的机器数是FFFFFFH,f2(23)的机器数是FF.FFH。

(3)因为f2采用的是float型,对float来说第1位确定正负和int型一样,第2到第9位是float型的阶码,后23位是float型的尾数。对于f2(24)来说有25位1。

(4)因为f1(31)是32位全1,int型,对于补码表示的数来说,32位全1就是-1。若要让f1(n)的返回值与f(n)相等最大的n是30。

(5)值为1000000.


评分及理由

(1)得分及理由(满分4分)

学生第一问前半部分正确解释了n=0时死循环的原因:n-1下溢为全1(即2^32-1),条件永真,得2分。但后半部分错误,认为改为int型后仍会死循环,理由是“i到达不了负数域”,实际上当n=0时n-1=-1,i=0时不满足i<=-1,循环结束,不会死循环。此处逻辑错误扣1分。本小题得3分。

(2)得分及理由(满分3分)

学生回答“不相等”错误,实际上f1(23)和f2(23)返回值相等。机器数回答错误:f1(23)应为00FFFFFFH,学生答FFFFFFH(缺少高位0,且未说明是32位);f2(23)应为4B7FFFFFH,学生答FF.FFH(完全错误)。本小题得0分。

(3)得分及理由(满分1分)

学生提到float有1位符号、8位阶码、23位尾数,以及f2(24)有25位1,基本说明了float精度不足导致舍入,但未明确说明舍入后数值增大。理由表述不够准确,但思路正确,扣0.5分。本小题得0.5分。

(4)得分及理由(满分2分)

学生正确解释了f1(31)返回-1的原因(32位全1补码为-1),并正确给出最大n=30。本小题得2分。

(5)得分及理由(满分3分)

学生仅回答“值为1000000.”,未正确说明f2(127)对应的值为+∞,且未回答不溢出的最大n和精确结果的最大n。本小题得0分。

题目总分:3+0+0.5+2+0=5.5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发