C语言程序设计(第2版)
作者 : 王立柱
出版日期 : 2016-03-15
ISBN : 978-7-111-52927-9
定价 : 35.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 199
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书共分12章,内容包括:机器语言简介,基本数据类型,操作符和表达式,程序流程控制,指针和数组,函数,模块化程序设计,字符串,结构,流与文件,二维数组和指针以及C语言高级综合程序设计。最后一章包括顺序表、单向链表、综合设计实例、从C到C++的基本内容和从C到C++的顺序表。

图书特色

培养程序设计能力是一项系统的工程。作者以逻辑方法进行了长期的程序设计类课程教学实践,收效显著,并将其心得融入本书中。本书采用辩证逻辑叙述方法:从程序设计的基本矛盾出发,说明概念的必然发展过程;基于机器语言程序,逐步分析和引出有关程序设计的概念。
本书特色:
以逻辑方法为编写主线,从机器语言开始,一步步引出高级语言程序设计中的基本概念和相关原理,使学生循序渐进地学习程序设计的相关知识。
关注程序设计的核心知识,并采取易于学生接受和理解的方式讲解。包括通过整数按位逆置的各种算法引出C语言基于基本类型的编程模式;明确函数调用的三个步骤,并以此作为函数概念的核心内容;通过对象及类型化的空间这个基本概念,结合程序设计的需要,简洁明了地把指针“设计”出来;实现字符串的基本操作和补充操作;把顺序表作为克服数组局限性的方法;从英语的树形结构出发,用非线性结构讲解递归算法。
本书配有多媒体教学/助学软件,使结构、算法、代码、运行过程和结果同步展现,数据自由输入。本书还为教师提供教学课件和相关源代码,需要的教师可登录华章网站下载。

图书前言

本书采用辩证逻辑叙述方法。所谓辩证,是指从程序设计的基本矛盾出发,说明概念的必然发展过程。所谓逻辑,是指从机器语言程序出发,逐步分析和引出有关程序设计的概念。程序设计的基本矛盾是数据结构和算法的矛盾。数据结构即一组有组织的数据和对数据的基本操作,一般用程序语言来表示;算法是用基本操作表示的数据处理的有限步骤。算法越来越复杂,同时要求程序易写、易读、易维护且足够高效,这就推动了程序语言的发展,而发展的程序语言又反过来扩展了算法。
本书从程序设计中的问题出发学习各种概念:每一个问题都是程序设计中的问题,每一个问题的解决都产生新的程序以及新的概念。读者从本书中所感受到的,不是一个高高在上的思想者的存在,即他告诉你做什么,而是读者自身的存在,即读者知道自己要做什么,并且可以描述出每一个问题的产生过程和解决方案。
本书内容概要
第1章机器语言模式。首先用若干条虚拟的机器指令模拟一台计算机,通过一个简单的求和程序引入存储器、地址、寄存器、程序计数器等概念。然后用一个方程的两种求解程序,说明算法和指令集的相互作用关系,同时引入程序入口地址、子程序调用、断口地址、现场保护、栈等概念。最后,通过分析机器语言的局限性,引入汇编语言、汇编程序等概念。本章的重点不是机器语言程序设计,而是理解有关程序设计的一些基本概念,以及数据结构和算法这一对矛盾最初的表现形式。
第2章C语言模式。首先分析汇编语言的局限性,由此引出高级程序语言——C语言。然后通过将一个整数按位逆置的各种算法,引出C语言基于基本类型的编程模式,包括主函数框架、标准输入/输出函数、表达式、程序流程控制结构等基本知识。最后分节详述这些基本知识。
第3章函数。首先将一个整数按位逆置的算法设计为一个函数,然后逐步引入函数的相关知识。核心内容是函数调用的三个步骤:一是主调函数通过实参对被调函数的形参进行初始化;二是被调函数如果有返回值,系统就根据返回值类型创建一个临时变量,以初始化方式存储这个返回值;三是主调函数如果需要被调函数的返回值,就从这个临时变量取值。
第4章一维数组和指针。由一个整数的按位逆置,到一个整数的按位求和,再到一组整数求和,通过算法的逐步深入,自然而然地揭示出对指针的需求。然后,通过“对象即类型化的空间”这个基本概念,结合程序设计的需要,简洁明了地把指针“设计”出来。
第5章字符串。字符串是标准库提供的一种数据结构。字符数组加串结束符是它的存储结构,串长度、串复制、串连接等是它的基本操作。该章不仅实现了字符串的基本操作代码,而且补充了一些基本操作,并在此基础上实现了模式匹配。
第6章结构体、联合体和枚举。这是基本类型的扩展。
第7章顺序表。首先分析了数组的局限性,然后建立顺序表克服这些局限性。
第8章链表。首先分析了顺序表这种连续存储结构的局限性,然后建立链表克服这种局限性。
第9章文件。文件主要是指磁盘文件,是对标准输入/输出文件的扩展。该章通过对比引出磁盘文件的读写操作。
第10章二维数组和指针。该章是第4章一维数组和指针的自然扩展,对数组和指针的一系列概念进行了严谨而简洁的综述。
第11章非线性结构与递归。首先通过英语的树形结构引入递归概念,然后将递归算法与非线性结构联系起来进行讲解。
教辅资源
本书配有多媒体教学课件,大部分程序在课件中都有结构、算法、代码、运行及结果的跟踪演示,而且允许自由输入数据。
用书教师可访问华章网站(www.hzbook.com)下载。
致读者
读者如有问题,可以直接与作者联系:tjwanglizhu@163.com。

上架指导

计算机\程序设计

封底文字

