课程编号:02010102
课程基本情况:
1.课程名称:程序设计与算法语言
2.英文名称:Programmingand & Algorithmic Language
3.课程属性:专业必修课
4.学 分:4 总学时:68
5.适用专业:应用统计学
6.先修课程:计算机基础及应用
7.考核形式:考试
一、本课程的性质、地位和作用
C语言是一种常见的计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。通过本课程的课内学习和上机实验,使学生掌握C语言的基本语法,掌握程序设计的基本思想、基本概念和基本方法,并能运用所学的知识和技能对一般问题进行分析和程序设计,编制出高效的C语言应用程序,培养学生基本的、良好的程序设计技能。
二、教学目的与要求
1.教学目的
通过C语言基本语句、语法、数据类型、运算符和表达式,顺序、选择、循环结构程序设计,数组、函数、指针、文件、结构体类型变量、结构体数组等的教学,使得学生掌握C语言的基本知识和概念,在掌握C语言的常用语句和算法的基础上,可编写一些实用程序,特别是用编写程序的方法来解决数学问题。培养学生的程序设计理念、掌握程序设计的基本方法,为后续课程(数据结构、面向对象程序设计、操作系统、编译原理和软件工程等)打下坚实的基础。
2.教学要求
通过程序设计方法学的教学使得学生掌握一般程序设计的理论与方法,程序设计的编码规范,并能运用这些技术写出清晰的程序,培养学生良好的程序设计习惯和风格。
三、课程教学内容及学时安排
按照教学方案安排,本课程安排在第2学期讲授,全学程共68学时,其中课内讲授34学时,实验34学时,具体讲授内容及学时安排见下表:
《C程序设计与算法语言》教学内容及学时分配表
章 |
标题 |
学时数 |
课内讲授 |
实验(实践) |
备注 |
1 |
C语言概述 |
2 |
1 |
1 |
|
2 |
算法 |
4 |
2 |
2 |
|
3 |
数据类型、运算符和表达式 |
6 |
3 |
3 |
|
4 |
基本结构程序设计 |
16 |
8 |
8 |
|
5 |
预处理命令 |
2 |
1 |
1 |
|
6 |
数组 |
12 |
6 |
6 |
|
7 |
函数 |
10 |
5 |
5 |
|
8 |
指针 |
12 |
6 |
6 |
|
9 |
结构体与共用体 |
4 |
2 |
2 |
|
合计 |
68 |
34 |
34 |
|
四、参考教材与书目
1.参考教材
黄春芳,宋颖.C语言程序设计.天津:南开大学出版社,2009
2.参考书目
[1] 谭浩强,张基温.C语言程序设计教程.第三版.北京:高等教育出版社2010
[2] 谭浩强.C程序设计.北京:清华大学出版社,2010
第1章 c语言概述(2学时)
【教学目的与要求】
1.了解程序语言的发展概况,认识高级语言在程序设计语言学习中的地位,能在C程序语言环境下熟练地进行源程序的编辑、编译、运行等操作.
2. 将学生引入C语言的世界,让他们觉得编程序是一件有意思的事情.
【教学重点】
掌握源程序的编辑、编译、运行、保存、打开等操作.
【教学难点】
C语言程序的书写格式.
【教学方法】
讲授法及上机验证程序。
【教学内容】
1.程序与程序设计语言
机器语言,汇编语言,高级语言,面向对象程序设计语言。
2.简单的C语言程序介绍
通过几个简单的例子,介绍c语言程序的结构
3.C语言编辑环境
VC++6.0的安装,启动,程序的编译,运行,编辑.
【教学建议】
由于学生是初次接触程序设计,教学中要引导学生增强对程序设计重要性的认识,从而提高学习程序设计的兴趣.
第2章 算法(4学时)
【教学目的与要求】
1.掌握算法的概念和特点.
2. 掌握用流程图、N-S流程图表示算法.
3. 理解结构化程序设计方法.
【教学重点】
用流程图、N-S流程图表示算法.
【教学难点】
算法的设计.
【教学方法】
讲授法及上机验证程序。
【教学内容】
1.什么是算法及算法举例
算法的概念,简单算法举例。
2.流程图表示算法
流程图符号,用流程图表示简单算法举例。
3.N-S流程图表示算法
N-S流程图符号,N-S用流程图表示简单算法举例。
4.结构化程序设计方法
【教学建议】
算法是程序的灵魂,教学中要引导学生具有算法的意识,让学生明白算法对一个程序的重要性.
第3章 数据类型、运算符和表达式(6学时)
【教学目的与要求】
1.掌握C语言的数据类型、常量、变量、各种表达式、运算优先级.
2.熟练掌握变量的定义、不同常量的书写方法、各种表达式的求值方法.
【教学重点】
C语言的数据类型、常量、变量的定义,各种运算符的操作结果
【教学难点】
数据类型的存储,各种运算符的操作结果.
【教学方法】
讲授法及上机验证程序。
【教学内容】
1.基本数据类型
整型,实型,字符型.
2.数据常量与变量
整型常量与变量,实型常量与变量,字符型常量与变量.
3.数据类型转换
自动转换,赋值转换,强制转换,输出转换.
4.运算符和表达式
算术运算符和算术表达式,赋值运算符和赋值表达式,逗号运算符和逗号表达式,关系运算符和关系表达式,逻辑运算符和逻辑表达式,位运算符和位运算.
【教学建议】
程序设计中的源程序是把所处理的问题用程序设计语言中的语句进行表达的一个过程,本章介绍的内容都是程序设计的基本元素,要把数学式子转换为表达式.
第4章 基本结构程序设计(16学时)
【教学目的与要求】
1.了解C语言程序中语句表示形式、表达式语句的合理运用、空语句及复合语句在程序设计中的作用.
2.掌握数据输入语句和输出语句中格式控制字符串对输入、输出格式的控制.
3.能把处理的问题用C语言中的表达式表示出来,掌握数据输入、输出语句的使用方法,熟练地为变量赋值,输出处理后的结果.
4.理解程序设计中为什么要使用选择结构,选择型程序的执行流程.
5.掌握多条件下使用条件语句的嵌套和多分支语句的比较.
6.熟练掌握循环语句在程序中的作用,掌握各种循环语句的执行流程,判断循环是否执行.
7.掌握三种循环语句的比较,能用三种循环语句编写解决同一问题的程序.
8.熟练掌握循环程序的编写.
9.了解break语句,continue语句在循环体中的作用.
【教学重点】
输入与输出语句的合理使用,选择语句和嵌套的选择语句的执行过程分析,循环语句和嵌套循环语句的执行过程分析,C程序设计中的常用算法应用.
【教学难点】
输入语句中的格式控制字符串与输入行的匹配,输出语句中如何用格式控制字符串输出不同的显示形式,结构化程序设计的思想建立,用三种基本程序结构,编写程序解决实际问题.
【教学方法】
讲授法及上机验证程序。
【教学内容】
1.顺序程序设计
getchar(),putchar(),printf(),scanf()函数的使用.
2.选择型程序设计
if语句,if-else语句,if-else嵌套,switch语句.
3.循环程序设计
while循环语句,do-while循环语句,for循环语句.
4.嵌套循环程序设计
双重以上循环嵌套程序的编写与分析.
【教学建议】
顺序、选择、循环是结构化程序设计的三种基本结构,是程序设计的主要内容,教学中要把为什么要用这三种结构解决问题介绍清楚,为后续内容的学习打下基础.
第5章 预处理命令(2学时)
【教学目的与要求】
1. 掌握宏定义的定义与使用方法.
2. 了解运行多个程序与头文件包含.
3. 了解条件编译.
【教学重点】
不带参数的宏,带参数的宏
【教学难点】
文件包含,不同编译单位.
【教学方法】
讲授法及上机验证程序。
【教学内容】
1.宏定义与宏替换
不带参数的宏,带参数的宏.
2.文件包含
3.条件编译
【教学建议】
程序设计中很多地方都用到宏定义,要让学生明白宏替换是如何替换的。
第6章 数组(12学时)
【教学目的与要求】
掌握一维数组的定义、引用、赋值;
熟练掌握一维数组元素的删除、插入、查找、排序;
掌握二维数组的定义、引用、赋值;
熟练掌握二维数组与行列式、矩阵处理方法的对应;
熟练掌握一维字符型数组、二维字符型数组处理;
【教学重点】
数组元素处理中下标变化的规律,数组定义后的引用方式的变化,数组与线性代数中矩阵、行列式的关系.字符串数据与字符串数组之间关系,用字符型数据进行文字处理.
【教学难点】
数组的定义与初始化,下标变化与数组元素的操作,字符串数组处理中下标的灵活使用.
【教学方法】
讲授法及上机验证程序。
【教学内容】
1.一维数组
一维数组的定义,引用,赋值,输入,输出.
2.一维数组程序举例
数组元素的插入,删除,置逆,查找,排序.
3.二维数组
二维数组定义,引用,赋值,输入,输出.
4.二维数组举例
二维数组的行列求和,求平均,转置,行列的三种变换.
5.字符型数组
字符型数组,字符串,字符串连接,比较,排序.
【教学建议】
数组是构造形式的数据,教学中要与线性代数中的矩阵、行列式内容相结合,为用数组解决实际问题打基础.
第7章 函数(10学时)
【教学目的与要求】
1.掌握函数定义的方法,认识函数在程序设计中的重要性.
2.熟练掌握函数调用的一般形式.
3.了解求值调用、函数语句调用的不同.
4.了解函数嵌套调用、递归调用.
5.熟练掌握函数形式参数和实在参数在函数调用时的变化.
6.了解变量的不同存储类型与用法.
7.掌握函数形参与数组的关系.
【教学重点】
用函数编写C语言程序,函数的嵌套调用及函数的递归调用.
【教学难点】
函数的编写,函数调用中形式参数与实在参数的数据传递,形式参数与实在参数如何变化,递归调用函数程序执行结果的分析,数组名与数组元素作为函数参数传递时的作用,不同存储变量在程序中的作用.
【教学方法】
讲授法及上机验证程序
【教学内容】
1.函数
函数定义
2.函数调用(嵌套与递归)
求值调用,语句调用,递归调用.
3.数组与函数
数组元素作为实参,数组名为实参.
4.变量存储属性
全局变量,局部变量,自动变量,静态变量,外部变量,寄存器变量.
【教学建议】
函数式的程序设计方法是结构化程序设计的基础,也是C语言程序的特色,教学中要求把以前编写的程序转换为函数,并能调用函数输出所求问题的解.
第8章 指针(12学时)
【教学目的与要求】
1.掌握地址与指针的概念.
2.掌握指针变量的定义与操作.
3.了解函数参数定义为指针变量.
4.了解函数返回值为指针值.
5.了解指向指针的指针变量.
6.熟练掌握指针的定义与操作.
7.能正确分析函数参数为指针变量时形式参数对实在参数的影响.
8.掌握指针与字符串的关系.
【教学重点】
指针的定义,指针与数组、指针与函数、指针与字符串的关系.通过普通指针、指针数组、行指针对数组进行访问.
【教学难点】
普通指针、指针数组、行指针对数组进行访问,函数与指针的关系.
【教学方法】
讲授法及上机验证程序。
【教学内容】
1.指针基础
指针的定义,引用.
2.指针与数组
指针与一维数组、二维数组的关系,通过指针引用数组元素.
3.指针与函数
指针作为实参传递.
4.指针与字符串
通过指针引用字符串。
【教学建议】
指针是C语言中一个重要内容,教学中要根据指针的特点,把过去用普通方式处理的问题用指针方法来处理,使学生认识指针的重要性.
第9章 结构体与共同体(4学时)
【教学目的与要求】
1.结构体与共用体的声明形式;
2.掌握结构体与共用体的声明与引用方式;
3.结构体变量、结构体数组、结构体指针变量的定义;
4.掌握结构体变量、结构体数组、结构体指针变量的定义、引用及赋值.
【教学重点】
结构类型的定义,程序方式下给结构体变量赋值.
【教学难点】
程序方式下结构体成员变量的处理,用表格形式输出结构体变量中的值.
【教学方法】
讲授及上机验证程序。
【教学内容】
1.结构体与共用体类型数据的定义方法和引用方法
2.学生分数册、工资表的结构体数据处理.
【教学建议】
结构体类型是C语言中的另一种构造类型,适合处理表格数据,要求学生在学习中要学会自己定义一个处理表格的结构体.
执笔人:郝强 审定人:郝强