首页 > 试题

c语言课程

更新时间:2025-12-27 18:37:21 阅读: 评论:0

排球进攻-泸州旅游


2023年3月11日发(作者:风水葫芦)

1

《C语言程序设计》教案

课程名称

C语言程序设计

总学分:4学分总学时:64学时其中:讲课44学时实践20学时

授课对象

10统招机电一体

考核方式

考查课程.总成绩:课堂参与占30%期末考试占70%(闭卷考试:程序编写题目)。

C语言是近年来国内外得到迅速推广使用的一种计算机语言。C语言程序设计课程是

计算机专业和信息管理专业的核心专业基础课,它功能丰富,表达能力强,使用灵活方便,

应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的优

点。既适用于应用软件编写,又适用于系统软件的编写。它是《数据结构》等后续专业

课的基础.是程序员、等级考试、一些高校研究生入学考试的必考课程,在计算机专业中

是一门举足轻重的课程,因此,学好C语言是非常重要的。

课程的性质和任务

《C语言程序设计》这门课是我校计算机系、电信系的专业基础课、是机械工程系、建筑

工程系等专业的公共必修课.作为计算机系的数据结构、c++、操作系统等课程的前导课

程,也是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行。

对计算机专业和理工类专业来说是一门必修的课程。

同时,这门课程也是“四川省非计算机专业学生计算机应用能力水平考试"二级考试

的主要语种之一。

课程的教学目标

本课程的教学目标是:通过理论和实践教学,使学生较好地掌握C语言各方面的知识,掌

握基本的程序设计过程和技巧,具备初步的高级语言程序设计能力,并能熟练应用TURBO

C集成环境进行C语言的编写、编译与调试,能应用C语言解决一般编程问题的水平。

2

一、C语言概述

重点:C程序结构

二、数据类型、运算符与表达式

重点:常用数据类型、常用运算符、数学公式转化为C语言表达式的基本能

力。

三、顺序结构程序设计

重点:C语句的种类、赋值语句、数据的输入输出及输入输出中常用的控

制格式。

四、选择结构程序设计

重点:关系运算符与逻辑运算符及其组成的具有逻辑值的表达式、二条分支

语句的格式及基本应用。

五、循环控制

重点:C构成循环的四种方法,尤其是后三种方法、break与continue语

句的基本作用。

难点:while语句;do—while语句;for语句;循环的嵌套;break与continue语

句。六、数组

重点:一维数组、二维数组的定义与引用;字符数组的定义与引用、常用字符串处

理函数及字符处理函数;数组的应用

难点:二维数组的定义与引用;字符数组;数组的应用

七、函数

重点:函数的定义;函数的参数和函数的值;函数的调用;函数的嵌套调用;函数的

递归调用;数组作为函数参数;变量作用域;量存储类别;

难点:函数定义、函数调用、函数声明等基本基本概念;函数的嵌套调用与递归调用;

数组作为函数的参数、变量的存储类别与作用域。

八、编译预处理

重点和难点:有参宏、无参宏的定义与应用;文件包含的基本概念。

九、指针

重点和难点:指针与地址的基本概念、指针与变量的关系;指针与数组;指针与字符串、

指针数组与二级指针;指针的应用

十、结构体与共用体

重点:结构体类型的说明及结构体类型变量的定义;结构体变量的引用;结构体变

量的初始化;结构体数组;指针与结构体数组;共用体;枚举类型

难点:结构体的基本概念、结构类型及变量的定义、结构数组;用指针处理链表;共用

体及枚举类型的基本概念、typedef的基本概念.

十一、文件

重点和难点:文件的基本概念;文件的打开、关闭、常用读写方法。

十二、位运算及程序调试

教材、

参考书

教材:《C程序设计》(第三版)谭浩强著清华大学出版社2005

参考书:《C语言程序设计案例教程》张基温等清华大学出版社

3

《C语言程序设计》教案

授课内容第1章C语言概述

教学目的

和要求

了解C历史,名称来源、C特点

掌握C程序基本结构

了解C程序上机步骤

重点

难点

1、法成分(标识符、注释)

2、C程序基本结构(C程序由函数组成、main主函数、C函数基本结构)

引言

语言:人-人语言交流;聋哑人-手势语;人机-计算机语言

C语言是一种流行的计算机高级语言,C语言适合于编写系统软件,也可以编写应用程序。

讲授

一、语言出现的历史背景

(1)C语言的发展源于人们希望用高级语言编写操作系统.(C-BCPL第二字母)

ALGOL60(高级语言)->CPL(硬件支持)-BCPC-〉B->C->标准C->ANSIC—>ISOC

(2)语言既具有高级语言特性,又具有低级语言特性—中级语言。

二、C语言的特点

C语言是从ALGOL60、CPL发展而来,既具有一般高级语言特性,又具有低级语言特性。

