关于强制转换
average=total/5.0;
printf("total=%.2f\n",total);
printf("average=%.2f\n",average);
printf("average=%d\n",(int)average); //强制转换
复利计算
#include <stdio.h>
#include <math.h>
int main()
{
double a,c;
int b;
printf( "Please enter rate, year, capital:\n",a,b,c);
scanf("%lf,%d,%lf",&a,&b,&c);
double dep;
dep=c*pow(1+a,b); //复利计算公式
printf("deposit=%.3f\n",dep);
}
输出 左右对齐
关于%-9d 加负号表示左对齐
存疑
编程设计一个简单的计算器程序,要求用户从键盘输入如下形式的表达式:
操作数1 运算符op 操作数2
然后,计算并输出表达式的值
指定的运算符为:
加(+)
减(-)
乘(*)
除(/)
代码如下,所给程序是否存在错误,若有,找出错误所在并改正。
#include <stdio.h>
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.
没有错误
B.
第20行语句有错误,改成:
if (data2=0) printf("Division by zero!\n");
else printf("%f/%f = %f\n", data1, data2, data1/data2);
C.
第20行语句有错误,改成:
if (fabs(data2)<=EPS) printf("Division by zero!\n");
else printf("%f/%f = %f\n", data1, data2, data1/data2);
同时,第1行语句下方应加入
#include <math.h>
#define EPS 1e-6
D.
default分支缺少break语句
一些单选题
答案 C
答案255
(答案C 因为(ch<=‘A’&&ch=‘Z’)不存在 直接跳到5行。
因为’\72是转义字符’表示其ASCII码为八进制数72的字符,就是一个字符而已