目录 第1章C语言基础1 1.1计算机语言概述1 1.1.1机器语言1 1.1.2汇编语言1 1.1.3高级语言2 1.2C语言概述2 1.2.1C语言的起源与发展2 1.2.2C语言的标准2 1.2.3C语言的优点3 1.2.4C语言程序设计过程4 1.3C语言程序开发5 1.3.1主流开发环境5 1.3.2编译机制5 1.3.3编写C语言程序6 1.4本章小结7 1.5习题8 第2章数据类型9 2.1关键字与标识符9 2.1.1关键字9 2.1.2标识符的使用9 2.2数据类型概述10 2.2.1数据类型的由来10 2.2.2数据类型简介10 2.3常量11 2.3.1整型常量12 2.3.2实型常量13 2.3.3字符型常量13 2.3.4转义字符15 2.3.5枚举型常量15 2.4变量的通用原则16 2.4.1变量的声明16 2.4.2变量的命名16 2.4.3变量的定义17 2.4.4变量的赋值与初始化17 2.4.5变量在内存中的排列17 2.5变量18 2.5.1整型变量18 2.5.2实型变量19 2.5.3字符型变量21 2.6类型转换21 2.7本章小结22 2.8习题22 第3章运算符与表达式24 3.1表达式24 3.2表达式语句25 3.3运算符26 3.4赋值运算符26 3.5算术运算符与表达式27 3.5.1算术运算符27 3.5.2算术表达式28 3.5.3算术运算符的优先级与结合性29 3.6自增、自减运算符29 3.7关系运算符与表达式31 3.7.1关系运算符31 3.7.2关系表达式32 3.7.3关系运算符的优先级与结合性32 3.8复合赋值运算符与表达式32 3.8.1复合赋值运算符32 3.8.2复合赋值表达式33 3.9逻辑运算符与表达式35 3.9.1逻辑运算符35 3.9.2逻辑表达式35 3.9.3逻辑运算符的优先级与结合性35 3.10位逻辑运算符与表达式36 3.10.1位逻辑运算符36 3.10.2位逻辑表达式37 3.11运算符的优先级37 3.12本章小结39 3.13习题39 第4章选择条件语句41 4.1if语句41 4.1.1if语句的基本形式41 4.1.2else关键字43 4.1.3多重选择else if语句45 4.1.4级联式if语句46 4.1.5if与else的配对48 4.1.6布尔值49 4.2switch语句50 4.2.1switch语句的基本形式50 4.2.2break语句的作用52 4.2.3default子句53 4.3本章小结54 4.4习题54 第5章循环控制语句55 5.1while循环语句55 5.1.1while循环的基本形式55 5.1.2do…while语句56 5.2for循环语句58 5.2.1for循环的基本形式58 5.2.2多循环变量的for循环59 5.2.3for循环的变体60 5.2.4for循环的嵌套62 5.3转移语句63 5.3.1break语句63 5.3.2continue语句64 5.3.3goto语句65 5.4三种循环的对比66 5.5本章小结66 5.6习题67 第6章函数68 6.1函数的定义68 6.1.1函数定义的形式68 6.1.2函数的声明与定义70 6.1.3函数的返回71 6.1.4函数参数72 6.2函数的调用73 6.2.1函数调用的方式73 6.2.2函数嵌套75 6.2.3递归调用76 6.2.4内联函数77 6.3局部变量与全局变量78 6.3.1局部变量78 6.3.2全局变量79 6.3.3作用域80 6.4内外部函数81 6.4.1内部函数81 6.4.2外部函数82 6.5格式输入输出函数82 6.5.1格式输出函数82 6.5.2格式输入函数83 6.6字符输入输出函数85 6.6.1字符输出函数85 6.6.2字符输入函数85 6.7字符串输入输出函数86 6.7.1字符串输出函数86 6.7.2字符串输入函数87 6.8本章小结88 6.9习题88 第7章数组90 7.1一维数组90 7.1.1一维数组的定义90 7.1.2数组元素91 7.1.3一维数组的初始化92 7.1.4数组的存储方式94 7.1.5数组的应用95 7.2二维数组96 7.2.1二维数组的定义96 7.2.2数组元素97 7.2.3二维数组的初始化98 7.2.4数组的应用100 7.3数组的排序算法102 7.3.1冒泡排序102 7.3.2快速排序105 7.3.3直接插入排序108 7.3.4直接选择排序112 7.4字符数组115 7.4.1字符数组的定义115 7.4.2数组元素115 7.4.3字符数组的初始化116 7.4.4数组的应用118 7.5字符串处理119 7.5.1字符串的长度119 7.5.2字符串复制120 7.5.3字符串连接122 7.5.4字符串比较123 7.5.5字符串大小写转换124 7.5.6字符查找125 7.6多维数组125 7.7本章小结127 7.8习题127 第8章指针129 8.1指针概述129 8.1.1内存地址与指针129 8.1.2指针变量的赋值130 8.1.3指针变量的引用131 8.1.4空指针132 8.1.5指针读写133 8.1.6指针自身的地址135 8.2指针运算135 8.2.1指针的加减运算136 8.2.2指针的相减运算137 8.2.3指针的比较运算138 8.3指针与数组139 8.3.1一维数组与指针139 8.3.2二维数组与指针143 8.4指针与字符串149 8.4.1字符指针149 8.4.2字符指针的应用150 8.4.3指针数组151 8.5多级指针152 8.6指针与函数153 8.6.1指针函数153 8.6.2函数指针154 8.6.3函数指针数组155 8.6.4指针变量作函数参数156 8.7const指针159 8.7.1常量化指针变量159 8.7.2常量化指针目标表达式159 8.7.3常量化指针变量及其目标表达式160 8.8void指针161 8.9本章小结162 8.10习题163 第9章高级数据结构165 9.1结构体165 9.1.1定义结构体类型165 9.1.2定义结构体变量166 9.1.3结构体的初始化167 9.1.4结构体变量的引用168 9.2结构体数组169 9.2.1定义结构体数组169 9.2.2初始化结构体数组170 9.3结构体指针171 9.4结构体嵌套173 9.5线性表175 9.5.1线性表概述175 9.5.2顺序表175 9.5.3链表181 9.6共用体189 9.7本章小结191 9.8习题192 第10章位运算194 10.1位运算符194 10.2按位与运算符194 10.2.1运算符的使用194 10.2.2补码表示负数195 10.2.3按位与运算符的应用196 10.3按位或运算196 10.3.1运算符的使用196 10.3.2按位或运算符的应用197 10.4按位异或运算198 10.4.1运算符的使用198 10.4.2按位异或运算符的应用198 10.5取反运算199 10.6左移运算200 10.7右移运算201 10.8位字段201 10.9本章小结203 10.10习题203 第11章C语言内存管理205 11.1内存组织方式205 11.1.1程序在内存中的数据205 11.1.2动态管理206 11.2存储模型210 11.2.1auto存储类210 11.2.2register存储类210 11.2.3static存储类211 11.2.4extern存储类212 11.3其他存储类关键字213 11.3.1restrict关键字213 11.3.2volatile关键字213 11.4本章小结214 11.5习题214 第12章预处理216 12.1宏定义216 12.1.1define与undef216 12.1.2不带参数的宏定义217 12.1.3带参数的宏定义218 12.2文件包含220 12.2.1源文件与头文件220 12.2.2引入头文件220 12.3条件编译221 12.3.1#if#else#endif221 12.3.2#elif222 12.3.3#ifdef223 12.3.4#ifndef224 12.4其他指令226 12.4.1#undef指令226 12.4.2#line指令226 12.4.3#error指令227 12.4.4#pragma指令228 12.4.5预定义宏228 12.5本章小结228 12.6习题228 第13章文件操作230 13.1文件概述230 13.1.1文件230 13.1.2文本文件与二进制文件230 13.1.3流231 13.2文件操作概述233 13.2.1文件指针233 13.2.2文件操作简介234 13.2.3打开文件234 13.2.4关闭文件235 13.2.5读写文件235 13.3文件的高级操作242 13.3.1读写位置偏移242 13.3.2读写位置定位243 13.4本章小结244 13.5习题244 第14章综合案例246 14.1超市管理系统246 14.1.1需求分析246 14.1.2数据结构设计246 14.1.3系统功能模块247 14.2代码实现247 14.2.1登录界面与主界面247 14.2.2录入商品信息248 14.2.3商品信息查询251 14.2.4商品信息列表253 14.2.5删除商品信息254 14.2.6修改商品信息257 14.2.7商品信息排序258 14.2.8主函数261 14.3系统运行展示268 14.4本章小结270 14.5习题271