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

admin2020-01-10  24

问题 给定程序中,函数fun的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。
    例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:4483l。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
  注意:源程序存放在考生文件夹下的BLANKl.C中。
  不得增行或删行,也不得更改程序的结构!
#include
{}include
#include
#defihe 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:  %ld\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://jikaoti.com/ti/4SG0FFFM
0

最新回复(0)