首页 > 人才培养 > 本科教育 > 教学大纲 > 正文

《C语言程序设计与应用(C Language Programming and Application)》教学大纲

    作者: 发布时间: 2025-11-05 16:21 访问次数:

C语言程序设计与应用(C Language Programming and Application)》教学大纲

制定时间:2025 年4 月

一、课程基本信息

)适用专业:计算机科学与技术/软件工程/物联网/智能科学与技术

)课程代码:3DX1011A

(三)学分/课内学时:4学分/64学时

)课程类别:专业教育

)课程性质:必修/理论课

)先修课程:

)后续课程:数据结构/算法与分析

二、课程教学目标

《C语言程序设计与应用(C Language Programming and Application)》是计算机类专业学生必修的一门专业基础课。本课程为理论课程,专业必修课。本课程的主要教学内容是C语言的基本语法,结构化程序设计的基本思想,常用的C语言标准库。通过本课程的学习,使学生掌握C程序设计语言的基本语法规则,理解结构化程序设计的基本方法;能阅读一般C语言源程序;并能编写和调试一般实用程序;为进一步学习后续程序设计和系统开发课程打下基础。

(一)具体目标

目标1:‌掌握C语言核心语法与编程基础‌ ,熟练运用数据类型、运算符、控制结构(顺序、选择、循环)、函数、数组、指针、结构体、文件操作等核心语法,理解内存管理与指针操作的底层逻辑‌。 掌握结构化程序设计方法,能够根据需求设计算法并转化为可执行的C程序‌,使学生具备结构化程序设计能力,能够独立分析和解决实际问题。

目标2:掌握程序调试与优化技巧,理解代码规范(如命名规则、注释规范)对软件可维护性的重要性‌。能够编写结构清晰、可读性强的代码,解决数学计算、数据管理等实际问题,并具备初步的软件开发技能‌。在代码调试与算法优化过程中,强调“细节决定成败”,培养严谨求实、精益求精的工匠精神。

 

(二)课程目标与毕业要求的对应关系

毕业要求

毕业要求指标点

课程目标

教学单元

评价方式

1.工程知识:能够将数学、自然科学、计算、工程基础和专业知识用于解决软件领域的复杂工程问题。

 

观测点 1.2:掌握计算、工程基础和专业知识,并将其用于软件领域复杂工程问题的表述;

 

目标1

C 语言程序设计导论、数据类型、程序的基本结构、数组、函数、指针、结构体类型、联合体类型和枚举类型、文件

课内实验

期中考试

期末考试

作业

2.问题分析:能够应用数学、自然科学和工程科学的基本原理,识别、表达并通过文献研究分析软件领域复杂工程问题,综合考虑可持续发展的要求,以获得有效结论。

 

观测点 2.1: 能运用数学、自然科学、工程科学与技术和计算机专业的基本原理,识别、判断软件领域复杂工程问题的关键环节,并能有效分解。

 

目标2

C 语言程序设计导论、数据类型、程序的基本结构、数组、函数、指针、结构体类型、联合体类型和枚举类型、文件

课内实验

期中考试

期末考试

作业

11. 终身学习。具有自主学习、终身学习和批判性思维的意识和能力,能够理解广泛的技术变革对工程和社会的影响,适应新技术变革。

 

11.2能针对个人或职业发展的需求,采用合适的方法,自主学习,适应社会和技术的发展。

 

目标1

C 语言程序设计导论、数据类型、程序的基本结构、数组、函数、指针、结构体类型、联合体类型和枚举类型、文件

课内实验

期中考试

期末考试

作业

目标2

C 语言运算符和表达式、程序的基本结构、数组、函数、指针、结构体类型、联合体类型和枚举类型、文件

课内实验

期中考试

期末考试

作业

 


三、教学内容与方法

(一)教学内容及要求

 

教学单元

教学内容

学习产出要求

推荐学时

推荐教学方式

支撑

课程目标

备注

1

C 语言程序设计导论

Linux操作系统简介,程序和算法的概念,计算机的组成部分,C语言的特点,Linux操作系统下C语言程序的编辑与编译,程序的执行,介绍第一个完整的C语言程序,简单的输入输出。

了解Linux操作系统,了解什么是程序,理解计算机的组成,掌握Linux操作系统下C语言程序的编辑,编译与可执行文件的执行,掌握GCC开发环境。

重点:

什么是程序,计算机的组成,C语言程序的编辑,编译与运行。

难点:

内存的概念,GCC开发环境的使用。

2

讲授

实操

目标1


2

实验1

简单C程序设计

运用所学的数据类型、运算符和表达式写一个简单的顺序程序。

2

讲授

