第一部分 大纲说明
一、课程的目的与任务
本课程将以结构化程序设计思想指导学习者运用C语言进行程序设计,充分利用C语言的结构性好,书写格式自由简洁,数据类型丰富,表达式类型多样化,程序执行效率高,可移植性好等特点,使学习者养成严谨的程序设计风格和习惯,在程序设计基本技能方面得到良好的训练,为后继课程的学习及今后的实际应用打下良好的基础。
二、课程的基本要求
1.教学基本要求和学习方法建议
(1)弄清概念、注重实践
学习时一定要模仿例题亲自编制一些实用程序,加强对概念的正确认识。同时要注意上机实践,把不清楚的问题通过上机一一解决。从而不断增加学习兴趣,提高编程能力。
(2)由浅入深、循序渐进
先学习简单的、容易掌握的部分,以后再逐步掌握C语言的精华——指针及各种灵活的表达式。
(3)着重语言的使用
由于C语言本身比较复杂,应把学习重点放在语言的使用上,即如何正确使用C语言编写程序,而不把重点放在算法的设计上。
(4)尽量不涉及太多的硬件知识
C语言既能编写应用软件,也能编写系统软件,而编写系统软件势必需要一定的硬件知识。在学习本课程时应尽可能地不涉及太多的硬件知识,以便于理解和掌握。
(5)忽略非主要细节
不死抠非主要细节,集中精力放在最基本、最常用部分的学习上,待建立一定的基础以后再深入到一些非主要细节的讨论。
2.教学的重点、难点
重点为熟练掌握C语言的数据类型(基本类型、构造类型、指针类型等)和各类运算符,能正确使用表达式实现各种数据的加工。熟练掌握程序设计的三种基本结构(顺序、选择、循环)的特点,能使用相关语句完成这三种基本程序的设计任务。掌握C语言的常用的库函数的使用,以及用户函数的定义、调用、参数传递等方法。培养学生的程序设计能力,初步认识软件开发的基本思想。难点为掌握阅读和分析程序的方法和技巧,掌握设计和调试程序的方法和技巧。
3.教学计划中前后课程的联系
C语言比较复杂、较难掌握,学习者应该先学习计算机基础知识。
C语言是数据结构、软件工程、程序设计方法、编译原理等课程的基础与工具。
4.考试考核方式
实践和期末笔试考核,比例为 4:6。
5.学时
17周,周3学时
6.教材编选的原则
根据学生实际情况和社会发展的需要,选择了《C语言程序设计与实训》。该教材编写的原则是:结构清晰,内容安排合理,难度循序渐进,描述准确清楚,各章节配备一定实训题目和一定数量的习题和思考题,重点培养学生用C语言解决实际问题的能力,适合高职高专学生学习的特点。
7.参考书目
1.谭浩强 《C程序设计》 清华大学出版社 2002
2.薛钢等 《C语言实用教程》 吉林科学技术出版社 1997
3.徐金吾等 《Turbo C使用大全》 北京科海培训中心 1990
4.王士元 《C高级实用程序设计》清华大学出版社 1995
5.国家教育考试中心 《全国计算机等级考试考试大纲》 高等教育出版社 1995
6.牛连强等 《C语言程序设计笔试习题点津》 大连理工大学出版社 1999
7.王洪 《Turbo C 2.0使用指南》陕西电子编辑部(内部参考) 19
8.谭浩强 《C程序设计上机指导书》 清华大学出版社 1999
9.马靖善、秦玉平等 《C语言程序设计》 清华大学出版社 2005
第二部分 讲授大纲
第1章 C 语言概述
学习目的和要求:
了解C语言出现的历史背景,了解C语言的特点,熟悉C环境,熟练掌握C程序的上机步骤,了解C程序的组成。
教学重点:
C 程序的上机步骤。
教学难点:
C程序的组成。
课时分配:
本章讲授2学时,上机实践 1学时。
讲授内容纲要:
1.C语言发展及特点。
2.Turbo C上机操作环境。
3.简单的C程序介绍。
4.C程序的上机执行过程。
思考题:
1.C程序组成。
2.C程序执行过程。
第2章 C语言基础
学习目的和要求:
熟练掌握几种基本数据类型的存储方式,表示方法;熟练掌握指针的定义和使用;掌握不同类型间数据转换的原则与方法;熟练掌握有关运算符与表达式的运用。
教学重点:
整型、实型、字符型、指针型数据的定义和使用。运算符和表达式的运用。
教学难点:
指针型数据的定义和使用、不同类型间数据转换的原则与方法。
课时分配:
本章讲授2学时,上机实践 1学时
讲授内容纲要:
1.常量和变量。
2.各种运算符和表达式。
3.指针类型。
思考题:
1.数据类型有哪些。
2.各种运算符的使用。
第3章 顺序结构
学习目的和要求:
清楚顺序结构设计的思路,掌握基本的输入、输出函数的使用。
教学重点:
结构化程序设计思想、各种输入、输出函数
教学难点:
scanf()函数和printf()函数的格式控制字符串。
课时分配:
本章讲授 2学时,上机实践 1学时
讲授内容纲要:
1.三种基本结构。
2.赋值语句。
3.输入、输出函数。
思考题:
1.三种基本结构的特点。
2.输入、输出函数的应用。
第4章 选择结构
学习目的和要求:
了解if、switch-case和goto三种语句的一般形式及其应用,掌握选择结构的特点。
教学重点:
if、switch-case语句的应用。
教学难点:
if语句嵌套。
课时分配:
本章讲授2学时,上机实践 1 学时
讲授内容纲要:
1.if语句的应用。
2.switch-case语句的应用。
3.goto语句的应用。
思考题:
1.if语句使用的注意事项。
2.switch-case语句中break的作用。
第5章 循环结构
学习目的和要求:
了解三种循环语句的区别,掌握穷举法和迭代法的思想及其应用,提高解决问题的能力。
教学重点:
三种循环语句的特点及应用。
教学难点:
穷举法和迭代法的思想及其应用。
课时分配:
本章讲授 4学时,上机实践 2学时
讲授内容纲要:
1.while、do-while和for三种循环语句的一般形式及其应用。
2.break语句和continue语句的一般形式及其应用。
3.穷举法和迭代法的思想及其应用。
思考题:
1.while、do-while和for三种循环语句的区别。
2.break语句和continue语句的应用的特点。
第6章 数组
学习目的和要求:
掌握数组的定义、引用技巧和初始化方法;掌握字符串的输入、输出方法;会用字符串处理函数解决字符串问题。
教学重点:
数组的应用、字符串数组的应用。
教学难点:
字符串数组的应用。
课时分配:
本章讲授4学时,上机实践 2学时
讲授内容纲要:
1.数组的定义、引用和初始化方法。
2.字符串的输入、输出及处理函数。
3.数组的应用。
思考题:
1.字符串与字符数组的区别。
2.数组的初始化的特点。
第7章 函数
学习目的和要求:
掌握函数的定义和调用;掌握函数调用时的参数传递方式;理解变量的存储属性和作用范围;掌握内部函数和外部函数的定义和使用。
教学重点:
函数的参数传递,函数的调用,数组名和指针作为函数参数。变量的存储属性。
教学难点:
函数的嵌套调用与递归调用;变量的存储类别。
课时分配:
本章讲授4学时,上机实践2学时
讲授内容纲要:
1.函数的定义与调用。
2.参数传递。
3.函数的嵌套和递归调用。
4.宏定义与文件包含。
5.主函数与命令行参数。
6.运行一个多文件的程序。
思考题:
1.主函数的参数传递。
2.各种方式函数参数传递方式及有关规定与使用技巧。
3.函数中变量定义位置及其作用域之间关系。
4.如何运行一个多文件的程序。
第8章 结构体、共用体和枚举类型
学习目的和要求:
熟练掌握结构体类型的概念、定义以及结构体变量的定义和引用。熟练掌握结构体数组和结构体指针变量的定义和使用。掌握链表的概念和应用。掌握共用体类型的概念、定义以及共用体变量的定义和变量成员的引用。掌握枚举类型的概念、定义以及枚举变量的定义和引用。
教学重点:
结构体变量、结构体数组与结构体指针的定义和引用。
教学难点:
结构体数组与结构体指针。
课时分配:
本章讲授4学时,上机实践2学时
讲授内容纲要:
1.结构体类型的概念、定义以及结构体变量的定义和引用。
2.结构体数组和结构体指针变量的定义和使用。
3.链表的概念和应用。
4.共用体类型的概念、定义以及共用体变量的定义和变量成员的引用。
5.枚举类型的概念、定义以及枚举变量的定义和引用。
思考题:
1.结构体、共用体两种类型的区别。
2.链式存储适合的操作对象。
3.函数参数传递中用结构体和结构体指针之间的优劣比较。
第9章 位运算
学习目的和要求:
掌握六种位运算的运算符、运算规则和功能,并能利用这六种位运算符来解决一些实际问题。
教学重点:
位运算的应用。
教学难点:
位段的定义与引用。
课时分配:
本章讲授2学时,上机实践1学时
讲授内容纲要:
1.六种位运算的运算符、运算规则和功能。
2.位段的定义与引用。
思考题:
1.如何测试数字的位数是0还是1?
2.如何实现循环移位?
第10章 文件系统
学习目的和要求:
掌握文件和文件指针的概念,掌握文件的打开、关闭和读写等基本操作。
教学重点:
文件的打开、关闭、读写。
教学难点:
文件的读写。
课时分配:
本章讲授 4 学时,上机实践 1 学时
讲授内容纲要:
1.文件系统相关基本概念及类型设置。
2.文件打开、关闭函数的使用。
3.文件读写函数的使用。
4.文件定位与随机读写。
5.文件的出错检测和处理。
思考题:
1.文件打开和关闭的含义。
2.哪些文件操作函数会改变文件的内部指针位置。
第11章 综合实训
学习目的和要求:
了解程序开发的过程,掌握菜单的设计,更加熟练地应用函数,熟练地使用文件,提高学生的程序设计的能力。
教学重点:
程序开发的步骤、菜单的设计。
教学难点:
菜单的设计。
课时分配:
本章讲授 2学时,上机实践2学时
讲授内容纲要:
1.程序开发的步骤。
2.菜单的设计。
3.所有知识的综合应用:设计学生成绩管理系统。
思考题:
1.程序开发的步骤。
2.如何实现游标控制菜单。