开发者社区> RainstormGod> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

C语言学习前五章思维导图式总结(超详细,复习必备)

简介: C语言学习前五章思维导图式总结(超详细,复习必备),源文件在 process  on(在线流程图)上面,同名,需要多多支持。
+关注继续查看

C语言程序设计

 

·       第一章 程序设计与C语言

o   1.2 程序与程序设计语言 

§  1.2.1 程序设计语言的发展

·      1946年第一台电子计算机问世

·      1.机械语言

o   第一代计算机语言

o   0和1组成的二进制指令代码。机器指令的集合(即指令系统)就是该计算机的机器语言。

·      2.汇编语言

o   用助记符来代替机器指令的二进制串

·      3.高级语言

o   接近于数学语言或人的自然语言,不依赖于计算机硬件

o   (1)非结构化的语言   

§  早期追求效率:FORTRAN、ALGOL、BASIC

o   (2)结构化语言 

§  良好的基本结构:QBASIC、Pascal、C语言

o   (3)面向对象的语言

§  流水式:C++、C#、Visual Basic、JAVA 

§  1.2.2 程序设计语言的功能

·      1.数据表达(即定义变量)

o   数据类型就是对某些具有相同性质的数据集的总称

·      2.流程控制(数据处理)

o   (1)顺序控制结构

o   (2)分支控制结构

o   (3)循环控制结构

·      共同特点

o   只有单一的入口和单一的出口

o   结构中的每个部分都有被执行的可能

o   结构内不应出现永不终止的死循环

§  1.2.3 程序的算法表示

·      软件的主体是程序,程序的核心是算法

·      算法特点

o   (1)确定性

o   (2)有穷性

o   (3)可行性

o   (4)有零个或多个输入

o   (5)有一个或多个输出

·      1.用文字描述算法

·      2.用流程图描述算法

o   顺序结构

o   选择结构

o   循环结构

·      3.伪代码表示

·      4.程序设计语言表示

§  程序特点 

·      完成某一特定的任务

·      使用某种程序设计语言描述如何完成该任务

·      储存在计算机中,并且被运行后才能起作用

o   1.3 C语言程序设计的特点   

§  1.3.1 C语言的发展历史 

·      C语言是1972年由美国贝尔实验室的Dennis Ritchie设计

§  1.3.2 C语言的特点

·      语句简洁紧凑,使用方便灵活

o   9种控制语句

·      运算符丰富,表达能力强

·      C语言程序可移植性好

·      生成的目标代码质量高、运行效率高

·      语言处理能力强

·      C语言是一种结构化语言 

o   不足

§  语法检查不严格

§  对数组下标越界不检查,导致程序出错

§  1.3.3 C语言的约定

·      一般将程序设计语言的规范称为语法

·      1.C语言中的约定

o   标识符

§  第一个字符必须是字母或下划线

o   关键字

§  C语言中共有32个关键字

o   用户自定义标识符

o   预定义标识符

o   分隔符

§  逗号

·      类型说明和函数参数表中,分隔各个变量

§  空格

·      用于个单词之间作间隔符

·      2.C语言的语法成分

o   常量

o   变量

o   运算符

§  C语言提供了34种运算符

o   表达式

§  算术运算优先于关系运算

o   语句

§  以分号结尾

o   函数定义与调用

§  函数是完成特定功能的小模块

o   输入与输出

o   1.4 C程序的编辑、编译、链接和运行

§  1.4.1 程序设计的任务

·      分析问题

·      设计算法

·      程序设计

·      运行并调试程序

·      分析程序运行结果

·      编写程序文档

·      1.4.2 运行C程序的步骤与方法

o   编辑源程序

o   对源程序进行编译

o   链接(库函数)

o   运行(目标程序)

·       第二章 数据类型、运算符和表达式

o   2.1引例

§  注释可以出现在程序中合适的地方,但必须成对出现

o   2.2 C语言的数据类型  

§  基本类型

·      整形

·      字符型

·      实型(浮点型)

§  构造类型

·      数组类型

·      结构体类型

·      共用体类型

·      枚举类型

§  指针类型

§  空类型

o   2.3 C语言的常量

§  2.3.1 直接常量

·      1.整型常量

o   即整数,包括正整数、负整数、零

o   十进制表示:数字0~9,正、负号;

o   八进制表示:以0为前缀,其后由数字0~7组成;一般无符号

