问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

零基础学习C语言

发布网友 发布时间:2023-11-01 02:17

我来回答

1个回答

热心网友 时间:2024-09-19 23:18

零基础学习C语言:本人在网上找了很久关于如何学习C语言,本人也是新手不知该如何开始学习,无意中发现这本书慢慢的我找到了学习的头绪!推荐给大家学习

目录 前言 第一篇  C语言基础 第1章  踏上征程前的思想动员 1.1  为什么选择C语言 1.2  如何学好C语言 1.3  语言概述 1.3.1  什么是语言 1.3.2  什么是机器语言 1.3.3  什么是汇编语言 1.3.4  面向过程的语言 1.3.5  什么是C语言 1.4  深刻认识程序如何开发出来—程序开发周期 1.4.1  编辑C源代码 1.4.2  编译C源代码 1.4.3  连接目标文件 1.4.4  编译连接过程示例 1.4.5  运行程序 1.5  VC++、C++、C和TC—认识开发环境和语言的区别 1.6  小结 1.7  上机实践 第2章  跟我写Hello World 2.1  自己动手创建程序 2.2  认识LCC-Win32开发环境 2.2.1  为什么选择LCC-Win32 2.2.2  启动LCC-Win32 2.2.3  新建Hello World工程 2.2.4  定义新工程 2.2.5  添加源代码到工程 2.2.6  编译器设置 2.2.7  连接器设置 2.2.8  调试器设置 2.2.9  开始编辑代码 2.3  编译运行—欣赏你的杰作 2.4  查看代码如何一步一步被执行—调试排错(debug) 2.4.1  debug一词的由来 2.4.2  设置断点 2.4.3  调试运行 2.5  小结 2.6  上机实践 第3章  分解HelloWorld—最简单C程序的组成 3.1  C程序概貌 3.2  为何有必要在代码里留下程序员的解释—注释 3.3  从哪里开始,到哪里结束—main函数 3.4  如何在屏幕上显示文字—函数调用 3.5  编译器如何认识printf函数—#include预处理器指示符 3.5.1  函数声明及其作用 3.5.2  试验寻找#include的作用 3.5.3  #include的作用 3.6  计算1+1—有些小作为的程序 3.7  数据从哪里来,又到哪里去—变量 3.7.1  变量在内存中的表现形式 3.7.2  编译器使用变量符号表 3.7.3  变量及其使用 3.8  自己设计C函数 3.8.1  在main函数中计算3个整数的平均数 3.8.2  在main函数中分3次计算3个整数的平均数 3.8.3  自编函数实现计算3个整数的平均数 3.8.4  如何自编写函数 3.8.5  试验观察总结函数声明和函数定义的意义 3.9  语句构成程序 3.10  向好程序员看齐—代码风格 3.11  小结 3.12  上机实践 第4章  如何存储和获取数据—变量及数据类型 4.1  二进制、八进制、十六进制 4.2  计算机中如何表示数据—字节和位 4.3  内存是存储数据的“房间”—认识计算机内存 4.4  数据类型 4.4.1  整数类型 4.4.2  整数的正负—有符号和无符号 4.4.3  实数类型 4.4.4  字符类型 4.4.5  数据类型总结 4.5  常量 4.5.1  直接常量(字面常量)和符号常量 4.5.2  符号常量的优点 4.5.3  字面常量的书写格式 4.5.4  转义字符 4.5.5  字符串 4.6  变量 4.6.1  变量的声明 4.6.2  变量声明的意义 4.6.3  标识符和关键字 4.6.4  变量在内存中占据的空间和变量的值 4.6.5  变量赋初值 4.7  几个与变量相关的经典算法 4.7.1  累加和累乘 4.7.2  交换两个变量的值 4.8  小结 4.9  上机实践 第5章  用屏幕和键盘交互—简单的输出和输入 5.1  输入—处理—输出:这就是程序 5.2  向屏幕输出—printf函数详解 5.2.1  printf函数的一般形式 5.2.2  格式字符串的一般形式 5.2.3  %d—十进制形式输出带符号整数 5.2.4  %最小宽度d格式符 5.2.5  %ld格式符—以长整型方式输出 5.2.6  %o格式符—以八进制形式输出整数 5.2.7  %x格式符—以十六进制的形式输出整数 5.2.8  %u格式符—以十进制形式输出unsigned型数据 5.2.9  %c格式符 5.2.10  %s格式符—输出字符串 5.2.11  %f格式符—输出实型数据 5.2.12  %e格式符—以指数形式输出实数 5.2.13  %g格式符—自动选择%f或者%e形式输出 5.2.14  printf函数小结 5.3  字符输出putchar和字符串输出puts 5.3.1  putchar函数(字符输出函数) 5.3.2  puts函数(字符串输出函数) 5.4  接收键盘输入—scanf函数详解 5.4.1  一般形式 5.4.2  scanf函数的工作原理 5.4.3  多数据输入分隔规则 5.4.4  格式字符 5.4.5  scanf使用方法说明 5.4.6  使用scanf函数的注意事项 5.5  字符输入函数getchar 5.6  输入输出程序举例 5.7  小结 5.8  上机实践 第6章  程序的基本构成—运算符和表达式 6.1  认识C中的运算符和表达式 6.1.1  认识运算符和表达式 6.1.2  操作数、运算符和表达式 6.1.3  C运算符简介 6.2  算术运算符和算术表达式 6.2.1  基本的算术运算符 6.2.2  ++自增、--自减运算符 6.2.3  算术表达式和运算符的优先级及结合性 6.3  逗号运算符和逗号表达式 6.3.1  逗号表达式的一般形式 6.3.2  逗号表达式的优先级和结合性 6.4  关系运算符和关系表达式 6.4.1  关系运算符的种类 6.4.2  关系表达式的一般形式 6.5  逻辑运算符和逻辑表达式 6.5.1  逻辑运算符 6.5.2  逻辑真值表 6.6  赋值运算符和赋值表达式 6.6.1  赋值表达式 6.6.2  复合赋值运算符 6.6.3  类型转换 6.6.4  左值与程序实体 6.7  强制类型转换和自动类型转换 6.7.1  强制类型转换 6.7.2  自动类型转换 6.7.3  函数调用时的转换 6.8  运算符的优先级 6.8.1  优先级、结合性汇总 6.8.2  短路表达式 6.8.3  sizeof运算符与sizeof表达式 6.9  小结 6.10  上机实践 第7章  程序的最小独立单元—语句 7.1  5种语句类型 7.1.1  表达式语句 7.1.2  函数调用语句 7.1.3  空语句 7.1.4  复合语句(块语句) 7.1.5  流程控制语句 7.2  结构化程序设计 7.2.1  什么是算法 7.2.2  算法的表示 7.2.3  算法的伪代码表示 7.2.4  算法的流程图表示 7.2.5  3种控制结构 7.2.6  算法示例 7.3  小结 7.4  上机实践 第8章  条件判断—分支结构 8.1  简单的条件判断—if语句 8.1.1  判断表达式 8.1.2  花括号和if结构体 8.2  两条岔路的选择—if else结构 8.2.1  关键在else 8.2.2  if else结构体 8.3  多分支语句和分支语句嵌套 8.3.1  多分支 8.3.2  多分支if结构 8.3.3  分支语句嵌套 8.4  开关语句—switch结构 8.4.1  一般形式 8.4.2  为什么叫开关语句 8.4.3  default语句 8.4.4  if结构和switch结构之比较 8.5  小结 8.6  上机实践 第9章  一遍又一遍—循环结构 9.1  构造循环 9.1.1  循环的条件 9.1.2  当型循环和直到型循环 9.2  简洁循环语句—while和do while结构 9.2.1  语法规则 9.2.2  代码块 9.3  最常用的循环语句—for结构 9.3.1  基本形式 9.3.2  表达式省略 9.3.3  循环终止和步长 9.4  循环嵌套 9.4.1  嵌套示例 9.4.2  嵌套的效率 9.5  与循环密切相关的流程转向控制语句 9.5.1  跳出循环—break 9.5.2  重来一次—continue 9.5.3  随心所欲—goto 9.6  小结 9.7  上机实践 第二篇  一窥C语言门庭 第10章  写程序就是写函数—函数入门 10.1  什么是函数—根据输入进行处理返回输出 10.1.1  分割 10.1.2  库函数和自定义函数 10.2  自定义函数 10.2.1  定义的语法 10.2.2  函数定义范例 10.2.3  不要重复定义 10.3  函数调用与返回 10.3.1  形参和实参 10.3.2  传址调用 10.3.3  函数返回 10.4  告诉编译器有这么一个函数—函数原型声明 10.4.1  函数声明的语法 10.4.2  声明不同于定义 10.4.3  标准库函数的声明 10.5  面向过程的程序结构 10.5.1  模块化 10.5.2  函数的调用过程—模块的配合 10.5.3  一个入口一个出口 10.5.4  自顶向下,逐步求精 10.5.5  封装和可重用 10.5.6  高内聚,低耦合 10.6  小结 10.7  上机实践 第11章  同一类型多个元素的集合—简单数组 11.1  什么是数组 11.1.1  数组是一大片连续内存空间 11.1.2  数组元素的访问 11.2  一维数组 11.2.1  一维数组的声明 11.2.2  一维数组元素的访问 11.2.3  数组的初始化 11.2.4  不合法的数组操作 11.3  二维数组 11.3.1  二维数组的声明 11.3.2  二维数组的初始化 11.3.3  二维数组应用举例 11.4  更高维的数组 11.4.1  高维数组的声明和元素访问 11.4.2  初始化 11.4.3  *数组在内存中是如何排列元素的 11.5  小结 11.6  上机实践 第12章  C语言难点—指针初探 12.1  计算机中的内存 12.1.1  内存地址 12.1.2  内存中保存的内容 12.1.3  地址就是指针 12.2  指针的定义 12.2.1  指针变量的声明 12.2.2  指针变量的初始化 12.2.3  指针变量的值 12.2.4  取地址操作符 12.2.5  指针变量占据一定的内存空间 12.2.6  指向指针的指针 12.3  使用指针 12.3.1  运算符* 12.3.2  指针的类型和指针所指向的类型 12.3.3  同类型指针的赋值 12.3.4  指针的类型和指针所指向的类型不同 12.4  指针的运算 12.4.1  算术运算之“指针+整数”或“指针-整数” 12.4.2  指针-指针 12.4.3  指针的大小比较 12.5  指针表达式与左值 12.5.1  指针与整型 12.5.2  指针与左值 12.5.3  指针与const 12.6  动态内存分配 12.6.1  动态分配的好处 12.6.2  malloc与free函数 12.6.3  calloc与free函数 12.6.4  free函数与指针 12.6.5  内存泄漏 12.6.6  释放已经释放了的内存会出问题 12.7  小结 12.8  上机实践 第13章  字符串及字符串操作 13.1  C风格字符串 13.1.1  C风格字符串的声明 13.1.2  C风格字符串在内存中的表示 13.2  字符数组的输入输出 13.2.1  字符数组可以进行整体输入输出 13.2.2  使用gets函数读入整行输入 13.2.3  访问字符数组中某个元素 13.2.4  更便捷的输出—使用puts函数 13.3  字符串处理函数 13.3.1  理解:数组名是常指针 13.3.2  strlen函数与size_t 13.3.3  字符串复制函数strcpy 13.3.4  字符串比较函数strcmp 13.3.5  字符串连接函数strcat 13.3.6  全转换为大写形式 13.3.7  链式操作 13.4  小结 13.5  上机实践 第14章  结构体、共用体、枚举和typedef 14.1  结构体 14.1.1  结构体的定义 14.1.2  声明结构体变量 14.1.3  初始化结构变量 14.1.4  访问结构体成员 14.1.5  结构体定义的位置 14.1.6  结构体变量赋值 14.2  特殊结构体 14.2.1  结构体嵌套 14.2.2  匿名结构体 14.3  共用体 14.3.1  什么是共用体 14.3.2  共用体的定义 14.3.3  声明共用体变量 14.3.4  共用体变量的初始化 14.3.5  共用体成员访问 14.3.6  共用体赋值 14.4  结构体和共用体的内存差异 14.4.1  结构体变量和共用体变量内存形式的不同 14.4.2  结构体变量的内存大小 14.4.3  字节对齐 14.4.4  最宽基本类型 14.4.5  共用体的大小 14.5  枚举类型 14.5.1  枚举类型的定义 14.5.2  声明枚举变量 14.5.3  枚举常量是什么 14.6  给类型取个别名—typedef 14.6.1  typedef基本用法 14.6.2  #define用法 14.7  小结 14.8  上机实践 第15章  如何节省内存—位运算 15.1  什么是位运算 15.1.1  开灯关灯 15.1.2  改变状态 15.2  位逻辑运算符 15.2.1  位取反操作 15.2.2  位与运算 15.2.3  位或运算 15.2.4  位异或 15.2.5  实例分析 15.3  移位运算 15.3.1  基本形式 15.3.2  移位举例 15.4  小结 15.5  上机实践 第三篇  C语言进阶 第16章  存储不仅仅局限于内存—文件 16.1  什么是文件 16.1.1  文件 16.1.2  流 16.1.3  重定向 16.1.4  文件的处理形式—缓冲区和非缓冲区 16.1.5  文件的存储形式—文本形式和二进制形式 16.2  C语言如何使用文件 16.2.1  文件型指针 16.2.2  文件操作的步骤 16.3  文件的打开与关闭 16.3.1  打开文件—fopen 16.3.2  打开是否成功 16.3.3  关闭文件—fclose 16.4  文件的读写 16.4.1  读写的相对参照 16.4.2  如何判断文件已经结束 16.4.3  字符读写函数—fgetc和fputc 16.4.4  字符串读写函数—fgets和fputs 16.4.5  块读写函数—fread和fwrite 16.4.6  格式化文件输入输出—fprintf与fscanf 16.5  文件的定位 16.5.1  移到开头—rewind 16.5.2  得到当前位置—ftell 16.5.3  移动指针—fseek 16.6  小结 16.7  上机实践 第17章  灵活却难以理解—指针进阶 17.1  指针与数组 17.1.1  数组名指针 17.1.2  使用数组名常指针表示数组元素 17.1.3  指向数组元素的指针变量 17.1.4  指向数组的指针变量 17.1.5  指针数组 17.2  指针、结构体和结构体数组 17.2.1  两种访问形式 17.2.2  声明创建一个结构数组 17.2.3  结构数组的初始化 17.2.4  结构数组的使用 17.2.5  指向结构数组的指针 17.3  函数指针 17.3.1  函数名指针 17.3.2  指向函数的指针 17.3.3  函数指针类型 17.3.4  函数指针做函数参数 17.3.5  函数指针数组 17.3.6  指向函数指针的指针 17.4  小结 17.5  上机实践 第18章  更深入的理解—函数进阶 18.1  参数传递的副本机制 18.1.1  传值调用的副本机制 18.1.2  传址调用的副本机制 18.2  函数返回值的副本机制 18.2.1  return局部变量为什么合法 18.2.2  返回指针申请动态内存 18.2.3  不要返回指向栈内存的指针 18.2.4  返回指向只读存储区的指针 18.3  函数与结构体 18.3.1  结构体变量的传值和传址调用 18.3.2  结构体变量的成员作为函数参数 18.3.3  返回结构体的函数 18.3.4  返回结构体指针的函数 18.4  函数与数组 18.4.1  数组元素作为函数参数 18.4.2  数组名作为函数参数 18.4.3  *数组名作为函数参数 18.4.4  数组名作为函数参数时的退化 18.5  递归 18.5.1  递归流程 18.5.2  递归两要素 18.5.3  效率与可读性 18.6  带参数的主函数 18.7  小结 18.8  上机实践 第19章  生存期、作用域与可见域 19.1  内存分配 19.1.1  内存分区 19.1.2  变量的存储类别 19.1.3  生存期 19.1.4  作用域与可见域 19.2  auto变量 19.2.1  定义格式 19.2.2  作用域和生存期 19.2.3  屏蔽 19.2.4  重复定义 19.2.5  初始化 19.3  register变量 19.3.1  定义格式 19.3.2  使用举例 19.4  extern变量 19.4.1  全局变量定义 19.4.2  全局变量声明 19.4.3  可见域 19.4.4  屏蔽 19.4.5  利与弊 19.5  static变量 19.5.1  定义格式 19.5.2  静态局部变量 19.5.3  静态全局变量 19.5.4  extern变量和static变量的初始化 19.6  函数的作用域与可见域 19.6.1  内部函数 19.6.2  外部函数 19.7  结构体定义的作用域与可见域 19.7.1  定义位置与可见域 19.7.2  允许重复定义 19.8  小结 19.9  上机实践 第20章  编译及预处理 20.1  编译流程 20.1.1  编辑 20.1.2  预处理 20.1.3  编译 20.1.4  连接 20.2  程序错误 20.2.1  错误分类 20.2.2  编译错误 20.2.3  连接错误 20.2.4  逻辑错误 20.2.5  排错 20.3  预处理命令之宏定义 20.3.1  宏定义 20.3.2  不带参数的宏定义 20.3.3  带参数的宏定义 20.3.4  #define定义常量与const常量 20.3.5  文件包含 20.3.6  条件编译 20.4  小结 20.5  上机实践 第21章  数据结构 21.1  链表 21.1.1  链表的结构 21.1.2  创建链表并遍历输出 21.1.3  链表的插入 21.1.4  链表结点的删除 21.1.5  链表的逆置 21.1.6  链表的销毁 21.1.7  综合实例 21.1.8  循环链表 21.1.9  双链表 21.2  栈和队列 21.2.1  栈的定义 21.2.2  栈的分类 21.2.3  栈的操作 21.2.4  函数与栈 21.2.5  队列 21.3  小结 21.4  上机实践 第四篇  C语言程序设计实例与面试题解析 第22章  C语言程序课程设计:游戏 22.1  黑白棋 22.1.1  程序功能要求 22.1.2  输入输出样例 22.1.3  程序分析 22.1.4  程序初始化 22.1.5  初始化图形设备 22.1.6  绘制棋盘 22.1.7  交替绘制黑白棋 22.1.8  游戏(同时判断是否有一方胜利) 22.1.9  小结 22.2  五子棋 22.2.1  程序功能要求 22.2.2  输入输出样例 22.2.3  程序分析 22.2.4  主函数程序设计 22.2.5  系统初始化 22.2.6  移动棋子模块 22.2.7  程序胜负判定 22.2.8  小结 22.3  扫雷游戏 22.3.1  程序功能要求 22.3.2  输入输出样例 22.3.3  程序分析 22.3.4  程序设计 22.3.5  初始化图形设备 22.3.6  事件处理模块 22.3.7  游戏处理部分 22.3.8  小结 22.4  速算24 22.4.1  程序功能要求 22.4.2  输入输出样例 22.4.3  程序分析 22.4.4  程序设计 22.4.5  扑克牌处理部分 22.4.6  程序运算部分 22.4.7  小结 第23章  面试题解析 23.1  基础知识 23.1.1  指针自增自减有什么不同 23.1.2  什么是递归 23.1.3  宏定义与操作符的区别 23.1.4  引用与值传递的区别 23.1.5  指针和引用有什么区别 23.1.6  什么是栈 23.1.7  main函数执行前还会执行什么代码 23.1.8  static有什么用途 23.1.9  定义int **a[3][4], 则变量占用的内存空间为多少 23.1.10  什么是预编译 23.1.11  int (*s[10])(int)表示什么意义 23.1.12  结构与联合有何区别 23.2  算法和思维逻辑知识 23.2.1  100美元哪里去了 23.2.2  将16升水平均分给四个人 23.2.3  算出小王买了几瓶啤酒、几瓶饮料 23.2.4  找出不同的苹果 23.2.5  找出不同的球 23.2.6  猜自己的帽子颜色 23.2.7  三筐水果各是什么 23.2.8  最后剩下的是谁 23.2.9  聪明的商人 23.2.10  红球和白球 23.2.11  乌龟赛跑 23.2.12  投硬币 附录  ASCII编码表

热心网友 时间:2024-09-19 23:18

零基础学习C语言:本人在网上找了很久关于如何学习C语言,本人也是新手不知该如何开始学习,无意中发现这本书慢慢的我找到了学习的头绪!推荐给大家学习

