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

admin2015-06-08  17

问题 给定程序中,函数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 s 1:”);
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)

解析 本题中函数fun的功能是将a和b所指的两个字符串转换成对应值的整数并进行相加作为函数值返回,函数ctod(char*s)的功能是将字符串转化为long整型,故在fun函数内调用ctod函数完成字符串到整数的变换,然后求和即可。
   [解题思路]
    第一空:举例说明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/xaJp777K
0

最新回复(0)