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

admin2015-12-23  22

问题 给定程序中,函数fun的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。
    例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANK1.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(s2)>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”变成数字1可由字符“1”减去字符“0”得到,故第一空处应为“’0’”。;
    第二空:s是数组指针,在循环中s不断往后移动直至到达数组结束,故第二空处应为“s++”。
    第三空:由审题分析可知,在fun函数内两次调用ctod函数完成字符串到整数的变换,然后求和,故第三空处为“ctod(a)+ctod(b)”。
转载请注明原文地址:https://kaotiyun.com/show/h8ID777K
0

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