01-C程序设计语言-第2版-第1章导言笔记
一、入门
1、编写的第一个程序:打印出“hello, world”
点击查看代码
#include <stdio.h> //包含标准库信息
int main() //定义名为main函数,没有参数值
{
printf("hello, world\n"); //显示字符
return 0; //\n换行符
}

练习1-1:做个实验,当printf函数的参数字符串中包含\c(其中c是上面的转义字符序列中未曾列出的某一个字符)时,观察一下会出现什么情况。
点击查看代码
#include <stdio.h>
int main()
{
printf("hello, world\n\c");
return 0;
}

2、变量与算术表达式
使用公式℃=(5/9)(℉-32)打印华氏温度与摄氏温度对照表
点击查看代码
#include <stdio.h>
int main()
{
int fahr, celsius;
int lower, upper, step;
lower = 0; //温度表的下限
upper = 300; //温度表的上限
step = 20; //步长
fahr = lower;
while (fahr <= upper)
{
celsius = 5 * (fahr - 32) / 9;
printf("%d\t%d\n", fahr, celsius);
fahr = fahr + step;
}
return 0;
}

修改1:fahr的值占3个数字宽,celsius的值占6个数字宽,会在打印区域内右对齐。不能使用5/9的形式,是因为按整型除法的计算规则,相除会舍位,得到的结果是0.
点击查看代码
#include <stdio.h>
int main()
{
int fahr, celsius;
int lower, upper, step;
lower = 0;
upper = 300;
step = 20;
fahr = lower;
while (fahr <= upper)
{
celsius = 5 * (fahr - 32) / 9;
printf("%3d %6d\n", fahr, celsius);
fahr = fahr + step;
}
return 0;
}

修改2:5.0/9.0两个浮点数相除,结果将不被舍位,得到更精确的结果。
点击查看代码
#include <stdio.h>
int main()
{
float fahr, celsius;
float lower, upper, step;
lower = 0;
upper = 300;
step = 20;
fahr = lower;
while (fahr <= upper)
{
celsius = (5.0/9.0) * (fahr - 32.0);
printf("%3.0f %6.1f\n", fahr, celsius);
fahr = fahr + step;
}
return 0;
}

练习1:在转换表的顶部打印一个小标题
点击查看代码
#include <stdio.h>
int main()
{
float fahr, celsius;
float lower, upper, step;
lower = 0;
upper = 300;
step = 20;
fahr = lower;
printf("华氏温度-摄氏温度对照表\n");
while (fahr <= upper)
{
celsius = (5.0/9.0) * (fahr - 32.0);
printf("%3.0f %12.1f\n", fahr, celsius);
fahr = fahr + step;
}
return 0;
}

练习2:编写打印摄氏温度转换为相应华氏温度的转换表
点击查看代码
#include <stdio.h>
int main()
{
float fahr, celsius;
float lower, upper, step;
lower = 0;
upper = 300;
step = 20;
celsius = lower;
printf("摄氏温度-华氏温度对照表\n");
while (celsius <= upper)
{
fahr = celsius * (9.0 / 5.0) + 32.0;
printf("%6.1f %12.1f\n", celsius, fahr);
celsius = celsius + step;
}
return 0;
}

3、for语句
for语句实现前面的功能
点击查看代码
#include <stdio.h>
int main()
{
float fahr;
for(fahr = 0; fahr <= 300; fahr = fahr +20)
{
printf("%3.0f %12.1f\n", fahr, (5.0 / 9.0) * (fahr -32));
}
return 0;
}

练习1:逆序打印
点击查看代码
#include <stdio.h>
int main()
{
float fahr;
for(fahr = 300; fahr >= 0; fahr = fahr - 20)
{
printf("%3.0f %12.1f\n", fahr, (5.0 / 9.0) * (fahr -32));
}
return 0;
}

4、符号常量
点击查看代码
#include <stdio.h>
#define LOWER 0
#define UPPER 300
#define STEP 20
int main()
{
float fahr;
for(fahr = UPPER; fahr >= LOWER; fahr = fahr - STEP)
{
printf("%3.0f %12.1f\n", fahr, (5.0 / 9.0) * (fahr -32));
}
return 0;
}
5、字符输入/输出
(1)文件复制
点击查看代码
#include <stdio.h>
int main()
{
int c;
c = getchar();
while (c != EOF)
{
putchar(c);
c = getchar();
}
return 0;
}
练习1:验证getchar()!= EOF地返回值
点击查看代码
练习2:编写一个打印EOF值得程序
点击查看代码
#include <stdio.h>
int main()
{
printf("EOF的值是: %d\n", EOF);
return 0;
}


浙公网安备 33010602011771号