第 2 章 顺序结构程序设计
对应教材目录
Section titled “对应教材目录”- 2.1 C 源程序结构
- 2.2 最简单的 C 程序
- 2.3 整型数据
- 2.4 实型数据
- 2.5 字符型数据
- 2.6 各种类型数据之间的混合运算
- 2.7 C 语言的运算符、表达式和语句
- 2.8 逗号运算符和逗号表达式
学完这一章,你应该能做到:
- 看懂一个最简单的 C 程序。
- 自己写出
main函数。 - 使用
int、float、double、char定义变量。 - 用
scanf输入数据,用printf输出结果。 - 理解赋值、四则运算、整数除法和类型转换。
- 写出“输入 -> 计算 -> 输出”的顺序程序。
1. 什么是顺序结构
Section titled “1. 什么是顺序结构”顺序结构就是程序按照从上到下的顺序一条一条执行。
这是最基础的程序执行方式。只要你还没有写 if、for、while,程序基本就是顺序执行。
2. C 程序最基本的结构
Section titled “2. C 程序最基本的结构”#include <stdio.h>
int main(void){ printf("Hello, world!\n"); return 0;}先记住这几个点:
#include <stdio.h>表示引入标准输入输出库。main是程序入口,程序从这里开始执行。printf用于输出。return 0;表示程序正常结束。
3. 常用基本数据类型
Section titled “3. 常用基本数据类型”3.1 整型
Section titled “3.1 整型”int age = 18;用来存整数,比如年龄、数量、成绩、总和。
3.2 实型
Section titled “3.2 实型”float price = 19.9f;double pi = 3.1415926;用来存小数。初学阶段你可以把 double 理解为比 float 更精确的小数类型。
3.3 字符型
Section titled “3.3 字符型”char grade = 'A';字符要用单引号包起来。
注意:
'A'是一个字符。"A"是一个字符串。
4. 输入和输出
Section titled “4. 输入和输出”4.1 输出
Section titled “4.1 输出”printf("%d\n", 10);printf("%f\n", 3.14);printf("%c\n", 'A');常见格式符:
%d:输出整数%f:输出小数%c:输出字符%s:输出字符串
4.2 输入
Section titled “4.2 输入”int a;scanf("%d", &a);注意:
scanf输入变量时,变量名前通常要加&。- 但字符数组输入字符串时,一般不加
&。
例如:
int a, b;scanf("%d%d", &a, &b);5. 赋值和运算
Section titled “5. 赋值和运算”5.1 赋值
Section titled “5.1 赋值”int a;a = 5;赋值号 = 的意思是“把右边的值放进左边的变量”。
5.2 四则运算
Section titled “5.2 四则运算”int a = 10, b = 3;printf("%d\n", a + b);printf("%d\n", a - b);printf("%d\n", a * b);printf("%d\n", a / b);printf("%d\n", a % b);其中:
/是除法%是取余
5.3 整数除法
Section titled “5.3 整数除法”int a = 5, b = 2;printf("%d\n", a / b);结果是 2,不是 2.5。
因为整数除以整数,结果仍然是整数部分。
5.4 混合运算和类型转换
Section titled “5.4 混合运算和类型转换”int a = 5;float b = 2.0;printf("%f\n", a / b);这时结果是浮点数,因为参与运算的数据类型不同,程序会进行类型转换。
6. 表达式、语句和分号
Section titled “6. 表达式、语句和分号”- 表达式:有值的式子,比如
a + b - 语句:能执行的完整操作,比如
a = a + 1; - 分号:一条语句结束的标志
初学阶段你要养成一个习惯:每写完一条语句,检查一下有没有分号。
7. 最常见的顺序结构模板
Section titled “7. 最常见的顺序结构模板”7.1 输入两个数,输出它们的和
Section titled “7.1 输入两个数,输出它们的和”#include <stdio.h>
int main(void){ int a, b, sum; scanf("%d%d", &a, &b); sum = a + b; printf("%d\n", sum); return 0;}7.2 输入长和宽,输出矩形面积
Section titled “7.2 输入长和宽,输出矩形面积”#include <stdio.h>
int main(void){ int length, width, area; scanf("%d%d", &length, &width); area = length * width; printf("%d\n", area); return 0;}7.3 输入一个三位数,拆出百位、十位、个位
Section titled “7.3 输入一个三位数,拆出百位、十位、个位”#include <stdio.h>
int main(void){ int n, a, b, c; scanf("%d", &n); a = n / 100; b = n / 10 % 10; c = n % 10; printf("%d %d %d\n", a, b, c); return 0;}8. 本章最容易错的点
Section titled “8. 本章最容易错的点”- 把
=写成==,或者反过来。 scanf忘记给变量加&。- 误以为
5 / 2的结果是2.5。 - 字符用成双引号,字符串用成单引号。
- 输出格式符和变量类型不对应。
- 一条语句结束后漏掉分号。
9. 手写题
Section titled “9. 手写题”- 写出下面程序的输出结果。
#include <stdio.h>int main(void){ int a = 10, b = 3; printf("%d\n", a / b); printf("%d\n", a % b); return 0;}- 写出下面程序的输出结果。
#include <stdio.h>int main(void){ char c = 'A'; printf("%c %d\n", c, c); return 0;}- 写出下面程序的输出结果。
#include <stdio.h>int main(void){ int a; a = (3, 5, 7); printf("%d\n", a); return 0;}- 下面程序至少有 4 处错误,自己找出来并改正。
#include <stdio.h>int main(){ int a; scanf("%d", a); a = 3.5; printf("%f\n", a);}- 修改下面程序,使它能正确输入半径并输出圆面积。
#include <stdio.h>int main(void){ int r; scanf("%f", &r); printf("%d\n", 3.14 * r * r); return 0;}- 输入两个整数,输出它们的和、差、积、商。
- 输入圆半径
r,输出圆面积和圆周长。 - 输入三个整数,输出它们的和与平均值。
- 输入摄氏温度,输出华氏温度。
- 输入一个三位数,输出各位数字之和。
- 输入秒数,换算成“几小时几分钟几秒”。
- 输入两个整数,交换后输出。
- 输入商品单价和数量,输出总价。
- 输入梯形上底、下底和高,输出面积。
- 输入一个字符,输出它对应的 ASCII 码值。
10. 自测清单
Section titled “10. 自测清单”学完这章后,你检查自己能不能做到:
- 我能不看资料写出一个最简单的 C 程序。
- 我知道
printf和scanf分别做什么。 - 我知道
%d、%f、%c的基本用途。 - 我能解释为什么
5 / 2的结果是2。 - 我能独立写出“输入 -> 计算 -> 输出”的程序。
11. 学习建议
Section titled “11. 学习建议”- 第 2 章不要急着做复杂题,先把最基础模板抄熟。
- 手写题时,先写变量定义,再写输入,再写计算,再写输出。
- 如果一道题老出错,就把变量每一步的值在纸上列出来。
学完这一章后,再去看第 3 章会非常顺,因为你已经会写最基础的程序骨架了。