试题查看

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

【说明】
假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数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 || lB==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;
pB=lB;
{{u}} (1) {{/u}};
BrEAk;
CAsE 1:/*lA与lB异号*/
/*比较两者的绝对值大小,结果符号与较大者相同*/
FlAg={{u}} (2) {{/u}};
iF(FlAg>0){/*lA较大*/
lC[0]=lA[0];
pA=lA;
pB=lB;
}
ElsE iF(FlAg<0){/*lB较大*/
lC[0]=lB[0];
pA=lB;
pB=lA;
}
ElsE{/*lA与lB相等*/
lC[0]=0;
lC[1]=0;
rEturn 1;
}
FlAg=-1;
BrEAk;
DEFAult:
rEturn 0;
BrEAk;
}/*switCh*/
/*绝对值相加减*/
/*注意对于减法pA指向较大数,pB指向较小数,不可能出现不够减的情况*/
{{u}} (3) {{/u}};
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({{u}} (4) {{/u}}){/*需要借位,针对减法*/
lC[i+2]+=10;
CArry--;
}
}/*For*/
iF({{u}} (5) {{/u}}){/*最高进位,针对加法*/
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选项

你可能感兴趣的试题

阅读下列说明、流程图和算法,将应填入(n)处的字句写在答题纸的对应栏内。【说明】【程序说明】定义一个多边形结构:structpolygon实现以下内容:(1)建【说明】一个图书馆信息管理系统的分析与建模。下面是某图书馆的有关介绍。图书馆雇有【说明】一个图书馆信息管理系统的分析与建模。下面是某图书馆的有关介绍。图书馆雇有阅读下列说明,回答问题1至问题3。【说明】关于一位花商有以下一些事实。(1)销售阅读下列说明和数据流图,回答问题1至问题3。【说明】图书管理系统旨在用计算机对图