目录 前言 第一篇  C语言基础 第1章  踏上征程前的思想动员 1.1  为什么选择C语言 1.2  如何学好C语言 1.3  语言概述 1.3.1  什么是语言 1.3.2  什么是机器语言 1.3.3  什么是汇编语言 1.3.4  面向过程的语言 1.3.5  什么是C语言 1.4  深刻认识程序如何开发出来—程序开发周期 1.4.1  编辑C源代码 1.4.2  编译C源代码 1.4.3  连接目标文件 1.4.4  编译连接过程示例 1.4.5  运行程序 1.5  VC++、C++、C和TC—认识开发环境和语言的区别 1.6  小结 1.7  上机实践 第2章  跟我写Hello World 2.1  自己动手创建程序 2.2  认识LCC-Win32开发环境 2.2.1  为什么选择LCC-Win32 2.2.2  启动LCC-Win32 2.2.3  新建Hello World工程 2.2.4  定义新工程 2.2.5  添加源代码到工程 2.2.6  编译器设置 2.2.7  连接器设置 2.2.8  调试器设置 2.2.9  开始编辑代码 2.3  编译运行—欣赏你的杰作 2.4  查看代码如何一步一步被执行—调试排错(debug) 2.4.1  debug一词的由来 2.4.2  设置断点 2.4.3  调试运行 2.5  小结 2.6  上机实践 第3章  分解HelloWorld—最简单C程序的组成 3.1  C程序概貌 3.2  为何有必要在代码里留下程序员的解释—注释 3.3  从哪里开始,到哪里结束—main函数 3.4  如何在屏幕上显示文字—函数调用 3.5  编译器如何认识printf函数—#include预处理器指示符 3.5.1  函数声明及其作用 3.5.2  试验寻找#include的作用 3.5.3  #include的作用 3.6  计算1+1—有些小作为的程序 3.7  数据从哪里来,又到哪里去—变量 3.7.1  变量在内存中的表现形式 3.7.2  编译器使用变量符号表 3.7.3  变量及其使用 3.8  自己设计C函数 3.8.1  在main函数中计算3个整数的平均数 3.8.2  在main函数中分3次计算3个整数的平均数 3.8.3  自编函数实现计算3个整数的平均数 3.8.4  如何自编写函数 3.8.5  试验观察总结函数声明和函数定义的意义 3.9  语句构成程序 3.10  向好程序员看齐—代码风格 3.11  小结 3.12  上机实践 第4章  如何存储和获取数据—变量及数据类型 4.1  二进制、八进制、十六进制 4.2  计算机中如何表示数据—字节和位 4.3  内存是存储数据的“房间”—认识计算机内存 4.4  数据类型 4.4.1  整数类型 4.4.2  整数的正负—有符号和无符号 4.4.3  实数类型 4.4.4  字符类型 4.4.5  数据类型总结 4.5  常量 4.5.1  直接常量(字面常量)和符号常量 4.5.2  符号常量的优点 4.5.3  字面常量的书写格式 4.5.4  转义字符 4.5.5  字符串 4.6  变量 4.6.1  变量的声明 4.6.2  变量声明的意义 4.6.3  标识符和关键字 4.6.4  变量在内存中占据的空间和变量的值 4.6.5  变量赋初值 4.7  几个与变量相关的经典算法 4.7.1  累加和累乘 4.7.2  交换两个变量的值 4.8  小结 4.9  上机实践 第5章  用屏幕和键盘交互—简单的输出和输入 5.1  输入—处理—输出:这就是程序 5.2  向屏幕输出—printf函数详解 5.2.1  printf函数的一般形式 5.2.2  格式字符串的一般形式 5.2.3  %d—十进制形式输出带符号整数 5.2.4  %最小宽度d格式符 5.2.5  %ld格式符—以长整型方式输出 5.2.6  %o格式符—以八进制形式输出整数 5.2.7  %x格式符—以十六进制的形式输出整数 5.2.8  %u格式符—以十进制形式输出unsigned型数据 5.2.9  %c格式符 5.2.10  %s格式符—输出字符串 5.2.11  %f格式符—输出实型数据 5.2.12  %e格式符—以指数形式输出实数 5.2.13  %g格式符—自动选择%f或者%e形式输出 5.2.14  printf函数小结 5.3  字符输出putchar和字符串输出puts 5.3.1  putchar函数(字符输出函数) 5.3.2  puts函数(字符串输出函数) 5.4  接收键盘输入—scanf函数详解 5.4.1  一般形式 5.4.2  scanf函数的工作原理 5.4.3  多数据输入分隔规则 5.4.4  格式字符 5.4.5  scanf使用方法说明 5.4.6  使用scanf函数的注意事项 5.5  字符输入函数getchar 5.6  输入输出程序举例 5.7  小结 5.8  上机实践 第6章  程序的基本构成—运算符和表达式 6.1  认识C中的运算符和表达式 6.1.1  认识运算符和表达式 6.1.2  操作数、运算符和表达式 6.1.3  C运算符简介 6.2  算术运算符和算术表达式 6.2.1  基本的算术运算符 6.2.2  ++自增、--自减运算符 6.2.3  算术表达式和运算符的优先级及结合性 6.3  逗号运算符和逗号表达式 6.3.1  逗号表达式的一般形式 6.3.2  逗号表达式的优先级和结合性 6.4  关系运算符和关系表达式 6.4.1  关系运算符的种类 6.4.2  关系表达式的一般形式 6.5  逻辑运算符和逻辑表达式 6.5.1  逻辑运算符 6.5.2  逻辑真值表 6.6  赋值运算符和赋值表达式 6.6.1  赋值表达式 6.6.2  复合赋值运算符 6.6.3  类型转换 6.6.4  左值与程序实体 6.7  强制类型转换和自动类型转换 6.7.1  强制类型转换 6.7.2  自动类型转换 6.7.3  函数调用时的转换 6.8  运算符的优先级 6.8.1  优先级、结合性汇总 6.8.2  短路表达式 6.8.3  sizeof运算符与sizeof表达式 6.9  小结 6.10  上机实践 第7章  程序的最小独立单元—语句 7.1  5种语句类型 7.1.1  表达式语句 7.1.2  函数调用语句 7.1.3  空语句 7.1.4  复合语句(块语句) 7.1.5  流程控制语句 7.2  结构化程序设计 7.2.1  什么是算法 7.2.2  算法的表示 7.2.3  算法的伪代码表示 7.2.4  算法的流程图表示 7.2.5  3种控制结构 7.2.6  算法示例 7.3  小结 7.4  上机实践 第8章  条件判断—分支结构 8.1  简单的条件判断—if语句 8.1.1  判断表达式 8.1.2  花括号和if结构体 8.2  两条岔路的选择—if else结构 8.2.1  关键在else 8.2.2  if else结构体 8.3  多分支语句和分支语句嵌套 8.3.1  多分支 8.3.2  多分支if结构 8.3.3  分支语句嵌套 8.4  开关语句—switch结构 8.4.1  一般形式 8.4.2  为什么叫开关语句 8.4.3  default语句 8.4.4  if结构和switch结构之比较 8.5  小结 8.6  上机实践 第9章  一遍又一遍—循环结构 9.1  构造循环 9.1.1  循环的条件 9.1.2  当型循环和直到型循环 9.2  简洁循环语句—while和do while结构 9.2.1  语法规则 9.2.2  代码块 9.3  最常用的循环语句—for结构 9.3.1  基本形式 9.3.2  表达式省略 9.3.3  循环终止和步长 9.4  循环嵌套 9.4.1  嵌套示例 9.4.2  嵌套的效率 9.5  与循环密切相关的流程转向控制语句 9.5.1  跳出循环—break 9.5.2  重来一次—continue 9.5.3  随心所欲—goto 9.6  小结 9.7  上机实践 第二篇  一窥C语言门庭 第10章  写程序就是写函数—函数入门 10.1  什么是函数—根据输入进行处理返回输出 10.1.1  分割 10.1.2  库函数和自定义函数 10.2  自定义函数 10.2.1  定义的语法 10.2.2  函数定义范例 10.2.3  不要重复定义 10.3  函数调用与返回 10.3.1  形参和实参 10.3.2  传址调用 10.3.3  函数返回 10.4  告诉编译器有这么一个函数—函数原型声明 10.4.1  函数声明的语法 10.4.2  声明不同于定义 10.4.3  标准库函数的声明 10.5  面向过程的程序结构 10.5.1  模块化 10.5.2  函数的调用过程—模块的配合 10.5.3  一个入口一个出口 10.5.4  自顶向下,逐步求精 10.5.5  封装和可重用 10.5.6  高内聚,低耦合 10.6  小结 10.7  上机实践 第11章  同一类型多个元素的集合—简单数组 11.1  什么是数组 11.1.1  数组是一大片连续内存空间 11.1.2  数组元素的访问 11.2  一维数组 11.2.1  一维数组的声明 11.2.2  一维数组元素的访问 11.2.3  数组的初始化 11.2.4  不合法的数组操作 11.3  二维数组 11.3.1  二维数组的声明 11.3.2  二维数组的初始化 11.3.3  二维数组应用举例 11.4  更高维的数组 11.4.1  高维数组的声明和元素访问 11.4.2  初始化 11.4.3  *数组在内存中是如何排列元素的 11.5  小结 11.6  上机实践 第12章  C语言难点—指针初探 12.1  计算机中的内存 12.1.1  内存地址 12.1.2  内存中保存的内容 12.1.3  地址就是指针 12.2  指针的定义 12.2.1  指针变量的声明 12.2.2  指针变量的初始化 12.2.3  指针变量的值 12.2.4  取地址操作符 12.2.5  指针变量占据一定的内存空间 12.2.6  指向指针的指针 12.3  使用指针 12.3.1  运算符* 12.3.2  指针的类型和指针所指向的类型 12.3.3  同类型指针的赋值 12.3.4  指针的类型和指针所指向的类型不同 12.4  指针的运算 12.4.1  算术运算之“指针+整数”或“指针-整数” 12.4.2  指针-指针 12.4.3  指针的大小比较 12.5  指针表达式与左值 12.5.1  指针与整型 12.5.2  指针与左值 12.5.3  指针与const 12.6  动态内存分配 12.6.1  动态分配的好处 12.6.2  malloc与free函数 12.6.3  calloc与free函数 12.6.4  free函数与指针 12.6.5  内存泄漏 12.6.6  释放已经释放了的内存会出问题 12.7  小结 12.8  上机实践 第13章  字符串及字符串操作 13.1  C风格字符串 13.1.1  C风格字符串的声明 13.1.2  C风格字符串在内存中的表示 13.2  字符数组的输入输出 13.2.1  字符数组可以进行整体输入输出 13.2.2  使用gets函数读入整行输入 13.2.3  访问字符数组中某个元素 13.2.4  更便捷的输出—使用puts函数 13.3  字符串处理函数 13.3.1  理解:数组名是常指针 13.3.2  strlen函数与size_t 13.3.3  字符串复制函数strcpy 13.3.4  字符串比较函数strcmp 13.3.5  字符串连接函数strcat 13.3.6  全转换为大写形式 13.3.7  链式操作 13.4  小结 13.5  上机实践 第14章  结构体、共用体、枚举和typedef 14.1  结构体 14.1.1  结构体的定义 14.1.2  声明结构体变量 14.1.3  初始化结构变量 14.1.4  访问结构体成员 14.1.5  结构体定义的位置 14.1.6  结构体变量赋值 14.2  特殊结构体 14.2.1  结构体嵌套 14.2.2  匿名结构体 14.3  共用体 14.3.1  什么是共用体 14.3.2  共用体的定义 14.3.3  声明共用体变量 14.3.4  共用体变量的初始化 14.3.5  共用体成员访问 14.3.6  共用体赋值 14.4  结构体和共用体的内存差异 14.4.1  结构体变量和共用体变量内存形式的不同 14.4.2  结构体变量的内存大小 14.4.3  字节对齐 14.4.4  最宽基本类型 14.4.5  共用体的大小 14.5  枚举类型 14.5.1  枚举类型的定义 14.5.2  声明枚举变量 14.5.3  枚举常量是什么 14.6  给类型取个别名—typedef 14.6.1  typedef基本用法 14.6.2  #define用法 14.7  小结 14.8  上机实践 第15章  如何节省内存—位运算 15.1  什么是位运算 15.1.1  开灯关灯 15.1.2  改变状态 15.2  位逻辑运算符 15.2.1  位取反操作 15.2.2  位与运算 15.2.3  位或运算 15.2.4  位异或 15.2.5  实例分析 15.3  移位运算 15.3.1  基本形式 15.3.2  移位举例 15.4  小结 15.5  上机实践 第三篇  C语言进阶 第16章  存储不仅仅局限于内存—文件 16.1  什么是文件 16.1.1  文件 16.1.2  流 16.1.3  重定向 16.1.4  文件的处理形式—缓冲区和非缓冲区 16.1.5  文件的存储形式—文本形式和二进制形式 16.2  C语言如何使用文件 16.2.1  文件型指针 16.2.2  文件操作的步骤 16.3  文件的打开与关闭 16.3.1  打开文件—fopen 16.3.2  打开是否成功 16.3.3  关闭文件—fclose 16.4  文件的读写 16.4.1  读写的相对参照 16.4.2  如何判断文件已经结束 16.4.3  字符读写函数—fgetc和fputc 16.4.4  字符串读写函数—fgets和fputs 16.4.5  块读写函数—fread和fwrite 16.4.6  格式化文件输入输出—fprintf与fscanf 16.5  文件的定位 16.5.1  移到开头—rewind 16.5.2  得到当前位置—ftell 16.5.3  移动指针—fseek 16.6  小结 16.7  上机实践 第17章  灵活却难以理解—指针进阶 17.1  指针与数组 17.1.1  数组名指针 17.1.2  使用数组名常指针表示数组元素 17.1.3  指向数组元素的指针变量 17.1.4  指向数组的指针变量 17.1.5  指针数组 17.2  指针、结构体和结构体数组 17.2.1  两种访问形式 17.2.2  声明创建一个结构数组 17.2.3  结构数组的初始化 17.2.4  结构数组的使用 17.2.5  指向结构数组的指针 17.3  函数指针 17.3.1  函数名指针 17.3.2  指向函数的指针 17.3.3  函数指针类型 17.3.4  函数指针做函数参数 17.3.5  函数指针数组 17.3.6  指向函数指针的指针 17.4  小结 17.5  上机实践 第18章  更深入的理解—函数进阶 18.1  参数传递的副本机制 18.1.1  传值调用的副本机制 18.1.2  传址调用的副本机制 18.2  函数返回值的副本机制 18.2.1  return局部变量为什么合法 18.2.2  返回指针申请动态内存 18.2.3  不要返回指向栈内存的指针 18.2.4  返回指向只读存储区的指针 18.3  函数与结构体 18.3.1  结构体变量的传值和传址调用 18.3.2  结构体变量的成员作为函数参数 18.3.3  返回结构体的函数 18.3.4  返回结构体指针的函数 18.4  函数与数组 18.4.1  数组元素作为函数参数 18.4.2  数组名作为函数参数 18.4.3  *数组名作为函数参数 18.4.4  数组名作为函数参数时的退化 18.5  递归 18.5.1  递归流程 18.5.2  递归两要素 18.5.3  效率与可读性 18.6  带参数的主函数 18.7  小结 18.8  上机实践 第19章  生存期、作用域与可见域 19.1  内存分配 19.1.1  内存分区 19.1.2  变量的存储类别 19.1.3  生存期 19.1.4  作用域与可见域 19.2  auto变量 19.2.1  定义格式 19.2.2  作用域和生存期 19.2.3  屏蔽 19.2.4  重复定义 19.2.5  初始化 19.3  register变量 19.3.1  定义格式 19.3.2  使用举例 19.4  extern变量 19.4.1  全局变量定义 19.4.2  全局变量声明 19.4.3  可见域 19.4.4  屏蔽 19.4.5  利与弊 19.5  static变量 19.5.1  定义格式 19.5.2  静态局部变量 19.5.3  静态全局变量 19.5.4  extern变量和static变量的初始化 19.6  函数的作用域与可见域 19.6.1  内部函数 19.6.2  外部函数 19.7  结构体定义的作用域与可见域 19.7.1  定义位置与可见域 19.7.2  允许重复定义 19.8  小结 19.9  上机实践 第20章  编译及预处理 20.1  编译流程 20.1.1  编辑 20.1.2  预处理 20.1.3  编译 20.1.4  连接 20.2  程序错误 20.2.1  错误分类 20.2.2  编译错误 20.2.3  连接错误 20.2.4  逻辑错误 20.2.5  排错 20.3  预处理命令之宏定义 20.3.1  宏定义 20.3.2  不带参数的宏定义 20.3.3  带参数的宏定义 20.3.4  #define定义常量与const常量 20.3.5  文件包含 20.3.6  条件编译 20.4  小结 20.5  上机实践 第21章  数据结构 21.1  链表 21.1.1  链表的结构 21.1.2  创建链表并遍历输出 21.1.3  链表的插入 21.1.4  链表结点的删除 21.1.5  链表的逆置 21.1.6  链表的销毁 21.1.7  综合实例 21.1.8  循环链表 21.1.9  双链表 21.2  栈和队列 21.2.1  栈的定义 21.2.2  栈的分类 21.2.3  栈的操作 21.2.4  函数与栈 21.2.5  队列 21.3  小结 21.4  上机实践 第四篇  C语言程序设计实例与面试题解析 第22章  C语言程序课程设计:游戏 22.1  黑白棋 22.1.1  程序功能要求 22.1.2  输入输出样例 22.1.3  程序分析 22.1.4  程序初始化 22.1.5  初始化图形设备 22.1.6  绘制棋盘 22.1.7  交替绘制黑白棋 22.1.8  游戏(同时判断是否有一方胜利) 22.1.9  小结 22.2  五子棋 22.2.1  程序功能要求 22.2.2  输入输出样例 22.2.3  程序分析 22.2.4  主函数程序设计 22.2.5  系统初始化 22.2.6  移动棋子模块 22.2.7  程序胜负判定 22.2.8  小结 22.3  扫雷游戏 22.3.1  程序功能要求 22.3.2  输入输出样例 22.3.3  程序分析 22.3.4  程序设计 22.3.5  初始化图形设备 22.3.6  事件处理模块 22.3.7  游戏处理部分 22.3.8  小结 22.4  速算24 22.4.1  程序功能要求 22.4.2  输入输出样例 22.4.3  程序分析 22.4.4  程序设计 22.4.5  扑克牌处理部分 22.4.6  程序运算部分 22.4.7  小结 第23章  面试题解析 23.1  基础知识 23.1.1  指针自增自减有什么不同 23.1.2  什么是递归 23.1.3  宏定义与操作符的区别 23.1.4  引用与值传递的区别 23.1.5  指针和引用有什么区别 23.1.6  什么是栈 23.1.7  main函数执行前还会执行什么代码 23.1.8  static有什么用途 23.1.9  定义int **a[3][4], 则变量占用的内存空间为多少 23.1.10  什么是预编译 23.1.11  int (*s[10])(int)表示什么意义 23.1.12  结构与联合有何区别 23.2  算法和思维逻辑知识 23.2.1  100美元哪里去了 23.2.2  将16升水平均分给四个人 23.2.3  算出小王买了几瓶啤酒、几瓶饮料 23.2.4  找出不同的苹果 23.2.5  找出不同的球 23.2.6  猜自己的帽子颜色 23.2.7  三筐水果各是什么 23.2.8  最后剩下的是谁 23.2.9  聪明的商人 23.2.10  红球和白球 23.2.11  乌龟赛跑 23.2.12  投硬币 附录  ASCII编码表

热心网友 时间:2024-09-19 23:18

零基础学习C语言:本人在网上找了很久关于如何学习C语言,本人也是新手不知该如何开始学习,无意中发现这本书慢慢的我找到了学习的头绪!推荐给大家学习

