![]()
内容推荐 本书基于“十三五”职业教育国家规划教材修订而成,同时也是江苏省高等学校重点教材。 本书以培养学生程序设计基本能力为目标,以程序设计为主线,以任务驱动为手段,通过任务和问题引入内容,重点讲解程序设计的思想和方法,并结合相关的语言知识进行介绍。 本书图文并茂,示例丰富,深度剖析了C语言的基础知识,内容涉及数据类型、算术运算、输入输出、流程控制、数组、函数、字符串、指针、结构体、文件处理等。本书对难以理解的概念,精心绘制了示意图,进行清晰、通俗的讲解。 本书将程序在线评测系统(http://oj.csoeasy.com/)引入课程教学,建立了适合初学者的阶梯式题库,让学生在程序评测过程中掌握自身的学习进度,取得成就感。 本书配有丰富的数字资源,包括课程网站(http://www.csoeasy.com/)、PPT、书中代码、习题及参考答案、速查表、C语言示范代码等。“新思维:C语言程序设计”课程自2014年在网易云课堂上线后,选课人数已超过2万人。 本书可作为应用型、技能型人才培养的计算机专业及相关专业的教学用书,也可作为对C程序设计感兴趣的读者的自学用书。 目录 前言 程序设计伴手礼 导读问题清单 全书思维导图 二维码索引 第1章 初识C语言 1.1 计算机和程序设计语言 1.1.1 计算机的发展和程序设计语言的产生 1.1.2 机器语言、汇编语言和高级语言 1.1.3 程序设计的开发效率和运行效率 1.1.4 常见的程序设计语言及其用途 1.1.5 学习程序设计从C语言开始 1.2 C语言的发展和特点 1.2.1 C语言的发展 1.2.2 C语言的特点 1.3 C语言程序的初步探索 1.3.1 第1个程序:Hello,World! 1.3.2 C/C++集成开发环境C-Free的安装 1.3.3 先见森林,后见树木:马踏棋盘 1.4 算术表达式的计算 1.5 如何学好程序设计:模仿、理解和运用 习题 第2章 数据类型、运算和输入输出 2.1 标识符和关键字 2.2 常量和变量 2.2.1 普通常量和符号常量 2.2.2 变量的定义和初始化 2.2.3 赋值类运算符 2.2.4 构建知识之间的联系:2W1H模型 2.3 常用的基本数据类型及其特点 2.3.1 常用的数据类型 2.3.2 整数类型:精确表示限定范围内的整数 2.3.3 浮点类型:近似地表示数据 2.4 C语言程序基本结构:DICO和A+B问题 2.5 程序在线评测系统 2.6 基本算术运算:取整和取余 2.7 格式化输入:三位数反转 2.8 浮点数:计算圆的周长和面积 2.9 字符类型 2.10 强大、经典的scanf和printf 2.11 在命令行界面编译和运行程序 2.12 文件、I/O重定向和管道* 2.12.1 抽象思维:一切都是文件 2.12.2 管道机制 习题 第3章 分支结构 3.1 if-else语句的三种基本形式 3.1.1 基本结构一:单分支结构 3.1.2 基本结构二:双分支结构 3.1.3 双分支结构和三元运算符 3.1.4 基本结构三:多分支结构 3.1.5 C语言的if-else匹配问题* 3.2 语法错误和逻辑错误 3.3 运算符、表达式和优先级 3.3.1 关系运算符与关系表达式 3.3.2 逻辑运算符和逻辑表达式 3.3.3 自增自减运算符 3.3.4 逻辑运算符的短路特性 3.4 多路分支语句switch-case-break 3.4.1 switch-case-break的基本用法 3.4.2 多个case语句相同情况的处理 3.5 代码格式化:让代码清晰易读 3.6 三类任务的特点及学习策略 习题 第4章 循环结构 4.1 简单的循环:简单重复 4.1.1 代码的优化 4.1.2 左闭右开 4.2 循环表示序列:计算1~100的和 4.2.1 累积运算:求1~100的和 4.2.2 计算1~100的和的PHP、Java、Swift和Python版本 4.2.3 罗塞塔石碑语言学习法 4.3 从特定的数扩展到序列:水仙花数 4.4 三种基本循环结构及运行流程 4.5 流程图和while循环:3n+1问题 4.6 do-while循环:迭代法求平方根 4.7 二重循环:九九乘法表 4.8 多重循环:水仙花数 4.9 改变循环执行流程:break和continue 4.10 while典型结构:读取比较二合一* 习题 第5章 算法和程序设计 5.1 程序=算法+数据结构 5.2 算法的五大特点 5.3 算法的表示 5.3.1 流程图 5.3.2 N-S流程图 5.3.3 思维导图 5.4 程序设计方法 5.4.1 程序设计的一般步骤 5.4.2 结构化程序设计方法 5.5 C++中的标准模板库(STL)* 习题 第6章 批量数据的处理——数组 6.1 初识数组:从一组数中找出大值 6.2 数组进阶:选择排序法 6.3 动态申请数组* 6.4 二维数组:计算方阵对角线元素之和 6.5 模拟:奇数阶魔方(从伪代码到C语言)* 6.6 数组应用举例:统计各类字符的个数 习题 第7章 模块化设计——函数 7.1 函数的基本知识 7.2 函数的调用过程 7.3 编写自定义函数:分段函数 7.4 函数的四种类型 7.5 数组作为函数参数:寻找数组中的大值 7.6 递归函数:计算阶乘和斐波那契数列 7.7 计算程序运行时间:递归和递推的效率比较* 7.8 经典递归问题:汉诺塔 7.9 编译流程:预处理、编译、汇编、链接 7.10 全局变量、静态变量:优化斐波那契数列的递归版本 7.11 预处理命令 7.12 MVC(模型、视图、控制器)设计模式 习题 第8章 特殊的字符数组——字符串 8.1 字符串的声明、输入和输出 8.2 字符串的简单应用:判断回文串 8.3 字符数组的空间和字符串的长度 8.4 常用字符串处理函数 8.5 主流程序设计语言中的字符串 8.6 使用memset函数初始化数组* 习题 第9章 地址的别名——指针 9.1 初识指针 9.2 数组和指针 9.3 函数的调用 9.3.1 传值调用 9.3.2 传地址调用 9.4 字符串指针和字符数组:只读和可写 9.5 指针数组和命令行参数* 9.6 指向函数的指针:快速排序函数的应用* 9.7 函数和字符串指针 习题 第10章 自定义数据类型— |