本书以程序设计为基本线索,同时深入介绍了C语言各方面的情况。书中强调的是如何认识程序、写程序和用C写出好的程序。并通过实例讨论了问题的分析和分解,找出主要步骤,确定函数抽象,找出循环,选择语言结构,最后写出程序的过程。书中不少实例给出了在不同考虑下可能形成的多种解法,以帮助读者理解程序设计的“真谛”。
网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 从问题到程序(程序设计与C语言引论重点大学计算机教材) |
分类 | |
作者 | 裘宗燕 |
出版社 | 机械工业出版社 |
下载 | |
简介 | 编辑推荐 本书以程序设计为基本线索,同时深入介绍了C语言各方面的情况。书中强调的是如何认识程序、写程序和用C写出好的程序。并通过实例讨论了问题的分析和分解,找出主要步骤,确定函数抽象,找出循环,选择语言结构,最后写出程序的过程。书中不少实例给出了在不同考虑下可能形成的多种解法,以帮助读者理解程序设计的“真谛”。 内容推荐 本书以C作为讨论程序设计的语言,讨论了基本程序设计的各方面问题。书中给出程序实例时没有采用常见的“提出问题,给出解答,再加些解释”的简单三步形式,而是增加了许多对问题的分析和讨论,以帮助读者认识程序设计过程的实质,理解从问题到程序的思考过程。书中还尽可能详尽地解释了许多与C语言和程序设计有关的问题。 本书适合作为高等院校计算机及相关专业的教材,也可供其他学习C程序设计语言的读者阅读。 目录 前言 本书作者简介 第1章 程序设计和C语言 1 1.1程序和程序语言 1 1.2 C语言简介 8 1.3一个简单的C程序 1O 1.4程序开发过程 13 1.5问题与程序设计 17 本章讨论的重要概念 18 练习 18 第2章 数据对象与计算 21 2.1基本字符、名字表示、标识符和关键字 21 2.2数据与类型 23 2.3基本类型与数据表示 23 2.3.1整数类型和整数的表示 23 2.3.2实数类型和实数的表示 25 2.3.3字符类型和字符的表示 26 2.3.4数据的外部表示、内部表示与转换 27 2.4运算符、表达式与计算 3O 2.4.1算术运算符 3O 2.4.2算术表达式 31 2.4.3表达式的求值 32 2.4.4计算和类型 34 2.5数学函数库及其使用 37 2.5.1函数、函数调用 37 2.5.2数学函数及其使用 38 2.5.3函数调用中的类型转换 39 问题解释 40 几个常用程序模式 40 本章讨论的重要概念 41 练习 41 第3章 变量、函数和控制结构 43 3.1语句、复合结构 43 3.2变量——概念、定义和使用 44 3.2.1变量的定义 45 3.2.2变量的赋值与取值 46 3.2.3几个问题 48 3.3定义函数(初步) 50 3.3.1函数定义 52 3.3.2函数和程序 55 3.3.3函数与类型 56 3.3.4自定义输出函数 57 3.4关系表达式、逻辑表达式、条件表达式 58 3.4.1关系表达式和条件表达式 58 3.4.2逻辑表达式 60 3.5语句与控制结构 61 3.5.1条件语句(if语句) 62 3.5.2循环语句(1):while语句 65 3.5.3循环语句(2):for语句 68 3.6若干常用结构和问题 70 3.6.1增量和减量运算符(+;、~) 70 3.6.2逗号运算符 71 3.6.3实现二元运算符操作的赋值运算符 71 3.6.4空语句 72 3.6.5表达式和求值 73 问题解释 74 几个常用程序模式 74 本章讨论的重要概念 75 练习 75 第4章 基本程序设计技术 79 4.1循环程序设计 79 4.1.1基本循环方式 8O 4.1.2求一系列完全平方数 81 4.1.3判断素数(谓词函数) 82 4.1.4艰难的旅程(浮点误差) 83 4.1.5求立方根(迭代和逼进) 85 4.1.6求sin函数值(通项计算) 86 4.2循环程序的问题 87 4.2.1从循环中退出 87 4.2.2循环中的几种变量 89 4.3循环与递归 9O 4.3.1阶乘和乘幂(循环,递归) 9O 4.3.2 Fibonacci序列(计算与时间) 93 4.3.3为计算过程计时 94 4.3.4 Fibonacci序列的迭代计算(程序正确性与循环不变式) 95 4.3.5最大公约数 97 4.3.6河内塔(梵塔)问题 100 4.4基本输入输出 102 4.4.1格式输入函数scanf 102 4.4.2字符输入输出函数 109 4.4.3输入函数的返回值及其作用 112 4.5控制结构和控制语句 114 4.5.1 do-while循环结构 114 4.5.2流程控制语句 115 4.5.3开关语句 117 4.6程序设计实例 119 4.6.1一个简单计算器 119 4.6.2定义枚举常量 119 4.6.3单词计数问题 120 4.7程序测试和排错 123 4.7.1测试 123 4.7.2白箱测试 124 4.7.3黑箱测试 125 4.7.4排除程序里的错误 126 问题解释 127 几个常用程序模式 128 本章讨论的重要概念 128 练习 128 第5章 C程序结构 133 5.1数值类型 133 5.1.1实数类型和整数类型 133 5.1.2字符类型 133 5.1.3整数类型 134 5.1.4基本数据类型的选择 135 5.2函数和标准库函数 136 5.2.1C语言的库函数 137 5.2.2字符分类函数 137 5.2.3随机数生成函数 138 5.3函数定义和程序的函数分解 l39 5.3.1主函数 140 5.3.2程序的函数分解 141 5.3.3对函数的两种观点 142 5.3.4函数原型 146 5.4 C程序结构与变量 149 5.4.1外部定义的变量 150 5.4.2作用域与生存期 151 5.4.3外部变量和自动变量 151 5.4.4变量定义的嵌套 153 5.4.5静态局部变量 154 5.4.6变量的其他问题 155 5.4.7一个实例 l57 5.5预处理 159 5.5.1文件包含命令 159 5.5.2宏定义与宏替换 160 5.5.3条件编译命令 163 5.6定义常量 164 5.7字位运算符 165 5.8编程实例 168 5.8.1一个简单的猜数游戏 168 5.8.2加密与解密 170 本章讨论的重要概念 172 练习 l72 第6章 数组 175 6.1数组的概念、定义和使用 175 6.1.1定义数组变量 176 6.1.2数组的使用 177 6.1.3数组的初始化 179 6.1.4数组的存储实现 180 6.2数组程序实例 181 6.2.1从字符到下标 181 6.2.2筛法求素数 182 6.2.3成绩分类 183 6.2.4多项式求值 184 6.2.5定义数组的问题 185 6.3数组作为函数参数 186 6.3.1一个例子 186 6.3.2修改实参数组的元素 188 6.4字符数组与字符串 189 6.4.1字符数组 189 6.4.2字符串 189 6.4.3程序实例 191 6.4.4标准库字符串处理函数 193 6.4.5输出文本里的最长行 194 6.5两维和多维数组 198 6.5.1多维数组的初始化 198 6.5.2多维数组的表示和使用 199 6.5.3多维数组作为函数的参数 200 6.6编程实例 201 6.6.1成绩直方图 201 6.6.2一个通用带检查的整数输入函数 205 6.6.3 “计算”数组变量的大小 206 6.6.4统计c程序里的关键字 208 6.6.5数组的划分 211 6.6.6数组的排序 213 问题解释 2l5 几个常用程序模式 215 本章讨论的重要概念 215 练习 215 第7章 指针 217 7.1地址与指针 217 7.2指针变量的定义和使用 218 7.2.1指针操作 218 7.2.2指针作为函数的参数 219 7.2.3与指针有关的一些问题 222 7.3指针与数组 224 7.3.1指向数组元素的指针 224 7.3.2基于指针运算的数组程序设计 227 7.3.3数组参数与指针 228 7.3.4指针与数组操作的程序实例 229 7.3.5字符指针与字符数组 231 7.4指针数组 233 7.4.1指针数组与两维数组 234 7.4.2命令行参数及其处理 235 7.5多维数组作为参数的通用函数 238 7.6动态存储管理 240 7.6.1为什么需要动态存储管理 24O 7.6.2 c语言的动态存储管理机制 241 7.6.3两个程序实例 244 7.6.4函数、指针和动态存储 247 7.7定义类型 250 7.7.1定义数组类型和指针类型 251 7.7.2复杂类型描述与解读 252 7.8指向函数的指针 254 7.8.1函数指针的定义和使用 254 7.8.2函数指针作为函数的参数 255 7.8.3数值积分函数 257 7.8.4若干以函数指针为参数的数组操作实用函数 259 几个常用程序模式 260 本章讨论的重要概念 260 练习 261 第8章 文件和输入输出 263 8.1文件的概念 263 8.1.1流和文件指针 263 8.1.2缓冲式输入输出 264 8.2文件的使用 265 8.2.1文件的打开和关闭 265 8.2.2输入输出函数 267 8.2.3程序实例 268 8.2.4直接输入输出函数 270 8.3标准流输入输出与格式控制 271 8.3.1行式输入和输出 271 8.3.2输入格式控制 272 8.3.3输出格式控制 276 8.3.4以字符串作为格式化输入输出对象 278 8.3.5标准错误流 278 8.4程序实例 279 8.4.1求文件数据的平均值 279 8.4.2一个背单词程序 281 8.4.3资金账目系统 285 练习 288 第9章 结构和其他数据机制 291 9.1结构(struct) 291 9.1.1结构声明与变量定义 291 9.1.2结构变量的初始化和使用 296 9.1.3结构、数组与指针 297 9.2结构与函数 299 9.2.1处理结构的函数 299 9.2.2程序实例 302 9.3联合(union) 306 9.4枚举(enum) 308 9.5编程实例 310 9.5.1数据组的排序 310 9.5.2复数的表示和处理 312 9.6链接结构(自引用结构) 315 9.6.1链接结构 315 9.6.2自引用结构的定义 317 9.6.3程序实现 318 9.6.4数据与查找 321 9.7字段 322 问题解释 323 本章讨论的重要概念 323 练习 323 第10章 程序开发技术 327 10.1分别编译和C程序的分块开发 327 10.1.1分块开发的问题和方法 327 10.1.2程序实例:学生成绩处理 328 10.1.3分块重整 333 10.1.4其他安排和考虑 336 10.1.5模块化思想和技术 338 10.1.6单一头文件结构和多个头文件结构 342 10.2功能模块和程序库 345 10.2.1复数模块 345 10.2.2目标文件和库 348 10.2.3防止重复包含 349 10.3错误报告和处理 349 10.3.1建立统一的错误报告机制 349 10.3.2定义变参数的错误报告函数 350 10.3.3运行中错误的检查和处理 352 10.4程序的配置 358 10.4.1程序的行为参数和启动时的配置 358 10.4.2交互式配置 360 10.4.3通过命令行参数 361 10.4.4采用配置文件 362 10.5程序开发过程 362 10.5.1自上而下的开发 363 10.5.2自下而上的开发 365 10.5.3实际开发过程 365 练习 367 第11章 标准库 371 11.1标准库结构 371 11.1.1标准定义(<stddef.h>) 372 11.1.2错误信息(<erz2qo.h>) 372 11.2几个已经介绍过的头文件 373 11.2.1数学函数(<math.h>) 373 11.2.2字符处理函数(<ct2fpe.h>) 374 11.3字符串函数(string.h>) 375 11.3.1一些字符串函数 375 11.3.2存储区操作 378 11.4功能函数(<stdlib.h>) 379 11.4.1几个整数函数 380 11.4.2数值转换 380 11.4.3执行控制 381 11.4.4与执行环境交互 381 11.4.5常用函数bsearch和qsort 382 11.5日期和时间(<time.h>) 383 11.6实现特征(<limits.h>和<float.h>) 385 11.6.1整数类型特征 385 11.6.2浮点数类型特征 386 11.7其他与输入输出有关的函数(<stdio.h>) 386 11.7.1符号常量和类型 386 11.7.2文件操作函数 387 11.7.3流缓冲区操作函数 388 11.7.4文件定位及定位函数 389 11.7.5其他有关函数 390 11.7.6采用va—list参数的输出函数 391 11.8定义变长度参数表(<stdarg.h) 392 11.9非局部控制转移(<setjmp.h>) 395 11.10调试断言和信号处理(<assert.h>和<signal.h>) 397 11.11标准库的其他功能 398 11.11.1本地化 398 11.11.2多字节字符 400 本章讨论的重要概念 400 练习 400 附录A C语言运算符表 401 附录B C语言速查 403 附录C C99简介 409 进一步学习的建议 413 参考文献 416 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。