请补充函数fun(),该函数的功能是:把从主函数中输入的由数字字符组成的字符串转换成—个无符号长整数,并且逆序输出。结果由函数返回。 例如,输入: 1 2 3 4 5 6,结果输出:6 5 4 3 2 1。 注意:部分源程序给出如下。

admin2009-02-15  26

问题 请补充函数fun(),该函数的功能是:把从主函数中输入的由数字字符组成的字符串转换成—个无符号长整数,并且逆序输出。结果由函数返回。
   例如,输入:  1 2 3 4 5 6,结果输出:6 5 4 3 2 1。
   注意:部分源程序给出如下。
   请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
   试题程序:
   #include<conio.h>
   #include<stdio.h>
   #include<string.h>
   unsigned long fun(char *S)
   {
     unsigned long t=0;
     int k;
     int i=0;
     i=strlen(S);
     for(【  】;i>=0;i--)
     {
         k=【  】;
         t=【  】;
     }
     return t;
   }
   main()
   {
   char str[8];
   clrscr();
   printf("Enter a string made up of’0’to
         ’9’digital character:\n");
   gets(str);
   printf("The string iS:%S\n",str);
   if(strlen(str)>8)
       printf("The string is too long!");
   else
       printf("The result:%lu\n",
   fun(str));
   }

选项

答案--I s[i]-’0’ t*10+k

解析 第一空:程序中将字符串s的长度赋给了变量i,为了将数字字符转换为无符号长整数,并倒序输出,应该从字符串的最后—个字符开始处理,而最后一个字符的下标等于字符串长度减l。第二空:将数字字符转换为数字的方法是,将该数字字符的ASCII码减去字符’0’的ASCII码,即得到相应的数字。第三空:由各位上的数字得到整数的方法是,以1234为例,1234=1*1000+2*100+3*10+4=10*(10*(10*1+2)+3)+4。
转载请注明原文地址:https://kaotiyun.com/show/4TID777K
0

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