课程概述

C语言程序设计是一门非常重要的本科生计算机公共基础课程,该课程在全校工科专业的本科教学计划中占有重要地位和作用。其重要性不仅仅体现在一般意义上的编程能力,更体现在引导学生实现问题求解思维方式的转换­­——培养学生的计算思维能力。该课程还是非计算机专业学生计算机应用能力水平考试”二级考试的主要语种之一。它既具有高级语言的优点,又具有低级语言的许多特点,它涉及到计算机算法,语言、程序设计方法等内容,是现今应用最为广泛的一种结构化程序设计语言。

    该课程是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行,可以培养学生丰富的表达能力和优良的编程风格。通过本课程的学习,要求学生能运用C语言进行结构化程序的设计,掌握几种基本的编程方法和基本算法,掌握在计算机上调试、运行程序的基本技能,同时以适应计算机在各学科中越来越广泛的应用及对人才在计算机知识和能力方面的需求,为后续专业课程中应用计算机打下坚实的基础。


证书要求

过程评价将贯穿于始终,平时成绩占30%,期末成绩占70%。过程评价包括:

(1)学习委员记载课堂发言情况,占平时成绩25%;

(2)C语言QQ学习群管理员记载课外学习情况,占平时成绩25%;

(3)教师记载作业、实验报告、课外思考题SPOC课程学习记录完成情况,占平时成绩50%。


预备知识

大学计算机基础

授课大纲

课次

周次

具体日期

讲授内容

主要教学方法与教学内容

1

第1周

3月5日

第1章

C语言概述

主要教学方法:案例教学及操作演示

通过两个简单程序说明C程序的格式和结构特点,同时讲解程序中涉及到的第3章知识,布置课后作业,目标:巩固第1章,预习第3章。

 

 

 

第2章

算法-程序设计的灵魂

主要教学方法:自主学习

程序的灵魂算法将贯穿本课程的全部学习,本章采用自主学习教学方法,目标:了解算法的特征及描述,了解结构化程序设计方法。

2

第2周

3月12日

第3章

最简单的C程序设计运算符与表达式

主要教学方法:作业实例讲解

本章内容属于C语言最基本的知识点,多且繁杂,需要学生理解并记忆。主要包含数据类型、运算符与表达式、赋值语句。该部分知识的学习全部贯穿到作业实例讲解过程中,通过实例,使学生由感性认识上升到理性认识。

3

第3周

3月19日

第3章

最简单的C程序设计运算符与表达式

主要教学方法:作业实例讲解

本章内容属于C语言最基本的知识点,多且繁杂,需要学生理解并记忆。主要包含数据类型、运算符与表达式、赋值语句。该部分知识的学习全部贯穿到作业实例讲解过程中,通过实例,使学生由感性认识上升到理性认识。

4

第4周

3月26日

第3章

最简单的C程序设计输入与输出函数

主要教学方法:作业实例讲解及操作演示

输出与输出函数的使用同样需要学生理解并记忆。该部分知识的学习全部贯穿到作业实例讲解过程中,通过实际操作演示,使学生掌握输入与输出函数的使用及顺序结构程序设计的方法。

5

第5周

4月2日

第4章

选择结构中if语句三种形式及嵌套

主要教学方法:四步教学法

引例导入选择结构,if语句三种形式重点教学,if的嵌套与if语句的第三种形式对比教学, 趣昧实例巩固if语句的三种形式及嵌套。

6

第6周

4月9日

第4章

选择结构程序设计中的switch语句

主要教学方法:四步教学法

引例导入多分支选择,switch语句重点教学,比较if语句第三种形式与switch的异同, 趣昧实例巩固选择结构

7

第7周

4月16日

第5章

循环控制中的三种循环实现形式

主要教学方法:四步教学法

利用春夏秋冬四季轮回引入循环结构,while语句重点教学,do—while语句和for语句对比教学, 趣昧实例巩固循环四要素:循环初始条件、循环条件判断、循环体、循环变量修正。