目录 前言 第一篇  C语言基础 第1章  踏上征程前的思想动员 1.1  为什么选择C语言 1.2  如何学好C语言 1.3  语言概述 1.3.1  什么是语言 1.3.2  什么是机器语言 1.3.3  什么是汇编语言 1.3.4  面向过程的语言 1.3.5  什么是C语言 1.4  深刻认识程序如何开发出来—程序开发周期 1.4.1  编辑C源代码 1.4.2  编译C源代码 1.4.3  连接目标文件 1.4.4  编译连接过程示例 1.4.5  运行程序 1.5  VC++、C++、C和TC—认识开发环境和语言的区别 1.6  小结 1.7  上机实践 第2章  跟我写Hello World 2.1  自己动手创建程序 2.2  认识LCC-Win32开发环境 2.2.1  为什么选择LCC-Win32 2.2.2  启动LCC-Win32 2.2.3  新建Hello World工程 2.2.4  定义新工程 2.2.5  添加源代码到工程 2.2.6  编译器设置 2.2.7  连接器设置 2.2.8  调试器设置 2.2.9  开始编辑代码 2.3  编译运行—欣赏你的杰作 2.4  查看代码如何一步一步被执行—调试排错(debug) 2.4.1  debug一词的由来 2.4.2  设置断点 2.4.3  调试运行 2.5  小结 2.6  上机实践 第3章  分解HelloWorld—最简单C程序的组成 3.1  C程序概貌 3.2  为何有必要在代码里留下程序员的解释—注释 3.3  从哪里开始,到哪里结束—main函数 3.4  如何在屏幕上显示文字—函数调用 3.5  编译器如何认识printf函数—#include预处理器指示符 3.5.1  函数声明及其作用 3.5.2  试验寻找#include的作用 3.5.3  #include的作用 3.6  计算1+1—有些小作为的程序 3.7  数据从哪里来,又到哪里去—变量 3.7.1  变量在内存中的表现形式 3.7.2  编译器使用变量符号表 3.7.3  变量及其使用 3.8  自己设计C函数 3.8.1  在main函数中计算3个整数的平均数 3.8.2  在main函数中分3次计算3个整数的平均数 3.8.3  自编函数实现计算3个整数的平均数 3.8.4  如何自编写函数 3.8.5  试验观察总结函数声明和函数定义的意义 3.9  语句构成程序 3.10  向好程序员看齐—代码风格 3.11  小结 3.12  上机实践 第4章  如何存储和获取数据—变量及数据类型 4.1  二进制、八进制、十六进制 4.2  计算机中如何表示数据—字节和位 4.3  内存是存储数据的“房间”—认识计算机内存 4.4  数据类型 4.4.1  整数类型 4.4.2  整数的正负—有符号和无符号 4.4.3  实数类型 4.4.4  字符类型 4.4.5  数据类型总结 4.5  常量 4.5.1  直接常量(字面常量)和符号常量 4.5.2  符号常量的优点 4.5.3  字面常量的书写格式 4.5.4  转义字符 4.5.5  字符串 4.6  变量 4.6.1  变量的声明 4.6.2  变量声明的意义 4.6.3  标识符和关键字 4.6.4  变量在内存中占据的空间和变量的值 4.6.5  变量赋初值 4.7  几个与变量相关的经典算法 4.7.1  累加和累乘 4.7.2  交换两个变量的值 4.8  小结 4.9  上机实践 第5章  用屏幕和键盘交互—简单的输出和输入 5.1  输入—处理—输出:这就是程序 5.2  向屏幕输出—printf函数详解 5.2.1  printf函数的一般形式 5.2.2  格式字符串的一般形式 5.2.3  %d—十进制形式输出带符号整数 5.2.4  %最小宽度d格式符 5.2.5  %ld格式符—以长整型方式输出 5.2.6  %o格式符—以八进制形式输出整数 5.2.7  %x格式符—以十六进制的形式输出整数 5.2.8  %u格式符—以十进制形式输出unsigned型数据 5.2.9  %c格式符 5.2.10  %s格式符—输出字符串 5.2.11  %f格式符—输出实型数据 5.2.12  %e格式符—以指数形式输出实数 5.2.13  %g格式符—自动选择%f或者%e形式输出 5.2.14  printf函数小结 5.3  字符输出putchar和字符串输出puts 5.3.1  putchar函数(字符输出函数) 5.3.2  puts函数(字符串输出函数) 5.4  接收键盘输入—scanf函数详解 5.4.1  一般形式 5.4.2  scanf函数的工作原理 5.4.3  多数据输入分隔规则 5.4.4  格式字符 5.4.5  scanf使用方法说明 5.4.6  使用scanf函数的注意事项 5.5  字符输入函数getchar 5.6  输入输出程序举例 5.7  小结 5.8  上机实践 第6章  程序的基本构成—运算符和表达式 6.1  认识C中的运算符和表达式 6.1.1  认识运算符和表达式 6.1.2  操作数、运算符和表达式 6.1.3  C运算符简介 6.2  算术运算符和算术表达式 6.2.1  基本的算术运算符 6.2.2  ++自增、--自减运算符 6.2.3  算术表达式和运算符的优先级及结合性 6.3  逗号运算符和逗号表达式 6.3.1  逗号表达式的一般形式 6.3.2  逗号表达式的优先级和结合性 6.4  关系运算符和关系表达式 6.4.1  关系运算符的种类 6.4.2  关系表达式的一般形式 6.5  逻辑运算符和逻辑表达式 6.5.1  逻辑运算符 6.5.2  逻辑真值表 6.6  赋值运算符和赋值表达式 6.6.1  赋值表达式 6.6.2  复合赋值运算符 6.6.3  类型转换 6.6.4  左值与程序实体 6.7  强制类型转换和自动类型转换 6.7.1  强制类型转换 6.7.2  自动类型转换 6.7.3  函数调用时的转换 6.8  运算符的优先级 6.8.1  优先级、结合性汇总 6.8.2  短路表达式 6.8.3  sizeof运算符与sizeof表达式 6.9  小结 6.10  上机实践 第7章  程序的最小独立单元—语句 7.1  5种语句类型 7.1.1  表达式语句 7.1.2  函数调用语句 7.1.3  空语句 7.1.4  复合语句(块语句) 7.1.5  流程控制语句 7.2  结构化程序设计 7.2.1  什么是算法 7.2.2  算法的表示 7.2.3  算法的伪代码表示 7.2.4  算法的流程图表示 7.2.5  3种控制结构 7.2.6  算法示例 7.3  小结 7.4  上机实践 第8章  条件判断—分支结构 8.1  简单的条件判断—if语句 8.1.1  判断表达式 8.1.2  花括号和if结构体 8.2  两条岔路的选择—if else结构 8.2.1  关键在else 8.2.2  if else结构体 8.3  多分支语句和分支语句嵌套 8.3.1  多分支 8.3.2  多分支if结构 8.3.3  分支语句嵌套 8.4  开关语句—switch结构 8.4.1  一般形式 8.4.2  为什么叫开关语句 8.4.3  default语句 8.4.4  if结构和switch结构之比较 8.5  小结 8.6  上机实践 第9章  一遍又一遍—循环结构 9.1  构造循环 9.1.1  循环的条件 9.1.2  当型循环和直到型循环 9.2  简洁循环语句—while和do while结构 9.2.1  语法规则 9.2.2  代码块 9.3  最常用的循环语句—for结构 9.3.1  基本形式 9.3.2  表达式省略 9.3.3  循环终止和步长 9.4  循环嵌套 9.4.1  嵌套示例 9.4.2  嵌套的效率 9.5  与循环密切相关的流程转向控制语句 9.5.1  跳出循环—break 9.5.2  重来一次—continue 9.5.3  随心所欲—goto 9.6  小结 9.7  上机实践 第二篇  一窥C语言门庭 第10章  写程序就是写函数—函数入门 10.1  什么是函数—根据输入进行处理返回输出 10.1.1  分割 10.1.2  库函数和自定义函数 10.2  自定义函数 10.2.1  定义的语法 10.2.2  函数定义范例 10.2.3  不要重复定义 10.3  函数调用与返回 10.3.1  形参和实参 10.3.2  传址调用 10.3.3  函数返回 10.4  告诉编译器有这么一个函数—函数原型声明 10.4.1  函数声明的语法 10.4.2  声明不同于定义 10.4.3  标准库函数的声明 10.5  面向过程的程序结构 10.5.1  模块化 10.5.2  函数的调用过程—模块的配合 10.5.3  一个入口一个出口 10.5.4  自顶向下,逐步求精 10.5.5  封装和可重用 10.5.6  高内聚,低耦合 10.6  小结 10.7  上机实践 第11章  同一类型多个元素的集合—简单数组 11.1  什么是数组 11.1.1  数组是一大片连续内存空间 11.1.2  数组元素的访问 11.2  一维数组 11.2.1  一维数组的声明 11.2.2  一维数组元素的访问 11.2.3  数组的初始化 11.2.4  不合法的数组操作 11.3  二维数组 11.3.1  二维数组的声明 11.3.2  二维数组的初始化 11.3.3  二维数组应用举例 11.4  更高维的数组 11.4.1  高维数组的声明和元素访问 11.4.2  初始化 11.4.3  *数组在内存中是如何排列元素的 11.5  小结 11.6  上机实践 第12章  C语言难点—指针初探 12.1  计算机中的内存 12.1.1  内存地址 12.1.2  内存中保存的内容 12.1.3  地址就是指针 12.2  指针的定义 12.2.1  指针变量的声明 12.2.2  指针变量的初始化 12.2.3  指针变量的值 12.2.4  取地址操作符 12.2.5  指针变量占据一定的内存空间 12.2.6  指向指针的指针 12.3  使用指针 12.3.1  运算符* 12.3.2  指针的类型和指针所指向的类型 12.3.3  同类型指针的赋值 12.3.4  指针的类型和指针所指向的类型不同 12.4  指针的运算 12.4.1  算术运算之“指针+整数”或“指针-整数” 12.4.2  指针-指针 12.4.3  指针的大小比较 12.5  指针表达式与左值 12.5.1  指针与整型 12.5.2  指针与左值 12.5.3  指针与const 12.6  动态内存分配 12.6.1  动态分配的好处 12.6.2  malloc与free函数 12.6.3  calloc与free函数 12.6.4  free函数与指针 12.6.5  内存泄漏 12.6.6  释放已经释放了的内存会出问题 12.7  小结 12.8  上机实践 第13章  字符串及字符串操作 13.1  C风格字符串 13.1.1  C风格字符串的声明 13.1.2  C风格字符串在内存中的表示 13.2  字符数组的输入输出 13.2.1  字符数组可以进行整体输入输出 13.2.2  使用gets函数读入整行输入 13.2.3  访问字符数组中某个元素 13.2.4  更便捷的输出—使用puts函数 13.3  字符串处理函数 13.3.1  理解:数组名是常指针 13.3.2  strlen函数与size_t 13.3.3  字符串复制函数strcpy 13.3.4  字符串比较函数strcmp 13.3.5  字符串连接函数strcat 13.3.6  全转换为大写形式 13.3.7  链式操作 13.4  小结 13.5  上机实践 第14章  结构体、共用体、枚举和typedef 14.1  结构体 14.1.1  结构体的定义 14.1.2  声明结构体变量 14.1.3  初始化结构变量 14.1.4  访问结构体成员 14.1.5  结构体定义的位置 14.1.6  结构体变量赋值 14.2  特殊结构体 14.2.1  结构体嵌套 14.2.2  匿名结构体 14.3  共用体 14.3.1  什么是共用体 14.3.2  共用体的定义 14.3.3  声明共用体变量 14.3.4  共用体变量的初始化 14.3.5  共用体成员访问 14.3.6  共用体赋值 14.4  结构体和共用体的内存差异 14.4.1  结构体变量和共用体变量内存形式的不同 14.4.2  结构体变量的内存大小 14.4.3  字节对齐 14.4.4  最宽基本类型 14.4.5  共用体的大小 14.5  枚举类型 14.5.1  枚举类型的定义 14.5.2  声明枚举变量 14.5.3  枚举常量是什么 14.6  给类型取个别名—typedef 14.6.1  typedef基本用法 14.6.2  #define用法 14.7  小结 14.8  上机实践 第15章  如何节省内存—位运算 15.1  什么是位运算 15.1.1  开灯关灯 15.1.2  改变状态 15.2  位逻辑运算符 15.2.1  位取反操作 15.2.2  位与运算 15.2.3  位或运算 15.2.4  位异或 15.2.5  实例分析 15.3  移位运算 15.3.1  基本形式 15.3.2  移位举例 15.4  小结 15.5  上机实践 第三篇  C语言进阶 第16章  存储不仅仅局限于内存—文件 16.1  什么是文件 16.1.1  文件 16.1.2  流 16.1.3  重定向 16.1.4  文件的处理形式—缓冲区和非缓冲区 16.1.5  文件的存储形式—文本形式和二进制形式 16.2  C语言如何使用文件 16.2.1  文件型指针 16.2.2  文件操作的步骤 16.3  文件的打开与关闭 16.3.1  打开文件—fopen 16.3.2  打开是否成功 16.3.3  关闭文件—fclose 16.4  文件的读写 16.4.1  读写的相对参照 16.4.2  如何判断文件已经结束 16.4.3  字符读写函数—fgetc和fputc 16.4.4  字符串读写函数—fgets和fputs 16.4.5  块读写函数—fread和fwrite 16.4.6  格式化文件输入输出—fprintf与fscanf 16.5  文件的定位 16.5.1  移到开头—rewind 16.5.2  得到当前位置—ftell 16.5.3  移动指针—fseek 16.6  小结 16.7  上机实践 第17章  灵活却难以理解—指针进阶 17.1  指针与数组 17.1.1  数组名指针 17.1.2  使用数组名常指针表示数组元素 17.1.3  指向数组元素的指针变量 17.1.4  指向数组的指针变量 17.1.5  指针数组 17.2  指针、结构体和结构体数组 17.2.1  两种访问形式 17.2.2  声明创建一个结构数组 17.2.3  结构数组的初始化 17.2.4  结构数组的使用 17.2.5  指向结构数组的指针 17.3  函数指针 17.3.1  函数名指针 17.3.2  指向函数的指针 17.3.3  函数指针类型 17.3.4  函数指针做函数参数 17.3.5  函数指针数组 17.3.6  指向函数指针的指针 17.4  小结 17.5  上机实践 第18章  更深入的理解—函数进阶 18.1  参数传递的副本机制 18.1.1  传值调用的副本机制 18.1.2  传址调用的副本机制 18.2  函数返回值的副本机制 18.2.1  return局部变量为什么合法 18.2.2  返回指针申请动态内存 18.2.3  不要返回指向栈内存的指针 18.2.4  返回指向只读存储区的指针 18.3  函数与结构体 18.3.1  结构体变量的传值和传址调用 18.3.2  结构体变量的成员作为函数参数 18.3.3  返回结构体的函数 18.3.4  返回结构体指针的函数 18.4  函数与数组 18.4.1  数组元素作为函数参数 18.4.2  数组名作为函数参数 18.4.3  *数组名作为函数参数 18.4.4  数组名作为函数参数时的退化 18.5  递归 18.5.1  递归流程 18.5.2  递归两要素 18.5.3  效率与可读性 18.6  带参数的主函数 18.7  小结 18.8  上机实践 第19章  生存期、作用域与可见域 19.1  内存分配 19.1.1  内存分区 19.1.2  变量的存储类别 19.1.3  生存期 19.1.4  作用域与可见域 19.2  auto变量 19.2.1  定义格式 19.2.2  作用域和生存期 19.2.3  屏蔽 19.2.4  重复定义 19.2.5  初始化 19.3  register变量 19.3.1  定义格式 19.3.2  使用举例 19.4  extern变量 19.4.1  全局变量定义 19.4.2  全局变量声明 19.4.3  可见域 19.4.4  屏蔽 19.4.5  利与弊 19.5  static变量 19.5.1  定义格式 19.5.2  静态局部变量 19.5.3  静态全局变量 19.5.4  extern变量和static变量的初始化 19.6  函数的作用域与可见域 19.6.1  内部函数 19.6.2  外部函数 19.7  结构体定义的作用域与可见域 19.7.1  定义位置与可见域 19.7.2  允许重复定义 19.8  小结 19.9  上机实践 第20章  编译及预处理 20.1  编译流程 20.1.1  编辑 20.1.2  预处理 20.1.3  编译 20.1.4  连接 20.2  程序错误 20.2.1  错误分类 20.2.2  编译错误 20.2.3  连接错误 20.2.4  逻辑错误 20.2.5  排错 20.3  预处理命令之宏定义 20.3.1  宏定义 20.3.2  不带参数的宏定义 20.3.3  带参数的宏定义 20.3.4  #define定义常量与const常量 20.3.5  文件包含 20.3.6  条件编译 20.4  小结 20.5  上机实践 第21章  数据结构 21.1  链表 21.1.1  链表的结构 21.1.2  创建链表并遍历输出 21.1.3  链表的插入 21.1.4  链表结点的删除 21.1.5  链表的逆置 21.1.6  链表的销毁 21.1.7  综合实例 21.1.8  循环链表 21.1.9  双链表 21.2  栈和队列 21.2.1  栈的定义 21.2.2  栈的分类 21.2.3  栈的操作 21.2.4  函数与栈 21.2.5  队列 21.3  小结 21.4  上机实践 第四篇  C语言程序设计实例与面试题解析 第22章  C语言程序课程设计:游戏 22.1  黑白棋 22.1.1  程序功能要求 22.1.2  输入输出样例 22.1.3  程序分析 22.1.4  程序初始化 22.1.5  初始化图形设备 22.1.6  绘制棋盘 22.1.7  交替绘制黑白棋 22.1.8  游戏(同时判断是否有一方胜利) 22.1.9  小结 22.2  五子棋 22.2.1  程序功能要求 22.2.2  输入输出样例 22.2.3  程序分析 22.2.4  主函数程序设计 22.2.5  系统初始化 22.2.6  移动棋子模块 22.2.7  程序胜负判定 22.2.8  小结 22.3  扫雷游戏 22.3.1  程序功能要求 22.3.2  输入输出样例 22.3.3  程序分析 22.3.4  程序设计 22.3.5  初始化图形设备 22.3.6  事件处理模块 22.3.7  游戏处理部分 22.3.8  小结 22.4  速算24 22.4.1  程序功能要求 22.4.2  输入输出样例 22.4.3  程序分析 22.4.4  程序设计 22.4.5  扑克牌处理部分 22.4.6  程序运算部分 22.4.7  小结 第23章  面试题解析 23.1  基础知识 23.1.1  指针自增自减有什么不同 23.1.2  什么是递归 23.1.3  宏定义与操作符的区别 23.1.4  引用与值传递的区别 23.1.5  指针和引用有什么区别 23.1.6  什么是栈 23.1.7  main函数执行前还会执行什么代码 23.1.8  static有什么用途 23.1.9  定义int **a[3][4], 则变量占用的内存空间为多少 23.1.10  什么是预编译 23.1.11  int (*s[10])(int)表示什么意义 23.1.12  结构与联合有何区别 23.2  算法和思维逻辑知识 23.2.1  100美元哪里去了 23.2.2  将16升水平均分给四个人 23.2.3  算出小王买了几瓶啤酒、几瓶饮料 23.2.4  找出不同的苹果 23.2.5  找出不同的球 23.2.6  猜自己的帽子颜色 23.2.7  三筐水果各是什么 23.2.8  最后剩下的是谁 23.2.9  聪明的商人 23.2.10  红球和白球 23.2.11  乌龟赛跑 23.2.12  投硬币 附录  ASCII编码表

热心网友 时间:2024-09-19 23:19

零基础学习C语言:本人在网上找了很久关于如何学习C语言,本人也是新手不知该如何开始学习,无意中发现这本书慢慢的我找到了学习的头绪!推荐给大家学习

