C程序设计(第五版)思维导图

c程序设计(第五版)学习辅导思维导图

数据类型

数据类型{基本类型{整型类型{基本整型(int)短整型(shortint)长整型(longint)∗双长整型(longlongint)字符型(char)∗布尔型(bool)浮点类型{单精度浮点型(float)双精度浮点型(double)复数浮点型(float−complex,double−complex,longlong−complex)枚举类型(enum)空类型(void)派生类型{指针类型(∗)数组类型([])结构体类型(struct)共用体类型(union)函数类型数据类型\begin{cases} 基本类型 \begin{cases} 整型类型 \begin{cases} 基本整型(int)\\ 短整型(short~int)\\ 长整型(long~int)\\ *双长整型(long~long~int)\\ 字符型(char)\\ *布尔型(bool) \end{cases}\\ 浮点类型 \begin{cases} 单精度浮点型(float)\\ 双精度浮点型(double)\\ 复数浮点型(float_-complex,double_-complex,long~long_-complex) \end{cases} \end{cases}\\ 枚举类型(enum)\\ 空类型(void)\\ 派生类型\begin{cases} 指针类型(*)\\ 数组类型([~])\\ 结构体类型(struct)\\ 共用体类型(union)\\ 函数类型 \end{cases} \end{cases}数据类型⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​基本类型⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​整型类型⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧​基本整型(int)短整型(short int)长整型(long int)∗双长整型(long long int)字符型(char)∗布尔型(bool)​浮点类型⎩⎪⎨⎪⎧​单精度浮点型(float)双精度浮点型(double)复数浮点型(float−​complex,double−​complex,long long−​complex)​​枚举类型(enum)空类型(void)派生类型⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​指针类型(∗)数组类型([ ])结构体类型(struct)共用体类型(union)函数类型​​

转义符及其作用

转义字符 字符值 输出结果
\’ 一个单撇号(') left-aligned输出单撇号字符 ’
\" 一个双撇号(") 输出双撇号字符 "
\? 一个问号(?) 输出问号字符 ?
\\ 一个反斜线(\) 输出反斜线字符 \
\a 警告(alert) 产生声音或视觉信号
\b 退格(backspace) 将光标当前位置后退一个字符
\f 换页(form feed) 将光标当前位置移到下一页的开头
\n 换行 将光标当前位置移到下一行的开头
\r 回车(carriage return) 将光标当前位置移到本行的开头
\t 水平制表符 将光标当前位置移到下一个Tab位置
\v 垂直制表符 将光标当前位置移到下一个垂直制表对齐点
\o、\oo、\ooo其中o代表一个八进制数字 与该八进制码对应的ASCII字符 与该八进制码对应的字符
\xh[h···]其中h代表一个十六进制数字 与该十六进制码对应的ASCII字符 与该十六进制码对应的字符

printf函数中用到的格式字符

格式字符 说明
d,i 以带符号的十进制形式输出整数(正数不输出符号)
o 八进制无符号形式输出整数(不输出前导符0)
x,X 十六进制无符号形式输出整数(不输出前导符0x),用x则输出十六进制数的a~f时以小写形式输出,用X时,则以大写字母输出
u 无符号十进制形式输出整数
c 字符形式输出,只输出一个字符
s 输出字符串
f 小数形式输出单、双精度数,隐含输出6位小数
e,E 指数形式输出实数,用e时指数以“e”表示(如1.2e+02),用E时指数以“E”表示(1.2E+02)
g,G 选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0。用G时,若以指数形式输出,则指数以大写表示

printf函数中用到的格式附加字符

字符 说明
l 长整型整数,可加在格式符d、o、x、u前面
m 数据最小宽度
n 对实数,表示输出n位小数;对字符串,表示截取的字符个数
- 输出的数字或字符在域内向左靠

scanf函数中用到的格式字符

格式字符 说明
d,i 输入有符号的十进制整数
u 输入无符号的十进制整数
o 输入无符号的八进制整数
x,X 输入无符号的十六进制整数(大小写作用相同)
c 输入单个字符
s 输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结束。字符串以串结束标志‘\0’作为其最后一个字符
f 输入实数,可以用小数形式或指数形式输入
e,E
g,G
与f作用相同,e与f、g可以互相替换(大小写作用相同)
l 输入长整型数据(可用%ld,%lo,%lx,%lu)以及double型数据(%lf或%le)
h 输入短整型数据(可用%hd,%ho,%hx)
域宽 指定输入数据所占宽度(列数),域宽应为正整数
  • | 本输入项在读入后不赋给相应的变量

指针变量的类型及含义

变量定义 类型表示 含义
int i; int 定义整型变量i
int *p; int * 定义p为指向整型数据的指针变量
int a[5] int [5] 定义整型数组a,它有5个元素
int *p[4]; int *[4] 定义指针数组p,它由4个指向整型数据的指针元素组成
int (*p)[4]; int (*)[4] p为指向包含4个元素的一维数组的指针变量
int f(); int () f为返回整型函数值的函数
int *p(); int *() p为返回一个指针的函数,该指针指向整型数据
int (*p)(); int (*)() p为指向函数的指针,该函数返回一个整型值
int **p; int ** p是一个指针变量,它指向一个指向整型数据的指针变量
void *p; void * p是一个指针变量,基类型为void(空类型),不指向具体的对象

字符串处理函数

字符串处理函数 作用 一般形式
puts函数 输出字符串的函数 puts(字符数组)
gets函数 输入字符串的函数 gets(字符数组)
strcat函数 字符串连接函数 strcat(字符数组1,字符数组2)
strcpy和strncpy函数 字符串复制函数 strcpy(字符数组1,字符串2);strncpy(字符数组1,字符串2,n)
strcmp函数 字符串比较函数 strcmp(字符串1,字符串2)
strlen函数 测字符串长度的函数 strlen(字符数组)
strlwr函数 转换为小写的函数 strlwr(字符串)
strupr函数 转换为大写的函数 strupr(字符串)

C语言中37个关键字及其含义

关键字 含义
1. 数据类型关键字(12个)
(1). char 声明字符型变量或函数
(2). double 声明双精度变量或函数
(3). enum 声明枚举类型
(4). float 声明浮点型变量或函数
(5). int 声明整型变量或函数
(6). long 声明长整型变量或函数
(7). short 声明短整型变量或函数
(8). signed 声明有符号类型变量或函数
(9). struct 声明结构体变量或函数
(10). union 声明联合数据类型
(11). unsigned 声明无符号类型变量或函数
(12). void 声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
2. 控制语句关键字(12个)
A.循环语句
(1). for 一种循环语句(可意会不可言传)
(2). do 循环语句的循环体
(3). while 循环语句的循环条件
(4). break 跳出当前循环
(5). continue 结束当前循环,开始下一轮循环
B.条件语句
(1).if 条件语句
(2).else 条件语句否定分支(与 if 连用)
(3).goto 无条件跳转语句
C.开关语句
(1).switch 用于开关语句
(2).case 开关语句分支
(3).default 开关语句中的“其他”分支
D.
return 子程序返回语句(可以带参数,也看不带参数)
3. 存储类型关键字(4个)
(1).auto 声明自动变量 一般不使用
(2).extern 声明变量是在其他文件正声明(也可以看做是引用变量)
(3).register 声明积存器变量
(4).static 声明静态变量
4. 其它关键字(4个)
(1).const 声明只读变量
(2).sizeof 计算数据类型长度
(3).typedef 用以给数据类型取别名(当然还有其他作用)
(4).volatile [ˈvɔlətail] 说明变量在程序执行中可被隐含地改变
5.C99新增(5个)
(1).inline关键字 用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义
引入原因:C语言是一个效率很高的语言,这种宏定义在形式及使用上像一个函数,但它使用预处理器实现,没有了参数压栈,代码生成等一系列的操作
(2).restrict关键字 只用于限定指针;该关键字用于告知编译器,所有修改该指针所指向内容的操作全部都是基于(base on)该指针的,即不存在其它进行修改操作的途径;这样的后果是帮助编译器进行更好的代码优化,生成更有效率的汇编代码。
(3)._Bool关键字 用于表示布尔值。包含标准头文件 stdbool.h 后,我们可以用 bool 代替 _Bool ,true 代替 1 ,false 代替 0 。
(4)._Complexand_Imaginary关键字 C99标准中定义的复数类型如下:float_Complex; float_Imaginary; double_Complex; double_Imaginary; long double_Complex; long double_Imaginary.
头文件中定义了complex和imaginary宏,并将它们扩展为_Complex和_Imaginary,因此在编写新的应用程序时,应该使用头文件中的complex和imaginary宏。

动态内存分配的函数

4个函数的声明在stdlib.h头文件中。

函数名 作用 函数原型
malloc函数 用malloc函数开辟动态存储区
其作用是在内存的动态存储区中分配一个长度为size的连续空间。
void *malloc(unsigned int size);
calloc函数 用calloc函数开辟动态存储区
其作用是在内存的动态存储区中分配n个长度为size的连续空间,这个空间比较大,足以保存一个数组。
void *calloc(unsigned n, unsigned size);
realloc函数 用realloc函数重新分配动态存储区
如果已经通过malloc函数或calloc函数获得了动态空间,想改变其大小,可以用recalloc函数重新分配。
void *realloc(void *p, unsigned int size);
free函数 用free函数释放动态存储区
其作用是释放指针变量p所指向的动态空间,使这部分空间能重新被其他变量使用。p应是最近一次调用calloc或malloc函数时得到的函数返回值。
void free(void *p);

结构体、共用体、枚举类型

//结构体
struct 结构体名{类型名 成员名;    //成员列表类型名 成员名;...类型名 成员名;
} 变量名表列;//共用体
union 共用体名{类型名 成员名;    //成员列表类型名 成员名;...类型名 成员名;
} 变量表列;//枚举类型
enum [枚举名] {枚举元素列表};

用typedef声明新类型名

按定义变量的方式,把变量名换上新类型名,并且在最前面加typedef,就声明了新类型名代表原来的类型。

文件操作

打开文件

fopen(文件名, 使用文件方式);
例如:fopen(“al”, “r”);

使用文件方式:

文件使用方式 含义 如果指定的文件不存在
“r”(只读) 为了输入数据,打开一个已存在的文本文件 出错
“w”(只写) 为了输出数据,打开一个文本文件 建立新文件
“a”(追加) 向文本文件尾添加数据 出错
“rb”(只读) 为了输入数据,打开一个二进制文件 出错
“wb”(只写) 为了输出数据,打开一个二进制文件 建立新文件
“ab”(追加) 向二进制文件尾添加数据 出错
“r+”(读写) 为了读和写,打开一个文本文件 出错
“w+”(读写) 为了读和写,建立一个新的文本文件 建立新文件
“a+”(读写) 为了读和写,打开一个文本文件 出错
“rb+”(读写) 为了读和写,打开一个二进制文件 出错
“wb+”(读写) 为了读和写,建立一个新的二进制文件 建立新文件
“ab+”(读写) 为读写打开一个二进制文件 出错

关闭文件

fclose(文件指针);

文件读写

字符读写函数:fgetcfputc
字符串读写函数:fgetsfputs
数据块读写函数:freadfwrite(二进制方式)
格式化读写函数:fscanffprintf

函数名 调用形式 功能 返回值
fgetc fgetc(fp) 从fp指向的文件读入一个字符 读成功,带回所读的字符,失败则返回文件结束标志EOF(即-1)
fputc fputc(ch, fp) 把字符ch写到文件指针变量fp所指向的文件中 输出成功,返回值就是输出的字符,输出失败,则返回EOF(即-1)
fgets fgets(str, n, fp) 从fp指向的文件读入一个长度为(n-1)的字符串,存放到字符数组str中
因为最后加一个’\0’
读成功,返回地址str,失败则返回NULL
fputs fputs(str, fp) 把str所指向的字符串写到文件指针变量fp所指向的文件中 输出成功,返回0;否则返回非0值

用格式化的方式读写文件:
fprintf(文件指针, 格式字符串, 输出表列);
fscanf(文件指针, 格式字符串, 输入表列);

例如:
fprintf(fp, “%d,%6.2f”, i, f);
fscanf(fp, “%d,%f”, &i, &f);

用二进制方式向文件读写一组数据:
fread(buffer, size, count, fp);
fwrite(buffer, size, count, fp);

buffer:是一个地址。对fread来说,它是用来存放从文件读入的数据的存储区的地址。对fwrite来说,是要把此地址的存储区中的数据向文件输出(以上指的是起始地址)。
size:要读写的字节数。
count:要读写多少个数据项(每个数据项长度为size)。
fp:FILE类型指针

谭浩强 C程序设计(第五版)相关推荐

  1. 谭浩强C程序设计第五版课后答案视频+代码讲解完整版(合集)持续跟新中~~~

    这里是一个谭浩强C程序设计第五版课后答案的合集 请看下面: 工欲善其事必先利其器 写C语言代码,首先得有安装一个趁手的工具,那么VS系列是最合适不过的了 这里是安装教程: VS2013安装教程和使用 ...

  2. C语言的学习第一天——谭浩强C程序设计第五版

    学习了谭浩强C程序设计第一章 编译器:VS2019 鹏哥C语言:c语言编程 C语言入门 c语言(C语言程序设计教程 c语言视频教程 c语言零基础入门教程 学习c语言 c语言视频教程 c语音 C语言教程 ...

  3. matlab将单词China译成密码,要将china译成密码 C++源代码 (谭浩强c++程序设计第3版答案)...

    要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母. 例如,字母"A"后面第4个字母是"E", "E ...

  4. 谭浩强C程序设计第四版答案

    只给出一些需要编程的答案,用的是谭浩强老师的书: 本文持续更新中- C程序设计课本中的一些笔记见:C程序设计笔记 我的目录 只给出一些需要编程的答案,用的是谭浩强老师的书: 本文持续更新中... C程 ...

  5. c语言程序灵魂编译后,谭浩强C程序设计第4版精讲视频课程

    谭浩强<C程序设计>(第4版)网授精讲班[教材精讲+考研真题串讲] 本课程由资深辅导教师马丽梅老师讲授,全面讲解教材的重点.难点.考点,教会学员理解并掌握该教材中的基本概念.基本原理和基本 ...

  6. c++第九次作业(谭浩强c++程序设计第三版P400习题)

    1.改写为多文件程序???????????????? 2.比较函数重载和虚函数在概念和使用方式上的区别 1)概念上: 1>函数重载在同一个类中,虚函数是父类与子类 2>函数重载时重载的函数 ...

  7. 谭浩强C程序设计(第五版)P82 习题六(求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积)——中职

    谭浩强C程序设计(第五版)P82 习题六 设圆半径r = 1.5,圆柱高h = 3,求圆周长.圆面积.圆球表面积.圆球体积.圆柱体积.用scanf输入数据,输出计算结果,输出时要求文字说明,取 小数点 ...

  8. 在c语言中,字符串topt65的长度是,谭浩强c__程序设计第13章.ppt

    谭浩强c__程序设计第13章 第13章 输入输出流 13.1 C++的输入和输出 13.2 标准输出流 13.3 标准输入流 13.4 文件操作与文件流 13.5 字符串流 13.1 C++的输入和输 ...

  9. 【C++习题笔记】谭浩强C++程序设计(第三版)第七章

    本文是谭浩强老师c++程序设计(第三版)第七章的习题总结,主要涉及结构体的内容. 1. 定义一个结构体变量(包括年.月.日),编写程序,要求输入年月日,程序能够计算并输出改日是本年中的第几天.注意闰年 ...

  10. 谭浩强C程序设计快速复习笔记

    README 该笔记主要根据岭南学院专插本的考纲进行编写.用到的教材是谭浩强的<C程序设计>第三版 适用人群:对C有一定基础,针对考点快速复习的考生.但不限于岭南学院专插本考生 亮点:①结 ...

最新文章

  1. 单元测试Struts2的Action(包含源码)
  2. 怎么绕过论坛回复_铝散热片铆钉怎么压得快,有没有自动化设备
  3. HDU中一些DP的题目分类
  4. 解决:Caused by: java.lang.UnsupportedOperationException: null
  5. 限制MySQL Binlog的传输速率
  6. Oracle查询所有序列;[oracle中如何创建表的自增ID(通过序列);oracle sql语句大全
  7. python开发环境哪个好 博客园_我选用的Python开发环境
  8. SilverLight中的基本图形(转)
  9. 1月3日 接触ROS
  10. Scrapy 1.4 文档 02 安装指南
  11. 机器学习笔记(三十二):集成学习、随机森林
  12. 如何制作WIFI二维码,实现手机扫一扫快速连接
  13. 增加关键词密度不要堆积
  14. 2003服务器开机无限重启,Windows2003 系统自动重启
  15. C#事件中sender的小用法
  16. 【Python】定义函数求解一元二次方程
  17. 20行Python小程序批量删除GitHub仓库,包
  18. neogeo模拟器 linux,neogeo模拟器
  19. python 对数收益率_用python进行风险调整后的收益
  20. 【HTML】基础,入门先学会这些知识点

热门文章

  1. linux中ldap管理工具,LDAP管理工具Mac版-LDAP Admin Tool for Mac下载 V7.2-PC6苹果网
  2. 数据库系统概论第五版(笔记+习题答案)(全)
  3. alisql mysql_AliSQL · 特性介绍 · 动态加字段
  4. Linux服务器部署JavaWeb项目
  5. wsdl2java 生成不带JAXBElement的客户端
  6. 数字电子技术基础-2-逻辑函数的最小项与最大项
  7. matlab仿真数字电路,基于matlab的数字逻辑电路仿真
  8. oracle连接ORA-01017、ORA-12640
  9. 影视App下载页源码
  10. idea创建j2ee_IntelliJ IDEA 2018 Community(社区版)创建J2EE项目+Tomcat9部署