C语言入门基础:从Hello World到温度转换
第一个C程序:输出文本
学习任何编程语言通常从输出"hello, world"开始。下面是最简单的C程序实现:
#include <stdio.h> // 引入标准I/O库
int main() // 主函数入口
{
printf("hello, world\n"); // 打印字符串并换行
return 0; // 返回0表示程序正常结束
}
代码中\n是换行转义字符。尝试替换\n\c,观察编译器如何处理未定义的转义序列:
#include <stdio.h>
int main()
{
printf("hello, world\n\c"); // \c是无效转义,可能触发警告或输出异常字符
return 0;
}
运行后会输出类似"hello, world\c"或编译错误。
变量与算术运算:温度转换表
使用整数运算实现华氏到摄氏的转换(公式:℃ = (5/9)(℉-32)):
#include <stdio.h>
int main()
{
int fahr, celsius;
int lower = 0, upper = 300, step = 20;
fahr = lower;
while (fahr <= upper)
{
celsius = 5 * (fahr - 32) / 9; // 整数除法,避免5/9=0
printf("%3d %6d\n", fahr, celsius); // 右对齐,宽度控制
fahr += step;
}
return 0;
}
若改用浮点数提高精度:
#include <stdio.h>
int main()
{
float fahr, celsius;
float lower = 0, upper = 300, step = 20;
printf("华氏-摄氏对照表\n");
for (fahr = lower; fahr <= upper; fahr += step)
{
celsius = (5.0 / 9.0) * (fahr - 32.0);
printf("%3.0f %6.1f\n", fahr, celsius); // 宽度和小数位控制
}
return 0;
}
练习:输出摄氏到华氏的转换表:
#include <stdio.h>
int main()
{
float fahr, celsius;
float lower = 0, upper = 300, step = 20;
printf("摄氏-华氏转换表\n");
for (celsius = lower; celsius <= upper; celsius += step)
{
fahr = celsius * (9.0 / 5.0) + 32.0;
printf("%6.1f %6.1f\n", celsius, fahr);
}
return 0;
}
for循环与逆序输出
使用for循环简化温度表输出,并实现逆序:
#include <stdio.h>
int main()
{
float fahr;
for (fahr = 300; fahr >= 0; fahr -= 20) // 逆序步进
{
printf("%3.0f %6.1f\n", fahr, (5.0 / 9.0) * (fahr - 32));
}
return 0;
}
符号常量的使用
用#define定义常量,提高代码可维护性:
#include <stdio.h>
#define LOWER 0
#define UPPER 300
#define STEP 20
int main()
{
float fahr;
for (fahr = UPPER; fahr >= LOWER; fahr -= STEP)
{
printf("%3.0f %6.1f\n", fahr, (5.0 / 9.0) * (fahr - 32));
}
return 0;
}
字符输入与文件复制
使用getchar/putchar实现输入流复制:
#include <stdio.h>
int main()
{
int c;
while ((c = getchar()) != EOF) // 读取直到文件结束符
{
putchar(c);
}
return 0;
}
查看EOF的值:
#include <stdio.h>
int main()
{
printf("EOF的值是: %d\n", EOF); // 典型值为-1
return 0;
}