问题 单项选择题

常用的算法设计方法有:( ) Ⅰ.列举法 Ⅱ.归纳法 Ⅲ.递推 Ⅳ.递归. Ⅴ.回溯法

A.Ⅰ,Ⅱ,Ⅲ,Ⅴ

B.Ⅲ,Ⅳ,Ⅴ

C.Ⅰ,Ⅱ,Ⅴ

D.全是

答案

参考答案:D

解析: 常用的算法设计方法有:①列举法,就是根据提出的问题,列举所有可能的情况,并用问题中给定的条件检验哪些是需要的,哪些是不需要的。②归纳法,通过列举少量的特殊情况,经过分析,最后找出一般的关系。⑧递推,从已知的初始条件出发,逐次推出所要求的各中间结果和最后结果。④递归,将一个复杂的问题归纳为若干个较简单的问题,然后将这些较简单的每一个问题再归结为更简单的问题,这个过程可以一直做下去,直到最简单的问题为止。⑤减半递推技术,“减半”是指将问题的规模减半,而问题的性质不变,“递归”是指重复“减半”的过程。⑥回溯法,有些实际问题却很难归纳出一组简单的递推公式或直观的求解步骤,并且也不能进行无限的列举。对于这类问题,一种有效的方法是“试”。通过对问题的分析,找出一个解决问题的线索,然后沿着这个线索逐步试探,对于每一步的试探,若试探成功,就得到问题的解,若试探失败,就逐步回退,换别的路线再进行试探。这种方法称为回溯法。

多项选择题
填空题

[说明]
假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:
m=a[k]×10k-2+a[k-1]×10k-3+...+a[3]×10+a[2]
其中a[1]保存该长整数的位数,a[0]保存该长整数的符号:0表示正数、1表示负数。注:数组下标从0开始。
流程图用于计算长整数的加(减)法。运算时先决定符号,再进行绝对值运算。对于绝对值相减情况,总是绝对值较大的减去绝对值较小的,以避免出现不够减情况。注,此处不考虑溢出情况,即数组足够大。这样在程序中引进两个指针pA和pB,分别指向绝对值较大者和较小者。而对绝对值相加情况,让pA指向LA,pB指向LB,不区分绝对值大小。pA±pB可用通式pA+flag*pB来计算,flag为+1时即对应pA+pB,flag为-1时即对应pA-pB。需特别注意的是,对于相减,不够减时要进行借位,而当最高位借位后正好为0时,结果的总位数应减1;对于加法,有最高进位时,结果的总位数应加1。


流程图中涉及的函数说明如下:
(1)cmp(int *LA,int *LB)函数,用于比较长整数LA与LB的绝对值大小,若LA绝对值大于LB绝对值则返回正值,LA绝对值小于LB绝对值返回负值,相等则返回0。
(2)max(int A, int B)函数,用于返回整数A与B中较大数。
另外,对流程图中的写法进行约定:(1)“:=”表示赋值,如“flag:=LA[0]+LB[0]”表示将“LA[0]+LB[0]”的结果赋给flag,相当于C中的赋值语句:“flag=LA[0]+LB[0];”;(2)“:”表示比较运算,如“flag:1”表示flag与1比较。