01-C程序设计语言-第2版-第1章导言笔记

01-C程序设计语言-第2版-第1章导言笔记

一、入门
1、编写的第一个程序:打印出“hello, world”

点击查看代码
#include <stdio.h>  //包含标准库信息
int main()  //定义名为main函数,没有参数值
{printf("hello, world\n");  //显示字符return 0;  //\n换行符
}

image

程序说明:
(1)一个C语言程序,都是由函数和变量组成的。
(2)①语句:要执行的计算操作 ②变量:存储计算过程中使用的值
(3)main函数:每个程序从main函数开始执行到结束,有且仅有一个,它通常会调用其它函数来运算。
(4)函数可以自定义,也可以来自函数库
#include <stdio.h>用于告诉编译器在标准输入/输出库中查找函数。我的理解库就像一个工具箱,被调用的函数像工具箱里面的工具。
(5)函数之间进行交换的一种方式是调用函数提供一个值(参数)列表。不需要任何参数时,就用()表示空参数。
(6)调用函数时,函数调用格式:函数名(参数表)
(7)printf是一个用于打印输出的库函数
(8)用双引号括起来的字符序列称为字符串或字符串常量
(9)\n换行符,是转义字符

练习1-1:做个实验,当printf函数的参数字符串中包含\c(其中c是上面的转义字符序列中未曾列出的某一个字符)时,观察一下会出现什么情况。

点击查看代码
#include <stdio.h>
int main()
{printf("hello, world\n\c");return 0;
}

image

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;
}

image

说明:
(1)所有变量必须先声明后使用,声明一般放在函数起始处,由一个类型名和一个变量表组成。
(2)int表示整数,float表示小数,char表示一个字节字符,C语言还有一些其它基本数据类型。
(3)下面四行语句为变量赋初始值。
(4)使用while循环语句,先判断条件,如果为真,则执行循环体,当条件为假时,循环结束,执行下面的语句
(5)printf其中的每个百分号表示其它的参数之一进行替换的位置,并指定打印格式。

修改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;
}

image

修改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;
}

image

  • %d 按照十进制整型数打印
  • %6d 按照十进制整型数打印,至少6个字符宽
  • %f 按照浮点数打印
  • %6f 按照浮点数打印,至少6个字符宽
  • %.2f 按照浮点数打印,小数点后有两位小数
  • %6.2f 按照浮点数打印,至少6个字符宽,小数点后有两位小数

练习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;
}

image

练习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;
}

image

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;
}

image

for(初始化;判断条件;更新条件)

练习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;
}

image

4、符号常量