示范

实操

目标1


3

C语言的数据类型

标识符,常量,变量,基本数据类型。

 

了解标识符、常量与变量的概念;理解基本数据类型定义变量在内存中的存在形式,特别是int,char类型的内存形式。掌握数据输入函数、数据输出函数;掌握算术运算符和算术表达式、赋值运算符和赋值表达式;掌握自增、自减运算符。

重点:

数据类型转换,自增、自减运算符。

难点:

变量在内存的存在形式,自增、自减运算符。

2

讲授

案例

目标1


4

运算符和表达式

基本的表达式,基本的运算符,运算符的优先级及结合性。

 

掌握表达式语句的构成、复合语句的构成;掌握关系运算符和关系表达式、逻辑运算符和逻辑表达式、条件运算符和条件表达式;掌握逗号运算符和逗号表达式;掌握运算符的优先级和结合性,数据类型转换的方式。

重点:

关系运算符和关系表达式、逻辑运算符和逻辑表达式,运算符的优先级和结合性。

难点:

运算符的优先级和结合性。

2

讲授

案例

实操

目标2


5

实验2

各种数据类型的算术运算

使用C语言基本数据类型作算术运算并输入输出。

2

讲授

示范

实操

目标2


6

程序的基本结构

顺序结构,选择结构,循环控制结构。

掌握顺序结构和选择控制结构程序设计(if语句、switch语句的语法和用法)的基本方法。掌握循环控制结构的程序设计方法(while语句、do-while语句和for语句的语法和用法)。

掌握break语句与continue语句的语法和用法。

重点:

if与if~else的嵌套,多分支选择结构的用法,while语句、do-while语句和for语句的用法,循环程序的执行流程。

难点:

if与if~else的嵌套,循环的理解与执行流程,双重循环,多重循环。

6

讲授

案例

实操

目标1、2


7

实验3

选择结构程序设计

掌握关系运算符和关系表达式;掌握逻辑运算符和逻辑表达式;熟练掌握IF语句和SWITCH语句。

2

讲授

示范

实操

目标1、2


8

实验4

while语句的使用

使用while语句编写循环程序

2

讲授

示范

实操

目标1、2


9

实验5

双重循环

使用while语句编写双重循环

2

讲授

示范

实操

目标1、2


 

10

 

实验6

for与do~while

使用for,do~while语句实现循环,并理解三种循环之间的嵌套和区别;验证break、continue关键字的用法。

2

讲授

示范

实操

目标1、2


11

数组

一维数组,二维数组,数组的内存组织形式,字符数组,字符串。

 

掌握一维数组的定义和使用;理解二维数组的定义和使用。

重点:

一维数组、二维数组,数组的内存组织,字符串与数组的关系。

难点:

数组的内存组织形式,二维数组的

4

讲授

案例

实操

目标1,2


12

实验7

一维数组的使用

实现一维数组的定义,一维数组的初始化,理解数组的存储分配,并在其上实现简单的算法

2

讲授

示范

实操

目标1,2


13

实验8

二维数组的使用

实现二维数组的定义,二维数组的初始化,理解数组的存储分配,并在其上实现简单的算法

2

讲授

示范

实操

目标1,2


14

函数

函数的概念,函数的定义,函数的声明,函数的调用。

 

掌握函数的概念、函数的定义、函数的形式参数和实际参数以及函数的返回值。掌握函数调用的方式、函数的嵌套调用、函数的递归调用、函数调用时的参数传递。掌握数组作函数的参数、指针作函数的参数、了解main( )函数的参数。

重点:

函数的形式参数和实际参数以及函数的返回值,函数调用的方式、函数的嵌套调用,数组作函数的参数、指针作函数的参数。

难点:

函数调用的方式,数组作函数的参数,变量的作用域与生存期,局部变量,全局变量,静态局部变量,递归函数。

4

讲授

案例

实操

目标1、2


15

实验9

函数的应用

以子函数的方式实现程序的模块化的编程思想,对一个特定的问题细分为多个子函数,以调用子函数的方式完成问题的求解。

2

讲授

示范

实操

目标1、2


16

实验10

递归函数

掌握递归函数的定义和使用,理解递归函数的思考和执行过程。

2

讲授

示范

实操

目标1、2


17

指针

地址的概念,指针的概念,指针与地址的关系,指针变量,指针运算,数组与指针的关系,函数指针,返回指针的函数,指针数组,指向指针的指针,字符数组与字符指针,常用字符串处理函数,动态内存分配,常用的预处理命令。

 

