C语言概述1.1C语言出现的历史背景1 1.2C 语言的特点2 1.3简单的C语言程序介绍4 1.4运行C程序的步骤与方法7 1.4.1运行C程序的步骤7 1.4.2上机运行C程序的方法8 习题12
程序的灵魂——算法2.1算法的概念14 2.2简单算法举例15 2.3算法的特性19 2.4怎样表示一个算法20 2.4.1用自然语言表示算法20 2.4.2用流程图表示算法20 2.4.33种基本结构和改进的流程图24 2.4.4用N\|S流程图表示算法27 2.4.5用伪代码表示算法30 2.4.6用计算机语言表示算法33 2.5结构化程序设计方法34 习题36
数据类型、运算符与表达式3.1C语言的数据类型37 3.2常量与变量37 3.2.1常量和符号常量37 3.2.2变量38 3.3整型数据40 3.3.1整型常量的表示方法40 3.3.2整型变量40 3.3.3整型常量的类型44 3.4浮点型数据45 3.4.1浮点型常量的表示方法45 3.4.2浮点型变量45 3.4.3浮点型常量的类型47 3.5字符型数据48 3.5.1字符常量48 3.5.2字符变量49 3.5.3字符数据在内存中的存储形式及其使用方法50 3.5.4字符串常量52 3.6变量赋初值53 3.7各类数值型数据间的混合运算54 3.8算术运算符和算术表达式55 3.8.1C语言运算符简介55 3.8.2算术运算符和算术表达式55 3.9赋值运算符和赋值表达式59 3.10逗号运算符和逗号表达式65 习题66
最简单的C程序设计——顺序程序设计4.1C语句概述69 4.2赋值语句71 4.3数据输入输出的概念及在C语言中的实现72 4.4字符数据的输入输出73 4.4.1 putchar函数73 4.4.2 getchar函数74 4.5格式输入与输出74 4.5.1printf函数75 4.5.2scanf函数82 4.6顺序结构程序设计举例86 习题88
选择结构程序设计5.1关系运算符和关系表达式91 5.1.1关系运算符及其优先次序91 5.1.2关系表达式92 5.2逻辑运算符和逻辑表达式92 5.2.1逻辑运算符及其优先次序92 5.2.2逻辑表达式93 5.3if 语句95 5.3.1if语句的3种形式95 5.3.2if语句的嵌套99 5.3.3条件运算符102 5.4switch语句104 5.5程序举例106 习题111
循环控制6.1概述113 6.2goto语句以及用goto语句构成循环113 6.3用while语句实现循环114 6.4用do…while语句实现循环115 6.5用for 语句实现循环118 6.6循环的嵌套121 6.7几种循环的比较122 6.8break语句和continue语句122 6.8.1break语句122 6.8.2continue语句123 6.9程序举例124 习题129
数组7.1一维数组的定义和引用131 7.1.1一维数组的定义131 7.1.2一维数组元素的引用132 7.1.3一维数组的初始化132 7.1.4一维数组程序举例133 7.2二维数组的定义和引用135 7.2.1 二维数组的定义135 7.2.2二维数组的引用136 7.2.3二维数组的初始化137 7.2.4二维数组程序举例138 7.3字符数组140 7.3.1字符数组的定义140 7.3.2字符数组的初始化140 7.3.3字符数组的引用141 7.3.4字符串和字符串结束标志142 7.3.5字符数组的输入输出144 7.3.6字符串处理函数146 7.3.7字符数组应用举例150 习题152
函数8.1概述155 8.2函数定义的一般形式156 8.2.1无参函数定义的一般形式156 8.2.2有参函数定义的一般形式157 8.2.3空函数157 8.3函数参数和函数的值158 8.3.1形式参数和实际参数158 8.3.2函数的返回值160 8.4函数的调用161 8.4.1函数调用的一般形式161 8.4.2函数调用的方式162 8.4.3对被调用函数的声明和函数原型163 8.5函数的嵌套调用167 8.6函数的递归调用171 8.7数组作为函数参数177 8.7.1数组元素作函数实参178 8.7.2数组名作函数参数179 8.7.3多维数组名作函数参数182 8.8局部变量和全局变量184 8.8.1局部变量184 8.8.2全局变量185 8.9变量的存储类别188 8.9.1动态存储方式与静态存储方式188 8.9.2auto变量189 8.9.3用static声明局部变量189 8.9.4register变量191 8.9.5用extern声明外部变量193 8.9.6用static声明外部变量195 8.9.7关于变量的声明和定义196 8.9.8存储类别小结197 8.10内部函数和外部函数199 8.10.1内部函数199 8.10.2外部函数199 习题202
预处理命令9.1宏定义204 9.1.1不带参数的宏定义204 9.1.2带参数的宏定义207 9.2“文件包含”处理211 9.3条件编译214 习题217指针10.1地址和指针的概念219 10.2变量的指针和指向变量的指针变量221 10.2.1定义一个指针变量221 10.2.2指针变量的引用222 10.2.3指针变量作为函数参数225 10.3数组与指针229 10.3.1指向数组元素的指针229 10.3.2通过指针引用数组元素230 10.3.3用数组名作函数参数235 10.3.4多维数组与指针242 10.4字符串与指针251 10.4.1字符串的表示形式251 10.4.2字符指针作函数参数254 10.4.3对使用字符指针变量和字符数组的讨论257 10.5指向函数的指针260 10.5.1用函数指针变量调用函数260 10.5.2用指向函数的指针作函数参数262 10.6返回指针值的函数265 10.7指针数组和指向指针的指针268 10.7.1指针数组的概念268 10.7.2指向指针的指针271 10.7.3指针数组作main函数的形参273 10.8有关指针的数据类型和指针运算的小结275 10.8.1有关指针的数据类型的小结276 10.8.2指针运算小结276 10.8.3void指针类型277 习题278
结构体与共用体11.1概述281 11.2定义结构体类型变量的方法282 11.3结构体变量的引用284 11.4结构体变量的初始化285 11.5结构体数组286 11.5.1定义结构体数组286 11.5.2结构体数组的初始化287 11.5.3结构体数组应用举例287 11.6指向结构体类型数据的指针289 11.6.1指向结构体变量的指针289 11.6.2指向结构体数组的指针290 11.6.3用结构体变量和指向结构体的指针作 函数参数292 11.7用指针处理链表294 11.7.1链表概述294 11.7.2简单链表295 11.7.3处理动态链表所需的函数296 11.7.4建立动态链表297 11.7.5输出链表300 11.7.6对链表的删除操作301 11.7.7对链表的插入操作303 11.7.8对链表的综合操作305 11.8共用体308 11.8.1共用体的概念308 11.8.2共用体变量的引用方式309 11.8.3共用体类型数据的特点310 11.9枚举类型312 11.10用typedef定义类型315 习题318
位运算12.1位运算符和位运算319 12.1.1“按位与”运算符(&)319 12.1.2“按位或”运算符(|)320 12.1.3“异或”运算符(∧)321 12.1.4“取反”运算符(~)322 12.1.5左移运算符(<<)323 12.1.6右移运算符(>>)323 12.1.7位运算赋值运算符324 12.1.8不同长度的数据进行位运算324 12.2位运算举例324 12.3位段326 习题329
文件13.1C文件概述330 13.2文件类型指针331 13.3文件的打开与关闭332 13.3.1文件的打开(fopen函数)332 13.3.2文件的关闭(fclose函数)334 13.4文件的读写334 13.4.1fputc函数和fgetc函数(putc函数和getc 函数)335 13.4.2fread函数和fwrite函数339 13.4.3fprintf函数和fscanf函数342 13.4.4其他读写函数343 13.5文件的定位344 13.5.1rewind函数344 13.5.2fseek函数和随机读写345 13.5.3ftell函数346 13.6出错的检测346 13.6.1ferror函数347 13.6.2clearerr函数347 13.7文件输入输出小结347 习题348
常见错误和程序调试14.1常见错误分析349 14.2程序调试361
附录A常用字符与ASCII代码对照表364 附录BC语言中的关键字365 附录C运算符和结合性365 附录DC语言常用语法提要367 附录EC库函数371 参考文献378 |