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

C语言程序设计基础

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

作者:李骞 周文刚 赵宇 出版日期:2023-02-01

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

策划编辑:张彤 责任编辑:张彤

适用专业:计算机基础教育 适用层次:高等教育

最新印刷时间:

资源下载
教学课件 教学素材
习题答案(暂无) 教学案例(暂无)
教学设计(暂无) 教学视频(暂无)
内容简介 前言 目录 作者介绍 图书特色
  •  本书从培养学生计算思维的角度出发,围绕问题的解决来讲解 C 语言和程序设计。全书共 10 章,在简单介绍程序设计基础知识和 C 语言的基础上,系统介绍了用 C 语言编写简单程序,运算符、表达式、语句,程序结构,函数,指针,数组,结构体,文件操作和位运算等内容。
           本书注重介绍基本原理,内容丰富、知识点描述翔实,适合作为高等学校计算机类各专业 C语言程序设计课程和非计算机专业计算机程序设计基础课程的教材,也可作为从事计算机相关工作或参加计算机等级考试的人员的参考用书。
  • C语言是应用广泛、最具影响的程序设计语言之一。它概念简洁,数据类型丰富,运算符多,功能丰富,表达能力强,使用灵活,既有高级语言的优点,又具有低级语言的功能(能对硬件直接进行操作)。因此,它既适合编写应用程序,又适合编写系统程序。C语言生成的目标程序执行效率高,具有良好的可移植性,是一种理想的结构化程序设计语言,多年来深受广大用户的喜爱。
    
    C语言是当下最简单的编程入门语言,没有之一。但很多学生学习它却直呼其难,编者经过多年的教学反思发现,一本通俗易懂、能帮助初学者掌握编程方法,使用到C的各种功能的教材,首先要注重讲“道理”,对很多操作要讲清楚为什么做、什么时候做、是怎么做的。如果仅是列出语法规定再辅以几个例子,则不利于初学者形成计算思维,不好理解为什么要做某个操作,什么时候要做这个操作。比如,不讲清楚变量的实质,学生就难以理解为什么变量须先定义而后才能使用,也就不好理解变量的地址、变量的值、变量的名,进而对数组、结构体、特别是指针认识不清。
    
    本书作为程序设计的入门教材,重点放在了程序设计的基本概念和计算思维方法上。编者结合多年的教学经验和当前C程序的集成开发环境的发展,对C语言的知识点进行了整理和修改,提出了不同的观点和看法。比如,删除了else if多分支结构,将其归为if嵌套;数组的数组长度既可以是常量,也可以是变量。本书重在讲“道理”,每个知识点都深入浅出地介绍了基本原理,并通过大量案例讲解了知识点在程序设计中的应用和用计算机解决问题的方法。本书在内容安排上,知识点完整,重难点突出,充分体现了结构化程序设计和算法设计思想,既满足了初学者的需求,又为后继学习其他编程语言打下坚实的基础。每章都有小结和习题,以便加强读者对所学关键知识点的理解、掌握和应用。
    
    全书共10章,组织方式为以计算思维培养为主线,通过翔实的知识点和案例程序分析,力争把程序设计的学习从语法知识的学习提高到解决问题的能力培养上。各章内容如下:第1章介绍计算机的工作流程、程序的相关基础知识、C语言的编程思想、结构特点、开发环境等。第2章介绍C语言的字符集和标识符、基本数据类型、常量和变量的基本概念、数据的输入/输出函数等。第3章介绍C语言的算术、关系、逻辑、赋值、条件、逗号等运算符和表达式,不同类型变量之间的类型转换,C语言的语句等。第4章介绍结构化程序设计的顺序、选择、循环三大结构的一般形式和执行流程,if语句嵌套,循环嵌套和常用算法,实现流程转向的break、continue和goto语句。第5章围绕模块化编程思想,介绍函数分类、定义、调用等相关概念,变量的作用域和存储类型,内部函数和外部函数等。第6章介绍指针的概念和相关操作,结合实例对指针与变量、指针与函数之间的关系进行详细分析。第7章介绍一维数组和二维数组的定义及使用、数组作为函数参数的方法、字符数组与字符串、数组的综合应用举例。第8章介绍结构体类型、结构体变量的定义和使用、结构体数组、结构体指针变量、结构体与函数的结合用法、动态分配存储空间、顺序存储和链式存储的概念和操作方法。第9章介绍文件操作的概念和分类、缓冲文件系统、文件类型指针和文件打开、关闭、读写、定位等文件操作方法。第10章介绍位运算符的相关概念和取反、左移、右移、按位“与”、按位“或”、按位“异或”等位运算符的运算功能。
    
    本书课时安排见“课时分配表”。
    
    全书由李骞、周文刚、赵宇任主编,叶海琴、秦东霞、刘辛、谭永杰任副主编,李靖、郭慧玲、张苏参与编写。其中,第1章由周文刚、李骞编写,第2章由郭慧玲编写,第3章和第9章由叶海琴编写,第4章由李靖编写,第5章由刘辛编写,第6章由张苏编写,第7章由谭永杰编写,第8章由秦东霞编写,第10章由赵宇编写。全书由周文刚、赵宇策划,李骞负责统稿和定稿。
    
    本书得到2021年度河南省高等教育教学改革研究与实践项目(2021SJGLX519),以及周口师范学院2022年自编教材项目(〔2022〕46号项目04)的支持,配套资源丰富,电子教案、案例素材、实训素材等可以到中国铁道出版社有限公司教育资源数字化平台免费下载,网址为http://www.tdpress.com/51eds/。
    
    在本书的编写过程中,参阅了大量的网络资源和优秀图书资料,得到了周口师范学院教务处和中国铁道出版社有限公司的大力支持,在此一并致以衷心的感谢和深深的敬意。
    
    由于计算机科学技术发展迅速,程序设计的教学内容和方法日新月异,且编者水平有限,书中难免有不足之处,敬请读者批评指正,以便再版时修改完善。
    
                                                                编 者
    
                                                           2022年11月
  • 第1章 程序设计基础与C语言简介  1 
    1.1 有关程序设计的基础知识.1 
    1.1.1 计算机的硬件结构和工作流程 2 
    1.1.2 程序和程序设计基本概念 5 
    1.1.3 程序设计语言的发展. 6 
    1.2 C语言的发展史及其特点8 
    1.2.1 C语言的发展史  8 
    1.2.2 C语言的特点 . 9 
    1.3 C程序的集成开发环境介绍 10 
    1.3.1 Dev C++环境下开发C程序 12 
    1.3.2 Visual C++环境下开发C程序  15 
    1.3.3 UNIX/Linux系统中使用 GCC编译器开发C程序  21 
    1.4 用C语言编写的简单程序21 
    1.4.1 C语言的编程思想  21 
    1.4.2 C程序的基本结构  24 
    1.4.3 C程序书写格式 . 26 
    小 结.27
    习 题.27
    第2章 用C语言编写简单程序 29 
    2.1 算法及其描述方法29 
    2.1.1 算法的概念  30 
    2.1.2 算法的描述方法  32 
    2.1.3 问题求解的计算思维 33 
    2.2 C语言编程使用的字符集34 
    2.2.1 字符集. 35 
    2.2.2 字符在计算机内部的表示 35 
    2.2.3 标识符. 38 
    2.3 数据类型 40 
    2.3.1 数据类型分类 . 41 
    2.3.2 基本数据类型 . 42 
    2.4 数据的表示形式——常量与变量43 
    2.4.1 常量 43 
    2.4.2 变量 49 
    2.4.3 变量使用注意事项  54 
    2.5 人机交互——数据的输入/输出58 
    2.5.1 数据输入/输出的概念 58 
    2.5.2 格式输出函数printf()  59 
    2.5.3 格式输入函数scanf()  66 
    2.5.4 输入/输出单个字符的函数. 72 
    小 结.73
    习 题.73
    第3章 C程序的基本构成——运算符、表达式、语句 .76 
    3.1 C语言的运算符与表达式76 
    3.1.1 算术运算符和算术表达式 80 
    3.1.2 关系运算符和关系表达式 85 
    3.1.3 逻辑运算符和逻辑表达式 87 
    3.1.4 赋值运算符和赋值表达式 90 
    3.1.5 条件运算符和条件表达式 92 
    3.1.6 逗号运算符和逗号表达式 93 
    3.1.7 不同类型数据之间的类型转换. 93 
    3.2 C语言的语句96 
    小 结.99
    习 题.99
    第4章 程序结构 102 
    4.1 顺序结构 102 
    4.2 选择结构 104 
    4.2.1 ifelse语句 105 
    4.2.2 单分支if语句107 
    4.2.3 if语句的嵌套107 
    4.2.4 switch语句113 
    4.3 循环结构 117 
    4.3.1 while语句 .118 
    4.3.2 dowhile语句 121 
    4.3.3 for语句 122 
    4.3.4 流程转向语句 124 
    4.3.5 循环结构的嵌套 127 
    小 结.131 
    习 题.131 
    第5章 函数  137 
    5.1 模块化设计与函数137 
    5.1.1 定义函数138 
    5.1.2 调用函数140 
    5.1.3 函数的参数 .142 
    5.1.4 函数的嵌套调用 145 
    5.1.5 函数的递归调用 146 
    5.1.6 C语言提供的标准函数.148 
    5.2 变量的作用域和生存期.149 
    5.2.1 局部变量149 
    5.2.2 全局变量151 
    5.3 变量的存储属性153 
    5.3.1 自动变量154 
    5.3.2 寄存器变量 .154 
    5.3.3 静态变量155 
    5.3.4 外部变量158 
    5.4 内部函数和外部函数158 
    5.4.1 内部函数158 
    5.4.2 外部函数159 
    5.5 传给main()函数的参数 .159 
    5.6 函数综合应用举例161 
    小 结.163 
    习 题.163 
    第6章 指针(变量) 166 
    6.1 变量的地址.166 
    6.2 指针(变量)的概念168 
    6.2.1 定义(声明)指针变量168 
    6.2.2 使用指针变量 169 
    6.2.3 为指针变量赋值 170 
    6.3 指针(变量)与函数171 
    6.3.1 指针变量作函数形参.171 
    6.3.2 函数的返回值是地址.174 
    6.3.3 指向函数的指针——借助指针变量调用函数.175 
    小 结.177 
    习 题.177 
    第7章 数组  181 
    7.1 一维数组 181 
    7.1.1 一维数组的定义 181 
    7.1.2 一维数组的使用方法.182 
    7.1.3 一维数组所分配的存储空间.183 
    7.1.4 一维数组的初始化 .184 
    7.1.5 一维数组与指针的配合使用.185 
    7.1.6 使用一维数组的程序举例187 
    7.2 二维数组 190 
    7.2.1 二维数组的定义 190 
    7.2.2 二维数组的使用方法.190 
    7.2.3 二维数组所分配的存储空间.193 
    7.2.4 二维数组的初始化 .194 
    7.2.5 二维数组和指针的配合使用.195 
    7.3 数组作函数的参数200 
    7.3.1 数组作函数形参 201 
    7.3.2 数组作函数实参 204 
    7.3.3 函数的指针形参和函数体中数组的区别 208 
    7.4 字符数组与字符串209 
    7.4.1 使用一维字符数组存储字符串209 
    7.4.2 输入/输出字符串的函数.213 
    7.4.3 二维字符数组 215 
    7.4.4 常用的字符串处理库函数217 
    7.5 数组的综合应用223 
    小 结.226 
    习 题.226 
    第8章 结构体 230 
    8.1 结构体类型与结构体变量.231 
    8.1.1 结构体类型 .231 
    8.1.2 结构体变量 .233 
    8.1.3 结构体数组 .239 
    8.1.4 结构体指针变量 242 
    8.1.5 结构体与函数 245 
    8.2 动态分配存储空间248 
    8.3 顺序存储与链式存储253 
    小 结.267 
    习 题.267 
    第9章 文件操作 270 
    9.1 文件操作相关概念270 
    9.1.1 文件.270 
    9.1.2 文件的种类 .271 
    9.1.3 缓冲文件系统 271 
    9.1.4 文件类型指针 271 
    9.2 C语言的文件操作 .272 
    9.2.1 文件的打开 .272 
    9.2.2 文件的关闭 .274 
    9.2.3 文件的读写操作 274 
    9.2.4 文件定位281 
    9.2.5 文件检测283 
    小 结.285 
    习 题.285 
    第10章 位运算  290 
    10.1 位运算符 290 
    10.2 位运算符的运算功能291 
    小 结.294 
    习 题.294 
    附录A 字符与ASCII码对照表  296 
    附录B C语言中的关键字 . 297 
    附录C 运算符和结合性 298
    附录D C常用的库函数  299
  • 李骞,副教授,现任周口师范学院计算机学院副院长。专业研究方向:软件与理论;主授课程:程序设计基础、数据结构、网络操作系统。系学院计算机科学与技术专业带头人,主持“程序设计基础”省级精品在线开放课程和省级一流课程,主持“网络操作系统”省一流本科课程。近年来主持省级教改项目1项,教育部产教融合项目1项,在国内外学术期刊上发表论文SCI、EI等论文10余篇。
    
    周文刚,教授,现任周口师范学院软件学院院长。专业研究方向:算法设计与分析、数字图像处理;主授课程:算法设计与分析、数据结构等。河南省教学标兵,河南省计算机实验教学示范中心、省精品资源在线开放课程、河南省一流本科专业建设点负责人。近年来主持完成河南省自然科学基金3项,省、部教学研究项目2项,在国内外学术期刊上发表论文SCI、EI论文15篇,授权发明专利1项。获河南省优秀成果二等奖1项,河南省教育系统教学技能竞赛(高校计算机)一等奖。
    
    赵宇,教授,现任周口师范学院网络工程学院院长,专业研究方向:无线传感器网络;主授课程:计算机组成原理,程序设计基础。河南省教学名师,省精品在线开放课程、省级一流课程、河南省一流本科专业建设点负责人,河南省计算机教学指导委员会委员。
  •        本书适合作为高等学校计算机类各专业 C语言程序设计课程和非计算机专业计算机程序设计基础课程的教材,也可作为从事计算机相关工作或参加计算机等级考试的人员的参考用书。