您好,欢迎来到聚文网。 登录 免费注册
C语言程序设计从入门到精通

C语言程序设计从入门到精通

  • 装帧: 平装
  • 出版社: 电子工业出版社
  • 作者: 何亦琛 著作
  • 出版日期: 2017-11-01
  • 商品条码: 9787121327056
  • 版次: 1
  • 开本: 其他
  • 页数: 604
  • 出版年份: 2017
定价:¥88 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
C语言是在程序员中使用比较多的计算机语言,它是如C++、C#等C系列语言的核心。本书精心挑选了有代表意义的500余个实例,详细介绍了程序设计中基础知识的应用、模块化的程序设计、常见的算法和数据结构基础,以及计算机底层处理方面的内容。本书的主要内容包括:C语言基础知识部分、模块化的程序设计思想、指针在程序设计中的应用、数据结构和算法部分、底层处理、应用系统开发等。本书中每一个实例都经过细心的调试,同时在实例中给出了详细的讲解,既可以作为学习C语言程序设计的工具书,以及进行编程训练的入门书,同样可以作为参加全国二级计算机考试或全国初中级程序员考试等学习资料。
目录
第1篇  入门篇第1章  从零开始认识C语言 11.1  认识C语言 11.1.1  C语言的发展过程 11.1.2  C语言的标准 21.2  C语言在不同领域的扩展应用 31.2.1  单片机方面 41.2.2  LabVIEW方面 41.2.3  LabWindows/CVI方面 61.2.4  MATLAB方面 71.2.5  JavaScript方面 71.2.6  并行计算方面 81.2.7  Linux平台 81.3  搭建C语言开发环境 81.3.1  Turbo C 91.3.2  Visual C++ 91.3.3  Linux下的GCC 121.4  第一个C程序 131.4.1  创建项目 141.4.2  输入源代码 141.4.3  编译链接程序 151.4.4  调试程序 161.5  C程序构成分析 161.5.1  头文件 171.5.2  主函数 171.5.3  其他组成部分 181.6  拓展训练 221.6.1  训练一:打印字母C 221.6.2  训练二:scanf()函数的应用 221.7  技术解惑 231.7.1  C语言的一些基础规范 231.7.2  C语言的注释形式 25第2章  数据是一切程序存在的基础 262.1  C语言中的数据类型 262.1.1  基本类型 272.1.2  构造类型 272.1.3  指针类型 282.1.4  空类型 282.2  数据的存储原理 282.2.1  内存单元 282.2.2  字符的存储 292.2.3  数值的存储 302.3  标识符和关键字 302.3.1  标识符 302.3.2  关键字 312.4  常量 322.4.1  直接常量 322.4.2  符号常量 322.5  变量 342.5.1  变量声明 342.5.2  变量初始化 362.6  整数类型 372.6.1  整数类型及其存储 372.6.2  整型常量的表示 402.6.3  整型数据输出 422.7  字符类型 442.7.1  字符常量 452.7.2  字符变量及其初始化 452.7.3  转义字符 462.7.4  字符型数据的输出 472.8  实数类型 482.8.1  实数类型及其存储 492.8.2  实型常量的表示 502.8.3  实型变量 512.8.4  实型数据的输出 532.9  混合运算及类型转换 542.9.1  混合运算 542.9.2  强制数据类型转换 552.10  逻辑型(_Bool) 562.11  复数类型(_Complex和_Imaginary) 562.12  拓展训练 572.12.1  训练一:变量初始化 572.12.2  训练二:不同数据类型转换为十进制 582.13  技术解惑 592.13.1  整型数据机内存储形式 592.13.2  字符型数据机内存储形式 59第3章  C语言代码的基本组成 603.1  表达式 603.1.1  简单表达式 603.1.2  逗号表达式 613.2  运算符 623.2.1  运算符概述 623.2.2  算术运算符 623.2.3  赋值运算符 683.2.4  关系运算符 703.2.5  逻辑运算符 713.2.6  位运算符 733.2.7  条件运算符 733.2.8  其他运算符 753.3  表达式的运算顺序 763.3.1  运算符优先级 763.3.2  运算符的结合性 773.3.3  自增、自减运算符注意事项 783.4  语句 793.4.1  语句书写方式 793.4.2  表达式语句 813.4.3  空语句 813.4.4  复合语句 823.4.5  标号语句 823.5  拓展训练 833.5.1  训练一:加1和减1运算符 833.5.2  训练二:三目运算符 843.5.3  训练三:逗号运算符 853.6  技术解惑 863.6.1  赋值及类型转换 863.6.2  sizeof是一个运算符吗 87第4章  控制输入/输出的形式 884.1  格式化输出――printf()函数 884.1.1  printf()函数的格式 884.1.2  printf()函数的格式字符 904.1.3  修饰符 914.1.4  printf()函数实例 944.1.5  动态设置输出宽度和精度 994.1.6  printf()函数的返回值 1004.1.7  理解输出列表 1014.2  格式化输入――scanf()函数 1044.2.1  scanf()函数的格式 1044.2.2  scanf()函数的格式字符 1064.2.3  scanf()函数的注意事项 1074.2.4  scanf()函数的返回值 1094.3  其他常用输入/输出函数 1104.3.1  getchar()函数 1104.3.2  getch()函数 1114.3.3  gets()函数 1114.3.4  putch()函数 1134.3.5  puts()函数 1134.4  拓展训练 1144.4.1  训练一:鸡、兔同笼问题 1144.4.2  训练二:格式化输入 1154.4.3  训练三:输入两个变量的值,交换输出 1164.4.4  训练四:大小写字母转换器 1174.5  技术解惑 1184.5.1  ASCII码查询 1184.5.2  输入/输出的概念 118第5章  程序的三大流程控制结构 1205.1  顺序结构 1205.2  条件语句 1205.2.1  if语句 1215.2.2  if-else语句 1245.2.3  if-else-if语句 1255.2.4  if语句的嵌套 1265.2.5  布尔表达式 1315.2.6  增强后的switch分支语句 1315.3  循环语句 1345.3.1  while循环结构 1345.3.2  do-while 循环结构 1415.3.3  for循环结构 1445.3.4  循环的嵌套 1505.4  转向语句 1575.4.1  break中断语句 1575.4.2  continue条件继续语句 1595.4.3  标签语句 1615.5  返回语句 1625.6  拓展训练 1635.6.1  训练一:水仙花数 1635.6.2  训练二:工资提成问题 1645.6.3  训练三:学生成绩评分等级 1655.6.4  训练四:商店找零问题 1665.6.5  训练五:斐波那契数列问题 1675.6.6  训练六:简单计算器 1685.7  技术解惑 1695.7.1  判断一个数是否为素数 1695.7.2  判断三角形构成问题 170第2篇  核心技术篇第6章  数组管理更复杂的数据 1716.1  了解数组 1716.1.1  使用数组的好处 1716.1.2  数组的概念 1736.1.3  数组的维数 1736.2  一维数组 1746.2.1  一维数组的声明 1746.2.2  一维数组的存储 1776.2.3  引用一维数组 1786.2.4  一维数组的初始化 1806.3  二维数组 1826.3.1  二维数组的声明 1826.3.2  二维数组的存储 1836.3.3  二维数组的初始化 1866.4  字符数组和字符串 1886.4.1  字符数组 1886.4.2  了解字符串 1896.4.3  字符串的输入/输出 1916.5  拓展训练 1926.5.1  训练一:通过数组求解斐波那契数列问题 1926.5.2  训练二:采用冒泡排序法对数据进行排序 1936.5.3  训练三:通过数组计算学生的平均成绩 1946.5.4  训练四:字符串反转 196第7章  用函数模块化代码结构 1987.1  函数概述 1987.1.1  函数的概念 1987.1.2  函数的分类 1997.1.3  定义函数 2007.1.4  main()函数 2017.2  函数的工作过程 2027.2.1  程序结构 2027.2.2  函数执行过程 2037.3  编写函数 2047.3.1  函数头 2047.3.2  返回类型 2047.3.3  参数列表 2057.3.4  函数体 2067.3.5  函数原型 2067.4  函数的参数 2087.4.1  参数传递过程 2087.4.2  值调用 2097.4.3  引用调用 2107.4.4  数组调用 2137.4.5  main()函数的参数 2157.5  函数调用 2187.5.1  函数调用方式 2187.5.2  被调函数的说明 2197.5.3  返回函数结果 2207.5.4  函数的嵌套调用 2217.6  递归函数 2237.6.1  函数的递归调用 2237.6.2  递归的基本原理 2257.6.3  递归函数设计 2267.6.4  递归的优缺点 2297.7  拓展训练 2297.7.1  训练一:计算1到x的5次方累加和 2297.7.2  训练二:统计字符出现次数 2307.7.3  训练三:通过函数计算两个数的差值 2317.7.4  训练四:十进制数转换为二进制数 2327.8  技术解惑 2337.8.1  函数传址方式 2337.8.2  形参和实参 236第8章  算法在C语言中的应用 2378.1  算法的定义 2378.1.1  我所理解的算法 2378.1.2  什么情况下使用算法 2388.2  常见算法 2398.2.1  冒泡排序法 2398.2.2  折半查找 2408.2.3  堆栈的实现 2418.2.4  插入排序法 2448.3  拓展训练 2458.3.1  训练一:求最大值算法 2458.3.2  训练二:希尔排序 2468.4  技术解惑 2488.4.1  算法的必要性 2488.4.2  当下流行的各种算法 248第9章  用指针控制计算机的虚拟地址 2539.1  内存和变量 2539.1.1  计算机内存 2539.1.2  变量的存储 2549.2  指针和简单变量 2569.2.1  指针的概念 2569.2.2  创建指针 2579.2.3  初始化指针变量 2589.2.4  指针变量的引用 2599.2.5  给函数传递指针 2639.3  指针变量的赋值 2649.3.1  初始化赋值 2649.3.2  取地址赋值 2659.3.3  指针之间赋值 2659.3.4  数组赋值 2669.3.5  字符串赋值 2669.3.6  函数入口赋值 2699.4  指针和数组的关系 2709.4.1  指针、数组和地址之间的关系 2709.4.2  指针变量的运算 2719.4.3  用指针操作数组元素 2739.5  指向多维数组的指针 2769.5.1  理解二维数组的地址 2769.5.2  多维数组的指针表示 2799.5.3  指向多维数组的指针变量 2809.5.4  数组名作为函数的参数 2849.5.5  指向数组的指针小结 2889.6  指针和字符串 2889.6.1  字符串的指针表示 2899.6.2  字符串指针作为函数参数 2909.6.3  字符数组和字符串指针变量的区别 2929.7  指针数组 2949.7.1  指针数组的概念 2949.7.2  用指针数组处理字符串 2969.7.3  用指针数组作为函数参数 2989.8  指向指针的指针 3009.8.1  理解指向指针的指针 3009.8.2  二级指针变量与数组 3039.9  指针和函数 3079.9.1  返回指针的函数 3079.9.2  指向函数的指针 3099.10  指针和const变量 3129.10.1  用const控制指针 3129.10.2  const的几种特殊用法 3139.11  拓展训练 3149.11.1  训练一:学生成绩管理 3149.11.2  训练二:输出两个数中的大者 3159.11.3  训练三:通过指针变量交换两个数 3169.12  技术解惑 3189.12.1  指向指针的指针有什么用处 3189.12.2  数组指针和指针数组的区别 319第10章  不同形式的存储――结构、联合和枚举 32110.1  结构的概念 32110.1.1  定义结构类型 32110.1.2  定义结构变量 32310.1.3  使用结构变量 32310.2  结构的嵌套 32510.2.1  包含数组的结构 32610.2.2  包含指针的结构 32610.2.3  包含结构的结构 32710.3  初始化结构变量 33010.4  结构数组 33210.4.1  结构数组的定义和引用 33210.4.2  结构数组的初始化 33310.4.3  结构数组实例 33410.5  结构指针 33510.5.1  定义结构指针 33510.5.2  使用结构指针 33610.5.3  用指针处理结构数组 33610.6  向函数传递结构 33810.6.1  传递结构变量的值到函数 33810.6.2  传递结构指针到函数 33910.7  联合 34010.7.1  结构和联合的区别 34010.7.2  定义联合类型 34110.7.3  使用联合变量 34210.7.4  在结构中嵌套联合类型 34210.7.5  联合数组 34410.7.6  联合指针 34510.8  枚举 34610.8.1  定义枚举类型 34610.8.2  使用枚举变量 34710.8.3  枚举类型变量的赋值 34710.9  使用typedef 34810.10  拓展训练 34910.10.1  训练一:统计并输出学生和老师的信息 34910.10.2  训练二:结构变量地址作为函数参数实例 35010.10.3  训练三:候选人票数统计 35210.11  技术解惑 35310.11.1  结构变量地址作为函数参数 35310.11.2  用户自定义类型 353第3篇  高级应用篇第11章  系统底层的位运算 35511.1  了解二进制数 35511.1.1  数据的存储 35511.1.2  整数的二进制表示 35611.1.3  实数的二进制表示 35711.1.4  使用其他进制 35811.2  位运算 35911.2.1  位逻辑运算符 35911.2.2  移位运算符 36211.2.3  位运算的复合赋值运算符 36211.2.4  位运算的用途 36311.3  位域 36411.3.1  定义位域结构 36411.3.2  位域的使用 36511.3.3  位域与联合的使用 36711.4  拓展训练 36811.4.1  训练一:位域的实例 36811.4.2  训练二:位运算的加减乘除 36911.5  技术解惑 37111.5.1  位域在现实中有哪些应用 37111.5.2  位运算的寻址与普通运算的区别 372第12章  链表的基本操作 37312.1  动态内存分配 37312.1.1  为什么用动态内存分配 37312.1.2  如何实现动态内存分配及其管理 37412.2  链表详解 37512.2.1  链表基本介绍 37512.2.2  单向链表 37612.2.3  创建一个链表 37712.2.4  删除整个链表 37912.2.5  在链表中插入节点 37912.2.6  在链表中删除节点 38112.2.7  双向链表 38212.2.8  循环链表 38212.3  拓展训练 38312.3.1  训练一:双向链表的输入/输出 38312.3.2  训练二:单向链表简单实例 38512.4  技术解惑 38612.4.1  结构体嵌套另一个结构体 38612.4.2  共用体是用户自定义类型吗 387第13章  文件的输入和输出 38813.1  文件与数据流 38813.1.1  程序的输入/输出概念 38813.1.2  流的概念 38913.1.3  预定义的流 38913.1.4  文件的基本概念 39013.1.5  缓冲文件系统 39013.2  文件的打开与关闭 39113.2.1  文件指针 39113.2.2  打开文件函数――fopen() 39213.2.3  关闭文件函数――fclose() 39413.3  从文件中读/写字符 39413.3.1  写字符函数――putc()和fputc() 39513.3.2  读字符函数――getc()和fgetc() 39613.3.3  合并文件 39813.4  从文件中读/写字符串 39913.4.1  写字符串函数――fputs() 39913.4.2  读字符串函数――fgets() 40113.4.3  文件格式输出函数――fprintf() 40213.4.4  文件格式输入函数――fscanf() 40413.5  二进制文件的读/写 40613.5.1  写入整型数据函数――putw() 40613.5.2  读取整型数据函数――getw() 40713.5.3  写数据块函数――fwrite() 40813.5.4  读数据块函数――fread() 41013.5.5  文件检测函数 41113.6  文件的随机读/写 41213.6.1  获取当前位置函数――ftell() 41213.6.2  重置文件位置指针函数――rewind() 41413.6.3  设置文件位置指针函数――fseek() 41513.7  管理缓冲区 41813.8  输入/输出的重定向 41913.8.1  操作系统的重定向功能 41913.8.2  重定向输出 42013.8.3  重定向函数――freopen() 42113.9  文件管理 42213.9.1  重命名文件 42213.9.2  删除文件 42313.9.3  复制文件 42413.9.4  创建临时文件 42613.10  拓展训练 42713.10.1  训练一:文件读/写 42713.10.2  训练二:从文件中读取信息 42813.11  技术解惑 42913.11.1  文件出错时如何检测 42913.11.2  缓冲文件和非缓冲文件 430第14章  C语言特有的预处理 43114.1  预处理简介 43114.1.1  预处理功能 43114.1.2  预处理命令 43214.2  宏定义命令 43214.2.1  无参数的宏定义 43214.2.2  带参数的宏定义 43414.2.3  #undef命令 43514.2.4  预处理操作符#和## 43614.3  文件包含命令 43914.4  条件编译命令 44014.4.1  #if、#else、#endif命令 44114.4.2  #elif命令 44314.4.3  #ifdef、#ifndef命令 44414.4.4  使用#defined和#undef 44414.5  其他预处理命令 44514.5.1  预定义的宏名 44514.5.2  重置行号和文件名命令#line 44614.5.3  修改编译器设置命令#pragma 44614.5.4  产生错误信息命令#error 44714.6  内联函数 44714.7  拓展训练 44814.7.1  训练一:计算半径为1~10的圆的面积和体积累加和 44814.7.2  训练二:通过静态变量计算1~10的阶乘 44914.7.3  训练三:通过条件编译将大写字母转换为小写字母 45014.8  技术解惑 45114.8.1  预处理和宏的区别 45114.8.2  C语言的预处理机制 451第15章  C语言的网络编程 45315.1  OSI 7层网络模型 45315.2  TCP/IP协议 45415.2.1  IP协议 45515.2.2  TCP协议 45615.2.3  UDP协议 45815.2.4  ICMP协议 45915.3  使用C语言开发网络项目 45915.3.1  网络编程方式 45915.3.2  网络通信基本流程 45915.3.3  搭建开发环境 46015.3.4  两个常用的数据结构 46015.3.5  Windows Socket基础 46115.4  常用的WinSock函数 46115.4.1  WSAStartup()函数 46115.4.2  socket()函数 46215.4.3  inet_addr()函数 46215.4.4  gethostbyname()函数 46215.4.5  bind()函数 46315.4.6  connect()函数 46315.4.7  select()函数 46315.4.8  recv()函数 46415.4.9  sendto()函数 46415.5  MAC地址 46415.6  NetBIOS编程 46515.6.1  处理过程 46515.6.2  NetBIOS命令 46515.6.3  NetBIOS名字解析 46515.6.4  何为NetBEUI 46715.6.5  NetBIOS范围ID 46815.6.6  NetBIOS控制块 46815.7  获取当前机器的MAC地址 46915.7.1  选择开发工具 46915.7.2  设计MFC窗体 46915.7.3  具体编码 46915.8  拓展训练 47615.8.1  训练一:实现HTTP下载 47615.8.2  训练二:编写聊天程序 48515.9  技术解惑 49115.9.1  winsock2.h找不到 49115.9.2  非阻塞WinSock编程的问题及解决办法 491第16章  高效开发的常用函数 49216.1  字符的操作 49216.1.1  字符串的静态存储 49216.1.2  字符串的动态存储 49316.1.3  字符检测函数 49516.1.4  控制字符检测函数 49716.1.5  十六进制数字检测函数 49816.1.6  可打印字符检测函数 49816.1.7  包含空格的可打印字符检测函数 49916.1.8  格式字符检测函数 49916.2  随机函数 50016.2.1  伪随机函数――rand() 50016.2.2  随机种子函数――srand() 50116.2.3  更加合理的随机数产生方法 50116.2.4  获取任意范围的随机数 50216.2.5  获取随机字符 50216.3  数学函数 50316.3.1  绝对值函数 50316.3.2  三角函数 50416.3.3  双曲三角函数 50516.3.4  指数函数和对数函数 50616.3.5  取整函数 50816.3.6  浮点型分离函数 50916.3.7  幂函数 51016.3.8  取余函数 51116.3.9  C99标准中扩展的数学函数 51216.4  日期时间函数 51316.4.1  表示日期时间的数据结构 51316.4.2  获取日期时间 51416.4.3  转换日期时间的表示形式 51516.4.4  格式化日期时间 518第4篇  实战篇第17章  员工管理系统 52317.1  程序分析 52317.1.1  模块划分 52317.1.2  设计数据结构 52417.2  头文件 52517.3  主模块 52617.3.1  main()函数 52617.3.2  检查初始化状态 52717.3.3  检查登录密码 52917.3.4  从文件创建链表 53017.3.5  显示主菜单 53217.3.6  将链表保存到文件 53417.4  输入员工信息 53517.5  查询员工信息 53817.5.1  查询子菜单 53817.5.2  查询函数 54017.5.3  通用显示函数 54117.6  显示员工信息 54217.7  修改员工信息 54317.7.1  修改子菜单 54317.7.2  修改数据 54617.8  删除员工信息 54617.9  统计员工信息 54817.10  重设系统密码 549第18章  简易文本编辑器 55118.1  程序分析 55118.1.1  模块划分 55118.1.2  流程图 55218.2  头文件 55218.3  主模块 55318.3.1  main()函数 55318.3.2  显示主菜单 55318.4  清空以前文本内容 55518.5  打开文件 55618.6  输入文本信息 55718.7  查找文本信息 55818.7.1  定位文本位置 55818.7.2  输出文本信息 55918.8  插入文本信息 56018.9  删除文本信息 56218.10  替换文本信息 56418.11  显示文本信息 56718.12  保存当前文本内容 56718.13  退出文本编辑 568第19章  餐厅信息管理系统 56919.1  程序分析 56919.1.1  模块划分 56919.1.2  思路分析 57019.1.3  系统可行性分析 57019.2  头文件 57119.3  主模块main()函数 57219.4  将数据保存到文件 57519.4.1  保存菜单信息 57519.4.2  保存预约者信息 57519.4.3  保存点菜信息 57619.5  显示菜单 57619.6  显示预约者信息 57719.7  显示消费信息 578

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网