谭浩强 C程序设计(第五版) 您所在的位置:网站首页 c程序设计谭浩强第五版怎么样 谭浩强 C程序设计(第五版)

谭浩强 C程序设计(第五版)

2023-09-04 20:10| 来源: 网络整理| 查看: 265

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

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

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

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

数据类型

数 据 类 型 { 基 本 类 型 { 整 型 类 型 { 基 本 整 型 ( i n t ) 短 整 型 ( s h o r t   i n t ) 长 整 型 ( l o n g   i n t ) ∗ 双 长 整 型 ( l o n g   l o n g   i n t ) 字 符 型 ( c h a r ) ∗ 布 尔 型 ( b o o l ) 浮 点 类 型 { 单 精 度 浮 点 型 ( f l o a t ) 双 精 度 浮 点 型 ( d o u b l e ) 复 数 浮 点 型 ( f l o a t − c o m p l e x , d o u b l e − c o m p l e x , l o n g   l o n g − c o m p l e x ) 枚 举 类 型 ( e n u m ) 空 类 型 ( v o i d ) 派 生 类 型 { 指 针 类 型 ( ∗ ) 数 组 类 型 ( [   ] ) 结 构 体 类 型 ( s t r u c t ) 共 用 体 类 型 ( u n i o n ) 函 数 类 型 数据类型\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,Eg,G与f作用相同,e与f、g可以互相替换(大小写作用相同)l输入长整型数据(可用%ld,%lo,%lx,%lu)以及double型数据(%lf或%le)h输入短整型数据(可用%hd,%ho,%hx)域宽指定输入数据所占宽度(列数),域宽应为正整数 | 本输入项在读入后不赋给相应的变量 指针变量的类型及含义 变量定义类型表示含义int i;int定义整型变量iint *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(文件指针);

文件读写

字符读写函数:fgetc 和 fputc 字符串读写函数:fgets 和 fputs 数据块读写函数:fread 和 fwrite(二进制方式) 格式化读写函数:fscanf 和 fprintf

函数名调用形式功能返回值fgetcfgetc(fp)从fp指向的文件读入一个字符读成功,带回所读的字符,失败则返回文件结束标志EOF(即-1)fputcfputc(ch, fp)把字符ch写到文件指针变量fp所指向的文件中输出成功,返回值就是输出的字符,输出失败,则返回EOF(即-1)fgetsfgets(str, n, fp)从fp指向的文件读入一个长度为(n-1)的字符串,存放到字符数组str中因为最后加一个’\0’读成功,返回地址str,失败则返回NULLfputsfputs(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类型指针



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有