8个特点。

三、C语言基本语法成分(重点:标识符,注释)

(1)C语言字符集。字母、数字、特殊字符.

(2)标识符(名字),C语言标识符定义规则及注意事项。

说明:教师备课笔记由学校自订式样并附后

(3)关键词(保留字).参阅P234附录V。

(4)运算符。参阅P233附录IV.

(5)分隔符:逗号,空格。起分隔、间隔作用.

(6)注释符。/*。。.*/,编译时编译系统忽略注释。作用:注释、调试程序。

四、C程序结构(3个C程序引入C程序结构)

3个C程序例子(最简单C程序、有多条语句的C程序、调用自定义函数的C程序)

C程序结构:

(1)C程序由函数组成

函数是C程序的基本单位。程序至少有1个main()(例1.1),也可以包含1个main()

和若干个用户定义的其它函数(例1。3)。

C程序通过函数的调用完成程序的功能。(例1。1,1.2,1。3)

被调用的函数可以是系统库函数(例1。1)或用户自定义函数(例1。3)。

特别强调:1个程序至少应有1个main函数,main()函数是整个程序的执行起点。main()

函数的位置无关紧要。

(2)函数结构(用例1.3max,main分别说明)

函数头:函数返回类型函数名(函数参数类型函数形式参数,。。。)

函数体:包含声明+执行部分

4

《C语言程序设计》教案

授课内容第2章基本语法基础-数据类型

教学目的

和要求

了解C语言丰富的数据类型;常量、变量的概念

掌握变量定义原则和符号常量定义方法

掌握常用基本数据类型(整型、实型、字符型)数据的常量表示、机内存储、变量分类

以及掌握正确选择数据类型

了解数值型数据混合运算及类型转换规律。

重点

难点

重点:

变量定义原则

常用基本数据类型(整型、实型、字符型)数据的常量表示、机内存储、变量分类,

正确选择数据类型

难点:

整型数据的机内表示,字符数据的机内表示

讲授

一、常量与变量

1、常量概念、常量类型,直接常量/符号常量。

2、变量概念、变量名/变量在内存中占据的单元/变量值/变量地址。

变量先定义后使用。

二、整型数据(内存中补码存储)

1、整型常数.10,8,16进制表示

2、整型变量分类:基本整型int/长/短;有符号/无符号。观察数据表达范围+字节数

3、整型变量定义、初始化。例2-2。

4、整型数据的溢出。例2-2A。

三、实型数据

1、实型常量表示。小数形式,指数形式e.

2、实型变量分类.重要的两种float、double。观察数据表达范围+字节数+有效数字

3、实型数据的舍入误差。例2-3A。

四、字符型数据

1、字符常量表示。直接表示/转义表示(特殊的转义字符,一般字符也可以转义表示).

特殊转义字符对显示/打印的控制作用

2、字符变量-1个字节,char关键词。

3、字符数据的存储-ASCII码/二进制存储-C语言可以将字符看做很短的整数处理。

例2-7A,例2—8A可以看出字符数据的具有整数特性。

4、字符串常量.“"括字符序列,尾部有‘0’结束。

五、数值型数据混合运算(转换为同类型运算)

1、自动隐式转换.规则:

(1)类型不同,转换为相同类型,然后运算

(2)低类型向高类型转换(图)

(3)赋值转换。“=”右边类型=>左边类型,然后赋值

5

《C语言程序设计》教案

授课内容第2章基本语法基础——运算符与表达式

教学目的

和要求

了解:C语言的丰富运算符,丰富的运算符可以构成灵活的表达式

掌握算术、赋值、逗号运算符及它们构成的表达式.

掌握运算符的优先级、结合性规律。

重点

难点

重点:

算术、赋值、自增/减运算符及它们构成的表达式

运算符的优先级、结合性规律。

6

引言

C语言运算符丰富,C语言丰富的运算符构成C语言丰富、灵活的表达式。

本章主要介绍算术运算符(包括自增自减运算符)、赋值运算符、逗号运算符.

讲授

一、算术运算符和算术表达式

1、算术运算符(+、-、*、/)P23.表3-2。

(1)整除的结果为整数,结果向0取整,实质就是舍去小数。

(2)%,要求操作数均为整型。余数的符号与被除数符号相同.例如:—8%5=-3;8%—

5=3

2、算术表达式

注意:C语言算术表达式的书写形式-数学表达式的书写形式区别:(1)-(4).

3、(算术)运算符的优先级与结合性(P。233附录IV)

先按运算符的“优先级别”高低次序执行;优先级别相同,则按规定的“结合方向"处理。

为了清晰起见可用圆括号“()”强制。

例1:表达式a-b*c等价于a-(b*c)。例2:a—b+c,到底是(a-b)+c还是a—(b+c)?

(b先与a运算还是先与c参与运算?)例3:分析x=y=z=3+5

