一、输入和输出
1.输入、输出的功能
(1)C语言本身不提供输入输出功能,使用的是C语言函数库中的“标准输入输出”
(2)C语言函数库提供的输入输出函数
getchar/putchar 操作一个字符
gets/puts 操作一个字符串
scanf/printf 格式化的函数
(3)需要加上<stdio.h>头文件
2.getchar/putchar
(1)getchar:
int getchar(void);函数原型
功能:从键盘获取一个字符
参数:void表示为空(表示使用时不需要给实参)
返回值:表示获取到的字符的ASCII值
eg:int ret;
ret=getchar();表示获取到getchar的ASCII码值
(2)putchar
int putchar(int c);函数原型
功能:输出一个字符
参数:@c(表示要输出的字符)
返回值: 成功 输出了的字符的ASCII码值
失败 -1
3.printf/scanf
(1)printf()格式化函数
eg:
printf('a=%d\n",10); a=10;
int printf(const char *format,...)...表示可变参数
printf("a = %d\n",a);
printf("a=%d b=%f c=%c\n"a,b,c);
printf("格式控制字符串"输出参数列表);
printf("a =%d\n"a);
格式控制字符串
普通字符 原样输出
占位符 匹配后面的输出参数
%d将后面的输出参数 转换为 有符号的十进制形式
(2)scanf()格式化输入
scanf(“格式控制字符串”,地址列表)
格式控制字符串
普通字符 原样输入
占位符 将从键盘输入的数据 转换成指定的格式
地址列表
int a;
scanf(”a=%d“,&a);
输入时要做到精确匹配
%lf 匹配double
%Lf 匹配long double
%ld 匹配long
%lld 匹配long long
注意:
a、scanf格式控制的字符串中 尽量不出现普通字符,只填占位符
b、scanf的地址列表一定是有效地址
c、scanf输入结束条件(匹配结束的条件)
遇到非法字符
遇到空白字符(空格、回车、tab)
超过指定宽度scanf(“%3d”,&a);
d、scanf的格式控制字符串中,如果出现空白符,表示匹配任意多个空白符
%*c 表示匹配一个数据项 但是并不把这个数据给到任何一个变量中
(3)占位符
整型
%d 有符号 十进制
%u 无符号 十进制
%o 八进制
%x 十六进制
%X 大写十六进制 0x、abcdef以大写形式输出
浮点型
%f 转化为十进制形式的小数,输出时默认保留6位小数 不足时补0
%e 转化为科学计数法形式
%E 指数形式中的e变成大写
%g 以一种更简洁的方式输出,同时不会输出0
字符型
%c 转换为字符 形式输出
%s 转换为字符串形式输出
占位符
%[辅助控制符]d
# %#x 打印出八进制前缀
%#o 打印出十六进制前缀
m 数字 表明要输出数据的宽度
如果数据本身的宽度>m,此时按照实际宽度输出
如果数据本身的宽度<m,此时按照m宽度输出,空出来的位置填空格
默认右对齐
-m 表明宽度 左对齐时不填空格
0m 表明宽度 此时按照m宽度输出,空出来的位置填0 左对齐时不填0
.n .n%f 保留n位小数
.n%s 保留前n个字符
.n%e
二、流程控制
顺序结构
选择结构(分支结构)
循环结构
任何一个程序都是这个三个结构组成
1.选择结构
c语言中通过 关系运算 和 逻辑运算 构造选择判断的条件
关系运算
> >= < <= != ==
n>5 关系表达式 都是有值的
反映关系成立与否
0——假 1——真
逻辑值
表达式都是有类型的
布尔型 C语言中用int型来记录逻辑结果
未完待续..........