编程设计一个简单的计算器程序,要求用户从键盘输入如下形式的表达式: 操作数1 运算符op 操作数2然后,计算并输出表达式的值指定的运算符为: 加(+) 减(-) 乘() 除(/)代码如下,所给程序是否存在错误,若有,找出错误所在并改正。#include


编程设计一个简单的计算器程序,要求用户从键盘输入如下形式的表达式: 操作数1 运算符op 操作数2然后,计算并输出表达式的值指定的运算符为: 加(+) 减(-) 乘() 除(/)代码如下,所给程序是否存在错误,若有,找出错误所在并改正。#include

int main()

{

float data1, data2;

char op;printf(“Please enter the expression:”);scanf(“%f %c%f”, &data1, &op, &data2); / %c前有一个空格 /

switch (op)

{

case ‘+’:

printf(“%f + %f = %f”, data1, data2, data1 + data2);break;case ‘-‘:

printf(“%f – %f = %f”, data1, data2, data1 – data2);break;case ‘‘:

printf(“%f * %f = %f”, data1, data2, data1 * data2);break;case ‘/’:

printf(“%f/%f = %f”, data1, data2,data1/data2);break;default:

printf(“Invalid operator!”);}

return 0;}

A.第20行语句有错误,改成:if (fabs(data2)<=EPS) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);同时,第1行语句下方应加入#include #define EPS 1e-6

B.default分支缺少break语句

C.没有错误

D.第20行语句有错误,改成:if (data2=0) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);正确答案:第20行语句有错误,改成:if (fabs(data2)<=EPS) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);同时,第1行语句下方应加入#include #define EPS 1e-6