hi,小慕
课程

中国大学MOOC,为你提供一流的大学教育

hi,小mooc
高级语言程序设计
第15次开课
开课时间: 2025年03月03日 ~ 2025年07月27日
学时安排: 4
进行至第6周,共21周 已有 1722 人参加
立即参加
课程详情
课程图谱
课程评价(357)
spContent=随着深空探测器、无人机、自动驾驶汽车等智能系统的发展,计算机及其相关技术正在深刻影响人类的发展。若将计算机硬件类比躯干,那计算机程序则是构建大脑的基础。在众多程序设计语言中,C语言为构建Unix操作系统而设计,后来的Windows、MacOS、Linux、Android等操作系统,以及众多应用软件均使用C语言开发。时到今日,众多新型程序设计语言在C语言基础上诞生、开花、结果,获得广泛应用。但是C语言依然保持强大生命力,是新型设备开发的利器。C语言简洁、高效的语法体系非常适合入门学习。为了梦想,用计算机程序改造世界,创造无限可能!欢迎大家与我们一起学习使用C语言程序设计!
随着深空探测器、无人机、自动驾驶汽车等智能系统的发展,计算机及其相关技术正在深刻影响人类的发展。若将计算机硬件类比躯干,那计算机程序则是构建大脑的基础。在众多程序设计语言中,C语言为构建Unix操作系统而设计,后来的Windows、MacOS、Linux、Android等操作系统,以及众多应用软件均使用C语言开发。时到今日,众多新型程序设计语言在C语言基础上诞生、开花、结果,获得广泛应用。但是C语言依然保持强大生命力,是新型设备开发的利器。C语言简洁、高效的语法体系非常适合入门学习。为了梦想,用计算机程序改造世界,创造无限可能!欢迎大家与我们一起学习使用C语言程序设计!
—— 课程团队
课程概述

本课程的教学目标是通过学习C语言,建立起程序设计的概念,掌握程序设计的基本方法和技巧,养成良好的程序设计风格,从而具备应用程序设计解决相关专业领域内实际问题的基本能力。本课程在系统介绍程序设计语言基本知识的基础上,注重程序设计思想及能力培养,并引入专业应用的实际问题和工程案例。 


现代计算机遵循了艾伦·麦席森·图灵(Alan Mathison Turing)提出的”图灵机"模型,延续冯·诺依曼(John von Neumann)提出的“存储程序式电子计算机“体系结构。计算机程序(包括指令和数据)在运行时,首先存储到内存中,然后在中央处理器控制下自动执行。在执行过程中,按需从键盘、鼠标等输入设备获取信息,并向显示器、打印机等输出设备输出结果。


既然计算机程序运行于“存储程序式电子计算机“中,因此我们有必要了解构成程序的指令和数据如何表示和存储,也就是说为了能够编写计算机程序,首先要学习一门程序设计语言。在众多程序设计语言中,C语言为构建Unix操作系统而设计,后来的Windows、MacOS、Linux、Android等操作系统,以及众多应用软件均使用C语言开发。时到今日,C语言依然保持强大生命力。 因此本门课程选择了C语言作为学习程序设计的基础。


计算机作为一种计算系统,其数值计算、非数值计算方法与数学、物理、化学、力学等等领域的方法不同,将专业领域的求解方法转换为计算机领域的算法,掌握典型问题的求解算法,是本门课程的重要任务。


本课程围绕如何运算、如何表达逻辑、如何处理集合数据、如何实现代码的分解与重用、如何实现基于内存地址的数据访问、如何表达复杂对象、如何实现数据永久存储、如何实现程序移植,系统介绍表达式运算、输入输出、顺序结构、选择结构、循环结构、数组、函数、指针、结构体、文件、预编译处理等内容。


按照课程计划,本课程安排15周的学习任务,每周发布2个学时理论学习任务。建议各位同学另行安排2个学时完成上机实践。

授课目标

