C语言程序设计(商洛学院)
C语言程序设计(商洛学院)
1万+ 人选课
更新日期:2025/05/20
开课平台智慧树
开课高校商洛学院
开课教师刘爱军陈垚李楠李艳
学科专业工学电子信息类
开课时间2025/01/21 - 2025/07/20
课程周期26 周
开课状态开课中
每周学时-
课程简介
“语言联通世界,程序开启未来” 学习程序设计是一件充满挑战、更充满乐趣的事情,然而学习之初,它之所以给你枯燥乏味的感觉,那是因为没有发掘出它的趣味来。本课程力图用最简明的语言、最典型的实例及最通俗的解释将这种趣味性挖掘出来,带给你全新的学习体验,和你一起欣赏C语言之美,领悟C语言之妙,体会学习C语言之无穷乐趣。
课程大纲

在线教程

章节简介教学计划
程序设计概述
登录后可预览视频
程序设计语言概述
刘爱军
程序设计的灵魂——算法
刘爱军
算法的表示方法
刘爱军
C语言集成编辑软件的使用
刘爱军
顺序结构程序设计
常量与变量
陈垚
整型数据
陈垚
实型数据
陈垚
字符型数据
陈垚
给变量赋值
陈垚
各种数值型数据间的混合运算
陈垚
算术运算符和算术表达式
陈垚
赋值运算符和赋值表达式
陈垚
逗号运算符和逗号表达式
陈垚
C语句概述及赋值语句
陈垚
字符数据的输入输出
陈垚
格式输入与输出
陈垚
选择结构程序设计
关系运算符和关系表达式
陈垚
逻辑运算符和逻辑表达式
陈垚
if语句
陈垚
if语句的嵌套
陈垚
条件运算符
陈垚
多分支选择语句
陈垚
循环结构程序设计
while语句
李艳
do…while语句
李艳
for语句
李艳
break语句和continue语句
李艳
循环语句的嵌套及应用
李艳
数组
一维数组
李艳
二维数组
李艳
字符数组
李艳
数组的应用
李艳
函数与编译预处理
函数的定义
刘爱军
函数的调用及声明
刘爱军
函数的参数及其传递
刘爱军
数组名做函数的参数
刘爱军
函数的嵌套调用
刘爱军
函数的递归调用
刘爱军
局部变量和全局变量
刘爱军
变量的存储类别和生存期
刘爱军
编译预处理命令
刘爱军
指针
指针与指针变量
李楠
指向一维数组的指针
李楠
指向二维数组的指针
李楠
指向字符串的指针
李楠
多级指针
李楠
指针数组
李楠
指向函数的指针
李楠
指针作为函数的参数
李楠
指针函数
李楠
结构体与链表
结构体类型
李楠
结构体数组
李楠
结构体指针
李楠
用指针处理链表
李楠
共用体类型
李楠
枚举类型
李楠
文件的输入输出
文件基本知识
刘爱军
数据文件的基本操作(一)
刘爱军
数据文件的基本操作(二)
刘爱军
位运算
位运算
刘爱军
位段
刘爱军
  • 第一章程序设计概述

    介绍程序和程序设计的基本概念,简要介绍计算机语言的发展简史及C语言概述,强调算法在程序设计中的重要作用,介绍算法的几种表示方法,初步了解C语言集成编辑环境的使用。

  • 1.1程序设计语言概述

    介绍程序和程序设计的基本概念,计算机语言的发展阶段及各类计算机语言的优缺点,简介C语言的发展历程及主要特点。

  • 1.2程序设计的灵魂——算法

    通过日常生活示例,介绍算法的基本概念,强调算法在程序设计中的重要性,给出算法的主要特征。

  • 1.3算法的表示方法

    在了解算法的概念的基础上,进一步介绍算法的几种表示方法,分析各自优缺点,重点学习掌握传统流程图和N-S流程图的表示方法。

  • 1.4C语言集成编辑软件的使用

    以编程输出 “hello,world!”为例,介绍在Visual C++6.0和DevC++环境下运行C 程序的基本方法,初步掌握C语言常用集成编辑软件的使用。

  • 第二章顺序结构程序设计

    顺序结构设计是C语言结构化程序设计中最简单、最基本的一种程序结构。顺序结构的最大特点是,程序按照各语句出现的次序顺序执行的。组成顺序结构的三部分分别是:输入数据、处理数据、输出结果。

  • 2.1常量与变量

    常量是在程序运行过程中值不发生改变的数据。常量也有数据类型,他们是整型常量、实型常量、字符常量、字符串常量及符号常量,整型常量及实型常量的数据长度及取值范围与变量的规定相同。变量是在程序执行过程中其值可以被改变的量,变量名要按照一定的规则命名。

  • 2.2整型数据

    整型数据分为基本整型、短整型、长整型和双长整型。各种类型数据所占的字节数不一样,因此对应的取值范围各不相同;在进行混合运算是应考虑类型之间的转换问题。

  • 2.3实型数据

    实型数据是用来表示具有小数点的实数的。分为单精度浮点型、双精度浮点型和长双精度浮点型。要注意实型数据的存储形式,及其表示方法。

  • 2.4字符型数据

    在C语言中字符是按其代码(整数)形式存储的,在运算过程中直接看成整型数据运算;字符和字符代码并不是任意写一个字符,程序都能识别的。基本字符集包括127个字符,占用一个字节。

  • 2.5给变量赋值

    可以用赋值语句对变量赋值,也可以在定义变量时对变量赋初值。一般变量初始化不是在编译阶段完成的,而是在程序运行时执行本函数时赋初值,相当于执行一个赋值语句。

  • 2.6各种数值型数据间的混合运算

    各种数值型数据间的混合运算分自动转换和强行转换两类。自动转换注意转换规则,强制转换过程应注意精度损失问题。

  • 2.7算术运算符和算术表达式

    用来表示各种运算的符号称为运算符。C语言中包括七大类的基本运算符:算术运算符、逻辑运算符、关系运算符、赋值运算符、逗号运算符、条件运算符和位运算符。算术运算符和数学中的算数运算相似,是对数据进行算数运算的。

  • 2.8赋值运算符和赋值表达式

    赋值符号“=”就是赋值运算符,它的作用是将一个数据赋给一个变量。由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。注意区别两者概念。

  • 2.9逗号运算符和逗号表达式

    逗号运算符将两个(或多个)表达式连接起来。运算时,当顺序点用,结合顺序是从左至右,用来顺序求值,完毕之后整个表达式的值是最后一个表达式的值。逗号运算符( , )是C语言运算符中优先级最低的一种运算符。

  • 2.10C语句概述及赋值语句

    语句是C程序中最基本的组成单位。一个C语句经过编译后产生若干条机器指令。C语句分为5类,其中最基本的语句是赋值语句。

  • 2.11字符数据的输入输出

    字符数据的输入输出有多个函数实现。每个函数的格式要求均不相同,本节学习要注意函数格式问题。

  • 2.12格式输入与输出

    格式输入函数中注意:格式控制串由格式字符和非格式字符串组成。列表中的待输出项一一对应(数量/类型),非格式字符原样输出,在显示中起提示作用。格式输出函数中注意:数据从键盘输入,&取地址符。而且需要记得键进去的值,是以空格,tab,回车作间隔,以回车键结束。

  • 第三章选择结构程序设计

    择结构程序设计
    顺序结构程序设计按照自上而下的流程的顺序执行,但是在实际生活中,仅顺序结构是无法满足用户要求的,并不是所有的程序都是自上而下的顺序执行,而是根据条件有选择的执行。这就是我们将要学习的选择结构程序设计。

  • 3.1关系运算符和关系表达式

    在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。C语言关系运算符有六个,优先级别有三个,结合性均为左结合。

  • 3.2逻辑运算符和逻辑表达式

    逻辑运算符有三个:逻辑与、逻辑或、逻辑非。在此要注意他们的预算条件和运算结果的表示方法,以及短路特性。

  • 3.3if语句

    if语句是指C语言中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。难点在于if和else的匹配问题,以及多个if语句和else if的区别。

  • 3.4if语句的嵌套

    采用嵌套结构实质上是为了进行多分支选择,实际上有三种选择,即:A>B、A

  • 3.5条件运算符

    条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值运算符。因此max=(a>b)?a:b;可改为max=a>b?a:b;条件运算符是一对运算符,不能分开单独使用。条件运算符的结合方向是自右向左。如:a>b?a:c>d?c:d应理解为a>b?a:(c>d?c:d)

  • 3.6多分支选择语句

    switch为典型的多分支选择语句,就是一个判别条件,根据判别条件有多种不同的做法。重点在于掌握break的使用方法。

  • 第四章循环结构程序设计

    循环结构是在程序中需要反复执行某个功能而设置的一种程序结构,使用循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构。

  • 4.1while语句

    while是C语言循环结构中的一种基本循环模式。while语句的一般表达式为:while(表达式){循环体},当满足条件时(表达式为“真”)进入循环,进入循环后,当条件不满足时(表达式为“假”),跳出循环。循环体可以是一个简单的语句,还可以是复合语句。

  • 4.2do…while语句

    do...while 循环是 while 循环的变体。在检查while()条件是否为真之前,该循环首先会执行一次do{}之内的语句,然后在while()内检查条件是否为真,如果条件为真的话,就会重复do...while这个循环,直至while()里面的表达式为假。

  • 4.3for语句

    for语句是C语言编程中用于循环处理的语句循环,循环语句由循环体及循环的判定条件两部分组成,其表达式为:for(表达式;条件表达式;循环体){中间循环体;}。

  • 4.4break语句和continue语句

    在循环结构中,有时需要在某种情况下提早结束正在执行的循环操作,那么就需要用到转向语句,它是用来直接控制程序的执行流程,可用于改变while、do-while、for的正常行为,经常使用的有break语句和continue语句。

  • 4.5循环语句的嵌套及应用

    一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。循环中还可以嵌套循环,这就是多层循环。

  • 第五章数组

    C语言中,数组属于构造数据类型,是有序的元素序列。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素。

  • 5.1一维数组

    一维数组是最简单的数组,其逻辑结构是线性表,它的元素只需要用数组名加一个下标,就能唯一的确定。

  • 5.2二维数组

    二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。概念理解上是二维的,即是说其下标在两个方向上变化, 下标变量在数组中的位置也处于一个平面之中, 而不是像一维数组只是一个向量,但是,实际的硬件存储器却是连续编址的。

  • 5.3字符数组

    C语言中没有字符串类型,字符串是存放在字符型数组中的,字符数组是用来存放字符数据的数组。

  • 5.4数组的应用

    数组是有序的元素序列,在运用到多个数据存储而又不想定义多个变量时或不知道数据个数的时候可以采用数组,数组经常应用于相同类型的若干元素进行查找、排序等操作。运用数组可以使程序更加容易理解和编写。

  • 第六章函数与编译预处理

    介绍函数的基本概念及分类,重点介绍函数的定义、声明和调用以及函数调用中参数的传递问题,掌握函数的嵌套调用和递归调用,熟悉变量的作用域、生存期和存储类别及编译预处理命令。

  • 6.1函数的定义

    简单介绍函数的分类,通过函数的使用举例,重点介绍函数定义的一般格式及其定义函数时的说明及注意事项。

  • 6.2函数的调用及声明

    介绍函数调用的三种基本方式,说明了函数的声明语句格式、基本使用方法及注意事项。

  • 6.3函数的参数及其传递

    通过程序举例,介绍普通变量和数组元素作函数的形参和实参时的数据传递问题。说明普通变量和数组元素做函数的形参和实参时,在函数调用中实现的是实参到形参的“值”的单向传递。

  • 6.4数组名做函数的参数

    通过程序举例,介绍一维数组名和二维数组名作函数的形参和实参时的数据传递问题。强调数组名做函数的参数时,在函数调用中实现的是实参到形参的“地址”的传递。

  • 6.5函数的嵌套调用

    介绍什么是函数的递归调用,给出函数递归调用两种形式:直接递归和间接递归。举例说明递归函数的实现过程,掌握递归函数的特点,分析说明定义递归函数的条件。

  • 6.6函数的递归调用

    介绍什么是函数的嵌套调用,举例说明函数嵌套调用的一般实现过程。

  • 6.7局部变量和全局变量

    从变量的作用域角度,介绍局部变量和全局变量的概念。通过程序实例,说明局部变量和全局变量作用范围及其特点。

  • 6.8变量的存储类别和生存期

    从变量的存在时间和存储空间的角度,介绍变量的存储类别和生存期。通过程序实例,说明不同存储类别的变量分配的存储空间不同,生存期长短也不同。强调变量的作用域和生存期是对同一变量从不同角度的描述刻画。

  • 6.9编译预处理命令

    介绍编译预处理的基本概念,重点介绍文件包含命令和宏定义命令的基本格式及具体应用,对照比较带参数的宏定义和函数的异同。

  • 第七章指针

    指针是C语言中一个重要的概念,可以看作是C语言中的精华部分,正确灵活的使用指针可以使程序简洁、紧凑、高效。指针通过地址间接的对C语言中的变量进行访问和处理,在处理复杂类型数据以及非线性存储结构数据时优越性十分明显。

  • 7.1指针与指针变量

    正确认识指针和指针变量是灵活使用指针处理问题的前提。指针就是地址,指针变量就是存放地址的变量。使用指针处理问题之前需要对指针进行正确的定义、初始化、计算和引用。

  • 7.2指向一维数组的指针

    学习通过指针处理一维数组,能够使数组的操作更加灵活,本节中主要介绍了指向一维数组指针的定义方法、指针加减与指向关系变化之间的关系以及通过指针引用数组元素的方法。数组名本身可以看作是一个指向一维数组的指针常量。

  • 7.3指向二维数组的指针

    指向二维数组的指针是一个二级指针,本质上是一个指向行的指针,本节中主要介绍了指向二维数组指针的定义方法、指针加减与指向对象变化之间的关系以及通过指针引用二维数组元素的方法。

  • 7.4指向字符串的指针

    使用指针处理字符串更加方便灵活,避免了提前定义用于存储字符串的字符数组,本节主要介绍了字符串指针的定义、赋值、初始化、计算、引用、输出等方法。

  • 7.5多级指针

    二级以上的指针称为多级指针,也可以简单的称为指向指针的指针,指向的对象不再是普通变量,而是一个指针变量,本节以二级、三级指针为例,介绍了多级指针的定义、初始化、计算和引用的方法。多级指针在复杂问题的解决中应用较为广泛。

  • 7.6指针数组

    指针数组是一个数组,并且数组中的每个元素均为一个指针数据类型,也就是说,指针数组的每个元素都是地址。指针数组在多个字符串处理中应用较为广泛,使批量字符串的处理更加灵活,本节通过实例介绍了指针数组的定义、初始化、计算、引用等方法。

  • 7.7指向函数的指针

    指向函数的指针是一个指针,指向的对象是一个函数。通过指向函数的指针调用函数可以使函数的调用更加灵活方便,本节通过实例,介绍了指向函数指针的定义、初始化方法,通过指针调用函数以及将指针函数作为函数参数的方法。

  • 7.8指针作为函数的参数

    指针作为函数的参数传递方式以传地址方式为主,本节通过几个实例介绍了指针变量、指针常量、指向数组的指针、字符串指针和指向函数的指针作为函数参数时数据的处理方式。凸显了指针的优越性。

  • 7.9指针函数

    指针函数是结果为指针的函数,也就是函数的结果为一个地址,本节通过实例介绍了指针函数的定义、引用方法。

  • 第八章结构体与链表

    C语言中提供了一系列由系统已经定义好的数据类型,用户可以在程序中直接使用它们来定义变量,例如整型、实型、字符型等,但这些数据类型仅适合于解决一般的简单问题,实际生活中人们往往要处理一些复杂问题,系统提供的数据类型是无法满足需求的,因此需要用户自己根据需要建立数据类型,用来定义变量。

  • 8.1结构体类型

    结构体类型是由用户自己建立的、由不同类型数据组成的组合型数据结构。也可以理解为结构体由若干个类型相同或不同的成员组成。本节通过实例介绍了结构体类型的声明、结构体变量的定义、结构体变量的初始化、结构体成员的引用等方法,用于解决较为复杂的问题。

  • 8.2结构体数组

    结构体数组是一个数组,数组中的每一个元素类型都是同一结构体类型。结构体数组可以处理批量的复杂数据。本节通过实例介绍了结构体数组的定义、初始化、引用方法。

  • 8.3结构体指针

    结构体指针是指向结构体类型变量的指针,通过结构体指针处理结构体变量更加的灵活方便,本节通过实例,介绍了指向结构体类型变量、指向结构体数组的指针定义方法、指向关系的变化、通过结构体指针访问、引用结构体变量、成员的方法。

  • 8.4用指针处理链表

    链表是一种常见的重要数据结构,能够动态的进行数据空间分配,存储方式采用非线性的方式,使得数据存储和处理更加灵活。通过指针建立链表中各结点之间的关系,避免了顺序存储中事先估计数组大小和插入删除操作中大量移动的问题。

  • 8.5共用体类型

    共用体类型可以将几种不同类型的变量存放到同一段内存单元中,每个变量是共用体的一个成员,每一瞬时只能存放其中一个成员,也就是使用覆盖技术,几个变量互相覆盖。本节通过实例介绍了共用体类型的声明、共用体变量的定义、赋值和引用的方法。

  • 8.6枚举类型

    如果一个变量只有几种可能的值,则可以定义为枚举类型,把所有可能的值一一列举出来,变量的值只限于列举出来的值范围内。本节通过实例介绍了枚举类型的声明、枚举变量的定义、赋值、计算和引用的方法,同时介绍了在C语言中使用typedef声明新类型名的方法。

  • 第九章文件的输入输出

    介绍文件的基本知识、以及数据文件的基本操作

  • 9.1文件基本知识

    了解文件的基本概念及分类,介绍数据文件的两种类型:ASCII文件和二进制文件及两类文件在外存中存储形式,重点介绍了文件缓冲区及文件类型指针的概念,为文件读写操作做好知识准备。

  • 9.2数据文件的基本操作(一)

    介绍数据文件的打开和关闭函数fopen函数和fclose函数,数据文件的顺序读写函数fgetc、fputc、fgets、fputs、fprintf和fscnaf以及数据块操作函数fread和fwrite的使用格式。

  • 9.3数据文件的基本操作(二)

    针对数据文件的顺序读写方式的缺点和不足,引入数据文件的随机访问方法,介绍文件的位置标记及定位函数rewind函数、fseek函数和ftell函数的使用格式。

  • 第十章位运算

    介绍位运算的几个基本概念:位、字节、字、字长,重点介绍常用位运算符基本运算、位段的定义及位段的引用方法。

  • 10.1位运算

    介绍位运算的几个基本概念:位、字节、字、字长,以实例说明点介绍常用位运算符基本运算操作。

  • 10.2位段

    介绍位段的定义及引用,举例说明位段在定义和使用过程要注意的几点事项。

  • 开始学习
  • 第一章  作业测试
    第一章 程序设计概述

    1.1 程序设计语言概述

    1.2 程序设计的灵魂——算法

    1.3 算法的表示方法

    1.4 C语言集成编辑软件的使用

    视频数4
  • 第二章  作业测试
    第二章 顺序结构程序设计

    2.1 常量与变量

    2.2 整型数据

    2.3 实型数据

    2.4 字符型数据

    2.5 给变量赋值

    2.6 各种数值型数据间的混合运算

    2.7 算术运算符和算术表达式

    2.8 赋值运算符和赋值表达式

    2.9 逗号运算符和逗号表达式

    2.10 C语句概述及赋值语句

    2.11 字符数据的输入输出

    2.12 格式输入与输出

    视频数12
  • 第三章  作业测试
    第三章 选择结构程序设计

    3.1 关系运算符和关系表达式

    3.2 逻辑运算符和逻辑表达式

    3.3 if语句

    3.4 if语句的嵌套

    3.5 条件运算符

    3.6 多分支选择语句

    视频数6
  • 第四章  作业测试
    第四章 循环结构程序设计

    4.1 while语句

    4.2 do…while语句

    4.3 for语句

    4.4 break语句和continue语句

    4.5 循环语句的嵌套及应用

    视频数5
  • 第五章  作业测试
    第五章 数组

    5.1 一维数组

    5.2 二维数组

    5.3 字符数组

    5.4 数组的应用

    视频数4
  • 第六章  作业测试
    第六章 函数与编译预处理

    6.1 函数的定义

    6.2 函数的调用及声明

    6.3 函数的参数及其传递

    6.4 数组名做函数的参数

    6.5 函数的嵌套调用

    6.6 函数的递归调用

    6.7 局部变量和全局变量

    6.8 变量的存储类别和生存期

    6.9 编译预处理命令

    视频数9
  • 第七章  作业测试
    第七章 指针

    7.1 指针与指针变量

    7.2 指向一维数组的指针

    7.3 指向二维数组的指针

    7.4 指向字符串的指针

    7.5 多级指针

    7.6 指针数组

    7.7 指向函数的指针

    7.8 指针作为函数的参数

    7.9 指针函数

    视频数9
  • 第八章  作业测试
    第八章 结构体与链表

    8.1 结构体类型

    8.2 结构体数组

    8.3 结构体指针

    8.4 用指针处理链表

    8.5 共用体类型

    8.6 枚举类型

    视频数6
  • 第九章  作业测试
    第九章 文件的输入输出

    9.1 文件基本知识

    9.2 数据文件的基本操作(一)

    9.3 数据文件的基本操作(二)

    视频数3
  • 第十章  作业测试
    第十章 位运算

    10.1 位运算

    10.2 位段

    视频数2
  • 期末考试