填空题 1.  请补充fun()函数,该函数的功能是:把一个整数转换成字符串,并倒序保存在字符数组s中。
    例如,当n=123时,s="321"。
    注意:部分源程序给出如下。
    请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
    试题程序:
    #include <stdio.h>
    #include <conio.h>
    #define M 80
    char s[M];
    void fun(long int n)
    {
    int j=0;
    while(______)
    {
    s[j]=______;
    n/=10;
    j++;
    }
    ______;
    }
    void main()
    {
    long int n=1234567;
    printf("The origial data<n");
    printf("n=%ld",n);
    fun(n);
    printf("<n%s",s);
    }
  • 1、
【正确答案】 1、n>0
n%10+'0'
s[j]='<0'    
【答案解析】 该题中函数的功能是把一个整数转换成字符串,并倒序保存在字符数组s中。本题的解题思路是:在循环中对字符串进行截取,并把截取后的字符串进行转换。
   第一个空:循环截取n的每一位,所以循环条件是n大于0,即第一个空填“n>0”。
   第二个空:循环中截取当前数字的最低一位并进行数字到字符的转换,数字字符与对应的整数ASCII码值相差是48,等于字符'0'的ASCII码值,所以第二个空填“n%10+'0'”。
   第三个空:将截取后的字符放入新串,在新串尾部加结束标志,所以第三个空填“s[j]='<0'”。