C语言学习手册


C语言学习手册

文章插图
C语言学习手册【C语言学习手册】《C语言学习手册》是2011年明日科技出版的图书,作者是陈振安、李鑫 。
基本介绍书名:C语言学习手册
作者:陈振安李鑫
页数:512页
定价:59.00元
出版社:明日科技
出版时间:2011年4月
开本:16开
内容简介本书从初学者的角度出发,全面介绍了使用C语言进行程式开发的各种技术 。在内容布局上由浅入深,让读者循序渐进地掌握编程技术;在内容讲解上结合丰富的图解和形象的比喻,帮助读者理解“晦涩难懂”的技术;在内容形式上附有大量的提示、技巧、说明、情景套用、实战练习等,夯实读者编程技术,丰富编程经验 。全书共分18章,主要讲述了Turbo C 2.0和Visual C++ 6.0编译器的使用、C语言的基础知识、常量和变数的使用、数据类型、表达式的写法、运算符的使用、输入、输出函式的用法、选择结构程式的设计、使用数组的方法、函式的用法、指针的使用、如何掌握结构体与公用体、数组的排序法、鍊表的使用、位运算的算法、储存管理、函式类型、预处理和档案的读、写,最后,通过一个实战项目——学生管理系统,使读者将所学知识更好地套用到实际开发当中 。本书附有配套光碟 。光碟中包含本书所有程式的原始码、重点难点的实例视频录像 。其中,所有原始码都经过了精心的测试,能够在Windows 2000、Windows XP、Windows 2003、Windows 7系统中编译和运行 。本书适用于C语言的爱好者、初学者和中级开发人员,也可以作为大中专院校和培训机构的教材 。目录第1篇 基础篇第1章 初识C语言 161.1 C语言介绍 171.1.1 简述程式语言 171.1.2 C语言的产生 181.1.3 C语言的特点 191.2 选择C语言的理由 211.2.1 C语言的发展趋势 211.2.2 C语言的成功案例 231.2.3 C语言的套用领域 251.3 如何学好C语言 251.3.1 确立学习态度 261.3.2 打好基础 261.3.3 多请教、多交流 261.3.4 养成良好的编程习惯 271.3.5 多动手、勤思考 271.3.6 掌握学习方法 271.4 本章小结 28第2章 C语言编程準备 292.1 编写程式的格式 302.1.1 一个简单的C程式 312.1.2 标识符与关键字 342.2 开发环境 372.2.1 Turbo C 2.0 382.2.2 Visual C++ 6.0 422.3 一个完整的C程式 482.4 实战练习 522.4.1 编写一个简单的C程式 522.4.2 熟悉开发工具 532.5 本章小结 53第3章 C语言的灵魂——算法 543.1 算法的基本概念 553.1.1 算法的特徵 553.1.2 算法的优劣 573.2 描述算法 573.2.1 自然语言 583.2.2 描绘流程图 583.2.3 绘製N-S流程图 643.2.4 伪代码 683.3 本章小结 69第4章 常量和变数 704.1 了解数据类型 714.2 解读常量 724.2.1 整型常量 724.2.2 实型常量 754.2.3 字元型常量 764.2.4 转义字元 804.2.5 符号常量 814.2.6 情景套用一:用putchar函式输出“I LOVE C” 824.2.7 情景套用二:printf函式结合转义字元 834.3 变数 834.3.1 整型变数 844.3.2 情景套用:求出买水果一共花的钱数 864.3.3 实型变数 874.3.4 字元型变数 894.4 掌握混合运算 914.5 实战练习 934.5.1 使用printf语句输出变数 934.5.2 使用字元型变数输出字元串 944.6 本章小结 94第5章 表达式与运算符 955.1 解读表达式 965.2 赋值运算符与赋值表达式 985.2.1 变数赋初值 985.2.2 自动类型转换 1005.2.3 强制类型转换 1005.3 掌握算术运算符与表达式 1025.3.1 算术运算符 1025.3.2 算术表达式 1025.3.3 优先权与结合性 1045.3.4 自增自减运算符 1055.3.5 情景套用:求运算后的4个变数的值 1075.4 了解关係运算符与表达式 1085.4.1 关係运算符 1085.4.2 关係表达式 1095.4.3 优先权与结合性 1105.5 解读逻辑运算符与表达式 1115.5.1 逻辑运算符 1115.5.2 逻辑表达式 1125.5.3 优先权与结合性 1125.6 运用位逻辑运算符与表达式 1135.6.1 位逻辑运算符 1145.6.2 位逻辑表达式 1145.7 介绍逗号运算符与表达式 1145.8 使用複合赋值运算符 1165.9 判断条件运算符 1175.10 了解运算符的优先权和结合性 1185.11 实战练习 1195.11.1 使用複合赋值运算符求出计算结果 1195.11.2 用自增、自减运算符求出计算结果 1205.11.3 编写简单的计算加班工资程式 1215.12 本章小结 122第6章 输入、输出函式 1236.1 解读语句 1246.1.1 表达式语句 1246.1.2 空语句 1246.1.3 複合语句 1246.2 输入、输出字元数据 1256.2.1 输出字元数据 1256.2.2 输入字元数据 1266.2.3 情景套用:使用getchar函式取消获取Entet键 1276.3 输入、输出字元串 1286.3.1 使用字元串输出函式 1286.3.2 掌握字元串输入函式 130 6.4 介绍格式输出函式 1316.5 讲解格式输入函式 1346.6 套用顺序程式设计 1386.7 实战练习 1416.7.1 将输入的小写字元转换为大写字元 1416.7.2 模拟工资计算器 1426.7.3 输入、输出古人名言 1426.8 本章小结 143第7章 选择结构程式设计 1447.1 if选择语句 1457.2 if语句的不同形式 1457.2.1 单条件单分支的if语句 1467.2.2 单条件双分支的if语句 1497.2.3 多条件多分支的if语句 1537.2.4 情景套用:输入数值检查字元类型 1567.3 掌握if语句的嵌套形式 1577.4 注意if语句的常见错误 1607.4.1 使用分号的注意事项 1617.4.2 条件放置注意事项 1617.4.3 if和else的配对注意事项 1627.4.4 大括弧的重要性 1627.5 判断分支选择switch语句 1637.5.1 switch语句的基本形式 1637.5.2 多路开关模式的switch语句 1677.6 区分if…else语句和switch语句 1697.7 套用选择结构程式 1717.8 实战练习 1737.8.1 计算函式,求出Y值 1737.8.2 输出三个变数中最大的数 1747.8.3 计算增加后的工资 1757.9 本章小结 175第8章 循环语句 1768.1 编写循环语句 1778.2 实现while型循环 1778.2.1 while循环语句的一般形式 1788.2.2 情景套用:求出数值内的所有正整数的和 1808.2.3 避免while循环语句的死循环 1828.2.4 了解while循环语句的空循环体 1838.2.5 注意while循环语句常见错误 1838.3 解读for型循环语句 1858.3.1 for循环语句的一般形式 1858.3.2 灵活多变的for循环语句 1898.3.3 套用for语句中的逗号 1928.4 介绍do-while语句 1938.5 比较三种循环 1958.6 运用循环嵌套 1958.6.1 各种结构的循环嵌套 1958.6.2 循环嵌套实例 1978.7 转移语句 1998.7.1 goto语句 2008.7.2 break语句 2028.7.3 continue语句 2038.8 区别三种跳转语句 205 8.9 实践练习 2058.9.1 列印出大写字母的ASCII码对照表 2058.9.2 列印出小写字母的ASCII码对照表 2068.9.3 输出0~100之间不能被3整除的数 2078.10 本章小结 209第2篇 核心篇第9章 数组 2129.1 介绍数组的概念 2139.1.1 数组的分类 2139.1.2 数组的维数 2139.2 套用一维数组 2149.2.1 一维数组的定义 2149.2.2 一维数组的引用 2159.2.3 一维数组的初始化 2179.2.4 一维数组的套用 2209.3 掌握二维数组 2229.3.1 二维数组的定义 2229.3.2 二维数组的引用 2239.3.3 二维数组的初始化 2239.3.4 二维数组的套用 2279.4 解读多维数组 2289.5 使用字元数组 2299.5.1 字元数组的定义 2299.5.2 字元数组的引用 2299.5.3 字元数组的初始化 2299.5.4 字元数组的结束标誌 2319.5.5 字元数组的输出 2329.5.6 字元数组的输入 2339.5.7 输出完整的带有空格的字元串 2349.5.8 字元数组的套用 2359.6 字元串处理函式 2369.6.1 字元串的複製 2379.6.2 字元串的连线 2389.6.3 字元串的比较 2409.6.4 字元串大小写转换 2419.6.5 获得字元串长度 2439.7 熟练套用数组 2459.7.1 反转输出字元串 2459.7.2 使用数组统计学生成绩 2469.7.3 情景套用:字元串的加密和解密 2489.8 实践练习 2509.8.1 实现strcpy函式的功能 2509.8.2 统计字元中各元素的个数 2519.8.3 重新排列字元串 2519.9 本章小结 252第10章 函式 25310.1 函式概述 25410.2 定义函式 25610.2.1 函式定义的形式 25610.2.2 定义与声明 25910.3 了解返回语句 26210.3.1 从函式返回 26210.3.2 返回值 26610.4 传递函式参数 26910.4.1 形式参数与实际参数 26910.4.2 数组作为函式参数 27110.4.3 了解main的参数 27610.5 调用函式 27610.5.1 函式调用方式 27710.5.2 嵌套调用 28010.5.3 递归调用 28210.6 灵活套用函式 28510.6.1 函式的套用 28510.6.2 情景套用:使用字元函式判断输入字元 29010.7 实践与练习 29210.7.1 输出较大的整数 29210.7.2 求出10个学生的平均成绩 292 10.7.3 验证6174 29310.8 本章小结 294第11章 指针 29611.1 了解指针相关概念 29711.1.1 介绍地址与指针 29711.1.2 解读变数与指针 29811.1.3 使用指针变数 29911.1.4 指针自加自减运算 30311.1.5 情景套用:输出整型变数地址 30411.2 掌握数组与指针 30511.2.1 一维数组与指针 30611.2.2 情景套用一:输出数组元素 30911.2.3 二维数组与指针 31011.2.4 情景套用二:将一个3行5列的二维数组的第二行元素输出 31311.2.5 字元串与指针 31411.2.6 字元串数组 31611.3 指向指针的指针 31811.3.1 套用介绍指向指针的指针 31811.3.2 情景套用:输出偶数 32011.4 作为函式参数的指针变数 32111.5 返回指针值的函式 33111.5.1 介绍返回指针值的函式 33111.5.2 情景套用:求长方形的周长 33211.6 指针数组作为main函式的参数 33311.7 实战练习 33511.7.1 将数组中的元素值按照相反顺序存放 33511.7.2 将两个字元串连线后输出 33611.7.3 使用指针实现字元串的複製 33611.8 本章小结 337第12章 结构体和共用体 33812.1 套用结构体 33912.1.1 结构体类型的概念 33912.1.2 结构体变数的定义 34012.1.3 结构体变数的引用 34212.1.4 结构体类型的初始化 34412.1.5 情景套用:输出学生的信息 34512.2 掌握结构体数组 34812.2.1 定义结构体数组 34812.2.2 初始化结构体数组 34912.2.3 情景套用:输出学生信息 35112.3 解读结构体指针 35312.3.1 指向结构体变数的指针 35312.3.2 指向结构体数组的指针 35612.3.3 结构体作为函式参数 35812.4 介绍包含结构的结构 36012.5 套用共用体 36212.5.1 共用体的概念 36212.5.2 共用体变数的引用 36312.5.3 共用体变数的初始化 36412.5.4 共用体类型的数据特点 36512.6 解读枚举类型 36512.7 实战练习 36612.7.1 统计候选人的得票 366 12.7.2 师生信息存储系统 36712.7.3 计算学生的综合成绩 36812.8 本章小结 368第13章 鍊表与算法 36913.1 介绍鍊表 37013.1.1 鍊表概述 37013.1.2 创建动态鍊表 37113.1.3 输出鍊表 37413.2 进行鍊表的相关操作 37613.2.1 鍊表的插入操作 37713.2.2 鍊表的删除操作 38013.3 运用数组排序算法 38413.3.1 选择法排序 38513.3.2 冒泡法排序 38713.3.3 交换法排序 38913.3.4 插入法排序 39113.3.5 折半法排序 39413.3.6 比较数组排序算法 39613.4 实战练习 39713.4.1 鍊表的删除操作 39713.4.2 使用选择法排序 39813.4.3 使用冒泡、交换、插入、折半等算法进行排序 39913.5 本章小节 399第3篇 高级篇第14章 位运算 40214.1 解读位与位元组 40314.2 掌握位运算操作符 40314.2.1 “与”运算符 40414.2.2 “或”运算符 40514.2.3 “取反”运算符 40714.2.4 “异或”运算符 40914.2.5 “左移”运算符 41214.2.6 “右移”运算符 41314.2.7 位运算複合赋值运算符 41514.2.8 长度不同的数据进行位运算 41514.3 循环移位 41614.4 什幺是位域 41814.4.1 位域的概念与定义 41914.4.2 位域相关说明 42014.5 实战练习 42114.5.1 求两个数进行“与”和“或”运算后的结果 42114.5.2 求出一个数“左移”和“右移”后的结果 42214.5.3 求一个数“循环左移”和“循环右移”后的结果 42214.6 本章小结 423第15章 存储管理 42415.1 记忆体组织方式 42515.1.1 了解记忆体组织方式 42515.1.2 解读堆与栈 42515.2 动态管理 42815.2.1 动态分配一段记忆体空间——malloc函式 42815.2.2 动态分配连续记忆体空间数组——calloc函式 42915.2.3 改变ptr指针指向空间大小——realloc函式 43115.2.4 情景套用:使用realloc函式重新分配记忆体 43215.2.5 释放分配整型变数记忆体空间——free函式 43215.3 记忆体丢失 43315.4 变数的存储类别 43415.4.1 动态存储与静态存储 43515.4.2 修饰一个局部变数为自动的auto变数 43515.4.3 声明位置不同、意义不同的static变数 43615.4.4 暂存器存储类的register变数 437 15.4.5 外部存储的extern变数 43715.5 实战练习 43815.5.1 为数组动态分配记忆体 43815.5.2 为数组动态分配并释放记忆体 43915.5.3 用静态局部整型变数计算3的平方和立方 44015.6 本章小结 440第16章 函式类型和预处理 44116.1 内部函式和外部函式 44216.1.1 介绍内部函式 44216.1.2 解读外部函式 44316.2 灵活使用宏定义 44416.2.1 不带参数的宏定义 44516.2.2 带参数的宏定义 44616.3 编写#include指令 44816.4 掌握条件编译 45016.4.1 #if命令 45016.4.2 #ifdef及#ifndef命令 45316.4.3 #undef命令 45516.4.4 #line命令 45516.4.5 #pragma命令 45616.5 实践练习 45716.5.1 求两个数相乘的积 45716.5.2 从3个数中找出最小数 45716.5.3 从3个数中找出最大数 45816.6 本章小结 459第17章 读写档案 46017.1 档案概述 46117.2 掌握档案基本操作 46217.3 运用档案指针 46317.4 打开和关闭档案 46417.4.1 档案的打开 46417.4.2 档案的关闭 46517.5 读 写 文 件 46617.5.1 写字元函式——fputc函式 46617.5.2 读字元函式——fgetc函式 46817.5.3 写字元串函式——fputs函式 46917.5.4 读字元串函式——fgets函式 47017.5.5 格式化写入函式——fprintf函式 47217.5.6 格式化读取函式——fscanf函式 47417.5.7 数据块读写函式——fread函式和fwrite函式 47517.6 定位档案 47817.6.1 随机读写操作——fseek函式 47917.6.2 返回位置指针——rewind函式 48117.6.3 ftell函式 48317.7 实践练习 48517.7.1 複製档案内容 48517.7.2 保存学生信息 48617.8 本章小结 487第4篇 实战篇第18章 学生管理系统 49018.1 分析需求 49118.2 设计系统 49118.3 功能模组设计 49218.3.1 功能选择界面 49218.3.2 录入学生成绩信息 49418.3.3 查询学生成绩信息 49618.3.4 删除学生成绩信息 497 18.3.5 修改学生成绩信息 49918.3.6 插入学生成绩信息 50118.3.7 统计学生人数 50418.4 本章小结 505附录A 专业术语表 506