ACCP3.0 SEM1
程序设计基础:C语言实现教学大纲
2002年12月16日
Version 1.0
修改记录:
版本
日期
修改人
V1.0
2002-12
李勇平
V2.0
2003-6
李勇平
课程目标本课程的设置将达到以下目标:
1:使学员掌握程序的基本概念,包括变量、数据类型、表达式;掌握基本的程序结构,包括分支和循环;
2:使学员理解C语言以数据为中心的编程特点;理解结构化编程的特点和结构化编程的基本要素;
3:使学员理解C语言基本的数据结构:数组、结构、指针以及基本的算法。
课程对象
ACCP3.0第一学期学员
预备课程软件技术基础
课程学时理论课
(No,of Hrs)
上机课
(No,of Hrs)
在线培训
(No,of Hrs)
指导学习(No,of Hrs)
总学时
(No,of Hrs)
24
20
0
2
46
课程地位
课程内容组织结构
课程各章内容、重点、组织结构及授课要求
理论部分,共 24学时
第一章 编程的基本概念
内容概述
本章将给学员介绍命令、程序、软件的概念;并且将通过一个程序实例给学员介绍#include命令、main函数以及C 语言程序的基本的语法元素包括程序注释,命令,语句块等等。本章最后还将给学员介绍算法的概念以及如何用图解的形式来表示算法。
本章目标
让学员了解编程的一些基本概念,包括程序的执行过程、C语言程序的基本编程要素。
重点和难点
C语言基本的编程要素、算法和流程图
内容组织结构
首先给学员介绍命令、软件、程序的概念;然后通过一个简单的实例让学员理解程序是如何运行的,以及如何使用C语言来编写程序,最后通过分析该程序让学员了解C语言程序的基本的语法要素;学员了解了C语言程序的基本概念后,本章最后将给学员介绍程序的灵魂:算法的概念以及算法的表示方法。
1.1 计算机简介介绍计算机是如何处理数据的
2 C语言本节主要给学员介绍C语言是什么,并且将介绍C语言的一些特点
1.3 C语言程序结构本节将介绍C语言的程序结构,包括主函数的定义,分隔符和注释行的表示、语句终止符以及C语言的函数库。
1.2.1 函数的定义
1.2.2 分隔符
1.2.3 语句终止符
1.2.4 注释行
1.2.5 C语言函数库
1.4编译和运行程序本节将介绍编译和运行程序的概念以及如何编译和运行程序
1.3 解决实际问题的程序设计方法本节将介绍伪代码和流程图的概念,并且将介绍如何使用伪代码和流程图来表示算法。
所选用的例子
本章中将编写第一个C语言程序,该程序只完成一个最简单的操作,那就是输出信息。
课后练习
编写伪代码和流程图来表示一节简单的算法。
第二章 变量和数据类型
内容概述
本章将给学员介绍变量和常量的概念,并且主要介绍整型变量、常量单精度变量和常量、双精度变量和常量、字符型变量和常量的概念和C语言的表达形式。
本章目标
让学员理解变量的概念以及确定变量数据类型的重要性,并且给学员介绍各种常见的数据类型。
重点和难点
本章重点和难点是变量和常量的概念以及各种数据类型数据的C语言表达形式。
内容组织结构
首先介绍变量和常量在编程中的重要性,然后进一步引入变量和常量的概念,最后介绍各种常见类型的变量和常量的C语言表达形式。
2.1变量主要介绍如何声明变量、如何给变量赋值。
2.2 常量介绍各种类型的常量的表示方法
2.3 标识符介绍标识符的概念以及相关的规则
2.4数据类型介绍数值类型、字符类型等基本数据类型和派生数据类型
2.5算术运算符主要介绍+,-,×,/,%,++,--,逗号运算符
所选用的例子
每个主题选用的例子力求简单,主要以一些简单的数学计算为主。
课后练习
关于标识符和表达式的一些练习
第三章 运算符和表达式
内容概述
本章将给学员介绍算术表达式、比较表达式、逻辑表达式、类型转换表达式、位运算表达式以及运算符的优先级的用法。
本章目标
本章目的让学员了解运算符和表达式的基本概念和应用,并且理解运算符的优先级。
重点和难点
各种运算符以及运算符的优先级
内容组织结构
首先给学员介绍基本的运算符在程序中的应用,然后给学员介绍各种运算符和各种表达式,最后介绍运算符的优先级。
3.1 表达式主要介绍表达式的基本概念
3.2 关系运算符和表达式主要介绍一些常用的关系运算符以及关系表达式
3.3 逻辑运算符和表达式介绍逻辑与、或、非等基本的运算符和表达式的用法
3.4位运算符和表达式介绍按位与、或、异或、非、左移、右移等运算符
3.4混合表达式和类型转换主要介绍混合表达式以及类型转换
3.6运算符的优先级介绍各种运算符的优先级
所选用的例子
每个主题以一些简单的数学计算为主
课后练习
关于运算符的一些课后练习
第四章 输入输出语句
内容概述
本章将给学员介绍整型数据、单精度数据、双精度数据以及字符数据的输入和输出。
本章目标
本章将给学员介绍输入和输出语句的用法,最后还将编写一个简单的计算程序,并且对程序进行一些简单的测试以让学员了解程序测试的重要性。
重点和难点
无
内容组织结构
先介绍程序的输出格式,然后介绍程序的输入格式,最后通过一个简单的程序演示输入和输出的用法。
4.1 printf()
介绍printf语句的各种输出格式,并且介绍如何使用printf输出各种数据,包括整型,实型、字符串型。并且介绍如何控制这些数据的输出格式
4.2 scanf()
介绍scanf语句的各种输入格式,并且介绍如何使用scanf输入各种数据,包括整型,实型、字符串型。并且介绍如何控制这些数据的输入格式。
4.3 getchar()
介绍getchar()函数的用法
4.4 putchar()
介绍putchar()函数的用法。
所选用的例子
每个主题将选用的例子应该尽量简单。
课后练习
输入和输出语句的一些练习
第五章 条件语句
内容概述
主要让学员理解if语句的用法和switch结构的用法。
本章目标
让学员理解程序的分支结构。
重点和难点
程序的分支结构
内容组织结构
基本的if语句;然后介绍多重if;嵌套if的用法;switch结构
5.1 if语句本节主要介绍if语句的用法,在介绍if语句时,重点给学员介绍if语句中条件的书写。
5.2 if…else语句本节主要介绍如何表示不满足条件时执行的动作即else语句的用法。
5.3 多重选择-else-if语句本节主要介绍多重if语句的用法,并且给学员解释多重if语句是如何匹配的?
5.4 嵌套if语句本节主要介绍嵌套if语句的用法,并且解释多重if语句和嵌套if语句的区别
5.5 switch结构介绍switch结构的用法。
所选用的例子
每个主题选用的例子以一些简单的数学计算为主。
课后练习
关于选择语句的一些练习
第六章 循环语句
内容概述
本章将给学员介绍for循环、while循环、do…while循环的用法并且介绍break语句和continue语句的含义。
本章目标
介绍基本的程序结构:循环结构的用法,并且对程序的三种基本结构进行总结分析,这三种基本结构包括顺序结构、选择结构和循环结构。
重点和难点
基本的循环结构和语句的跳转。
内容组织结构
首先给学员介绍基本的循环语句,然后给学员介绍如何实现语句的跳转,最后将给学员总结程序的基本语句结构:顺序结构、分支结构和循环结构。
6.1 for循环将给学员介绍for循环的基本语法格式,并且举例说明for循环结构的用法。
6.2 while循环将给学员介绍while循环的基本语法格式,并且举例说明while循环结构的用法。
6.3 do…while循环将给学员介绍do…while循环的基本语法格式,并且举例说明do…while循环结构的用法。
6.4 break语句本节将给学员介绍break语句的基本语法以及如何使用break语句实现基本的语句跳转。
6.5 continue语句本节将给学员介绍continue语句的基本语法以及如何使用continue语句实现基本的语句跳转
总结本节将给学员总结程序基本的控制结构,包括顺序结构、选择结构和循环结构,并且通过一个实例让学员理解这些程序结构的用途
所选用的例子
使用循环语句进行一些简单的计算。
课后练习
关于循环语句的一些练习
第七章 数组
内容概述
本章将介绍一维数组的概念、一维数组的定义和使用以及多维数值的概念、多维数组的定义和使用。
本章目标
让学员理解数组的概念和用法。
重点和难点
数组的概念以及数组的使用
内容组织结构
首先介绍为什么要使用数组,然后介绍数组的基本概念,再介绍如何定义和使用数组,最后简单介绍数组的用途。
7.1简介介绍数组的概念以及数组的作用等。
7.2数组的元素和索引介绍数组的元素和索引的基本概念
7.3在C语言中使用数组介绍如何在C语言中使用数组
7.4二维数组介绍二维数组的定义和使用,并且通过实例重点介绍二维数组的用途。
所选用的例子
涉及数据量比较多的应用,比如统计全班同学的平均成绩。
课后练习
关于数组的一些练习
第八章 指针
内容概述
本章将给学员介绍变量的地址、指针变量和指针变量所指向的变量的概念,最后还将给学员介绍数组和指针的关系。
本章目标
本章将让学员理解指针的概念和用法,并且让学员理解数组和指针的关系。
重点和难点
指针的概念以及数组和指针的关系
内容组织结构
首先介绍指针变量的概念,然后介绍不同的指针类型,最后介绍数组和指针的关系。
8.1什么是指针本节介绍指针的概念一个如何使用指针
8.2指针变量介绍如何声明和使用指针变量
8.3指针运算符本节将介绍指针的赋值、指针的运算和指针的比较
8.4指针与一维数组介绍数组和指针的关系,并且通过一些简单的实例来说明这种关系
8.5分配内存介绍动态内存分配所涉及的函数:malloc,calloc,free,realloc以及size_t数据类型和sizeof函数
所选用的例子
选用的例子应该简单实用,且能说明指针的概念
课后练习
关于指针的一些练习
第九章 函数
内容概述
本章将介绍函数的重要性,如何定义和使用函数,函数的参数、返回值,并且还将介绍函数参数传递的方式,以及标准函数库。
本章目标
本章将让学员理解函数的应用,并且使学员掌握如何定义和使用函数。
重点和难点
函数的重要性,如何定义和使用函数以及参数传递的区别。
内容组织结构
首先提出为什么要使用函数,然后介绍如何定义和使用函数,最后介绍函数参数传递的方式。
9.1函数的用途本节主要介绍函数对于代码重用和软件维护所起的作用。采用程序分析讲解的方式来让学员理解这些作用。
9.2函数的结构介绍如何声明和定义函数、函数的参数以及如何从函数返回值,并且确定返回值的类型
9.3调用函数如何自定义函数和调用自定义函数
9.4函数声明具体介绍函数声明的语法
9.5函数原型介绍如何声明函数原型
9.6变量介绍局部变量、形式参数以及全局变量的含义
9.7存储类别介绍自动变量、外部变量、静态变量以及寄存器变量的概念。
9.8函数作用域规则
9.9 函数调用主要介绍按值调用和按地址调用的区别以及使用范围
9.10 嵌套函数调用介绍嵌套函数调用的概念
9.11多文件程序中的函数
9.12函数指针主要介绍函数指针的含义,并且举1-2个简单的例子让学员理解什么是函数指针。
所选用的例子
采用一些简单的例子以说明问题
课后练习
无
第十章 字符串
内容概述
主要介绍如何定义字符串、如何输入和输出字符串以及字符串函数的使用、如何把数组作为函数的参数、如何把字符串作为函数的参数
本章目标
让学员理解C语言是如何表示字符串的。
重点和难点
C语言中字符串的表示,字符串作为函数的参数是如何传递的。
内容组织结构
先介绍C语言中是如何表示字符串的,然后介绍字符串的输入和输出,最后通过介绍数组作为函数的参数来引入字符串作为函数参数的主题。
10.1字符串变量和常量本节介绍C语言中是如何表示字符串的,字符串变量如何定义,字符串常量又是如何表示的,本节还将介绍字符串的输入和输出。
10.2字符串函数本节将介绍字符串处理有关的函数,包括输入和输出、字符串比较、字符串赋值等。
10.3将数组传递给函数本节介绍数组作为函数的参数时,函数是如何声明、定义和调用的。
10.4将字符串传递给函数本节介绍字符串作为函数的参数时,函数是如何声明、定义和调用的。
所选用的例子
尽量简单实用性的例子。
课后练习
有关字符串的实例
第十一章 复杂数据类型及排序
内容概述
本章将给学员介绍结构的概念以及typedef关键字的使用,并且介绍如何使用结构数组。最后将介绍简单的排序算法。
本章目标
让学员理解数据结构和算法在程序中的重要作用,并且向学员介绍使用结构以及结构数组,并且介绍简单的排序算法。
重点和难点
结构的概念和应用结构数组
内容组织结构
首先介绍结构和使用typedef简化结构变量的定义,然后介绍结构数组,最后介绍简单的排序算法。
11.1简介对本章的知识点作一个简单的介绍
11.2结构体本节将介绍结构的概念以及如何定义结构,如何定义结构变量,如何给结构型变量赋值等。
11.3typedef关键字介绍typedef关键字的概念以及如何使用typedef关键字。
11.4数组排序冒泡排序法和插入排序法
所选用的例子
简单的例子说明问题
课后练习
关于结构体和结构体数组的一些练习
第十二章 文件操作
内容概述
本章将介绍基本的文件类型,包括文本文件、二进制文件,文件指针的概念以及如何使用文件指针操作文件,最后将介绍文本文件和二进制文件的基本操作,包括文件的打开、关闭、读、写以及文件的定位等
本章目标
让学员熟悉如何使用C语言进行基本的文件操作。
重点和难点
文件类型、文件指针以及文件的定位
内容组织结构
首先介绍文件的基本类型和如何在C语言中操作文件,然后介绍介绍文件的基本操作,包括打开、关闭、读写和文件指针的定位
12.1 文件流介绍文件流的概念,并且区分文本流和二进制流
12.2文件函数和FILE结构介绍基本的文件函数和文件指针的概念
12.3文本文件介绍文本文件的打开、关闭、读、写操作
12.4二进制文件介绍二进制文件的打开、关闭、读、写操作
12.5文件操作函数介绍feof,fseek,rewind、ferror等文件相关的函数
所选用的例子
与文件有关的一些简单实用的例子
课后练习
与文件有关的一些练习
上机部分,共22学时
第一阶段 变量、运算符和数据类型上机练习
阶段时间安排
第一章和第二章理论课后
学时安排
2学时
阶段目标
理解变量、运算量和数据类型的基本应用,能够使用基本的数据类型进行一些简单的数学运算。(简单的数学运算是指只涉及算术表达式的数学运算,不涉及输入。)
知识点
数值型数据类型算术表达式
内容安排
本部分上机将设计2-4个简单计算的程序,通过这些程序让学员理解变量和数据类型的含义。
第一部分:变量和数据类型和算术表达式 前一个半小时
上机练习题涉及整型、实型和字符型数据的使用,主要是一些简单的数学计算。
第二部分:变量和数据类型 后半个小时
和前一个半小时类似
课后练习,大约2小时
2-3个简单的数学计算题
重点和难点
变量和数据类型的含义
注意事项
本上机练习是C的第一次上机练习,所以应该把上机步骤写的尽量详细。涉及软件的使用应该进行简单的引导或者介绍。
第二阶段 运算符和表达式
阶段时间安排
理论课第三章后
学时安排
2学时
阶段目标
能够使用常用的算术运算符、比较运算符、逻辑运算符、类型转换运算符书写各种表达式以解决常用的数学运算(不涉及数值的输入)
知识点
算术表达式、比较表达式、逻辑表达式、类型转换表达式以及运算符的优先级
内容安排
以比较表达式和逻辑表达式的应用为主,对数学表达式的应用做一个简单的总结。
第一部分,前一个半小时
将采用2-4个实例让学员理解基本表达式的应用,主要介绍比较表达式、逻辑表达式和运算符优先级。
第二部分,后半个小时
简单的数学表达式。
课后练习,
采用2-4个课后思考题。
重点和难点
运算符的优先级
注意事项
注意运算符的优先级的使用
第三阶段 条件
阶段时间安排
第五章
学时安排
2学时
阶段目标
让学员理解分支结构的使用。
知识点
简单的if语句、多重if语句、嵌套if语句以及switch结构。
内容安排
通过实例让学员理解if语句和switch语句的用法
第一部分,前一个半小时
采用4-6个实例让学员理解相应的知识点(在实例中适当使用输入和输出语句完成程序数据的输入和输出)
第二部分,后半个小时
采用一个实例让学员理解相应的知识点
课后练习,
采用2-4个思考题
重点和难点
分支条件的书写和switch测试表达式
注意事项
C语言中条件语句条件和switch结构测试表达式的区别。
第四阶段 循环
阶段时间安排
理论课第六章
学时安排
2学时
阶段目标
理解循环结构的用法,并且能够灵活运用循环结构解决一些基本的问题。
知识点
for循环、while循环、do…while循环基本语法格式以及循环条件的确定
内容安排
使用实例让学员理解for循环、while循环、do…while循环的用法
第一部分,前一个半小时
采用3-5个实例让学员理解相应的知识点(在实例中适当使用输入和输出语句完成程序数据的输入和输出)
第二部分,后半个小时
采用一个实例让学员理解循环的应用(可以是一个简单的数学计算,比如计算multi=1×2×3×…×n)
课后练习,
采用1-2个思考题来巩固所学的知识点
重点和难点
各种循环语句的区别与联系
注意事项
注意break语句和continue语句的用法
第五阶段 数组
阶段时间安排
第七章 数组
学时安排
阶段目标
通过实例让学员理解数组的应用
知识点
数组定义,数组的初始化,数组的赋值,数组的使用
内容安排
本阶段主要通过实例让学员理解数组的应用,包括数组的定义和使用以及数组的实际应用
第一部分,前一个半小时
通过1-2个实例让学员理解数组的应用
第二部分,后半个小时
通过一个实例加深对数组的理解
课后练习,
通过1-2个实例巩固数组的知识
重点和难点
数组的应用
注意事项
多维数组的使用
第六阶段 指针
阶段时间安排
理论课第八章
学时安排
2学时
阶段目标
让学员理解指针,并且能够使用指针操作数组。
知识点
指针的定义和使用,数组与指针的关系
内容安排
通过实例让学员理解如何定义指针变量
第一部分,前一个半小时
通过1-2个实例让学员理解指针的用法。
第二部分,后半个小时
通过练习加深对指针的理解
课后练习,
通过1-2个练习让学员理解指针的用法
重点和难点
如何用指针来表示数组(指针和数组的关系)
注意事项
注意数组与指针的关系特别是多维数组与指针的关系
第七阶段 函数
阶段时间安排
第九章
学时安排
2学时
阶段目标
理解为什么要定义和使用函数以及掌握如何定义和使用函数和函数参数传递的方式,理解模块化程序设计。
知识点
定义和使用函数
内容安排
本章通过一个实例让学员理解函数的应用,理解结构化编程思想。
第一部分,前一个半小时
通过一个实例让学员理解函数,理解模块化程序设计的思想
第二部分,后半个小时
编写1-2个函数,并且测试该函数的用法
课后练习,
编写1个程序实例,让学员理解函数
重点和难点
函数的定义和使用
注意事项
参数传递的不同方式
第八阶段 字符串
阶段时间安排
第10章
学时安排
2学时
阶段目标
理解字符串在C语言中是如何表示的
知识点
字符数据类型字符串在C语言中是如何表示的字符串作为函数的参数是如何传递的
内容安排
通过1-2个实例让学员理解字符串和指针的关系、字符串和数组的关系以及如何把字符串作为函数的参数、如何把数组作为函数的参数
第一部分,前一个半小时
通过1-2个实例让学员理解字符串在C语言中的表示方法,并且介绍字符串作为函数的参数是如何传递的。
第二部分,后半个小时
编写函数(函数的参数是数组)
课后练习,
通过1-2个练习让学员理解字符串的用法
重点和难点
字符串作为函数的参数
注意事项
字符串作为函数的参数是如何传递的
第九阶段 复杂数据类型及排序
阶段时间安排
第11章
学时安排
2学时
阶段目标
主要让学员理解如何使用结构、结构数组以及基本的排序算法。
知识点
结构、typedef的用法、结构数组、基本的排序算法
内容安排
通过一个实例实现结构数组的使用
第一部分,前一个半小时
创建和使用结构数组
第二部分,后半个小时
对结构数组进行查找操作
课后练习,
编写程序创建和使用结构数组
重点和难点
结构、typedef的用法、结构数组的含义
注意事项
创建和使用结构数组
第九阶段 文件操作
阶段时间安排
第12章文件操作
学时安排
2学时
阶段目标
掌握文件的基本操作,包括打开和关闭文件、读和写文件等等。
知识点
文件类型,打开和关闭文件、读和写文件以及定位文件指针
内容安排
通过1-2个实例使学员掌握文件的基本操作
第一部分,前一个半小时
通过1-2个实例让学员理解文本文件和二进制文件的基本操作。
第二部分,后半个小时
文件指针的定位
课后练习,
通过1-2个练习进一步巩固文件的基本操作。
重点和难点
文本文件和二进制文件的区别与练习
注意事项
不同类型的文件的基本操作
在线培训部分,共0学时没有在线培训部分
指导学习部分,共2学时
第一阶段 C语言综合复习
阶段时间安排
所有课程结束后
学时安排
2学时
阶段目标
复习全部课程的内容,并且解答学生的一些疑问。重点复习数组、函数、指针、结构、结构数组以及文件相关内容。
内容安排
教员根据教学实际情况确定本课程的复习课内容。
附录
附录I:标准库函数附录II:编码规范
课程安排每次课为2个学时理论课在教室中进行,上机课在机房中进行理论课用T表示、上机课用L表示、在线培训课用O表示、指导学习课用D表示
序号
教室
机房
教室
机房
1
T1
T2
L1
2
T3
L2
T4
3
T5
L3
T6
L4
4
T7
L5
T8
L6
5
T9
L7
T10
L8
6
T11
L9
T12
L10
7
D1
参考书目书名
作者
出版社
《C语言解析教程》
(美)Al Kelley Ira Pohl
译者:麻志毅
机械工业出版社
《C 语言程序设计实用教程》
(美)Alice E.Fischer
译者:裘岚等
电子工业出版社