o   十六进制表示:以0x、0X为前缀,其后由数字0~9和A~F组成;一般无符号 

o   后加u、U认为是unsigned int;后加l、L认为是long int;

·      2.实型常量

o   实数又称为浮点数,C语言中,实数只能用十进制形式表示

o   小数形式:整数或小数为零时可以省略,但小数点不可以

o   指数形式:格式+-尾数E指数 

§  E或e前后必须有数字,并且指数部分只能是整数

o   3.字符型常量

o   特点:

§  只能用单引号括起来,不能用双引号或其他

§  是单个字符,不能是字符串

§  可以是ASCII字符集中的任意字符,只占一个字符

§  \数字  表示八进制;\x数字 表示十六进制

§  \0放入函数,直接结束

o   4.字符串常量(双引号)

§  2.3.2 符号常量(用标识符表示常)

§  形式:#define  标识符  常量值

§  好处:

·      增加程序的可读性

·      提高程序的可维护性

·      简化程序代码

·      方便数组定义

o   2.4 C语言的变量  

§  2.4.1 变量的定义与使用

·      1.变量的定义

·      2.变量的初始化

·      3.变量的使用

§  2.4.2 整型变量

§  说明:

·      有符号整数以二进制补码形式存储

·      无符号整数以二进制原码形式存储

§  2.4.3 实型变量

·      单精度型数据能保留7位有效数字,双精度型数据能保留16位有效数字

·      双精度只保留6位小数,其余部分四舍五入

§  2.4.4 字符型变量

o   2.5 运算符和表达式

§  2.5.1 赋值运算符和赋值表达式

·      1.简单赋值运算符(”=“)

·      2.复合赋值运算符

·      3.赋值表达式

o   赋值语句属于表达式语句

o   赋值运算符左侧必须是一个变量

o   赋值表达式的末尾没有分号,而赋值语句的末尾必须有分号

§  2.5.2 算数运算符和算术表达式

·      1.基本的算术运算符

o   如果a和b中有一个是实型,则a和b都转换为double类型

·      2.自增、自减运算符

o   前缀方式:先计算,后使用

o   后缀方式:先使用,后计算

o   注意:

§  两个单目运算符不能出现在同一个式子中。

§  先单目,后双目

·      3.算术运算符的优先级和结合性

o   单目右结合,双目左结合

·      4.算术表达式

§  2.5.3 逗号运算符和逗号表达式

·      执行顺序:从左到右依次计算每个表达式的值,并把最后一个表达式的值作为整个逗号表达式的值

§  2.5.4求字节数运算符(单目)

o   2.6 数据类型转换

§  2.6.1自动类型转换

·      把占用内存空间少的(低级)类型向占用空间多的(高级)类型转换

§  2.6.2强制类型转换

·      (类型说明符)(表达式)

·      注意:

o   需强制类型转换中的表达式一定要括起来,否则只对紧随括号后的量进行类型转换

o   由高到低,会损失数据的精度

o   并不改变表达式中变量的类型和值

·       第三章 顺序结构程序设计

o   3.2 C语言的语句

§  1.说明语句

§  2.表达式语句

§  3.分支语句

§  4.循环语句

§  5.转向语句

§  6.复合语句

§  7.空语句

§  8.函数定义与调用

§  9.输入和输出

o   3.3 数据的输入和输出

§  C语言本身没有提供输入输出语句,所有的数据输入输出功能都是由系统提供的库函数 

§  3.3.1 输出函数(printf())和输入函数(scanf())

·      1.printf()函数

o   (1)格式控制说明

o   (2)普通字符

·      2.scanf()函数 

o   (1)格式控制说明

o   (2)普通字符

§  3.3.2 整形数据的输入和输出

§  3.3.3 实型数据的输入和输出

§  3.3.4 字符型数据的输入和输出

·      1.使用scanf()函数和printf()函数对字符型数据进行输入输出

·      2.使用getchar()函数和putchar()函数对字符型数据进行输入输出

o   (1)getchar()函数

o   (2) putchar()函数

o   3.4 数学库函数 

§  exp(x)即e的x次方

§  fabs(x)绝对值

§  以e为底的对数函数log(x)

§  幂函数pow(x,y)

§  平方根函数sqrt(x)

·       第四章 分支结构程序设计 

o   4.2 关系运算符、逻辑运算符、条件运算符

