热门关键字:  听力密码  听力密码  新概念美语  单词密码  巧用听写练听力
图书信息

C程序设计(慕课版)

中国水利水电出版社
    【作 者】刘卫国 【I S B N 】978-7-5226-1923-1 【责任编辑】魏渊源 【适用读者群】本专通用 【出版时间】2023-12-22 【开 本】16开 【装帧信息】平装(光膜) 【版 次】第1版第1次印刷 【页 数】296 【千字数】473 【印 张】18.5 【定 价】54 【丛 书】普通高等教育“十四五”规划教材 【备注信息】
图书详情

    本书以C语言作为实现工具,介绍程序设计的基础知识与基本方法。本书的主要内容有程序设计概述、程序的数据描述、顺序结构、选择结构、循环结构、函数、数组、指针、构造数据类型、文件操作等。

    本书切合培养程序设计能力的教学要求,突出C语言的重要概念和本质特点。本书以实际问题的求解过程为向导,突出从问题到算法,再到程序的一种思维过程,强调计算机求解问题的思路引导与程序设计思维方式的训练,重点放在程序设计的思想与方法上。本书教学资源丰富,包括配套的教学参考书、大规模在线开放课程(Massive Open Online Course,MOOC)、重点内容的微视频讲解以及其他教学资源。

    本书既可作为高等学校程序设计课程的教材,也可作为参加各类计算机等级考试的读者以及社会各类计算机应用人员的参考用书。

    ● 结合大量实例,介绍计算机问题求解思路

    突出从问题到算法再到程序的一种思维过程。

    ● 重点关注重要概念,不过分死抠语言细节

    引导读者在程序设计实践中掌握语法规则。

    ● 根据初学者认知,梳理知识点和常见错误

    帮助读者总结归纳课程内容,达到巩固提高的目的。

    ● 配套丰富的教学资源,方便读者课后自学

    慕课、微课、教学大纲、教学课件、习题答案、源程序等。

    党的二十大报告指出:“教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑。”教育是基础,科技是关键,人才是根本。在云计算、大数据、人工智能、物联网、移动计算等新一代信息技术背景下,程序设计既是信息化时代各种应用的技术基础,也是高素质人才培养的重要内容,其目的是介绍程序设计的基础知识,使学生掌握高级语言程序设计的基本思想、方法和技术,理解利用计算机解决实际问题的基本过程和思维规律,从而更好地培养学生的创新能力,为将来应用计算机进行科学研究等奠定坚实的基础。

    计算思维能力培养是计算机教育的重要任务,而程序设计最能够体现问题求解方法,是理解计算机工作过程的有效途径,也是计算思维能力培养的重要载体。因此,程序设计课程的重要性不仅体现在一般意义上的程序设计能力的培养,而且体现在引导学生实现问题求解的思维方式的转换,即学生计算思维能力的培养。当然,要实现计算思维能力的培养不是一件容易的事,这也是程序设计教学改革的重要切入点。本书正是按照这种改革理念,以实际问题的求解过程为向导,介绍程序设计的基础知识与基本方法,本书内容强调计算机求解问题的思路引导与程序设计思维方式的训练,重点放在程序设计的思想与方法上。

    C语言是目前流行的程序设计语言之一,具有程序简洁、数据类型丰富、表达能力强、使用灵活、实用高效等特点,在当今软件开发领域有着广泛的应用,也是高等学校常用的程序设计教学语言之一。诚然,当下C语言程序设计的书不少。经过分析发现,相关教材组织模式大致有两种,一种是按照语言的语法体系组织教材,先讲语法知识,再举例说明这些语法的应用,这样做的好处是语言本身的语法体系完整,便于初学者学习掌握。这实际上也是很重要的基本功。但人们担心,专注于语法,冲淡了程序设计能力的培养,于是就有另外一种教材组织模式,即按问题组织教材内容,先提出问题,再寻找解决办法,引出语法规则,这样做的好处是将学习时的注意力放在解决问题的方法上,但显然程序语言的系统性没有了,初学者学习起来有困难。经过多年教学改革实践,我们认为,突出程序设计能力培养是十分必要的,这是计算思维能力培养的必然要求,但给学生完整的语言体系也是必要的。因此,如何处理好语法体系和求解问题方法的矛盾,是教材内容组织的关键问题。我们提出,在保持完整语法体系的前提下,给学生一个完整的解决问题的思路,这是解决问题的根本途径。为此,本书在编写过程中,力求体现以下四个方面的特点。

    一是强调计算机问题求解的思路引导,突出从问题到算法,再到程序的一种思维过程。不是罗列现成的程序,而是讲清楚程序是怎么来的,怎样才能得到程序。各章的序言部分讲清不同的语言要素在问题求解中的作用,由此引出各章内容。在讲程序实例时,先条理性地列出问题求解的基本步骤,再对基本步骤进行逐步细化后得到完整的算法。有些例子更多的是从教学的角度设计的,这是应用的基础和前提,有些例子则具有很强的实际应用背景,可以更好地培养读者的应用开发能力。书中穿插介绍了递推法、迭代法、穷举法、试探法、递归法、分治法等算法设计策略,有利于读者掌握有关程序设计方法。

    二是恰当取舍,突出C语言的本质特点和教学要求。本书用通俗易懂的语言讲清C语言的重要概念,不求面面俱到。本书也不过分死抠语言细节,引导读者在程序设计实践中去掌握语法规则。

    三是组织编排遵循循序渐进原则。本书前6章体现了基本程序设计能力的训练,第1章介绍程序设计的基础知识,建立起对C语言的初步认识;第2章介绍程序的数据描述,在这一章中并未罗列全部表达式,而将相关表达式分散到各章去介绍,一方面让读者尽早接触到程序,另一方面也避免了因语言细节过多而导致单调无味;第3~5章分别介绍程序的3种基本结构,体现了最基本的程序设计方法;第6章是函数,介绍模块化程序设计的基本方法。前6章只涉及C语言的基本数据类型,重点放在程序的3种基本结构的实现方法和程序设计能力培养上。第7~9章是数组、指针和构造数据类型,涉及更复杂数据的表示方法。第10章是文件操作,这是程序设计语言的经典内容。这种内容编排符合初学者的认知特点,有利于总体上把握内容,帮助读者逐步深入理解和掌握知识。各章小结中总结了本章主要的知识点,帮助读者总结归纳本章内容,达到巩固提高的目的。

    四是配套资源丰富。本书配有教学参考书、慕课(MOOC)、重点内容的微视频讲解以及其他相关教学资源。为了方便教学和读者上机操作练习,作者还编写了《C程序设计实践教程》一书,作为与本书配套使用的教学参考书。本书有配套的MOOC(https://www.icourse163.org/course/CSU-1003517003),方便读者学习。作者团队在中南大学开展基于MOOC的混合式教学实践,取得良好效果。本书还配有微视频讲解,对读者理解重点概念、掌握重要方法、化解学习难点很有帮助。另外,还有与本书配套的教学大纲、教学课件、各章习题答案、例题源程序等教学资源,可从中国水利水电出版社网站下载使用。

    本书由刘卫国担任主编,参与编写的有曹岳辉、吕格莉、罗芳、何小贤、童键、严晖等。许多教师参与了课程建设实践,为本书编写积累了丰富的素材。在本书编写过程中吸取了许多教师、MOOC学员的宝贵意见和建议,在此表示衷心的感谢。

    由于编者水平有限,书中难免存在不足之处,恳请广大读者批评指正。

    编 者

    2023年6月于中南大学

    第1章 程序设计概述 1
    1.1 程序设计与算法 2
    1.1.1 程序与程序设计 2
    1.1.2 算法及其描述 3
    1.2 C语言的发展与特点 8
    1.2.1 C语言的发展历史 8
    1.2.2 C语言的特点 9
    1.3 C语言程序的基本结构 10
    1.3.1 初识C语言程序 10
    1.3.2 C语言程序的结构特点与书写规则 12
    1.4 C语言程序的运行 13
    1.4.1 C语言程序的运行步骤与调试 13
    1.4.2 C语言的集成开发环境 15
    本章小结 16
    习题 16
    第2章 程序的数据描述 18
    2.1 C语言的数据类型 19
    2.2 常量与变量 19
    2.2.1 常量 20
    2.2.2 变量 20
    2.3 基本数据类型 22
    2.3.1 整型数据 22
    2.3.2 实型数据 24
    2.3.3 字符型数据 25
    2.4 常用数学库函数 28
    2.5 基本运算与表达式 29
    2.5.1 C语言运算符 29
    2.5.2 算术运算 30
    2.5.3 逗号运算 32
    2.6 混合运算时数据类型的转换 32
    2.6.1 算术运算的隐式类型转换 32
    2.6.2 显式类型转换 33
    本章小结 34
    习题 35
    第3章 顺序结构 38
    3.1 C语句 39
    3.1.1 简单语句 39
    3.1.2 复合语句 40
    3.1.3 流程控制语句 40
    3.2 赋值运算与赋值语句 41
    3.2.1 赋值运算 41
    3.2.2 赋值语句 42
    3.2.3 赋值时的数据类型转换 43
    3.3 数据输入输出 43
    3.3.1 输入输出的实现方式 43
    3.3.2 printf函数的格式化输出 44
    3.3.3 scanf函数的格式化输入 47
    3.3.4 字符输入输出函数 49
    3.4 顺序结构程序举例 50
    本章小结 54
    习题 55
    第4章 选择结构 58
    4.1 条件的描述 59
    4.1.1 关系运算 59
    4.1.2 逻辑运算 59
    4.1.3 位运算 62
    4.2 if选择结构 63
    4.2.1 单分支if选择结构 63
    4.2.2 双分支if选择结构 64
    4.2.3 多分支if选择结构 67
    4.2.4 if选择结构的嵌套 68
    4.2.5 容易混淆的==和=运算符 71
    4.3 条件运算 71
    4.4 switch多分支选择结构 72
    4.5 选择结构程序举例 74
    本章小结 78
    习题 79
    第5章 循环结构 83
    5.1 while循环结构 84
    5.1.1 while语句的格式 84
    5.1.2 while循环的应用 85
    5.2 do-while循环结构 87
    5.2.1 do-while语句的格式 88
    5.2.2 do-while循环的应用 88
    5.3 for循环结构 90
    5.3.1 for语句的格式 90
    5.3.2 for循环的应用 91
    5.3.3 for语句的各种变形 92
    5.4 与循环有关的控制语句 94
    5.4.1 break语句 95
    5.4.2 continue语句 95
    5.4.3 goto语句 96
    5.5 三种循环语句的比较 96
    5.6 循环的嵌套 98
    5.7 循环结构程序举例 100
    本章小结 105
    习题 107
    第6章 函数 111
    6.1 C语言程序的模块结构 112
    6.2 函数的定义与调用 113
    6.2.1 函数的定义 113
    6.2.2 函数的调用 114
    6.2.3 对被调用函数的声明和函数原型 115
    6.2.4 带参数的宏定义 117
    6.3 函数的参数传递 118
    6.4 函数的嵌套调用与递归调用 120
    6.4.1 函数的嵌套调用 120
    6.4.2 函数的递归调用 122
    6.5 变量的作用域与存储类别 126
    6.5.1 变量的作用域 126
    6.5.2 变量的存储类别 129
    6.6 内部函数和外部函数 133
    6.6.1 内部函数 133
    6.6.2 外部函数 133
    6.7 函数应用举例 134
    本章小结 138
    习题 139
    第7章 数组 143
    7.1 数组的概念 144
    7.2 数组的定义 144
    7.2.1 一维数组 145
    7.2.2 二维数组 146
    7.2.3 数组的存储结构 147
    7.3 数组的赋值与输入输出 147
    7.3.1 数组的赋值 147
    7.3.2 数组的输入输出 148
    7.4 数组的应用 149
    7.4.1 一维数组应用举例 149
    7.4.2 二维数组应用举例 159
    7.5 字符数组与字符串 162
    7.5.1 字符数组的定义和初始化 162
    7.5.2 字符数组的输入输出 165
    7.5.3 字符串处理函数 167
    7.5.4 字符数组应用举例 169
    7.6 数组作为函数的参数 172
    7.6.1 数组元素作函数的参数 172
    7.6.2 数组名作函数的参数 173
    本章小结 177
    习题 179
    第8章 指针 182
    8.1 指针的概念 183
    8.2 指针变量的定义与运算 184
    8.2.1 指针变量的定义 184
    8.2.2 指针变量的运算 185
    8.3 指针与数组 187
    8.3.1 指针与一维数组 187
    8.3.2 指针与二维数组 192
    8.4 指针与字符串 195
    8.5 指针与函数 197
    8.5.1 指针变量作函数参数 197
    8.5.2 指向函数的指针变量 200
    8.5.3 返回指针的函数 203
    8.6 指针数组与指向指针的指针 205
    8.6.1 指针数组 205
    8.6.2 指向指针的指针 206
    8.6.3 main函数的参数 207
    8.7 指针与动态内存管理 208
    8.7.1 动态内存管理函数 209
    8.7.2 动态数组 210
    8.8 指针应用举例 212
    本章小结 215
    习题 217
    第9章 构造数据类型 221
    9.1 结构体类型与结构体变量 222
    9.1.1 结构体类型的定义 222
    9.1.2 结构体变量的定义 223
    9.1.3 结构体变量的使用 225
    9.2 结构体数组 228
    9.2.1 结构体数组的定义与引用 228
    9.2.2 结构体数组的应用 229
    9.3 结构体指针 230
    9.3.1 指向结构体变量的指针 230
    9.3.2 用结构体作函数参数 232
    9.4 链表 235
    9.4.1 链表的概念 235
    9.4.2 链表的基本操作 236
    9.5 共用体 243
    9.5.1 共用体类型及变量定义 243
    9.5.2 共用体变量的使用 245
    9.6 枚举 247
    本章小结 249
    习题 250
    第10章 文件操作 255
    10.1 文件概述 256
    10.1.1 文件的概念 256
    10.1.2 C语言的文件系统 256
    10.1.3 文件类型指针 257
    10.2 文件的打开与关闭 258
    10.2.1 打开文件 258
    10.2.2 关闭文件 259
    10.3 文件的顺序读写操作 260
    10.3.1 按字符读写文件 260
    10.3.2 按字符串读写文件 263
    10.3.3 按格式读写文件 264
    10.3.4 按数据块读写文件 266
    10.4 文件的随机读写操作 268
    10.4.1 文件的定位 268
    10.4.2 二进制随机文件 269
    10.5 文件操作时的出错检测 271
    10.6 文件应用举例 272
    本章小结 277
    习题 277
    附录1 ASCII字符编码表 280
    附录2 C语言运算符的优先级与结合方向 281
    附录3 C语言常用的库函数 283
    参考文献 288





最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册