目录 前言 第一篇  C语言基础 第1章  踏上征程前的思想动员 1.1  为什么选择C语言 1.2  如何学好C语言 1.3  语言概述 1.3.1  什么是语言 1.3.2  什么是机器语言 1.3.3  什么是汇编语言 1.3.4  面向过程的语言 1.3.5  什么是C语言 1.4  深刻认识程序如何开发出来—程序开发周期 1.4.1  编辑C源代码 1.4.2  编译C源代码 1.4.3  连接目标文件 1.4.4  编译连接过程示例 1.4.5  运行程序 1.5  VC++、C++、C和TC—认识开发环境和语言的区别 1.6  小结 1.7  上机实践 第2章  跟我写Hello World 2.1  自己动手创建程序 2.2  认识LCC-Win32开发环境 2.2.1  为什么选择LCC-Win32 2.2.2  启动LCC-Win32 2.2.3  新建Hello World工程 2.2.4  定义新工程 2.2.5  添加源代码到工程 2.2.6  编译器设置 2.2.7  连接器设置 2.2.8  调试器设置 2.2.9  开始编辑代码 2.3  编译运行—欣赏你的杰作 2.4  查看代码如何一步一步被执行—调试排错(debug) 2.4.1  debug一词的由来 2.4.2  设置断点 2.4.3  调试运行 2.5  小结 2.6  上机实践 第3章  分解HelloWorld—最简单C程序的组成 3.1  C程序概貌 3.2  为何有必要在代码里留下程序员的解释—注释 3.3  从哪里开始,到哪里结束—main函数 3.4  如何在屏幕上显示文字—函数调用 3.5  编译器如何认识printf函数—#include预处理器指示符 3.5.1  函数声明及其作用 3.5.2  试验寻找#include的作用 3.5.3  #include的作用 3.6  计算1+1—有些小作为的程序 3.7  数据从哪里来,又到哪里去—变量 3.7.1  变量在内存中的表现形式 3.7.2  编译器使用变量符号表 3.7.3  变量及其使用 3.8  自己设计C函数 3.8.1  在main函数中计算3个整数的平均数 3.8.2  在main函数中分3次计算3个整数的平均数 3.8.3  自编函数实现计算3个整数的平均数 3.8.4  如何自编写函数 3.8.5  试验观察总结函数声明和函数定义的意义 3.9  语句构成程序 3.10  向好程序员看齐—代码风格 3.11  小结 3.12  上机实践 第4章  如何存储和获取数据—变量及数据类型 4.1  二进制、八进制、十六进制 4.2  计算机中如何表示数据—字节和位 4.3  内存是存储数据的“房间”—认识计算机内存 4.4  数据类型 4.4.1  整数类型 4.4.2  整数的正负—有符号和无符号 4.4.3  实数类型 4.4.4  字符类型 4.4.5  数据类型总结 4.5  常量 4.5.1  直接常量(字面常量)和符号常量 4.5.2  符号常量的优点 4.5.3  字面常量的书写格式 4.5.4  转义字符 4.5.5  字符串 4.6  变量 4.6.1  变量的声明 4.6.2  变量声明的意义 4.6.3  标识符和关键字 4.6.4  变量在内存中占据的空间和变量的值 4.6.5  变量赋初值 4.7  几个与变量相关的经典算法 4.7.1  累加和累乘 4.7.2  交换两个变量的值 4.8  小结 4.9  上机实践 第5章  用屏幕和键盘交互—简单的输出和输入 5.1  输入—处理—输出:这就是程序 5.2  向屏幕输出—printf函数详解 5.2.1  printf函数的一般形式 5.2.2  格式字符串的一般形式 5.2.3  %d—十进制形式输出带符号整数 5.2.4  %最小宽度d格式符 5.2.5  %ld格式符—以长整型方式输出 5.2.6  %o格式符—以八进制形式输出整数 5.2.7  %x格式符—以十六进制的形式输出整数 5.2.8  %u格式符—以十进制形式输出unsigned型数据 5.2.9  %c格式符 5.2.10  %s格式符—输出字符串 5.2.11  %f格式符—输出实型数据 5.2.12  %e格式符—以指数形式输出实数 5.2.13  %g格式符—自动选择%f或者%e形式输出 5.2.14  printf函数小结 5.3  字符输出putchar和字符串输出puts 5.3.1  putchar函数(字符输出函数) 5.3.2  puts函数(字符串输出函数) 5.4  接收键盘输入—scanf函数详解 5.4.1  一般形式 5.4.2  scanf函数的工作原理 5.4.3  多数据输入分隔规则 5.4.4  格式字符 5.4.5  scanf使用方法说明 5.4.6  使用scanf函数的注意事项 5.5  字符输入函数getchar 5.6  输入输出程序举例 5.7  小结 5.8  上机实践 第6章  程序的基本构成—运算符和表达式 6.1  认识C中的运算符和表达式 6.1.1  认识运算符和表达式 6.1.2  操作数、运算符和表达式 6.1.3  C运算符简介 6.2  算术运算符和算术表达式 6.2.1  基本的算术运算符 6.2.2  ++自增、--自减运算符 6.2.3  算术表达式和运算符的优先级及结合性 6.3  逗号运算符和逗号表达式 6.3.1  逗号表达式的一般形式 6.3.2  逗号表达式的优先级和结合性 6.4  关系运算符和关系表达式 6.4.1  关系运算符的种类 6.4.2  关系表达式的一般形式 6.5  逻辑运算符和逻辑表达式 6.5.1  逻辑运算符 6.5.2  逻辑真值表 6.6  赋值运算符和赋值表达式 6.6.1  赋值表达式 6.6.2  复合赋值运算符 6.6.3  类型转换 6.6.4  左值与程序实体 6.7  强制类型转换和自动类型转换 6.7.1  强制类型转换 6.7.2  自动类型转换 6.7.3  函数调用时的转换 6.8  运算符的优先级 6.8.1  优先级、结合性汇总 6.8.2  短路表达式 6.8.3  sizeof运算符与sizeof表达式 6.9  小结 6.10  上机实践 第7章  程序的最小独立单元—语句 7.1  5种语句类型 7.1.1  表达式语句 7.1.2  函数调用语句 7.1.3  空语句 7.1.4  复合语句(块语句) 7.1.5  流程控制语句 7.2  结构化程序设计 7.2.1  什么是算法 7.2.2  算法的表示 7.2.3  算法的伪代码表示 7.2.4  算法的流程图表示 7.2.5  3种控制结构 7.2.6  算法示例 7.3  小结 7.4  上机实践 第8章  条件判断—分支结构 8.1  简单的条件判断—if语句 8.1.1  判断表达式 8.1.2  花括号和if结构体 8.2  两条岔路的选择—if else结构 8.2.1  关键在else 8.2.2  if else结构体 8.3  多分支语句和分支语句嵌套 8.3.1  多分支 8.3.2  多分支if结构 8.3.3  分支语句嵌套 8.4  开关语句—switch结构 8.4.1  一般形式 8.4.2  为什么叫开关语句 8.4.3  default语句 8.4.4  if结构和switch结构之比较 8.5  小结 8.6  上机实践 第9章  一遍又一遍—循环结构 9.1  构造循环 9.1.1  循环的条件 9.1.2  当型循环和直到型循环 9.2  简洁循环语句—while和do while结构 9.2.1  语法规则 9.2.2  代码块 9.3  最常用的循环语句—for结构 9.3.1  基本形式 9.3.2  表达式省略 9.3.3  循环终止和步长 9.4  循环嵌套 9.4.1  嵌套示例 9.4.2  嵌套的效率 9.5  与循环密切相关的流程转向控制语句 9.5.1  跳出循环—break 9.5.2  重来一次—continue 9.5.3  随心所欲—goto 9.6  小结 9.7  上机实践 第二篇  一窥C语言门庭 第10章  写程序就是写函数—函数入门 10.1  什么是函数—根据输入进行处理返回输出 10.1.1  分割 10.1.2  库函数和自定义函数 10.2  自定义函数 10.2.1  定义的语法 10.2.2  函数定义范例 10.2.3  不要重复定义 10.3  函数调用与返回 10.3.1  形参和实参 10.3.2  传址调用 10.3.3  函数返回 10.4  告诉编译器有这么一个函数—函数原型声明 10.4.1  函数声明的语法 10.4.2  声明不同于定义 10.4.3  标准库函数的声明 10.5  面向过程的程序结构 10.5.1  模块化 10.5.2  函数的调用过程—模块的配合 10.5.3  一个入口一个出口 10.5.4  自顶向下,逐步求精 10.5.5  封装和可重用 10.5.6  高内聚,低耦合 10.6  小结 10.7  上机实践 第11章  同一类型多个元素的集合—简单数组 11.1  什么是数组 11.1.1  数组是一大片连续内存空间 11.1.2  数组元素的访问 11.2  一维数组 11.2.1  一维数组的声明 11.2.2  一维数组元素的访问 11.2.3  数组的初始化 11.2.4  不合法的数组操作 11.3  二维数组 11.3.1  二维数组的声明 11.3.2  二维数组的初始化 11.3.3  二维数组应用举例 11.4  更高维的数组 11.4.1  高维数组的声明和元素访问 11.4.2  初始化 11.4.3  *数组在内存中是如何排列元素的 11.5  小结 11.6  上机实践 第12章  C语言难点—指针初探 12.1  计算机中的内存 12.1.1  内存地址 12.1.2  内存中保存的内容 12.1.3  地址就是指针 12.2  指针的定义 12.2.1  指针变量的声明 12.2.2  指针变量的初始化 12.2.3  指针变量的值 12.2.4  取地址操作符 12.2.5  指针变量占据一定的内存空间 12.2.6  指向指针的指针 12.3  使用指针 12.3.1  运算符* 12.3.2  指针的类型和指针所指向的类型 12.3.3  同类型指针的赋值 12.3.4  指针的类型和指针所指向的类型不同 12.4  指针的运算 12.4.1  算术运算之“指针+整数”或“指针-整数” 12.4.2  指针-指针 12.4.3  指针的大小比较 12.5  指针表达式与左值 12.5.1  指针与整型 12.5.2  指针与左值 12.5.3  指针与const 12.6  动态内存分配 12.6.1  动态分配的好处 12.6.2  malloc与free函数 12.6.3  calloc与free函数 12.6.4  free函数与指针 12.6.5  内存泄漏 12.6.6  释放已经释放了的内存会出问题 12.7  小结 12.8  上机实践 第13章  字符串及字符串操作 13.1  C风格字符串 13.1.1  C风格字符串的声明 13.1.2  C风格字符串在内存中的表示 13.2  字符数组的输入输出 13.2.1  字符数组可以进行整体输入输出 13.2.2  使用gets函数读入整行输入 13.2.3  访问字符数组中某个元素 13.2.4  更便捷的输出—使用puts函数 13.3  字符串处理函数 13.3.1  理解:数组名是常指针 13.3.2  strlen函数与size_t 13.3.3  字符串复制函数strcpy 13.3.4  字符串比较函数strcmp 13.3.5  字符串连接函数strcat 13.3.6  全转换为大写形式 13.3.7  链式操作 13.4  小结 13.5  上机实践 第14章  结构体、共用体、枚举和typedef 14.1  结构体 14.1.1  结构体的定义 14.1.2  声明结构体变量 14.1.3  初始化结构变量 14.1.4  访问结构体成员 14.1.5  结构体定义的位置 14.1.6  结构体变量赋值 14.2  特殊结构体 14.2.1  结构体嵌套 14.2.2  匿名结构体 14.3  共用体 14.3.1  什么是共用体 14.3.2  共用体的定义 14.3.3  声明共用体变量 14.3.4  共用体变量的初始化 14.3.5  共用体成员访问 14.3.6  共用体赋值 14.4  结构体和共用体的内存差异 14.4.1  结构体变量和共用体变量内存形式的不同 14.4.2  结构体变量的内存大小 14.4.3  字节对齐 14.4.4  最宽基本类型 14.4.5  共用体的大小 14.5  枚举类型 14.5.1  枚举类型的定义 14.5.2  声明枚举变量 14.5.3  枚举常量是什么 14.6  给类型取个别名—typedef 14.6.1  typedef基本用法 14.6.2  #define用法 14.7  小结 14.8  上机实践 第15章  如何节省内存—位运算 15.1  什么是位运算 15.1.1  开灯关灯 15.1.2  改变状态 15.2  位逻辑运算符 15.2.1  位取反操作 15.2.2  位与运算 15.2.3  位或运算 15.2.4  位异或 15.2.5  实例分析 15.3  移位运算 15.3.1  基本形式 15.3.2  移位举例 15.4  小结 15.5  上机实践 第三篇  C语言进阶 第16章  存储不仅仅局限于内存—文件 16.1  什么是文件 16.1.1  文件 16.1.2  流 16.1.3  重定向 16.1.4  文件的处理形式—缓冲区和非缓冲区 16.1.5  文件的存储形式—文本形式和二进制形式 16.2  C语言如何使用文件 16.2.1  文件型指针 16.2.2  文件操作的步骤 16.3  文件的打开与关闭 16.3.1  打开文件—fopen 16.3.2  打开是否成功 16.3.3  关闭文件—fclose 16.4  文件的读写 16.4.1  读写的相对参照 16.4.2  如何判断文件已经结束 16.4.3  字符读写函数—fgetc和fputc 16.4.4  字符串读写函数—fgets和fputs 16.4.5  块读写函数—fread和fwrite 16.4.6  格式化文件输入输出—fprintf与fscanf 16.5  文件的定位 16.5.1  移到开头—rewind 16.5.2  得到当前位置—ftell 16.5.3  移动指针—fseek 16.6  小结 16.7  上机实践 第17章  灵活却难以理解—指针进阶 17.1  指针与数组 17.1.1  数组名指针 17.1.2  使用数组名常指针表示数组元素 17.1.3  指向数组元素的指针变量 17.1.4  指向数组的指针变量 17.1.5  指针数组 17.2  指针、结构体和结构体数组 17.2.1  两种访问形式 17.2.2  声明创建一个结构数组 17.2.3  结构数组的初始化 17.2.4  结构数组的使用 17.2.5  指向结构数组的指针 17.3  函数指针 17.3.1  函数名指针 17.3.2  指向函数的指针 17.3.3  函数指针类型 17.3.4  函数指针做函数参数 17.3.5  函数指针数组 17.3.6  指向函数指针的指针 17.4  小结 17.5  上机实践 第18章  更深入的理解—函数进阶 18.1  参数传递的副本机制 18.1.1  传值调用的副本机制 18.1.2  传址调用的副本机制 18.2  函数返回值的副本机制 18.2.1  return局部变量为什么合法 18.2.2  返回指针申请动态内存 18.2.3  不要返回指向栈内存的指针 18.2.4  返回指向只读存储区的指针 18.3  函数与结构体 18.3.1  结构体变量的传值和传址调用 18.3.2  结构体变量的成员作为函数参数 18.3.3  返回结构体的函数 18.3.4  返回结构体指针的函数 18.4  函数与数组 18.4.1  数组元素作为函数参数 18.4.2  数组名作为函数参数 18.4.3  *数组名作为函数参数 18.4.4  数组名作为函数参数时的退化 18.5  递归 18.5.1  递归流程 18.5.2  递归两要素 18.5.3  效率与可读性 18.6  带参数的主函数 18.7  小结 18.8  上机实践 第19章  生存期、作用域与可见域 19.1  内存分配 19.1.1  内存分区 19.1.2  变量的存储类别 19.1.3  生存期 19.1.4  作用域与可见域 19.2  auto变量 19.2.1  定义格式 19.2.2  作用域和生存期 19.2.3  屏蔽 19.2.4  重复定义 19.2.5  初始化 19.3  register变量 19.3.1  定义格式 19.3.2  使用举例 19.4  extern变量 19.4.1  全局变量定义 19.4.2  全局变量声明 19.4.3  可见域 19.4.4  屏蔽 19.4.5  利与弊 19.5  static变量 19.5.1  定义格式 19.5.2  静态局部变量 19.5.3  静态全局变量 19.5.4  extern变量和static变量的初始化 19.6  函数的作用域与可见域 19.6.1  内部函数 19.6.2  外部函数 19.7  结构体定义的作用域与可见域 19.7.1  定义位置与可见域 19.7.2  允许重复定义 19.8  小结 19.9  上机实践 第20章  编译及预处理 20.1  编译流程 20.1.1  编辑 20.1.2  预处理 20.1.3  编译 20.1.4  连接 20.2  程序错误 20.2.1  错误分类 20.2.2  编译错误 20.2.3  连接错误 20.2.4  逻辑错误 20.2.5  排错 20.3  预处理命令之宏定义 20.3.1  宏定义 20.3.2  不带参数的宏定义 20.3.3  带参数的宏定义 20.3.4  #define定义常量与const常量 20.3.5  文件包含 20.3.6  条件编译 20.4  小结 20.5  上机实践 第21章  数据结构 21.1  链表 21.1.1  链表的结构 21.1.2  创建链表并遍历输出 21.1.3  链表的插入 21.1.4  链表结点的删除 21.1.5  链表的逆置 21.1.6  链表的销毁 21.1.7  综合实例 21.1.8  循环链表 21.1.9  双链表 21.2  栈和队列 21.2.1  栈的定义 21.2.2  栈的分类 21.2.3  栈的操作 21.2.4  函数与栈 21.2.5  队列 21.3  小结 21.4  上机实践 第四篇  C语言程序设计实例与面试题解析 第22章  C语言程序课程设计:游戏 22.1  黑白棋 22.1.1  程序功能要求 22.1.2  输入输出样例 22.1.3  程序分析 22.1.4  程序初始化 22.1.5  初始化图形设备 22.1.6  绘制棋盘 22.1.7  交替绘制黑白棋 22.1.8  游戏(同时判断是否有一方胜利) 22.1.9  小结 22.2  五子棋 22.2.1  程序功能要求 22.2.2  输入输出样例 22.2.3  程序分析 22.2.4  主函数程序设计 22.2.5  系统初始化 22.2.6  移动棋子模块 22.2.7  程序胜负判定 22.2.8  小结 22.3  扫雷游戏 22.3.1  程序功能要求 22.3.2  输入输出样例 22.3.3  程序分析 22.3.4  程序设计 22.3.5  初始化图形设备 22.3.6  事件处理模块 22.3.7  游戏处理部分 22.3.8  小结 22.4  速算24 22.4.1  程序功能要求 22.4.2  输入输出样例 22.4.3  程序分析 22.4.4  程序设计 22.4.5  扑克牌处理部分 22.4.6  程序运算部分 22.4.7  小结 第23章  面试题解析 23.1  基础知识 23.1.1  指针自增自减有什么不同 23.1.2  什么是递归 23.1.3  宏定义与操作符的区别 23.1.4  引用与值传递的区别 23.1.5  指针和引用有什么区别 23.1.6  什么是栈 23.1.7  main函数执行前还会执行什么代码 23.1.8  static有什么用途 23.1.9  定义int **a[3][4], 则变量占用的内存空间为多少 23.1.10  什么是预编译 23.1.11  int (*s[10])(int)表示什么意义 23.1.12  结构与联合有何区别 23.2  算法和思维逻辑知识 23.2.1  100美元哪里去了 23.2.2  将16升水平均分给四个人 23.2.3  算出小王买了几瓶啤酒、几瓶饮料 23.2.4  找出不同的苹果 23.2.5  找出不同的球 23.2.6  猜自己的帽子颜色 23.2.7  三筐水果各是什么 23.2.8  最后剩下的是谁 23.2.9  聪明的商人 23.2.10  红球和白球 23.2.11  乌龟赛跑 23.2.12  投硬币 附录  ASCII编码表

热心网友 时间:2024-09-19 23:19

零基础学习C语言:本人在网上找了很久关于如何学习C语言,本人也是新手不知该如何开始学习,无意中发现这本书慢慢的我找到了学习的头绪!推荐给大家学习