通过学习使用C语言编写程序,初步掌握程序设计方法,养成良好的程序设计风格;系统地学习面向过程的、结构化程序设计的思想和方法;结合上机实践,使学生对程序设计有一个比较全面的、系统的了解,为学习程序设计和软件开发打下一个良好基础。

课程大纲
程序设计入门
课时目标:学习目标:了解利用计算机及其程序求解问题的基本思想,以及现代存储程序式计算机的基本工作原理;了解数据、指令表示方法,以及如何编写程序;了解常用的程序设计语言;掌握问题求解与算法设计的基本思路与程序设计思想;通过实践掌握用C编写最简单程序。课时安排:建议在线学习2学时,上机实践2学时。
在线学习:
1.1 课程概要
1.2 计算机基本原理
1.3 指令与程序
1.4 程序设计语言
1.5 问题求解与算法设计
1.6 C语言概述
上机实践:
1.1 在PC机上,安装Codeblock软件,熟悉基本操作
1.2 在手机上,安装C4driod(安卓平台)、C++(苹果平台),熟悉基本操作
1.3 编写简单程序
信息编码与基本运算
课时目标:学习目标:掌握如何表示常量、变量;掌握C语言提供的基本数据类型;掌握如何实现包括加、减、乘、除在内的算术运算,如何实现大于、小于等关系运算,如何实现包括与、或、非的逻辑运算,如何实现赋值运算;并掌握位运算、条件运算、逗号运算和类型转换等运算。课时安排:建议在线学习3学时,上机实践3学时。
在线学习:
2.1 基本信息与编码
2.2 基本数据类型
2.3 常量
2.4 变量
2.5 基本运算与表达式
2.6 算术运算
2.7 关系运算
2.8 逻辑运算
2.9 位运算
2.10 赋值运算
2.11 其它运算-类型转换运算、条件运算和逗号运算
上机实践:
2.1 编写简单程序
2.2 教材例3-1~3-8
常用函数库与顺序结构
课时目标:学习目标:掌握数学库、字符处理函数库和复数函数库;掌握如何通过语句实现基本逻辑步骤;掌握如何通过从前往后的语句编排实现顺序逻辑结构;掌握如何从键盘获取外部信息;掌握如何向显示器输出信息。课时安排:建议在线学习2学时,上机实践4学时。
在线学习:
3.1 数学函数库
3.2 字符处理函数库
3.3 复数运算函数库
3.4 标准输入输出函数库-输入输出设备
3.5 标准输入输出函数库-字符输入和输出函数
3.6 标准输入输出函数库-格式输出函数
3.7 标准输入输出函数库-格式输入函数
3.8 程序控制结构概述
3.9 基本语句
上机实践:
3.1 实现教材例3-9~3-13
3.2 实现案例-电影评分计算
3.3 学有余力的同学,完成例3-15、例3-16
逻辑判断与选择结构
课时目标:学习目标:掌握如何依据逻辑判断,例如比较,有选择的执行逻辑步骤,即实现选择结构;掌握实现单分支的if语句;掌握实现双分支的if...else语句;掌握实现多分支的if...else、if...语句和switch语句课时安排:建议在线学习3学时,上机实践3学时。
在线学习:
4.1 单分支结构-if语句
4.2 双分支结构-if...else
4.3 多分支结构-if...else if...
4.4 多分支结构-switch
4.5 案例-电影评分计算
上机实践:
4.1 编写简单程序
4.2 实现教材例4-1~4-9
4.3 实现案例-电影评分计算
迭代计算与循环结构
课时目标:学习目标:掌握如何依据迭代条件实现反复的运算,直到获得最终结果的逻辑结构,即实现循环结构;掌握while、for、do while语句实现的循环结构,以及通过循环嵌套实现复杂逻辑;掌握通过break/continue语句实现循环控制。课时安排:建议在线学习3学时,上机实践3学时。
在线学习:
5.1 循环结构-while
5.2 循环结构-for
5.3 循环结构-do while
5.4 循环结构-break/continue
5.5 循环结构-嵌套
5.6 实现案例-电影评分计算
上机实践:
5.1 编写简单程序
5.2 实现教材例5-1~5-14
5.3 实现案例-电影评分计算
集合数据及其处理
课时目标:学习目标:掌握集合数据,例如列表、向量、矩阵等数据的存储;掌握基于一维数组实现列表和向量的存储;掌握插入、删除、查找和排序等集合数据处理方法;掌握基于二维数组实现表格和矩阵数据的存储;掌握矩阵运算,表格排序等数据处理算法。课时安排:建议在线学习2学时,上机实践3学时。
在线学习:
6.1 数组概念
6.2 一维数组
6.3 二维数组
上机实践:
6.1 编写简单程序
6.2 实现教材例6-1~6-7
字符数据处理
课时目标:学习目标:掌握字符和字符串的存储机制;掌握字符串处理所涉及的插入、删除、查找和排序等常用方法;掌握字符串长度计算、字符串复制、字符串连接、字符串比较等处理算法;深入了解数组与数据存储机制。课时安排:建议在线学习2学时,上机实践3学时。
在线学习:
7.1 字符数组
7.2 字符串
7.3 数组与数据存储
7.4 案例-电影评分计算
上机实践:
7.1 编写简单程序
7.2 实现教材例6-9~6-13
7.3 实现案例-电影评分计算
函数实现代码分解和重用
课时目标:学习目标:从代码重用角度,掌握C语言引入函数的目的是提高程序设计质量和效率中的重要作用;掌握函数的定义和基本结构;掌握函数声明的作用及其常用方法;掌握函数之间信息传递机制,并重点掌握基于函数参数的信息传递机制;掌握函数调用的方法。课时安排:建议在线学习2学时,上机实践2学时。
在线学习:
8.1 函数入门
8.2 函数定义
8.3 函数声明
8.4 参数传递
8.5 函数调用
上机实践:
8.1 编写简单程序
8.2 实现教材例7-4~7-10
递归及函数结构
课时目标:学习目标:掌握递归调用的基本机制;了解典型C语言的程序的源程序结构;了解内部函数与外部函数的定义和用途;了解函数及源程序文件引入后,对变量作用域的影响;了解变量在内存中的存储机制。课时安排:建议在线学习2学时,上机实践2学时
在线学习:
9.1 递归调用
9.2 源程序结构
9.3 内部函数与外部函数
9.4 变量作用域-全局变量与局部变量
9.5 变量如何存储
9.6 案例-电影评分计算
上机实践:
9.1 编写简单程序
9.2 实现教材例7-10~7-14
9.3 实现案例-电影评分计算
内存地址及其指针
课时目标:学习目标:了解程序设计中的数据和指令的存储机制;掌握变量、数组的内存地址获取方法;掌握通过地址运算处理变量和数组的基本方法。课时安排:建议在线学习2学时,上机实践2学时。
在线学习:
10.1 地址与指针
10.2 指针变量
10.3 指针运算
10.4 指针与一维数组
10.5 指针与二维数组
上机实践:
10.1实现教材例8-2~8-3
指针应用
课时目标:学习目标:掌握通过地址运算处理字符串的基本方法;了解函数中使用指针类型参数的原因,掌握使用指针类型参数的基本方法;掌握应用指针实现字符串长度、字符串复制、字符串链接等操作的基本方法;了解指针数组的基本用法;了解数组指针、函数指针、指向指针等基本概念;掌握内存管理的基本方法。课时安排:建议在线学习2学时,上机实践4学时。
在线学习:
11.1 指针与字符串
11.2 指针数组
11.3 数组指针
11.4 函数与指针
11.5 指向变量的地址-指向指针的指针
11.6 内存管理
11.7 实现案例-电影评分计算
上机实践:
11.1 编写简单程序
11.2 实现教材例8-4~8-16
11.3 实现案例-电影评分计算
复杂对象描述与结构体
课时目标:学习目标:了解C语言引用结构体的原因;掌握结构体的定义方法;掌握结构体变量、数组、指针的基本用法;掌握结构体用作函数参数和返回值的基本用法;了解共用体、枚举类型和类型重定义的基本用法。课时安排:建议在线学习2学时,上机实践3学时。
在线学习:
12.1 为何引入结构体及其定义
12.2 结构体变量及其初始化
12.3 结构体数据运算
12.4 结构体数组
12.5 结构体指针
12.6 结构体与函数
12.5 共用体
12.6 枚举类型
12.7 类型重定义
上机实践:
12.1 编写简单程序
12.2 实现教材例9-2~9-7
链表及其处理
课时目标:学习目标:了解链表定义、遍历、排序、插入、删除等基本处理算法。课时安排:建议在线学习2学时,上机实践2学时。
在线学习:
13.1 链表的定义
13.2 链表的操作
上机实践:
13.1 实现案例-电影评分计算
预编译处理
课时目标:学习目标:了解C语言中引入预编译处理的原因;了解预编译指令与函数语句的区别;掌握符号常量和宏的定义方法;了解#include指令的基本用法;了解条件编译的基本用法课时安排:建议在线学习2学时,上机实践2学时。
在线学习:
14.1 预编译处理概述与define
14.2 宏定义
14.3 文件包含与include
14.4 条件编译
上机实践:
14.1 实现教材例10-1~10-5
14.2 实现案例-电影评分计算
文件与数据永久存储
课时目标:学习目标:了解文件在实现数据永久性存储中的作用;了解文本文件与二进制文件的区别;掌握打开、关闭、读、写等基本文件操作。课时安排:建议在线学习2学时,上机实践2学时。
在线学习:
15.1 文件概述
15.2 文件定义
15.3 文件操作基础
15.4 文本文件读写
15.5 二进制文件读写
15.6 定位与随机读写
15.5 综合应用
上机实践:
15.1 编写简单程序
15.2 实现教材例11-8~11-10
展开全部
预备知识

