![]()
内容推荐 “C语言程序设计”是一门实践性很强的基础课程,学习者需要通过大量的编程训练才能深入理解C语言原理,提升编程能力,培养计算思维。 本书是《C语言程序设计——原理与实践》(ISBN:978-7-04-058842-2)的配套实训教程,内容覆盖了C语言编程快速入门、编程基础框架、数据处理基础、控制结构、函数、数组、指针基础、指针进阶、结构与联合、文件与文件流和综合训练,内容由浅入深、循序渐进。每一题都包括了问题分析、实现要点和参考代码,力求引导编程初学者快速入门,并逐步使能力得到提升。此外,为方便读者实践训练,笔者在Online Judge(OJ)编程训练平台上免费开放与本书配套的程序设计实训专版,构建“学、练、测”一体化实训环境。 本书以实训为主,与《C语言程序设计——原理与实践》一起可作为普通高等院校本科C语言程序设计课程的教材,也适合作为广大编程爱好者的参考用书。 作者简介 宋友,男,1973年生。于1997年毕业于北京航空航天大学应用数学专业,2003年获得博士学位,现为北京航空航天大学软件学院教授、博士生导师。从事软件工程专业教学和科研20余年,主讲“C语言程序设计”“算法分析与设计”等课程。获得过北航教学优秀一等奖、教学成果奖一等奖、北京市教学成果奖二等奖、宝钢教育奖等。指导学生获得过“挑战杯”科技竞赛全国一等奖、微软“创新杯”全国一等奖、“中国软件杯”全国一等奖等。自2005年起,任北航ICPC(国际大学生程序设计竞赛)主教练,带领北航竞赛队8次晋级全球总决赛,于2019年获得ICPC教练奖(ICPC coach award winners)。 目录 第1章 编程快速入门 1.1 初识C语言编程;第一个程序 1.2 初识C语言编程:简单格式化输入输出 1.3 基本的算术运算:简单的数学计算 1.4 基本的算术运算:四则运算 1.5 基本的判断结构:简单的除法运算 1.6 基本的判断结构:计算ReLU()函数 1.7 基本的判断结构:计算损失函数 1.8 基本的循环结构:数字密码破译 1.9 基本的循环结构:输出倒三角 1.10 基本的循环结构:简单的成绩统计 1.11 本章小结 第2章 编程基础框架 2.1 转义符输出:简单颜表情 2.2 数据类型与运算:三角形周长 2.3 数据类型与运算:三角形面积的平方 2.4 数据类型与运算:有向立方并 2.5 数据类型与运算:零花钱 2.6 数据类型与运算:棋子跳出圆圈 2.7 数据类型与运算:买西瓜 2.8 字符与ASCII码:大小写转换 2.9 字符与ASCII码:字符密鸸破译 2.10 字符与ASCII码:加密 2.11 简单的一维数组应用:计算上机实验成绩 2.12 本章小结 第3章 数据处理基础 3.1 数据存储与数据编码:数据溢出判断 3.2 数据存储与数据编码:超大统计 3.3 数据存储与数据编码:计算a+b 3.4 数据存储与数据编码:判断计算机中的整数二进制位 3.5 位运算与数制转换:字节清零 3.6 位运算与数制转换:位互换 3.7 位运算与数制转换:扫描条形码 3.8 位运算与数制转换:二进制循环移位 3.9 位运算与数制转换:进制转换 3.10 认识浮点精度:一元二次方程解的个数 3.11 数组的基础应用:计算比赛得分 3.12 数组的基础应用:统计成绩 3.13 本章小结 第4章 控制结构 4.1 条件判断与字符串:计算正确率 4.2 分支条件判断:计算天数 4.3 字符判断与计算:组合数据类型大小 4.4 多组数据输入与判断:成绩分析 4.5 数学计算:日期计算 4.6 循环判断与计算:实验课积分统计 4.7 判断与浮点数计算:温度转换 4.8 数学计算与循环:计算GPA 4.9 循环与字符判断:可爱字符串 4.10 循环与判断:最后出圈的羊 4.11 循环与判断:送蚂蚁回家 4.12 本章小结 第5章 函数 5.1 自定义函数:计算三维坐标系中两点间的距离 5.2 自定义函数:大数求幂 5.3 自定义函数:用泰勒公式计算e的近似值 5.4 自定义函数:护照号码校验 5.5 递归函数:分数加法计算器 5.6 黾归函数:计算最小公倍数 5.7 黾归函数:复利计算器 5.8 递归函数:求解方程的根 5.9 递归函数:密码生成器 5.10 本章小结 第6章 数组 6.1 数组:七音符播放器 6.2 数组:短道速滑成绩排序 6.3 数组:计算两个日期之间的天数差 6.4 数组:验证哥德巴赫猜想 6.5 数组:多项式加法 6.6 字符数组:身份证信息提取器/9芝 6.7 字符数组:大整数乘法 6.8 二维数组:最小汉明距离 6.9 二维数组:数独棋盘 6.10 二维数组:矩阵加密 6.11 本章小结 第7章 指针基础 7.1 指针与字符串处理:子串逆置 7.2 指针与字符串处理:字符串倒序拼接 7.3 指针与字符串处理:清理字符串 7.4 指针与字符串处理:指针判断 7.5 指针与字符串处理:寻找子串 7.6 指针与字符串处理:寻找回文串 7.7 指针与字符串处理:取数求和 7.8 指针与字符串处理:字串替换 7.9 指针与字符串处理:字符串、照镜子 7.10 二分查找:查找成绩 7.11 本章小结 第8章 指针进阶 8.1 数组指针:矩阵行列和 8.2 指针数组:厉害的指针数组 8.3 指针数组:数字读音 8.4 函数指针:不确定数量的关键字排序 8.5 数指针:浮点数的快速排序 8.6 数组指针与函数指针:施密特正交化 8.7 本章小结 第9章 结构与联合 9.1 结构体的基本使用:国家信息查询 9.2 联合体的基本使用:快速除法256 9.3 结构体联合体嵌套:混合信息查询 9.4 链表的应用:约瑟夫问题 9.5 链表的应用:名字的奥妙 9.6 栈的应用:括号匹配 9.7 哈希表的应用:哈希搜索 9.8 本章小结 第10章 文件与文件流 10.1 文件操作基础:创建日程列表文件 10.2 文件操作基础:显示日程列表 10.3 文件定位:文件指定位置覆写 10.4 文件操作基础:成绩排序 10.5 二进制文件读取:判断BMP文件 10.6 二进制文件读写:数据大小端转换 10.7 本章小结 第11章 综合训练 11.1 算法设计:吃糖 11.2 算法设计:走迷宫 11.3 算法设计:密码新解 11.4 算法设计:排序新解 11.5 算法设计:前5长字符串 11.6 算法设计:堆石头 11.7 算法设计:多项式乘法 11.8 算法设计:计算区域面积 11.9 本章小结 参考文献 |