目录 前言 第一篇  C语言基础 第1章  踏上征程前的思想动员 1.1  为什么选择C语言 1.2  如何学好C语言 1.3  语言概述 1.3.1  什么是语言 1.3.2  什么是机器语言 1.3.3  什么是汇编语言 1.3.4  面向过程的语言 1.3.5  什么是C语言 1.4  深刻认识程序如何开发出来—程序开发周期 1.4.1  编辑C源代码 1.4.2  编译C源代码 1.4.3  连接目标文件 1.4.4  编译连接过程示例 1.4.5  运行程序 1.5  VC++、C++、C和TC—认识开发环境和语言的区别 1.6  小结 1.7  上机实践 第2章  跟我写Hello World 2.1  自己动手创建程序 2.2  认识LCC-Win32开发环境 2.2.1  为什么选择LCC-Win32 2.2.2  启动LCC-Win32 2.2.3  新建Hello World工程 2.2.4  定义新工程 2.2.5  添加源代码到工程 2.2.6  编译器设置 2.2.7  连接器设置 2.2.8  调试器设置 2.2.9  开始编辑代码 2.3  编译运行—欣赏你的杰作 2.4  查看代码如何一步一步被执行—调试排错(debug) 2.4.1  debug一词的由来 2.4.2  设置断点 2.4.3  调试运行 2.5  小结 2.6  上机实践 第3章  分解HelloWorld—最简单C程序的组成 3.1  C程序概貌 3.2  为何有必要在代码里留下程序员的解释—注释 3.3  从哪里开始,到哪里结束—main函数 3.4  如何在屏幕上显示文字—函数调用 3.5  编译器如何认识printf函数—#include预处理器指示符 3.5.1  函数声明及其作用 3.5.2  试验寻找#include的作用 3.5.3  #include的作用 3.6  计算1+1—有些小作为的程序 3.7  数据从哪里来,又到哪里去—变量 3.7.1  变量在内存中的表现形式 3.7.2  编译器使用变量符号表 3.7.3  变量及其使用 3.8  自己设计C函数 3.8.1  在main函数中计算3个整数的平均数 3.8.2  在main函数中分3次计算3个整数的平均数 3.8.3  自编函数实现计算3个整数的平均数 3.8.4  如何自编写函数 3.8.5  试验观察总结函数声明和函数定义的意义 3.9  语句构成程序 3.10  向好程序员看齐—代码风格 3.11  小结 3.12  上机实践 第4章  如何存储和获取数据—变量及数据类型 4.1  二进制、八进制、十六进制 4.2  计算机中如何表示数据—字节和位 4.3  内存是存储数据的“房间”—认识计算机内存 4.4  数据类型 4.4.1  整数类型 4.4.2  整数的正负—有符号和无符号 4.4.3  实数类型 4.4.4  字符类型 4.4.5  数据类型总结 4.5  常量 4.5.1  直接常量(字面常量)和符号常量 4.5.2  符号常量的优点 4.5.3  字面常量的书写格式 4.5.4  转义字符 4.5.5  字符串 4.6  变量 4.6.1  变量的声明 4.6.2  变量声明的意义 4.6.3  标识符和关键字 4.6.4  变量在内存中占据的空间和变量的值 4.6.5  变量赋初值 4.7  几个与变量相关的经典算法 4.7.1  累加和累乘 4.7.2  交换两个变量的值 4.8  小结 4.9  上机实践 第5章  用屏幕和键盘交互—简单的输出和输入 5.1  输入—处理—输出:这就是程序 5.2  向屏幕输出—printf函数详解 5.2.1  printf函数的一般形式 5.2.2  格式字符串的一般形式 5.2.3  %d—十进制形式输出带符号整数 5.2.4  %最小宽度d格式符 5.2.5  %ld格式符—以长整型方式输出 5.2.6  %o格式符—以八进制形式输出整数 5.2.7  %x格式符—以十六进制的形式输出整数 5.2.8  %u格式符—以十进制形式输出unsigned型数据 5.2.9  %c格式符 5.2.10  %s格式符—输出字符串 5.2.11  %f格式符—输出实型数据 5.2.12  %e格式符—以指数形式输出实数 5.2.13  %g格式符—自动选择%f或者%e形式输出 5.2.14  printf函数小结 5.3  字符输出putchar和字符串输出puts 5.3.1  putchar函数(字符输出函数) 5.3.2  puts函数(字符串输出函数) 5.4  接收键盘输入—scanf函数详解 5.4.1  一般形式 5.4.2  scanf函数的工作原理 5.4.3  多数据输入分隔规则 5.4.4  格式字符 5.4.5  scanf使用方法说明 5.4.6  使用scanf函数的注意事项 5.5  字符输入函数getchar 5.6  输入输出程序举例 5.7  小结 5.8  上机实践 第6章  程序的基本构成—运算符和表达式 6.1  认识C中的运算符和表达式 6.1.1  认识运算符和表达式 6.1.2  操作数、运算符和表达式 6.1.3  C运算符简介 6.2  算术运算符和算术表达式 6.2.1  基本的算术运算符 6.2.2  ++自增、--自减运算符 6.2.3  算术表达式和运算符的优先级及结合性 6.3  逗号运算符和逗号表达式 6.3.1  逗号表达式的一般形式 6.3.2  逗号表达式的优先级和结合性 6.4  关系运算符和关系表达式 6.4.1  关系运算符的种类 6.4.2  关系表达式的一般形式 6.5  逻辑运算符和逻辑表达式 6.5.1  逻辑运算符 6.5.2  逻辑真值表 6.6  赋值运算符和赋值表达式 6.6.1  赋值表达式 6.6.2  复合赋值运算符 6.6.3  类型转换 6.6.4  左值与程序实体 6.7  强制类型转换和自动类型转换 6.7.1  强制类型转换 6.7.2  自动类型转换 6.7.3  函数调用时的转换 6.8  运算符的优先级 6.8.1  优先级、结合性汇总 6.8.2  短路表达式 6.8.3  sizeof运算符与sizeof表达式 6.9  小结 6.10  上机实践 第7章  程序的最小独立单元—语句 7.1  5种语句类型 7.1.1  表达式语句 7.1.2  函数调用语句 7.1.3  空语句 7.1.4  复合语句(块语句) 7.1.5  流程控制语句 7.2  结构化程序设计 7.2.1  什么是算法 7.2.2  算法的表示 7.2.3  算法的伪代码表示 7.2.4  算法的流程图表示 7.2.5  3种控制结构 7.2.6  算法示例 7.3  小结 7.4  上机实践 第8章  条件判断—分支结构 8.1  简单的条件判断—if语句 8.1.1  判断表达式 8.1.2  花括号和if结构体 8.2  两条岔路的选择—if else结构 8.2.1  关键在else 8.2.2  if else结构体 8.3  多分支语句和分支语句嵌套 8.3.1  多分支 8.3.2  多分支if结构 8.3.3  分支语句嵌套 8.4  开关语句—switch结构 8.4.1  一般形式 8.4.2  为什么叫开关语句 8.4.3  default语句 8.4.4  if结构和switch结构之比较 8.5  小结 8.6  上机实践 第9章  一遍又一遍—循环结构 9.1  构造循环 9.1.1  循环的条件 9.1.2  当型循环和直到型循环 9.2  简洁循环语句—while和do while结构 9.2.1  语法规则 9.2.2  代码块 9.3  最常用的循环语句—for结构 9.3.1  基本形式 9.3.2  表达式省略 9.3.3  循环终止和步长 9.4  循环嵌套 9.4.1  嵌套示例 9.4.2  嵌套的效率 9.5  与循环密切相关的流程转向控制语句 9.5.1  跳出循环—break 9.5.2  重来一次—continue 9.5.3  随心所欲—goto 9.6  小结 9.7  上机实践 第二篇  一窥C语言门庭 第10章  写程序就是写函数—函数入门 10.1  什么是函数—根据输入进行处理返回输出 10.1.1  分割 10.1.2  库函数和自定义函数 10.2  自定义函数 10.2.1  定义的语法 10.2.2  函数定义范例 10.2.3  不要重复定义 10.3  函数调用与返回 10.3.1  形参和实参 10.3.2  传址调用 10.3.3  函数返回 10.4  告诉编译器有这么一个函数—函数原型声明 10.4.1  函数声明的语法 10.4.2  声明不同于定义 10.4.3  标准库函数的声明 10.5  面向过程的程序结构 10.5.1  模块化 10.5.2  函数的调用过程—模块的配合 10.5.3  一个入口一个出口 10.5.4  自顶向下,逐步求精 10.5.5  封装和可重用 10.5.6  高内聚,低耦合 10.6  小结 10.7  上机实践 第11章  同一类型多个元素的集合—简单数组 11.1  什么是数组 11.1.1  数组是一大片连续内存空间 11.1.2  数组元素的访问 11.2  一维数组 11.2.1  一维数组的声明 11.2.2  一维数组元素的访问 11.2.3  数组的初始化 11.2.4  不合法的数组操作 11.3  二维数组 11.3.1  二维数组的声明 11.3.2  二维数组的初始化 11.3.3  二维数组应用举例 11.4  更高维的数组 11.4.1  高维数组的声明和元素访问 11.4.2  初始化 11.4.3  *数组在内存中是如何排列元素的 11.5  小结 11.6  上机实践 第12章  C语言难点—指针初探 12.1  计算机中的内存 12.1.1  内存地址 12.1.2  内存中保存的内容 12.1.3  地址就是指针 12.2  指针的定义 12.2.1  指针变量的声明 12.2.2  指针变量的初始化 12.2.3  指针变量的值 12.2.4  取地址操作符 12.2.5  指针变量占据一定的内存空间 12.2.6  指向指针的指针 12.3  使用指针 12.3.1  运算符* 12.3.2  指针的类型和指针所指向的类型 12.3.3  同类型指针的赋值 12.3.4  指针的类型和指针所指向的类型不同 12.4  指针的运算 12.4.1  算术运算之“指针+整数”或“指针-整数” 12.4.2  指针-指针 12.4.3  指针的大小比较 12.5  指针表达式与左值 12.5.1  指针与整型 12.5.2  指针与左值 12.5.3  指针与const 12.6  动态内存分配 12.6.1  动态分配的好处 12.6.2  malloc与free函数 12.6.3  calloc与free函数 12.6.4  free函数与指针 12.6.5  内存泄漏 12.6.6  释放已经释放了的内存会出问题 12.7  小结 12.8  上机实践 第13章  字符串及字符串操作 13.1  C风格字符串 13.1.1  C风格字符串的声明 13.1.2  C风格字符串在内存中的表示 13.2  字符数组的输入输出 13.2.1  字符数组可以进行整体输入输出 13.2.2  使用gets函数读入整行输入 13.2.3  访问字符数组中某个元素 13.2.4  更便捷的输出—使用puts函数 13.3  字符串处理函数 13.3.1  理解:数组名是常指针 13.3.2  strlen函数与size_t 13.3.3  字符串复制函数strcpy 13.3.4  字符串比较函数strcmp 13.3.5  字符串连接函数strcat 13.3.6  全转换为大写形式 13.3.7  链式操作 13.4  小结 13.5  上机实践 第14章  结构体、共用体、枚举和typedef 14.1  结构体 14.1.1  结构体的定义 14.1.2  声明结构体变量 14.1.3  初始化结构变量 14.1.4  访问结构体成员 14.1.5  结构体定义的位置 14.1.6  结构体变量赋值 14.2  特殊结构体 14.2.1  结构体嵌套 14.2.2  匿名结构体 14.3  共用体 14.3.1  什么是共用体 14.3.2  共用体的定义 14.3.3  声明共用体变量 14.3.4  共用体变量的初始化 14.3.5  共用体成员访问 14.3.6  共用体赋值 14.4  结构体和共用体的内存差异 14.4.1  结构体变量和共用体变量内存形式的不同 14.4.2  结构体变量的内存大小 14.4.3  字节对齐 14.4.4  最宽基本类型 14.4.5  共用体的大小 14.5  枚举类型 14.5.1  枚举类型的定义 14.5.2  声明枚举变量 14.5.3  枚举常量是什么 14.6  给类型取个别名—typedef 14.6.1  typedef基本用法 14.6.2  #define用法 14.7  小结 14.8  上机实践 第15章  如何节省内存—位运算 15.1  什么是位运算 15.1.1  开灯关灯 15.1.2  改变状态 15.2  位逻辑运算符 15.2.1  位取反操作 15.2.2  位与运算 15.2.3  位或运算 15.2.4  位异或 15.2.5  实例分析 15.3  移位运算 15.3.1  基本形式 15.3.2  移位举例 15.4  小结 15.5  上机实践 第三篇  C语言进阶 第16章  存储不仅仅局限于内存—文件 16.1  什么是文件 16.1.1  文件 16.1.2  流 16.1.3  重定向 16.1.4  文件的处理形式—缓冲区和非缓冲区 16.1.5  文件的存储形式—文本形式和二进制形式 16.2  C语言如何使用文件 16.2.1  文件型指针 16.2.2  文件操作的步骤 16.3  文件的打开与关闭 16.3.1  打开文件—fopen 16.3.2  打开是否成功 16.3.3  关闭文件—fclose 16.4  文件的读写 16.4.1  读写的相对参照 16.4.2  如何判断文件已经结束 16.4.3  字符读写函数—fgetc和fputc 16.4.4  字符串读写函数—fgets和fputs 16.4.5  块读写函数—fread和fwrite 16.4.6  格式化文件输入输出—fprintf与fscanf 16.5  文件的定位 16.5.1  移到开头—rewind 16.5.2  得到当前位置—ftell 16.5.3  移动指针—fseek 16.6  小结 16.7  上机实践 第17章  灵活却难以理解—指针进阶 17.1  指针与数组 17.1.1  数组名指针 17.1.2  使用数组名常指针表示数组元素 17.1.3  指向数组元素的指针变量 17.1.4  指向数组的指针变量 17.1.5  指针数组 17.2  指针、结构体和结构体数组 17.2.1  两种访问形式 17.2.2  声明创建一个结构数组 17.2.3  结构数组的初始化 17.2.4  结构数组的使用 17.2.5  指向结构数组的指针 17.3  函数指针 17.3.1  函数名指针 17.3.2  指向函数的指针 17.3.3  函数指针类型 17.3.4  函数指针做函数参数 17.3.5  函数指针数组 17.3.6  指向函数指针的指针 17.4  小结 17.5  上机实践 第18章  更深入的理解—函数进阶 18.1  参数传递的副本机制 18.1.1  传值调用的副本机制 18.1.2  传址调用的副本机制 18.2  函数返回值的副本机制 18.2.1  return局部变量为什么合法 18.2.2  返回指针申请动态内存 18.2.3  不要返回指向栈内存的指针 18.2.4  返回指向只读存储区的指针 18.3  函数与结构体 18.3.1  结构体变量的传值和传址调用 18.3.2  结构体变量的成员作为函数参数 18.3.3  返回结构体的函数 18.3.4  返回结构体指针的函数 18.4  函数与数组 18.4.1  数组元素作为函数参数 18.4.2  数组名作为函数参数 18.4.3  *数组名作为函数参数 18.4.4  数组名作为函数参数时的退化 18.5  递归 18.5.1  递归流程 18.5.2  递归两要素 18.5.3  效率与可读性 18.6  带参数的主函数 18.7  小结 18.8  上机实践 第19章  生存期、作用域与可见域 19.1  内存分配 19.1.1  内存分区 19.1.2  变量的存储类别 19.1.3  生存期 19.1.4  作用域与可见域 19.2  auto变量 19.2.1  定义格式 19.2.2  作用域和生存期 19.2.3  屏蔽 19.2.4  重复定义 19.2.5  初始化 19.3  register变量 19.3.1  定义格式 19.3.2  使用举例 19.4  extern变量 19.4.1  全局变量定义 19.4.2  全局变量声明 19.4.3  可见域 19.4.4  屏蔽 19.4.5  利与弊 19.5  static变量 19.5.1  定义格式 19.5.2  静态局部变量 19.5.3  静态全局变量 19.5.4  extern变量和static变量的初始化 19.6  函数的作用域与可见域 19.6.1  内部函数 19.6.2  外部函数 19.7  结构体定义的作用域与可见域 19.7.1  定义位置与可见域 19.7.2  允许重复定义 19.8  小结 19.9  上机实践 第20章  编译及预处理 20.1  编译流程 20.1.1  编辑 20.1.2  预处理 20.1.3  编译 20.1.4  连接 20.2  程序错误 20.2.1  错误分类 20.2.2  编译错误 20.2.3  连接错误 20.2.4  逻辑错误 20.2.5  排错 20.3  预处理命令之宏定义 20.3.1  宏定义 20.3.2  不带参数的宏定义 20.3.3  带参数的宏定义 20.3.4  #define定义常量与const常量 20.3.5  文件包含 20.3.6  条件编译 20.4  小结 20.5  上机实践 第21章  数据结构 21.1  链表 21.1.1  链表的结构 21.1.2  创建链表并遍历输出 21.1.3  链表的插入 21.1.4  链表结点的删除 21.1.5  链表的逆置 21.1.6  链表的销毁 21.1.7  综合实例 21.1.8  循环链表 21.1.9  双链表 21.2  栈和队列 21.2.1  栈的定义 21.2.2  栈的分类 21.2.3  栈的操作 21.2.4  函数与栈 21.2.5  队列 21.3  小结 21.4  上机实践 第四篇  C语言程序设计实例与面试题解析 第22章  C语言程序课程设计:游戏 22.1  黑白棋 22.1.1  程序功能要求 22.1.2  输入输出样例 22.1.3  程序分析 22.1.4  程序初始化 22.1.5  初始化图形设备 22.1.6  绘制棋盘 22.1.7  交替绘制黑白棋 22.1.8  游戏(同时判断是否有一方胜利) 22.1.9  小结 22.2  五子棋 22.2.1  程序功能要求 22.2.2  输入输出样例 22.2.3  程序分析 22.2.4  主函数程序设计 22.2.5  系统初始化 22.2.6  移动棋子模块 22.2.7  程序胜负判定 22.2.8  小结 22.3  扫雷游戏 22.3.1  程序功能要求 22.3.2  输入输出样例 22.3.3  程序分析 22.3.4  程序设计 22.3.5  初始化图形设备 22.3.6  事件处理模块 22.3.7  游戏处理部分 22.3.8  小结 22.4  速算24 22.4.1  程序功能要求 22.4.2  输入输出样例 22.4.3  程序分析 22.4.4  程序设计 22.4.5  扑克牌处理部分 22.4.6  程序运算部分 22.4.7  小结 第23章  面试题解析 23.1  基础知识 23.1.1  指针自增自减有什么不同 23.1.2  什么是递归 23.1.3  宏定义与操作符的区别 23.1.4  引用与值传递的区别 23.1.5  指针和引用有什么区别 23.1.6  什么是栈 23.1.7  main函数执行前还会执行什么代码 23.1.8  static有什么用途 23.1.9  定义int **a[3][4], 则变量占用的内存空间为多少 23.1.10  什么是预编译 23.1.11  int (*s[10])(int)表示什么意义 23.1.12  结构与联合有何区别 23.2  算法和思维逻辑知识 23.2.1  100美元哪里去了 23.2.2  将16升水平均分给四个人 23.2.3  算出小王买了几瓶啤酒、几瓶饮料 23.2.4  找出不同的苹果 23.2.5  找出不同的球 23.2.6  猜自己的帽子颜色 23.2.7  三筐水果各是什么 23.2.8  最后剩下的是谁 23.2.9  聪明的商人 23.2.10  红球和白球 23.2.11  乌龟赛跑 23.2.12  投硬币 附录  ASCII编码表

热心网友 时间:2024-09-19 23:19

零基础学习C语言:本人在网上找了很久关于如何学习C语言,本人也是新手不知该如何开始学习,无意中发现这本书慢慢的我找到了学习的头绪!推荐给大家学习

