武汉理工大学

C编程方法学

图片
课程概述

C语言是目前仍然广泛使用的计算机程序设计语言,是本科各学科专业学生学习计算机技术课程的基础课。C语言适用范围广、语法简洁、执行效率高。C语言是典型的结构化程序语言,是学习面向对象程序语言的基础。C语言编程方法的学习,已经成为普通本科院校大多数专业方向的必修课程。

 

按照教育部计算机基础教学指导委员会对高等院校计算机基础教学的基本要求,按照将计算思维能力培养作为计算机基础教育的核心任务的宗旨,通过深入研究了不同专业大类的培养目标和计算机技术学习需求,结合大学学生特点,我们确立了课程总体教学目标为培养学生初步具备以下三方面的能力,即:具有应用C语言编制结构良好的程序的能力;具有算法分析的基本能力;具有对程序进行调试和测试的基本能力。从而,能根据要求编制程序解决实际问题;为后续课程的学习打下良好基础。 

 

本课程的教学一共有8章,从内容组织上分为3个部分:

 

1. 第1章、第2章是入门基础,结合Visual C++ 6.0的安装使用,介绍了C语言的基本语法。

2. 第3章是程序设计的基本结构,介绍了基本的结构化程序设计方法,简单算法的设计和表示方法,帮助学生学会根据算法编制程序,并设计出结构较为复杂的程序。

3. 第4章到第8章是模块化程序设计,学生通过模块化函数掌握程序模块的设计方法,并进一步通过数组、指针、结构体、位运算、数据文件等全面掌握C语言编程方法,培养分析问题和解决问题的能力。


授课目标
结合专业人才的培养要求和专业目标定位,通过本课程拓宽各专业学生的计算机编程知识,提高学生的实际编程能力,全面提升学生的综合素质,为今后学生结合本专业应用,研究开发各类计算机应用软件打好基础。
证书要求

预备知识

作为第一门编程课,本课程可以零基础学习。大学计算机(大学计算机基础、计算思维导论)等课程对于理解本课程的部分内容有帮助,但这些课程的学习不是必须的。

授课大纲

 

一、课程简介与特色

《C语言程序设计》是针对全校非计算机专业的一门通识必修课程。

结合不同专业大类的培养目标和计算机技术学习的需求,确立课程的总体教学目标为:学生应掌握计算机程序设计的基本知识,初步掌握程序设计的技巧和方法,具有应用C语言编制结构良好程序的能力;具有算法分析的基本能力;具有对程序进行调试和测试的基本能力;具有能根据要求编制程序解决实际问题的能力,为学生的后续课程学习打下良好基础。

本课程采用理论教学与课内实验教学相结合,课堂教学采用多媒体、板书、演示等多样教学手段,所有课程资源共享在学校网络教学平台。


二、课程教学目标及其对专业毕业要求的支撑

本课程的教学目标如下: 

通过本课程的学习,应能达到知识和技能两方面的目标。

1、 知识方面:

(1) 熟练掌握C语言的数据类型(基本类型、构造类型、指针类型等)和各类运算符,能正确使用表达式实现对各类数据运算操作。

(2) 熟练掌握C语言的三种基本结构(顺序、选择、循环)的特点,能使用相关语句结构完成三种基本结构的程序设计。

(3) 熟练掌握C语言的常用库函数使用,用户定义函数的定义、调用和参数传递方法。

2、 技能方面:

(1) 熟练掌握阅读和分析简短程序的方法和技巧。

(2) 熟练掌握设计和测试简短程序的方法和技巧。

(3) 了解并初步掌握实用程序的开发与测试技术。


结合专业人才的培养要求和专业目标定位,通过本课程拓宽各专业学生的计算机编程知识,提高学生的实际编程能力,全面提升学生的综合素质,为今后学生结合本专业应用,研究开发各类计算机应用软件打好基础。

三、教学内容

1 C语言概述

(1)主要内容:

程序和算法

编程环境的安装

第1个C程序

预处理指令

标识符和关键字

I/O函数

代码注释

编程风格

(2)教学要求

了解:结构化程序设计的基本方法;程序设计语言的分类;C语言的发展;算法的概念、特点及描述;代码注释及编程风格。

掌握:C语言程序的上机步骤;C语言的标识符及关键字;程序的基本结构;算法的设计与表示;初步的预处理指令;输入/输出函数的使用。

(3)重点难点

重点:C语言程序的上机步骤;C语言程序的基本结构;算法的概念和特点;算法的设计与表示;预处理指令和I/O函数。

难点:C语言的标识符和关键字;C程序的基本结构;算法的设计与表示。

2. 基本数据类型和运算符

(1)主要内容:

基本数据类型

常量

变量

指针变量

运算符与表达式

