閱讀以下說(shuō)明和C 函數(shù),將應(yīng)填入 (n) 處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
基于管理的需要,每本正式出版的圖書(shū)都有一個(gè) ISBN 號(hào)。例如,某圖書(shū)的 ISBN號(hào)為“978-7-5606-2348-1”。
ISBN 號(hào)由 13 位數(shù)字組成:前三位數(shù)字代表該出版物是圖書(shū)(前綴號(hào)),中間的 9個(gè)數(shù)字分為三組,分別表示組號(hào)、出版者號(hào)和書(shū)名號(hào),最后一個(gè)數(shù)字是校驗(yàn)碼。其中,前綴號(hào)由國(guó)際EAN提供,已經(jīng)采用的前綴號(hào)為978和979;組號(hào)用以區(qū)別出版者國(guó)家、地區(qū)或者語(yǔ)言區(qū),其長(zhǎng)度可為1~5位;出版者號(hào)為各出版者的代碼,其長(zhǎng)度與出版者的計(jì)劃出書(shū)量直接相關(guān);書(shū)名號(hào)代表該出版者該出版物的特定版次;校驗(yàn)碼采用模10加權(quán)的算法計(jì)算得出。
校驗(yàn)碼的計(jì)算方法如下:
第一步:前 12 位數(shù)字中的奇數(shù)位數(shù)字用 1 相乘,偶數(shù)位數(shù)字用 3 相乘(位編號(hào)從左到右依次為13到2);
第二步:將各乘積相加,求出總和S;
第三步:將總和S 除以10,得出余數(shù)R;
第四步:將10減去余數(shù)R后即為校驗(yàn)碼V。若相減后的數(shù)值為10,則校驗(yàn)碼為0。
例如,對(duì)于ISBN 號(hào)“978-7-5606-2348-1”,其校驗(yàn)碼為1,計(jì)算過(guò)程為:
S=9×1+7×3+8×1+7×3+5×1+6×3+0×1+6×3+2×1+3×3+4×1+8×3=139
R = 139 mod 10 = 9
V = 10 – 9 = 1
函數(shù)check(char code[])用來(lái)檢查保存在code中的一個(gè)ISBN號(hào)的校驗(yàn)碼是否正確,若正確則返回 true,否則返回 false。例如,ISBN 號(hào)“978-7-5606-2348-1”在 code 中的存儲(chǔ)布局如表3-1所示(書(shū)號(hào)的各組成部分之間用“-”分隔):
在函數(shù)check(char code[])中,先將13位ISBN號(hào)放在整型數(shù)組元素tarr[0]~tarr[12]中(如表3-2 所示,對(duì)應(yīng) ISBN 號(hào)的位13~位 1),由 tarr[0]~tarr[11]計(jì)算出校驗(yàn)碼放入變量V,再進(jìn)行判斷。