请补充fun()函数,该函数的功能是:把一个整数转换成字符串,并倒序保存在字符数组s中。例如,当n=123时,s="321"。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填人所编写的若干表达式或

admin2013-06-12  32

问题 请补充fun()函数,该函数的功能是:把一个整数转换成字符串,并倒序保存在字符数组s中。例如,当n=123时,s="321"。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填人所编写的若干表达式或语句。
试题程序:
#include
#include
#define M 80
char s[M];
void fun(10ng int n)
{
  int j=0;
  while(【1】)
  {
    s[j]=【2】;
    n/=10;
    j++;
    }
    【3】;
}
void main()
{
  long int n=1234567;
  printf("The origial data\n");
  printf("n=%ld",n);
  fun(n);
  printf("\n%s",s);
    }

选项

答案【1】n>0【2】n%10+’0’【3】s[j]=’\0’

解析 该题中函数功能是把一个整数转换成字符串,并倒序保存在字符数组s中。本题解题思路是在循环中对字符串进行截取,并把截取后的字符串进行转换。
    第一空:循环截取n的每一位,所以循环条件是n大于0,即第一空填“n>0”。
    第二空:循环中截取当前数字的最低一位并进行数字到字符的转换,数字字符与对应的整数ASCⅡ码相差是48,等于字符’0’的ASCⅡ码,所以第二空填“n%10+…0”。
    第三空:将截取后的字符放入新串,在新串尾部加结束标志,所以第三空填“s[j]=’\0’”。
转载请注明原文地址:https://jikaoti.com/ti/b2n0FFFM
0

最新回复(0)