第二讲
11. 代码规范化
- 《高质量C/C++编程》林锐
- 成对法则
- 内部代码要缩进
- 功能独立的代码要和其他的代码换行
# include <stdio.h>
int main(void)
{
//定义变量
//对变量进行操作
//输出值
return 0;
}
12. 什么是字节
- 字节就是存储数据的单位,并且是硬件所能访问的最小单位。
- 1字节 = 8位
- 1K = 1024字节
- 1M = 1024K
- 1G = 1024M
13. 不同数据类型之间相互赋值的问题
14. 什么是ASCII
- ASCII不是一个值,而是一种规定,规定了不同的字符是使用哪个整数值去表示。
'A' = 56
'B' = 66
'a' = 97
'b' = 98
'0' = 48
15. 字符的存储【字符本质上与整数的存储方式相同】
16. 基本的输入和输出函数的用法
- printf() -- 将变量的内容输出到显示器上
- scanf() -- 通过键盘将数据输入到变量中
1. printf("字符串\n");
2.printf("输出控制符",输出参数);
3. printf("输出控制符1 输出控制符2", 输出参数1,输出参数2);
4. printf("输出控制符 非输出控制符",输出参数):
1. scanf("输入控制符",输入参数);
// 将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中。
2. scanf("非输入控制符 输入控制符",输入参数):
//将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中,非输入控制符必须原样输入。
输出控制符 |
%d -- int |
%ld -- long int |
%c -- char |
%f -- float |
%lf -- double |
%x(或者%X或者%#X) -- int 或 long int 或 short int |
%o -- 同上 |
%s -- 字符串 |
为什么需要输出控制符: |
1. 01组成的代码可以表示数据也可以表示指令 |
2. 如果01组成的代码表示的是数据的话,那么同样的01代码组合以不同德输出格式输出就会有不同的输出结果 。 |
如何使用scanf编写出高质量代码: |
1. 使用scanf之前最好先使用printf()提示用户以什么样的方式来输入。 |
2. scanf中尽量不要使用非输入控制符,尤其是不要用\n。 |
3. 应该编写代码对用户的非法输入做适当的处理 |
while ((ch = getchar()) != '\n')
continue;
17. 运算符
运算符类型 |
|
算术运算符 |
+ - * /(除) %(取余数) |
关系运算符 |
> >= < <= !=(不等于) ==(等于) |
逻辑运算符 |
!(非) &&(且) ||(或) |
赋值运算符 |
= += *= /= -= |
- 优先级别:算术 > 关系 > 逻辑 > 赋值
- &&左边的表达式为假,右边的表达式肯定不会执行
- || 左边的表达式为真,右边的表达式肯定不会执行
18 流程控制
1. 什么是流程控制
2. 流程控制的分类(顺序、选择、循环)
选择 |
|
定义 |
某些代码可能执行,也可能不执行,有选择的执行某些代码。 |
分类 |
1. if最简单的用法 |
|
2. if的范围问题 |
|
3. if ... else ... 的用法 |
|
4. if ... else ... if ... else ... 的用法 |
|
5. C语言对真假的处理 |
|
6. if举例 -- 求分数的等级 |
|
7. if的常见问题解析 |
18.2.1 if最简单的用法
if(表达式)
{
语句
}
/*功能:如果表达式为真,执行语句
如果表达式为假,语句不执行*/
18.2.2 if的范围问题
1.
if(表达式)
语句A;
语句B;
//if默认只能控制语句A的执行或不执行
//if无法控制语句B的执行或不执行
2.
if(表达式)
{
语句A;
语句B;
}
//此时if可以控制语句A和语句B
//由此可见:if默认只能控制一个语句的执行或不执行,如果想控制多个语句的执行或不执行,就必须把这些语句用{}括起来
18.2.3 if...else的用法
18.2.4 if...else...if..else...的用法
//格式:
if(1)
A;
else if(2)
B;
else if(3)
C;
else
D;
18.2.5 C语言对真假的处理
18.5.6 if举例 -- 求分数的等级
# include <stdio.h>
int main(void)
{
float score;
printf("请输入您的考试成绩:");
scanf("%f",&score);
if(score > 100)
printf("输入错误!\n");
else if (score>=90 && score<=100) //(90<=score<=100)返回的是逻辑值而不能达到判断score值范围的目的
printf("优秀!\n");
else if (score>=80 && score <90)
printf("良好!\n");
else if (score>=60 && score<80)
printf("及格!\n");
else
printf("输入的分数过低!");
}
# include <stdio.h>
int main(void)
{
int i = 3;
int j = 5;
int t; //定义临时变量
//互换ij
t = i;
i = j;
j = t;
printf("i = %d, j = %d\n", i, j);
}
#include <stdio.h>
int main(void)
{
int a, b, c; //等价于:int a; int b; int c;
printf("请输入三个整数(中间以空格分隔):");
scanf("%d %d %d", &a, &b, &c);
//编码完后a是最大值 b是中间值 c是最小值
if (a < b)
{
t = a;
a = b;
b = t;
}
if (a < c)
{
t = a;
a = c;
c = t;
}
if (b < c)
{
t = b;
b = c;
c = t;
}
printf("%d %d %d\n", a, b, c);
return 0;
}
19 学习C语言常见误区
如何看懂一个程序 |
1.流程 |
2.每个语句的功能 |
3.试数 |
对一些小算法的程序 |
1.尝试自己编程解决它,大部分人最终都无法独立解决。 |
2.如果解决不了,就看答案。 |
3.关键是把答案看懂,这个要花很大的精力,也是我们学习的重点,看懂之后尝试修改程序,并且知道修改之后程序的不同输出结果的含义。 |
4.照着答案去敲。 |
5.调试错误。 |
6.不看答案,自己独立把答案敲出来。 |
7.如果程序实在无法彻底理解,就把它背会。 |