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