C语言不但是入门计算机编程学习的基础,也是电子信息、自动化等工程专业的重要驱动语言,同时在行业众多大型赛事中C语言的使用最为广泛。由于C语言自身简洁、高效且贴近底层系统的特性,很多学校将C语言作为程序设计课程的教学首选。哈尔滨工业大学计算机学院苏小红教授,高校程序设计课程配套教辅书籍《C语言大学实用教程(第4版)》系列的作者,结合《C语言大学实用教程学习指导(第4版)》程序案例,设计并开发C语言程序设计实践课程资源,即日起正式上线,欢迎广大师生体验学习!
教学与实践课程
课程简介
《C语言大学实用教程学习指导》课程主《C语言程序设计》是很多院校在同学们学习完《大学计算机基础》或《计算思维导论》之后开设的第一门高级语言程序设计课,也是很多院校计算机公共基础课程,是大学生计算机素质教育的重要组成部分。对于理工类专业而言,本课程在培养学生的工程实践能力和创新思维能力等方面具有重要意义。课程按照学生的学习能力和课时安排,分为7个章节,共包含59个在线实训关卡。实践课程内容与C语言编程理论教学一一对应,由简入深涵盖顺序结构、选择结构、循环结构的认知与编写练习,进而引入函数、数组、递归等概念和混合编程练习,最后纳入结构体以及文件编程,力图化解初学者对C语言程序设计的理解障碍,提高学生的动手编程能力。课外上机实验含有丰富的场景练习,作为课内知识的巩固和补充,帮助学生夯实基础、掌握计算思维和程序设计算法思想。本实践课程可作为高校各专业C语言程序设计课程、ACM程序设计大赛和计算机等级考试的配套练习。
教学目标
“让学生在学习程序设计的过程中,养成良好的编程风格,在上机调试程序时,不再感到枯燥乏味,而是其乐融融”不仅是多年来苏小红教授教学著书孜孜以求的目标,同时也是本实践课程开设的目标。期望学生们通过学习本课程知识、反复练习课程实践项目,掌握C语言的基本内容及程序设计的基本方法与编程技巧,掌握科学有效的程序设计和调试方法,并坚持良好的编程习惯。在丰富的程序设计问题场景中,培养大学生的计算机应用能力、逻辑思维能力、实践能力和创新能力,培养学生应用计算机解决和处理实际问题的思维方法与基本能力,为进一步学习和应用计算机打下基础。学生能够在学习过程中不断思考和尝试,激发对编程的兴趣,不仅停留在学会使用C语言的层次,还能自我驱动探索C语言程序设计的奥秘,能够欣赏体会C语言编程的美妙之处。
课程特色
知趣结合,循序渐进。本课程实验以知识点为主线进行实训关卡的设计,有效地将趣味性和实用性融为一体,以循序渐进的任务驱动方式,指导学生完成实验程序设计。通过各种常见的生活场景引出问题,潜移默化地引导学生应用程序设计思想解决实际问题,赋予编程更多的趣味和应用价值。课外实验不仅按照C语言程序设计各部分基础知识设计,还通过提高程序设计需求的复杂性来引导学生融会贯通所学知识,结合知识点给出了多个贯穿C语言程序设计知识体系的综合应用实例(如学生成绩管理系统、小游戏),均可作为最终的课程设计内容。
学生成绩管理系统实验设计示例举一反三,熟能生巧。本实践课程主要向学生介绍C语言的基础知识,考虑到大部分练习本实验的学生为初次接触程序设计和计算机编程,本实验对于不同知识点都设计了难度递增的多个实验关卡,通过举一反三的方式加强学生对各要点的掌握。尤其是在各程序设计顺序结构的章节中,往往使用同一个场景下的不同问题来引出各结构的特性和重点,案例典型,难度层层递进,学生能够掌握和记忆的内容也更多。由于循环结构和分支结构往往一起使用,本课程使用“猜数游戏”的问题场景,覆盖了三种不同控制结构的使用,结合游戏规则的变化引导学生变换循环和分支程序的设计思路,帮助学生在游戏间快速地区分语句的异同。
循环结构编程练习实验内容课程导览
C语言基础:选择结构
选择结构中需要知道if、else、elseif、switchcase的用法。
1-1选择结构编程练习一:身高预测
1-2选择结构编程练习二:体型判断
1-3选择结构编程练习三:简单的计算器
1-4选择结构课外练习:计算个人所得税
1-5选择结构课外练习:数数的手指
1-6选择结构课外练习:计算到期存款本息之和
C语言基础:循环结构
循环结构一般会结合着分支结构一起使用,完成对问题的求解。
2-1循环结构编程练习一:判断素数
2-2循环结构编程练习二:猜数游戏
2-3循环结构课外练习:存款预算
2-4循环结构课外练习:求解不等式
2-5循环结构课外练习:猜神童年龄
2-6循环结构课外练习:计算礼炮声响次数
2-7循环结构课外练习:抓交通肇事犯
2-8循环结构课外练习:寻找最佳存款方案
C语言基础:函数、递归
结构化程序设计的思想:把大问题分解成若干个小问题,每个小问题就是一个独立的子模块,以实现特定的功能、在C程序中,子模块的作用是由函数完成的。
3-1函数编程练习一:判断三角形类型
3-2函数编程练习二:给小学生出加法考试题
3-3函数编程练习三:掷骰子游戏
3-4递归编程练习一:计算游戏人员的年龄
3-5递归编程练习二:计算最大公约数
3-6递归编程练习三:计算矩阵行列式的值
3-7函数编程课外练习:数字黑洞
3-8函数编程课外练习:猴子吃桃
C语言基础:数组
数组(Array)就是一些列具有相同类型的数据的集合这些数据在内存中顺序存储。C语言数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
4-1数组编程练习一:检验并打印幻方矩阵
4-2数组编程练习二:餐饮服务质量调查打分
4-3数组编程练习三:文曲星猜数游戏
4-4数组编程课外练习:产值翻番计算
4-5数组编程课外练习:简单的口令检查程序
4-6数组编程课外练习:合并有序数列
4-7数组编程课外练习:单词接龙
C语言基础:输入输出、文件操作
需要理解数据流(指程序与数据的交互是以流的形式进行的)的打开和关闭、缓冲区(在程序执行时,所提供的额外内存,可用来暂时存放做准备执行的数据)、文件类型(分为文本文件和二进制文件两种)以及文件存取方式(顺序存取方式和随机存取方式)等概念,并加以区分应用。
5-1熟悉上机环境和顺序结构编程练习
5-2文件编程练习
C语言进阶:数组、指针和函数综合编程练习
数组和指针之间的关系极为密切,数组和指针作为函数参数都属于按地址调用,能够从函数获得需要修改的数据,综合应用数组、指针和函数有助于编写可读性更好、执行效率更高的程序。
6-1综合编程练习:一维数组和函数综合编程练习
6-2综合编程练习:二维数组和函数综合编程练习
6-3综合编程练习:数组、指针和函数综合编程练习
6-4综合编程课外练习:英雄卡
C语言进阶:实战案例
结构化程序设计的思想:把大问题分解成若干个小问题,每个小问题就是一个独立的子模块,以实现特定的功能、在C程序中,子模块的作用是由函数完成的。
7-1结构体编程练习:模拟数字时钟
7-2综合案例课外练习:火柴游戏
7-3综合案例课外练习:小游戏
7-4综合案例课外练习:大奖赛现场统分
7-5综合案例课外练习:学生成绩管理系统
学习导航
本实践课程所有实验题目均设计为在线实训关卡,头歌提供的自动化评测功能可以帮助学生完成代码质量和程序运行结果的检测。练习本实验时,可先参考教师在题目说明下给出的编程提示以及编程环境中已有的注释,对于综合知识应用的大型程序设计开发题目,可先对系统代码进行通读,明确个人开发的任务、完善程序设计细节,再着手代码编写效果更佳。
对于系统型程序设计项目(课外上机练习中的“学生成绩管理系统”和“小游戏”),平台提供终端对设计成果进行检验,以课程设计“小游戏”为例按照编程说明的步骤打开命令行终端,逐步输入相应命令打开游戏界面,按照不同功能的输入输出结果对程序进行测试。
所有采用本实践课程的老师和学生可以按照配套教材《C语言大学实用教程学习指导(第4版)》展开教学和学习。教材以及相关课程资源免费获取可前往哈尔滨工业大学教学团队公开的资源网站。
教材简介
本书是“十二五”普通高等教育本科国家级规划教材,是《C语言大学实用教程(第4版)》配套教材,也是国家精品课教材、国家精品资源共享课教材,全国已有上百所高校采用本书进行程序设计教学。
全书包括习题解答、上机实验指导和案例分析三章内容。第1章习题解答,包括主教材中全部习题及解答,涵盖全国计算机等级考试各种题型。第2章上机实验指导,包括程序调试技术、上机实验题目及其参考答案、程序在线评判和利用在线评判编程的注意事项等。本章最后给出的贯穿全书内容的综合应用实例(学生成绩管理系统),可作为课程设计内容。第3章为案例分析,包括错误案例分析、趣味经典实例分析和程序优化三部分。主、辅教材均为任课老师免费提供电子课件及例题源代码。
教师介绍苏小红哈尔滨工业大学计算机学院教授
博士生导师,省级教学名师,中国计算机学会高级会员,全国高等学校计算机基础教育研究会理事,EI期刊《系统工程与电子技术》编委,《计算机学报》等国内多种核心以上期刊的审稿人,宝钢优秀教师奖、省师德先进个人、省优秀教师获得者。先后承担或参加完成国家自然科学基金、国防基础科研、国家、航天支撑基金、国际合作、国内知名公司的横向合作等科研项目多项,目前承担国家自然科学基金项目1项,参与与清华大学合作的“十三五”国家重点研发计划项目1项。在国际期刊、国际会议以及国内重要期刊上发表论文余篇,已授权发明专利7项,获得软件著作权登记18项,获黑龙江省科技进步二等奖1项、黑龙江省自然科学二等奖1项、市自然科学技术学术成果一等奖1项。