《零基础学C语言》是对于零基础编程学习者产品研发的C语言基础教程。从新手视角来看,根据浅显易懂的语言、流行趣味的实例,详尽地详细介绍了应用C语言开展软件开发必须把握的专业知识和技术性。本书共有18章,包含C语言简述、开发工具的构建、优化算法、C语言基本、运算符与关系式、常见的数据库键入/輸出涵数、挑选构造编程设计、循环系统操纵、数组、结构体与链表、同用体与枚举类型、位运算、预备处理、文档、存储管理,及其学员成绩管理系统等。书中全部专业知识都融合实际实例开展解读,设计方案的编程代码给出了详尽的注解,能够使用户轻轻松松领悟C语言软件开发的精粹,迅速提升开发设计专业技能。
这书根据很多实例及一个详细新项目实例,协助用户尽快推进所教专业知识,提高工作能力;随书附送的《新手实战演练指南》中给出了3个流行且好用的实例的详尽开发设计步骤,务求让学生能融会贯通,真实得到开发设计工作经验;附送的光碟中给出视頻解读、实例及新项目源代码、编码检查数据器、练一练和动手能力改错参考答案等,便捷用户学习培训;书中设定了130好几个二维码,扫描二维码视频观看解读,处理学习培训疑难问题;不容易了解的专业名词、编码难题只需手机扫码文本正下方的e学码得到大量拓展表述,随时随地清扫精神发育迟缓。除此之外,登陆明天学院网址可以得到大量教学资源和服务支持。
书籍与《新手实战演练指南》+光碟+二维码+e学码+明天学院,保持系统化、多方位的教学方式,降低程序编写门坎,让零基础者轻轻松松步入程序编写行业。
目录
- 第1篇基础知识
- 第1章C语言概述
- 1.1C语言的发展史
- 1.1.1程序语言简述
- 1.1.2C语言的发展与应用
- 1.2C语言的特点
- 1.3VisualC++6.0开发环境
- 1.3.1VisualC++6.0的下载与安装
- 1.3.2VisualC++6.0创建C文件
- 1.4一个简单的C程序
- 1.5一个完整的C程序
- 1.6C语言程序的格式
- 1.7小结
- 第2章算法
- 2.1算法的基本概念
- 2.1.1算法的特性
- 2.1.2算法的优劣
- 2.2算法的描述
- 2.2.1自然语言
- 2.2.2流程图
- 2.2.3N-S流程图
- 2.3难点解答
- 2.3.1当型循环和直到型循环有什么不同?
- 2.3.2如何设计一个好的算法?
- 2.4小结
- 第3章C语言基础
- 3.1关键字
- 3.2标识符
- 3.3数据类型
- 3.4常量
- 3.4.1整型常量
- 3.4.2实型常量
- 3.4.3字符型常量
- 3.4.4转义字符
- 3.4.5符号常量
- 3.5变量
- 3.5.1整型变量
- 3.5.2实型变量
- 3.5.3字符型变量
- 3.6变量的存储类别
- 3.6.1auto变量
- 3.6.2static变量
- 3.6.3register变量
- 3.6.4extern变量
- 3.7混合运算
- 3.8难点解答
- 3.8.1变量的赋值和初始化
- 3.8.2如何合理定义变量的类型?
- 3.9小结
- 3.10动手纠错
- 第4章运算符与表达式
- 4.1表达式
- 4.2赋值运算符与赋值表达式
- 4.2.1变量赋初值
- 4.2.2自动类型转换
- 4.2.3强制类型转换
- 4.3算术运算符与算术表达式
- 4.3.1算术运算符
- 4.3.2算术表达式
- 4.3.3优先级与结合性
- 4.3.4自增/自减运算符
- 4.4关系运算符与关系表达式
- 4.4.1关系运算符
- 4.4.2关系表达式
- 4.4.3优先级与结合性
- 4.5逻辑运算符与逻辑表达式
- 4.5.1逻辑运算符
- 4.5.2逻辑表达式
- 4.5.3优先级与结合性
- 4.6位逻辑运算符与位逻辑表达式
- 4.6.1位逻辑运算符
- 4.6.2位逻辑表达式
- 4.7逗号运算符与逗号表达式
- 4.8复合赋值运算符
- 4.9难点解答
- 4.9.1自增前缀与自增后缀的区别(例如:++i,i++)
- 4.9.2逗号表达式的要领
- 4.10小结
- 4.11动手纠错
- 第5章常用的数据输入/输出函数
- 5.1语句
- 5.2字符数据输入/输出
- 5.2.1字符数据输出
- 5.2.2字符数据输入
- 5.3字符串输入/输出
- 5.3.1字符串输出函数
- 5.3.2字符串输入函数
- 5.4格式输出函数
- 5.5格式输入函数
- 5.6难点解答
- 5.6.1putchar()、puts()和printf()三个函数的区别
- 5.6.2getchar()、gets()和scanf()三个函数的区别
- 5.7小结
- 5.8动手纠错
- 第6章选择结构程序设计
- 6.1if语句
- 6.2if语句的基本形式
- 6.2.1if语句形式
- 6.2.2if…else语句形式
- 6.2.3elseif语句形式
- 6.3if语句的嵌套
- 6.4条件运算符
- 6.5switch语句
- 6.5.1switch语句的基本形式
- 6.5.2多路开关模式的switch语句
- 6.6if…else语句和switch语句的区别
- 6.7难点解答
- 6.7.1if…else和elseif语句的区别
- 6.7.2if和if…else语句的区别
- 6.8小结
- 6.9动手纠错
- 第7章循环控制
- 7.1循环语句
- 7.2while语句
- 7.3do…while语句
- 7.4for语句
- 7.4.1for语句使用
- 7.4.2for循环的变体
- 7.4.3for语句中的逗号应用
- 7.53种循环语句的比较
- 7.6循环嵌套
- 7.6.1循环嵌套的结构
- 7.6.2循环嵌套实例
- 7.7转移语句
- 7.7.1break语句
- 7.7.2continue语句
- 7.7.3goto语句
- 7.8难点解答
- 7.8.1continue和break语句的区别
- 7.8.2while和do…while语句的区别
- 7.9小结
- 7.10动手纠错
- 第2篇核心技术
- 第8章数组
- 8.1一维数组
- 8.1.1一维数组的定义和引用
- 8.1.2一维数组初始化
- 8.1.3一维数组应用
- 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.3.5字符数组应用
- 8.4多维数组
- 8.5数组的排序算法
- 8.5.1选择法排序
- 8.5.2冒泡法排序
- 8.5.3交换法排序
- 8.5.4插入法排序
- 8.5.5折半法排序
- 8.5.6排序算法的比较
- 8.6字符串处理函数
- 8.6.1字符串复制
- 8.6.2字符串连接
- 8.6.3字符串比较
- 8.6.4字符串大小写转换
- 8.6.5获得字符串长度
- 8.7数组应用
- 8.7.1反转输出字符串
- 8.7.2输出系统日期和时间
- 8.8难点解答
- 8.8.1数组下标越界
- 8.8.2为什么使用数组
- 8.9小结
- 8.10动手纠错
- 第9章函数
- 9.1函数概述
- 9.2函数的定义
- 9.2.1函数定义的形式
- 9.2.2定义与声明
- 9.3返回语句
- 9.3.1无返回值函数
- 9.3.2返回值
- 9.4函数参数
- 9.4.1形式参数与实际参数
- 9.4.2数组作函数参数
- 9.4.3main函数的参数
- 9.5函数的调用
- 9.5.1函数的调用方式
- 9.5.2嵌套调用
- 9.5.3递归调用
- 9.6内部函数和外部函数
- 9.6.1内部函数
- 9.6.2外部函数
- 9.7局部变量和全局变量
- 9.7.1局部变量
- 9.7.2全局变量
- 9.8函数应用
- 9.9难点解答
- 9.9.1怎样区分声明和定义
- 9.9.2为什么每个程序都有main函数?为什么不用声明就可以使用?
- 9.10小结
- 9.11动手纠错
- 第10章指针
- 10.1指针相关概念
- 10.1.1地址与指针
- 10.1.2变量与指针
- 10.1.3指针变量
- 10.1.4指针自增自减运算
- 10.2数组与指针
- 10.2.1一维数组与指针
- 10.2.2二维数组与指针
- 10.2.3字符串与指针
- 10.2.4字符串数组
- 10.3指向指针的指针
- 10.4指针变量作函数参数
- 10.5返回指针值的函数
- 10.6指针数组作main函数的参数
- 10.7难点解答
- 10.7.1为什么使用指针,指针的优点
- 10.7.2指针的初始化问题
- 10.8小结
- 10.9动手纠错
- 第3篇高级应用
- 第11章结构体与链表
- 11.1结构体
- 11.1.1结构体类型的概念
- 11.1.2结构体变量的定义
- 11.1.3结构体变量的引用
- 11.1.4结构体类型的初始化
- 11.2结构体数组
- 11.2.1定义结构体数组
- 11.2.2初始化结构体数组
- 11.3结构体指针
- 11.3.1指向结构体变量的指针
- 11.3.2指向结构体数组的指针
- 11.3.3结构体作为函数参数
- 11.4包含结构的结构
- 11.5链表
- 11.5.1链表概述
- 11.5.2创建动态链表
- 11.5.3输出链表
- 11.6链表相关操作
- 11.6.1链表的插入操作
- 11.6.2链表的删除操作
- 11.7难点解答
- 11.7.1结构体怎样赋值
- 11.7.2链表与数组
- 11.8小结
- 11.9动手纠错
- 第12章共用体与枚举类型
- 12.1共用体
- 12.1.1共用体的概念
- 12.1.2共用体变量的引用
- 12.1.3共用体变量的初始化
- 12.1.4共用体类型的数据特点
- 12.2枚举类型
- 12.3难点解答
- 12.3.1共用体和结构体的区别
- 12.3.2枚举类型什么时候使用?
- 12.4小结
- 12.5动手纠错
- 第13章位运算
- 13.1位与字节
- 13.2位运算操作符
- 13.2.1“与”运算符
- 13.2.2“或”运算符
- 13.2.3“取反”运算符
- 13.2.4“异或”运算符
- 13.2.5“左移”运算符
- 13.2.6“右移”运算符
- 13.3循环移位
- 13.4位段
- 13.4.1位段的概念与定义
- 13.4.2位段相关说明
- 13.5难点解答
- 13.5.1&与&&有什么不同?
- 13.5.2|与||的区别
- 13.6小结.
- 13.7动手纠错
- 第14章预处理
- 14.1宏定义
- 14.1.1不带参数的宏定义
- 14.1.2带参数的宏定义
- 14.2#include指令
- 14.3条件编译
- 14.3.1#if命令
- 14.3.2#ifdef及#ifndef命令
- 14.3.3#undef命令
- 14.3.4#line命令
- 14.3.5#pragma命令
- 14.4小结
- 14.5动手纠错
- 第15章文件
- 15.1文件概述
- 15.2文件基本操作
- 15.2.1文件指针
- 15.2.2文件的打开
- 15.2.3文件的关闭
- 15.3文件的读写
- 15.3.1fputc()函数
- 15.3.2fgetc()函数
- 15.3.3fputs()函数
- 15.3.4fgets()函数
- 15.3.5fprintf()函数
- 15.3.6fscanf()函数
- 15.3.7fread()和fwrite()函数
- 15.4文件的定位
- 15.4.1fseek()函数
- 15.4.2rewind()函数
- 15.4.3ftell()函数
- 15.5难点解答
- 15.5.1怎样运行本章程序
- 15.5.2为什么程序后都有fclose()函数
- 15.6小结
- 15.7动手纠错
- 第16章存储管理
- 16.1内存组织方式
- 16.1.1内存的组织方式
- 16.1.2堆与栈
- 16.2动态管理
- 16.2.1malloc()函数
- 16.2.2calloc()函数
- 16.2.3realloc()函数
- 16.2.4free()函数
- 16.3内存丢失
- 16.4难点解答
- 16.4.1malloc()函数分配内存为什么常写(int*)?
- 16.4.2malloc()、calloc()、realloc()函数的区别?
- 16.5小结
- 16.6动手纠错
- 第17章网络套接字编程
- 17.1计算机网络基础
- 17.1.1IP地址
- 17.1.2OSI七层参考模型
- 17.1.3地址解析
- 17.1.4域名系统
- 17.1.5TCP/IP协议
- 17.1.6端口
- 17.1.7套接字的引入
- 17.1.8网络字节顺序
- 17.2套接字概述
- 17.2.1套接字概述
- 17.2.2TCP的套接字的socket编程
- 17.2.3UDP的套接字的socket编程
- 17.3套接字函数
- 17.3.1套接字函数介绍
- 17.3.2基于TCP的网络聊天程序
- 17.4难点解答
- 17.4.1TCP与UDP的比较
- 17.4.2如何实现网络通信
- 17.5小结
- 17.6动手纠错
- 第4篇项目实战
- 第18章学生成绩管理系统
- 18.1需求分析
- 18.2系统设计
- 18.3功能设计
- 18.3.1功能选择界面
- 18.3.2录入学生成绩信息
- 18.3.3查询学生成绩信息
- 18.3.4删除学生成绩信息
- 18.3.5修改学生成绩信息
- 18.3.6插入学生成绩信息
- 18.3.7统计学生人数
- 18.4小结