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