二、赋值运算符、赋值表达式

1、赋值运算符、赋值表达式

(1)赋值运算符

(2)赋值表达式。一般形式:〈变量〉〈赋值符〉〈表达式〉

(3)赋值表达式的求解过程:赋值+整个赋值表达式的值.例如:x=10+y;

说明:(1)左变量(2)不具“等”含义(3)类型转换(4)赋值表达式值

2、复合赋值运算符

复合赋值表达式形式:变量〈双目运算符〉=表达式等价:变量=变量<双目运算符>表达

例如:n+=1等价于n=n+1;x*=y+1等价于x=x*(y+1)

3、赋值运算符、赋值表达式举例。

(1)a=5(2)a=b=5(3)a=(b=4)+(c=3)(4)假如a=12,分析:a+=a—=a*a(答

案:—264)

三、自增、自减运算符

单目运算符,使变量的值增1或减1。如:++i,i++(等价i=i+1)--i,i-(等价

<=>i=i—1)

注意:(1)-(4);(前置运算):先自增、减,再参与运算;(后置运算):先参与运算,(整

个表达式运算结束后)再自增、减.

《C语言程序设计》教案

授课内容第4章顺序程序设计

教学目的

和要求

了解C语言语句分类:控制语句,表达式语句,复合语句

掌握表达式语句,复合语句的构成

掌握格式化输入/输出函数,常用其它输入/输出函数的使用。

7

重点

难点

重点:

表达式语句,复合语句的构成

格式化输入/输出函数

难点:

格式控制项的各种形式

引言

程序设计通常采用三种不同的程序结构:顺序,选择(分支),循环(重复).

顺序结构是最简单、最基本的程序结构。通过本章学习,可以开始简单的C程序设计.

讲授

一、C语句概述

C程序的总体层次结构:程序、模块,函数,语句。

语句:是向计算机发出的用来完成一定操作任务的指令。

C语言语句分类:

1、控制语句(9种)

2、表达式语句(典型的赋值,函数调用、空语句)

3、复合语句(相当一条语句,哪里有语句,哪里就可以用复合语句)

二、输入/输出及其C语言的实现(补充)

1、计算机由主机(CPU、内存),外围设备(输入/输出设备),接口组成

2、主机向外部设备-“输出”,外部设备向主机-“输入”.输入/输出相对主机而言。

3、C语言本身不提供输入/输出语句,输入/输出操作由函数实现。

三、格式输入/输出

1、printf函数(格式输出函数)

(1)格式:printf(格式控制字符串,输出表列)

格式控制字符串:(格式控制项、普通字符)

输出表列:一般是一个表达式,简单地,可以是变量.

(2)格式控制字符d、o、x/X、u、c、s、f、e/E、g/G构成控制项的各种常见形式。

表3—1,3-2。

注意:不要死记硬背,要总结规律。一般形式:%±mnh/l格式字符

2、scanf函数(格式输入函数)

(1)格式:scanf(格式控制字符串,输入表列-地址列表)

格式控制字符串:含义与printf类似

输入表列-地址列表:变量的地址或字符数组的首地址

(2)格式控制字符、格式控制项与printf类似,表3—3,4.一般使用更加简单形式。

注意:数据读入结束情况:遇空格、TAB、回车;遇非法输入;指定宽度结束。

四、其它输入/输出函数

1、putchar函数一般形式:putchar(字符表达式);

2、puts函数一般形式:puts(char*str);

3、gets函数一般形式:gets(char*str);

8

五、顺序结构程序设计举例

✓例4-3:输入三角形的三边长,求三角形面积。

✓例4—5:求ax2+bx+c=0方程的根.a,b,c由键盘输入,设b2-4ac>0。

六、上机演示和学生操作

1、各个数据输入函数的使用;

2、各种数据输出格式的控制。

课堂提问讨论

小结,作业布置

C语言的格式输入/输出的规定比较繁琐,重点掌握最常用的一些规则和规律即可,其它部

分可在需要时随时查阅.

《C语言程序设计》教案

授课内容第5章选择结构程序设计一

教学目的

和要求

理解条件-产生逻辑值的表达式

掌握关系运算符、关系表达式;逻辑运算符、逻辑表达式

掌握if语句

重点

难点

重点:

关系运算符、关系表达式

逻辑运算符、关系表达式

难点:

嵌套if语句

9

引言

a)选择结构(分支结构):根据条件,在几个可选择分支中进行选择。

C语言的选择结构可以用(1)if语句(2)switch语句(3)“条件运算”表达式实

现.

b)举例说明:例5—1,用if语句构成的选择结构(分段函数)

c)选择结构最重要的是“选择结构的条件”。C语言中的条件是采用能产生逻辑值

“真、假”的关系运算和逻辑运算来表示的。

讲授

