描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111602309
内容简介
本书图文并茂,示例丰富,对C语言的基础知识进行了彻底剖析,内容涉及输入输出、流程控制、数组、函数、指针、文件操作等。对难以理解的概念,均精心绘制示意图,进行清晰、通俗地讲解。本书首次将在线评测系统引入C语言教学,建立了适合初学者的阶梯式题库(http://oj.csoeasy.com/),让学生在评测过程中取得成就感,培养程序设计的兴趣。本书配有丰富的数字资源,包括课程网站(http://www.csoeasy.com/)、PPT、网易云课堂的视频课程等。其中视频课程上线后,目前选课人数已超过2万人。本书可作为应用型、技能型人才培养的计算机专业及相关专业的教学用书,也可作为C语言程序设计初学者的入门教材、C语言程序设计人员的培训教材或参考用书。
目 录
目录
前言1
第1章 初识C语言2
1.1 计算机和程序设计语言2
1.1.1 计算机的发展和程序设计语言的产生2
1.1.2 机器语言、汇编语言和高级语言3
1.1.3 程序设计的开发效率和运行效率3
1.1.4 常见的程序设计语言及其用途4
1.1.5 学习程序设计从C语言开始5
1.2 C语言的发展和特点6
1.2.1 C语言的发展6
1.2.2 C语言的特点7
1.3 C语言程序的初步探索8
1.3.1 第1个程序:Hello, World!8
1.3.2 C/C++集成开发环境C-Free的安装9
1.4 算术表达式的计算11
1.5 如何学好程序设计:模仿、理解和运用12
习题13
第2章 数据类型、运算和输入输出14
2.1 标识符和关键字14
2.2 常量和变量14
2.2.1 普通常量和符号常量14
2.2.2 变量的定义和初始化15
2.2.3 赋值类运算符15
2.3 常用的基本数据类型的及其特点16
2.3.1 常用的数据类型17
2.3.2 整数类型能精确表示限定范围内的所有整数18
2.3.3 浮点数类型只能近似的表示数据19
2.4 C程序基本结构:DICO 和 A+B问题19
2.5 程序设计在线评测系统20
2.6 基本算术运算(取整和取余)21
2.7 格式化输入:三位数反转22
2.8 浮点数:计算圆的周长和面积22
2.9 字符类型24
2.10 强大、经典的 scanf 和 printf25
2.11 在命令行编译和运行程序28
2.12 文件、I/O重定向和管道*29
2.12.1 一切都是文件29
2.12.2 管道机制30
习题31
第3章 分支结构32
3.1 if-else 语句的三种基本形式32
3.1.1 基本结构1:单分支结构32
3.1.2 基本结构2:双分支结构33
3.1.3 双分支结构和三元运算符34
3.1.4 基本结构3:多分支结构34
3.2 语法错误和逻辑错误36
3.3 运算符、表达式和优先级37
3.3.1 关系运算符与关系表达式37
3.3.2 逻辑运算符和逻辑表达式38
3.3.3 自增自减运算符40
3.4 逻辑运算符的短路特性40
3.5 多路分支语句switch-case-break42
3.5.1 switch-case-break的基本用法42
3.5.2 多个case语句相同情况的处理44
3.6 代码格式化:让代码清晰易读46
3.7 C语言的if~else匹配问题 *47
习题47
第4章 循环结构49
4.1 简单的循环:简单重复49
4.1.1 代码的优化50
4.1.2 左闭右开50
4.2 循环表示序列:计算1~100的和51
4.2.1 累积运算:求1~100的和51
4.2.2 计算1~100的PHP、JAVA、Swift和Python版本53
4.2.3 罗塞塔石碑语言学习法54
4.3 从特定的数扩展到序列:水仙花数54
4.4 三种基本循环结构及运行流程56
4.5 流程图和while循环:3n+1 问题58
4.6 do-while循环:迭代法求平方根59
4.7 二重循环:九九乘法表60
4.8 多重循环:水仙花数61
4.9 改变循环执行流程:break 和 continue62
4.10 while典型结构:读取比较二合一 *63
习题65
第5章 算法和程序设计66
5.1 程序=算法+数据结构66
5.2 算法的五大特点67
5.3 算法的表示67
5.3.1 流程图68
5.3.2 N-S流程图68
5.4 程序设计方法69
5.4.1 程序设计的一般步骤69
5.4.2 结构化程序设计方法70
5.5 C++中的标准模板库(STL)*70
习题72
第6章 批量数据的处理——数组73
6.1 初识数组:从一组数中找出值73
6.2 数组进阶:选择排序法75
6.3 动态申请数组 *77
6.4 二维数组:计算方阵对角线元素之和78
6.5 模拟:奇数阶魔方(从伪代码到C语言)*80
6.6 数组应用举例:统计各类字符的个数82
习题83
第7章 函数84
7.1 函数的基本知识84
7.2 函数的调用过程86
7.3 编写自定义函数——分段函数87
7.4 函数的四种类型89
7.5 数组作为函数参数:寻找数组中的值89
7.6 递归函数:计算阶乘和斐波那契数列90
7.7 计算程序运行时间:递归和递推的效率比较*92
7.8 经典递归问题:汉诺塔*93
7.9 编译流程:预处理、编译、汇编、链接95
7.10 全局变量、静态变量:优化斐波那契数列的递归版本97
习题99
第8章 特殊的字符数组——字符串100
8.1 字符串的声明、输入和输出100
8.2 字符串的简单应用:判断回文101
8.3 字符数组的空间和字符串的长度103
8.4 常用字符串处理函数103
8.5 字符串不是一等公民105
8.6 使用memset函数初始化数组*108
习题109
第9章 指针——地址的别名110
9.1 初识指针110
9.2 数组和指针112
9.3 函数的传值调用和传地址调用115
9.3.1 传值调用115
9.3.2 传地址调用116
9.4 字符串指针和字符数组:只读和可写118
9.5 指针数组和命令行参数*119
9.6 指向函数的指针:快速排序函数的应用*121
习题122
第10章 结构体124
10.1 初识结构体:重写两点之间的距离124
10.2 结构体的初始化和三种访问方式126
10.3 数据类型的空间分配127
10.4 初识链表(自引用结构)128
习题130
第11章 文件处理132
11.1 文件与流132
11.1.1 文件基础知识132
11.1.2 文件和流132
11.1.3 文本文件和二进制文件133
11.1.4 文件缓冲系统134
11.2 文件的打开和关闭方法134
11.3 文件的读写136
11.3.1 字符的读写:显示文件的内容和复制文件136
11.3.2 数据块的读写:复制文件137
11.3.3 逐行处理:搜索模式串138
11.3.4 文件的格式化输入:处理CSV文件*140
11.4 文件的定位与随机读写141
习题143
附录A 常用字符与
前言1
第1章 初识C语言2
1.1 计算机和程序设计语言2
1.1.1 计算机的发展和程序设计语言的产生2
1.1.2 机器语言、汇编语言和高级语言3
1.1.3 程序设计的开发效率和运行效率3
1.1.4 常见的程序设计语言及其用途4
1.1.5 学习程序设计从C语言开始5
1.2 C语言的发展和特点6
1.2.1 C语言的发展6
1.2.2 C语言的特点7
1.3 C语言程序的初步探索8
1.3.1 第1个程序:Hello, World!8
1.3.2 C/C++集成开发环境C-Free的安装9
1.4 算术表达式的计算11
1.5 如何学好程序设计:模仿、理解和运用12
习题13
第2章 数据类型、运算和输入输出14
2.1 标识符和关键字14
2.2 常量和变量14
2.2.1 普通常量和符号常量14
2.2.2 变量的定义和初始化15
2.2.3 赋值类运算符15
2.3 常用的基本数据类型的及其特点16
2.3.1 常用的数据类型17
2.3.2 整数类型能精确表示限定范围内的所有整数18
2.3.3 浮点数类型只能近似的表示数据19
2.4 C程序基本结构:DICO 和 A+B问题19
2.5 程序设计在线评测系统20
2.6 基本算术运算(取整和取余)21
2.7 格式化输入:三位数反转22
2.8 浮点数:计算圆的周长和面积22
2.9 字符类型24
2.10 强大、经典的 scanf 和 printf25
2.11 在命令行编译和运行程序28
2.12 文件、I/O重定向和管道*29
2.12.1 一切都是文件29
2.12.2 管道机制30
习题31
第3章 分支结构32
3.1 if-else 语句的三种基本形式32
3.1.1 基本结构1:单分支结构32
3.1.2 基本结构2:双分支结构33
3.1.3 双分支结构和三元运算符34
3.1.4 基本结构3:多分支结构34
3.2 语法错误和逻辑错误36
3.3 运算符、表达式和优先级37
3.3.1 关系运算符与关系表达式37
3.3.2 逻辑运算符和逻辑表达式38
3.3.3 自增自减运算符40
3.4 逻辑运算符的短路特性40
3.5 多路分支语句switch-case-break42
3.5.1 switch-case-break的基本用法42
3.5.2 多个case语句相同情况的处理44
3.6 代码格式化:让代码清晰易读46
3.7 C语言的if~else匹配问题 *47
习题47
第4章 循环结构49
4.1 简单的循环:简单重复49
4.1.1 代码的优化50
4.1.2 左闭右开50
4.2 循环表示序列:计算1~100的和51
4.2.1 累积运算:求1~100的和51
4.2.2 计算1~100的PHP、JAVA、Swift和Python版本53
4.2.3 罗塞塔石碑语言学习法54
4.3 从特定的数扩展到序列:水仙花数54
4.4 三种基本循环结构及运行流程56
4.5 流程图和while循环:3n+1 问题58
4.6 do-while循环:迭代法求平方根59
4.7 二重循环:九九乘法表60
4.8 多重循环:水仙花数61
4.9 改变循环执行流程:break 和 continue62
4.10 while典型结构:读取比较二合一 *63
习题65
第5章 算法和程序设计66
5.1 程序=算法+数据结构66
5.2 算法的五大特点67
5.3 算法的表示67
5.3.1 流程图68
5.3.2 N-S流程图68
5.4 程序设计方法69
5.4.1 程序设计的一般步骤69
5.4.2 结构化程序设计方法70
5.5 C++中的标准模板库(STL)*70
习题72
第6章 批量数据的处理——数组73
6.1 初识数组:从一组数中找出值73
6.2 数组进阶:选择排序法75
6.3 动态申请数组 *77
6.4 二维数组:计算方阵对角线元素之和78
6.5 模拟:奇数阶魔方(从伪代码到C语言)*80
6.6 数组应用举例:统计各类字符的个数82
习题83
第7章 函数84
7.1 函数的基本知识84
7.2 函数的调用过程86
7.3 编写自定义函数——分段函数87
7.4 函数的四种类型89
7.5 数组作为函数参数:寻找数组中的值89
7.6 递归函数:计算阶乘和斐波那契数列90
7.7 计算程序运行时间:递归和递推的效率比较*92
7.8 经典递归问题:汉诺塔*93
7.9 编译流程:预处理、编译、汇编、链接95
7.10 全局变量、静态变量:优化斐波那契数列的递归版本97
习题99
第8章 特殊的字符数组——字符串100
8.1 字符串的声明、输入和输出100
8.2 字符串的简单应用:判断回文101
8.3 字符数组的空间和字符串的长度103
8.4 常用字符串处理函数103
8.5 字符串不是一等公民105
8.6 使用memset函数初始化数组*108
习题109
第9章 指针——地址的别名110
9.1 初识指针110
9.2 数组和指针112
9.3 函数的传值调用和传地址调用115
9.3.1 传值调用115
9.3.2 传地址调用116
9.4 字符串指针和字符数组:只读和可写118
9.5 指针数组和命令行参数*119
9.6 指向函数的指针:快速排序函数的应用*121
习题122
第10章 结构体124
10.1 初识结构体:重写两点之间的距离124
10.2 结构体的初始化和三种访问方式126
10.3 数据类型的空间分配127
10.4 初识链表(自引用结构)128
习题130
第11章 文件处理132
11.1 文件与流132
11.1.1 文件基础知识132
11.1.2 文件和流132
11.1.3 文本文件和二进制文件133
11.1.4 文件缓冲系统134
11.2 文件的打开和关闭方法134
11.3 文件的读写136
11.3.1 字符的读写:显示文件的内容和复制文件136
11.3.2 数据块的读写:复制文件137
11.3.3 逐行处理:搜索模式串138
11.3.4 文件的格式化输入:处理CSV文件*140
11.4 文件的定位与随机读写141
习题143
附录A 常用字符与
前 言
前言
程序设计是高职院校信息工程、计算机和电子类等专业的专业基础课程,介绍程序设计的思想和方法。通过该课程的学习,学生不仅要掌握程序设计语言的知识,更重要的是在实践中逐步掌握程序设计的思想和方法,培养问题求解和编程能力。因此,这是一门突出实践能力的特色鲜明的课程。
C 语言诞生于上世纪70年代初,是早得到广泛使用的程序设计语言。它既具备高级语言的特性,又具有直接操纵计算机硬件的能力,并以其丰富灵活的控制和数据结构、简洁而高效的语句表达、清晰的程序结构和良好的可移植性而拥有大量的使用者。目前,C 语言被许多高校列为程序设计课程的语言。
不仅如此,后续的许多程序设计语言如JAVA、PHP、C#、Python、Swift在设计上就深受C语言的影响,而C++、Objective-C本身就包含了C语言。掌握好了C语言,通过罗塞塔石碑学习法,很快就能掌握其他程序设计语言中结构化程序设计的对应内容。
本书具有如下特点:
1. 以程序设计为主线,以问题求解为驱动,逐步引入语言知识,在不断实践中来培养编程能力。为了让本书的读者更好的掌握程序设计语言,我搭建了C/C++/JAVA/Python程序自动评测系统,网址为http://oj.csoeasy.com/。系统提供了大量适合初学者的练习,循序渐进,逐步提高。
2. 提供了丰富的学习资源。早在2014年5月,《新思维:C语言程序设计》课程就在网易云课堂上线,网址为:http://study.163.com/course/introduction/752005.htm。上线之初,就以新颖的教学理念,获得了网易云课堂首页连续一个月的推荐,至今选课人数已经超过2万人。除此之外,本书还创建了课程网站 http://www.csoeasy.com/。 另外,获得江苏省教师现代教育技术应用作品大赛多媒体课件组一等奖的《C语言程序设计自助练习》(http://do.feikuaixue.com/)也从校内推广到互联网。这些学习资源在实践应用中获得了高度评价。
3. 图文并茂。全书共有插图近60个,其中超过一半是精心绘制的示意图,对C语言语法以及一些难以理解的概念进行通俗地讲解。
4. 以C语言为起点学习程序设计,但又不仅限于C语言,还介绍了如何依托C语言基础去学习JAVA、PHP、Python等流行语言,能大大提高学习效率。
本书是在苏州工业园区服务外包职业学院信息工程学院刘正院长的鼓励和大力支持下编写的,在编写过程中,又得到了计算机应用与技术系王春华老师的帮助和支持。本书也是校企合作的成果,苏州大宇宙信息创造有限公司张明亮总经理给本书提了很多建议和指导。没有他们的帮助就不会有本书的面世,在此表示衷心的感谢。
写一本书不容易,写一本好书更不容易,虽然我把写一本好书作为目标,但限于作者水平有限,书中难免有不足之处,恳请读者批评和指正,我的电子邮箱为 [email protected]。
程序设计是高职院校信息工程、计算机和电子类等专业的专业基础课程,介绍程序设计的思想和方法。通过该课程的学习,学生不仅要掌握程序设计语言的知识,更重要的是在实践中逐步掌握程序设计的思想和方法,培养问题求解和编程能力。因此,这是一门突出实践能力的特色鲜明的课程。
C 语言诞生于上世纪70年代初,是早得到广泛使用的程序设计语言。它既具备高级语言的特性,又具有直接操纵计算机硬件的能力,并以其丰富灵活的控制和数据结构、简洁而高效的语句表达、清晰的程序结构和良好的可移植性而拥有大量的使用者。目前,C 语言被许多高校列为程序设计课程的语言。
不仅如此,后续的许多程序设计语言如JAVA、PHP、C#、Python、Swift在设计上就深受C语言的影响,而C++、Objective-C本身就包含了C语言。掌握好了C语言,通过罗塞塔石碑学习法,很快就能掌握其他程序设计语言中结构化程序设计的对应内容。
本书具有如下特点:
1. 以程序设计为主线,以问题求解为驱动,逐步引入语言知识,在不断实践中来培养编程能力。为了让本书的读者更好的掌握程序设计语言,我搭建了C/C++/JAVA/Python程序自动评测系统,网址为http://oj.csoeasy.com/。系统提供了大量适合初学者的练习,循序渐进,逐步提高。
2. 提供了丰富的学习资源。早在2014年5月,《新思维:C语言程序设计》课程就在网易云课堂上线,网址为:http://study.163.com/course/introduction/752005.htm。上线之初,就以新颖的教学理念,获得了网易云课堂首页连续一个月的推荐,至今选课人数已经超过2万人。除此之外,本书还创建了课程网站 http://www.csoeasy.com/。 另外,获得江苏省教师现代教育技术应用作品大赛多媒体课件组一等奖的《C语言程序设计自助练习》(http://do.feikuaixue.com/)也从校内推广到互联网。这些学习资源在实践应用中获得了高度评价。
3. 图文并茂。全书共有插图近60个,其中超过一半是精心绘制的示意图,对C语言语法以及一些难以理解的概念进行通俗地讲解。
4. 以C语言为起点学习程序设计,但又不仅限于C语言,还介绍了如何依托C语言基础去学习JAVA、PHP、Python等流行语言,能大大提高学习效率。
本书是在苏州工业园区服务外包职业学院信息工程学院刘正院长的鼓励和大力支持下编写的,在编写过程中,又得到了计算机应用与技术系王春华老师的帮助和支持。本书也是校企合作的成果,苏州大宇宙信息创造有限公司张明亮总经理给本书提了很多建议和指导。没有他们的帮助就不会有本书的面世,在此表示衷心的感谢。
写一本书不容易,写一本好书更不容易,虽然我把写一本好书作为目标,但限于作者水平有限,书中难免有不足之处,恳请读者批评和指正,我的电子邮箱为 [email protected]。
评论
还没有评论。