day04
局部变量和全局变量可以重名;作用域遵循就近原则
一、输入输出
1.1按字符输入输出
1.getchar
#include <stdio.h>
int getchar(void);
功能:向终端输入一个字符
参数:无
返回值:终端输入的字符的ASCII码值
2.putchar
#include <stdio.h>
int putchar(int c);
功能:终端输出一个字符
参数:字符的ASCII码值
返回值:字符的ASCII码值
*putchar没有换行的效果,需要额外添加*
1.2按格式输入输出
1.printf
#include <stdio.h>
int printf(const char *format, ...);
功能:按指定的格式向终端输出
参数:支持多个
返回值:正确输出字符个数
格式:
%d int 十进制整数
%c char 单一字符串
%f float 小数形式浮点小数
%lf double 双精度浮点型
%s 字符串
%p 指针
%o 八进制 %#o(显示完整格式的八进制数)
%x 十六进制 %#x(显示完整格式的八进制数)
2.scanf
#include <stdio.h>
int scanf(const char *format, ...);
功能:按指定的格式向终端输入
参数:多个
返回值:正确输入的字符个数
第一个字符输入格式错误,直接返回0
*scanf(“%d %d”,&a,&b);中%d与%d中间的空格可以回收一个或多个空格,tab,回车*
- 垃圾字符回收
2.1 通过空格回收
可以回收一个或多个空格,tab,回车(详见上)。
2.2 %*c *抑制符 (了解)
可以回收任意一个字符。
2.3 getchar
scanf输入结束时,会在终端输入'\n';
解决'\n'对程序造成的影响
三、分支语句
顺序结构:
分支结构:
循环结构:
if
基本结构:
if(常量值或表达式)
{
代码段
}
=====================
if(常量值或表达式)
{
代码段1
}
else
{
代码段2
}
多层分支:
if(表达式1)
{
代码段1
}
else if(表达式2)
{
代码段2
}
else
{
代码段3
}
嵌套结构:
if(表达式1)
{
if(表达式2)
{
代码段
}
}
注意:分支语句代码块只有一句时,可以省略{ }
Switch
基本结构:
switch(常量值或表达式)
{
case 常量值1:
代码段1;
break;
case 常量值2:
代码段2;
break;
default:
代码块n;
break;
}
注意:1. case后边的常量值是整型或字符型,不能是浮点型或字符串
2. case分支遇到break结束; 后边可以没有break,会从符合条件的分支开始一直运行到整个switch语句执行完才结束