第一章:程序设计与C语言
1.c语言程序结构
1. 预处理指令:包括对头(.h)文件的操作以及编译预处理(#define)指令。
2. 全局变量声明(在整个程序范围内有效的变量声明)。
3. 函数定义:先定义后调用,或者先声明,再定义,后调用。
2.函数的结构:函数类型 函数名 {参数类型 参数名,……(若干个参数)}
3.程序设计流程:
1. 分析问题
2. 设计算法
3. 编写程序
4. 对程序进行编辑,编译,修改得到可执行程序。
第二章:算法
1. 算法的特性:有穷性,确定性,有零个或多个输入,有一个或多个输出,有效性。
2. 算法的表示:自然语言,流程图,伪代码
3. 流程图:
*
* 圆角矩形:起止框
* 平行四边形:输入输出框
* 菱形:判断框
* 矩形:处理框
* 箭头:流程线
* 连接点,注释框
1. N—S流程图 :
(1)顺序结构
(2)选择结构
(3)循环结构
1. 伪代码:(略)
三.数据类型
1. 基本类型:
*
* 整型 int:
1.
1. unsigned int : 范围:0~65535 所占字节数:4,后缀常用U;
2. int: 表示范围-32768~32767 所占字节数:4
3. long int: 表示范围: -2,147,483,648 ~ 2,147,483,647 所占字节数:8,后缀L
4. short int:-32768~32767 所占字节数小于等于int
5. long long int ,unsigned long long int 不表。
6. 格式说明符:%d,%ld,%hd
* 浮点数
*
* float
*
* 范围:至少能表达6位有效数字,取值范围至少为10-37~10+37.
* 所占字节数:4
* 存储方式:
*
* 格式说明符:%f或%e
* double
*
* 范围:1.7E+-308(精确到15位小数)
* 所占字节数:8
* 格式说明符:%lf或者%le
* long double
*
* 范围:1.19E+-4932(精确到18位小数)
* 所占字节数:12
* 复数浮点型:
* 字符类型:char(整数类型的一种)
*
* char
*
* 占据字节:1
* 可以对char类型进行算数运算,也可以当作一个字符。
* 格式说明符:%c
* 转义字符:
*
* \n==enter
* \t==TAB
* \b==退格
* \r==退到本行开头
* \\==反斜杠
* \ddd==一到三位八进制数字
* \xhh==一到两位16进制数字
* \'
* \''
* \a==发出警告
* \f==换页
* \v 换至下个垂直制表对齐点
* bool
*
* true==1;false==0;
* 数组
* 结构体(struct)
* 枚举类型(enum) /*该部分在未来的复习中总结*/
* 联合类型(union)
* 指针类型
* 空类型(void)
* sizeof运算符用于确定某基本类型值所占的内存空间,返回一个无符号整数,用%u输出。
* 强制类型转换:
(目标类型名)(要转换的变量,常量,表达式等)
* 隐式类型转换
*
* 类似大鱼吃小鱼:long double>double>float>long long int>long>int>short>signed char
* 注:(unsigned 与带符号级别相同)
四.运算符和表达式
* 算术运算符:
*
* +(单目为正号,双目为加号)
* -(单目为负号,双目为减
* *
* /
* %取余
* 自增、自减运算符
*
* ++i,先执行i+1,再使用i的值;
* --i,先执行i-1,再使用i的值;
* i++,先使用i的值,后执行i+1;
* i--,先使用i的值,后执行i-1;
* 不同类型之间的数据混合运算,按照隐式类型转换的方式取优先级,级别低的转换为级别高的。
* 关系运算符
* 逻辑运算符
* 位运算符
* 赋值运算符
* 条件运算符
* 逗号运算符
* 指针运算符
* 求字节数运算符
* 强制类型转换运算符
* 成员运算符
五.C语句
1.判断语句
*
* if语句
*
* 基本的if语句用于两个分支的选择结构,一般为
*
* if (表达式) 语句/代码块;当表达式的值为1时执行语句。特别的对于else,当其对应的if中的判断表达式值为false时,执行该语句后的语句。一个else必须要有一个if作为其对应的条件语句。
* 逻辑运算符:
*
* &&:逻辑与,二目运算符,左右表达式均为true时其值为一。
* ||:逻辑或,二目运算符,左右表达式中有一个为true时其值便为1.
* !:逻辑非,一元运算符,对其操作表达式做“真值取反”处理。
* 条件运算符:==等于 !=不等于 <小于 >大于 <=小于等于 >=大于等于
* switch语句
*
* 基本格式:
switch(switch_number)
{
case:语句;break;
case:语句;break;
.
.
.
default:(语句);break;
}
*
*
* switch可以与枚举类型一同使用。
2.goto语句
*
*
* 运用goto语句可以跳到代码标签所指的地方。
3.循环语句
*
* while循环
while(表达式)
{
语句;
}//先判断,当表达式的值为true时执行。
*
* do-while循环
do
{
语句;
}while(表达式)//先执行语句,再判断是否继续执行。
*
* for循环
for(语句1;语句2;语句3)
{
执行语句;
}
//此处语句一为初始化语句,可不加,语句二为循环结束条件(一般为一个逻辑表达式),一般情况下循环需要一个出口,语句三为“促使循环结束的改变方法”。有点绕口,不过理解了之后很简单。
*
* break与continue
*
* 执行到break语句跳出循环,执行后续的语句。
* 执行到continue语句跳出当前循环,执行下一个循环。
六.输入与输出及字符串操作相关函数:
1. 输入函数:
* 格式化输入:scanf_s()
* 格式说明符:
%*field_width 长度修饰符 conversion_character
%表示格式说明符的开始
*表示要忽略的输入值(书上的概念,不清楚,“但如果stdin重定向到文件上就可以使它忽略文件中不想处理的值。”)
field_width是一个整数,指定了scanf_s要输入的字符数,可以使输入的一连串数字中没有空白,常用于读入文件。
长度修饰符:(暂略)
最后一个代表转换字符。
*
* 转换字符
*
* d:十进制
* A,a,E,e,F,f,G,g:浮点数。
* i:有符号的整数
* o:有符号的八进制整数
* u:无符号整数
* x:有符号的十六进制整数
* c:“将字符宽度指定的字符数读入为char类型”(暂略)
* s:从下个非空白字符开始输入一连串的空白字符
* []:(特定读取,暂略)
* %:不读入%
* p:
* n
* 非格式化输入:getchar() getchar()函数一次只能接收一个字符,并且可以接收控制字符。
2.输出函数:
* printf函数
*
* printf(格式控制,输出表列);
*
* l,用于长整形整数。
* m,数据最小宽度;
* .n(读作点n),对实数,表示n位小数,对字符串,表示截取的字符个数。
include