目录 前言 第一篇  C语言基础 第1章  踏上征程前的思想动员 1.1  为什么选择C语言 1.2  如何学好C语言 1.3  语言概述 1.3.1  什么是语言 1.3.2  什么是机器语言 1.3.3  什么是汇编语言 1.3.4  面向过程的语言 1.3.5  什么是C语言 1.4  深刻认识程序如何开发出来—程序开发周期 1.4.1  编辑C源代码 1.4.2  编译C源代码 1.4.3  连接目标文件 1.4.4  编译连接过程示例 1.4.5  运行程序 1.5  VC++、C++、C和TC—认识开发环境和语言的区别 1.6  小结 1.7  上机实践 第2章  跟我写Hello World 2.1  自己动手创建程序 2.2  认识LCC-Win32开发环境 2.2.1  为什么选择LCC-Win32 2.2.2  启动LCC-Win32 2.2.3  新建Hello World工程 2.2.4  定义新工程 2.2.5  添加源代码到工程 2.2.6  编译器设置 2.2.7  连接器设置 2.2.8  调试器设置 2.2.9  开始编辑代码 2.3  编译运行—欣赏你的杰作 2.4  查看代码如何一步一步被执行—调试排错(debug) 2.4.1  debug一词的由来 2.4.2  设置断点 2.4.3  调试运行 2.5  小结 2.6  上机实践 第3章  分解HelloWorld—最简单C程序的组成 3.1  C程序概貌 3.2  为何有必要在代码里留下程序员的解释—注释 3.3  从哪里开始,到哪里结束—main函数 3.4  如何在屏幕上显示文字—函数调用 3.5  编译器如何认识printf函数—#include预处理器指示符 3.5.1  函数声明及其作用 3.5.2  试验寻找#include的作用 3.5.3  #include的作用 3.6  计算1+1—有些小作为的程序 3.7  数据从哪里来,又到哪里去—变量 3.7.1  变量在内存中的表现形式 3.7.2  编译器使用变量符号表 3.7.3  变量及其使用 3.8  自己设计C函数 3.8.1  在main函数中计算3个整数的平均数 3.8.2  在main函数中分3次计算3个整数的平均数 3.8.3  自编函数实现计算3个整数的平均数 3.8.4  如何自编写函数 3.8.5  试验观察总结函数声明和函数定义的意义 3.9  语句构成程序 3.10  向好程序员看齐—代码风格 3.11  小结 3.12  上机实践 第4章  如何存储和获取数据—变量及数据类型 4.1  二进制、八进制、十六进制 4.2  计算机中如何表示数据—字节和位 4.3  内存是存储数据的“房间”—认识计算机内存 4.4  数据类型 4.4.1  整数类型 4.4.2  整数的正负—有符号和无符号 4.4.3  实数类型 4.4.4  字符类型 4.4.5  数据类型总结 4.5  常量 4.5.1  直接常量(字面常量)和符号常量 4.5.2  符号常量的优点 4.5.3  字面常量的书写格式 4.5.4  转义字符 4.5.5  字符串 4.6  变量 4.6.1  变量的声明 4.6.2  变量声明的意义 4.6.3  标识符和关键字 4.6.4  变量在内存中占据的空间和变量的值 4.6.5  变量赋初值 4.7  几个与变量相关的经典算法 4.7.1  累加和累乘 4.7.2  交换两个变量的值 4.8  小结 4.9  上机实践 第5章  用屏幕和键盘交互—简单的输出和输入 5.1  输入—处理—输出:这就是程序 5.2  向屏幕输出—printf函数详解 5.2.1  printf函数的一般形式 5.2.2  格式字符串的一般形式 5.2.3  %d—十进制形式输出带符号整数 5.2.4  %最小宽度d格式符 5.2.5  %ld格式符—以长整型方式输出 5.2.6  %o格式符—以八进制形式输出整数 5.2.7  %x格式符—以十六进制的形式输出整数 5.2.8  %u格式符—以十进制形式输出unsigned型数据 5.2.9  %c格式符 5.2.10  %s格式符—输出字符串 5.2.11  %f格式符—输出实型数据 5.2.12  %e格式符—以指数形式输出实数 5.2.13  %g格式符—自动选择%f或者%e形式输出 5.2.14  printf函数小结 5.3  字符输出putchar和字符串输出puts 5.3.1  putchar函数(字符输出函数) 5.3.2  puts函数(字符串输出函数) 5.4  接收键盘输入—scanf函数详解 5.4.1  一般形式 5.4.2  scanf函数的工作原理 5.4.3  多数据输入分隔规则 5.4.4  格式字符 5.4.5  scanf使用方法说明 5.4.6  使用scanf函数的注意事项 5.5  字符输入函数getchar 5.6  输入输出程序举例 5.7  小结 5.8  上机实践 第6章  程序的基本构成—运算符和表达式 6.1  认识C中的运算符和表达式 6.1.1  认识运算符和表达式 6.1.2  操作数、运算符和表达式 6.1.3  C运算符简介 6.2  算术运算符和算术表达式 6.2.1  基本的算术运算符 6.2.2  ++自增、--自减运算符 6.2.3  算术表达式和运算符的优先级及结合性 6.3  逗号运算符和逗号表达式 6.3.1  逗号表达式的一般形式 6.3.2  逗号表达式的优先级和结合性 6.4  关系运算符和关系表达式 6.4.1  关系运算符的种类 6.4.2  关系表达式的一般形式 6.5  逻辑运算符和逻辑表达式 6.5.1  逻辑运算符 6.5.2  逻辑真值表 6.6  赋值运算符和赋值表达式 6.6.1  赋值表达式 6.6.2  复合赋值运算符 6.6.3  类型转换 6.6.4  左值与程序实体 6.7  强制类型转换和自动类型转换 6.7.1  强制类型转换 6.7.2  自动类型转换 6.7.3  函数调用时的转换 6.8  运算符的优先级 6.8.1  优先级、结合性汇总 6.8.2  短路表达式 6.8.3  sizeof运算符与sizeof表达式 6.9  小结 6.10  上机实践 第7章  程序的最小独立单元—语句 7.1  5种语句类型 7.1.1  表达式语句 7.1.2  函数调用语句 7.1.3  空语句 7.1.4  复合语句(块语句) 7.1.5  流程控制语句 7.2  结构化程序设计 7.2.1  什么是算法 7.2.2  算法的表示 7.2.3  算法的伪代码表示 7.2.4  算法的流程图表示 7.2.5  3种控制结构 7.2.6  算法示例 7.3  小结 7.4  上机实践 第8章  条件判断—分支结构 8.1  简单的条件判断—if语句 8.1.1  判断表达式 8.1.2  花括号和if结构体 8.2  两条岔路的选择—if else结构 8.2.1  关键在else 8.2.2  if else结构体 8.3  多分支语句和分支语句嵌套 8.3.1  多分支 8.3.2  多分支if结构 8.3.3  分支语句嵌套 8.4  开关语句—switch结构 8.4.1  一般形式 8.4.2  为什么叫开关语句 8.4.3  default语句 8.4.4  if结构和switch结构之比较 8.5  小结 8.6  上机实践 第9章  一遍又一遍—循环结构 9.1  构造循环 9.1.1  循环的条件 9.1.2  当型循环和直到型循环 9.2  简洁循环语句—while和do while结构 9.2.1  语法规则 9.2.2  代码块 9.3  最常用的循环语句—for结构 9.3.1  基本形式 9.3.2  表达式省略 9.3.3  循环终止和步长 9.4  循环嵌套 9.4.1  嵌套示例 9.4.2  嵌套的效率 9.5  与循环密切相关的流程转向控制语句 9.5.1  跳出循环—break 9.5.2  重来一次—continue 9.5.3  随心所欲—goto 9.6  小结 9.7  上机实践 第二篇  一窥C语言门庭 第10章  写程序就是写函数—函数入门 10.1  什么是函数—根据输入进行处理返回输出 10.1.1  分割 10.1.2  库函数和自定义函数 10.2  自定义函数 10.2.1  定义的语法 10.2.2  函数定义范例 10.2.3  不要重复定义 10.3  函数调用与返回 10.3.1  形参和实参 10.3.2  传址调用 10.3.3  函数返回 10.4  告诉编译器有这么一个函数—函数原型声明 10.4.1  函数声明的语法 10.4.2  声明不同于定义 10.4.3  标准库函数的声明 10.5  面向过程的程序结构 10.5.1  模块化 10.5.2  函数的调用过程—模块的配合 10.5.3  一个入口一个出口 10.5.4  自顶向下,逐步求精 10.5.5  封装和可重用 10.5.6  高内聚,低耦合 10.6  小结 10.7  上机实践 第11章  同一类型多个元素的集合—简单数组 11.1  什么是数组 11.1.1  数组是一大片连续内存空间 11.1.2  数组元素的访问 11.2  一维数组 11.2.1  一维数组的声明 11.2.2  一维数组元素的访问 11.2.3  数组的初始化 11.2.4  不合法的数组操作 11.3  二维数组 11.3.1  二维数组的声明 11.3.2  二维数组的初始化 11.3.3  二维数组应用举例 11.4  更高维的数组 11.4.1  高维数组的声明和元素访问 11.4.2  初始化 11.4.3  *数组在内存中是如何排列元素的 11.5  小结 11.6  上机实践 第12章  C语言难点—指针初探 12.1  计算机中的内存 12.1.1  内存地址 12.1.2  内存中保存的内容 12.1.3  地址就是指针 12.2  指针的定义 12.2.1  指针变量的声明 12.2.2  指针变量的初始化 12.2.3  指针变量的值 12.2.4  取地址操作符 12.2.5  指针变量占据一定的内存空间 12.2.6  指向指针的指针 12.3  使用指针 12.3.1  运算符* 12.3.2  指针的类型和指针所指向的类型 12.3.3  同类型指针的赋值 12.3.4  指针的类型和指针所指向的类型不同 12.4  指针的运算 12.4.1  算术运算之“指针+整数”或“指针-整数” 12.4.2  指针-指针 12.4.3  指针的大小比较 12.5  指针表达式与左值 12.5.1  指针与整型 12.5.2  指针与左值 12.5.3  指针与const 12.6  动态内存分配 12.6.1  动态分配的好处 12.6.2  malloc与free函数 12.6.3  calloc与free函数 12.6.4  free函数与指针 12.6.5  内存泄漏 12.6.6  释放已经释放了的内存会出问题 12.7  小结 12.8  上机实践 第13章  字符串及字符串操作 13.1  C风格字符串 13.1.1  C风格字符串的声明 13.1.2  C风格字符串在内存中的表示 13.2  字符数组的输入输出 13.2.1  字符数组可以进行整体输入输出 13.2.2  使用gets函数读入整行输入 13.2.3  访问字符数组中某个元素 13.2.4  更便捷的输出—使用puts函数 13.3  字符串处理函数 13.3.1  理解:数组名是常指针 13.3.2  strlen函数与size_t 13.3.3  字符串复制函数strcpy 13.3.4  字符串比较函数strcmp 13.3.5  字符串连接函数strcat 13.3.6  全转换为大写形式 13.3.7  链式操作 13.4  小结 13.5  上机实践 第14章  结构体、共用体、枚举和typedef 14.1  结构体 14.1.1  结构体的定义 14.1.2  声明结构体变量 14.1.3  初始化结构变量 14.1.4  访问结构体成员 14.1.5  结构体定义的位置 14.1.6  结构体变量赋值 14.2  特殊结构体 14.2.1  结构体嵌套 14.2.2  匿名结构体 14.3  共用体 14.3.1  什么是共用体 14.3.2  共用体的定义 14.3.3  声明共用体变量 14.3.4  共用体变量的初始化 14.3.5  共用体成员访问 14.3.6  共用体赋值 14.4  结构体和共用体的内存差异 14.4.1  结构体变量和共用体变量内存形式的不同 14.4.2  结构体变量的内存大小 14.4.3  字节对齐 14.4.4  最宽基本类型 14.4.5  共用体的大小 14.5  枚举类型 14.5.1  枚举类型的定义 14.5.2  声明枚举变量 14.5.3  枚举常量是什么 14.6  给类型取个别名—typedef 14.6.1  typedef基本用法 14.6.2  #define用法 14.7  小结 14.8  上机实践 第15章  如何节省内存—位运算 15.1  什么是位运算 15.1.1  开灯关灯 15.1.2  改变状态 15.2  位逻辑运算符 15.2.1  位取反操作 15.2.2  位与运算 15.2.3  位或运算 15.2.4  位异或 15.2.5  实例分析 15.3  移位运算 15.3.1  基本形式 15.3.2  移位举例 15.4  小结 15.5  上机实践 第三篇  C语言进阶 第16章  存储不仅仅局限于内存—文件 16.1  什么是文件 16.1.1  文件 16.1.2  流 16.1.3  重定向 16.1.4  文件的处理形式—缓冲区和非缓冲区 16.1.5  文件的存储形式—文本形式和二进制形式 16.2  C语言如何使用文件 16.2.1  文件型指针 16.2.2  文件操作的步骤 16.3  文件的打开与关闭 16.3.1  打开文件—fopen 16.3.2  打开是否成功 16.3.3  关闭文件—fclose 16.4  文件的读写 16.4.1  读写的相对参照 16.4.2  如何判断文件已经结束 16.4.3  字符读写函数—fgetc和fputc 16.4.4  字符串读写函数—fgets和fputs 16.4.5  块读写函数—fread和fwrite 16.4.6  格式化文件输入输出—fprintf与fscanf 16.5  文件的定位 16.5.1  移到开头—rewind 16.5.2  得到当前位置—ftell 16.5.3  移动指针—fseek 16.6  小结 16.7  上机实践 第17章  灵活却难以理解—指针进阶 17.1  指针与数组 17.1.1  数组名指针 17.1.2  使用数组名常指针表示数组元素 17.1.3  指向数组元素的指针变量 17.1.4  指向数组的指针变量 17.1.5  指针数组 17.2  指针、结构体和结构体数组 17.2.1  两种访问形式 17.2.2  声明创建一个结构数组 17.2.3  结构数组的初始化 17.2.4  结构数组的使用 17.2.5  指向结构数组的指针 17.3  函数指针 17.3.1  函数名指针 17.3.2  指向函数的指针 17.3.3  函数指针类型 17.3.4  函数指针做函数参数 17.3.5  函数指针数组 17.3.6  指向函数指针的指针 17.4  小结 17.5  上机实践 第18章  更深入的理解—函数进阶 18.1  参数传递的副本机制 18.1.1  传值调用的副本机制 18.1.2  传址调用的副本机制 18.2  函数返回值的副本机制 18.2.1  return局部变量为什么合法 18.2.2  返回指针申请动态内存 18.2.3  不要返回指向栈内存的指针 18.2.4  返回指向只读存储区的指针 18.3  函数与结构体 18.3.1  结构体变量的传值和传址调用 18.3.2  结构体变量的成员作为函数参数 18.3.3  返回结构体的函数 18.3.4  返回结构体指针的函数 18.4  函数与数组 18.4.1  数组元素作为函数参数 18.4.2  数组名作为函数参数 18.4.3  *数组名作为函数参数 18.4.4  数组名作为函数参数时的退化 18.5  递归 18.5.1  递归流程 18.5.2  递归两要素 18.5.3  效率与可读性 18.6  带参数的主函数 18.7  小结 18.8  上机实践 第19章  生存期、作用域与可见域 19.1  内存分配 19.1.1  内存分区 19.1.2  变量的存储类别 19.1.3  生存期 19.1.4  作用域与可见域 19.2  auto变量 19.2.1  定义格式 19.2.2  作用域和生存期 19.2.3  屏蔽 19.2.4  重复定义 19.2.5  初始化 19.3  register变量 19.3.1  定义格式 19.3.2  使用举例 19.4  extern变量 19.4.1  全局变量定义 19.4.2  全局变量声明 19.4.3  可见域 19.4.4  屏蔽 19.4.5  利与弊 19.5  static变量 19.5.1  定义格式 19.5.2  静态局部变量 19.5.3  静态全局变量 19.5.4  extern变量和static变量的初始化 19.6  函数的作用域与可见域 19.6.1  内部函数 19.6.2  外部函数 19.7  结构体定义的作用域与可见域 19.7.1  定义位置与可见域 19.7.2  允许重复定义 19.8  小结 19.9  上机实践 第20章  编译及预处理 20.1  编译流程 20.1.1  编辑 20.1.2  预处理 20.1.3  编译 20.1.4  连接 20.2  程序错误 20.2.1  错误分类 20.2.2  编译错误 20.2.3  连接错误 20.2.4  逻辑错误 20.2.5  排错 20.3  预处理命令之宏定义 20.3.1  宏定义 20.3.2  不带参数的宏定义 20.3.3  带参数的宏定义 20.3.4  #define定义常量与const常量 20.3.5  文件包含 20.3.6  条件编译 20.4  小结 20.5  上机实践 第21章  数据结构 21.1  链表 21.1.1  链表的结构 21.1.2  创建链表并遍历输出 21.1.3  链表的插入 21.1.4  链表结点的删除 21.1.5  链表的逆置 21.1.6  链表的销毁 21.1.7  综合实例 21.1.8  循环链表 21.1.9  双链表 21.2  栈和队列 21.2.1  栈的定义 21.2.2  栈的分类 21.2.3  栈的操作 21.2.4  函数与栈 21.2.5  队列 21.3  小结 21.4  上机实践 第四篇  C语言程序设计实例与面试题解析 第22章  C语言程序课程设计:游戏 22.1  黑白棋 22.1.1  程序功能要求 22.1.2  输入输出样例 22.1.3  程序分析 22.1.4  程序初始化 22.1.5  初始化图形设备 22.1.6  绘制棋盘 22.1.7  交替绘制黑白棋 22.1.8  游戏(同时判断是否有一方胜利) 22.1.9  小结 22.2  五子棋 22.2.1  程序功能要求 22.2.2  输入输出样例 22.2.3  程序分析 22.2.4  主函数程序设计 22.2.5  系统初始化 22.2.6  移动棋子模块 22.2.7  程序胜负判定 22.2.8  小结 22.3  扫雷游戏 22.3.1  程序功能要求 22.3.2  输入输出样例 22.3.3  程序分析 22.3.4  程序设计 22.3.5  初始化图形设备 22.3.6  事件处理模块 22.3.7  游戏处理部分 22.3.8  小结 22.4  速算24 22.4.1  程序功能要求 22.4.2  输入输出样例 22.4.3  程序分析 22.4.4  程序设计 22.4.5  扑克牌处理部分 22.4.6  程序运算部分 22.4.7  小结 第23章  面试题解析 23.1  基础知识 23.1.1  指针自增自减有什么不同 23.1.2  什么是递归 23.1.3  宏定义与操作符的区别 23.1.4  引用与值传递的区别 23.1.5  指针和引用有什么区别 23.1.6  什么是栈 23.1.7  main函数执行前还会执行什么代码 23.1.8  static有什么用途 23.1.9  定义int **a[3][4], 则变量占用的内存空间为多少 23.1.10  什么是预编译 23.1.11  int (*s[10])(int)表示什么意义 23.1.12  结构与联合有何区别 23.2  算法和思维逻辑知识 23.2.1  100美元哪里去了 23.2.2  将16升水平均分给四个人 23.2.3  算出小王买了几瓶啤酒、几瓶饮料 23.2.4  找出不同的苹果 23.2.5  找出不同的球 23.2.6  猜自己的帽子颜色 23.2.7  三筐水果各是什么 23.2.8  最后剩下的是谁 23.2.9  聪明的商人 23.2.10  红球和白球 23.2.11  乌龟赛跑 23.2.12  投硬币 附录  ASCII编码表

热心网友 时间:2024-09-19 23:19

零基础学习C语言:本人在网上找了很久关于如何学习C语言,本人也是新手不知该如何开始学习,无意中发现这本书慢慢的我找到了学习的头绪!推荐给大家学习

