填空题
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、n>0
n%10+'0'
s[j]='<0'
【答案解析】 该题中函数的功能是把一个整数转换成字符串,并倒序保存在字符数组s中。本题的解题思路是:在循环中对字符串进行截取,并把截取后的字符串进行转换。
第一个空:循环截取n的每一位,所以循环条件是n大于0,即第一个空填“n>0”。
第二个空:循环中截取当前数字的最低一位并进行数字到字符的转换,数字字符与对应的整数ASCII码值相差是48,等于字符'0'的ASCII码值,所以第二个空填“n%10+'0'”。
第三个空:将截取后的字符放入新串,在新串尾部加结束标志,所以第三个空填“s[j]='<0'”。