内容简介
主要内容:介绍C编程语言;使用C语言编程,开启编程之旅;使用循环、数组、字符串、文本、指针、函数、VO等使用字符串和文本编写应用程序代码;程序的有效结构;处理数据、文件、工具等。
目录
目 录第1章 C语言编程 11.1 C语言 11.2 标准库 21.3 学习C语言 21.4 创建C程序 21.4.1 编辑 21.4.2 编译 31.4.3 链接 31.4.4 执行 41.5 创建个程序 51.6 编辑个程序 51.7 处理错误 61.8 剖析一个简单的程序 71.8.1 注释 71.8.2 预处理指令 81.8.3 定义main()函数 91.8.4 关键字 91.8.5 函数体 91.8.6 输出信息 111.8.7 参数 111.8.8 控制符 111.8.9 三字母序列 131.9 预处理器 131.10 用C语言开发程序 141.10.1 了解问题 141.10.2 详细设计 141.10.3 实施 151.10.4 测试 151.11 函数及模块化编程 151.12 常见错误 181.13 要点 191.14 小结 191.15 习题 19第2章 编程初步 212.1 计算机的内存 212.2 什么是变量 232.3 存储整数的变量 242.3.1 变量的使用 282.3.2 变量的初始化 302.4 变量与内存 352.4.1 带符号的整数类型 362.4.2 无符号的整数类型 362.4.3 整数常量 372.5 使用浮点数 392.6 浮点数变量 402.6.1 使用浮点数完成除法运算 412.6.2 控制输出中的小数位数 422.6.3 控制输出的字段宽度 422.7 较复杂的表达式 432.8 定义命名常量 462.8.1 极限值 482.8.2 si运算符 502.9 选择正确的类型 512.10 强制类型转换 542.10.1 自动转换类型 552.10.2 隐式类型转换的规则 552.10.3 赋值语句中的隐式类型转换 562.11 再谈数值数据类型 572.11.1 字符类型 572.11.2 字符的输入输出 582.11.3 枚举 612.11.4 存储布尔值的变量 632.12 赋值操作的op=形式 642.13 数学函数 652.14 设计一个程序 662.14.1 问题 662.14.2 分析 662.14.3 解决方案 682.15 小结 722.16 练习 73第3章 条件判断 753.1 判断过程 753.1.1 算术比较 763.1.2 基本的if语句 763.1.3 扩展if语句:if-else 793.1.4 在if语句中使用代码块 823.1.5 嵌套的if语句 823.1.6 测试字符 853.1.7 逻辑运算符 883.1.8 条件运算符 913.1.9 运算符的优先级 943.2 多项选择问题 983.2.1 给多项选择使用else-if语句 983.2.2 switch语句 993.2.3 goto语句 1073.3 按位运算符 1083.3.1 按位运算符的op=用法 1103.3.2 使用按位运算符 1113.4 设计程序 1153.4.1 问题 1153.4.2 分析 1153.4.3 解决方案 1163.5 小结 1193.6 练习 119第4章 循环 1214.1 循环概述 1214.2 递增和递减运算符 1224.3 for循环 1224.4 for循环的一般语法 1264.5 再谈递增运算符和递减_x00B_运算符 1264.5.1 递增运算符 1264.5.2 递增运算符的前置和后置_x00B_形式 1274.5.3 递减运算符 1274.6 再论for循环 1284.6.1 修改for循环控制变量 1304.6.2 没有参数的for循环 1314.6.3 循环内的break语句 1314.6.4 使用for循环限制输入 1334.6.5 生成伪整数 1364.6.6 再谈循环控制选项 1384.6.7 浮点类型的循环控制变量 1384.6.8 字符类型的循环控制变量 1394.7 while循环 1394.8 嵌套的循环 1424.9 嵌套循环和goto语句 1474.10 do-while循环 1484.11 continue语句 1514.12 设计程序 1514.12.1 问题 1514.12.2 分析 1514.12.3 解决方案 1524.13 小结 1634.14 习题 163第5章 数组 1655.1 数组简介 1655.1.1 不用数组的程序 1655.1.2 什么是数组 1675.1.3 使用数组 1685.2 寻址运算符 1715.3 数组和地址 1735.4 数组的初始化 1745.5 确定数组的大小 1755.6 多维数组 1765.7 多维数组的初始化 1775.8 常量数组 1835.9 变长数组 1855.10 设计一个程序 1875.10.1 问题 1875.10.2 分析 1875.10.3 解决方案 1885.11 小结 1945.12 习题 195第6章 字符串和文本的应用 1976.1 什么是字符串 1976.2 存储字符串的变量 1986.3 字符串操作 2036.3.1 检查对C11/C17的支持 2036.3.2 确定字符串的长度 2056.3.3 字符串 2056.3.4 连接字符串 2066.3.5 比较字符串 2096.3.6 搜索字符串 2136.3.7 对字符串进行标记 2176.3.8 将换行符读入字符串 2216.4 分析和转换字符串 2226.4.1 转换字符的大小写形式 2246.4.2 将字符串转换成数值 2276.5 设计一个程序 2296.5.1 问题 2296.5.2 分析 2296.5.3 解决方案 2296.6 小结 2356.7 习题 235第7章 指针 2377.1 指针初探 2377.1.1 声明指针 2387.1.2 通过指针访问值 2397.1.3 使用指针 2427.1.4 指向常量的指针 2457.1.5 常量指针 2467.1.6 指针的命名 2477.2 数组和指针 2477.3 多维数组 2507.3.1 多维数组和指针 2537.3.2 访问数组元素 2547.4 内存的使用 2577.4.1 动态内存分配:malloc()函数 2587.4.2 释放动态分配的内存 2597.4.3 用calloc()函数分配内存 2637.4.4 扩展动态分配的内存 2637.5 使用指针处理字符串 2677.5.1 使用指针数组 2677.5.2 指针和数组记号 2747.6 设计程序 2787.6.1 问题 2787.6.2 分析 2787.6.3 解决方案 2797.7 小结 2867.8 习题 286第8章 程序的结构 2898.1 程序的结构概述 2898.1.1 变量的作用域和生存期 2908.1.2 变量的作用域和函数 2938.2 函数 2938.2.1 定义函数 2938.2.2 return语句 2968.3 按值传递机制 3008.4 函数原型 3018.5 指针用作参数和返回值 3028.5.1 常量参数 3038.5.2 返回指针的风险 3098.6 小结 3118.7 习题 312第9章 函数再探 3139.1 函数指针 3139.1.1 声明函数指针 3139.1.2 通过函数指针调用函数 3149.1.3 函数指针的数组 3169.1.4 作为变元的函数指针 3189.2 函数中的变量 3219.2.1 静态变量:函数内部的追踪 3219.2.2 在函数之间共享变量 3239.3 调用自己的函数:递归 3259.4 变元个数可变的函数 3289.4.1 va_list 3319.4.2 长度可变的变元列表的_x00B_基本规则 3319.5 main()函数 3329.6 结束程序 3339.6.1 abort()函数 3339.6.2 exit()和atexit()函数 3349.6.3 _Exit()函数 3349.6.4 quick_exit()和at_quick_exit()_x00B_函数 3349.7 提高能 3359.7.1 内联声明函数 3359.7.2 使用restrict关键字 3359.7.3 _Noreturn函数限定符 3369.8 设计程序 3369.8.1 问题 3369.8.2 分析 3379.8.3 解决方案 3389.9 小结 3529.10 习题 352第10章 基本输入和输出操作 35510.1 输入和输出流 35510.2 标准流 35610.3 键盘输入 35610.3.1 格式化键盘输入 35610.3.2 输入格式控制字符串 35710.3.3 输入格式字符串中的字符 36210.3.4 输入浮点数的各种变化 36310.3.5 读取十六进制和八进制值 36410.3.6 用scanf_s()读取字符 36610.3.7 从键盘上输入字符串 36710.3.8 单个字符的键盘输入 36810.4 屏幕输出 37310.4.1 使用printf_s()的格式化_x00B_输出 37310.4.2 转义序列 37510.4.3 整数输出 37610.4.4 输出浮点数 37810.4.5 字符输出 37910.5 其他输出函数 38110.5.1 屏幕的非格式化输出 38110.5.2 数组的格式化输出 38210.5.3 数组的格式化输入 38210.6 小结 38310.7 习题 383第11章 结构化数据 38511.1 数据结构:使用struct 38511.1.1 定义结构类型和结构变量 38611.1.2 访问结构成员 38711.1.3 未命名的结构 39011.1.4 结构数组 39011.1.5 表达式中的结构成员 39311.1.6 结构指针 39311.1.7 为结构动态分配内存 39411.2 再探结构成员 39611.2.1 将一个结构作为另一个_x00B_结构的成员 39611.2.2 声明结构中的结构 39711.2.3 将结构指针用作结构成员 39911.2.4 双向链表 40311.2.5 结构中的位字段 40611.3 结构与函数 40711.3.1 结构作为函数的变元 40711.3.2 结构指针作为函数变元 40811.3.3 作为函数返回值的结构 40911.3.4 二叉树 41411.4 共享内存 42211.5 设计程序 42711.5.1 问题 42711.5.2 分析 42711.5.3 解决方案 42711.6 小结 44011.7 习题 440第12章 处理文件 44112.1 文件的概念 44112.1.1 文件中的位置 44212.1.2 文件流 44212.2 文件访问 44212.2.1 打开文件 44312.2.2 缓存文件操作 44512.2.3 文件重命名 44612.2.4 关闭文件 44612.2.5 删除文件 44712.3 写入文本文件 44712.4 读取文本文件 44812.5 在文本文件中读写字符串 45112.6 格式化文件的输入输出 45512.6.1 格式化文件输出 45512.6.2 格式化文件输入 45612.7 错误处理 45812.8 再探文本文件操作模式 45912.9 freopen_s()函数 46012.10 二进制文件的输入输出 46112.10.1 以二进制模式打开文件 46212.10.2 写入二进制文件 46212.10.3 读取二进制文件 46312.11 在文件中移动 46812.11.1 文件定位操作 46912.11.2 找出文件中的当前位置 46912.11.3 在文件中设定位置 47012.12 使用临时文件 47612.12.1 创建临时文件 47612.12.2 创建的文件名 47712.13 更新二进制文件 47812.13.1 修改文件的内容 48312.13.2 从键盘输入创建记录 48412.13.3 将记录写入文件 48512.13.4 从文件中读取记录 48612.13.5 写入文件 48612.13.6 列出文件内容 48712.13.7 更新已有的文件内容 48812.14 文件打开模式小结 49512.15 设计程序 49512.15.1 问题 49512.15.2 分析 49512.15.3 解决方案 49612.16 小结 50112.17 习题 501第13章 预处理器和调试 50313.1 预处理 50313.1.1 在程序含头文件 50313.1.2 定义自己的头文件 50413.1.3 管理多个源文件 50413.1.4 外部变量 50413.1.5 静态函数 50513.1.6 替换程序源代码 50513.2 宏 50613.2.1 看起来像函数的宏 50713.2.2 字符串作为宏参数 50813.2.3 在宏展开式中结合两个_x00B_变元 50913.3 多行上的预处理器指令 51013.3.1 预处理器逻辑指令 51013.3.2 条件编译 51013.3.3 测试多个条件 51113.3.4 取消定义的标识符 51113.3.5 测试标识符的值的_x00B_指令 51113.3.6 多项选择 51213.3.7 标准预处理宏 51313.3.8 通用宏 51413.4 调试方法 51513.4.1 集成的调试器 51513.4.2 调试阶段的预处理器 51513.4.3 断言 51913.5 日期和时间函数 52213.5.1 获取时间值 52213.5.2 获取日期 52513.5.3 确定某是星期几 52913.6 小结 53213.7 习题 532第14章 专用主题 53314.1 使用字符集 53314.1.1 理解Unicode 53314.1.2 设置区域 53414.1.3 宽字符类型wchar_t 53514.1.4 宽字符串的操作 53714.1.5 宽字符的文件流操作 54014.1.6 存储Unicode字符的固定_x00B_大小类型 54114.2 用于可移植的专用整数_x00B_类型 54514.2.1 固定宽度的整型 54514.2.2 小宽度的整型 54514.2.3 大宽度的整型 54614.3 复数类型 54614.3.1 复数基础 54614.3.2 复数类型和操作 54714.4 用线程编程 55014.4.1 创建线程 55014.4.2 退出线程 55114.4.3 把一个线程连接到另一个_x00B_线程上 55214.4.4 挂起线程 55514.4.5 管理线程对数据的访问 55514.5 小结 562附录A 计算机中的数学知识 563附录B ASCII字符代码定义 571附录C C语言中的保留字 575附录D 输入输出格式说明符 577附录E 标准库头文件 583



VIP会员