网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

阅读下列函数说明、图和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;

&n


参考答案

更多 “ 阅读下列函数说明、图和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;&n ” 相关考题
考题 ●试题四阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。【函数】void QuickSort(int A[],int s,int t){int i=s,j=t+1,temp;int x=A[s];do{do i++;while (1) ;do j--;while(A[j]x);if(ij){temp=A[i]; (2) ; (3) ;}}while(ij);A[a]=A[j];A[j]=x;if(si-1) (4) ;if(j+1t) (5) ;}

考题 阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。【说明】函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。【函数】void QuickSort( int A[ ],int s,int t){ int i=s,j=t+1,temp;int x=A[s];do{do i ++ ;while (1);do j -- ;while(A[j]>x);if(i<j){temp=A[i];(2);(3);}}while(i<j);A[a] =A[j];A[j] =x;if(s<i-1) (4);if(j+1<t) (5);}

考题 阅读下列说明和流程图,将应填入(n)的字句写在对应栏内。【说明】下列流程图(如图4所示)用泰勒(Taylor)展开式sinx=x-x3/3!+x5/5!-x7/7!+…+(-1)n×x2n+1/(2n+1)!+…【流程图】计算并打印sinx的近似值。其中用ε(>0)表示误差要求。

考题 阅读下列说明和流程图,将应填入(n)处的语句写在对应栏内。【说明】下列流程图用泰勒(Taylor)展开式y=ex=1+x+x2/2!+x3/3!+…+xn/n!+…计算并打印ex的近似值,其中用ε(>0)表示误差要求。【流程图】

考题 阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。[说明]下面的流程图用于计算一个英文句子中最长单词的长度(即单词中字母个数)MAX。假设该英文句子中只含字母、空格和句点“.”,其中句点表示结尾,空格之间连续的字母串称为单词。[流程图]

考题 ●试题一阅读下列说明和流程图,将应填入(n)的字句写在答题纸的对应栏内。【说明】下列流程图(如图4所示)用泰勒(Taylor)展开式sinx=x-x3/3!+x5/5!-x7/7!+…+(-1)n×x 2n+1/(2n+1)!+…【流程图】图4计算并打印sinx的近似值。其中用ε(0)表示误差要求。

考题 试题三(共 15 分)阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

考题 阅读下列说明和C++-代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。 【C++代码】 #include using namespace std; class invoice{ public: (1){ cout

考题 阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 某文件管理系统中定义了类OfficeDoc和DocExplorer,当类OfficeDoc发生变化时,类DocExplorer的所有对象都要更新其自身的状态,现采用观察者(Observer)设计模式来实现该需求,所设计的类图如图6-1所示。

考题 阅读下列说明和?C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 阅读下列说明和?Java代码,将应填入?(n)?处的字句写在答题纸的对应栏内。 【说明】 某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种 类可能不同,但其制作过程相同。前台服务员?(Waiter)?调度厨师制作套餐。现采用生成器?(Builder)?模式实现制作过程,得到如图?6-1?所示的类图。