计算机类教材 > 算法与程序设计

C语言程序设计

书号:9787113284091 套系名称:普通高等院校计算机基础教育“十四五”规划教材

作者:陈强 黄容 赵毅 出版日期:2021-11-01

定价:39.80 页码 / 开本:无 /16

策划编辑:刘丽丽 责任编辑:刘丽丽 李学敏

适用专业:计算机教材 适用层次:本科

最新印刷时间:

资源下载
教学课件 教学素材
习题答案(暂无) 教学案例(暂无)
教学设计 教学视频(暂无)
内容简介 前言 目录 作者介绍 图书特色
  • 本书是一本适合卓越工程师计划、新工科建设的 C 语言程序设计教材,以实用技能为核心、以动手能力为突破点、以程序设计思想的掌握为主线、以编程应用为驱动。通过案例和问题引入内容,由浅入深,旨在训练学生的编程思想,提高学生应用 C 语言的能力,达到提升计算思维能力的目的。
    全书共 11 章,各章都配有大量的例题解析和多种形式、分层次的习题,从多角度检验学生的知识掌握程度:填空题和选择题检验 C 语言语法基础知识的掌握程度;程序题检验学生对程序的理解程度;编程题检验学生动手编程的能力。
    本书适合作为高等院校 C 语言程序设计课程的教学用书,也可以作为计算机等级考试人员以及各种程序设计培训班学员的参考书。
  • 大数据、人工智能推动数字经济的大发展,应用型高校以培养计算思维+专业应用的新工科人才为己任。计算思维能力体现在数据的“符号化”表达与流程“自动化”处理两个方面。大学计算机培养学生符号化数据表达能力,程序设计课程培养学生的自动化处理能力。
    C 语言由于其卓越的优点,在国内外得到了广泛的应用,几乎所有的理工科大学都开设了“C 语言程序设计”这门公共基础课,通过学习这门课程使学生掌握程序设计的基本方法并逐步形成正确的程序设计思想,能够使用 C 语言进行程序设计并具备调试程序的能力,为后继课程及其他程序设计课程的学习和应用打下基础。
    在多年非计算机专业的计算机系列课程教学工作中,我们深切地感到多数学生总停留在“学会 C 语言的基本语法、理论,编写简单的 C 语言程序,通过书面考试”的水平上;并且,虽然目前介绍 C 语言的教材很多,但大多是围绕编程语言本身的体系展开,以讲解语言知识为主,特别是语法知识,辅以一些编程技巧的介绍,不利于培养学生的计算思维能力与工程应用能力。
    上海工程技术大学作为首批“卓越工程师教育培养计划”试点的本科专业单位及新工科建设地方高校的牵头单位之一,要求培养具备大学本科基础知识,并有一定的实践能力与应用能力的高级技术人才,强化工程能力和创新能力。卓越工程师计划旨在培养掌握实际操作技能、能为企业创造更多实际价值的人才。因此,C 语言程序设计课程的教学重点应该是培养学生的实际编程能力,提高计算思维+专业应用的能力。教材也要以程序设计为中心来组织内容,学生必须通过大量的编程训练,在实践中掌握语言知识,培养程序设计的基本能力,并逐步理解和掌握程序设计的思想和方法,提高学生的计算思维能力与信息素养。
    在多年非计算机专业的 C 语言程序设计课程教学工作中,我们深切地感到这门课要不断改革,让学生爱听、爱学,还要充分体现这门课程的重要性和实用性,让学生能够学有所用、学以致用,体会计算思维的方法论与理念,促进自己的专业学习,促进新工科建设。基于此,我们编写了这本《C 语言程序设计》。本书以程序设计思想的掌握为主线,以编程应用为驱动,通过案例和问题引入内容,由浅入深,重点训练学生的编程思想,提高学生应用 C 语言的能力,达到提升计算思维能力的目的。
    本书与同类教材相比,具有以下特点:
    (1)是一本适合卓越工程师计划、新工科建设的 C 语言程序设计教材
    
    一般 C 语言程序设计课程课时为 64 学时或者更多,但现在教学改革,课时基本在减少,48学时的计划安排也比较多。本书为重应用、少学时的灵活教材,需要分清重点、难点。我们将顺序、选择、循环三种结构,一维数组、函数、指针作为重点内容;简单介绍用户自定义类型、宏定义、文件和语法;并且强调实践编程能力,重应用、轻语法。学生可参考其他参考书,或者利用本书配
    
    套 MOOC 资源。
    (2)以实用技能为核心
    工程应用型大学重点要培养学生的实际工程技能和创新能力。因此,本书不是一本介绍语法的书,而是帮助学生通过大量实例了解怎么设计和运用算法,怎样用语言工具和编程环境去实现编程,从而处理实际问题。在教材编写上,我们不求语法面面俱到,而是结合工程需求,以实用技能为核心,重点讲解在实际编程中经常使用的一些核心技术,对于其他语法内容则少讲或不讲,需要的可以参考附录或者其他参考书。
    与传统的教材编排方式不同,在基本遵循 C 语言教学体系的情况下,本书将所有教学内容用例题组织。即根据要介绍的内容精心编写相应的例题,将大量正确、规范的程序介绍给学生,在讲解例题的过程中,使学生学习语法、了解概念、掌握算法。
    (3)以动手能力为突破点
    按传统教材的教学方式,很多学生 C 语言语法学得很好,但却不会编程。在书的结构设计上,强调实践和动手能力,使学生从第 1 堂课起就练习编程,并贯穿始终:从模仿程序到改写程序,最后自己编写程序。在教材编写和教学过程中,都要求学生“动手、动手、再动手”,要让学生敢于编码、乐于编码、大量编码,不要把学习重点放在语法规则上,而是要提高动手能力,提高实际编程经验。
    (4)多形式、分层次的练习题目
    为了鼓励学生多思考、多练习、多动手,提高学生的学习效果,本书各章都配有大量的例题解析和多形式、分层次的习题。为了满足不同层次学生的学习需要,编程题也层次多样:有些题目难度较低,学生根据本章节讲解的知识点就可以轻松完成;有些题目难度加大,要求学生认真思考、调试才能完成;还有些题目难度更大,一般为综合运用题,要求学生综合所学的知识,从多个知识点和角度考虑,是对于学有余力的学生提出的思考题,能够充分提高学生的编程能力,锻炼学生的工程能力和创新能力,鼓励学生利用 C 语言知识解决专业的具体问题。
    全书共 11 章。第 1 章 C 语言概述:介绍 C 语言的特点和实现过程;第 2 章用 C 语言编写简单程序:从实例出发,简单介绍顺序、选择和循环 3 种控制结构的初步使用,以及在实例程序中用到的语言知识;第 3 章选择结构程序设计:讲解选择结构程序设计的思路和方法;第 4 章循环结构程序设计:讲解循环结构程序设计的思路和方法;第 5 章数据类型和表达式:介绍数据类型等一些语法知识;在初步学习了三种结构程序设计后的流程与算法设计;第 6 章数组:讲解数组的用法;第 7 章函数:讲解函数定义与调用;第 8 章指针及其应用:讲解指针的用法;第 9 章结构体、共用体和枚举类型:讲解自定义的数据类型及其用法;第 10 章宏定义与文件包含:讲解宏定义、文件包含与条件编译的用法;第 11 章文件:讲解文件的操作。
    本书由陈强、黄容、赵毅任主编并负责统稿。教研室多位同事对本书的初稿进行了审阅,并提出了许多宝贵的修改意见。此外,本书的编写还得到了各级领导的关心和支持,在此一并表示感谢!
    由于编者水平有限,书中难免有不妥之处,我们衷心希望得到广大读者的批评指正。
    编 者
    2021年5月
    
  • 第1章C语言概述·1
    1.1一个C语言程序·1
    1.2计算机程序设计与程序设计语言·2
    1.2.1程序与指令·2
    1.2.2程序设计语言·3
    1.3C语言的发展与应用现状·4
    1.4C语言的特点5
    1.4.1C语言的优势5
    1.4.2如何学习C语言程序设计·6
    1.4.3C语言的语法特点6
    1.4.4C语言的结构特点8
    1.4.5C语言的编译与编程环境·9
    习题·9
    第2章用C语言编写简单程序11
    2.1在屏幕上显示自定义文字“HelloWorld!”11
    2.1.1程序解析·11
    2.1.2程序的三种结构12
    2.2摄氏温度与华氏温度换算15
    2.2.1程序解析15
    2.2.2常量、变量和数据类型·15
    2.2.3赋值运算和算术运算16
    2.2.4格式化输出函数printf()·17
    2.3判断一元二次方程是否有实数解·18
    2.3.1程序解析18
    2.3.2关系运算18
    2.3.3if-else二分支语句19
    2.3.4格式化输入函数scanf()·19
    2.4计算自由落体反弹高度和总距离·20
    2.4.1指定次数的循环程序设计20
    2.4.2for语句·21
    2.4.3计算自由落体反弹高度和总距离·22
    2.4.4程序解析22
    习题·23
    第3章选择结构程序设计·25
    3.1从键盘输入一个控制命令字符,判断输入是否正确25
    3.1.1程序解析25
    3.1.2字符类型26
    3.1.3逻辑运算符和逻辑表达式26
    3.1.4字符型数据的输入和输出28
    3.2选择结构程序设计—求解一元二次方程·29
    3.2.1程序解析29
    3.2.2if语句的三种形式30
    3.2.3if语句的嵌套34
    3.3模拟工程控制,根据指令进行相应的操作34
    3.3.1程序解析34
    3.3.2switch语句·35
    习题·37
    第4章循环结构程序设计·41
    4.1输入一批学生的成绩,统计平均分41
    4.1.1程序解析41
    4.1.2while语句42
    4.1.3数列问题求解·43
    4.2用牛顿迭代法求方程的根44
    4.2.1程序解析44
    4.2.2do-while语句45
    4.2.3循环语句的选择46
    4.3打印九九乘法表46
    4.3.1程序解析46
    4.3.2循环的嵌套·47
    4.4求素数48
    4.4.1程序解析48
    4.4.2用break语句和continue语句改变循环状态49
    4.5复杂循环结构程序设计·52
    4.5.1傅里叶级数逼近52
    4.5.2数据处理与回归分析52
    习题·54
    第5章数据类型和表达式·58
    5.1C语言的基本数据类型58
    5.2常量和变量59
    5.2.1常量59
    5.2.2变量61
    5.3运算符和表达式62
    5.3.1算术运算符和算术表达式63
    5.3.2强制类型转换运算符64
    5.3.3自增、自减运算符·64
    5.3.4赋值运算符和赋值表达式66
    5.3.5关系运算符和表达式67
    5.3.6逻辑运算符和表达式68
    5.3.7条件表达式·69
    5.3.8逗号表达式·70
    5.4综合程序设计案例·71
    5.5算法与流程设计72
    5.5.1算法的基本概念72
    5.5.2算法的定义·74
    5.5.3算法的三种结构77
    5.5.4描述算法的工具78
    习题·80
    第6章数组·83
    6.1排序问题·83
    6.1.1程序解析83
    6.1.2一维数组的定义和引用·84
    6.1.3一维数组的初始化·85
    6.1.4使用一维数组编程·86
    6.2找出矩阵中最大值所在的位置90
    6.2.1程序解析90
    6.2.2二维数组的定义和引用·91
    6.2.3二维数组的初始化·93
    6.3数据通信过程中的信息加密问题·95
    6.3.1程序解析95
    6.3.2一维字符数组·95
    6.3.3字符串处理·97
    习题103
    第7章函数105
    7.1用函数求几何图形的面积·105
    7.1.1程序解析·105
    7.1.2函数的定义106
    7.1.3函数的声明107
    7.1.4函数的调用109
    7.2用函数求Fibonacci数列110
    7.2.1程序解析·110
    7.2.2形式参数与实际参数·111
    7.2.3函数的返回值112
    7.2.4值传递与地址传递113
    7.3变量与函数·119
    7.3.1局部变量和全局变量·119
    7.3.2变量的存储类别·122
    7.3.3函数的调用124
    习题129
    第8章指针及其应用132
    8.1指针和指针变量的概念132
    8.1.1指针概念的引入·132
    8.1.2定义指针变量135
    8.1.3指针与变量的关系136
    8.1.4为指针变量赋值及指针变量的初始化136
    8.1.5利用指针变量进行数据处理137
    8.2指针和一维数组·139
    8.3利用被调函数对主调函数中的数组元素进行冒泡排序141
    8.3.1指针变量作为函数参数141
    8.3.2数组名作为函数参数·143
    8.4字符串和字符指针145
    8.4.1字符串常量的值·145
    8.4.2使用字符指针处理字符串的程序举例146
    8.5存储空间的动态分配与释放148
    8.5.1动态分配存储空间的概念·148
    8.5.2用于动态分配存储单元的函数·148
    习题150
    第9章结构体、共用体和枚举类型153
    9.1按价格排序输出一组待售汽车的信息153
    9.1.1程序解析·153
    9.1.2结构体类型的概念和定义·154
    9.1.3结构体类型变量的定义155
    9.1.4结构体类型变量的使用158
    9.1.5结构体变量作为函数参数·160
    9.2编写一个书籍管理程序,显示所有书籍信息162
    9.2.1程序解析·162
    9.2.2结构体数组163
    9.2.3结构体数组的应用实例164
    9.3共用体·166
    9.3.1程序解析·166
    9.3.2共用体类型的定义167
    9.3.3共用体变量的定义167
    9.3.4共用体变量的引用168
    9.4枚举类型171
    9.4.1枚举类型的定义·172
    9.4.2枚举变量的定义·173
    9.4.3枚举类型的应用·174
    9.5typedef的使用方法176
    9.5.1利用typedef定义类型名176
    9.5.2typedef的典型用法177
    习题177
    第10章宏定义与文件包含180
    10.1宏定义·180
    10.1.1程序解析180
    10.1.2无参宏定义·181
    10.1.3带参宏定义·183
    10.2文件包含186
    10.3条件编译187
    习题190
    第11章文件·193
    11.1将“欢迎卓越工程师”写入文件·193
    11.1.1程序解析193
    11.1.2C文件概述194
    11.1.3文件指针195
    11.1.4文件的打开与关闭195
    11.2文件的读写—读取工程文件197
    11.2.1程序解析197
    11.2.2字符读/写函数fgetc()和fputc()198
    11.2.3字符串读/写函数fgets()和fputs()200
    11.2.4数据块读/写函数fread()和fwrite()202
    11.2.5格式化读/写函数fscanf()和fprintf()·203
    11.3文件的随机读/写·204
    11.3.1改变文件位置指针函数fseek()204
    11.3.2位置指针重返文件头函数rewind()·205
    11.3.3位置指针当前值函数ftell()·206
    11.3.4文件的随机读/写206
    11.4文件检测函数207
    11.4.1文件结束检测函数feof()207
    11.4.2读/写文件出错检测函数ferror()·208
    11.4.3文件出错标志和文件结束标志置0函数clearerr()208
    习题208
    附录AASCII编码表211
    附录BC语言常用的库函数·212
    附录CC语言运算符优先级表217
    附录D常见的转义字符218
    
  • 陈强,上海工程技术大学教授,在国内外核心刊物发表研究论文50余篇。作为主研人员或课题负责人先后承担过科研项目50余项。获得多项省部级科技进步奖与科技成果。研究方向为传感与电子信息、软件工程、地球探测与信息技术。
    
    黄容,上海工程技术大学,从事大学计算机基础课程以及软件课程培训方面的教学,参与或主持过多个教学研究、科学研究课题,曾参与编写出版了《Visual Basic程序设计》、《跨平台程序设计语言-Java》两本教材。
    
    赵毅,上海工程技术大学教师,主讲计算机基础、程序设计等课程,经验丰富,参与编写教材多部。
    
    
  • (1)重应用、少学时、轻语法,强调实践编程能力,重应用。
    (2)以实用技能为核心,帮助读者通过大量实例了解怎么设计和运用算法,怎样用语言工具和编程环境去实现编程,从而处理实际问题。
    (3)以动手能力为突破点,学生从第1堂课起就练习编程,并贯穿始终:从模仿程序,到改写程序,最后自己编写程序。在整个教材编写和教学过程中,都要求学生“动手、动手、再动手”,要让学生敢于编码、乐于编码、大量编码,不要把学习重点放在语法规则上,而是要提高动手能力,提高实际的编程经验。
    (4)各章节都配有大量的例题解析和多种形式、分层次的习题。多种形式的习题从多角度检验知识的掌握程度:填空题和选择题检验C语言语法基础知识的掌握程度;读程序题和改错题检验对程序的理解程度;编程题检验学生动手编程的能力。