一、关系运算符和关系表达式

“关系运算”(比较运算)即,将两个值进行比较,判断是否符合或满足给定的条件.

1、关系运算符及其优先次序

a)C语言提供6种关系运算符。表5-1。

b)关于优先次序:前4种高于后两种;关系低于算术;关系高于赋值

例5—2。

2、关系表达式

关系表达式的值是逻辑值,即“真”“假”.C语言没有逻辑型数据,1-“真”,0-“假”。

例5-3。

二、逻辑运算符和逻辑表达式

“关系运算"(比较运算)即,两个逻辑值的运算。

1、逻辑运算符。3种,表5—2。

(1)&&逻辑与,(2)||逻辑或,(3)!逻辑非

2、逻辑运算符的优先顺序:

(1)!—&&-||,“!”为三者中最高.

(2)&&||低于关系运算符,!高于算术运算符。

例5—4.

3、逻辑表达式

(1)逻辑值只能是0/1,但判断量是否为“真”时,以0-“假”,非0-“真”。例

5-5,6。

(2)逻辑运算的短路现象。例:a&&b&&c,a||b||c

(3)可以用一个逻辑表达式来表示一个复杂的条件。例:闰年标准.

三、if语句

if语句用来判定所给定的条件是否满足,即结果(真或假)决定执行给出的两种操作之

一.

1、if语句三种形式

(1)if(表达式)语句。(2)if(表达式)语句1el语句2

(3)if(表达式1)语句1…elif(表达式m)语句mel语句m+1

if语句使用说明。(1)(2)(3)

if语句使用例子:例5—1:两数交换;例5—2:三数排序.

2、if语句的嵌套:if语句的嵌套:if语句的if块或el块中,又包含一个if语句。

(1)if语句嵌套一般形式。

(2)el语句匹配问题

例5-3:分段函数

课堂提问讨论

小结、作业布置

10

《C语言程序设计》教案

授课内容第5章选择结构程序设计二

教学目的

和要求

掌握条件运算符、条件表达式

掌握switch—ca语句

重点

难点

switch—ca语句

引言

d)复习关系运算、逻辑运算、if语句

e)引入简单的条件运算符及表达式、以及开关语句

讲授

一、条件运算符、条件表达式

在if语句中,在表达式为“真”和“假”时,都只执行一个赋值语句给同一个变量

赋值时,可以使用简单的条件运算符来处理。

例如:if(a>b)max=a;elmax=b;<=>max=a〉b?a:b;

(1)条件表达式的一般形式:表达式1?表达式2:表达式3

(2)条件表达式说明(5点)

例5-4.

二、switch-ca语句(多分支选择语句/开关语句)

3、switch一般形式

4、switch语句说明。(1)-(7)

三、分支程序例子

例5。5写程序,判断某一年是否是闰年.

例5.6求一元二次方程ax2+bx+c=0的根。

例5.7运输公司对用户计算运费。

课堂提问讨论

小结、作业布置

思考题、

课后作业

《教材》:P58。1-14

实验一:编写求一元二次方程的根。

主要

参考资料

四川省二级考试题库

课后自我

总结分析

备注

(对本章节的课堂教学需补充说明的内容)

《C语言程序设计》教案

11

授课内容第6章循环结构程序设计一

教学目的

和要求

掌握while当型循环、dowhile直到型循环、for循环

重点

难点

while当型循环、dowhile直到型循环、for循环的形式、执行过程、使用注

意问题

引言

重复执行就是循环.重复工作是计算机特别擅长工作之一.

重复执行不是简单地重复,每次重复,操作的数据(状态、条件)都可能发生变化。

重复的动作是受控制的,C语言提供三种循环控制语句,构成了三种基本的循环结构。

讲授

一、while语句(当型循环)

1、while语句的一般形式是:

2、执行过程是:(流程图、N—S图)

3、使用while注意的问题。

例6-1:利用while语句,编写程序计算1+2+3+…+100。

结论:编制循环程序要注意的几个问题。

二、do—while语句(直到型循环)

1、do-while语句的一般形式

2、do—while执行过程(流程图)

3、do—while说明:

例6—4:利用do—while语句计算机1+1/2+1/4+…+1/50.

三、for语句(当型循环)

1、for语句的一般形式(给出while循环的对应结构)

2、for循环执行过程(流程图)

例6-6:写一个程序,计算半径为0。5,1.5,2.5,3.5,4.5,5。5mm时圆的半径.

例6—7:求正整数n的阶乘n!,其中n由用户输入。

3、for语句最容易理解、最常用的形式

4、for语句说明(6点)。C语言的for语句功能强大,使用灵活。

课堂提问讨论

小结、作业布置

思考题、

课后作业

《教材》:P81.1—12

实验二:准备。

主要

参考资料

四川省二级考试题库

课后自我

总结分析

