给定程序中,函数fun的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。 例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831。 请在程序的下

admin2013-03-29  32

问题 给定程序中,函数fun的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。
    例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANKl.C中。
    不得增行或删行,也不得更改程序的结构!
#include
#include
#include
#define N 9
long ctod(char*s)
{long d=0;
  while(*s)
    if(isdigit(*s)){
/***************found****************/
    d=d*10+*s-1  ;
/***************found****************/
   【2】;}
  return d;
}
long fun(char*a,char*b)
{
/***************found****************/
  return  【3】;
}
main()
{  char s1[N],s2[N];
  do
  {printf("Input string s1:");
gets(s1);}
  while(strlen(s1)>N);
  do
  {printf("Input string s2:");
gets(s2);}
  while(strlen(82)>N);
  printf("The result is:%id\n",
fun(s1,S2));
}

选项

答案(1)’0’ (2)s++ (3)ctod(a)+ctod(b)

解析 第一空:举例说明ctod内循环的作用,例如将字符串“123"转换为数字时:第一次进入循环时,*s等于字符“1",d应等于0*10+1,第一空处是将字符变成数字,字符“1"变成数字l可由字符“1"减去字符“0"得到,故第二空处应为“’0’"。;
    第二空:s是数组指针,在循环中s不断往后移动商至到达数组结束,故第二空处应为“s++"。
    第三空:由审题分析可知,在fun函数内两次调用ctod函数完成字符串到整数的变换,然后求和,故第三空处为“ctod(a)+ctod(b)"。
转载请注明原文地址:https://kaotiyun.com/show/5PJp777K
0

最新回复(0)