阅读以下说明和C程序,填入(n)外。 [说明] 以下C程序实现了将字符串转化为浮点数的功能。例如字符串“1234567”转化为浮点数1234567;字符串“100.02035”转化为浮点数100.02035;字符串“-100.02035”转化为

admin2009-02-15  21

问题 阅读以下说明和C程序,填入(n)外。
   [说明]
   以下C程序实现了将字符串转化为浮点数的功能。例如字符串“1234567”转化为浮点数1234567;字符串“100.02035”转化为浮点数100.02035;字符串“-100.02035”转化为浮点数-100.02035。程序中的部分变量的含义如表9-5。
     
   [C程序]
   double StrToDouble(char*s)
       {
       char hexch[]="0123456789";
       int i,j,psign=1;
       DWORD n,k,intpart=0;
       double doublepart=0,kdouble,resoult;
       char ch;
       if (*s==’.’
       {
         (1);
          (2);
       }
       char*s1=s,*temp=NULL;
       temp=strrchr ( s1,’.’ );
       if (!temp)
       {
         k=1; intpart=0;
         for (i=strlen (s); i>0;i--)
         {
           ch=s[i-1];
           if (ch>0x3f)    ch&=0xDF;
              n=0;
       for (j=0; j<10; j++)
              if ( ch==hexch[j])    n=j;
        intpart+= (n*k);
              k*=10;
         }
       }
       else
       {
           s1=temp+1;
           kdouble=0.1;
           doublepart=0;
       for ((3))
       {
         ch=s1[i-1];
         if (ch>0x3f)    ch&=0xDF;
            n=0;
         for (j=0; j<10; j++ )
           if (ch==hexch[j])
           n=j;
       doublepart+= (n*kdouble);
        (4);
       }
           *temp=NULL;
           k=1;  intpart=0;
       for ((5);)
       {
           ch=s[i-1];
           if (ch>0x3f)  ch&=0xDF;
           n=0;
       for (j=0; j<10; j++)
           if (ch==hexch[j])  n=j;
        intpart+= (n*k);
             k*=10;
       }//end else
       }
         (6);
       return resoult;
   }

选项

答案(1)psign=-1 (2)s=(s+1) (3)i=1; i<=strlen(s1); i++ (4)kdouble*=0.1; (5)i=strlen(s); i>0;i- (6)resoult=(intpart+doublepart)*psign

解析 本题实现了数字字符串转换成浮点数的程序设计。程序中含空的语句功能分别是:(1)记录符号。如“-0.01”。(2)将字符串中的“-”号剔除;(3)转换所有小数部分;(4)记录小数点阶数;(5)转换所有整数部分;(6)整合小数和整数部分。
转载请注明原文地址:https://kaotiyun.com/show/DuDZ777K
0

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