刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

阅读以下说明和代码,填写程序中的空(1)-(5),将解答写入答题细的对应栏内。

【说明】

下面程序运行时,对输入的表达式进行计算并输出计算结果。设表达式由两个整数和一个运算符(+或-)构成,整数和运算符之间以空格分隔,运算符可以出现在两个整数之前、之间或之后,整数不超过4位,输入的两个整教和运算符都用字符串表示

 例如,输入分别为 “25+7”、“+257”、“257+”时,输出均为“25+7=32”。

【C 代码】

#include<stdio. h>
  Int strain (char*s);                       //将数字字符串转换为整数
  Int isOperator(char*str);                 //判断字符串的开头字符是否为运算符
  void cal (char op, char a[ ], charb[ ]);      //将数字串转化为对应证书后进行所要求的计算
 
   int main ( )
  {
        char a[ 10] ,b[10 ],c[10];
        scanf ("%s%s%s, a, b, c);
        //输入数据的有效性检测略,下面假设输入数据有效、正确
        Solve(a, b, c);
         Retune ( )
  }
  int strain (char*s);
{
    Int val=0
      while(*s)
      val= (1)+(*s-’0’);                    ∥将数字字符串转换为十进制整数
         (2)                         //令字符指针指向下一个数字字符
      }
       Return val;
  }
   int isoperator(char* str)
  {
       return (*str==’+’II*str==’-’):
  }
Void cal ( char op,char a [ ],char b[ ])
{
switch(op) {
         case ‘+’:
             printf("%s+%s=%d", a, b, straint(a)+straint(b));
             break.
         case ‘-’:
             printf("%s-%s=%d", a, b, strain(a)-straint(b));
             Break;
       }
}
void solve(char a[ ], char b[ ], char c [ ])
{//解析输入的3 个字符串,输出表达式及计算结果
     if (seperator(a)){            ∥运算符在两个整数之前
        ca((  3  );
    }
     else if(opErator(b)){         ∥运算符在两个整数之间
        ca((  4  );
     else {                           ∥运算符在两个整数之后
        ca((  5  );
}
}

使用微信搜索喵呜刷题,轻松应对考试!

答案:

(1)val*10

(2)S++

(3)*a,b,c

(4)*b,a,c

(5)*c,a,b

解析:

  1. 第一空和第二空是关于字符串转整数的处理。在字符串转整数时,我们需要逐个字符处理,将每个字符代表的数值累加到最终的结果中。具体来说,对于字符串中的每个字符,我们需要将其转换为对应的数值,并累加到之前的结果上。例如,对于字符串"123",我们需要先将"1"转换为数值1,然后将"2"转换为数值20(因为需要将之前的结果乘以10),再将"3"转换为数值300(再次乘以10)。因此,第一空应填写 val*10,第二空应填写 s++,以进行指针的向后移动。

  2. 第三空、第四空和第五空是关于运算符位置的判断及函数调用的。我们需要根据运算符的位置来决定如何调用计算函数。如果运算符在两个整数之前,那么操作数就是整个表达式;如果运算符在两个整数之间,那么操作数就是两个整数;如果运算符在两个整数之后,那么操作数就是第一个整数和整个表达式。因此,我们需要根据运算符的位置来判断应该传递哪些参数给计算函数。第三空应填写 *a, b, c,表示如果运算符在a之前,那么操作数就是整个表达式和两个整数;第四空应填写 *b, a, c,表示如果运算符在b之前或之间,那么操作数就是两个整数和第一个整数;第五空应填写 *c, a, b,表示如果运算符在c之前或之后,那么操作数就是第一个整数和整个表达式或第二个整数。

创作类型:
原创

本文链接:阅读以下说明和代码,填写程序中的空(1)-(5),将解答写入答题细的对应栏内。【说明】下面程序运行时

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share