8

第8周

4月23日

第5章

循环中的辅助控制语句

主要教学方法:问题探究教学

以捐款和素数判断两个问题引导学生思考如何在循环结构中使用break与continue辅助控制语句。

9

第9周

4月30日

第5章

循环程序举例

主要教学方法:案例教学

以求PI值、循环判断多个素数、译密码等实际例子继续引导学生学会使用循环结构解决问题。

10

第10周

5月7日

第6章

数组中的一维数组

主要教学方法:任务驱动与讨论法教学

采用任务驱动方式,以程序实例为主导,将数组的五个基本知识点:数组的定义、数组在内存中的存放、数组元素的引用、数组的初始化、数组的输入与输出,融入到实例讲解中,以实例带动知识点的学习。本次教学还要求掌握冒泡法排序的基本原理。

11

第11周

5月14日

第6章

数组中的二维数组

主要教学方法:任务驱动教学教学

采用任务驱动方式,以程序实例为主导,将数组的五个基本知识点融入到实例讲解中,以实例带动知识点的学习。

12

第12周

5月21日

第6章

数组中的字符数组

主要教学方法:问题探究教学与案例教学

以字符型数据的处理引导学生思考如何一维字符数组处理一个字符串,如何利用二维字符数组处理多个字符串。通过案例程序掌握字符串处理函数的使用。

13

第13周

5月28日

第7章

函数中的嵌套调用与递归调用

主要教学方法:框架法

通过前面基础知识的学习,同学们已具有一定的编程基础 ,本章利用框架法,学习用函数调用的方法来重新编制以前所熟悉的程序,着眼点放在函数的设计框架上,体现参数设计、返回值设计等关键问题,培养学生的全局思维和算法的整体设计能力。  

14

第14周

6月4日

第7章

函数中的数组作函数参数

主要教学方法:案例教学

利用打擂台算法求最大值案例学习数组元素作函数参数实现值传递,利用选择法排序案例学习数组名作函数参数实现地址传递。

15

第15周

6月11日

第7章

函数中的变量存储

主要教学方法:求异比较法

 用循环、递归调用、全局变量、静态变量四种方法求阶乘,启发学生多角度、多侧面去寻求解决问题的办法,培养学生在编程中的求异思维。

16

第17周

6月25日

第8章

指针第9章

结构体与共用体

主要教学方法:案例教学

通过房间、房号、钥匙、物品之间的关系引入指针的概念,使用两个数比较与10个数逆序存放的案例,讲解指针变量及指向一维数组的指针的使用方法。

 

 

 

 

 

1

第1周

3月5日

实验1最简单的C程序运行初步

实验类别:验证型

熟悉所用系统的上机方法与步骤,熟悉C语言程序的结构及书写格式,通过运行简单的C语言程序,初步了解C源程序的特点。

2

第2周

3月12日

实验2数据类型、运算符与表达式

实验类别:验证型

进一步熟悉TC环境的使用方法,熟练掌握基本数据类型中各类型常量的表示方法,熟练掌握基本数据类型中各类型变量的定义方法及使用方法,掌握各种运算符的功能、运算优先级及使用方法,掌握各种表达式的表示方法及运算次序。

3

第3周

3月19日

实验3顺序结构

实验类别:验证型

进一步熟悉TC环境的使用方法,掌握C语言输入输出函数的基本格式,掌握不同类型的数据的输入输出格式,了解结构化程序设计中的最基本结构顺序结构程序设计。 

4

第4周

3月26日

实验4选择结构

实验类别:设计型

进一步熟悉C源程序的编辑、编译连接与运行的过程;练习C程序的调试方法;熟练掌握条件语句if与switch的使用方法及执行过程;掌握选择结构程序设计的方法;掌握N-S结构流程图的绘制方法。

5

第5周

4月2日

实验5循环结构

实验类别:设计型

