请补充函数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( 【1】 ;i>=0;i--)
k= 【2】 ;
t= 【3】 ;
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));
参考答案:[1] --I [2] s[i]-’0’ [3] t*10+k
解析: 填空1:程序中将字符串s的长度赋给了变量i,为了将数字字符转换为无符号长整数,并倒序输出,应该从字符串的最后—个字符开始处理,而最后一个字符的下标等于字符串长度减l。填空2:将数字字符转换为数字的方法是,将该数字字符的ASCII码减去字符’0’的ASCII码,即得到相应的数字。填空3:由各位上的数字得到整数的方法是,以1234为例,1234=1*1000+2*100+3*10+4=10*(10*(10*1+2)+3)+4。