目录
一、输入输出
1.按字符输入输出
用' '包裹单个字符
(1).getchar
查看getchar相关功能及用法:终端输入:man getchar
格式:int getchar(void);
功能:终端输入一个字符
参数:无
返回值:输入字符的ASCII码值
int a=getchar(); //输入123//输出1
printf("%d\n",a); //输入多个字符时,只输出第一个字符
(2).putchar
例:int putchar(int c);
功能:终端输出一个字符
参数:字符的ASCII码值
返回值:字符的ASCII码值
int a=getchar();
putchar(a); //输出后没有分行
putchar('\n'); //或putchar(10);
2.按格式输入输出
(1).scanf
int scanf(const char *format, ...);
功能:可以输入一些内容(从终端输入)
参数:1:字符串(只写格式)
2:用来保存数据的变量的地址
(与输出相同)
返回值:正确输入的个数
如果第一个输入错误,直接返回0
(2).printf
格式:int printf(const char *format, ...);
功能:按格式终端输出
格式:
%d int
%c char
%f float %.nf保留n位小数
%lf double %.nlf保留n位小数
%s 字符串
%p 指针
%o 八进制 %#o 完整形式八进制
%x 十六进制 %#x 完整形式十六进制
%e 指数
int a=021;
printf("%o\n",a); //21
printf("%#o\n",a); //021
参数:1:字符串(只写格式)
2:用来保存数据的变量的地址
返回值:输出元素个数
int a=6,
b=66;
char c='w';
printf("a的值为:%d ,b的值为:%d ,c的值为:%c\n",a,b,c);//a的值为:6 ,b的值为:66 ,c的值为:w
位宽:
int a=6,
b=66,
c=666;
printf("%3d\n",a); // 6
printf("%3d\n",b); // 66
printf("%3d\n",c); //666
二、垃圾字符回收
1.通过一个空格回收一个或多个空格、tab
输入出现如下问题:
解决:
2.%*c*抑制符回收任意一个字符(仅作了解)
3. getchar
多个scanf给char赋值时,回收scanf的换行,一般对char类型使用,换行也是一个字符
三、分支语句
1.if
格式
if(表达式)
{
语句块1;
}else
{
语句块2;
}
运行顺序:先判断括号内表达式是否成立,成立则执行语句块1 反之执行语句块2
==========================
例:
int age=20;
if(age>18)
{
printf("工作\n");
}else
{
printf("学习\n");
}
分层结构
if(表达式1)
{
语句块1;
}elseif(表达式2)
{
语句块2;
}else
{
语句块n;
}
===================
例题:
100-90 A
89-80 B
79-70 C
<70 补考
int n=0;
scanf("%d",&n);
if(n>=90 && n<=100)
{
printf("A\n");
}else if(n>=80 && n<=89)
{
printf("B\n");
}else if(n>=70 && n<=79)
{
printf("C\n");
}else
{
printf("补考\n");
}
嵌套结构
if(表达式1)
{
if(){};
}else
{
语句块1;
}
======================
例:
if(s>=0 && s<=100)
{
if(){};
}else
{
printf("error\n");
}
注意:
1.if语句的花括号可以省略,但是只控制一条语句 。
2.if语句后面可以没有else ,但是else前面必须有if。
2.switch
switch (表达式)
{
case 常量值1:
/* code */
break;
case 常量值2: //case后的常量值只能是数字或字符
/* code */
break;
default:
break;
}
switch语句中,如果没有break,会从符合条件的分支开始一直执行下去,直到遇到break为止或switch运行结束。
四、循环语句
for
for(表达式1;表达式2;表达式3)
{
循环执行的语句块;
}
表达式1:赋初始值
表达式2:控制循环执行的语句(进入循环的条件 或者 终止循环的条件)
表达式3:递增或者递减
int sum=0;
for (int i = 3; i <= 7; i++)
{
sum+=i;
}
printf("%d\n",sum); //25
执行顺序:定义变量,执行表达式1,判断表达式2是否成立,如果成立进入循环
执行完成循环语句块之后 执行表达式3,判断表达式2是否成立,如果成立进入循环
执行完成循环语句块之后 执行表达式3.......判断表达式2是否成立,如果不成立 结束循环。
嵌套结构
for()
{
for()
{
}
}
双层for特点:外层循环执行一次,内层执行完成全部
外层循环控制行数 内层循环控制列数
while
定义循环变量
while(判断条件)
{
//循环体
递增或者递减
}
例:
int i=1;
while(i<5)
{
printf("%d\n",i);
i++;
}