§  4.2.1 关系运算符和关系表达式

·      1.关系运算符

o   注意:1.关系运算符都是双目运算符,其结合方向是左结合

o              2.关系运算符的优先级低于算术运算符,但高于赋值运算符

o              3.关系运算符中,>,<,>=,<=的优先级相同,==,!=的优先级相同,前者的优先级高于后者

·      2.关系表达式

§  4.2.2 逻辑运算符和逻辑表达式

·      1.逻辑运算符

o   !’   逻辑非 右结合     单目     高

o   ‘&amp;&amp;’ 逻辑与  左结合    双目      |

o   ‘||’     逻辑或  左结合    双目     低

·      2.逻辑表达式

·      说明:可以是任何类型的数据,最终都是以非0和0来判断

o   a&amp;&amp;(b=0)正确

o   当计算出一个值表达式的值,确定了整个逻辑表达式的值,此后就不再计算右边表达式的值,这种情况叫做“短路”

§  只有当“&amp;&amp;”左边的表达式值为真时才计算右边表达式的值

§  只有当“ | |  ”左边的表达式值为假时才计算右边表达式的值

·      运算符优先级:

·           !            算术运算符     关系运算符      &amp;&amp;和||       赋值运算符

·      右结合                                     左结合                               右结合

·      高——————————————————————————低

§  4.2.3 条件运算符和条件表达式

·      1.条件运算符

o   条件运算符由”?"和“:”两个符号组成,由于条件求值,它是一个三目运算符,需要有三个操作数,条件运算符的优先级低于逻辑运算符,高于赋值运算符,它是右结合的。

·      2.条件表达式

o   形式:表达式1?表达式2:表达式3

o   顺序:计算1,非0真,执行2;否则执行3;

o   4.3 使用if-else实现分支结构

§  4.3.1 if-else语句

·      1.双分支if语句

·      2.单分支if语句

§  4.3.2 if 语句的嵌套

§  4.3.3 多分支if语句

o   4..4 使用switch语句实现分支结构  

§  说明:switch后的表达式可以是任何表达式,但值只能为整形、字符型、枚举型之一

§             每个case后面的常量表达式的值互不相同,否则就会出现互相矛盾的现象

§             各个case和default的出现次序不影响执行结果

§             可以让多个case共用一组执行语句

§              switch语句允许嵌套使用

o   4.5 分支结构程序设计示例

·       第五章 循环结构程序设计 

o   5.2 使用for语句实现循环结构 

§  for语句是C语言提供的功能强大、使用广泛的一种循环结构,不仅可以解决循环次数未知的循环问题,特别适合解决循环次数已知的循环问题

§  若输入的数字字符是‘7’,其ASCII码是55,而字符‘0’的ASCII码是48,二者相减即为数字7.这是一种将数字字符转换为数字的常用方法

o   5.3 使用while语句实现循环语句 

§  在C语言中,使用while语句完成不定次数的循环。如果满足循环条件,则反复执行循环语句,当循环条件不满足时退出循环

§  语句中的表达式可以是任意类型的表达式,若表达式的值为非0,则表示循环条件为“真”,执行循环体语句,若表达式的值为0,则表示循环条件为“假”,不执行循环体语句,结束循环,执行循环结构的下一条语句。 

o   5.4 使用do-while语句实现循环语句 

§  在C语言中,do ——while语句也用于完成不定次数的循环控制。与while语句不同的是,do ——while语句首先执行一次循环体,然后判断循环条件,如果满足则反复执行循环体语句,否则结束循环。

§  一般来说,如果题目中给出的循环次数首选for循环语句,如果循环次数不明确,需要通过其他条件控制循环。通常选用while循环语句,如果需要先执行语句,然后再根据条件判断是否执行循环体,则do while语句最合适。

o   5.5 改变循环结构的跳转语句

§  5.5.1 break语句

·      当break语句用于循环语句中时,可使程序终止循环而转去执行循环语句的后续语句。通常break语句总是与if一起配合使用,即满足条件时便跳出循环。

§  5.5.2 continue语句

·      continue语句的作用是跳过循环体中continue后面的语句,继续下一次循环。continue语句只能用在循环语句中,常与 if语句一起使用

§  注意continue语句与break语句有本质的区别;continue语句只是结束本次循环,并不终止整个循环的执行;而break语句的作用是强制终止整个循环程序