备注

(对本章节的课堂教学需补充说明的内容)

《C语言程序设计》教案

12

授课内容第6章循环结构程序设计二

教学目的

和要求

三种循环结构的比较。

掌握break;continue;

通过应用例子进一步掌握循环结构

重点

难点

break;continue;功能,区别。

通过应用例子进一步掌握循环结构

引言

复习3种循环结构、引入3种循环的比较、进一步加深学生对3种循环结构的理解。

讲授

四、几种循环的比较

1、循环结构的基本组成部分(4部分)

2、几种循环的比较.一般相互可以替代,但具体形式有些差异。

例6-9:将50—100之间的不能被3整除的数输出(用三种循环结构实现)

五、break和continue语句

1、break语句

(1)break语句的功能

(2)break语句说明

例6-10:从键盘上连续输入字符,并统计其中大写字母的个数,直到输入“换行"字符。

2、continue语句(翻译为“继续”(循环))

(1)continue语句的功能

(2)continue/break区别

例6—12:从键盘输入30个字符,并统计其中数字字符的个数

六、应用举例

例6-14:从键盘输入一个大于2的整数n,判断是不是素数。

例6—15:求100-200之间的所有素数。

例6-16:输出下三角99乘法表

例6—17:求Fibonacci数列的前50项。(最好在数组,函数递归部分介绍)

课堂提问讨论

注意到例6—15:外层n的循环,循环变量的修正是:“n=n+2"(即就是每次加2),为什么?

(因为只要检查奇数,偶数能被2整除,一定不是素数)。

小结、作业布置

思考题、

课后作业

实验二:编写100以内的所有素数。

主要

参考资料

四川省二级考试题库

课后自我

总结分析

备注

(对本章节的课堂教学需补充说明的内容)

注:此页针对具体授课内容填写

《C语言程序设计》教案

13

授课内容第7章数组一

教学目的

和要求

数组的基本概念

一维数组定义、初始化、引用;最大值、冒泡排序、选择排序算法。

二维数组定义、初始化、引用;多维数组

重点

难点

重点:

一维数组定义、初始化、引用

求最大值、冒泡排序、选择排序算法

矩阵操作

难点:

冒泡排序、选择排序算法

引言

基本数据类型-构造类型的数据-数组

数组、数组元素、数组的下标、数组的维数

例如:inta[10];一维数组可以看作一个数列,向量。

例如:floatb[3][3];二维数组可以看作一个矩阵。

讲授

一、一维数组

1、一维数组的定义类型说明数组名[整型常量表达式]

一维数组定义说明.(1)-(5)

2、一维数组的初始化的几种形式(1)(2)(3)

3、数组元素的引用。

数组元素的引用说明:(1)(2)(3)

例7-1:数组元素的引用例子.

4、一维数组的应用例子

例7-2:从键盘输入10个整型数据,找出其中的最小值并显示出来。

例7—3:采用“冒泡法"对任意输入的10个整数按由小到大的顺序排序。

例7—4:采用“选择法”对任意输入的10个整数按由大到小的顺序排序。

二、二维数组(注意:类比一维数组)

1、二维数组的定义

2、二维数组的初始化的几种形式(1)-(5)

3、二维数组元素的引用

例7-5:二维数组元素的引用的例子(自学)-构造、打印单位矩阵。

思考:下标是从1开始使用的,哪些元素在此例子中未使用?它们的值是多少?(随机

值)

4、二维数组应用举例

例7—6:分别计算矩阵的两条对角线(主、辅对角线)上的元素之和。

例7—7:找出矩阵所有元素中的最大值。

课堂提问讨论

思考题、

课后作业

《教材》:P101.1-10

实验三:冒泡排序.

《C语言程序设计》教案

14

授课内容第7章数组二

教学目的

和要求

字符数组定义、初始化、引用

字符串与字符数组

字符串处理函数

字符数组应用

重点

难点

重点:

字符串与字符数组;字符串处理函数

难点:

字符串与字符数组;字符串处理函数

引言

复习数组概念,数组定义、初始化、元素引用方法。引入字符数组(元素为字符)。

讲授

三、字符数组

字符数组,字符数组的每个元素是一个字符;

一维字符数组可以存放字符串;二维字符数组可以存放多个字符串。

字符数组可以逐个元素处理,若存放的是字符串,那么还可以直接调用字符串处理函数

处理。

1、字符数组的定义、初始化及引用-与一般数组类似。

2、字符串与字符数组

(1)字符串与字符数组。存放的内容。

(2)字符数组的初始化(除了一般数组的初始化方法外,增加了一些方法)

例7-8.两种字符数组初始化方法的区别-有无串结束标志.参阅p94.

(3)字符数组的输入输出(两种形式:逐个字符输入/输出,整串输入/输出)

例7-9:逐个字符输入/输出.参阅p94.

