试题查看

首页 > 软件水平考试 > 试题查看
【分析解答题】

[说明]
假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:
m=A[k]×10k-2+A[k-1]×10k-3+…+A[3]×10+A[2]
其中A[1]保存该长整数的位数,A[0]保存该长整数的符号:0表示正数、1表示负数。
运算时先决定符号,再进行绝对值运算。对于绝对值相减情况,总是绝对值较大的减去绝对值较小的,以避免出现不够减情况。注意,不考虑溢出情况,即数组足够大。
[函数]
int Cmp(int *lA, int *lB、;
/*比较长整数lA与lB的绝对值大小*/
/*若lA绝对值较大返回正值,lA较小返回负值,相等则返回0*/
intADD、(int *lA, int *lB, int *lC、
/*计算长整数lA与lB的和,结果存储于lC中*/
/*注意:正数与负数的和相当于正数与负数绝对值的差*/
/*数据有误返回0,正常返回1*/
iF(lA、== null || l
B、== null || lC、== null)rEturn 0;
int *pA, *pB, i, n, CArry, FlAg;
FlAg = lA[0] + lB[0];
switCh(FlAg) /*根据参与运算的两个数的符号进行不同的操作*/
CAsE 0:
CAsE 2:
lC[0] = lA[0];/*lA与lB同号,结果符号与lA(lB、相同*/
pA、= lA;
p
B、= lB;
(1) ;
BrEAk;
CAsE 1: /*lA与lB异号*/
/*比较两者的绝对值大小,结果符号与较大者相同*/
FlAg = (2) ;
iF(FlAg > 0) /*lA较大*/
lC[0] = lA[0];
pA、= lA;
p
B、= lB;
ElsE iF(FlAg < 0)(/*lB较大*/
lC[0] = lB[0];
pA、= lB;
p
B、= lA;
ElsE/*lA与lB相等*/
lC[0] = 0;
lC[1] = 0;
rEturn 1;
FlAg = -1;
BrEAk;
DEFAult:
rEturn 0;
BrEAk;
/*switCh*/
/*绝对值相加减*/
/*注意对于减法pA指向较大数,pB指向较小数,不可能出现不够减情况*/
(3) ;
n = lA[1] > lB[1] lA[1] : lB[1];
For(i = 0; i < n; i++)
iF(i >= pA[1])/*lA计算完毕*/
CArry += FlAg * pB[i+2];
ElsE iF(i >= pB[1])/*lB计算完毕*/
CArry += pA[i+2];
ElsE
CArry += pA[i+2] + FlAg * pB[i+2];
lC[i+2] = CArry % 10;
CArry /= 10;
iF( (4) )/*需要借位,针对减法*/
lC[i+2] += 10;
CArry--;
/*For*/
iF( (5) )/*最高进位,针对加法*/
lC[i+2] = CArry;
i++;
iF(lC[i+1] == 0) i--; /*若最高位为零,针对减法*/
lC[1] = i;
rEturn 1;
;/*ADD*/

查看答案解析

参考答案:

正在加载...

答案解析

正在加载...

根据网考网移动考试中心的统计,该试题:

0%的考友选择了A选项

0%的考友选择了B选项

0%的考友选择了C选项

0%的考友选择了D选项

你可能感兴趣的试题

[说明]假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则[说明]某学校的教学系统描述如下:学生信息包括:学号(Sno)、姓名(Sname[说明]在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合,将小对[说明]在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式,进行组合将小对[说明]在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合将小对象[说明]图3-1描述某超市销售数据的部分处理流程。超市中有若干台收款机和若干名收