阅读以下说明和C语言函数。 [说明] 函数change(int num)的功能是对四位以内(含四位)的十进制正整数num进行如下的变换:将num的每一位数字重复一次,并返回变换结果。例如,若num=5234,则函数的返回值为55223344,其

admin2008-05-10  39

问题 阅读以下说明和C语言函数。
   [说明]
   函数change(int num)的功能是对四位以内(含四位)的十进制正整数num进行如下的变换:将num的每一位数字重复一次,并返回变换结果。例如,若num=5234,则函数的返回值为55223344,其变换过程可描述为:
    (4*10+4)*1+(3*10+3)*100+(2*10+2)*10000+(5*10+5)*1000000=55223344
[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;
}

选项

答案(1)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”。
转载请注明原文地址:https://kaotiyun.com/show/QsjZ777K
0

相关试题推荐
最新回复(0)