目录 前言 第一篇  C语言基础 第1章  踏上征程前的思想动员 1.1  为什么选择C语言 1.2  如何学好C语言 1.3  语言概述 1.3.1  什么是语言 1.3.2  什么是机器语言 1.3.3  什么是汇编语言 1.3.4  面向过程的语言 1.3.5  什么是C语言 1.4  深刻认识程序如何开发出来—程序开发周期 1.4.1  编辑C源代码 1.4.2  编译C源代码 1.4.3  连接目标文件 1.4.4  编译连接过程示例 1.4.5  运行程序 1.5  VC++、C++、C和TC—认识开发环境和语言的区别 1.6  小结 1.7  上机实践 第2章  跟我写Hello World 2.1  自己动手创建程序 2.2  认识LCC-Win32开发环境 2.2.1  为什么选择LCC-Win32 2.2.2  启动LCC-Win32 2.2.3  新建Hello World工程 2.2.4  定义新工程 2.2.5  添加源代码到工程 2.2.6  编译器设置 2.2.7  连接器设置 2.2.8  调试器设置 2.2.9  开始编辑代码 2.3  编译运行—欣赏你的杰作 2.4  查看代码如何一步一步被执行—调试排错(debug) 2.4.1  debug一词的由来 2.4.2  设置断点 2.4.3  调试运行 2.5  小结 2.6  上机实践 第3章  分解HelloWorld—最简单C程序的组成 3.1  C程序概貌 3.2  为何有必要在代码里留下程序员的解释—注释 3.3  从哪里开始,到哪里结束—main函数 3.4  如何在屏幕上显示文字—函数调用 3.5  编译器如何认识printf函数—#include预处理器指示符 3.5.1  函数声明及其作用 3.5.2  试验寻找#include的作用 3.5.3  #include的作用 3.6  计算1+1—有些小作为的程序 3.7  数据从哪里来,又到哪里去—变量 3.7.1  变量在内存中的表现形式 3.7.2  编译器使用变量符号表 3.7.3  变量及其使用 3.8  自己设计C函数 3.8.1  在main函数中计算3个整数的平均数 3.8.2  在main函数中分3次计算3个整数的平均数 3.8.3  自编函数实现计算3个整数的平均数 3.8.4  如何自编写函数 3.8.5  试验观察总结函数声明和函数定义的意义 3.9  语句构成程序 3.10  向好程序员看齐—代码风格 3.11  小结 3.12  上机实践 第4章  如何存储和获取数据—变量及数据类型 4.1  二进制、八进制、十六进制 4.2  计算机中如何表示数据—字节和位 4.3  内存是存储数据的“房间”—认识计算机内存 4.4  数据类型 4.4.1  整数类型 4.4.2  整数的正负—有符号和无符号 4.4.3  实数类型 4.4.4  字符类型 4.4.5  数据类型总结 4.5  常量 4.5.1  直接常量(字面常量)和符号常量 4.5.2  符号常量的优点 4.5.3  字面常量的书写格式 4.5.4  转义字符 4.5.5  字符串 4.6  变量 4.6.1  变量的声明 4.6.2  变量声明的意义 4.6.3  标识符和关键字 4.6.4  变量在内存中占据的空间和变量的值 4.6.5  变量赋初值 4.7  几个与变量相关的经典算法 4.7.1  累加和累乘 4.7.2  交换两个变量的值 4.8  小结 4.9  上机实践 第5章  用屏幕和键盘交互—简单的输出和输入 5.1  输入—处理—输出:这就是程序 5.2  向屏幕输出—printf函数详解 5.2.1  printf函数的一般形式 5.2.2  格式字符串的一般形式 5.2.3  %d—十进制形式输出带符号整数 5.2.4  %最小宽度d格式符 5.2.5  %ld格式符—以长整型方式输出 5.2.6  %o格式符—以八进制形式输出整数 5.2.7  %x格式符—以十六进制的形式输出整数 5.2.8  %u格式符—以十进制形式输出unsigned型数据 5.2.9  %c格式符 5.2.10  %s格式符—输出字符串 5.2.11  %f格式符—输出实型数据 5.2.12  %e格式符—以指数形式输出实数 5.2.13  %g格式符—自动选择%f或者%e形式输出 5.2.14  printf函数小结 5.3  字符输出putchar和字符串输出puts 5.3.1  putchar函数(字符输出函数) 5.3.2  puts函数(字符串输出函数) 5.4  接收键盘输入—scanf函数详解 5.4.1  一般形式 5.4.2  scanf函数的工作原理 5.4.3  多数据输入分隔规则 5.4.4  格式字符 5.4.5  scanf使用方法说明 5.4.6  使用scanf函数的注意事项 5.5  字符输入函数getchar 5.6  输入输出程序举例 5.7  小结 5.8  上机实践 第6章  程序的基本构成—运算符和表达式 6.1  认识C中的运算符和表达式 6.1.1  认识运算符和表达式 6.1.2  操作数、运算符和表达式 6.1.3  C运算符简介 6.2  算术运算符和算术表达式 6.2.1  基本的算术运算符 6.2.2  ++自增、--自减运算符 6.2.3  算术表达式和运算符的优先级及结合性 6.3  逗号运算符和逗号表达式 6.3.1  逗号表达式的一般形式 6.3.2  逗号表达式的优先级和结合性 6.4  关系运算符和关系表达式 6.4.1  关系运算符的种类 6.4.2  关系表达式的一般形式 6.5  逻辑运算符和逻辑表达式 6.5.1  逻辑运算符 6.5.2  逻辑真值表 6.6  赋值运算符和赋值表达式 6.6.1  赋值表达式 6.6.2  复合赋值运算符 6.6.3  类型转换 6.6.4  左值与程序实体 6.7  强制类型转换和自动类型转换 6.7.1  强制类型转换 6.7.2  自动类型转换 6.7.3  函数调用时的转换 6.8  运算符的优先级 6.8.1  优先级、结合性汇总 6.8.2  短路表达式 6.8.3  sizeof运算符与sizeof表达式 6.9  小结 6.10  上机实践 第7章  程序的最小独立单元—语句 7.1  5种语句类型 7.1.1  表达式语句 7.1.2  函数调用语句 7.1.3  空语句 7.1.4  复合语句(块语句) 7.1.5  流程控制语句 7.2  结构化程序设计 7.2.1  什么是算法 7.2.2  算法的表示 7.2.3  算法的伪代码表示 7.2.4  算法的流程图表示 7.2.5  3种控制结构 7.2.6  算法示例 7.3  小结 7.4  上机实践 第8章  条件判断—分支结构 8.1  简单的条件判断—if语句 8.1.1  判断表达式 8.1.2  花括号和if结构体 8.2  两条岔路的选择—if else结构 8.2.1  关键在else 8.2.2  if else结构体 8.3  多分支语句和分支语句嵌套 8.3.1  多分支 8.3.2  多分支if结构 8.3.3  分支语句嵌套 8.4  开关语句—switch结构 8.4.1  一般形式 8.4.2  为什么叫开关语句 8.4.3  default语句 8.4.4  if结构和switch结构之比较 8.5  小结 8.6  上机实践 第9章  一遍又一遍—循环结构 9.1  构造循环 9.1.1  循环的条件 9.1.2  当型循环和直到型循环 9.2  简洁循环语句—while和do while结构 9.2.1  语法规则 9.2.2  代码块 9.3  最常用的循环语句—for结构 9.3.1  基本形式 9.3.2  表达式省略 9.3.3  循环终止和步长 9.4  循环嵌套 9.4.1  嵌套示例 9.4.2  嵌套的效率 9.5  与循环密切相关的流程转向控制语句 9.5.1  跳出循环—break 9.5.2  重来一次—continue 9.5.3  随心所欲—goto 9.6  小结 9.7  上机实践 第二篇  一窥C语言门庭 第10章  写程序就是写函数—函数入门 10.1  什么是函数—根据输入进行处理返回输出 10.1.1  分割 10.1.2  库函数和自定义函数 10.2  自定义函数 10.2.1  定义的语法 10.2.2  函数定义范例 10.2.3  不要重复定义 10.3  函数调用与返回 10.3.1  形参和实参 10.3.2  传址调用 10.3.3  函数返回 10.4  告诉编译器有这么一个函数—函数原型声明 10.4.1  函数声明的语法 10.4.2  声明不同于定义 10.4.3  标准库函数的声明 10.5  面向过程的程序结构 10.5.1  模块化 10.5.2  函数的调用过程—模块的配合 10.5.3  一个入口一个出口 10.5.4  自顶向下,逐步求精 10.5.5  封装和可重用 10.5.6  高内聚,低耦合 10.6  小结 10.7  上机实践 第11章  同一类型多个元素的集合—简单数组 11.1  什么是数组 11.1.1  数组是一大片连续内存空间 11.1.2  数组元素的访问 11.2  一维数组 11.2.1  一维数组的声明 11.2.2  一维数组元素的访问 11.2.3  数组的初始化 11.2.4  不合法的数组操作 11.3  二维数组 11.3.1  二维数组的声明 11.3.2  二维数组的初始化 11.3.3  二维数组应用举例 11.4  更高维的数组 11.4.1  高维数组的声明和元素访问 11.4.2  初始化 11.4.3  *数组在内存中是如何排列元素的 11.5  小结 11.6  上机实践 第12章  C语言难点—指针初探 12.1  计算机中的内存 12.1.1  内存地址 12.1.2  内存中保存的内容 12.1.3  地址就是指针 12.2  指针的定义 12.2.1  指针变量的声明 12.2.2  指针变量的初始化 12.2.3  指针变量的值 12.2.4  取地址操作符 12.2.5  指针变量占据一定的内存空间 12.2.6  指向指针的指针 12.3  使用指针 12.3.1  运算符* 12.3.2  指针的类型和指针所指向的类型 12.3.3  同类型指针的赋值 12.3.4  指针的类型和指针所指向的类型不同 12.4  指针的运算 12.4.1  算术运算之“指针+整数”或“指针-整数” 12.4.2  指针-指针 12.4.3  指针的大小比较 12.5  指针表达式与左值 12.5.1  指针与整型 12.5.2  指针与左值 12.5.3  指针与const 12.6  动态内存分配 12.6.1  动态分配的好处 12.6.2  malloc与free函数 12.6.3  calloc与free函数 12.6.4  free函数与指针 12.6.5  内存泄漏 12.6.6  释放已经释放了的内存会出问题 12.7  小结 12.8  上机实践 第13章  字符串及字符串操作 13.1  C风格字符串 13.1.1  C风格字符串的声明 13.1.2  C风格字符串在内存中的表示 13.2  字符数组的输入输出 13.2.1  字符数组可以进行整体输入输出 13.2.2  使用gets函数读入整行输入 13.2.3  访问字符数组中某个元素 13.2.4  更便捷的输出—使用puts函数 13.3  字符串处理函数 13.3.1  理解:数组名是常指针 13.3.2  strlen函数与size_t 13.3.3  字符串复制函数strcpy 13.3.4  字符串比较函数strcmp 13.3.5  字符串连接函数strcat 13.3.6  全转换为大写形式 13.3.7  链式操作 13.4  小结 13.5  上机实践 第14章  结构体、共用体、枚举和typedef 14.1  结构体 14.1.1  结构体的定义 14.1.2  声明结构体变量 14.1.3  初始化结构变量 14.1.4  访问结构体成员 14.1.5  结构体定义的位置 14.1.6  结构体变量赋值 14.2  特殊结构体 14.2.1  结构体嵌套 14.2.2  匿名结构体 14.3  共用体 14.3.1  什么是共用体 14.3.2  共用体的定义 14.3.3  声明共用体变量 14.3.4  共用体变量的初始化 14.3.5  共用体成员访问 14.3.6  共用体赋值 14.4  结构体和共用体的内存差异 14.4.1  结构体变量和共用体变量内存形式的不同 14.4.2  结构体变量的内存大小 14.4.3  字节对齐 14.4.4  最宽基本类型 14.4.5  共用体的大小 14.5  枚举类型 14.5.1  枚举类型的定义 14.5.2  声明枚举变量 14.5.3  枚举常量是什么 14.6  给类型取个别名—typedef 14.6.1  typedef基本用法 14.6.2  #define用法 14.7  小结 14.8  上机实践 第15章  如何节省内存—位运算 15.1  什么是位运算 15.1.1  开灯关灯 15.1.2  改变状态 15.2  位逻辑运算符 15.2.1  位取反操作 15.2.2  位与运算 15.2.3  位或运算 15.2.4  位异或 15.2.5  实例分析 15.3  移位运算 15.3.1  基本形式 15.3.2  移位举例 15.4  小结 15.5  上机实践 第三篇  C语言进阶 第16章  存储不仅仅局限于内存—文件 16.1  什么是文件 16.1.1  文件 16.1.2  流 16.1.3  重定向 16.1.4  文件的处理形式—缓冲区和非缓冲区 16.1.5  文件的存储形式—文本形式和二进制形式 16.2  C语言如何使用文件 16.2.1  文件型指针 16.2.2  文件操作的步骤 16.3  文件的打开与关闭 16.3.1  打开文件—fopen 16.3.2  打开是否成功 16.3.3  关闭文件—fclose 16.4  文件的读写 16.4.1  读写的相对参照 16.4.2  如何判断文件已经结束 16.4.3  字符读写函数—fgetc和fputc 16.4.4  字符串读写函数—fgets和fputs 16.4.5  块读写函数—fread和fwrite 16.4.6  格式化文件输入输出—fprintf与fscanf 16.5  文件的定位 16.5.1  移到开头—rewind 16.5.2  得到当前位置—ftell 16.5.3  移动指针—fseek 16.6  小结 16.7  上机实践 第17章  灵活却难以理解—指针进阶 17.1  指针与数组 17.1.1  数组名指针 17.1.2  使用数组名常指针表示数组元素 17.1.3  指向数组元素的指针变量 17.1.4  指向数组的指针变量 17.1.5  指针数组 17.2  指针、结构体和结构体数组 17.2.1  两种访问形式 17.2.2  声明创建一个结构数组 17.2.3  结构数组的初始化 17.2.4  结构数组的使用 17.2.5  指向结构数组的指针 17.3  函数指针 17.3.1  函数名指针 17.3.2  指向函数的指针 17.3.3  函数指针类型 17.3.4  函数指针做函数参数 17.3.5  函数指针数组 17.3.6  指向函数指针的指针 17.4  小结 17.5  上机实践 第18章  更深入的理解—函数进阶 18.1  参数传递的副本机制 18.1.1  传值调用的副本机制 18.1.2  传址调用的副本机制 18.2  函数返回值的副本机制 18.2.1  return局部变量为什么合法 18.2.2  返回指针申请动态内存 18.2.3  不要返回指向栈内存的指针 18.2.4  返回指向只读存储区的指针 18.3  函数与结构体 18.3.1  结构体变量的传值和传址调用 18.3.2  结构体变量的成员作为函数参数 18.3.3  返回结构体的函数 18.3.4  返回结构体指针的函数 18.4  函数与数组 18.4.1  数组元素作为函数参数 18.4.2  数组名作为函数参数 18.4.3  *数组名作为函数参数 18.4.4  数组名作为函数参数时的退化 18.5  递归 18.5.1  递归流程 18.5.2  递归两要素 18.5.3  效率与可读性 18.6  带参数的主函数 18.7  小结 18.8  上机实践 第19章  生存期、作用域与可见域 19.1  内存分配 19.1.1  内存分区 19.1.2  变量的存储类别 19.1.3  生存期 19.1.4  作用域与可见域 19.2  auto变量 19.2.1  定义格式 19.2.2  作用域和生存期 19.2.3  屏蔽 19.2.4  重复定义 19.2.5  初始化 19.3  register变量 19.3.1  定义格式 19.3.2  使用举例 19.4  extern变量 19.4.1  全局变量定义 19.4.2  全局变量声明 19.4.3  可见域 19.4.4  屏蔽 19.4.5  利与弊 19.5  static变量 19.5.1  定义格式 19.5.2  静态局部变量 19.5.3  静态全局变量 19.5.4  extern变量和static变量的初始化 19.6  函数的作用域与可见域 19.6.1  内部函数 19.6.2  外部函数 19.7  结构体定义的作用域与可见域 19.7.1  定义位置与可见域 19.7.2  允许重复定义 19.8  小结 19.9  上机实践 第20章  编译及预处理 20.1  编译流程 20.1.1  编辑 20.1.2  预处理 20.1.3  编译 20.1.4  连接 20.2  程序错误 20.2.1  错误分类 20.2.2  编译错误 20.2.3  连接错误 20.2.4  逻辑错误 20.2.5  排错 20.3  预处理命令之宏定义 20.3.1  宏定义 20.3.2  不带参数的宏定义 20.3.3  带参数的宏定义 20.3.4  #define定义常量与const常量 20.3.5  文件包含 20.3.6  条件编译 20.4  小结 20.5  上机实践 第21章  数据结构 21.1  链表 21.1.1  链表的结构 21.1.2  创建链表并遍历输出 21.1.3  链表的插入 21.1.4  链表结点的删除 21.1.5  链表的逆置 21.1.6  链表的销毁 21.1.7  综合实例 21.1.8  循环链表 21.1.9  双链表 21.2  栈和队列 21.2.1  栈的定义 21.2.2  栈的分类 21.2.3  栈的操作 21.2.4  函数与栈 21.2.5  队列 21.3  小结 21.4  上机实践 第四篇  C语言程序设计实例与面试题解析 第22章  C语言程序课程设计:游戏 22.1  黑白棋 22.1.1  程序功能要求 22.1.2  输入输出样例 22.1.3  程序分析 22.1.4  程序初始化 22.1.5  初始化图形设备 22.1.6  绘制棋盘 22.1.7  交替绘制黑白棋 22.1.8  游戏(同时判断是否有一方胜利) 22.1.9  小结 22.2  五子棋 22.2.1  程序功能要求 22.2.2  输入输出样例 22.2.3  程序分析 22.2.4  主函数程序设计 22.2.5  系统初始化 22.2.6  移动棋子模块 22.2.7  程序胜负判定 22.2.8  小结 22.3  扫雷游戏 22.3.1  程序功能要求 22.3.2  输入输出样例 22.3.3  程序分析 22.3.4  程序设计 22.3.5  初始化图形设备 22.3.6  事件处理模块 22.3.7  游戏处理部分 22.3.8  小结 22.4  速算24 22.4.1  程序功能要求 22.4.2  输入输出样例 22.4.3  程序分析 22.4.4  程序设计 22.4.5  扑克牌处理部分 22.4.6  程序运算部分 22.4.7  小结 第23章  面试题解析 23.1  基础知识 23.1.1  指针自增自减有什么不同 23.1.2  什么是递归 23.1.3  宏定义与操作符的区别 23.1.4  引用与值传递的区别 23.1.5  指针和引用有什么区别 23.1.6  什么是栈 23.1.7  main函数执行前还会执行什么代码 23.1.8  static有什么用途 23.1.9  定义int **a[3][4], 则变量占用的内存空间为多少 23.1.10  什么是预编译 23.1.11  int (*s[10])(int)表示什么意义 23.1.12  结构与联合有何区别 23.2  算法和思维逻辑知识 23.2.1  100美元哪里去了 23.2.2  将16升水平均分给四个人 23.2.3  算出小王买了几瓶啤酒、几瓶饮料 23.2.4  找出不同的苹果 23.2.5  找出不同的球 23.2.6  猜自己的帽子颜色 23.2.7  三筐水果各是什么 23.2.8  最后剩下的是谁 23.2.9  聪明的商人 23.2.10  红球和白球 23.2.11  乌龟赛跑 23.2.12  投硬币 附录  ASCII编码表

热心网友 时间:2024-09-19 23:19

零基础学习C语言:本人在网上找了很久关于如何学习C语言,本人也是新手不知该如何开始学习,无意中发现这本书慢慢的我找到了学习的头绪!推荐给大家学习

