开通VIP,畅享免费电子书等14项超值服
首页
好书
留言交流
下载APP
联系客服
2021.12.25
C语言思政版教案
01
课程教学介绍
02
课程安排
上下滚动查看↓
第1章C语言程序设计预备知识
(总课时:2课时,其中讲授2课时)
【知识点】
进位计数制及其转换;机器数;位运算。
【重、难点】
机器数的表示形式及其表示范围。
【教学内容】
初步了解计算机的系统组成及工作原理;掌握常用进制及其转换方法;掌握机器数的表现形式及其表示范围;熟练掌握二进制的位运算方法。
【教学要求】
1.可采取课堂讲授、在线学习、查阅资料、课后练习等教学方式;
2.本章作为了C语言程序设计的预备知识,要求教师首先应对计算机软、硬件结构作适当的讲解,让学生了解计算机系统的组成及工作原理;
3.要求教师必须对补码表示方法给与重点介绍,特别是关于补码的运算方法;
4.通过实例教学让学生更好地理解和把握二进制位运算。
【具体内容】
第1节计算机系统组成及工作原理简介(讲授0.5课时)
1、硬件系统基本组成及工作原理
计算机硬件的概念;计算机五大部件的功能【包括:运算器,控制器,存储器,输入设备,输出设备】;硬件系统工作原理。
2、软件系统的组成及分类
软件的概念【包括:系统软件,应用软件】。
3、硬件与软件的关系
第2节进位计数制及其转换(讲授0.5课时)
1、十进制、二进制、八进制和十六进制的表示
数码、计数、权、计数规则的概念;按权展开式的表示形式;C语言中各种进制的表示形式【包括:八进制表示形式,十六进制表示形式】。
2、二进制与十进制、八进制和十六进制之间的相互转换。
二进制与十进制间的相互转换【包括:整数部分转换和小数部分转换】;二进制、八进制和十六进制之间的相互转换。
第3节机器数的表示形式及其表示范围(讲授0.8课时)
1、真值与机器数
真值的概念,机器数的概念。
2、原码、反码及补码
原码、反码及补码的概念及表示方法;机器数的表示范围。
3、补码的加、减运算
补码加、减运算规则。
第4节二进制的位运算(讲授0.2课时)
1、运算符号
“与”、“或”、“非”、“异或”运算符;
2、运算规则
第2章C语言程序设计基础
C程序的基本结构;编程基本步骤。
C语言程序的基本结构;程序调试的基本方法和步骤。
理解源程序、标识符、函数、参数、主函数、变量、函数调用、程序注释等概念;掌握C程序的基本结构;掌握编写C语言程序的基本步骤和调试过程。
1、可采取课堂讲授、在线学习、查阅资料、课后练习、实验等教学方式;
2、要求教师以一些简单的C语言程序为实例,让学生初步了解C语言程序的基本结构及其有关的概念和注意事项;
3、要求学生通过本章的学习,能够编制相对简单的C语言程序,并能上机调试通过。
第1节程序设计语言发展史及特点(讲授0.5课时)
1、程序设计语言发展历程
机器语言、汇编语言及高级语言的演变过程及各自的特点。
2、C语言发展历程及特点
C语言的产生;C语言的版本;C语言的特点;C语言的应用。
3、C语言与C++、Java、C#和Python之间的关系
第2节C语言程序的基本结构(讲授1课时)
1、最简单的C语言程序
C语言程序的基本结构;注释、预处理命令、主函数、内部函数调用、头文件、语句、函数参数等概念。
2、具有输入功能的C语言程序
变量的定义和含义;变量值的输出。
3、自定义函数的C语言程序
标示符的概念;函数定义方法;函数调用方式;形参与实参;
第3节编写C语言程序的基本步骤(讲授0.5课时)
1、C语言程序的编写步骤
编辑程序;编译程序;链接程序;运行程序。
2、产生的中间文件
源程序文件(.cpp或.c);目标文件(.obj);执行文件(.exe)。
第3章基本数据类型、运算符与表达式
(总课时:6课时,其中讲授4课时、课外学习与研讨2课时)
常量与变量;简单数据类型【包括:整形,浮点型,字符型】;运算符与表达式;运算符的优先级。
数据在内存中的表示;运算符的优先级和结合性;转义字符;有符号数与无符号数之间的运算;数据类型的自动转换与强制类型转换。
掌握变量和常量的概念;理解各种类型的数据在内存中的存放形式;掌握各种类型数据的常量的使用方法;掌握各种整型、字符型、浮点型变量的定义和引用方法;了解调用printf函数输出各种类型数据的方法;掌握数据类型转换的规则以及强制数据类型转换的方法;掌握赋值运算符、算术运算符、位运算符、逗号运算符以及sizeof的使用方法;理解运算符的优先级和结合性的概念,记住所学的各种运算符的优先级关系和结合性;
1.可采取课堂讲授、在线学习、查阅资料、课后练习、实验等教学方式;
2.要求教师尽可能地结合实例进行教学;
3.要求教师在C语言基本数据类型及其表示范围方面进行重点详细讲解,让学生充分理解为什么C语言中要使用不同的数据类型,每种数据类型各适用于哪些场合。
4.要求教师对C语言中的运算符及其优先级进行详细讲解,并给出一个综合应用实例。
5.要求学生通过本章的学习能够对C语言中的简单数据类型、运算符及优先级进行很好的把握,并能通过实际编程加以理解和应用。
第1节C语言数据类型介绍及常量、变量和标识符(讲授0.5课时)
1、数据类型介绍
C语言数据类型概念,数据类型分类【包括:基本数据类型、构造数据类型、指针类型、空类型】。
2、标识符、常量和变量
标识符的定义,常量的定义及分类【包括:直接常量,符号常量】,变量的定义与初始化。
第2节简单数据类型与表示范围(讲授1课时)
1、整型数据
整型常量,整数在内存中的表示,整型变量的定义和分类,整型常量的分类。
2、实型数据
实型常量,实数在内存中的存放形式,实型变量的分类和定义,实型数据的精度。
3、字符型数据和字符串常量
字符型常量【包括:直接输入的字符,转义字符】,字符型变量的定义,字符串常量。
4、简单数据类型的表示范围
数据类型表示范围的意义,数据类型表示范围的推导。
5、数据的简单输出
printf函数的简单应用。
第3节C语言的运算符与表达式(讲授2课时)
1、赋值运算符、赋值表达式
赋值运算符的一般形式,赋值表达式的一般格式及赋值表达式的值,赋值语句,赋值运算符及赋值表达式的使用方法。
2、强制类型转换符
数据类型的自动转换的概念及方法;强制类型转换的一般形式。
3、算术运算符、算术表达式
算术运算符的种类;表达式和算术表达式的概念。
4、自增自减运算符、负号运算符
自增自减运算符的用法,自增自减运算符运算规则【包括:前置运算,后置运算】。
5、算术运算中数据类型转换规则
不同数据类型的数据在算术运算中的类型转换规则。
6、位运算符、位运算表达式
位运算的种类【包括:按位与(&)、按位或(|)、按位取反(~)、按位异或(^)、左移(<<)、右移(>>)】,左移运算规则及一般格式,右移运算规则及一般格式。
7、逗号运算符、逗号表达式
逗号表达式的一般形式,逗号表达式的值。
8、sizeof运算符、复合赋值运算符
sizeof运算符使用格式,复合赋值运算符的含义。
第4节有符号数与无符号数之间运算问题(讲授0.5课时)
1、有符号数、无符号数在内存中的表示
补码表示,数据类型与内存分配大小。
2、算术运算数据类型转换规则
算术表达式中有符号变量、无符号变量、整型常量混合运算数据类型转换方法。
第4章基本输入/输出和顺序程序设计
格式化输入prntf,格式化输出scanf,程序的控制结构,顺序程序设计。
printf函数中的辅助格式控制符(修饰符)及其含义;scanf函数中辅助格式控制符及其含义;用流程图来描述算法。
掌握各种类型数据的格式化输入/输出方法;掌握字符数据的非格式化输入/输出方法;理解三种程序控制结构的流程图;学会简单顺序程序的设计;养成良好的程序设计习惯。
2.要求教师尽可能结合实例演示数据格式化输入输出中各种格式控制符的作用及技巧;
3.要求教师结合实例讲解算法在程序设计中的重要性及程序的三种控制结构。
4.通过本章的学习要求学生能熟练的掌握利用scanf和printf函数进行数据的输入和输出,并对算法及其描述方法(流程图)能够很好的把握,能够编些一般顺序结构的C语言程序。
第1节格式化输出printf(讲授1课时)
1、printf函数调用格式及注意事项
printf函数的功能,格式控制字符串的作用,格式控制符与表达式之间的对应关系,不同类型的表达式与不同格式转换符之间的对应关系,各种格式转换符的含义。
2、整数的输出
有符号整数输出时格式控制符的一般格式、辅助格式控制符的含义及作用,无符号整数输出时格式控制符的一般格式、辅助格式控制符的含义及作用。
3、实数的输出
实数输出时格式控制符的一般格式、辅助格式控制符的含义及作用。
4、字符和字符串的输出
字符和字符串输出时格式控制符的一般格式、辅助格式控制符的含义及作用。
第2节格式化输入scanf(讲授1课时)
1、scanf函数调用格式及注意事项
scanf函数的功能,格式控制字符串的作用,格式控制符的种类及含义,变量的地址与变量之间的关系。
2、利用scanf函数输入各种类型的数据
变量类型与格式控制符之间的关系,键盘缓冲区的含义。
第3节字符数据的非格式化输入、输出(讲授1课时)
1、字符数据的非格式化输入
与输入字符数据有关的常用库函数调用格式及功能【包括:getchar、getc、getche、getch等函数】,字符输入函数间的异同点。
2、字符数据的非格式化输输出
与输出字符数据有关的常用库函数调用格式及功能【包括:putchar、putc、puts等函数】,字符输出函数间的异同点。
第4节程序的控制结构(讲授1课时)
1、算法的基本概念及描述方法
算法的定义,算法的描述方法【包括:有自然语言、传统流程图、NS流程图、伪代码等】。
2、程序的基本结构
程序结构化的含义,程序的三种控制结构【包括:顺序、分支和循环】
第5章选择结构程序设计
C程序中语句的分类,if语句的三种基本形式【包括:简单if语句形式、if-else形式、if-else-if形式】,switch语句形式。
由关系运算符、逻辑运算符组成复杂的条件表达式;switch语句实现选择结构程序设计;选择结构的程序设计方法。
理解选择结构的含义与设计原则;掌握C语言语句的分类;掌握关系运算符、逻辑运算符和条件运算符的用法;掌握if、switch语句的使用方法,能有效进行选择结构程序设计。
2.要求教师尽可能地结合实例进行教学;让学生充分了解选择结构程序中语句执行的走向,以便更好地把握选择结构程序设计的方法和应用技巧;
3.要求学生能正确把握if语句与switch语句应用上的差异,并能熟练使用它们进行选择结构程序设计来解决一些实际问题。
第1节C程序中语句分类(讲授0.5课时)
1、语句的分类
语句的一般形式【包括:表达式语句、函数调用语句、复合语句、空语句、控制语句】。
2、语句的作用
各种类型的语句应用场合,复合语句中变量的作用范围。
第2节关系运算符、逻辑运算符和条件运算符(讲授1.5课时)
1、关系运算符和关系表达式
关系运算符的种类,关系运算符的优先级及结合性,关系表达式的一般形式,关系表达式的值及含义。
2、逻辑运算符和逻辑表达式
逻辑运算符的种类及运算规则,逻辑运算符的优先级及结合性,逻辑表达式的一般形式,逻辑表达式的值及含义,逻辑表达式求值顺序。
3、条件运算符和逻辑表达式
条件运算符的结合性,条件运算符的嵌套,条件表达式的一般形式及含义。
第3节选择结构的程序设计(讲授2课时)
1、if语句
if语句的三种基本形式【包括:简单if语句形式、if-else形式、if-else-if形式】,if语句的执行流程,if语句的嵌套使用注意事项,if和else的配对方法。
2、switch语句
switch语句的一般形式,switch语句执行流程,switch语句的局限性,break子句在switch语句中的作用,利用switch语句解决实际问题编程技巧。
第6章循环结构程序设计
(总课时:7课时,其中讲授5课时、课外学习与研讨2课时)
三种循环控制语句使用方法【包括:while语句、do-while语句、for语句】,循环嵌套。
循环条件的建立及循环控制变量的设置;break、continue子句在循环中的作用;循环结束的条件和方法;顺序、选择与循环三种控制结构的混合编程。
理解循环结构的含义;掌握C语言中三种循环结构的特点;掌握while、do-while、for、goto、break、continue语句的使用方法;掌握不同循环结构的选择及其转换方法;掌握混合控制结构程序设计的方法。
2.要求教师尽可能地结合实例进行教学;让学生充分了解循环程序中语句执行的走向,以便更好地把握循环程序设计的方法和应用技巧;
3.要求学生能正确把握三种循环结构应用上的差异,并能熟练使用它们进行循环程序的设计来解决一些实际问题。
第1节循环结构的程序设计(讲授2课时)
1、循环控制语句
三种循环控制语句的一般形式【包括:while语句、do-while语句、for语句】,循环执行流程,循环体的把握,循环条件的设定,循环控制变量的作用。
2、循环嵌套
嵌套循环执行流程,内循环、外循环换的定义和配合。
3、循环控制子句
循环体中break子句的功能及作用,continue子句的功能和作用,循环程序中正确使用break和continue子句的方法,利用break退出多重循环的方法,goto语句的作用与使用技巧。
第2节循环结构类型的选择及转换(讲授0.5课时)
1、循环结构类型的选择
选用的一般原则的把握。
2、循环结构的相互转换
不同循环结构循环条件的把握,循环控制条件的设置。
第3节循环结构程序设计举例(讲授2.5课时)
1、实例程序
循环程序的实用性和代表性,程序的难度把握。
2、循环设计的思想
算法设计方法及步骤,循环结构的选型。
第7章数组
数组的定义与引用;字符串;
利用数组进行排序的方法;二维数组的理解;字符串数组的定义与应用。
理解数组变量在内存中的存放形式;掌握一维数组和二维数组变量的定义和数组元素的引用方法;掌握字符串与字符数组的区别;掌握各种字符串库函数的用法。
2.要求教师尽可能地结合实例进行教学,特别是数组与内存之间的印象关系要尽可能讲解清楚;
3.要求学生充分把握数组的具体定义和操作,并能深刻认识数组的应用的重要意义及其应用的方法与技巧。
4.让学生能利用数组并结合先前学过的有关知识来编制一定难度的C语言程序解决有关实际问题。
第1节一维数组(讲授2课时)
1、一维数组的定义和引用
一维数组定义形式,数组在内存中的表示,数组的引用方法,数组名的含义。
2、一维数组的赋值
初始化赋值方法,程序中赋值方法。
3、一维数组的应用
冒泡排序算法的理解和把握,选择排序算法的理解和把握。
第2节二维数组(讲授1课时)
1、二维数组的定义和引用
二维数组定义形式,数组在内存中的表示,数组的引用方法,数组名的含义,二维数组的理解。
2、二维数组的赋值
几种初始化赋值方法,程序中赋值方法。
第3节字符串与数组(讲授2课时)
1、字符串的本质
字符串的结束标记;字符串的内存映像;
2、字符及字符串常用库函数
字符及字符串库函数的功能、参数、返回值及头文件【包括:gets、puts、strlen、strcpy、strcmp、stricmp、strncmp、strnicmp、strcat等函数】。
3、字符串数组
字符串数组的含义,字符串数组的内存映像,字符串数组的应用技巧。
第八章函数
(总课时:8课时,其中讲授6课时、课外学习与研讨2课时)
函数的定义和调用;参数传递方式;变量的作用域和生存期;变量的存储类型;函数的嵌套与递归。
函数参数传址调用方式的理解;静态存储类型与动态存储类型的区别;变量的作用域、生存期与存储类型;函数的递归调用。
3.重点讲述递归的概念及递归程序设计的思想和方法,特别是堆栈在递归中的作用,让学生学会利用递归程序来解决有关实际问题。
4.要求学生从结构化程序设计的角度来使用函数编程。
第1节函数概述及函数的定义与调用(讲授1课时)
1、函数的分类
函数的定义,函数分类形式,正确把握库函数方法。
2、函数的定义与调用
第2节函数参数的传递方式(讲授0.5课时)
1、值传递方式
值传递方式的特点,形参与实参所对应内存单元的差异,实参与形参之间的相会影响。
2、地址传递方式
地址传递方式的特点,形参对实参的影响,以函数名作为参数传递的特点。
第3节变量的作用域与生存期(讲授1课时)
1、局部变量的作用域与生存期
作用域、生存期的概念定义,局部变量的定义,局部变量作用域的含义,生存期的内涵。
2、全部变量的作用域与生存期
全局变量的定义,全局变量在程序中的作用及作用范围。
第4节变量的存储类型(讲授0.5课时)
1、存储类型的分类
内存的区域结构,动态存储区与静态存储区的含义,静态存储类型的变量及动态存储类型的变量的定义,变量存储类型种类。
2、变量的存储类型
自动变量、静态变量、外部变量、寄存器变量的定义格式,静态局部变量在函数中的作用域影响,不同源程序文件中变量的相互调用方法。
第5节函数的嵌套及递归调用(讲授1.5课时)
1、函数的嵌套调用
嵌套调用的含义,嵌套调用函数返回流程。
2、函数的递归调用
直接递归与间接递归的定义,递归函数的特点,递归程序的执行过程,递归工作栈的理解。
第6节函数的作用域与常用库函数(讲授0.5课时)
1、函数的作用域
内部函数的定义与一般形式,内部函数的作用域,外部函数的定义形式,外部函数的作用域。
2、常用库函数
数学函数、字符处理函数、字符串处理函数、数据类型转换函数。
3、函数的封装
函数封装的含义与作用。
第7节函数应用综合举例(讲授1课时)
大整数求和;英文短文单词分解及排序。
第九章指针
(总课时:9课时,其中讲授7课时、课外学习与研讨2课时)
指针的含义;指针变量的定义与引用;指针数组,数组指针,动态内存分配;指针与数组作为函数的参数;指针函数;函数指针;
指针数据类型的理解;二维数组的地址和指针概念;字符数组和字符指针的区别与联系;指向数组的指针与指针数组的区别;带参数的main函数的编程方法。
理解指针的概念;掌握指针变量的定义与引用方法;掌握指针与数组、字符串之间的联系;掌握动态内存分配和释放的方法;掌握带指针型参数和返回指针的函数的定义方法;掌握函数指针的用法。
2.要求教师从内存的角度帮助学生正确的理解C语言中指针的含义与作用;
3.要求学生正确地把握指针与数组、指针与函数之间的关系与应用;
4.学会利用指针编程来处理有关问题。
第1节指针变量的定义和引用(讲授1课时)
1、指针与指针变量的概念
指针的概念,指针与内存地址,指针变量的概念,指针与指针变量间的关系。
2、指针变量定义及应用
指针变量的定义格式,指针变量的赋值方法,零指针与空类型指针的含义,指针变量的应用方法,不同类型的指针变量与内存单元之间的关系,指针变量定义、赋值、调用流程。
3、指针和地址运算
指针变量的加、减运算含义,指针变量的关系运算内涵。
第2节指针与数组(讲授2课时)
1、数组的指针和指向数组的指针变量
数组的指针含义,指向数组的指针变量的含义,指针变量与数组之间的关系,利用指针对数组元素进行操作的方法。
2、指向多维数组的指针____数组指针
利用一级指针访问多维数组的方法,指针与二维数组之间的关系,二维数组的行指针与列指针的理解,数组指针的定义,利用数组指针操作二维数组的方法。
3、元素为指针的数组____指针数组
指针数组的含义,指针数组的定义,指针数组与数组指针的区别,指针数组的应用。
第3节指针与字符串(讲授1课时)
1、字符串的表示
字符指针变量表示字符串的定义格式,字符指针变量与字符串常量之间的关系。
2、字符串的引用
字符指针对字符串的操作方法【包括:逐个字符引用、整体引用】,字符指针变量与字符数组的区别。
第4节指针与动态内存分配(讲授1课时)
1、动态内存分配
2、多级指针
二级指针的定义与引用,二级指针的应用。
第5节指针与函数(讲授2课时)
1、指针作为函数参数
函数中利用形参指针对实参进行操作的方法,形参对实参的影响。
2、指针作为函数的返回值____指针函数
指针函数的定义格式,指针函数的返回值。
3、指向函数的指针____函数指针
函数指针的概念,函数指针变量的定义格式,函数指针变量的赋值,利用函数指针调用函数的方法与技巧。
4、带参数的main函数
命令行参数的理解,带参数的main函数的作用及意义。
第十章预处理命令
预处理命令;宏定义;文件包含;条件编译。
带参数的宏定义的理解;宏定义及引用;条件编译的使用及意义;
掌握#include、#define、#if、#ifdef、#else、#ifndef和#endif等命令的用法;掌握宏定义和宏替换的一般方法;掌握包含文件的处理方法;了解条件编译的作用和实现方法。
2.要求学生充分理解C语言中预处理命令的含义与作用,能在自己的程序中正确地使用预处理命令,特别是宏定义和条件编译。
第1节宏定义(讲授1课时)
1、不带参数的宏定义
不带参数的宏定义的一般形式及含义,宏替换原则,宏名的作用域。
2、带参数的宏定义
带参数的宏定义的一般形式及含义,参数替换,带参数的宏与函数之间的区别。
第2节文件包含与条件编译(讲授1课时)
1、文件包含
文件包含的含义,文件包含处理命令的一般格式,文件包含的优点。
2、条件编译
条件编译几种常用的形式,条件编译的意义,条件编译与分支语句的区别。
第十一章复杂数据类型
结构体;共用体;位域;枚举类型变量的定义和引用;线性链表。
嵌套结构体的成员引用,结构体指针指向的结构体变量成员的引用,向函数传递结构体指针的方法,结构体、联合体占用内存字节数的理解,线性链表的操作。
掌握结构体、共用体和枚举数据类型的定义方法;熟练掌握结构体、共用体和枚举变量的定义和引用方法;掌握结构数组的定义及其应用;掌握指向结构的指针的概念及其应用;了解线性链表的创建、插入节点、删除节点和撤销节点的算法;掌握利用复杂数据类型作为函数参数和返回值的函数定义方法。
2.要求学生深刻领会结构体类型的实质及其应用领域;
3.要求学生能正确把握线性链表来解决实际问题的方法和技巧;要求学生能运用复杂数据类型并结合指针来编写大型的应用程序;
第1节结构体(讲授2课时)
1、结构体类型的定义
结构体含义,结构体类型定义格式,结构体成员的理解。
2、结构体变量的定义、引用与赋值
结构体变量定义的一般格式【包括:间接定义法、直接定义法】,结构体变量的内存映像,结构体成员引用方式,结构体变量初始化赋值方法,结构体变量在程序中的赋值方法。
3、结构体变量内存分配问题透析
BC或TC、VC环境下结构体变量内存分配方案。
4、结构体数组
结构体数组的含义,结构体数组的定义及内存映像,结构体数组初始化方法,结构体数组引用方式。
第2节线性链表(讲授2课时)
1、线性链表概述及其结构
线性链表的含义,链表的逻辑结构,链表中节点的定义。
2、线性链表的基本操作
链表的创建、插入、删除、输出、销毁等
第3节联合体、位域及枚举类型(讲授1课时)
1、联合体
联合体类型的定义,联合体变量的定义和引用方法,联合体变量内存映像,联合体变量的赋值方法。
2、位域、枚举类型
位域的定义,位域成员含义,枚举类型的定义,枚举类型的含义及作用。
第十二章文件
文件指针;文件的打开、读写和关闭;文件的定位读写。
文本文件、二进制文件中数据的存储方式;文件指针与文件读写位置指针的区别与作用;文件的定位读写。
理解文件的概念;正确把握文本文件与二进制文件的区别;掌握文件的打开、读写、定位以及关闭的方法;掌握文件系统中有关文件操作的系统函数使用方法;能设计出对文件进行简单处理的实用程序。
2.要求学生深刻认识文本文件与二进制文件的差异。
3.要求学生能利用C语言中文件操作的有关函数编制文件操作的有关程序;
第1节文件的基本概念及分类(讲授0.5课时)
1、文件的基本概念
2、文件的分类
文本文件含义、二进制文件含义,二者之间的差异。
3、文件指针
文件指针的含义,文件指针的定义。
第2节文件的打开、读写和关闭(讲授1.5课时)
1、文件的打开与关闭
打开文件函数fopen的理解,打开文件方式,关闭文件函数fclose的使用及含义。
2、文件的读写
文件读写函数的理解【包括:fgetc和fputc、fgets和fputs、fread和fwrite、fscanf和fprinf】,文件读写函数选用原则。