首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
【说明】 假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:m=a[k]×10k-2+a[k一1]×10k-3+…+a[3]×10+a[2]其中a[1]保存该长整数的位数,a[0]保存该长整数的符号:0表示正数、
【说明】 假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:m=a[k]×10k-2+a[k一1]×10k-3+…+a[3]×10+a[2]其中a[1]保存该长整数的位数,a[0]保存该长整数的符号:0表示正数、
admin
2014-10-11
47
问题
【说明】
假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:m=a[k]×10
k-2
+a[k一1]×10
k-3
+…+a[3]×10+a[2]其中a[1]保存该长整数的位数,a[0]保存该长整数的符号:0表示正数、1表示负数。运算时先决定符号,再进行绝对值运算。对于绝对值相减情况,总是绝对值较大的减去绝对值较小的,以避免出现不够减情况。注意,不考虑溢出情况,即数组足够大。
intcmp(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 l I LC==NULL)return0;
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;
(1) ;
break;
case 1: /*LA与LB异号*/
/*比较两者的绝对值大小,结果符号与较大者相同*/
flag=(2) ;
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指向较小数,不可能出现不够减情况*/
(3);
N=LA[1]>LB[1]?LA[1] :LB[1];
for(i=0;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%1 0;
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*/
选项
答案
(1)flag=1 (2)cmp(LA,LB) (3)carry=0 (4)LC[i+2]<0 (5)carry
解析
先来看空(2),依据注释此处是比较LA与LB绝对值的大小,参照cmp函数说明及声明,应填cmp(LA,LB)。空(3)以下进行绝对值相加减。carry+=pA[i+2]+flag*pB[i+2];可见,CarTy需要进行初始化,故空(3)应填carry=0。仔细分析该计算式,可知flag是符号,flag为1时,计算pA+pB,flag为一1时,计算pA—pB。由此也推断出空(1)应填flag=1。case1中亦有对应语句flag=一1可得验证。由注释可见空(4)要填的是需要借位的条件。当不够减时需要向高一位借位,也就是不借位时相减结果是负数。因此空(4)应填LC[i+2]<0。同(4),空(5)要填需要有最高进位的条件。Carry变量表示的就是进位。因此空(5)应填carry(或carry!=0)。注此处carry是不可能为负数。
转载请注明原文地址:https://kaotiyun.com/show/EaDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
软件可靠性管理把软件可靠性活动贯穿于软件开发的全过程,成为软件工程管理的一部分。确定软件的可靠性目标在()阶段。
采用UML进行软件设计时,可用(17)关系表示两类事物之间存在的特殊/一般关系,用聚集关系表示事物之间存在的整体/部分关系。
以下______不属于单元测试中模块接口测试的测试内容。
以下关于CPU与I/O设备交换数据所用控制方式的叙述中,正确的是_______。
若计算机字长为32,则采用补码表示的整数范围为______。
阅读以下说明,回答问题1至问题3,将解答填入答题纸对应的解答栏内。说明网络解决方案如图4-1所示。该网络原先使用的是国外品牌的交换机,随着网络规模的扩大,增添了部分国产品牌的交换机,交换机1至交换机5均是国产10M/100M自适应交换机,交换机6
将图2-1中(1)和(2)空缺名称填写在应的位置。使ADSL的传输速率更高有哪两个主要因素?
SSL协议使用(1)密钥体制进行密钥协商。在IIS5.0中,Web服务器管理员必须首先安装Web站点数字证书,然后Web服务器才能支持SSL会话,数字证书的格式遵循ITU-T(2)标准。通常情况下,数字证书需要由(3)颁发。如果Web服务器管理员准备预
阅读以下说明,回答问题1~5。[说明]SSL(SecureSocketLayer)是目前解决传输层安全问题的一个主要协议,其设计的初衷是基于TCP协议之上提供可靠的端到端安全服务,SSL的实施对于上层的应用程序是透明的。应用SSL协议最广泛
随机试题
简述新时期爱国主义的基本特征。
下列均属于虚性闭经的病因病机,除外()
既能补肾固精,叉能养肝明目的药物是()
基金管理人面临的风险有外部风险和内部风险。关于外部风险的内容,下列说法中错误的是()。
不属于收益类指标的是()
下列关于非财务指标表述正确的有()。
刘某是今年的高考状元,某教育培训机构以刘某在该机构参加过培训为由,对外宣称自己能够年年培养出高考状元,这种做法错误在于()。
坚持党的基本路线一百年不动摇的原因是()。
设矩阵A=(aij)3×3满足A*=AT,其中A*为A的伴随矩阵,AT为A的转置矩阵.若a11,a12,a13为三个相等的正数,则a11,为【】
ScienceFictioncanprovidestudentsinterestedinthefuturewithabasicintroductiontotheconceptofthinkingaboutpossibl
最新回复
(
0
)