目录 前言 第一篇  C语言基础 第1章  踏上征程前的思想动员 1.1  为什么选择C语言 1.2  如何学好C语言 1.3  语言概述 1.3.1  什么是语言 1.3.2  什么是机器语言 1.3.3  什么是汇编语言 1.3.4  面向过程的语言 1.3.5  什么是C语言 1.4  深刻认识程序如何开发出来—程序开发周期 1.4.1  编辑C源代码 1.4.2  编译C源代码 1.4.3  连接目标文件 1.4.4  编译连接过程示例 1.4.5  运行程序 1.5  VC++、C++、C和TC—认识开发环境和语言的区别 1.6  小结 1.7  上机实践 第2章  跟我写Hello World 2.1  自己动手创建程序 2.2  认识LCC-Win32开发环境 2.2.1  为什么选择LCC-Win32 2.2.2  启动LCC-Win32 2.2.3  新建Hello World工程 2.2.4  定义新工程 2.2.5  添加源代码到工程 2.2.6  编译器设置 2.2.7  连接器设置 2.2.8  调试器设置 2.2.9  开始编辑代码 2.3  编译运行—欣赏你的杰作 2.4  查看代码如何一步一步被执行—调试排错(debug) 2.4.1  debug一词的由来 2.4.2  设置断点 2.4.3  调试运行 2.5  小结 2.6  上机实践 第3章  分解HelloWorld—最简单C程序的组成 3.1  C程序概貌 3.2  为何有必要在代码里留下程序员的解释—注释 3.3  从哪里开始,到哪里结束—main函数 3.4  如何在屏幕上显示文字—函数调用 3.5  编译器如何认识printf函数—#include预处理器指示符 3.5.1  函数声明及其作用 3.5.2  试验寻找#include的作用 3.5.3  #include的作用 3.6  计算1+1—有些小作为的程序 3.7  数据从哪里来,又到哪里去—变量 3.7.1  变量在内存中的表现形式 3.7.2  编译器使用变量符号表 3.7.3  变量及其使用 3.8  自己设计C函数 3.8.1  在main函数中计算3个整数的平均数 3.8.2  在main函数中分3次计算3个整数的平均数 3.8.3  自编函数实现计算3个整数的平均数 3.8.4  如何自编写函数 3.8.5  试验观察总结函数声明和函数定义的意义 3.9  语句构成程序 3.10  向好程序员看齐—代码风格 3.11  小结 3.12  上机实践 第4章  如何存储和获取数据—变量及数据类型 4.1  二进制、八进制、十六进制 4.2  计算机中如何表示数据—字节和位 4.3  内存是存储数据的“房间”—认识计算机内存 4.4  数据类型 4.4.1  整数类型 4.4.2  整数的正负—有符号和无符号 4.4.3  实数类型 4.4.4  字符类型 4.4.5  数据类型总结 4.5  常量 4.5.1  直接常量(字面常量)和符号常量 4.5.2  符号常量的优点 4.5.3  字面常量的书写格式 4.5.4  转义字符 4.5.5  字符串 4.6  变量 4.6.1  变量的声明 4.6.2  变量声明的意义 4.6.3  标识符和关键字 4.6.4  变量在内存中占据的空间和变量的值 4.6.5  变量赋初值 4.7  几个与变量相关的经典算法 4.7.1  累加和累乘 4.7.2  交换两个变量的值 4.8  小结 4.9  上机实践 第5章  用屏幕和键盘交互—简单的输出和输入 5.1  输入—处理—输出:这就是程序 5.2  向屏幕输出—printf函数详解 5.2.1  printf函数的一般形式 5.2.2  格式字符串的一般形式 5.2.3  %d—十进制形式输出带符号整数 5.2.4  %最小宽度d格式符 5.2.5  %ld格式符—以长整型方式输出 5.2.6  %o格式符—以八进制形式输出整数 5.2.7  %x格式符—以十六进制的形式输出整数 5.2.8  %u格式符—以十进制形式输出unsigned型数据 5.2.9  %c格式符 5.2.10  %s格式符—输出字符串 5.2.11  %f格式符—输出实型数据 5.2.12  %e格式符—以指数形式输出实数 5.2.13  %g格式符—自动选择%f或者%e形式输出 5.2.14  printf函数小结 5.3  字符输出putchar和字符串输出puts 5.3.1  putchar函数(字符输出函数) 5.3.2  puts函数(字符串输出函数) 5.4  接收键盘输入—scanf函数详解 5.4.1  一般形式 5.4.2  scanf函数的工作原理 5.4.3  多数据输入分隔规则 5.4.4  格式字符 5.4.5  scanf使用方法说明 5.4.6  使用scanf函数的注意事项 5.5  字符输入函数getchar 5.6  输入输出程序举例 5.7  小结 5.8  上机实践 第6章  程序的基本构成—运算符和表达式 6.1  认识C中的运算符和表达式 6.1.1  认识运算符和表达式 6.1.2  操作数、运算符和表达式 6.1.3  C运算符简介 6.2  算术运算符和算术表达式 6.2.1  基本的算术运算符 6.2.2  ++自增、--自减运算符 6.2.3  算术表达式和运算符的优先级及结合性 6.3  逗号运算符和逗号表达式 6.3.1  逗号表达式的一般形式 6.3.2  逗号表达式的优先级和结合性 6.4  关系运算符和关系表达式 6.4.1  关系运算符的种类 6.4.2  关系表达式的一般形式 6.5  逻辑运算符和逻辑表达式 6.5.1  逻辑运算符 6.5.2  逻辑真值表 6.6  赋值运算符和赋值表达式 6.6.1  赋值表达式 6.6.2  复合赋值运算符 6.6.3  类型转换 6.6.4  左值与程序实体 6.7  强制类型转换和自动类型转换 6.7.1  强制类型转换 6.7.2  自动类型转换 6.7.3  函数调用时的转换 6.8  运算符的优先级 6.8.1  优先级、结合性汇总 6.8.2  短路表达式 6.8.3  sizeof运算符与sizeof表达式 6.9  小结 6.10  上机实践 第7章  程序的最小独立单元—语句 7.1  5种语句类型 7.1.1  表达式语句 7.1.2  函数调用语句 7.1.3  空语句 7.1.4  复合语句(块语句) 7.1.5  流程控制语句 7.2  结构化程序设计 7.2.1  什么是算法 7.2.2  算法的表示 7.2.3  算法的伪代码表示 7.2.4  算法的流程图表示 7.2.5  3种控制结构 7.2.6  算法示例 7.3  小结 7.4  上机实践 第8章  条件判断—分支结构 8.1  简单的条件判断—if语句 8.1.1  判断表达式 8.1.2  花括号和if结构体 8.2  两条岔路的选择—if else结构 8.2.1  关键在else 8.2.2  if else结构体 8.3  多分支语句和分支语句嵌套 8.3.1  多分支 8.3.2  多分支if结构 8.3.3  分支语句嵌套 8.4  开关语句—switch结构 8.4.1  一般形式 8.4.2  为什么叫开关语句 8.4.3  default语句 8.4.4  if结构和switch结构之比较 8.5  小结 8.6  上机实践 第9章  一遍又一遍—循环结构 9.1  构造循环 9.1.1  循环的条件 9.1.2  当型循环和直到型循环 9.2  简洁循环语句—while和do while结构 9.2.1  语法规则 9.2.2  代码块 9.3  最常用的循环语句—for结构 9.3.1  基本形式 9.3.2  表达式省略 9.3.3  循环终止和步长 9.4  循环嵌套 9.4.1  嵌套示例 9.4.2  嵌套的效率 9.5  与循环密切相关的流程转向控制语句 9.5.1  跳出循环—break 9.5.2  重来一次—continue 9.5.3  随心所欲—goto 9.6  小结 9.7  上机实践 第二篇  一窥C语言门庭 第10章  写程序就是写函数—函数入门 10.1  什么是函数—根据输入进行处理返回输出 10.1.1  分割 10.1.2  库函数和自定义函数 10.2  自定义函数 10.2.1  定义的语法 10.2.2  函数定义范例 10.2.3  不要重复定义 10.3  函数调用与返回 10.3.1  形参和实参 10.3.2  传址调用 10.3.3  函数返回 10.4  告诉编译器有这么一个函数—函数原型声明 10.4.1  函数声明的语法 10.4.2  声明不同于定义 10.4.3  标准库函数的声明 10.5  面向过程的程序结构 10.5.1  模块化 10.5.2  函数的调用过程—模块的配合 10.5.3  一个入口一个出口 10.5.4  自顶向下,逐步求精 10.5.5  封装和可重用 10.5.6  高内聚,低耦合 10.6  小结 10.7  上机实践 第11章  同一类型多个元素的集合—简单数组 11.1  什么是数组 11.1.1  数组是一大片连续内存空间 11.1.2  数组元素的访问 11.2  一维数组 11.2.1  一维数组的声明 11.2.2  一维数组元素的访问 11.2.3  数组的初始化 11.2.4  不合法的数组操作 11.3  二维数组 11.3.1  二维数组的声明 11.3.2  二维数组的初始化 11.3.3  二维数组应用举例 11.4  更高维的数组 11.4.1  高维数组的声明和元素访问 11.4.2  初始化 11.4.3  *数组在内存中是如何排列元素的 11.5  小结 11.6  上机实践 第12章  C语言难点—指针初探 12.1  计算机中的内存 12.1.1  内存地址 12.1.2  内存中保存的内容 12.1.3  地址就是指针 12.2  指针的定义 12.2.1  指针变量的声明 12.2.2  指针变量的初始化 12.2.3  指针变量的值 12.2.4  取地址操作符 12.2.5  指针变量占据一定的内存空间 12.2.6  指向指针的指针 12.3  使用指针 12.3.1  运算符* 12.3.2  指针的类型和指针所指向的类型 12.3.3  同类型指针的赋值 12.3.4  指针的类型和指针所指向的类型不同 12.4  指针的运算 12.4.1  算术运算之“指针+整数”或“指针-整数” 12.4.2  指针-指针 12.4.3  指针的大小比较 12.5  指针表达式与左值 12.5.1  指针与整型 12.5.2  指针与左值 12.5.3  指针与const 12.6  动态内存分配 12.6.1  动态分配的好处 12.6.2  malloc与free函数 12.6.3  calloc与free函数 12.6.4  free函数与指针 12.6.5  内存泄漏 12.6.6  释放已经释放了的内存会出问题 12.7  小结 12.8  上机实践 第13章  字符串及字符串操作 13.1  C风格字符串 13.1.1  C风格字符串的声明 13.1.2  C风格字符串在内存中的表示 13.2  字符数组的输入输出 13.2.1  字符数组可以进行整体输入输出 13.2.2  使用gets函数读入整行输入 13.2.3  访问字符数组中某个元素 13.2.4  更便捷的输出—使用puts函数 13.3  字符串处理函数 13.3.1  理解:数组名是常指针 13.3.2  strlen函数与size_t 13.3.3  字符串复制函数strcpy 13.3.4  字符串比较函数strcmp 13.3.5  字符串连接函数strcat 13.3.6  全转换为大写形式 13.3.7  链式操作 13.4  小结 13.5  上机实践 第14章  结构体、共用体、枚举和typedef 14.1  结构体 14.1.1  结构体的定义 14.1.2  声明结构体变量 14.1.3  初始化结构变量 14.1.4  访问结构体成员 14.1.5  结构体定义的位置 14.1.6  结构体变量赋值 14.2  特殊结构体 14.2.1  结构体嵌套 14.2.2  匿名结构体 14.3  共用体 14.3.1  什么是共用体 14.3.2  共用体的定义 14.3.3  声明共用体变量 14.3.4  共用体变量的初始化 14.3.5  共用体成员访问 14.3.6  共用体赋值 14.4  结构体和共用体的内存差异 14.4.1  结构体变量和共用体变量内存形式的不同 14.4.2  结构体变量的内存大小 14.4.3  字节对齐 14.4.4  最宽基本类型 14.4.5  共用体的大小 14.5  枚举类型 14.5.1  枚举类型的定义 14.5.2  声明枚举变量 14.5.3  枚举常量是什么 14.6  给类型取个别名—typedef 14.6.1  typedef基本用法 14.6.2  #define用法 14.7  小结 14.8  上机实践 第15章  如何节省内存—位运算 15.1  什么是位运算 15.1.1  开灯关灯 15.1.2  改变状态 15.2  位逻辑运算符 15.2.1  位取反操作 15.2.2  位与运算 15.2.3  位或运算 15.2.4  位异或 15.2.5  实例分析 15.3  移位运算 15.3.1  基本形式 15.3.2  移位举例 15.4  小结 15.5  上机实践 第三篇  C语言进阶 第16章  存储不仅仅局限于内存—文件 16.1  什么是文件 16.1.1  文件 16.1.2  流 16.1.3  重定向 16.1.4  文件的处理形式—缓冲区和非缓冲区 16.1.5  文件的存储形式—文本形式和二进制形式 16.2  C语言如何使用文件 16.2.1  文件型指针 16.2.2  文件操作的步骤 16.3  文件的打开与关闭 16.3.1  打开文件—fopen 16.3.2  打开是否成功 16.3.3  关闭文件—fclose 16.4  文件的读写 16.4.1  读写的相对参照 16.4.2  如何判断文件已经结束 16.4.3  字符读写函数—fgetc和fputc 16.4.4  字符串读写函数—fgets和fputs 16.4.5  块读写函数—fread和fwrite 16.4.6  格式化文件输入输出—fprintf与fscanf 16.5  文件的定位 16.5.1  移到开头—rewind 16.5.2  得到当前位置—ftell 16.5.3  移动指针—fseek 16.6  小结 16.7  上机实践 第17章  灵活却难以理解—指针进阶 17.1  指针与数组 17.1.1  数组名指针 17.1.2  使用数组名常指针表示数组元素 17.1.3  指向数组元素的指针变量 17.1.4  指向数组的指针变量 17.1.5  指针数组 17.2  指针、结构体和结构体数组 17.2.1  两种访问形式 17.2.2  声明创建一个结构数组 17.2.3  结构数组的初始化 17.2.4  结构数组的使用 17.2.5  指向结构数组的指针 17.3  函数指针 17.3.1  函数名指针 17.3.2  指向函数的指针 17.3.3  函数指针类型 17.3.4  函数指针做函数参数 17.3.5  函数指针数组 17.3.6  指向函数指针的指针 17.4  小结 17.5  上机实践 第18章  更深入的理解—函数进阶 18.1  参数传递的副本机制 18.1.1  传值调用的副本机制 18.1.2  传址调用的副本机制 18.2  函数返回值的副本机制 18.2.1  return局部变量为什么合法 18.2.2  返回指针申请动态内存 18.2.3  不要返回指向栈内存的指针 18.2.4  返回指向只读存储区的指针 18.3  函数与结构体 18.3.1  结构体变量的传值和传址调用 18.3.2  结构体变量的成员作为函数参数 18.3.3  返回结构体的函数 18.3.4  返回结构体指针的函数 18.4  函数与数组 18.4.1  数组元素作为函数参数 18.4.2  数组名作为函数参数 18.4.3  *数组名作为函数参数 18.4.4  数组名作为函数参数时的退化 18.5  递归 18.5.1  递归流程 18.5.2  递归两要素 18.5.3  效率与可读性 18.6  带参数的主函数 18.7  小结 18.8  上机实践 第19章  生存期、作用域与可见域 19.1  内存分配 19.1.1  内存分区 19.1.2  变量的存储类别 19.1.3  生存期 19.1.4  作用域与可见域 19.2  auto变量 19.2.1  定义格式 19.2.2  作用域和生存期 19.2.3  屏蔽 19.2.4  重复定义 19.2.5  初始化 19.3  register变量 19.3.1  定义格式 19.3.2  使用举例 19.4  extern变量 19.4.1  全局变量定义 19.4.2  全局变量声明 19.4.3  可见域 19.4.4  屏蔽 19.4.5  利与弊 19.5  static变量 19.5.1  定义格式 19.5.2  静态局部变量 19.5.3  静态全局变量 19.5.4  extern变量和static变量的初始化 19.6  函数的作用域与可见域 19.6.1  内部函数 19.6.2  外部函数 19.7  结构体定义的作用域与可见域 19.7.1  定义位置与可见域 19.7.2  允许重复定义 19.8  小结 19.9  上机实践 第20章  编译及预处理 20.1  编译流程 20.1.1  编辑 20.1.2  预处理 20.1.3  编译 20.1.4  连接 20.2  程序错误 20.2.1  错误分类 20.2.2  编译错误 20.2.3  连接错误 20.2.4  逻辑错误 20.2.5  排错 20.3  预处理命令之宏定义 20.3.1  宏定义 20.3.2  不带参数的宏定义 20.3.3  带参数的宏定义 20.3.4  #define定义常量与const常量 20.3.5  文件包含 20.3.6  条件编译 20.4  小结 20.5  上机实践 第21章  数据结构 21.1  链表 21.1.1  链表的结构 21.1.2  创建链表并遍历输出 21.1.3  链表的插入 21.1.4  链表结点的删除 21.1.5  链表的逆置 21.1.6  链表的销毁 21.1.7  综合实例 21.1.8  循环链表 21.1.9  双链表 21.2  栈和队列 21.2.1  栈的定义 21.2.2  栈的分类 21.2.3  栈的操作 21.2.4  函数与栈 21.2.5  队列 21.3  小结 21.4  上机实践 第四篇  C语言程序设计实例与面试题解析 第22章  C语言程序课程设计:游戏 22.1  黑白棋 22.1.1  程序功能要求 22.1.2  输入输出样例 22.1.3  程序分析 22.1.4  程序初始化 22.1.5  初始化图形设备 22.1.6  绘制棋盘 22.1.7  交替绘制黑白棋 22.1.8  游戏(同时判断是否有一方胜利) 22.1.9  小结 22.2  五子棋 22.2.1  程序功能要求 22.2.2  输入输出样例 22.2.3  程序分析 22.2.4  主函数程序设计 22.2.5  系统初始化 22.2.6  移动棋子模块 22.2.7  程序胜负判定 22.2.8  小结 22.3  扫雷游戏 22.3.1  程序功能要求 22.3.2  输入输出样例 22.3.3  程序分析 22.3.4  程序设计 22.3.5  初始化图形设备 22.3.6  事件处理模块 22.3.7  游戏处理部分 22.3.8  小结 22.4  速算24 22.4.1  程序功能要求 22.4.2  输入输出样例 22.4.3  程序分析 22.4.4  程序设计 22.4.5  扑克牌处理部分 22.4.6  程序运算部分 22.4.7  小结 第23章  面试题解析 23.1  基础知识 23.1.1  指针自增自减有什么不同 23.1.2  什么是递归 23.1.3  宏定义与操作符的区别 23.1.4  引用与值传递的区别 23.1.5  指针和引用有什么区别 23.1.6  什么是栈 23.1.7  main函数执行前还会执行什么代码 23.1.8  static有什么用途 23.1.9  定义int **a[3][4], 则变量占用的内存空间为多少 23.1.10  什么是预编译 23.1.11  int (*s[10])(int)表示什么意义 23.1.12  结构与联合有何区别 23.2  算法和思维逻辑知识 23.2.1  100美元哪里去了 23.2.2  将16升水平均分给四个人 23.2.3  算出小王买了几瓶啤酒、几瓶饮料 23.2.4  找出不同的苹果 23.2.5  找出不同的球 23.2.6  猜自己的帽子颜色 23.2.7  三筐水果各是什么 23.2.8  最后剩下的是谁 23.2.9  聪明的商人 23.2.10  红球和白球 23.2.11  乌龟赛跑 23.2.12  投硬币 附录  ASCII编码表
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
"应交税费-应交增值税"账本中应该怎么设置明细科目 本届奥运会女排冠军是哪个 女子排球冠军是哪个国家 巴黎奥运会女排冠军是哪国 奥运女排冠军是哪个国家 奥运会女排冠军是哪国 2024年奥运会女排冠军 电磁炉玻璃面板换下多少钱一个 电磁炉换个面板要多少钱一个 电磁炉面板要换多少钱 PS运用中,三原色三补色如何解决各种偏色问题? 男人对女孩说你是我的药,你要是有事我也完了是什么意思? 什么是“本我”,“自我”和“超我”16 本我、自我、超我的区别。169 弗洛伊德的本我自我超我理论、详细?1554 iphone有恋爱养成游戏吗?164 2016年三门峡市教育局正副局长都有谁8 求购5t一30t制冰设备 本人想建个日产20T的制冰厂,望求... 新买的惠普笔记本被偷了,已经报过警了,怎么锁定电脑1 求推荐经典言情小说、虐文啊啊啊110 求言情小说虐文!谢谢16 斯柯达电瓶保修期一般多久 想租一台混凝土细石泵一个月要给厂家多少钱?1 我月经不好,买了点雪蛤吃了.为什么会吐 颜色词的文化差异算对外汉语教学的内容吗1 “80后”陈良文拟提名副厅级,曾是安徽省文科状元,他为何能这么优秀? 2022年学什么技术吃香?4 传说之下ink!SANS的战斗曲59 2022年什么比较火?男生应该学个什么技术? 想知道,2022年学个什么技术吃香?1 男人对女人说,你是我的药,如果你要是出什么事了,我的后后辈子... 男人对女人说你就是我的安眠药是什么意思6 路边摆摊非法,请问是违反了什么法律?160 色盲是怎么被发现的?138 谁知道对外汉语教学中,词缀应该怎么教 电影胭脂扣哪年在大陆公演? 胭脂扣是哪一年拍的?为什么他没有随她而去?是懦弱吗???1 混凝土浇筑用的地泵车多少钱1 房子抵押贷款8万三年还每月还多少本金加利息? 我贷款8万,分12期,利息一分五,每月还本金加利息,这样每个...5 已知某二叉树的先序遍历序列是aecdb,中序遍历序列是ead... 求好看的言情小说,要虐文,往死里虐。35 求现代虐文言情小说。 电脑被偷,本电脑有防盗系统吗 【这三个游戏主机的英语单词怎么读】XBOX360!PS2!W...2 xbox360和wii哪个好704 有什么是你去了澳门才知道的事情呢? 澳门有哪些必去景点?7 怎么让平板通电以后自动开机 我爱上了我家邻居的女儿,我该怎么和她表白呢?平时接触不多不过...1