进一步熟悉C程序的调试方法;学会使用while、do-while与for语句,掌握循环结构程序设计方法及执行过程;掌握选择结构与循环结构的嵌套;学会灵活使用break语句和continue语句;掌握N-S结构流程图的绘制方法。

6

第6周

4月9日

实验6一维数组

实验类别:设计型

掌握一维数组的定义,赋值和输入输出的方法;掌握与一维数组相关的排序算法。

7

第7周

4月16日

实验7二维数组

实验类别:设计型

掌握二维数组的定义,赋值和输入输出的方法;比较二维数组与一维数组在操作上的异同;由二维数组的使用推广到多维数组的使用。

8

第8周

4月23日

实验8字符数组

实验类别:设计型

掌握字符数组的定义,赋值和输入输出的方法;掌握用字符数组形式来表示字符串的方法;掌握字符串处理函数的用法。

9

第9周

4月30日

实验9综合实验

实验类别:综合型

熟练掌握一维数组的定义与使用;熟练掌握二维数组的定义与使用;熟练掌握字符数组的定义与使用。

10

第10周

5月7日

实验10函数的形式及函数调用Ⅰ

实验类别:设计型

掌握函数的定义方法;了解函数的参数与返回值。  

11

第11周

5月14日

实验11函数参数及函数调用Ⅱ

实验类别:设计型

熟悉函数的递归调用;熟练掌握用数组元素和数组名作函数参数。

12

第12周

5月21日

实验12变量的分类

实验类别:设计型

熟练掌握全局变量和局部变量的使用方法;熟练掌握各种存储类型变量的定义方法、作用域及生存期。  

13

第13周

5月28日

实验13综合实验

实验类别:综合型

熟练掌握函数的定义方法;掌握变量作为函数的参数、数组作为函数参数的混合运用;掌握函数的定义及在实际编程中的应用;熟练掌握函数中全局变量,局部变量的使用。

14

第14周

6月4日

实验14指针变量

实验类别:设计型

理解指针的概念;熟练掌握指针变量的定义和引用方法;掌握指针运算符&与*;学会使用指针变量作函数参数。

15

第15周

6月11日

实验15指针与数组

实验类别:设计型

掌握指向数组元素的指针变量的定义与使用;掌握指向二维数组的指针变量的定义与使用;掌握字符指针的定义与使用;掌握指针的算术运算与自增自减运算。

16

第16周

6月25日

实验16结构体、共用体

实验类别:设计型

掌握结构体与共用体的定义;掌握结构体变量与共用体变量的定义和使用;掌握结构体变量与共用体变量的区别与联系。


参考资料

由于课时有限,本课程教学以数据类型、三种基本结构、数组、函数为主要授课内容,高级应用模块中指针、结构体只讲授了最基本的知识,位运算、文件以自主学习为主,这部分内容是计算机等级考试的内容,因此,同学们需要进一步加强高级应用模块的学习。

1.  对准备参加等级考试的同学,推荐如下教材,进一步学习:

(1) 《全国计算机等级考试二级教程——公共基础知识(2017年版)》:本书是根据计算机等级考试二级公共基础知识考试大纲的要求编写,主要内容包括:数据结构与算法,程序设计基础,软件工程基础,数据库设计基础。

(2) 全国计算机等级考试全能教程——二级C语言程序设计(第3版)》:根据最新全国计算机等级考试最新考试大纲和官方教程,在研究历年真题的基础上编写而成。本书汇集重点提示、解题技巧等部分,引导考生掌握重点内容,增强考生的解题能力和综合应用能力。

2.  对致力于软件开发的同学,推荐如下教材,进一步学习:

(1)      《数据结构:C语言》,可以说没有学数据结构就不算会编程!数据结构是任何想提高编程技能的人的必修课程。

(2)      《算法:C语言实现》,算法的学习,最忌讳背。理解和熟练的写出一个算法的实现才能融会贯通,才能举一反三!

《C陷阱与缺陷》,分别从词法分析、语法语义、连接、库函数、预处理器、可移植性陷阱等及个方面分析了C编程中可能遇到的问题。