目录 第1章C语言概述1 1.1计算机与程序设计语言1 1.1.1冯·诺依曼结构1 1.1.2程序设计2 1.1.3程序设计语言3 1.2C语言的特点4 1.3IDE的安装5 1.3.1下载Code::Blocks6 1.3.2安装Code::Blocks6 1.3.3运行软件7 1.3.4新建和运行项目8 1.3.5打开已有项目10 1.4C程序基本框架介绍10 1.5基本的编程原则13 1.6编程实战14 习题17 第2章数据类型、运算符和表达式19 2.1预备知识19 2.1.1位、字节、字与字长19 2.1.2C程序与内存20 2.2数据类型21 2.2.1数据类型的划分21 2.2.2不同数据类型的内存占用与数据编码22 2.3常量29 2.3.1整型常量29 2.3.2浮点型常量30 2.3.3字符型常量31 2.3.4字符串常量32 2.3.5符号常量33 2.4变量34 2.5常变量36 2.6关键字与标识符37 2.6.1关键字37 2.6.2标识符38 2.7运算符38 2.7.1算术运算符39 2.7.2关系运算符40 2.7.3逻辑运算符41 2.7.4位运算符42 2.7.5赋值(复合赋值)运算符43 2.7.6其他运算符44 2.8表达式45 2.8.1运算符的优先级和结合方向45 2.8.2自动类型转换47 2.8.3对数据溢出的处理48 2.9数学函数48 2.10C语句49 2.11编程实战51 习题53 新编C语言程序设计目录第3章数据的输入和输出56 3.1预备知识56 3.1.1缓冲区56 3.1.2缓冲区的类型56 3.1.3读取缓冲区的数据57 3.1.4缓冲区的刷新57 3.2格式化输入函数scanf()59 3.2.1scanf()的使用形式59 3.2.2scanf()的格式描述59 3.2.3scanf()的变量地址列表64 3.3格式化输出函数printf()65 3.3.1printf()的使用形式65 3.3.2printf()的格式描述65 3.4单字符I/O函数68 3.4.1单字符输入函数getchar()68 3.4.2单字符输出函数putchar()68 3.5编程实战68 习题70 第4章选择结构74 4.1预备知识74 4.1.1算法的特点74 4.1.2算法的描述方法75 4.2if选择结构77 4.2.1if单分支选择结构77 4.2.2if…else双分支选择结构79 4.2.3if语句的嵌套81 4.3switch结构85 4.4编程实战87 习题90 第5章循环结构94 5.1循环的相关概念94 5.1.1循环结构94 5.1.2循环条件的设计95 5.1.3循环体的设计95 5.1.4循环效率的分析96 5.2for循环97 5.3while循环99 5.4do…while循环100 5.5循环的跳转101 5.6循环的嵌套104 5.7编程实战105 5.7.1数据统计类105 5.7.2具有特质的数的判断114 5.7.3字符类的处理120 5.7.4打印图形122 5.7.5穷举问题126 习题128 第6章数组133 6.1预备知识133 6.1.1顺序存储与下标133 6.1.2团队名的作用134 6.1.3访问团队成员134 6.2数组的定义、存储与元素的引用135 6.2.1数组的定义135 6.2.2数组的存储与元素的引用136 6.3数组的初始化140 6.4输入和输出数组元素142 6.5编程实战144 6.5.1数据统计类144 6.5.2数组的排序148 6.5.3有序插入153 6.5.4查找数据155 6.5.5删除数据156 6.5.6逆序存储158 6.5.7字符串处理158 习题170 第7章函数176 7.1结构化程序设计与函数176 7.1.1结构化程序设计176 7.1.2函数177 7.2函数的定义、声明与调用179 7.2.1函数的定义179 7.2.2函数的声明与调用181 7.3参数传递和返回值184 7.3.1参数传递184 7.3.2返回值188 7.4作用域与存储类别190 7.4.1作用域190 7.4.2存储类别与生存期192 7.5static与extern关键字195 7.5.1static关键字195 7.5.2extern关键字195 7.6函数的嵌套调用与递归调用198 7.6.1函数的嵌套调用198 7.6.2函数的递归调用199 7.7带参数的宏定义201 7.8编程实战202 7.8.1判断特质数的函数202 7.8.2数据类型或数据进制的转换205 7.8.3二维数组处理函数210 习题213 第8章指针219 8.1数据与地址219 8.1.1数据与地址的关系219 8.1.2保存地址220 8.1.3地址与指针221 8.1.4将指针变量与数据建立联系221 8.1.5使用指针变量的意义223 8.1.6定义与使用指针变量的注意事项223 8.2指针变量作为函数参数224 8.3通过指针变量引用一维数组227 8.3.1将指针变量指向一维数组227 8.3.2指针变量可以在数组中进行的运算228 8.3.3通过指针变量引用一维数组元素的方法229 8.3.4通过指针变量引用字符串231 8.3.5通过指针变量接收一维数组的传参232 8.4通过指针变量引用二维数组233 8.4.1定位二维数组中的元素233 8.4.2利用不同的指针变量引用二维数组元素234 8.4.3通过不同的指针变量接收二维数组的传参238 8.5指针数组240 8.6指向指针的指针变量242 8.7指向函数的指针变量245 8.8函数返回值是指针变量247 8.9带参数的main()函数248 8.10指针与动态分配内存250 8.11指针变量使用方法小结252 8.12编程实战255 习题259 第9章结构体、共用体、枚举与链表264 9.1结构体类型的声明264 9.1.1声明结构体类型264 9.1.2结构体类型占用的存储空间266 9.1.3用typedef为结构体类型取别名267 9.2结构体变量的定义和初始化268 9.2.1定义结构体变量268 9.2.2结构体变量的初始化和赋值269 9.3引用结构体变量的成员269 9.4结构体数组和函数传参272 9.5链表275 9.5.1链式存储与结点275 9.5.2链表的定义276 9.5.3结点的结构体类型设计276 9.6链表的主要操作277 9.6.1建立链表277 9.6.2遍历链表279 9.6.3插入结点280 9.6.4删除结点282 9.7链表和数组的区别284 9.8共用体类型285 9.9枚举类型288 9.10编程实战289 习题293 第10章文件298 10.1数据文件298 10.1.1文件的分类298 10.1.2设备文件与磁盘文件299 10.1.3文件指针299 10.2文件操作300 10.2.1文件的打开与关闭300 10.2.2文本文件的顺序读写303 10.2.3二进制文件的顺序读写307 10.2.4位置标记的定位与随机读写308 10.3编程实战310 习题312 参考文献315