简答题下列复合语句中,不能实现两数交换的是 A、{ a=b; b=a;} B、{ b = a * b; a = b / a; b = b / a; } C、{ t=a; a=b; b=t;} D、{ a = a + b; b = a – b; a = a – b; }简答题编程设计一个简单的计算器程序,要求用户从键盘输入如下形式的表达式: 操作数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\n", data1, data2, data1 + data2); break; case '-': printf("%f - %f = %f\n", data1, data2, data1 - data2); break; case '*': printf("%f * %f = %f\n", data1, data2, data1 * data2); break; case '/': printf("%f/%f = %f\n", data1, data2,data1/data2); break; default: printf("Invalid operator!\n"); } return 0; } A、第20行语句有错误,改成: if (fabs(data2) else printf("%f/%f = %f\n", data1, data2, data1/data2); 同时,第1行语句下方应加入 #include #define EPS 1e-6 B、default分支缺少break语句 C、没有错误 D、第20行语句有错误,改成: if (data2=0) printf("Division by zero!\n"); else printf("%f/%f = %f\n", data1, data2, data1/data2);多选题以下程序运行后的输出结果是 #include int main() { int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a printf("%d,%d\n",k,m); return 0; } A. B. C. D.