第1章程序设计与C语言1 1.1计算机与程序、程序设计语言1 1.2C语言的出现和发展过程2 1.3简单的C语言程序3 1.4运行C程序的步骤与方法7 1.4.1运行C程序的步骤7 1.4.2上机运行C程序的方法8 本章小结16 习题17 第2章数据的存储与运算18 2.1数据在计算机中是怎样存储的18 2.1.1数据在计算机中是以二进制形式存储的18 2.1.2位、字节和地址19 2.1.3不同类型数据的存储方式20 2.2整型数据的运算与分析22 2.2.1整型数据运算程序举例和分析22 2.2.2整型常量与整型变量24 2.3实型数据的运算与分析27 2.3.1实型数据的运算举例27 2.3.2实型常量的表示形式29 2.3.3实型变量30 2.4字符型数据的运算32 2.4.1字符数据运算的简单例子32 2.4.2字符常量和字符变量33 2.4.3字符串常量38 2.5符号常量39 2.5.1为什么要用符号常量 39 2.5.2符号常量的性质和使用方法42 2.6算术运算符和算术表达式43 2.6.1算术运算符44 2.6.2算术表达式45 2.7C运算符和C表达式47 2.7.1C运算符47 2.7.2C表达式48 2.8提高部分48 2.8.1求补码的方法48 2.8.2整型常量的表示形式49 2.8.3整型变量的类型50 2.8.4整型常量的类型51 2.8.5C语言允许使用的数据类型52 2.8.6运算符的优先级与结合性52 本章小结53 习题54 第3章最简单的C程序设计——顺序程序设计56 3.1算法是程序的灵魂56 3.1.1什么是算法56 3.1.2怎样表示算法58 3.2程序的三种基本结构61 3.3C语句综述63 3.4赋值表达式和赋值语句65 3.4.1赋值表达式65 3.4.2赋值过程中的类型转换68 3.4.3赋值语句69 3.4.4变量赋初值70 3.5数据输入输出的概念71 3.6字符数据的输入输出72 3.6.1用putchar函数输出一个字符73 3.6.2用getchar函数输入一个字符74 3.7简单的格式输入与输出76 3.7.1用简单的printf函数输出数据77 3.7.2用简单的scanf函数输入数据81 3.8顺序结构程序设计举例84 3.9提高部分88 3.9.1关于无符号数据与有符号数据之间的赋值88 3.9.2较复杂的输入输出格式控制90 3.9.3简单易用的C++的输入输出98 本章小结99 习题100 第4章选择结构程序设计102 4.1条件判断102 4.1.1条件判断的含义102 4.1.2关系运算符和关系表达式103 4.1.3逻辑运算符和逻辑表达式105 4.2用if语句实现选择结构108 4.2.1用if语句实现选择结构举例108 4.2.2if语句的一般形式110 4.2.3if语句使用的说明111 4.2.4使用嵌套的if语句实现多层条件判断112 4.3利用switch语句实现多分支选择结构117 4.4程序综合举例119 4.5提高部分123 4.5.1用条件表达式实现简单的选择结构123 4.5.2在程序中使用条件表达式125 本章小结126 习题127 第5章循环结构程序设计130 5.1程序中需要用循环结构130 5.2用while语句和do…while语句实现循环130 5.2.1用while语句实现循环130 5.2.2用do…while语句实现循环133 5.3用for 语句实现循环135 5.3.1for语句的一般形式和执行过程135 5.3.2for循环程序举例 136 5.4循环的嵌套140 5.5提前结束循环141 5.5.1用break语句提前退出循环 141 5.5.2用continue语句提前结束本次循环143 5.6几种循环的比较145 5.7循环程序综合举例145 5.8提高部分150 5.8.1while和do…while循环的比较150 5.8.2for语句的各种形式152 本章小结155 习题156 第6章利用数组处理批量数据157 6.1为什么要用数组157 6.2怎样定义和引用一维数组157 6.2.1怎样定义一维数组158 6.2.2怎样引用一维数组的元素158 6.2.3一维数组的初始化160 6.2.4一维数组程序举例161 6.3怎样定义和引用二维数组164 6.3.1怎样定义二维数组 164 6.3.2怎样引用二维数组的元素165 6.3.3二维数组的初始化166 6.3.4二维数组程序举例167 6.4字符数组171 6.4.1怎样定义字符数组及对其初始化 171 6.4.2怎样引用字符数组172 6.4.3字符串和字符串结束标志173 6.4.4怎样进行字符数组的输入输出175 6.4.5字符串处理函数177 6.4.6字符数组应用举例178 6.5提高部分182 6.5.1为什么在定义二维数组时采用两对双括号的形式182 6.5.2对C的字符串函数的详细说明183 本章小结188 习题189 第7章用函数实现模块化程序设计190 7.1函数是什么190 7.2函数的定义和调用193 7.2.1为什么要定义函数193 7.2.2怎样定义函数193 7.2.3怎样调用函数194 7.2.4对被调用函数的声明和函数原型197 7.3函数的嵌套调用和递归调用200 7.3.1函数的嵌套调用200 7.3.2函数的递归调用202 7.4数组作为函数参数208 7.4.1用数组元素作函数实参208 7.4.2用数组名作函数参数210 7.5变量的作用域和生存期217 7.5.1变量的作用域——局部变量和全局变量217 7.5.2变量的存储方式和生存期220 7.5.3关于作用域和生存期的小结224 7.6内部函数和外部函数226 7.6.1什么是内部函数226 7.6.2什么是外部函数226 7.7提高部分229 7.7.1实参求值的顺序229 7.7.2递归的典型例子——Hanoi(汉诺)塔问题229 本章小结233 习题235 第8章善于使用指针237 8.1什么是指针237 8.2指针变量238 8.2.1使用指针变量访问变量的例子238 8.2.2怎样定义指针变量240 8.2.3怎样引用指针变量241 8.2.4指针变量作为函数参数243 8.3通过指针引用数组249 8.3.1数组元素的指针249 8.3.2通过指针引用数组元素250 8.3.3用数组名作函数参数255 8.4通过指针引用字符串260 8.4.1字符串的表示形式260 8.4.2字符指针作函数参数265 8.4.3使用字符指针变量和字符数组的区别269 8.5提高部分272 8.5.1指针使用的技巧272 8.5.2多维数组的指针274 8.5.3指向函数的指针275 8.5.4返回指针值的函数275 8.5.5指针数组276 8.5.6多重指针——指向指针的指针276 本章小结278 习题281 第9章使用结构体类型处理组合数据——用户自定义数据类型283 9.1定义和使用结构体变量283 9.1.1自己建立结构体类型283 9.1.2定义结构体类型变量285 9.1.3结构体变量的初始化和引用287 9.2结构体数组291 9.3结构体指针294 9.4用结构体变量和结构体变量的指针作函数参数298 9.5用指针处理链表302 9.5.1什么是线性链表302 9.5.2建立简单的静态链表303 9.5.3建立动态链表304 9.6提高部分307 9.6.1共用体类型307 9.6.2枚举类型308 本章小结310 习题311 第10章利用文件保存数据313 10.1C文件的有关概念313 10.1.1什么是文件313 10.1.2文件名314 10.1.3文件的分类314 10.1.4文件缓冲区315 10.1.5文件类型指针315 10.2文件的打开与关闭316 10.2.1用fopen函数打开数据文件317 10.2.2用fclose函数关闭文件318 10.3文件的顺序读写319 10.3.1向文件读写字符319 10.3.2向文件读写一个字符串323 10.3.3文件的格式化读写327 10.3.4用二进制方式读写文件328 10.4文件的随机读写332 10.4.1文件位置标记及其定位332 10.4.2随机读写文件335 10.5提高部分337 10.5.1系统定义的文件类型指针337 10.5.2回车换行符的转换337 10.5.3fread和fwrite函数用于二进制文件的输入输出338 10.5.4文件读写的出错检测338 本章小结339 习题340 附录A常用字符与ASCII代码对照表342 附录BC语言中的关键字343 附录C运算符和结合性344 附录DC语言常用语法提要347 附录EC库函数352 参考文献359 |