《C语言程序设计》课程教学大纲 课程名称:C语言程序设计 课程类别:专业基础课 适用专业:地理信息科学 考核方式:考试 总学时、学分:64学时3学分 其中实验学时:32学时 一、课程教学目的 《C语言程序设计》是理工科非计算机专业的一门计算机公共基 础课程。该课程主要任务是介绍C语言中的数据类型、运算、语句结 构及其程序设计的基本方法。通过本课程的学习,使学生学会用计算 机处理问题的思维方法,增强解决问题的编程实践能力,学会利用C 语言解决一般应用问题,并为后续的专业课程奠定程序设计基础。 二、课程教学要求 熟练掌握C程序设计的基础知识和基本概念; 掌握程序设计的思想和编程技巧: 熟练掌握数据类型,深刻理解顺序程序设计、选择结构程序设计 和循环结构程序设计以及利用数组批处理数据: 熟练掌握用编写常用程序与算法,掌握应用C语言进行程序设计 的技能,为进行各种实用设计开发奠定良好的基础。 三、先修课程 无 四、课程教学重、难点 本课程的重点是了解结构化程序设计的基本方法,掌握典型的常 用算法,掌握C语言的基本数据类型,理解数组的基本概念,掌握字 符串的简单处理,了解结构化程序设计的基本方法,理解函数的定义 28
28 《C 语言程序设计》课程教学大纲 课程名称:C 语言程序设计 课程类别:专业基础课 适用专业:地理信息科学 考核方式:考试 总学时、学分: 64 学时 3 学分 其中实验学时: 32 学时 一、课程教学目的 《C 语言程序设计》是理工科非计算机专业的一门计算机公共基 础课程。该课程主要任务是介绍 C 语言中的数据类型、运算、语句结 构及其程序设计的基本方法。通过本课程的学习,使学生学会用计算 机处理问题的思维方法,增强解决问题的编程实践能力,学会利用 C 语言解决一般应用问题,并为后续的专业课程奠定程序设计基础。 二、课程教学要求 熟练掌握 C 程序设计的基础知识和基本概念; 掌握程序设计的思想和编程技巧; 熟练掌握数据类型,深刻理解顺序程序设计、选择结构程序设计 和循环结构程序设计以及利用数组批处理数据; 熟练掌握用编写常用程序与算法,掌握应用 C 语言进行程序设计 的技能,为进行各种实用设计开发奠定良好的基础。 三、先修课程 无 四、课程教学重、难点 本课程的重点是了解结构化程序设计的基本方法,掌握典型的常 用算法,掌握 C 语言的基本数据类型,理解数组的基本概念,掌握字 符串的简单处理,了解结构化程序设计的基本方法,理解函数的定义
与调用,理解指针的概念和指针变量的定义 本课程的难点是程序设计的基本算法,循环嵌套,函数的使用, 指针的应用。 五、课程教学方法与教学手段 本课程注重学生实践能力的培养,采用讲授法和具体软件演示的 教学方法。课程采用课堂讲解为主,多媒体演示和练习巩固为辅的教 授方式。 六、课程教学内容 第一章C语言概述(2学时) 1.教学内容 (1)程序设计及编程语言的发展: (2)C语言的发展历史和特点: (3)C程序示例: (4)C程序的编辑、编译和运行。 2.重、难点提示 (1)难点和重点C程序的基本结构 第二章C语言数据类型(2学时) 1.教学内容 (1)常量与变量: (2)数据类型: (3)计算变量所占空间的大小: (4)变量的赋值和赋值运算符: (5)补充原码、反码、补码。 2.重、难点提示 (1)重点:基本数据类型常量的书写方法和变量的定义、赋值、初始化、使用方法:基 本赋值运算符的使用: 29
29 与调用,理解指针的概念和指针变量的定义 本课程的难点是程序设计的基本算法,循环嵌套,函数的使用, 指针的应用。 五、课程教学方法与教学手段 本课程注重学生实践能力的培养,采用讲授法和具体软件演示的 教学方法。课程采用课堂讲解为主,多媒体演示和练习巩固为辅的教 授方式。 六、课程教学内容 第一章 C 语言概述(2 学时) 1.教学内容 (1)程序设计及编程语言的发展; (2)C 语言的发展历史和特点; (3)C 程序示例; (4)C 程序的编辑、编译和运行。 2.重、难点提示 (1) 难点和重点 C 程序的基本结构 第二章 C 语言数据类型(2 学时) 1.教学内容 (1)常量与变量; (2)数据类型; (3)计算变量所占空间的大小; (4)变量的赋值和赋值运算符; (5)补充原码、反码、补码。 2.重、难点提示 (1)重点:基本数据类型常量的书写方法和变量的定义、赋值、初始化、使用方法;基 本赋值运算符的使用;
(2)难点:如何计算变量或数据类型所占内存空间的大小:字符常量与字符串常量。 第三章简单的算术运算和表达式(2学时) 1.教学内容 (1)C运算符和表达式: (2)宏常量与宏替换: (3)const常量: (4)自动类型转换与强制类型转换运算符: (5)常用的标准数学函数。 2.重、难点提示 (1)重点:基本运算符的运算规则及优先级别:表达式的构成规则和计算: (2)难点:运算符优先级别,混合表达式计算。 第四章键盘输入和屏幕输出(2学时) 1.教学内容 (1)单个字符的输入/输出: (2)数据的格式化屏幕输出: (3)数据的格式化键盘输入。 2.重、难点提示 (1)重点:printf()函数,scanf()函数,putchar(),getchar(): (2)难点:输入/输出的各种格式。 第五章选择控制结构(5学时) 1.教学内容 (1)算法的概念及其描述方法: (2)关系运算符与关系表达式: (3)单分支控制的条件语句: (4)双分支控制的条件语句: (⑤)条件运算符和条件表达式: (6)多分支控制的条件语句: (7)多路选择swtich语句: (8)逻辑运算符和逻辑表达式。 30
30 (2)难点:如何计算变量或数据类型所占内存空间的大小;字符常量与字符串常量。 第三章 简单的算术运算和表达式(2 学时) 1.教学内容 (1)C 运算符和表达式; (2)宏常量与宏替换; (3)const 常量; (4)自动类型转换与强制类型转换运算符; (5)常用的标准数学函数。 2.重、难点提示 (1)重点:基本运算符的运算规则及优先级别;表达式的构成规则和计算; (2)难点:运算符优先级别,混合表达式计算。 第四章 键盘输入和屏幕输出(2 学时) 1.教学内容 (1)单个字符的输入/输出; (2)数据的格式化屏幕输出; (3)数据的格式化键盘输入。 2.重、难点提示 (1)重点:printf( )函数,scanf( )函数,putchar( ),getchar( ); (2)难点:输入/输出的各种格式。 第五章 选择控制结构(5 学时) 1.教学内容 (1)算法的概念及其描述方法; (2)关系运算符与关系表达式; (3)单分支控制的条件语句; (4)双分支控制的条件语句; (5)条件运算符和条件表达式; (6)多分支控制的条件语句; (7)多路选择 swtich 语句; (8)逻辑运算符和逻辑表达式
2.重、难点提示 (1)重点:关系运算符,逻辑运算符,if()…else…语句,switch语句: (2)难点:if()…else…嵌套使用,switch()语句,正确使用选择结构语句设计程 序。 第六章 循环控制结构(5学时) 1.教学内容 (1)循环控制结构与循环语句: (2)计数控制的循环: (3)嵌套循环: (4)条件控制的循环: (5)流程的转移控制: 2.重、难点提示 (1)重点:while(),for(;;…):do..while():三种循环语句,break语句和 continue语句: (2)难点:正确使用三种循环语句编写程序,break和continue控制循环。 第七章 函数(4学时) 1.教学内容 (1)函数的定义: (2)向函数传递值和从函数返回值: (3)函数的递归调用和递归函数: (4)变量的作用域和存储类型: (⑤)模块化程序设计: 2.重、难点提示 (1)重点:函数的定义,函数的实际参数和形式参数及其值的传递,函数的递归使用, 变量的作用域和存储类型: (2)难点:函数形参和实参值传递,变量的作用域和生存期。 第八章数组(6学时) 1.教学内容 (1)一维数组的定义和初始化: 31
31 2.重、难点提示 (1)重点:关系运算符,逻辑运算符,if( )…else……语句,switch 语句; (2)难点:if( )…else……嵌套使用,switch( )语句,正确使用选择结构语句设计程 序。 第六章 循环控制结构(5 学时) 1.教学内容 (1)循环控制结构与循环语句; (2)计数控制的循环; (3)嵌套循环; (4)条件控制的循环; (5)流程的转移控制; 2.重、难点提示 (1)重点:while( ),for(…; …; …);do…while( );三种循环语句,break 语句和 continue 语句; (2)难点:正确使用三种循环语句编写程序,break 和 continue 控制循环。 第七章 函数(4 学时) 1.教学内容 (1)函数的定义; (2)向函数传递值和从函数返回值; (3)函数的递归调用和递归函数; (4)变量的作用域和存储类型; (5)模块化程序设计; 2.重、难点提示 (1)重点:函数的定义,函数的实际参数和形式参数及其值的传递,函数的递归使用, 变量的作用域和存储类型; (2)难点:函数形参和实参值传递,变量的作用域和生存期。 第八章 数组(6 学时) 1.教学内容 (1)一维数组的定义和初始化;
(2)二维数组的定义和初始化: (3)向函数传递一维数组: (4)排序和查找: (⑤)向函数传递二维数组: (6)字符串常量: (7)字符串存储: 2.重、难点提示 (1)重点:一维数组、二维数组的定义、初始化和数组元素的使用,数组中的查找和排 序,数组与函数: (2)难点:值传递和地址传递的区别。 第九章指针(6学时) 1.教学内容 (1)变量的内存地址: (2)指针变量的定义和初始化: (3)间接寻址运算符: (4)按值调用与模拟按引用调用: (⑤)指针变量作函数参数实例: (6)函数指针及其应用: (7)指针和一维数组间的关系: (8)指针和二维数组间的关系。 2.重、难点提示 (1)重点:指针变量的定义、初始化和赋值方法,函数指针:使用指针做函数参数: (2)难点:指针的概念,值传递和地址传递的区别。 七、实验教学内容 实验项目(一)C语言程序的运行与调试(2学时): (1)项目类别:必做√选做口 (2)项目性质:演示性√验证性口设计性口 综合性口 (3)项目主要目的要求: 32
32 (2)二维数组的定义和初始化; (3)向函数传递一维数组; (4)排序和查找; (5)向函数传递二维数组; (6)字符串常量; (7)字符串存储; 2.重、难点提示 (1)重点:一维数组、二维数组的定义、初始化和数组元素的使用,数组中的查找和排 序,数组与函数; (2)难点:值传递和地址传递的区别。 第九章 指针(6 学时) 1.教学内容 (1)变量的内存地址; (2)指针变量的定义和初始化; (3)间接寻址运算符; (4)按值调用与模拟按引用调用; (5)指针变量作函数参数实例; (6)函数指针及其应用; (7)指针和一维数组间的关系; (8)指针和二维数组间的关系。 2.重、难点提示 (1)重点:指针变量的定义、初始化和赋值方法,函数指针;使用指针做函数参数; (2)难点:指针的概念,值传递和地址传递的区别。 七、实验教学内容 实验项目(一) C 语言程序的运行与调试(2 学时): (1)项目类别:必做√ 选做□ (2)项目性质:演示性√ 验证性□ 设计性□ 综合性□ (3)项目主要目的要求: