1.输入输出函数
1.1 函数
C语言中输入输出需要通过函数实现,使用前加上#include<stdio.h>
1.2 函数接口
1.2.1 对单个字符的输入输出
函数名 |
功能 |
使用形式 |
putchar |
向终端输出一个字符(传入一个字符的ASCII码值,将该值对应的字符显示在屏幕上) |
putchar('a'); putchar(100); putchar(ch); putchar(ch+5) |
getchar |
从终端接收一个字符,表达式的结果为接收到字符的ASCII码值 |
char ch = 0; ch = getchar(); |
1.2.2 格式化字符串的输出
函数名 | 功能 | 使用形式 |
printf | 向终端输出格式化的字符串 | 见下 |
printf的使用形式
- 打印非输出的控制符
printf("hello world\n"); \n:换行字符 \b:退格字符 \t:横向制表符 \v:纵向制表符 \r:回车符 \":"字符 \\:\字符
- 打印输出控制符
int num = 0; printf("num = %d\n",num); char ch = 'a'; printf("ch = %c\n",ch); double d = 3.14; printf("d = %lf\n",d); %d 按照十进制打印 %o 按照八进制打印 %x 按照十六进制打印 %c 按照字符打印 %f 按照浮点数型打印 %u 按照无符号类型打印 %ld 按照long类型打印 %lf 按照double类型打印 %s 按照字符串打印 %p 按照指针打印 %e 按照指数打印 %% 打印%号
- printf打印多个输出控制符
输出控制符个数必须与表达式个数一一对应
- 格式
%nd n:预宽,不足预宽,高位用空号对齐 %.mf m:保留m位小数 %-nd -:左对齐 %0md 0:不足预宽,高位用0补齐
#include<stdio.h> int main(void) { int num1 =1234567; int num2 = 88; double num = 3.1415926; printf("num1= %d\n",num1); printf("num2 = %7d\n",num2); //七位预宽 printf("num = %.3lf\n",num); //保留3位小数 printf("num2 = %-7dRMB\n",num2); //七位预宽,左对齐 printf("num2 = %07dRMB\n",num2); //七位预宽,高位用0补齐 return 0; }
1.2.3 格式化字符串的输入
函数名 | 功能 | 使用形式 |
scanf | 向终端输入格式化的字符串 | 见下 |
从终端接收一个字符串,把它转换成“ ”中间的格式
1.scanf接收非输入控制符
- 如果接收非输入控制符,需要在屏幕中原封不动输入
- scanf尽量少出现非输入控制符
- scanf认为‘’和“\n”是用户结束数据的标志,所以不会读取到代码中
2.scanf接收输入控制符
int num = 0;
scanf("%d",&num);
float num = 0;
scanf("%f",&num);
double num = 0;
scanf("%lf",&num);
char num = 0;
scanf("%c",&num);
%d //将字符串转换为十进制
%c //从终端接收一个字符
%c //从终端接收一个非空格和\n的字符
%f //将字符串转换为float类型
%lf //将字符串转换为double类型
%s //从终端接收一个字符串
scanf除了%s可以不加&,其余都需要加&符号
3.scanf接收多个输入控制符
int num1 = 0;
int num2 = 0;
scanf("%d%d",&num1,&num2);
printf("num1 = %d\n",num1);
printf("num2 = %d\n",num2);
float num1 = 0;
float num2 = 0;
scanf("%f%f",&num1,&num2);
printf("num1 = %f\n",num1);
printf("num2 = %f\n",num2);
char ch1 = 0;
cahr ch2 = 0;
scanf(" %c %c",&ch1,&ch2); //空格%c 可以过滤掉输入的空格
printf("num1 = %c\n",ch1);
printf("num2 = %c\n",ch2);
1.2.4 字符串的输出
函数名 | 功能 | 注意事项 |
puts | 向终端打印一行字符串 | puts会多打印一个\n字符 |
#include <stdio.h>
int main(void)
{
char str[32] = {"how are you"};
puts("hello world");
puts(str);
printf("hello world\n");
printf("str = %s\n",str);
return 0;
}
1.2.5 字符串的输入
函数名 | 功能 | 注意事项 |
gets | 从终端接收一行字符串 |
#include <stdio.h>
int main(void)
{
char str[100] = {0};
gets(str);
puts(str);
printf("str = %s\n",str);
return 0;
}
2.流程控制(前半部分)
程序运行的顺序结构:
- 顺序结构
- 分支结构
- 循环结构
2.1逻辑表达式
2.1.1 关系运算符
- 表达式只有两种值:真、假
- 为了避免 == 和 = 混淆,一般 == 常量放在左边
运算符 | 含义 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
3 > 5 //false
3 <= 5 //true
3 == 5 //false
3 != 5 //true
int Num = 0;
Num == 0; //true
Num != 0; //false
int num = 200;
int ret = 0;
ret = 0 < num <100; //输出为1,因为num>0,输出1,1<100,输出1,针对于此,得用上逻辑运算符
2.1.2 逻辑运算符
运算符 | 含义 |
&& | 逻辑与 |
|| | 逻辑或 |
! | 逻辑非 |
&&真值表:一假为假,全真为真
左边 右边 真值表 真 真 真 假 真 假 真 假 假 假 假 假
||真值表:一真为真,全假为假
左边 右边 真值表 真 真 真 假 真 真 真 假 真 假 假 假
! 真值表:假取非为真,真取非为假
2.2 分支结构
2.2.1 if分支
1.简单分支
if(表达式) { 语句块1; } else { 语句块2; }
未完,敬请期待明天!!!