掌握指针的概念、指针变量的定义和赋值、指针运算符、指针运算;掌握一维数组的指针、二维数组的指针、字符串的指针的定义与应用;理解指针数组的概念与定义,多级指针的概念与定义;掌握指针与数组的关系;理解函数指针与函数体的关系及函数的使用,了解预处理器。

重点:

指针与数组的关系、指针运算、字符串,常用字符串处理函数,堆内存的分配与释放函数。

难点:

一维数组的指针、二维数组的指针,函数指针,动态内存分配,带参数的宏。

8

讲授

案例

实操

目标1、2


18

实验11

指针的定义与指针作为函数参数

以指针作为函数参数的程序设计

2

讲授

示范

实操

目标1、2


19

实验12

指针与数组

通过指针访问一维数组与二维数组

2

讲授

示范

实操

目标1、2


20

实验13

字符数组

通过指针访问字符数组及常用字符串处理函数的使用

2

讲授

示范

实操

目标1、2


21

实验14

动态内存分配

 

堆内存的分配与释放

2

讲授

示范

实操

目标1、2


22

结构体类型、联合体类型和枚举类型

结构体的概念,结构体的定义,结构体变量的内存组织形式及使用,联合的概念,联合的定义,联合变量的内存组织形式及使用,枚举,typedef的使用,位运算。

 

掌握结构体类型的概念和定义,结构体变量、结构体数组及结构体变量指针的定义,成员运算符与结构体变量的引用;理解结构体变量与联合体变量的内存组织形式;掌握联合体类型的概念和定义,理解枚举类型的概念和定义,用typedef定义类型;了解位运算。

重点:

结构体变量,联合变量的内存组织形式、结构体数组及结构体变量指针,联合体类型,位运算,typedef定义类型。

难点:

结构体变量,联合变量的内存组织形式,位运算。

2

讲授

案例

实操

目标1、2


23

实验15

结构体、联合体和枚举的使用

验证结构体、联合体的存储分配,掌握枚举类型的使用,掌握用指针对结构体、联合体变量的操作。

2

讲授

示范

实操

目标1、2


24

文件

文件的概念,顺序文件,随机文件,文件的基本操作。

 

掌握文件的概念,文件的基本操作;理解文件的位置指针。

重点:

文件的概念,文件的顺序读写和随机读写。

难点:

输入输出流的理解。

2

讲授

案例

实操

目标1、2


25

实验16

文件的应用

应用文件的基本操作,实现对文件的读写。

2

讲授

示范

实操

目标1、2


(二)教学方法

1.课堂讲授

(1)采用启发式教学,启发学生自行思考,让学生掌握学习方法,使学生能够真正理解程序设计的本质,认识到程序设计语言的重要性,提高学习积极性,主动学习,从而培养学生程序设计思维方式以及编程能力,为后续学习打下基础。

(2)在教学内容上,系统讲授C 语言运算符和表达式、程序的基本结构、数组、函数、指针、结构体类型、联合体类型和枚举类型、文件。通过本课程的学习,使学生掌握C程序设计语言的基本语法规则,理解结构化程序设计的基本方法;能阅读一般C语言源程序;并能编写和调试一般实用程序,最终提升学生的思维方式和编程能力。

(3)在教学过程中采用电子教案,多媒体教学、案例教学与传统板书相结合,提高课堂教学信息量,增强教学的直观性。

(4)理论课与实验课的有机结合,对于本课程最佳的上课方式应是将二者合二为一。老师讲解基本理论之后,学生可以马上对所学知识进行实验,加深理解。然而并不是所有的院校都具备这样的教学条件,当不具备条件时,教师应该在理论课上让学生自己动手写程序,调动学生积极性,打破被动学习的局面。而在实验课上,教师应重复理论课中的重要知识点,同时教师需要设计好实验方案,使学生循序渐进的对所学内容进行练习。实验课内容应以学生的创新为主,而不应该是让学生机械的验证教科书后的程序。

(5)引入和建设AI智辅工具,培养学生批判性思维和人机协同学习能力。

(6)在教学中自然融入思政元素,实现知识技能传授同时达成育人目标。

 

2.实验教学

实验教学是本课程中重要的实践环节,目的是提升学生的思维方式和编程能力。课程必做实验16个,根据布置的实验题目,各实验要求学生独立完成。

鼓励学生结合自己的兴趣进行自主实验。


四、考核及成绩评定

(一)考核内容及成绩构成

课程目标

考核内容

成绩评定方式

成绩占总评分比例

目标成绩占当次考核比例

学生当次考核平均得分

目标达成情况计算公式