例7-10:整串输入/输出。P95。

3、字符串(字符数组)处理函数

(1)字符串输入,输出函数:gets、puts

(2)字符串处理函数:strlen、strcat、strcpy、strcmp、

例7—11:字符串输入/输出应用举例(P.96)

例7—12:求字符串长度示例(P97)

例7-13:字符串连接示例(P97)

例7—14:字符串复制示例(P98)

例7—15:字符串比较示例(P99)

4、字符数组应用举例

例7-16:由键盘任意输入一个字符串和一个字符,要求从该字符串中删除所指定的字符.

例7—17:由键盘输入三个字符串,找出其中的最大串。(字符串库函数的应用)

课堂提问讨论

小结、作业布置

思考题、

课后作业

《C语言程序设计》教案

15

授课内容第8章函数一

教学目的

和要求

掌握函数定义、调用、声明;函数参数传递方式

重点

难点

重点:二级考试的重点

函数定义、调用、声明

函数参数传递方式

难点:

函数参数传递方式-传址(尚未学习指针,用数组举例)

引言

一、函数概述

1、C语言的函数.C语言的函数是子程序的总称,包括函数和过程。

C语言函数可以分为库函数、用户自定义函数

2、C语言的程序由函数组成,函数是C语言程序的基本单位,程序的总体功能通过函数

的调用来实现。其中,main起点(图)

3、使用函数的意义(补充)(1)-(4)

4、函数的一些概念:主函数、其它函数;主调函数、被调函数;库函数、用户自定义函

数;无参函数、有参函数;无返回值函数、有返回值函数

二、函数的一般形式-函数应当先定义,后调用。

函数定义的一般形式及说明(1)(2)

例8-1:输入三个整数,求三个整数中的最大值,打印。思考问题。

三、函数的参数和返回值

1、形式参数

2、实际参数

3、参数的传递。实参传递给形参(1)传值(2)传址。注意问题:(1)—(4),图示。

由于尚未学习指针,所以传址用数组举例

4、函数返回值.return语句及说明.

四、函数的调用

1、函数调用的一般形式及说明(单独语句/表达式中、参数相容)

例8—3:以表达式的形式进行函数的调用.(自学)

2、函数调用时数据的传递—参数传递、函数的返回值、全局变量

例8-4:求学生平均成绩。P110。(注意参数传递的是数组的地址)

3、函数的声明

例8—5:函数声明例子.P112.

五、函数的嵌套调用和递归调用

函数允许嵌套调用和递归调用。递归调用是嵌套调用的特例。

f)函数的嵌套调用

例8-6:计算两整数的最小公倍数。P113.

g)函数的递归调用

(1)函数的递归调用

(2)使用递归调用解决问题的方法

(3)递归调用过程(递推/回归两个阶段)

《C语言程序设计》教案

16

授课内容第8章函数二

教学目的

和要求

掌握变量作用域、生命期

掌握插入排序

重点

难点

重点:

变量作用域、生命期

插入排序

难点:

变量作用域、生命期

插入排序

引言

复习函数定义、调用、参数传递方式,提出各个函数同名变量问题,进而引入变量作用

域概念。

讲授

六、变量的作用域(有效范围、可见性)

变量的作用域:变量的有效范围或者变量的可见性。变量定义的位置决定了变量的作用

域。

变量从作用域(变量的有效范围,可见性)的角度可以分为:局部变量,全局变量。

(图)

1、局部变量(函数体内变量、形参变量、复合语句内变量)-互不干预、动态分配

例8—8:各函数局部变量同名的应用示例.P116—117。

2、全局变量(所有函数之外-文件作用域、程序作用域)

全局变量可以和局部变量同名-坐井观天

例8-9:全局变量、局部变量同名的应用示例。P118。

例8-10:全局变量、局部变量的应用示例。P118。

七、变量的存储类别(生存期、生命期)

变量从空间上分为局部变量、全局变量.

从变量存在的时间的长短(即变量生存期)来划分,变量还可以分为:动态存储变量、静

态存储变量。变量的存储方式决定了变量的生存期。

C语言变量的存储方式可以分为:动态存储方式、静态存储方式。

(图)

全局变量全部是静态的;局部变量可以是静态,也可以是动态(auto,register)。

例8—11:寄存器局部变量的应用。P120.(完成n+(n—1)+(n—2)+。.。+1)

例8-12:静态局部变量的应用示例。P121。

八、内部函数和外部函数

默认是外部函数

九、函数应用举例

例8-14:字符串逆序。P124。

例8—15:求矩阵最大元素。P124-125.

例8-16:利用插入法将10个字符从小到大进行排序。P125—126.

课堂提问讨论

小结、作业布置

《C语言程序设计》教案

17

授课内容第9章编译预处理

教学目的

和要求

了解编译过程和编译预处理

