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

admin2019-06-14  32

问题 给定程序中,函数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/aYID777K
0

最新回复(0)