【副主编只上内封,不上封面】

培养程序设计能力是一项系统的工程。作者以逻辑方法进行了长期的程序设计类课程的教学实践,收效显著,并将其心得融入本书中。本书采用辩证逻辑叙述方法:从程序设计的基本矛盾出发,说明概念的必然发展过程;基于机器语言程序,逐步分析和引出有关程序设计的概念。

本书特点:
·通过简单的机器语言程序引出程序设计的一些基本概念。
·通过一个整数按位逆置的各种算法,引出C语言基于基本类型的编程模式。
·明确函数调用的三个步骤,并以此作为函数概念的核心内容。
·通过对象即类型化的空间这个基本概念,结合程序设计的需要,简洁明了地把指针“设计”出来。
·实现字符串的基本操作和补充操作。
·把顺序表作为克服数组局限性的方法。
·从英语的树形结构出发,用非线性结构讲解递归算法。
·配有多媒体助学软件。

作者简介

王立柱:暂无

图书目录

前言
教学建议
第1章 机器语言模式
 1.1 模拟机器指令集与程序设计举例
 1.2 机器语言的局限性
 问题与练习
第2章 C语言模式
 2.1 基于基本类型的编程模式
 2.2 基本数据类型
  2.2.1 整型
  2.2.2 实型
  2.2.3 字符型
 2.3 运算符和表达式
  2.3.1 自增自减运算符和表达式
  2.3.2 复合赋值运算符和表达式
  2.3.3 条件表达式和逗号表达式
  2.3.4 关系运算符和逻辑运算符
  2.3.5 运算符优先级
 2.4 类型转换
 2.5 程序流程控制结构
  2.5.1 if-else语句
  2.5.2 switch-case语句
  2.5.3 break语句和continue语句
 问题与练习
第3章 函数
 3.1 函数自定义与调用
 3.2 函数声明与定义
 3.3 函数与变量的存储类别
  3.3.1 自动局部变量
  3.3.2 静态局部变量
  3.3.3 外部变量
 3.4 函数应用设计举例
  3.4.1 阶乘累加
  3.4.2 求π的近似值
  3.4.3 求最大公约数
  3.4.4 判断质数
  3.4.5 数制转换
 *3.5 模块化程序设计
  3.5.1 全局外部函数
  3.5.2 静态外部函数
  3.5.3 全局外部变量
  3.5.4 静态外部变量
 3.6 编译预处理
  3.6.1 无参宏指令
  3.6.2 带参宏指令
  3.6.3 条件编译指令
  3.6.4 文件包含指令
 问题与练习
第4章 一维数组和指针
 4.1 指针和指针传递
 4.2 一维数组和指针
  4.2.1 一维数组
  4.2.2 指向一维数组的指针
  *4.2.3 数组类型和数组首元素类型
 4.3 const型指针
 4.4 动态数组
 4.5 数组和指针应用举例
  4.5.1 Josephus问题
  4.5.2 选择排序
  4.5.3 起泡排序
  4.5.4 划分数组元素
  4.5.5 删除数组中的重复数据
  4.5.6 筛法求质数
  4.5.7 顺序搜索和二分搜索
 4.6 索引和指针
 4.7 指针和左值
 4.8 函数指针
 问题与练习
第5章 字符串
 5.1 字符串常量和字符串变量
 5.2 字符串基本操作函数原型
 5.3 字符串基本操作函数实现
 5.4 字符串基本操作函数的补充
  5.4.1 取子串
  5.4.2 子串插入
  5.4.3 子串删除
  5.4.4 字符查找
 5.5 模式匹配
 问题与练习
第6章 结构体、联合体和枚举
 6.1 结构体
  6.1.1 结构体定义
  6.1.2 结构体变量和typedef名字
  6.1.3 结构体变量的初始化和赋初值
  6.1.4 结构体数组
  6.1.5 结构体的嵌套
  6.1.6 结构体返回值和指针传递
  6.1.7 数组和含有数组的结构体变量
 6.2 联合体
 6.3 枚举
 6.4 结构体应用设计举例
  6.4.1 模拟洗牌
  6.4.2 Date结构体
  6.4.3 三天打鱼,两天晒网
 问题与练习
第7章 顺序表
 7.1 数组的局限性
 7.2 顺序表声明与实现
  7.2.1 顺序表声明
  7.2.2 顺序表实现
 7.3 索引和指针
 7.4 数据抽象和封装
 问题与练习
第8章 链表
 8.1 链表的结构分析
 8.2 链表的声明和实现
 问题与练习
第9章 文件
 9.1 文件指针
 9.2 文件的打开与关闭
 9.3 文件的读写
  9.3.1 字符的读写
  9.3.2 字符串的读写
  9.3.3 无格式读写
  9.3.4 格式读写
  9.3.5 文件的随机访问
 问题与练习
*第10章 二维数组和指针
 10.1 概述
 10.2 二维数组和一维数组
 10.3 马鞍点
 10.4 指针数组和二级指针
 10.5 指针数组和二维数组
 问题与练习
*第11章 非线性结构与递归
 11.1 树形结构与递归
 11.2 递归函数
 问题与练习
附录A 命名规则
附录B 常用的ANSI C标准库函数
参考文献

教学资源推荐
作者: [意]阿尔贝托·博斯凯蒂(Alberto Boschetti) 卢卡·马萨罗(Luca Massaron) 著
作者: 程学先 林姗 程传慧
作者: [美]约翰·R. 莱文(John R. Levine) 著
参考读物推荐
作者: (澳)David Reilly,Michael Reilly
作者: 钟胜平 编著
作者: 常建功 陈浩 黄淼 等编著