C程序设计(基于LINUX平台)(微课版)
- ISBN:9787302637318
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:308
- 出版时间:2023-08-01
- 条形码:9787302637318 ; 978-7-302-63731-8
本书特色
本书内容来自一线教师的多年教学成果,同时作者有多年的企业从业实际工作经验,所以教材定位准,内容实用,书中有大量的实用案例,非常适合学生和从业人员学习。
内容简介
本书以“学完C语言之后知道能做什么”为编写目标,共包括9章,分别是Linux C语言程序设计、C语言基础Ⅰ、C语言基础Ⅱ、链表、C标准库、Linux系统调用、Socket编程、Pthreads编程和GTK图形界面编程。其中,C语言基础Ⅰ、C语言基础Ⅱ、C标准库和Linux系统调用为本书*基础、*重要的四章,全面介绍了标准C语言的基本语法和Linux系统调用编程。其他章节告诉读者C语言具体能做什么。本书坚守“空谈无用,给我看代码”(Linux之父Linus Torvalds所言)的信条,通过正确无误的示例代码向读者展示C语言的具体用法。本书内容实用、结构清晰、图文并茂,力求让读者可以饶有兴趣地学习Linux C语言编程。 本书适合作为高等学校各专业的C语言程序设计课程教材,也可作为从事计算机相关工作的科技人员、计算机爱好者及各类自学人员的参考书。本书封面贴有清华大学出版社防伪标签,无标签者不得销售。
目录
1.1C语言1
1.1.1C语言简介1
1.1.2C语言发展历史2
1.1.3C语言特点2
1.2Linux简介3
1.3Linux C语言程序设计简介4
1.3.1Linux应用编程、系统编程和内核编程4
1.3.2Linux图形界面编程4
1.4Linux C语言编程环境5
1.4.1安装Ubuntu Linux虚拟机5
1.4.2gedit、vim和nano5
1.4.3C语言编译器及集成开发环境6
1.4.4编写Hello World程序7
1.5使用gcc编译程序7
1.6使用make和Makefile构建程序9
1.7使用cmake和CMakeLists.txt构建程序15
1.8完整的编译过程17
1.9习题18第2章C语言基础Ⅰ21
2.1数据21
2.1.1数据类型21
2.1.2常量23
2.1.3变量和标识符25
2.1.4数据类型转换26
2.1.5转义字符(转义序列)28
2.2运算符29
2.2.1运算符和表达式29
2.2.2算术运算312.2.3赋值运算32
2.2.4关系运算32
2.2.5逻辑运算符33
2.2.6条件运算符33
2.2.7逗号运算符34
2.2.8sizeof运算符与typedef类型声明34
2.2.9位运算35
2.2.10复合赋值运算符36
2.3结构化程序设计37
2.3.1顺序结构37
2.3.2分支结构38
2.3.3循环结构40
2.4输入/输出44
2.4.1标准输出函数printf44
2.4.2标准输入函数scanf47
2.5数组49
2.5.1一维数组49
2.5.2二维数组50
2.5.3一维字符数组51
2.5.4一维字符数组的输入/输出52
2.5.5字符串处理函数53
2.5.6二维字符数组55
2.6习题56第3章C语言基础Ⅱ60
3.1函数60
3.1.1函数定义和声明60
3.1.2函数调用及参数传递61
3.1.3函数的嵌套与递归65
3.1.4回调函数66
3.1.5return语句67
3.1.6全局变量、局部变量和作用域67
3.1.7变量的存储类别及生存期68
3.1.8内部函数和外部函数70
3.2预处理71
3.2.1预处理的步骤71
3.2.2宏定义和内联函数72
3.2.3条件编译74
3.2.4文件包含74
3.3指针76
3.3.1指针的基本运算76
3.3.2指针与数组80
3.3.3指针与const限定符82
3.3.4指针与字符串84
3.3.5指针函数与函数指针84
3.3.6再讲回调函数85
3.3.7可变参数87
3.3.8二级指针与多级指针89
3.3.9指针数组和数组指针90
3.3.10动态内存管理91
3.4结构体、共用体和枚举93
3.4.1结构体93
3.4.2位域94
3.4.3共用体95
3.4.4枚举96
3.5零长数组、变长数组和动态数组98
3.6编码风格与缩进工具indent100
3.7习题102第4章链表106
4.1单向链表106
4.1.1单链表结构与链表结点类型106
4.1.2创建单链表107
4.1.3插入结点108
4.1.4删除结点109
4.1.5读取结点109
4.1.6查找结点110
4.1.7打印单链表110
4.1.8逆转单链表111
4.1.9构建单循环链表111
4.1.10销毁单链表111
4.1.11主函数及测试结果112
4.2双向链表113
4.2.1双链表结构与链表结点类型113
4.2.2创建双链表114
4.2.3插入结点115
4.2.4删除结点116
4.2.5读取结点116
4.2.6查找结点117
4.2.7打印双链表117
4.2.8逆转双链表118
4.2.9构建双循环链表118
4.2.10销毁双循环链表119
4.2.11主函数及测试结果119
4.3内核链表120
4.3.1list_head120
4.3.2offsetof、container_of和list_entry121
4.3.3链表初始化122
4.3.4插入结点122
4.3.5删除结点123
4.3.6替换结点123
4.3.7移动结点124
4.3.8判断函数124
4.3.9合并结点125
4.3.10遍历链表126
4.3.11用户空间使用内核链表126
4.4习题128第5章C标准库130
5.1C语言标准和glibc130
5.2标准输入/输出函数库(stdio.h)132
5.2.1fopen/fclose132
5.2.2stdin/stdout/stderr134
5.2.3errno与perror函数135
5.2.4以字节为单位的I/O函数136
5.2.5以字符串为单位的I/O函数138
5.2.6以记录为单位的I/O函数139
5.2.7格式化读写文件141
5.2.8操作读写位置的函数142
5.2.9FILE结构体及I/O缓冲区144
5.3标准工具函数库(stdlib.h)147
5.3.1动态内存分配与释放147
5.3.2整数算术149
5.3.3随机数150
5.3.4数值字符串转换151
5.3.5宽字符和多字节字符转换152
5.4字符串处理函数库(string.h)156
5.4.1初始化字符串156
5.4.2取字符串的长度157
5.4.3复制字符串157
5.4.4比较字符串159
5.4.5搜索字符串160
5.4.6连接字符串161
5.4.7分割字符串161
5.4.8本地函数163
5.5字符处理函数库(ctype.h)165
5.6数学函数库(math.h)167
5.7学生信息管理系统的设计与实现169
5.7.1系统设计要求170
5.7.2系统设计170
5.7.3函数设计170
5.7.4参考程序173
5.7.5运行结果178
5.8习题179第6章Linux系统调用182
6.1C库函数和Linux系统调用182
6.2进程管理184
6.3进程间通信186
6.4exec函数族189
6.5文件管理192
6.6习题199第7章Socket编程201
7.1Socket基本概念201
7.1.1Socket简介201
7.1.2网络字节序与主机字节序202
7.1.3Socket地址结构203
7.1.4地址转换函数205
7.1.5C/S架构206
7.2基于TCP的网络程序207
7.2.1简单C/S应用程序的设计207
7.2.2交互式C/S应用程序的设计213
7.2.3简单聊天室应用程序的设计(select)215
7.2.4聊天室应用程序的设计(select)220
7.2.5简单C/S应用程序的设计(epoll)228
7.3基于UDP的网络程序233
7.3.1简单C/S应用程序的设计233
7.3.2简单聊天室应用程序的设计236
7.4原始套接字编程239
7.5UDS242
7.6习题244第8章Pthreads编程246
8.1Pthreads概述246
8.1.1Linux进程和线程246
8.1.2Linux线程模型247
8.1.3Pthreads简介248
8.2Pthreads函数248
8.2.1创建线程248
8.2.2线程同步与互斥252
8.3Pthreads编程示例255
8.3.1读者写者255
8.3.2生产者消费者258
8.3.3哲学家就餐259
8.4习题261第9章GTK图形界面编程263
9.1GTK简介263
9.2GLib简介264
9.3信号和回调函数264
9.4GTK控件267
9.4.1容器控件267
9.4.2非容器控件267
9.5GTK图形界面编程268
9.5.1Hello World268
9.5.2GtkGrid270
9.5.3Custom Drawing271
9.5.4用GtkBuilder创建界面274
9.5.5Cambalache277
9.6GTK图形界面聊天室280
9.6.1聊天室服务器端281
9.6.2聊天室客户端285
9.6.3测试294
9.7习题295附录ASCII码表297参考文献298
作者简介
张同光,副教授,计算机博士,毕业于北京邮电大学。主要从事计算机方面的教学及科研工作,发表SCI、EI等学术论文30余篇,主编教材近20本,主持或参与省部级以上项目6个。对Linux操作系统有深入且全面的研究和应用。使用C/C 等语言开发过若干个横向项目。讲授过的计算机专业课程有:《Linux 0.11内核分析》、《Linux操作系统》、《嵌入式软件开发基础》、《Linux C编程》、《Linux网络服务与编程》、《Linux驱动程序设计》、《嵌入式软件开发高级》、《软件工程》、《C 程序设计》、《微机原理》、《计算机网络原理》、《计算机专业英语》、《操作系统原理》、《离散数学》、《计算机组成原理》、《单片机原理》、《C程序设计》、《数据结构》、《汇编语言》、《网络安全技术》等。
-
当代中国政府与政治(新编21世纪公共管理系列教材)
¥33.6¥48.0 -
落洼物语
¥8.7¥28.0 -
中国当代文学名篇选读
¥19.1¥53.0 -
中医基础理论
¥50.7¥59.0 -
北大人文课(平装)
¥13.9¥45.0 -
宪法-第二版
¥12.2¥29.0 -
当代中国政府与政治 第二版
¥57.8¥68.0 -
EPLAN电气设计
¥29.9¥39.8 -
闯进数学世界――探秘历史名题
¥21.3¥32.8 -
企业法务教程
¥34.8¥49.0 -
习近平新时代中国特色社会主义思想概论
¥18.2¥26.0 -
金融学
¥29.9¥49.0 -
计算机操作系统教程(第4版)(清华大学计算机系列教材)
¥31.9¥49.0 -
三国史
¥27.5¥50.0 -
陶瓷坯釉料制备技术/高职高专材料工程技术专业
¥37.4¥45.0 -
陶瓷工艺技术
¥41.7¥49.0 -
飞机总体设计
¥46.8¥78.0 -
陶瓷工艺学/焦宝祥
¥41.7¥49.0 -
古代汉语(第四册)
¥16.1¥35.0 -
编辑审稿实务教程
¥35.1¥45.0