掌握宏定义、文件包含

重点

难点

重点:

宏定义、文件包含

难点:

带参数宏定义

引言

复习程序实现过程,引入实际编译两个阶段:编译预处理,编译,更广义的编译还包括连

接。

编译预处理,编译指令

讲授

一、宏定义

宏定义

宏定义分为不带参数的宏定义和带参数宏定义。

1、不带参数的宏定义

(1)不带参数宏定义格式

(2)宏调用

(3)宏展开

举例

宏使用说明:(1)-(9)

2、带参数宏定义

(1)带参数宏定义的格式

(2)带参数宏定义展开规则

举例

带参数宏使用说明:(1)-(5)

二、文件包含

1、文件包含图示

2、文件包含说明:(1)—(4)

课堂提问讨论

小结、作业布置

思考题、

课后作业

《教材》:P133。1、2

主要

参考资料

课后自我

总结分析

《C语言程序设计》教案

授课内容第10章指针-指针基础理

18

教学目的

和要求

指针的基本概念,变量访问方式;指针变量定义、赋值、引用。

指针作为函数参数。

重点

难点

重点:

指针的基本概念;指针变量定义、赋值、引用

引言

一、地址(指针)、地址变量(指针变量)概念及变量的存取方式

1、内存、内存地址-物理存储器的概念(补充)

2、变量、变量名、变量的地址、变量值—高级语言的存储器概念

3、指针、变量的指针、指针变量

4、系统访问变量的两种方式

(1)直接访问—按变量名、按地址(本质按地址)

(2)间接访问

二、指针变量的定义(变量先定义后使用)

1、定义格式:

2、说明:(1)指针变量基类型-指针变量指向数据的类型

(2)指针变量存放地址值,本身占用空间2字节

三、指针变量的赋值(使用未赋值指针等同于向一个随机的内存中写入数据)

1、将地址直接赋值给指针变量。例如,float*f=malloc(4);

2、将变量地址赋值给指针变量.例如:floata,*p;p=&a;

四、指针变量的引用

1、&运算符(取地址运算符)2、*运算符(指针运算符、间接访问运算符)

例10-1,P137.指针变量定义、赋值、引用例子.

五、指针变量作为函数的参数

变量可以作为函数参数,指针变量同样可以作为函数参数。使用指针作为函数参数,

可以在函数中对指针所指向变量的值进行处理(修改).

指针作为函数参数,本质上同样是单向传值,但是由于传递的是地址值,所以可以

通过地址值间接修改形参、实参共同指向的变量。

例10-2:输入a,b两个数交换后输出。

在swap函数中使用两个指针作为函数参数,对两个指针所指向变量值进行交换.

结论:

1、要在被调用函数中,修改主调函数的变量值应当:

(1)将主调函数变量的地址传递给被调用函数,就是说函数应当传递的是变量的地址。

(2)被调用函数的形参应当使用指针变量接受主调函数的地址值。

(3)在被调用函数中通过形参指针变量间接访问,修改实参、形参地址所共同指向的变

量。本例的操作是交换两个指针变量所指向的变量。

2、函数使用指针作为参数,可以增加主调函数与被调函数之间数据沟通的渠道。

《C语言程序设计》教案

授课内容第10章指针—数组的指针和指向数组的指针变量

19

教学目的

和要求

数组的指针及指向数组(或数组元素)指针变量

指向数组的指针作为函数参数

指向多维数组的指针

字符串指针、函数指针、指针数组和指针的指针

返回指针值的函数

重点

难点

数组的指针及指向数组(或数组元素)指针变量

指向数组的指针作为函数参数

指向多维数组的指针

字符串指针、函数指针、指针数组和指针的指针

返回指针值的函数

引言

复习指针基本概念,指针变量定义、初始化、引用。本节介绍指针变量的应用-数组的

指针。数组:相同类型元素构成的有限、有序的序列;数组元素的指针-数组元素的地址;

数组的指针-数组的地址,数组的起始地址,第一个元素的地址(首地址)。C语言用数

组名代表数组的起始地址(首地址)。

例如:inta[10];数组的指针-a或&a[0],

讲授-指针应用(数组的指针、指向数组的指针变量)

一、指向数组的指针变量

1、指向数组的指针变量:就是指向数组元素的指针变量,也就是指向基类型的指针变量

并将其初始化指向数组。

例如:数组inta[10];其中每个元素为整型变量。可以定义一个指向整型变量的指针

变量int*p;并将p初始化为&a[0]或a。此时可以将p称为指向数组的指针变量。

2、数组的指针变量的定义和初始化

数组基类型*p;p=数组名;/*p=&数组名[0]*/

或:数组基类型*p=数组名;

二、通过指针引用数组元素(假设inta[100];int*p=a;即指针p指向数组)

