问题 问答题

[C语言函数] long change(int num) { ind,m=num; long result mul; if (num<=0|| (1) /*若num不大于0或num的位数大于4,则返回-1*/ retum-1; mul=1; (2) while(m>0){ d=m%10; m= (3) ; result=result+( (4) ) *mul; mul= (5) ;} return result;}

答案

参考答案:

解析:num/10000>0,或num>9999,或num>=10000,或其等价形式 (2)result=0 (3)m/10,或(m-d)/10,或其等价形式 (4)d*10 +d,或其等价形式 (5)mul*100,或其等价形式

[分析]:试题二 本题考查简单运算的程序实现。对于这类题目,应将题干部分描述的运算过程理解透彻。 函数change(int num)的功能是对四位以内(含四位)的十进制正整数num的每一位重复一次。显然,num的位数大于4的直接表示是num>9999或nam>10000,或 num/10000>0。 从题干部分给出的变换公式看,最后的结果是累加获得的,而且代码中用于保存累加结果的变量是result,该变量的初值应为0。所以空(2)处应填入“result=O”。分析对 5234的变化过程可知,首先取出个位,其次是十位上的数字,以此类推,并且将每次取出的数字d乘以10再加上该数字d,因此空(4)处应填入“d*10 +d” 。显然mul的值以100进行累乘,因此空(5)处填入“mul*100"。由于跳出循环的条件为“m<=0”,所以结合“d=m%10”可知,空(3)处应填入“m/10”。

单项选择题
单项选择题 B型题