一、C语言数据类型
二、输入输出函数
1. printf 函数
头文件: stdio.h
原型:int printf(const cahr *format, ...);
format : 格式控制字符串
… :可变参数列表
返回值 :输出字符的数量
printf 函数转换说明
转换说明 | 输出 |
---|---|
%a | 浮点数、十六进制数、p记数法 |
%A | 浮点数、十六进制数、p记数法 |
%c | 单个字符 |
%d | 有符号的十进制数 |
%e | 浮点数、e记数法 |
%E | 浮点数、e记数法 |
%f | 浮点数、十进制记数法 |
%g | 根据值的不同,自动选择%e,%f。%e格式用于指数小于-4或者大于或者等于精度时 |
%G | 根据值的不同,自动选择%e,%f。%e格式用于指数小于-4或者大于或者等于精度时 |
%i | 有符号的十进制数(与%d相同) |
%o | 无符号的八进制数 |
%p | 指针 |
%s | 字符串 |
%u | 无符号的十进制数 |
%x | 有符号的十六进制数,使用十六进制数0f |
%X | 有符号的十六进制数,使用十六进制数0F |
%% | 打印一个% |
sprintf、fprintf
sprintf : 将输出的内容输出到字符数组中,可以做字符串的拼接操作
fprintf : 将输出的内容输出到文件中
#include <stdio.h>
int main() {
char str[100] = {0};
int arr[4];
sprintf(str, "%d.%d.%d.%d", 121,196,171,222);
printf("%s\n", str);
FILE *fp = fopen("./output", "w");
fprintf(fp, "%s\n", str);
fclose(fp);
return 0;
}
2. scanf 函数
头文件: stdio.h
原型:int printf(const cahr *format, ...);
format : 格式控制字符串
… :可变参数列表
返回值 :成功读入参数的个数
scanf 函数转换说明
转换说明 | 含义 |
---|---|
%c | 把输入解释成字符 |
%d | 把输入解释成有符号的十进制数 |
%e 、%f、%g、%a | 把输入解释成浮点数 |
%E 、%F、%G 、%A | 把输入解释成浮点数 |
%i | 把输入解释成有符号的十进制数 |
%o | 把输入解释成无符号的八进制数 |
%p | 把输入解释成指针(地址) |
%s | 把输入解释成字符串 |
%u | 把输入解释成无符号的十进制数 |
%x 、%X | 把输入解释成有符号的十六进制数 |
循环输入
while (scanf() != EOF)
EOF : end of file (文件结尾)
sscanf\fscanf
sscanf : 从一个字符串中读入值
fscanf : 从一个文件中中读入值
#include <stdio.h>
int main() {
char str[100] = {0};
int arr[4];
sprintf(str, "%d.%d.%d.%d", 121,196,171,222);
printf("%s\n", str);
sscanf(str, "%d.%d.%d.%d", &arr[0], &arr[1], &arr[2], &arr[3]);
for (int i=0; i < 4; i++) {
printf("%d\n", arr[i]);
}
FILE *fp = fopen("./output", "w");
fprintf(fp, "%s\n", str);
fclose(fp);
fp = fopen("./output", "r");
fscanf(fp, "%s", temp);
fclose(fp);
printf("%s", temp);
return 0;
}
三、C语言基本运算符
运算符 | 说明 |
---|---|
= | 复制运算符 |
+、-、*、 /、 | 基本四则运算 |
% | 取余运算 |
&、|、^、 ~、 | 位运算 |
<<、>> | 左移、右移 |
a^a = 0
0^n = n
负数:由补码表示
补码 = 反码 + 1
反码 = ~原码
负数 = ~原码 + 1
循环读入的实现
while (scanf("%d", &n) != EOF) {}
while (~scanf("%d", &n)) {}
四、C语言中的数学函数库
项目 | Value |
---|---|
pow(a, n) | fabs(n) |
sqrt(n) | log(n) |
ceil(n) | log10(n) |
sqrt(n) | log(n) |
floor(n) | acos(n) |
abs(n) | … |
五、流程控制
- 顺序
- 分支
- 循环
1.关系运算符
运算符 | 说明 |
---|---|
== | 等于 |
!= | 不等于 |
<、> | 小于、大于 |
<=、>= | 小于等于、大于等于 |
! | 非 |
2.分支结构
if 语句
if (表达式) {
代码段;
}
if (表达式) {
代码段1;
}
else {
代码段2;
}
if (表达式1) {
代码段1
}
else if (表达式2) {
代码段2;
}
else {
代码段3;
}
switch 语句
switch(a) {
case 1 : 代码块1;
case 2 : 代码块2;
case 3 : 代码块3;
default : break;
}
3.循环结构
while 语句
while (表达式) {
代码块;
}
do {
代码块;
} while (表达式);
for 循环
for (初始化; 循环条件; 执行后操作) {
代码块;
}