首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明、图和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为: m=a[k]×10k-2+a[k-1]×10k-3+…+a[3]
阅读下列函数说明、图和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为: m=a[k]×10k-2+a[k-1]×10k-3+…+a[3]
admin
2009-02-15
33
问题
阅读下列函数说明、图和C代码,将应填入(n)处的字句写在对应栏内。
【说明】
假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数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*/
int ADD(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;
(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<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*/
阅读下列函数说明、图和C代码,将应填入 (n) 处的字句写在对应栏内。
1. 【说明】
假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数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*/
int ADD(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;
(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<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*/
选项
答案
(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];可见,carry需要进行初始化,故空(3)应填carryy=0。仔细[分析] 该计算式,可知flag是符号,flag为1时,计算pA+pB,flag为-1时,计算pA-pB。由此也推断出空(1)应填flag=1。case 1中亦有对应语句flag=-1可得验证。
由注释可见空(4)要填需要借位的条件。当不够减时需要向高一位借位,也就是不借位时相减结果是负数。因此空(4)应填LC[i+2]<0。
同(4),空(5)要填需要有最高进位的条件。carry变量表示的就是进位。因此空(5)应填carry(或carry !=0)。注:此处carry不可能为负数。
转载请注明原文地址:https://kaotiyun.com/show/frDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
给定关系模式R(A,B,C,D)、S(C,D,E),与π1,3,5等价的SQL语句如下:SELECT(22)FROMR,sWHERE(23);下列查询B=“信息”且E=“北京”的A、B、E的关系代数表达式中,查询效率
在数据库逻辑设计阶段,若实体中存在多值属性,那么将E-R图转换为关系模式时,___________,得到的关系模式属于4NF。
内存按字节编址从B3000H到DABFFH的区域其存储容量为____________。
某教学管理数据库中,学生、课程关系模式和主键分别为:S(学号,姓名,性别,家庭住址,电话),关系S的主键为学号;C(课程号,课程名,学分),关系C的主键为课程号。假设一个学生可以选择多门课程,一门课程可以由多个学生选择。一旦学生选择某门课程必定有该课程的成
某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续时间(天),则完成该项目的最少时间为(33)天。活动BC和BF分别最多可以晚开始(34)天而不会影响整个项目的进度。(34)
已知函数f()、g()的定义如下所示,调用函数f时传递给形参x的值是5。若g(a)采用引用调用(callbyreference)方式传递参数,则函数f的返回值为(12);若g(a)采用值调用(callbyvalue)的方式传递参数,则函数f
在结构化分析方法中,利用分层数据流图对系统功能建模。以下关于分层数据流图的叙述中,不正确的是___________(32)。采用数据字典为数据流图中的每个数据流、文件、加工以及组成数据流或文件的数据项进行说明,其条目不包括____________(33)。
设有关系模式R(A1,A2,A3,A4,A5,A6),其中:函数依赖集F={A1→A2,A1A3→A4,A5A6→A1,A2A5→A6,A3A5→A6),则___________(21)是关系模式R的一个主键,R规范化程度最高达到____________(
在面向对象系统中,对象的属性是()。
在结构化分析方法中,数据流图描述数据在系统中如何被传送或变换,反映系统必须完成的逻辑功能,用于(38)建模。在绘制数据流图时,(39)。(39)
随机试题
用人单位因生产经营状况发生困难而裁减人员,从裁减人员之日起几个月内新招人员时,在同等条件下应当优先录用本单位被裁减人员()
一次,我正在布置作业:“每个生字写5遍。”就听有个同学小声说:“都会写了,还让写!”我没说话就下课了。但这件事引起了我的反思,在班会上,我提出了“教师怎样留作业?”的问题。经过商讨,同学们一致同意:常规性的作业应该写,但可以根据自己对知识掌握的程度决定多写
某教师经常公开对学生说:“读书考大学,是为了自己,不是为了别人。好好读书将来能找到一个好的工作,挣下大把的钱,可以娶一个漂亮的老婆,生一个聪明的儿子,可以生活愉快、人生充实、前途美好、事业辉煌。所以,我强调读书是为了自己。”该教师的这种观点,违背了我国依法
卡方检验主要是用来处理()
一般VLAN的划分的根据有端口,MAC地址,网络层,IP组播。请简要分析这几种方式的特点。简要说明汇聚链接是如何实现跨越交换机间的VLAN的。
若使用REPLACE命令时,起范围子句为ALL或REST,则执行该命令后,记录指针指向()。
下列是if语句的基本形式:if(表达式)语句其中“表达式”()。
考生文件夹下存在一个数据库文件“samp3.accdb”,里面已经设计好表对象“tNorm”和“tStock”,查询对象“qStock”和宏对象“ml”,同时还设计出以“tNorm”和“tStock”为数据源的窗体对象“fStock”和“fNorm”。具体
Ihadtotakeastep,eventhoughIunderstandthatthatstepwasinthedirectionof______ratherthansuccess.(2003年西南财经大学考博试题
Namedafteranex-GovernorofNewSouthWales,SydneyistheState’scapitalcity.Locatedonthesouth-eastcoastofAustralia
最新回复
(
0
)