(2)教学要求

了解:C语言基本数据类型;指针变量的含义;

掌握:常量与变量的定义与使用;不同类型数据的表示范围;各类运算符的含义、优先级、结合性;表达式的正确书写与运算顺序;指针变量的定义及访问方式。

(3)重点难点

重点:三种基本数据类型;常量/变量/指针变量的表达方式;常用运算符与表达式。

难点:C语言的数据类型体系和运算体系,基本运算符的运算规则和优先级别,指针变量的定义和指针运算符。

3. 控制结构

(1)主要内容:

基本控制结构

程序中的控制运算符:关系运算符及逻辑运算符

程序中的选择结构:if语句、switch语句

程序中的循环结构:while语句、do while语句、for语句

蒙特卡罗法与随机函数

位运算符

(2)教学要求

了解:常用算法的设计思想;蒙特卡罗法的设计思想及随机函数的使用;位运算的含义及应用。

掌握:关系运算符与表达式、逻辑运算符与表达式、条件运算符与表达式;C语言的基本语句及3种基本结构(顺序、选择、循环);分支和循环语句的嵌套;break与continue语句的使用;几种常用算法的实现。

(3)重点难点

重点:控制运算符与表达式;基本语句及3种基本结构语句的使用;分支和循环语句的嵌套执行过程;break与continue语句的使用;随机函数的使用。

难点:3种基本结构语句的使用;单重与多重分支和循环结构的程序设计;控制语句break与continue的使用;随机函数的使用。

4. 数组和指针

(1)主要内容:

一维数组

二维及多维数组

字符数组与字符串处理函数

指针和数组

(2)教学要求

了解:数组的概念;指针与数组的关系。

掌握:一维、二维数组的定义及使用;字符数组及字符串的各种处理函数;数组的几种常用算法(遍历、排序、查找等);

(3)重点难点

重点:一维、二维及多维数值型数组的定义和使用,字符数组及字符串处理函数,指针与数组的关系,字符串的指针。

难点:数组操作的常用算法,字符数组I/O方法,字符串处理函数的使用,使用指针变量遍历数组元素的方法。

5. 模块化编程

(1)主要内容:

函数概述

函数的定义与声明

函数的调用

变量的作用域与存储类型

内部与外部函数

指针函数

编译预处理—条件编译

模块化程序设计

(2)教学要求

了解:模块化编程的含义与意义;函数调用时参数传递的本质与工作原理;变量生命期和作用域的概念; 

掌握:函数的定义、声明与调用的基本方法;实参与形参的作用与传值方式;递归函数的执行过程和工作原理。

(3)重点难点

重点:函数的定义,函数的参数和返回值,函数的调用,函数的嵌套调用与递归调用,数组与函数参数,指针与函数,模块化程序设计方法。

难点:变量的作用域与存储类型,函数调用中数据传递的几种方法,函数的嵌套调用,函数的递归调用。

6. 指针进阶与内存空间管理(简介)

(1)主要内容:

指针的进一步理解

指针数组

函数指针

动态内存分配

(2)教学要求

了解:指针与数组的关系;利用指针实现动态内存分配的方法。

(3)重点难点

重点:理解指针与数组的本质关系;利用指针实现动态内存分配的方法。

难点:利用指针实现动态内存分配的方法。

7. 结构体与共用体(简介)

(1)主要内容:

结构体类型

共用体类型

(2)教学要求

了解:结构体、共用体类型的含义、定义、初始化和各成员访问的方法。

(3)重点难点

重点:结构体类型的定义、初始化、使用方法。

难点:结构体类型的定义、初始化、使用方法。

8. 数据文件编程方法(简介)

(1)主要内容:

文件的概念

文件读写操作

文本文件处理

(2)教学要求

了解:文件读写的一般步骤和方法。

(3)重点难点

重点:文本文件、二进制文件的操作方法。

难点:文本文件、二进制文件的操作方法。

参考资料

教材:

[1]《C编程方法学》王舜燕、李民等.武汉理工大学出版社.2013年9月


参考资料:

[1]《写给大家看的C语言书》 Greg Perry著.人民邮电出版社

[2]《C语言详解》 Jeri R. Hanly 等著. 人民邮电出版社

[3]《A Book on C: Programming in C》Al Kelley,Ira Pohl. 机械工业出版社

[4]《C语言程序设计(第2版)》顾治华等.机械工业出版社.2012年5月

[5]《C语言程序设计实验指导》顾治华等



常见问题

Q:的计算机需要哪个版本的C语言编程环境

A:任何C语言的开发工具都可以。课程演示会使用Visual C++及命令行环境,也可以使用Dev C++、Code::Block、C-Free等其他开发工具,都不会影响做作业的正确性。