目录                                                   第1章计算机及程序设计概述1 1.1概述1 1.2计算与机器2 1.2.1计算器2 1.2.2机械式计算机2 1.2.3图灵机模型3 1.2.4电子数字计算机4 1.3指令与程序5 1.4计算机的典型应用6 1.5程序设计语言7 1.5.1机器语言7 1.5.2汇编语言8 1.5.3高级语言8 1.6问题求解与算法11 1.6.1算法定义12 1.6.2算法复杂性12 1.7算法描述13 1.7.1伪代码13 1.7.2流程图14 1.7.3NS图14 1.8程序设计15 1.8.1基本步骤15 1.8.2结构化程序设计16 1.8.3面向对象程序设计17 1.8.4并行程序设计17 1.8.5程序设计思想前沿18 1.9C语言简介18 1.9.1C语言的特点18 1.9.2简单的C程序 设计19 1.9.3C语言程序结构20 1.9.4C程序设计过程22 1.10综合应用23 1.11案例计算机与人脑24 练习题26第2章信息编码与数据类型27 2.1概述27 2.2二进制与信息编码27 2.2.1整数编码27 2.2.2实数编码28 2.2.3字符编码29 2.3标识符和关键字30 2.3.1标识符构成30 2.3.2关键字30 2.3.3自定义标识符30 2.4基本数据类型31 2.4.1整数类型33 2.4.2实数类型34 2.4.3字符类型34 2.4.4逻辑类型35 2.4.5复数类型36 2.5常量36 2.5.1整型常量36 2.5.2实型常量37 2.5.3字符常量37 2.5.4字符串常量39 2.5.5逻辑常量39 2.5.6复数常量39 2.5.7符号常量40 2.6变量40 2.6.1变量声明41 2.6.2变量初始化42 2.6.3变量赋值43 2.6.4变量读写43 2.7综合应用44 2.8案例独立自主的汉字 编码44 练习题45〖1〗〖3〗程序设计基础(C语言)(第4版)目录〖3〗〖3〗第3章基本运算与顺序结构47 3.1概述47 3.2运算符与表达式47 3.3赋值运算49 3.4算术运算50 3.4.1基本算术运算50 3.4.2自增或自减运算51 3.4.3整数运算52 3.4.4实数运算53 3.4.5复合赋值运算54 3.5字符运算55 3.5.1算术运算55 3.5.2字符分类55 3.5.3字符转换56 3.6位运算57 3.6.1位逻辑运算57 3.6.2位移运算58 3.6.3复合位运算及补 位原则59 3.7逗号运算59 3.8强制类型转换60 3.8.1算术运算中的隐式 转换60 3.8.2赋值运算中的隐式 转换60 3.8.3显式转换61 3.9sizeof运算62 3.10标准设备输入输出 函数库62 3.10.1字符输入输出 函数62 3.10.2格式化输出函数63 3.10.3格式化输入函数69 3.11数学库72 3.11.1实数计算函数72 3.11.2复数运算函数73 3.12EGE绘图库74 3.13基本语句77 3.14顺序结构78 3.15综合应用80 3.16案例汉字输入与激光 照排技术80 练习题81第4章逻辑判断与选择结构83 4.1概述83 4.2关系运算83 4.3逻辑运算84 4.4条件运算86 4.5if语句86 4.5.1单分支选择结构87 4.5.2双分支选择结构88 4.5.3多分支选择结构90 4.6switch语句93 4.7选择结构嵌套96 4.8综合应用100 4.9案例从因果关系到关联 关系100 练习题102第5章迭代计算与循环结构103 5.1概述103 5.2while语句104 5.3do…while语句106 5.4for语句108 5.5循环语句对比111 5.6循环嵌套112 5.7跳转控制语句115 5.7.1break语句115 5.7.2continue语句116 5.7.3goto语句117 5.7.4continue、break、goto 语句的区别118 5.8综合应用120 5.9案例圆周率的计算与迭代 算法120 练习题121第6章集合数据与数组123 6.1概述123 6.2一维数组124 6.2.1一维数组定义124 6.2.2一维数组初始化125 6.2.3一维数组引用126 6.2.4一维数组应用127 6.3二维数组129 6.3.1二维数组定义129 6.3.2二维数组初始化130 6.3.3二维数组引用131 6.3.4二维数组应用131 6.4高维数组134 6.5字符数组与字符串136 6.5.1字符数组136 6.5.2字符串137 6.6字符串处理函数140 6.6.1字符串标准输入 输出函数141 6.6.2其他字符串输入 输出函数142 6.6.3字符串复制函数143 6.6.4字符串连接函数143 6.6.5字符串比较函数144 6.6.6字符串检索函数145 6.6.7字符串转换函数146 6.6.8其他字符串常用 函数147 6.6.9宽字节类型字符串 函数148 6.7数组新特性148 6.8综合应用149 6.9案例由表及里、去伪 存真150 练习题151第7章模块化与函数153 7.1概述153 7.2函数定义155 7.2.1函数定义形式155 7.2.2函数返回值与函数 类型157 7.3函数声明、头文件的使用 和库函数声明160 7.3.1函数声明160 7.3.2头文件的使用161 7.3.3库函数声明162 7.4参数传递163 7.4.1形式参数164 7.4.2实际参数165 7.4.3值复制传递机制167 7.4.4地址复制传递 机制168 7.4.5数组参数新特性172 7.5函数调用172 7.5.1函数调用形式173 7.5.2嵌套调用173 7.5.3递归调用175 7.6源程序文件与函数分类176 7.6.1外部函数177 7.6.2内部函数177 7.6.3内联函数178 7.7变量存储类型179 7.7.1普通变量179 7.7.2寄存器变量179 7.8变量作用域180 7.8.1局部变量180 7.8.2全局变量182 7.8.3静态变量184 7.8.4变量访问控制185 7.9源程序结构186 7.9.1单文件单函数 结构186 7.9.2单文件多函数 结构187 7.9.3多文件多函数 结构187 7.10综合应用188 7.11案例函数库与科学计算 工具箱190 练习题191第8章地址操作与指针193 8.1概述193 8.2指针和指针变量194 8.2.1指针变量声明194 8.2.2指针变量的赋值及 初始化194 8.2.3指针变量的引用195 8.3指针运算196 8.3.1取地址与取值 运算196 8.3.2算术运算197 8.3.3关系运算198 8.3.4指针类型转换198 8.4数组和指针200 8.4.1用指针访问数组 元素200 8.4.2指向多维数组的 指针201 8.5字符串和指针203 8.5.1指针处理字符串203 8.5.2使用字符指针变量与 字符数组的区别204 8.6函数和指针205 8.6.1指针作为函数 参数206 8.6.2指针作为函数的 返回值210 8.6.3指向函数的指针212 8.7指针数组213 8.7.1指针数组定义214 8.7.2带参数的main 函数216 8.8数组指针217 8.9指向指针的指针218 8.10内存访问控制220 8.11综合应用221 8.12案例指针的“显” 与“隐”222 练习题224第9章复杂数据类型与结构体226 9.1概述226 9.2结构体类型227 9.2.1结构体类型定义227 9.2.2结构体类型变量声 明与初始化229 9.2.3结构体变量的 引用231 9.2.4结构体数组233 9.2.5结构体与函数235 9.2.6结构体类型指针236 9.3共用体238 9.4枚举类型240 9.5类型重定义242 9.6日期和时间243 9.7链表244 9.7.1链表定义244 9.7.2动态内存管理 函数245 9.7.3链表的基本操作247 9.8结构体新特性251 9.9综合应用253 9.10案例复杂数据存储254 练习题256第10章泛化编程与预编译258 10.1概述258 10.2#define指令258 10.2.1不带参数的宏 定义258 10.2.2带参数的宏 定义260 10.3#include指令263 10.4条件编译264 10.4.1#ifdef…#else …#endif264 10.4.2#ifndef…#else …#endif265 10.4.3#if…#else …#endif265 10.5#error与#运算指令266 10.6预定义宏267 10.7异常处理268 10.8程序移植269 10.9综合应用270 10.10案例泛化与开源271 练习题272第11章数据存储与文件274 11.1概述274 11.2文本文件与二进制文件275 11.2.1文本文件275 11.2.2二进制文件275 11.3文件类型276 11.4文件打开与关闭276 11.4.1文件打开277 11.4.2文件关闭279 11.5文件读写280 11.5.1单字符读写280 11.5.2字符串读写282 11.5.3格式化读写283 11.5.4数据块读写284 11.6文件定位函数287 11.7文件状态跟踪288 11.8其他文件操作函数290 11.9综合应用291 11.10案例结构化数据与非 结构化数据293 练习题295第12章程序设计思想及范例 297 12.1概述297 12.2求和/求积问题297 12.2.1多项式求和298 12.2.2数列求和299 12.3遍历问题300 12.4迭代问题302 12.4.1二分迭代法303 12.4.2牛顿迭代法304 12.5排序问题305 12.5.1直接插入排序305 12.5.2起泡排序306 12.5.3选择排序307 12.6查找问题308 12.6.1顺序查找308 12.6.2折半查找309 12.7递归问题310 12.8矩阵运算311 12.8.1矩阵加/减 运算311 12.8.2矩阵乘法312 12.8.3矩阵转置313 练习题313第13章面向对象与C++基础315 13.1概述315 13.1.1结构化程序 设计315 13.1.2模块封装与 访问控制316 13.2面向对象程序设计317 13.3类与对象318 13.3.1类318 13.3.2对象319 13.3.3类在C++中的 实现320 13.3.4成员变量324 13.3.5成员函数326 13.3.6构造函数和析构 函数329 13.3.7函数重载330 13.3.8运算符重载332 13.3.9静态成员变量334 13.3.10静态成员函数335 13.4继承与多态337 13.4.1类继承337 13.4.2多态性与虚 函数339 13.5综合应用342 13.6案例程序设计思想的 发展与融合342 练习题344第14章高性能计算与并行程序 设计345 14.1概述345 14.2并行算法345 14.2.1并行问题345 14.2.2并行算法设计346 14.3并行程序设计347 14.3.1并行程序设计 模型347 14.3.2进程347 14.3.3创建进程348 14.3.4消息传递348 14.4MPI程序设计基础352 14.4.1MPI简介352 14.4.2简单MPI程序 设计352 14.4.3MPI初始化与 关闭353 14.4.4MPI函数库354 14.4.5MPI消息传递355 14.5多核CPU与多线程360 14.5.1多核CPU360 14.5.2线程361 14.6OpenMP与多核程序 设计362 14.6.1OpenMP简介362 14.6.2OpenMP并行 程序结构363 14.6.3parallel节364 14.6.4for节365 14.6.5其他节366 14.6.6共享变量与信息 传递366 14.7多线程技术367 14.7.1线程函数库 简介367 14.7.2Win32线程 函数库368 14.7.3C11标准线程 函数库372 14.8案例高性能计算与 “天河二号”376 练习题378第15章个体软件过程管理379 15.1概述379 15.2编码规范定义379 15.3MPI编码规范380 15.3.1标识符命名 规范380 15.3.2函数或过程 规范381 15.4ANSI C程序编码规范381 15.4.1代码结构与 组织381 15.4.2注释383 15.4.3标识符命名 规范385 15.4.4代码风格与 排版386 15.5代码重用技术387 15.5.1源程序文件387 15.5.2静态库387 15.5.3动态链接库389 15.5.4组件技术391 15.6软件生命周期模型简介392 15.7CMM简介394 15.8PSP简介395 15.9PSP 0级395 15.9.1计划过程管理396 15.9.2开发过程管理396 15.9.3总结过程管理397 15.9.4PSP 0过程管理 文档397 15.9.5PSP 0.1级398 15.10软件开发计划400 15.10.1软件开发计划 基本内容401 15.10.2制订个体软件 开发计划401 15.10.3PSP软件开发计 划过程管理401 15.11PSP 1级403 15.11.1规模计算403 15.11.2任务计划404 15.11.3进度计划404 15.12PSP 2级404 15.12.1代码评审405 15.12.2设计评审406 15.12.3缺陷预防406 15.12.4PSP 2级的 改进406 15.13案例软件开发与成熟 度模型: CMM认证406 练习题408附录AASCII表409 附录B运算符和结合方向410参考文献412