C语言的运算与输入输出有很多细节,一下为一个基本的自测代码,可以先自己写下预测的输出,再与程序的输出做比对。
#include<stdio.h>
int main()
{
float f=41.0,c;
double t=3.14159,v;
c=5/9*(f-32);
f*=(2.0+1.0);
t+=2.0;
v=t/10;
printf("f=%.2f\n",f);
printf("c=%.2f\n",c);
printf("t=%.2f\n",t);
printf("v=%.4f\n",v);
return 0;
}
本题要点:
①5/9是整型数据,②%.2f会四舍五入
#include<stdio.h>
#include<string.h>
int main()
{
char ch; int digit, i, minus, other;
digit=minus=other= 0;
for(i = 1; i <= 5; i++)
{
ch = getchar();
switch (ch)
{
case '0': case '1': case '2':
case '3': case '4':
case '-': minus++; break;
case '5': case '6':
case '7': case '8':
case '9': digit++;break;
default: other++; break;
}//switch
}//for
printf("%d,%d,%d\n",minus,digit,other);
return 0;
}//假设输入为1+4-5
本题要点:switch一旦匹配成功会执行下面的全部语句,直到遇见break。
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
double eps;
scanf ("%lf", &eps);
int i = 1, flag = 1, denominator = 1;
double item = 1.0, s = 0;
while(fabs(item) >= eps)
{
s = s + item;
i++;
flag = -flag;
denominator = denominator + 2;
item = flag * 1.0 / denominator;
}
s = s + item;
printf ("%.2f,%d\n", s,i);
return 0;
}//假设输入是1
#include<stdio.h>
#include<string.h>
int main()
{
int i=5, s=0;
while(i--)
if (i%2) continue;
else s+=i;
printf("%d,%d\n",i,s);
return 0;
}
本题要点(i - -)这个表达式的值是多少(i为0时还会再执行一次 - - 运算)