跳到正文

平成22年度 秋期 ITパスポート試験 問61

这道题的解析和你的作答记录。

問61
頻出度★★☆

表計算ソフトを用いて社員コード中のチェックディジットを検算する。社員コードは 3 けたの整数値で,最下位の 1 けたをチェックディジットとして利用しており,上位 2 けたの各けたの数を加算した値の 1 の位と同じ値が設定されている。セル B2 に社員コードからチェックディジットを算出する計算式を入力し,セル B2 をセル B3~B5 に複写するとき,セル B2 に入力する計算式のうち,適切なものはどれか。

AB
1社員コードチェックディジット
2370
3549
4538
5763
出典 平成22年度 秋期 ITパスポート試験 問61
解説

問 61

  • 错误ア

    10-取整(A2/100)+取余(取整(A2/10), 10)。整个式子没有再用 取余(…, 10) 归约到个位,所以无法保证结果落在 0~9 之间,而且还混入了没有理由的 10- 减法。A2=370 时为 10-3+7=14,不成其为 1 位的校验位(正确应为 0)。763 时为 10-7+6=9,也与最低位 3 不符。549 和 538 恰好算出与正确答案相同的值,所以只试 1 条数据就作选择会出错,这一点需要注意。

  • 错误イ

    取余(10-取整(A2/100)+取整(A2/10), 10)。由于缺少取出十位的内层 取余(…, 10),取整(A2/10) 得到的并不是十位,而是高位 2 位组成的数本身(370 时为 37)。而且多余的 10- 减法也仍然留着。A2=370 时为 取余(10-3+37, 10)=取余(44, 10)=4,与正确的 0 不一致。763 时为 取余(10-7+76, 10)=9,也与最低位 3 不符。

  • ウ

    正解 校验位被定义为「高位 2 位(百位和十位)上的数字相加之和的个位」。在电子表格中要从 3 位整数里取出各个位上的数字,百位用 取整(A2/100),十位用 取余(取整(A2/10), 10)。只写 取整(A2/10) 得到的是高位 2 位组成的数(370 时为 37),所以要点在于用内层的 取余(…, 10) 只保留十位。再要从这两者之和中取出「个位」,就需要在外层再套一层 取余(…, 10)。因此 取余(取整(A2/100)+取余(取整(A2/10), 10), 10) 这个式子,也就是ウ,是正确的。实际验算一下:370 → 3+7=10 → 取余(10, 10)=0,549 → 5+4=9,538 → 5+3=8,763 → 7+6=13 → 取余(13, 10)=3,4 条全部与员工编号的最低位一致。由于 A2 是相对引用,把 B2 复制到 B3~B5 时引用会自动错动为 A3、A4、A5,各行都能正确计算。

  • 错误エ

    取整((取整(A2/100)+取整(A2/10))/10)。除以 10 之后取整,这个操作取出的不是「个位」,而是「舍去个位之后的高位部分」,与想要求的东西正好相反。想要个位时应当使用 取余(…, 10)。此外内层的 取整(A2/10) 也不是十位。A2=370 时为 取整((3+37)/10)=4,763 时为 取整((7+76)/10)=8,都与最低位(0、3)不一致。

ここがポイント
  • 在电子表格中从整数里取出指定某一位的常用做法:百位=取整(值/100),十位=取余(取整(值/10), 10),个位=取余(值, 10)。「取出个位」用的是 取余(…, 10),「舍去个位得到高位部分」用的是 取整(…/10),不要把这两者的作用弄反。
  • 校验位是为了检测编码的输入错误和转抄错误,按照一定的计算规则从原编码算出并附加在末尾的数字。本题的规则是「高位 2 位之和的个位」,把算出的值与实际的最低位相互对照即可完成验算。式子之所以能从 B2 复制到 B3~B5,是因为 A2 是相对引用,会随行方向自动错动。
用語
解答問61ウ
练这一题

作答记录