1. 输入输出函数
1.1 scanf
1. 接收非输入控制符
scanf("m");
双引号中间的内容要从终端原封不动输入
2. 接收输入控制符
%f 按float类型接收(一一对应)
%lf 按double类型接收(一一对应)
%c 按char类型接收(可以接收‘ ’ 和 ‘\n’)
_%c(%c前面是空格) 输入字符存入%c之前,可以任意输入空格和换行,右过滤空格和换行的作用 (scanf使用_%c形式,接收一个非' '和'\n'的字符)
%s 按字符串接收
3. 注意
1. scanf中出现非输入控制符,需要从终端原封不动输入,否则从不匹配的位置开始不再向后读取
2. scanf除了%s外后面必须加&符号
3. scanf除了%c形式外均无法接收' '和'\n'字符
4. scanf中严禁出现\n
5. scanf使用_%c形式,接收一个非' '和'\n'的字符
1.2 puts
在终端打印一行字符串,puts会多打印一个‘\n’
1.3 gets
从终端接收一行字符串,gets会去掉从终端接收的‘\n’
1.4 注意
1. puts和printf的区别
puts会多打印一个\n字符
printf不会多打印\n字符
2. gets和scanf的区别
gets:可以接收带' '的字符串
scanf:无法接收带' '的字符串
2. 流程控制
2.1 顺序结构
从main函数第一句开始执行,执行到main函数结束
2.2 分支结构
1. 使用条件
判断时候使用分支语句
同一类数据执行不同操作的时候(例子:一个班男生搬书、女生擦桌子)
2.2.1 if分支
1. 简单分支
if (逻辑表达式)
{
语句块1;
}
else
{
语句块2;
}
注意:
1. if后面必须加条件,else后面不能加条件
2. if能脱离else单独使用,else不能脱离if单独使用
3。 if和else不加大括号默认只能控制下面紧挨的一句语句
2. 阶梯分支
if (表达式1)
{
语句块1;
}
else if (表达式2)
{
语句块2;
}
else if (表达式3)
{
语句块3;
}
else
{
语句块4;
}
3. 嵌套分支
if (表达式1)
{
if (表达式2)
{
if (表达式3)
{
}
}
}
注意:最多嵌套3 - 5层,深层次嵌套会影响代码的可读性
4. 逻辑表达式
1. 关系运算符
>
<
>=
<=
==
!=
2. 逻辑运算符
&& 逻辑与 一假则假,全真为真
|| 逻辑或 一真为真,全假为假
! 逻辑非 真取非得假、假取非得真
注意: && 和 || 有截断特性
1. 逻辑与左边为假值,右边不再计算
2. 逻辑或左边为真值,右边不再计算
5. 三目运算符
逻辑表达式?表达式1:表达式2;
嵌套使用规则:自右至左
a > b ? a : (b > c ? b : c);
注意:C语言中运算符结合方向(大部分自左至右)
结合方向为自右至左的运算符
1. 单目运算符
2. 赋值运算符
3. 三目运算符