1.常用的输入输出函数
1.putchar
2.getchar
3.printf
1.非输入控制符
2.输入控制符的打印
3.多个输入控制符的打印
4.格式化打印
printf("%5d", Num);
%nd n:不足域宽高位用空格补齐
%-nd -:左对齐
%0nd 0:不足域宽高位用0补齐
%.mf m:显示小数点后m位有效数字
4.scanf
格式化输入函数
1.接收非输入控制符
scanf("m");
scanf中出现非输入控制符,需要原封不动的从终端输入该字符
2.接收输入控制符
%d 按照int类型接收
%f 按照float类型接收
%lf 按照double类型接收
%c 按照char类型接收(会接收' '和'\n'字符)
_%c 接收一个非' '和'\n'的字符
%s 按照字符串类型接收
3.多个输入控制符的接收
int Num1 = 0;
int Num2 = 0;
scanf("%d %d", &Num1, &Num2);
注意:
1.scanf中内容写的越短越好
2.scanf中不要加入\n字符
3.scanf只有%s可以不加&,其余均需要加上&
4.scanf中' '和'\n'字符表示数据末尾
5.scanf中只有%c可以接收' '和'\n'字符,其余均认为是数据结束的标志
int Num = 0;
scanf("%d", &Num);
float f = 0;
scanf("%f", &f);
double d = 0;
scanf("%lf", &d);
char ch = 0;
scanf("%c", &ch);
int Num1 = 0;
int Num2 = 0;
scanf("%d%d", &Num1, &Num2);
float f1 = 0;
float f2 = 0;
scanf("%f%f", &f1, &f2);
double d1 = 0;
double d2 = 0;
scanf("%lf%lf", &d1, &d2);
6.puts
打印一行字符串
字符数组
char ch[32] = {"Hello World"};
puts(ch);
注意:
1.puts会多打印一个\n
2.printf不会多打印\n
7.gets
从终端接收一行字符串
注意:
1.gets会去掉从终端接收的\n字符
2.gets能够接收带' '的字符串
3.scanf不能接收带' '的字符串
流程控制
1.顺序结构
2.分支结构
3.循环结构
1.顺序结构:
从main函数第一句开始执行,执行到main函数结束
2.分支结构:
1.三目运算符:
? :
逻辑表达式?表达式1:表达式2;
注意:
三种特殊运算符,结合方向自右至左
1.单目运算符
2.赋值运算符
3.三目运算符
2.关系运算符:
> 大于
< 小于
>= 大于等于
<= 小于等于
== 等于
!= 不等于
3.逻辑运算符:
&& 逻辑与 既..又..
|| 逻辑或 要么..要么..
! 逻辑非 真取非得假 假取非得真
逻辑与:一假为假,全真为真
逻辑或:一真为真,全假为假
逻辑非:真取非得假,假取非得真
截断特性:
逻辑与左边为假时,右边不再计算
逻辑或左边为真时,右边不再计算
4. if分支
1.判断逻辑时使用分支语句
2.同一类数据执行不同操作
1.简单分支:
if (逻辑表达式)
{
语句块1;
}
else
{
语句块2;
}
注意:
1.if后面必须加条件, else后面不能加条件
2.if可以脱离else单独使用,但是else不能脱离if单独使用
3.if和else如果不加{},默认只能控制一句代码
ch >= 'a' && ch <= 'z'
ch >= 'A' && ch <= 'Z'
ch是字母:
(ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')
ch不是字母:
!(ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')