第一章 绪论
1.1 c语言的设计基础
对于c语言设计分为5个步骤
**程序设计=问题分析+结构特性的设计+算法的设计+流程的描述+调试与运行**
- 问题分析:当拿到一道算法题或者需要解决的问题时,需要先分析我需要做什么,如何从A得到B,其中有几条路,最后确定一条最短路径。
- 其中需要确定是否为数值型问题,非数值型问题,需要的精度等等
- 输入输出的设备:键盘、打印机、显示器等等
- 使用的数学模型求解可以使用多种数学模型,对于多种方法需要得到最合理的方法
- 较为复杂的程序需要考虑设计结构特性:控制结构与数据结构
第二章 基本数据类型
2.1 计算机计数制
- 计算机使用二进制进行存储、处理与传送,详细知识涉及信号与系统并不进行学习
2.2 二进制
- 二进制数转换
10进制–>2进制:除二取余
2进制–>10进制:第n个数乘以2的n次幂,最右测为第0位,其次为第一个,最左侧为第n个(计算机计数从0开始)
2.3 原码 补码 反码 偏移码
- 第一位符号位,原码转反码,符号位不变其他相反(正负数一样)
- 正数的补码就是原码(正负数不同)
- 负数的补码是该数反码加一
- 偏移码为该数的补码符号位取反
2.4 位 字节 字
位(bit) 来自英文bit,音译为“比特”,表示二进制位。位是计算机内部数据储存的最小单位,11010100是一个8位二进制数。
字节(byte) 字节来自英文Byte,音译为“拜特”,习惯上用大写的“B”表示。
字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit)。八位二进制数最小为00000000,最大为11111111;通常1个字节可以存入一个ASCII码,2个字节可以存放一个汉字国标码。
2.5 常量与变量
整型 基本整型int、无符号基本整型、有符号/无符号长整型、有/无符号短整型、有/无符号超长整型
实型 单精度float 双精度double
字符型 char
空类型 void
基本整型int型 为4字节,32位 可以存放-231至 231-1 ,32字节中一位为符号位,约为正负21亿
- 使用8进制:以0开头
- 使用16进制:以0x或者0X开头
变量命名:数字字母下划线,不能用数字开头,严格区分大小写
第三章 输入输出
3.1 输出格式符
- 十进制常用
%d基本整型、%ld长整型 - 八进制
%o - 十六进制
%x
3.2 输出常用格式符
- %c字符
- %f浮点数
- %s字符串直到遇到\0
- %p内存地址
注:为防止出现内存越界,使用scanf时请不要对格式符使用宽度说明
3.3 字符输入与输出
输出字符函数
形式例:
putchar©;
使用例:
putchar(‘a’);//输出字符a
char x=‘b’;
putchar(x);//输出字符b
putchar(67);//输出字符c,67为c的ASCII码
int y=68;
putchar(y);//输出字符d
putchar(34+25);//输出;号
输入字符函数
形式例:
getchar();
从键盘获得一个字符,回车结束
使用例:
#include<studio.h>
main(){
char x;
x = getchar();
}
在conio.h库中还有 _getch() 与 _getche()两个字符输入函数
_getch() 在接收时,在按下的同时接受,不需要回车,不显示在屏幕上
_getche() 在接收时,在按下的同时接受,不需要回车,显示在屏幕上
第四章 赋值
使用等号=进行赋值
变量名=表达式
等号左边必须为变量名
等号两端类型不一致时会自动类型转换,有可能出现错误
算数运算 +=,-=,*=,/=,%=
(模余,必须为整型)
关系运算 <,<=,>.>=,==,!=,===,!==
===为等于运算,不仅判断值还判断类型
逻辑运算 && || !
括号优先级最高
优先级从高到低:! 算数 关系 && || 赋值
使用例:判断闰年
(year % 4 == 0 && year % 100 != 0) || year % 400 == 0
自增运算 自减运算
a++、a–
++a、–a
a++表示执行完改行a=a+1
++a表示在执行改行前a=a+1
宏定义
可以将程序中多处使用的字符串定义为一个符号常量
#define P printf
之后就可以使用p("");来代替printf("");
宏定义可以简化表达式但必须考虑到表达式展开后是否正确