本课程要求学习者熟悉Windows或Linux的基本操作。

参考资料

开发工具(PC)

[1] CodeBlocks 20.03

[2] VC++ 2010/2015/2017/2019/2022

[3] VSCode



开发工具(手机及平板电脑)

安卓系统:C4droid

苹果系统:C++


参考教材:

高克宁,程序设计基础(C语言)第3版,清华大学出版社,2018年1月

常见问题

------------账号注册相关问题------------

Q1:我东北大学的学生,本期课程采用了混合式教学,在注册账号时要注意哪些问题?

A1:要求个人信息的“昵称”中包含学校和学号信息。例如NEU20200101。

Q2:我不是东北大学的学生,本期课程采用了混合式教学,在注册账号时注意哪些问题?

A2:要求个人信息的“昵称”中包含学校和学号信息。例如LNU20200101。

Q3:我是在校学生,未参加混合式教学,在注册账号时注意哪些问题?

A3:不做要求,建议参考问题Q2。

------------混合式教学相关问题------------

Q4:我希望依托本门课程开展混合式教学,如何联系?

A4:请发送邮件给我们,gkn@cc.neu.edu.cn

Q5:我们线下课程进度与MOOC进度不一致,如何处理?

A5:为了支持混合式教学需要,本期课程所有练习和测验将开放4周,最终截止时间不超过课程结束时间。请各位老师另行通知各项学习活动的实际完成时间。

Q6:如何获得学生过程学习数据?

A6:需要获得学生在线学习过程学习数据的老师,请通过慕课堂模块实现。

------------东北大学混合教学问题------------

Q7:本学期注册《C语言程序设计(理工类)》课程,教学如何开展?

A7:课程开展各项安排,请参见教务处通知。

东北大学
2 位授课老师
高克宁

高克宁

教授

赵长宽

赵长宽

讲师

推荐课程

【DeepSeek适用】小白玩转AI大模型应用开发

林粒粒

198人参加

小白玩转 Python 数据分析

林粒粒

76人参加
下载
下载

下载App