计算机基础教育 > 算法与程序设计类

C语言程序设计(第三版)

书号:9787113119140 套系名称:21世纪高校计算机应用技术系列规划精品教材

作者:林小茶 出版日期:2010-12-01

定价:30.00 页码 / 开本:316 /16

策划编辑:崔晓静 责任编辑:杜鹃 徐盼欣

适用专业:无 适用层次:应用型本科

最新印刷时间:

资源下载
教学课件 教学素材(暂无)
习题答案 教学案例(暂无)
教学设计(暂无) 教学视频(暂无)
内容简介 前言 目录 作者介绍 图书特色
  •         C语言是程序员的入门语言,也是许多大学为学生安排的第一门程序设计课程。本书充分考虑到这一点,在内容的编排上尽量符合初学者的要求,在实例的选择上从易到难,循序渐进,并且能够解决一些实际问题。本书的主要内容包括:C语言概述、C语言的基本知识、顺序和选择结构程序设计、循环结构程序设计、函数、数组、指针、结构体等构造数据类型和文件。全书通过大量的实例讲解了用C语言进行结构化程序设计的要领。

            为了方便读者参加全国计算机等级考试二级C语言程序设计的考试,本版教材将最新的一次考试的题目分门别类,按照对应的学习内容在第2~8章的最后一节做了讲解。

            本书适合作为高等学校应用型本科学生学习C程序设计课程的教材,也可作为高职高专学生学习C语言程序设计课程的教材以及C语言自学者的教材或参考书。
  •         本教材的第一版和第二版已经印刷了多次,根据读者的需求,本书进行了第三次修订。

            本书延续了前两版的特点,对所讲解的内容做了一些调整,以适合第一次学习程序设计人员的需求。

            第一,在内容的选择上更适合初学者的需求。例如,链表是C语言程序设计的难点,许多学生都反映链表的程序不能理解,因此,本书只讲述单链表的基本概念和操作要点,让学生对链表有一个基础的了解,而比较深入的内容留到“数据结构”这门课程;又如,位运算是C语言程序设计的另一个难点,但是如果学过“汇编语言”,那么这部分内容是很容易掌握的;再如,用文本方式显示数据的目的只是为了给调试程序带来方便,花大量的精力学习如何显示格式是没有必要的。

            第二,强调好的程序设计思想,不能拘泥于小的程序设计技巧,而破坏了整个程序的清晰度。例如,本书会告诉学生避免使用像“i+++++i”这样的表达式,而不会花大量的篇幅去分析这个表达式到底等于多少,因为这是毫无意义的。资深程序员建议,使用++运算符的最好方法是只使用单句“i++;”,绝不能将++符号使用在一个复杂的表达式里面。类似地,本书在介绍运算符的优先级和结合性时,也提出使用括号表示运算的先后是最好的方法。

            第三,编写一些比较实用的程序。例如,本书中有一个例子随着学习内容的深入,不断地被扩充功能,在选择结构程序设计中只有几行语句,而到文件处理时,这个例子已经被扩充到了100行以上。这些程序几乎用到了我们学过的所有基本数据类型和构造数据类型,编者希望读者通过对这些程序的跟踪分析,提高程序设计的能力。

            第四,抛弃那些建立好的与程序设计思想关系不大的内容,选择了更具特色和实用性的程序作为实例。例如,奥运奖牌榜、按个人所得税纳税方式计算纳税额等。

            第五,沿用了第二版中好的写作思想。在提出问题的同时给出示例程序,在示例程序中尽量将主要的知识点演示出来,使读者对解决同类问题的程序设计思想有比较全面的认识。在示例程序之后,才是对具体问题的讲解和讨论。

            第六,对前两版的写作内容进行了整合。在前两版的教材中,按照惯例将C语言的基础知识分为两章讲解,但是在实际应用中发现,如果开始学习的简单知识偏多,学生会感觉有些无聊,因为讲解这些知识的案例几乎没有实用价值,主要是在讨论C语言的语法,而不是解决问题的程序设计思想。因此,在本版教材中将必需的基础知识安排在第2章讲解,而将其他的基础知识与后续内容相结合,力争实例更合理。这是一次尝试,希望得到大家的认可,也希望大家提出宝贵意见。

            第七,在第2~8章增加了“典型错误及典型例题”。典型错误汇集了作者在教学过程中发现的学生们最容易犯的错误,并讲解了正确的方法,典型例题则是取自最近的一次全国计算机等级考试二级C语言程序设计的试卷,通过分析考点给出正确答案,希望为读者参加该考试奠定良好的基础。

            本书能够多次再版,要感谢所有使用本书作为教材和学习参考书的教师和读者,同时再次殷切希望您对本书的内容和编写方法提出宝贵的意见和建议。

            由于编者水平有限,疏漏之处在所难免,请广大读者批评指正。

            编 者 

            2010年9月

  • 第1章  C语言概述 1
    1.1  程序与程序设计语言 1
    1.1.1  程序 1
    1.1.2  程序设计语言 2
    1.2  C语言发展概述和主要特点 3
    1.2.1  C语言的发展历史 3
    1.2.2  C语言的主要特点 4
    1.3  C语言的基本结构 5
    1.3.1  第一个程序 5
    1.3.2  第二个程序 6
    1.3.3  printf()函数使用初步 6
    1.3.4  第三个程序 7
    1.4  程序的调试 7
    1.4.1  调试步骤 7
    1.4.2  在Visual C++ 6.0 调试环境
    下调试第一个程序 8
    本章小结 11
    习题 11
    第2章  C语言的基本知识 13
    2.1  字符集和标识符 13
    2.1.1  字符集 13
    2.1.2  标识符 14
    2.2  变量与常量 15
    2.2.1  变量 15
    2.2.2  常量 17
    2.3  C语言的数据类型 18
    2.3.1  为什么要讨论数据类型 18
    2.3.2  C语言有哪些数据类型 20
    2.3.3  基本数据类型 20
    2.4  整型数据 20
    2.4.1  整型数据在内存中的
    存储方式 21
    2.4.2  整型变量 22
    2.4.3  整型常量 22
    2.4.4  用printf()显示整型数据 23
    2.4.5  用scanf()输入整型数据 24
    2.5  浮点数 26
    2.5.1  浮点数据在内存中的
    存储方式 26
    2.5.2  浮点变量 26
    2.5.3  浮点常量 27
    2.5.4  用printf()显示浮点数据 27
    2.5.5  用scanf()输入浮点数据 28
    2.6  字符型数据 28
    2.6.1  字符数据在内存中的
    存储方式 29
    2.6.2  字符变量与字符常量 29
    2.6.3  用printf()显示字符 30
    2.6.4  用scanf()输入字符 31
    2.6.5  用getchar()输入字符和
    用putchar()输出字符 31
    2.6.6  字符串常量 33
    2.7  不同数据类型数据间的混合运算 33
    2.7.1  自动转换 33
    2.7.2  强制转换 34
    2.7.3  赋值表达式的类型转换 34
    2.8  典型错误及典型例题 36
    本章小结 39
    习题 39
    第3章  顺序和选择结构程序设计 41
    3.1  结构化程序设计 41
    3.1.1  结构化程序设计思想的
    产生 41
    3.1.2  结构化程序设计的三种
    基本结构 42
    3.2  语句与分程序 45
    3.3  顺序结构程序设计 46
    3.4  算术运算符与赋值运算符 48
    3.4.1  算术运算符的种类及运算 48
    3.4.2  算术表达式及算术
    运算符的优先级 49
    3.4.3  算术运算符的结合性 49
    3.4.4  普通赋值运算符 50
    3.4.5  复合赋值运算符 50
    3.5  选择结构程序设计 51
    3.5.1  问题提出与程序示例 51
    3.5.2  if形式 52
    3.5.3  if…else 形式 55
    3.5.4  else if形式 57
    3.5.5  嵌套的if语句 60
    3.6  关系运算符与逻辑运算符 62
    3.6.1  关系运算符 63
    3.6.2  逻辑运算符 63
    3.7  自增/自减运算符 64
    3.8  求字节数运算符 65
    3.9  switch语句 67
    3.10  条件运算符 71
    3.11  程序举例 72
    3.12  典型错误及典型例题 75
    本章小结 81
    习题 81
    第4章  循环结构程序设计 83
    4.1  问题提出与程序示例 83
    4.2  while语句 85
    4.2.1  while 语句的语法和
    流程图 85
    4.2.2  使用while 语句需要
    注意的问题 87
    4.3  do…while语句 89
    4.3.1  do…while语句的语法和
    流程图 89
    4.3.2  使用do…while语句解决
    问题 89
    4.3.3  使用do…while 语句需要
    注意的问题 91
    4.4  for语句 92
    4.4.1  for语句的语法和流程图 92
    4.4.2  使用for语句解决问题 93
    4.4.3  使用for语句需要注意的
    问题 94
    4.5  多重循环 95
    4.6  break语句在循环语句中的用法 97
    4.7  continue语句 99
    4.7.1  continue语句的用法 99
    4.7.2  break语句与continue语句
    的区别 100
    4.8  程序举例 100
    4.9  典型错误及典型例题 107
    本章小结 110
    习题 110
    第5章  函数 112
    5.1  问题提出与程序示例 112
    5.2  函数基础 113
    5.3  函数的定义 114
    5.3.1  函数的定义形式 114
    5.3.2  函数的返回值 116
    5.4  函数调用 117
    5.4.1  函数的调用方式 117
    5.4.2  嵌套调用 118
    5.5  函数说明 120
    5.6  参数传递 121
    5.6.1  形参和实参 121
    5.6.2  形参的数据类型 122
    5.7  递归调用 124
    5.8  变量的存储类别 128
    5.8.1  自动变量与外部变量 129
    5.8.2  静态变量 133
    5.8.3  寄存器变量 135
    5.9  典型错误及典型例题 135
    本章小结 139
    习题 140
    第6章  数组 141
    6.1  问题提出与程序示例 141
    6.2  一维数组 143
    6.2.1  一维数组的定义 143
    6.2.2  一维数组的引用 144
    6.2.3  一维数组的初始化 145
    6.2.4  程序举例 146
    6.3  二维数组 150
    6.3.1  二维数组的定义 150
    6.3.2  二维数组的引用 151
    6.3.3  二维数组的初始化 152
    6.3.4  程序举例 153
    6.4  数组作为函数的参数 154
    6.5  字符串与字符串函数 157
    6.5.1  字符数组 157
    6.5.2  字符串变量 158
    6.5.3  字符串变量的输入与输出 159
    6.5.4  字符串函数 161
    6.5.5  程序举例 165
    6.6  典型错误及典型例题 172
    本章小结 177
    习题 177
    第7章  指针 180
    7.1  指针类型与指针运算符 180
    7.1.1  指针数据类型 181
    7.1.2  指针运算符&和*的使用 182
    7.2  空间的动态分配与指针运算 183
    7.2.1  问题提出和程序示例 183
    7.2.2  空指针 184
    7.2.3  存储器申请 184
    7.2.4  存储器释放 185
    7.2.5  指针值的算术运算 185
    7.3  指针与函数 190
    7.3.1  形参的数据类型是指针
    类型 190
    7.3.2  返回指针值的函数 192
    7.3.3  指向函数的指针 194
    7.4  指针与一维数组 197
    7.4.1  问题提出与程序示例 197
    7.4.2  数组名及指针作为函数
    参数 200
    7.4.3  指针与字符串 202
    7.5  二级指针 204
    7.6  指针数组 206
    7.6.1  问题提出与程序示例 206
    7.6.2  指针数组的定义和使用 207
    7.7  指针与二维数组 209
    7.7.1  用指针方法操作二维
    数组 209
    7.7.2  动态的二维数组 210
    7.7.3  用指向数组的指针操作
    二维数组 212
    7.8  命令行参数 214
    7.9  典型错误及典型例题 219
    本章小结 224
    习题 225
    第8章  结构体等构造数据类型 227
    8.1  结构体 227
    8.1.1  问题提出与程序示例 227
    8.1.2  结构体的说明和结构体
    变量的定义 228
    8.1.3  结构体成员的引用 229
    8.1.4  结构体的初始化 230
    8.2  结构体数组 231
    8.3  结构体与指针 232
    8.3.1  指向结构体的指针 232
    8.3.2  结构体中的成员包含
    指针 235
    8.3.3  用结构体类型指针
    建立链表 236
    8.4  结构体与函数 241
    8.4.1  结构体数据作为函数的
    参数 241
    8.4.2  返回指向结构体的指针的
    函数 242
    8.5  联合体 243
    8.5.1  问题提出与程序示例 243
    8.5.2  联合体的说明和联合体
    变量的定义 245
    8.5.3  联合体变量成员的引用 246
    8.5.4  指向联合体变量的指针 246
    8.5.5  联合体变量与函数 247
    8.6  枚举 249
    8.6.1  枚举的说明和枚举变量的
    定义 249
    8.6.2  枚举变量的使用 250
    8.7  类型定义 251
    8.8  程序举例 252
    8.9  典型错误及典型例题 255
    本章小结 261
    习题 261
    第9章  文件 264
    9.1  问题提出与程序示例 264
    9.2  文件操作的基本方法和
    相关概念 265
    9.2.1  数据文件 265
    9.2.2  文件类型指针 265
    9.2.3  文件的打开 266
    9.2.4  文件的关闭 268
    9.2.5  文件操作顺序 269
    9.2.6  C语言的设备文件 270
    9.3  文件的读/写操作 270
    9.3.1  fputc()函数与fgetc()函数 270
    9.3.2  fprintf()函数与fscanf()
    函数 274
    9.3.3  fread()函数与fwrite()函数 277
    9.3.4  fgets()函数和fputs()函数 280
    9.4  文件的定位 281
    9.4.1  文件的顺序存取和随机
    存取 281
    9.4.2  rewind()函数 281
    9.4.3  fseek()函数 282
    9.5  程序举例 283
    本章小结 288
    习题 288
    附录A  ASCII码与字符对照表 291
    附录B  运算符的优先级和结合性 293
    附录C  printf()函数的转换说明模式 295
    附录D  预处理命令的使用 297
    参考文献 301