问题 问答题

[说明]
为实现图书的国际统一编码,便于实现计算机化的图书管理,每本正式出版的图书都印有国际标准书号。标准书号由“ISBN”、10个数字(0-9)组成,其格式如下。
ISBN 组号-出版者号-书名号-校验码
其中,校验码是根据前面9个数字计算得到的,用于计算机自动校验。假设标准书号的10个数字依次是a(1),a(2),…,a(10),则校验码a(10)的设置应使S=1O*a(1)+9*a(2)+8*a(3)+…+1*a(10)能被11整除。如果校验码a(10)应设置成10,则规定以“X”表示之。
例如,《软件设计师考试考前冲刺预测卷及考点解析》的标准书号为:ISBN 7-121-05027-5。第1段上的数字“7”是国际ISBN中心分配给中国ISBN中心管理的组号;第2段上的“121”表示电子工业出版社。标准书号的校验过程如图3-16所示,计算校验码的过程如图3-17所示。其中,Mod(S,11)表示S除以 11得到的余数。


图3-16 标准书号的校验过程


图3-17 计算校验码的过程
1. [问题1]
请根据标准书号校验码的说明,将图3-16和图3-17程序流程图中(1)-(4)空缺处的内容填补完整。

答案

参考答案:不使用求余计算符号“%”,求取被除数p和除数q之间的余数的C程序如下。
[C程序1]
static Int fun_Mod(int p,int q)
{ int x=0;
while (x<=p)
{ if (x == p)
return 0;
X += q;
}
return q-(x-p);
}
[C程序2]
int fun_Mod(int p,int q)
{ while(p>q)
{ if (x == p)
return 0;
p -= q;
}
return p;
}

单项选择题
单项选择题 A1/A2型题