目标1:‌掌握C语言核心语法与编程基础‌ ,熟练运用数据类型、运算符、控制结构(顺序、选择、循环)、函数、数组、指针、结构体、文件操作等核心语法,理解内存管理与指针操作的底层逻辑‌。 掌握结构化程序设计方法,能够根据需求设计算法并转化为可执行的C程序‌,使学生具备结构化程序设计能力,能够独立分析和解决实际问题。

 

C 语言程序设计导论、数据类型、程序的基本结构、数组

实验

12%

60%

A1

C 语言程序设计导论、数据类型、程序的基本结构、数组

期中测验

10%

100%

B1

数据类型、程序的基本结构、数组、函数、指针、结构体类型、联合体类型和枚举类型、文件

期末考试

36%

60%

C1

程序的基本结构、数组、函数

作业

4%

40%

D1

目标2:掌握程序调试与优化技巧,理解代码规范(如命名规则、注释规范)对软件可维护性的重要性‌。能够编写结构清晰、可读性强的代码,解决数学计算、数据管理等实际问题,并具备初步的软件开发技能‌。在代码调试与算法优化过程中,强调“细节决定成败”,培养严谨求实、精益求精的工匠精神 。

函数、指针、结构体类型、联合体类型和枚举类型、文件

实验

8%

40%

A2

 

C 语言运算符和表达式、程序的基本结构、数组、函数、指针、结构体类型、联合体类型和枚举类型、文件

期末考试

24%

40%

C2

数组、函数、指针、结构体类型

作业

6%

60%

D2

总评成绩(100%)=实验(20%)+期中考试(10%)+作业(10%)+期末考试(60%)

100%

——

——

(二)平时考核成绩评定

1.实验:必做实验16次,支撑目标1、目标2,共占总评分20%,目标1占12%、目标2占8%。对应目标的评分标准如下:

 

对应目标

目标1:‌掌握C语言核心语法与编程基础‌ ,熟练运用数据类型、运算符、控制结构(顺序、选择、循环)、函数、数组、指针、结构体、文件操作等核心语法,理解内存管理与指针操作的底层逻辑‌。 掌握结构化程序设计方法,能够根据需求设计算法并转化为可执行的C程序‌,使学生具备结构化程序设计能力,能够独立分析和解决实际问题。

 

目标2:掌握程序调试与优化技巧,理解代码规范(如命名规则、注释规范)对软件可维护性的重要性‌。能够编写结构清晰、可读性强的代码,解决数学计算、数据管理等实际问题,并具备初步的软件开发技能‌。在代码调试与算法优化过程中,强调“细节决定成败”,培养严谨求实、精益求精的工匠精神 。

考查点

必做实验16次,根据相应理论课知识点,在Openjudge、PTA等实验平台布置实验项目,学生实操提交实验代码,由平台根据测试点自动评分。

总评分占比

100%

评分标准

100%

90%

89.9%

80%

79.9

70%

69.9%

60%

59.9%至

0

 

2.作业PTA平台布置5次作业,支撑目标1、目标2,共占总评分10%,目标1占4%、目标2占6%。对应目标的评分标准如下:

 

对应目标

目标1:‌掌握C语言核心语法与编程基础‌ ,熟练运用数据类型、运算符、控制结构(顺序、选择、循环)、函数、数组、指针、结构体、文件操作等核心语法,理解内存管理与指针操作的底层逻辑‌。 掌握结构化程序设计方法,能够根据需求设计算法并转化为可执行的C程序‌,使学生具备结构化程序设计能力,能够独立分析和解决实际问题。

 

目标2:掌握程序调试与优化技巧,理解代码规范(如命名规则、注释规范)对软件可维护性的重要性‌。能够编写结构清晰、可读性强的代码,解决数学计算、数据管理等实际问题,并具备初步的软件开发技能‌。在代码调试与算法优化过程中,强调“细节决定成败”,培养严谨求实、精益求精的工匠精神 。

考查点

必做作业5次,根据相应理论课知识点,在Openjudge、PTA等平台布置作业题目,学生实操提交作业代码,由平台根据测试点自动评分。作业题目要求贴合实际问题需求,测试点覆盖全面,要求学生独立完成,代码规范,以考查学生分析和解决问题的能力,培训学生的严谨求实、精益求精的工匠精神 。

总评分占比

100%

评分标准

100%

90%

89.9%

80%

79.9

70%

69.9%

60%

59.9%至

0

 

五、参考学习资料

(一)推荐教材:

(美)Paul Deitel(保罗. 戴特尔)、Harvey Deitel. C语言大学教程(第八版),ISBN:9787121316814. 北京:电子工业出版社,2017-06.

(美)K. N. King. C语言程序设计:现代方法:第2版,ISBN:9787115219572. 北京:人民邮电出版社 ,2010-3-16.