1、指针a+i、指针变量p+i的含义.存在a[i]、是否有p[i]?-C允许p[i]!

2、指针与数组的关系。数组元素可以用下标访问,也可以用指针访问。

3、通过指针引用数组元素。

(1)数组元素的地址表示:&a[i],p+i,a+i。

(2)数组元素的访问:a[i],*(p+i),*(a+i)。

(3)指向数组的指针变量,数组名在许多场合可以交换使用。a[i]甚至可以表示为p

[i]。

注意:

(1)引用数组元素可以采用下标法和指针法。(假设p=a)

下标法:a[i],p[i];指针法:*(a+i),*(p+i)

(2)数组名是常量指针,指向数组的指针变量是变量。例10-3.P141—P142.

(3)注意:使用数组的指针变量,如果改变了其值,那么应当关注其当前指向的位置.必

要时可以重置指针。参阅P143例子.(详细分析见教材p143)

《C语言程序设计》教案

授课内容第11章结构体,共同体

20

教学目的

和要求

结构体类型、变量的定义及初始化,结构体变量的引用

结构体数组,结构体指针,联合体、枚举、typedef

重点

难点

结构体类型、变量的定义及初始化,结构体变量的引用

结构体数组,结构体指针,联合体。

引言

例子:学生信息管理系统

讲授

一、结构体类型

1、结构体类型和结构体变量

(1)结构体类型定义的一般形式例如:定义关于学生信息的结构体类型。

(2)结构体变量的定义(三种方法)

先定义结构体类型,再定义结构体变量(概念、含义相当清晰)

定义结构体类型的同时定义结构体变量

直接定义结构体变量(不给出结构体类型名,匿名的结构体类型)

2、结构体变量的引用

(1)引用结构体变量中的一个成员.结构体变量名。成员名

(2)成员本身又是结构体类型时的子成员的访问—使用成员运算符逐级访问

(3)同一种类型的结构体变量之间可以直接赋值

(4)不允许将一个结构体变量整体输入/输出

5、结构体变量的初始化

二、结构体数组

结构体数组-数组元素的类型为结构体类型的数组

1、结构体数组的定义

类似结构体变量定义,只是将“变量名”用“数组名[长度]”代替),也有3种方式。

2、结构体数组的初始化

三、结构体指针变量

1、结构体指针变量

(1)结构体指针变量的定义

(2)通过结构体指针变量访问结构体变量的成员:

(*结构体指针变量名).成员名结构体指针变量名—〉成员名

2、结构体变量、结构体指针变量作函数参数

四、共同体及应用

五、枚举及Typedef

点名、课堂提问讨论

小结、作业布置

《C语言程序设计》教案

授课内容第11章位运算

21

教学目的

和要求

位运算及应用

重点

难点

位运算应用

引言

讲授位运算

位运算就是针对二进制位的运算.位运算的操作对象一般是整型或字符型.

➢左移“<<"运算符

➢右移“>〉”运算符

➢按位取反“~”运算符

➢按位位与“&”运算符

➢按位位或“|”运算符

➢按位异或“^”运算符

点名、课堂提问讨论

小结、作业布置

思考题、

课后作业

《教材》:P200.1—3

主要

参考资料

本章为二级考试的重点

课后自我

总结分析

备注

(对本章节的课堂教学需补充说明的内容)

《C语言程序设计》教案

授课内容第12章文件

教学目的

和要求

文件基本术语

文件指针

文件打开/关闭

文件读写,文件定位

重点

难点

文件打开/关闭(函数)

文件读写,文件定位(函数)

22

引言

数据的永久保存、中间数据、数据的传递(需求)

讲授

一、文件概述

1、文件

2、文件名

3、磁盘文件,设备文件

4、ASCII文件、二进制文件

二、文件类型指针

1、文件类型(结构体)-FILE类型

2、文件指针变量(文件指针)

三、文件打开/关闭

对文件的操作的步骤:先打开,后读写,最后关闭。

1、文件的打开(fopen函数)。关于打开方式,可以参看p204,表12-1,p205,表

12-2。

2、文件的关闭(fclo函数)

四、文件读写

常用的文件读写函数:

1、字符读写函数:fgetc,fputc

2、字符串读写函数:fgets,fputs

3、格式化读写函数:fscanf,fprintf

4、数据块读写函数:fread,fwrite

五、文件定位

1、文件顺序读写

2、文件随机读写

3、文件位置指针

4、文件位置指针函数

(1)rewind重返文件头函数

(2)fek位置指针移动函数

(3)ftell获取当前位置指针函数

可以通过文件位置指针函数,实现文件的定位读写。

本文发布于:2023-03-11 12:59:42,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/e/action/ShowInfo.php?classid=88&id=8070

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:c语言课程.doc

本文 PDF 下载地址:c语言课程.pdf

下一篇:中国古建筑
标签:c语言课程
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|