本书是面向高等院校C语言程序设计课程编写的教材,系统介绍C语言程序设计的基础语法知识和程序设计方法。全书分为11章,主要内容包括:绪论,数据类型、运算符与表达式,标准输入和输出,选择结构程序设计,循环结构程序设计,数组与字符串,函数,指针,结构体,文件,项目案例实现。在每章的开头,通过对科技名人的介绍,引导读者认识学习方法与方式;在每章的结尾,通过对科技前沿知识的介绍,帮助读者拓展知识面;全书在注重基础的同时,通过工程应用实际案例,将学与用紧密结合。本书语言通俗易懂、简洁流畅;内容叙述深入浅出、突出重点;精选大量典型例题,讲解由浅入深、细致详尽。充分体现了渐进式教学、启发式教学、分层式教学的思想。为便于读者高效学习,快速掌握C语言编程与实践,本书配套完整的教学大纲、教学课件、程序代码、测试题库、习题解答,以及每章重难点微课视频。本书既可以作为高等院校与高职高专院校学生C语言程序设计的教材,又可以作为C语言相关工作人员和编程爱好者的参考用书。
在人类科技特别是智能科技发展历程中,程序设计一直起着重要的作用。而在众多程序设计语言中,C语言以其独特的魅力和强大的功能占据着一席之地。自20世纪70年代诞生以来,C语言便以其高效、灵活的特性迅速成为系统编程、嵌入式开发以及操作系统设计等领域的首选语言。如今,C语言仍然广泛应用于各种软件开发环境中,其影响力和生命力可见一斑。
C语言程序设计是一门具有较高难度的课程。一方面,C语言通常是学生学习到的优质个编程语言,从面向的对象、计算规则、语法结构等都与已有的知识积累存在区别。另一方面,C语言需要初学者进行思维方式的转换,即用计算机思维去处理实际问题。
C语言程序设计又是相对简单的课程。它具有简单明了的语法结构和良好的可移植性,设计哲学强调高效性和简洁性,使得程序员能够用较少的代码实现复杂的功能。这种特性使得C语言在性能要求较高的场合具有不可替代的优势,编好的程序无须进行大量的修改即可轻松地移植到不同的硬件平台和操作系统上。此外,C语言提供了丰富的运算符和强大的指针功能,这使得程序员能够更加直接地操作内存,从而编写出更加高效、灵活的代码。C语言在数据结构和算法方面的表现也非常出色。通过使用C语言提供的数据类型、控制结构,以及函数等基本元素,程序员可以构建各种复杂的数据结构和算法,从而实现各种复杂的计算任务。C语言的这一特性使得它在算法研究和软件开发领域具有广泛的应用前景。
本书面向程序设计初学者,看重思维方式的引导,体现由浅入深、一例贯穿、以例阐理的编写理念,在面向工科学生专业学习和研究方面进行了有益的探索,所选实例大多来自工程实际。本书通过引入计算机领域名人与科技前沿知识,深化大工匠探索,构筑育人新格局。
本书配备了丰富的教学资源,如程序代码、微课视频、教学大纲、教学课件、电子教案、测试题库等,属于新形态教材,方便教师与学生使用,希望本书得到C语言学习者和讲授者的使用和喜欢!
作者2025年5月
高峰,院长,博士,教授,硕士生导师。全面主持学院行政工作,主管人事、财务、专业与学科建设、科研和人才队伍建设等工作。主要研究领域图像智能解译、智能感知与自动化,现为湖南省市级领军人才,长沙市高层次军事科研一类人才、长沙高新区骨干人才,湖南军民融合发展中心,长沙市科技委项目评审,湖南省电子信息协会常务理事。主要科研成果:主持或参与重点项目20余项,作为项目负责人,主持国家自然科学项目1项、主持国家重大专项项目2项、主持国家973项目3项,作为技术骨干,参与国家重大专项6项,国家973项目6项,国防科技创新项目1项,国防型号项目1项等,并在2014-2015年和2016-2018年担任973首席科学家助理和973项目办公室主任。所得的科研成果发表在了IEEE、电子学报、计算机学报等国内著名期刊上,撰写学术论文30余篇,其中sci检索3篇,EI检索17篇。申请专利4项。
第1章绪论
微课视频4分钟
1.1程序与程序设计语言
1.1.1程序设计语言的发展
1.1.2程序的算法表示
1.2C语言的发展历史
1.3C语言与工科专业
1.3.1C语言在工科专业中的应用
1.3.2C语言在工科专业中的重要性
1.4C语言的集成开发环境
1.5C语言程序调试
1.6科技前沿之人工智能
本章小结
本章习题
第2章数据类型、运算符与表达式
微课视频24分钟
2.1数据类型
2.1.1数据类型的概念
2.1.2整型
2.1.3实型
2.1.4字符型
2.2标识符、常量和变量
2.2.1标识符
2.2.2变量
2.2.3常量
2.3变量或数据类型所占内存空间的大小
2.4运算符与表达式
2.4.1算术运算符与算术表达式
2.4.2赋值运算符与赋值表达式
2.4.3关系运算符与关系表达式
2.4.4条件运算符与条件表达式
2.4.5逻辑运算符与逻辑表达式
2.4.6逗号运算符与逗号表达式
2.4.7位运算符
2.5数据类型的转换
2.5.1自动类型转换
2.5.2强制类型转换
2.6科技前沿之物联网
本章小结
本章习题
第3章标准输入和输出
微课视频7分钟
3.1输入和输出的基本概念
3.2字符型常量
3.2.1ASCII字符集
3.2.2UTF8字符集
3.3单个字符的输入和输出函数
3.3.1字符输入函数getchar()
3.3.2字符输出函数putchar()
3.4格式输入和输出函数
3.4.1格式输入函数scanf()
3.4.2格式输出函数printf()
3.5输入输出函数的安全版本
3.5.1格式输入函数的安全版本scanf_s()
3.5.2格式输出函数的安全版本printf_s()
3.6科技前沿之云计算
本章小结
本章习题
第4章选择结构程序设计
微课视频24分钟
4.1分支结构中关系运算符与表达式的应用
4.1.1关系运算符的应用
4.1.2关系表达式的应用
4.2if语句
4.2.1用if语句实现单分支选择结构
4.2.2用ifelse语句实现双分支选择结构
4.2.3条件运算符和条件表达式
4.2.4用ifelse if…语句实现多分支选择结构
4.2.5ifelse语句的嵌套
4.3switchcase语句
4.3.1switchcase语句的基本形式
4.3.2switchcase语句实现多路开关控制结构
4.4分支结构中逻辑运算符的应用及短路特性
4.4.1逻辑非、与、或运算符的应用
4.4.2逻辑表达式的短路特性
4.5科技前沿之机器学习
本章小结
本章习题
第5章循环结构程序设计
微课视频23分钟
5.1基本循环结构
5.1.1for循环结构
5.1.2while循环结构
5.1.3dowhile循环结构
5.1.43种基本循环结构比较
5.2循环结构中的计数控制和条件控制
5.2.1计数控制循环结构
5.2.2条件控制循环结构
5.3嵌套循环结构
5.4循环的转移控制
5.4.1break语句和continue语句在循环结构中的作用
5.4.2goto语句在循环结构中的作用
5.4.3exit(0)在循环结构中的作用
5.5科技前沿之深度学习
本章小结
本章习题
第6章数组与字符串
微课视频10分钟
6.1数组
6.1.1数组的定义与声明
6.1.2数组的维度
6.1.3数组的初始化
6.1.4数组的访问与遍历
6.1.5数组的赋值与复制
6.1.6数组的应用举例
6.2字符串
6.2.1字符串的定义与表示
6.2.2字符串的输入与输出
6.2.3字符串的操作与函数
6.3科技前沿之人工神经网络
本章小结
本章习题
第7章函数
微课视频12分钟
7.1函数分类
7.1.1标准函数
7.1.2自定义函数
7.2函数调用
7.2.1函数调用的形式与过程
7.2.2参数传递
7.3递归调用
7.4变量的作用域与生命周期
7.4.1变量的作用域
7.4.2变量的生命周期
7.5模块化程序设计
7.6科技前沿之数据挖掘
本章小结
本章习题
第8章指针
微课视频37分钟
8.1指针和指针变量
8.1.1指针
8.1.2指针变量
8.2指针运算符
8.2.1取地址运算符
8.2.2间接寻址运算符
8.2.3用指针处理简单变量
8.3指针与一维数组
8.3.1一维数组的内存分配
8.3.2定义指向数组元素的指针变量
8.3.3使用指针变量访问数组元素
8.3.4一维数组的指针作函数参数
8.4指针与二维数组
8.4.1二维数组的内存分配
8.4.2使用指针变量访问二维数组
8.4.3二维数组的行地址与列地址
8.4.4二维数组的指针作函数参数
8.5指针与字符串
8.6指针数组
8.7科技前沿之光子计算机
本章小结
本章习题
第9章结构体
微课视频21分钟
9.1结构体类型的定义
9.2结构体变量的定义和使用
9.2.1结构体变量的定义
9.2.2结构体变量成员的使用
9.2.3通过结构体变量的指针引用成员
9.2.4结构体变量作函数参数
9.3结构体数组
9.3.1结构体数组的定义和初始化
9.3.2结构体数组元素的使用
9.3.3结构体数组作函数参数
9.4指针、结构体数组与函数
9.4.1指向结构体数组的指针
9.4.2结构体指针作函数参数
9.5动态内存分配
9.5.1动态内存分配函数
9.5.2可变长度的动态数组
9.6科技前沿之边缘计算
本章小结
本章习题
第10章文件
微课视频15分钟
10.1文件的基本概念
10.1.1文件的分类
10.1.2文件指针
10.1.3文件操作的基本过程
10.2文件的打开与关闭
10.3文件的顺序读写
10.3.1字符读写函数
10.3.2字符串读写函数
10.3.3格式化读写函数
10.3.4数据块读写函数
10.4文件的定位与随机读写
10.4.1文件的定位
10.4.2文件的随机读写
10.5科技前沿之大数据
本章小结
本章习题
第11章项目案例实现
微课视频7分钟
11.1项目需求分析
11.2温湿度采集模块
11.3显示温湿度信息模块
11.4温湿度数据排序模块
11.5温湿度信息查找模块
11.6信息修改模块
11.7加温加湿终端控制模块
11.8系统的集成
11.9科技前沿之决策和控制
附录AC关键字
附录BGCC中基本数据类型的取值范围
附录CC语言运算符的优先级与结合性
附录DANSI C码值与常用字符对照表
附录E常用的ANSI C标准库函数
参考文献