o   5.6 循环嵌套

§  循环嵌套格式中的内外循环不允许出现交叉,即外循环要完全包括内循环

§  循环嵌套时,内循环中使用break语句和continue语句时,只影响包含它们的内循环,与外循环无关

o   5.7 典型算法举例

o   5.8 循环程序设计示例

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《C语言程序设计与实践(第2版)》——2.7 函数
C语言的程序是由一个个函数构成的,除了有且必须有的main主函数以外,用户也可以自己定义函数。此外,C语言的编译系统还提供了一些库函数。函数为程序的封装提供了一种简便的方法,在其他地方使用函数时不需要考虑它是如何实现的。
976 0
《C语言及程序设计》实践参考——改造链表
返回:贺老师课程教学链接 【项目3 - 改造链表】 下面是一个建立动态链表的程序。阅读程序,然后按要求改造程序。 #include <iostream> using namespace std; #include <stdio.h> #include <malloc.h> #define N 5 typedef struct
871 0
《C语言及程序设计》实践参考——链表的合并
返回:贺老师课程教学链接 【项目1-链表的合并】 输入一个整数m,表示A链表的长度,再输入m个数作为A链表中的m个数据元素,建立链表A,其头指针为heada。输入一个整数n,表示B链表的长度,再输入n个数表示B链表中的n个数据元素,建立链表B,其头指针为headb。输入i、len、j,将要从单链表A中删除自第i个元素起的共len个元素,然后将单链表A插入到单链表B的第j个
1024 0
《C语言及程序设计》实践参考——链表版通信录
返回:贺老师课程教学链接 【项目4-链表版通信录】 利用链表存储数据,写一个通信录程序,能够记录多个联系人的编号、姓名、性别、联系电话、地址,完成数据的录入、添加、删除、修改以及查询功能。 [参考解答] 本解答自网络:链接 #include<stdio.h> #include<string.h> #include<stdlib.h>
1068 0
《C语言及程序设计》实践参考——字符串处理函数
返回:贺老师课程教学链接  实践要求 【项目4-字符串处理函数】指针是神奇的,指向整型的指针int *p1,可以操作整型数组int a[];指向字符型的指针char *p2,可以操作字符数组(字符串)char str[];更灵活的是,在函数的传递中,指针、数组名在一定程度上可以互换。请编制函数,对字符串的进行各种操作。 序 功能 用数组名作形参 用指针作形参 1 字符串str1和str
1309 0
《C语言及程序设计》实践参考——歌手大奖赛计分函数版
返回:贺老师课程教学链接  项目要求 【项目2-歌手大奖赛计分函数版】(1)在歌手大奖赛中,有n位评委为参赛的选手打分,分数为0~10分(运行时由人输入)。选手最后得分为:去掉一个最高分和一个最低分后其余分数的平均值。请编写一个程序,完成相关的功能。 要求利用一个函数void calScore(int n),对一位选手成绩的输入成绩、计算和显示实现,其中n为评委人数。这样,在main函数
1114 0
《C语言及程序设计》实践参考——大奖赛计分(续一)
返回:贺老师课程教学链接  项目要求 【项目1:大奖赛计分(续一)】在歌手大奖赛中,有10个评委为参赛的选手打分,分数为1~10分。请在大奖赛计分程序基础上,增加功能,若用户输入不在0-10范围内,则立即要求重输,直到正确。 [参考解答] #include <stdio.h> #define n 10 int main( ) { int i; double av
971 0
《C语言及程序设计》实践参考——大奖赛计分
返回:贺老师课程教学链接  项目要求 【项目4:大奖赛计分】  (1)基本要求:在歌手大奖赛中,有10个评委为参赛的选手打分,分数为1~10分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。 #include <stdio.h> #define n 10 int main( ) { int i=1; double ave
1065 0
《C语言及程序设计》实践参考——Bessel函数
返回:贺老师课程教学链接  项目要求 【项目3:Bessel函数】Bessel函数Jn(X)有以下的递推关系: 编写程序,利用递推关系,由任意的n和x≠0求Jn(X)。 [参考解答] #include <stdio.h> #include <math.h> int main( ) { double jn, j0, j1, x; int n, i;
981 0
+关注
RainstormGod
眼睛可以近视,但目光不能短浅。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
为什么要学函数式编程?
立即下载
让学习有效发生
立即下载
程序员面试宝典
立即下载