程序设计教学教案124_第1页
程序设计教学教案124_第2页
程序设计教学教案124_第3页
程序设计教学教案124_第4页
程序设计教学教案124_第5页
已阅读5页,还剩121页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教学进程第一章程序与程序设计语言[教学目的]:C语言的主要特点、C语言程序的构成及C语言程序的开发环境。掌握VisualC++6.0的程序开发环境及C语言程序的开发流程。了解程序与程序设计语言的基本概念,程序设计语言的发展过程等。[教学重点]:1、C语言的主要特点。2、C语言程序的构成要素。3、C语言程序的开发步骤和程序的调试过程。[教学难点]:1、C语言的基本语法结构。2、C语言程序的开发和调试过程。[教学时数]:2学时[授课形式]:多媒体授课、实际操作演示、边讲边练[教学过程]:一、新课介绍(5-10分钟左右)1、自我介绍2、为什么要学习C语言?3、教学要求及学习方法4、课程目标及内容安排5、课程安排及考核方式考试(出勤、实验、作业、期中考试)80%+课程设计20%6、课程要求二、正课阶段(60分钟左右)第1章程序设计与C语言学习目标:理解程序的基本概念。掌握计算机程序设计的一般步骤。了解程序设计语言的发展过程。1.1程序与程序设计语言程序的概念:广义地讲程序是解决一个实际问题的基本步骤。在计算机中,程序是指导计算机执行某个功能或功能组合的一组指令。每一条指令都让计算机执行完成一个具体的操作,一个程序所规定的操作全部执行完毕后,就能产生计算结果。程序设计的一般过程:程序设计语言:1.2C语言的发展及主要特点C语言的发展历史:产生过程 时间:70年代初 地点:美国贝尔实验室 目的:用于UNIX操作系统C标准《K&R》标准:K&R合著《TheCProgrammingLanguage》ANSIC:1983年87ANSIC:1987年1990年国际标准的ANSICC语言的主要特点:eq\o\ac(○,1)C语言的标识符要求区分大小写。 eq\o\ac(○,2)语言简洁、紧凑,使用方便灵活。 eq\o\ac(○,3)模块化程序设计。 eq\o\ac(○,4)运算符丰富,数据结构丰富。 eq\o\ac(○,5)具有结构化的控制语句。 eq\o\ac(○,6)语法限制不太严格,程序设计自由度大。 eq\o\ac(○,7)允许直接访问物理地址,能够进行位操作,可以直接对硬件进行编程。 eq\o\ac(○,8)生成目标代码质量高,程序执行效率高。 eq\o\ac(○,9)可移植性好。1.3初识C语言程序编写一个简单的C程序,用于输出指定信息。//FileName:chap1_1.c//注释#include<stdio.h>//预处理命令intmain()//主函数{//函数体 printf(“ThisisthefirstCprogram.\n”);//输出语句 return0;//返回语句}1.4C语言程序的调试利用C语言编制程序的最终目的是高效地解决现实世界各领域中的实际问题,对实际问题进行分析,以C语言构建程序的思想为指引设计解决问题的方案,是构建C程序的第一步,通常称为程序设计。在此基础上,按照C语言的规则编写出C程序,把这个C程序存储在计算机中,运行后产生正确的结果,是构建C程序的第二步,通常称为程序生成。VisualC++集成开发环境:启动VisualC++6.0方法:编辑源程序文件方法:击“文件”-“新建”,弹出“新建”对话框。选择“文件”选项卡。单击“C++SourceFile”选项,在“文件”文件框中输入文件名,单击“确定”按钮。系统自动返回VC6主窗口。显示文件编辑区窗口,在文件编辑区窗口输入源程序文件。编译方法:在VC++环境中单击工具栏中的按钮,或者按Ctrl+F7键,或者选择Build菜单中的Compile选项3种方式都可以进行程序的编译。执行编译命令后,输出窗口会显示出编译结果。连接方法:在VC++环境中单击工具栏中的按钮,或者按F7键,或者选择Build菜单中的Build选项3种方式都可以进行程序的连接。执行连接命令后,输出窗口会显示出连接结果。执行方法:在VC++环境中单击工具栏中的按钮,或者按Ctrl+F5键,或者选择Build菜单中的Execute选项3种方式都可以运行程序。可执行程序运行后,将显示为DOS控制台状态,按任意键返回VisualC++6.0环境。三、小结什么是程序程序设计语言的发展过程C语言的发展历史C语言的主要特点C语言程序的调试四、作业教材P14习题1所有题目

教学进程第二章第1讲C语言的基本知识[教学目的]:通过本节的学习,使学生理解标识符的概念,掌握标识符的定义规则,了解C语言的基本数据类型,理解常量与变量的概念,熟练掌握整型、实型及字符型常量与变量的定义和使用。[教学重点]:1、标识符的定义。2、变量的定义与应用。3、常量的定义与应用。[教学难点]:1、变量的定义与应用。2、常量的定义与应用。[教学时数]:2学时[授课形式]:多媒体授课、实际操作演示、边讲边练[教学过程]:一、课程回顾介绍(5分钟左右)1、语言的发展经历了那几个阶段?2、C语言的基本语句结构?3、C语言的语法特点4、想一想:下面程序有哪些错误?二、正课阶段(70分钟左右)2.1标识符和关键字自然语言与C语言组成要素对比字符集字符是组成语言的最基本的元素,国际上使用最广泛的计算机字符编码是ASCII码,标准的ASCII码字符集包括128个字符。标识符:标识符就是用来标识在C语言程序中出现的符号常量、变量、数据类型、函数和语句的字符序列,C语言中的标识符是由字符组成,满足一定的构成规则。C语言规定,标识符由字母、数字、下划线组成,且第一个字符不能使用数字。例如,a、_3x、BOOK1、sum5、student_1都是合法的标识符,而-3x、bowy-1、3Student、$Map、Sum@Mul、a>b等是不合法的,不能用作C语言的标识符。关键字:关键字是系统定义的、具有特定含义、专门用作特定用途的C语言标识符,也称为保留字。标准C语言中共有32个关键字。根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。(1)数据类型关键字(12个):char,double,enum,float,int,long,short,signed,struct,union,unsigned,void(2)控制语句关键字(12个):break,case,continue,default,do,else,for,goto,if,return,switch,while(3)存储类型关键字(4个):auto,extern,register,static(4)其它关键字(4个):const,sizeof,typedef,volatile2.2数据类型C语言的数据类型基本数据类型2.3常量与变量2.3.1常量与变量的概念常量:在程序运行过程中其值保持不变的量称为常量。常量可以分为符号常量和直接常量两种。字面常量(直接常量):12-44.6'a'"Hello!"符号常量:用一个标识符代表一个常量。符号常量是采用宏定义命令定义的常量。基定义形式如下:格式:#define常量名字面常量举例:#definePRICE100#definePI3.14#defineC1’a’变量:在程序运行过程中其值可以被改变的量称为变量。变量在内存中根据其数据类型占据一定的存储单元,用来存入可能变化的值。变量的定义变量定义的一般形式为:类型说明符变量名标识符1,变量名标识符2,…;例如:inti,j,k;//定义i,j,k为整型变量floatx1,x2;//定义x1,x2为单精度实型变量doubley1,y2;//定义y1,y2为双精度实型变量charc1,c2;//定义c1,c2为字符型变量变量的赋值方式1:定义变量的同时赋初值(也叫变量初始化)。格式:数据类型变量名[=初值][,变量名2[=初值2]……];如:inta=2;charc=’x’;floatx=1.2,y=2.4;方式2:通过一个赋值语句给变量赋初值。格式:变量名=初值;思考?2.3.2整型常量与变量整型常量在C语言中整型常量可以表示为十进制、八进制和十六进制三种形式。(1)十进制整型常量其形式是:d其中,d可以是从0~9的一个或多个十进制数位,第一位不能是0。进位规则为:逢十进一。如:123,-456(2)八进制整型常量其形式是:0d其中,d可以是一个或多个八进制数(0~7之间),起始0是必须的引导符。进位规则为:逢八进一。如:0123,-0456,(3)十六进制整型常量其形式是:0xd其中,d可以是一个或多个十六进制数(从0~9的数字,或是从’a’到’f’的字母)。引导符0是必须的,字母X可以用大写或小写,进位规则为:逢十六进一。非十进制数转化成十进制数按权展开:1)二进制转化十进制如:1101=1*23+1*22+0*21+1*20=8+4+0+1=13十进制数转化成非十进制数整型变量实例分析#include<stdio.h>intmain(){ inta,b,c,d;//定义a、b、c、d为基本整型变量 unsignedu;//定义u为无符号基本整型变量 a=10;b=-20;u=5; c=a+u; d=b-u; printf("c=%d,d=%d\n",c,d); return0;}2.3.3实型常量与变量在C语言中,实型常量有两种表示形式:十进制小数形式和指数形式(1)十进制小数形式由正负号、数码0~9和一个小点组成,小数点前面和后面可以没有数字。例如.123//表示实数0.123-.123//表示实数-0.123123.//表示实数123.0(2)指数形式由十进制小数或整数与字母e或E组成。一般形式如下:aEn或aen其中,a可以是十进制小数或整数,n必须为十进制整数,整体表示数a×10n。如:0.23e2,-0.45e-3,3.0E+5实型变量实例分析2.3.4字符型常量与变量在C语言中字符型数据包括字符和字符串两种。字符型数据在内存中存储的是字符的ASCII码值的二进制形式,一个字符的存储占用一个字节。字符常量C语言中,字符常量分为普通字符常量和转义字符两种。字符变量每个字符变量被分配一个字节的内存空间。由于字符变量在内存中存放的是字符的ASCII码值,所以也可以把它们看成是整型量。字符数据可以参与算术运算,也可以与整型量相互赋值,还可以按照整数形式输出。实例分析#include<stdio.h>intmain(){ shortintn=97;//字符'a'的ASCII码为97 printf("%d,%c,%d,%c\n",n,n,n+1,n+1); return0;}字符串常量C语言中的字符串常量是由一对双引号括起来的字符序列。字符串常量和字符常量是不相同的量,其区别如下:(1)从表示形式上看,字符常量是由单引号括起来的,字符串常量是由双引号括起来的。(2)从字符的个数上看,字符常量只能是单个字符,字符串常量可以包含0个或多个字符。(3)有字符变量,但没有字符串变量。C语言没有专门的字符串类型变量,而是使用字符型数组或字符型指针来存储字符串。(4)字符常量在内存中占1个字节,字符串常量在内存中的字节数是字符个数加1。因为C语言规定,每一个字符串的末尾加一个字符串结束标志\0(ASCII码为0)。三、小结1、标识符和关键字2、C语言的数据类型3、常量的概念、分类及表示方法4、变量的概念、分类及定义、赋值方法四、作业教材P14习题1所有题目教学进程第二章第2讲C语言的基本知识(二)[教学目的]:通过本节的学习,使学生熟练掌握C语言提供的各种运算符,掌握运算符的优先级和结合性,掌握各种数据类型间的转换并能够应用所学知识编写简单的应用程序。[教学重点]:1、算术运算符与表达式。2、关系运算符及表达式。3、逻辑运算符及表达式。4、?:条件表达式5、逗号表达式[教学难点]:1、?:条件表达式2、逗号表达式[教学时数]:2学时[授课形式]:多媒体授课、实际操作演示、边讲边练[教学过程]:一、课程回顾介绍(5分钟左右)1、标示符的构成?2、变量的定义格式及赋值方法?3、下面哪些是合法的实型常量?4、说出下列字符串“Goodstudents”的长度?字节数?以及在内存中的存放方式5、字符常量与字符串常量有哪些区别?想一想,分析下面程序的运行结果?二、正课阶段(70分钟左右)2.1运算符和表达式基本概念运算是对数据进行加工的过程,用来表示各种不同运算的符号称为运算符。参加运算的数据称为运算量或操作数。用运算符将运算量连接起来的符合C语言语法规则的式子称为运算表达式,简称表达式。C语言的运算符2.1.1算术运算符及算术表达式算术运算符C语言算术运算符可以分为基本算术运算符、自增、自减运算符和正负号运算符三类。(1)基本算术运算符基本算术运算符包括5种:+(加)、-(减)、*(乘)、/(除)、%(取余)。(2)自增和自减运算符C语言中的自增运算符为++,自减运算符为--,都是单目运算符,具有右结合性。运算符“++”表示操作数加1,运算符“--”表示操作数减1。(3)正负号运算符正负号运算符是单目运算符,如-a,-b,-5,+8等。算术表达式用算术运算符将运算对象连接起来,符合C语法规则,并能说明运算过程的式子,称为算术表达式。算术达式的构成规则如下:1)数值型常量、数值型变量、数值型函数调用;2)+(算术表达式)、-(算术表达式);3)++整型变量、--整型变量、整型变量++、整型变量--;4)(算术表达式)双目算术运算符(算术表达式);5)有限次使用上述规则获得运算式也是算术表达式。(1)基本算术运算符:+-*/%案例1:已知三角形的边长a、b、c,求三角形周长的一半(2)自增\自减运算符自增运算符(++)自减运算符(--)++i,--i(在使用i之前,使i的值加(减)1)i++,i--(在使用i之后,使i的值加(减)1)思考:分析下面的程序运行结果?2.1.2关系运算符及关系表达式关系运算符:<<=>>===!=(6种)优先级:赋值<关系(后2<前4)<算术关系表达式用关系运算符将两个表达式连接起来的式子2.1.3逻辑运算符及逻辑表达式逻辑运算符:!(逻辑非)&&(逻辑与)||(逻辑或)逻辑运算真值表逻辑表达式用逻辑运算符和圆括号将操作数连接起来的、符合C语法规则的式子称为逻辑表达式。具体构成规则如下:单目逻辑运算符表达式或表达式双目逻辑运算符表达式2.1.4赋值运算符及赋值表达式(=)用于赋值运算,是C语言中最基本的运算符,分为基本的赋值运算和复合赋值运算。由”=”连接的式子称为赋值表达式。简单赋值运算符:=复合赋值运算符:+=,-=,*=,/=,%=格式:<变量><赋值运算符><表达式>例如:inta=10;例如:a+=10等价于a=a+102.1.5条件运算符及条件表达式赋值运算符条件运算符(?:)是C语言中唯一的一个三目运算符,其目的是进行条件判断。条件运算符的一般格式为:表达式1?表达式2:表达式3条件运算符的运算规则可以描述为:如果“表达式1”的值为非0(即逻辑真),则运算结果等于“表达式2”的值;否则,运算结果等于“表达3”的值。例:max=(a>b)?a:b;2.1.6逗号运算符及逗号表达式逗号运算符:,逗号表达式格式:表达式1,表达式2,……,表达式n案例分析:阅读下列程序,写出运行结果#include<stdio.h>intmain(){inta=1,b=3,c=5,x,y;y=((x=a+b),(b+c));printf("y=%d,x=%d\n\n",y,x);return0;}2.1.7sizeof运算符及sizeof表达式sizeof是C语言的一种单目操作符。将sizeof运算符与操作数组合在一起构成的式子称为sizeof表达式。sizeof运算符用来获得一个数据或数据类型在内存中所占空间的字节数。Sizeof表达式的一般形式sizeof(表达式)或sizeof(数据类型名)2.1.8C语言运算符的优先级与结合性2.2不同数据类型数据间的混合运算在进行某种数值运算的过程中,会对操作数的数据类型进行类型转换,有些转换由系统自动进行,有些转换由程序员人为指定。2.2.1自动转换对于系统自动进行的类型转换通常要遵循一定的转换规则,如图所示2.2.2强制转换强制类型转换的一般形式如下:(类型说明符)(表达式)其功能是把表达式的值的数据类型强制转换成类型说明符所指定的类型。例如,(float)a表示将变量a转换成float型(int)(x+y)表示将表达式“x+y”的值转换成int型。案例分析:阅读下列程序,写出运行结果?三、小结1、C语言的运算符及表达式算术运算符及算术表达式关系运算符及关系表达式逻辑运算符及逻辑表达式赋值运算符及赋值表达式条件运算符及条件表达式逗号运算符及逗号表达式sizeof运算符及sizeof表达式2、C语言运算符的优先级与结合性3、不同数据类型数据间的混合运算四、作业教材P14习题1所有题目

教学进程第三章第1讲算法及顺序结构[教学目的]:通过本节的学习,使学生理解算法的基本概念,熟练掌握流程图、N-S图,掌握顺序结构程序设计,并能够应用所学知识编写简单的应用程序。[教学重点]:1、算法的特性和要素。2、流程图、N-S图的画法。3、顺序结构设计。4、标准的输入输出函数(getchar()、putchar();scanf()、printf())[教学难点]:1、流程图、N-S图的画法2、标准的输入输出函数(getchar()、putchar();scanf()、printf())[教学时数]:2学时[授课形式]:多媒体授课、实际操作演示、边讲边练[教学过程]:一、课程回顾介绍(5分钟左右)1、指出下列各表达式的值:2、以下程序的输出结果是:3、阅读以下程序,写出程序的输出结果?二、正课阶段(70分钟左右)2.1算法的基本知识算法的概念广义上讲,算法是解决某一问题的方法和步骤。狭义上,算法指的是计算机算法,即对特定问题求解步骤的一种描述,它是计算机指令的有限序列,其中每一条指令表示计算机可以进行的一个或多个操作。2.1.1算法的特性和要素算法的特性有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出算法的要素一个计算机所能执行的算法必须具备以下两个要素:基本操作、控制结构2.1.2算法的描述算法的描述方法有很多种,最常用的有自然语言、伪代码、流程图、N-S图、PAD图和计算机语言等。(1)自然语言(2)流程图流程图是一种传统的算法表示方法,用一些图框表示各种操作,用流程线表示操作的执行顺序。实例分析:用流图描述sum=1+2+3+…+99+100的算法(3)N-S图N-S图是由I.Nassi和B.Shneiderman于1973年共同提出的一种结构化描述方法。实例分析:用N-S图描述sum=1+2+3+…+99+100的算法(4)程序设计语言对于采用自然语言、流程图和N-S图描述的算法,计算机是不能执行的。要让计算机执行一个算法,必须把该算法转换成计算机语言。用计算机语言表示算法必须严格遵循所使用语言的语法规则。2.2顺序结构程序设计2.2.1表达式语句表达式语句是由表达式加上分号(;)组成。其一般形式如下:表达式;2.2.2函数调用语句函数是C程序的基本组成单位,一个函数的执行是通过在程序中调用这个函数来实现的,调用函数的操作由C语句来完成,通常称为函数调用语句。其一般形式如下:函数名(参数表);例如,“printf("hello!");”就是一个函数调用语句。C语言提供的输入输出标准库函数有:getchar()、putchar()、puts()、gets()、scanf()和printf()。(1)getchar()字符输入函数的一般形式如下:intgetchar();功能:接收从终端输入的一个字符,并返回其ASCII码值。例如:intch=getchar();//从输入终端(如键盘)接收一个字符并把它赋给ch变量。实例分析:阅读下列程序,分析运行结果getchar()与getch()的区别?getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.getch()与getchar()基本功能相同,差别是getch()直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch()就立刻返回(2)putchar()字符输出函数的一般形式如下:intputchar(charch)功能:向终端输出一个字符,并返回该字符的ASCII码值实例分析:阅读下列程序,分析运行结果(3)printf()格式化输出函数的一般形式如下:intprintf(char*format[,argument,...]);功能:函数printf将一组参数,按format给定的格式,把数据格式化并且输出到标准输出设备。若出错,则返回负数。向终端输出一个字符,并返回该字符的ASCII码值。函数调用的一般形式为:printf("格式控制字符串",输出项列表);%[标识][宽度][.精度]格式字符例如:格式输出举例——f格式符(4)scanf()格式化输入函数的一般形式如下:intscanf(格式控制字符串,地址列表)功能:按照格式控制的要求,将从终端输入的数据赋值给地址列表中的各个变量。格式控制字符串的含义和函数printf()中的格式控制字符串类似,地址列表列出了各变量的地址,由取地址运算符“&”后跟变量名组成。函数调用的一般形式为:scanf("格式控制字符串",地址列表);%[*][宽度]格式字符2.2.3空语句仅由分号“;”组成的语句称为空语句。空语句是不执行任何操作的语句。例如,while(getchar()!='\n'){;//循环体为空语句}空语句通常起到占位的作用,在程序没有完全开发完成前,可用空语句占位,以便后续开发填充代码。2.2.4复合语句把多个语句用大括号括起来组成的语句称为复合语句。在语法上,复合语句相当于单条语句,而不是多条语句。其一般形式为:{语句1……语句n}复合语句可以放在能够使用语句的任何地方,它建立一个新的作用域或块。复合语句是C语言中唯一不用分号“;”结尾的语句。三、小结1、C语言的运算符及表达式算术运算符及算术表达式关系运算符及关系表达式逻辑运算符及逻辑表达式赋值运算符及赋值表达式条件运算符及条件表达式逗号运算符及逗号表达式sizeof运算符及sizeof表达式2、C语言运算符的优先级与结合性3、不同数据类型数据间的混合运算四、作业教材P14习题1所有题目教学进程第三章第2讲选择结构设计[教学目的]:通过本节的讲解使学生了解C语言的基本程序设计结构——选择结构。使学生能够达到编写简单程序的能力。[教学重点]:1、if语句格式2、switch语句格式。[教学难点]:1、if语句多分支结构2、if语句的嵌套[教学时数]:2学时[授课形式]:多媒体授课、实际操作演示、边讲边练[教学过程]:一、课程回顾介绍(5分钟左右)1、单个字符的输入、输出getchar()putchar()按格式的输入、输出scanf()printf()2、阅读下列程序,分析运行结果#include"stdio.h"main(){intnum=12345;floatx=123.456;printf("num=%3d,x=%10f\n",num,x);printf("num=%d,x=%.2f\n",num,x);printf("num=%-8d,x=%-10.2f",num,x);getch();}二、正课阶段(70分钟左右)3.3.1if语句(1)单分支if语句(2)双分支if语句程序举例:#include<stdio.h>voidmain(){ intnum; printf("\n请输入一个整数:");scanf(“%d”,&num); if((num%2)==0) printf(“%d是一个偶数。\n”,num);else printf(“%d是一个奇数。\n”,num);}(3)多分支if语句该语句的一般形式如下:if(表达式1)语句1elseif(表达式2)语句2...elseif(表达式n)语句nelse语句n+1功能:依次判断表达式的值,当出现某个表达式的值为真时,则执行其对应的语句,然后跳转到整个if语句之后继续执行程序;如果所有的表达式均为假,则执行else后的语句,即语句n+1。案例分析:根据输入的考试成绩(百分制整数)打印出等级水平。(使用if~else语句实现)A:90~100B:80~89C:70~79D:60~69E:<60(4)嵌套的if语句当if语句的操作语句中包含其他if语句时,称为嵌套的if语句。该语句的基本形式如下:案例分析思考?1)编写程序,输入一个x的值,按以下函数计算并输出y的值。2)求一个任意的一元二次议程ax2+bx+c=0的解。3.3.2switch语句C语言提供switch语句专门处理多分支的情形,使程序变得简洁易懂。switch语句的一般形式如下:switch(表达式){case常量表达式1:语句块1case常量表达式2:语句块2…case常量表达式n:语句块ndefault:语句块n+1}功能:首先计算switch后面括号内的“表达式”,然后依次与各个case后面的“常量表达式”的值进行比较,当“表达式”的值与某一个case后面的“常量表达式”的值相等时,就选择这个标号作为入口,执行该case子句后面的语句块,并继续执行其后的所有case子句直到程序结束。如果“表达式”的值与所有case后面的“常量表达式”的值都不相等,则执行default后面的语句。案例分析:输入一个百分制成绩,要求输出对应的成绩等级A:90~100B:80~89C:70~79D:60~69E:<60三、小结1、单分支if语句2、双分支if语句3、多分支if语句4、嵌套if语句5、Switch语句四、作业教材P14习题1所有题目教学进程第三章第3讲循环结构设计[教学目的]:通过本节的讲解使学生了解C语言结构化程序设计思想、掌握while、do…while、for循环基本语句格式,理解循环基本流程,使学生能够达到编写简单程序的能力。[教学重点]:1、while循环2、do…while循环3、for循环语句[教学难点]:1、while循环2、do…while循环3、for循环语句[教学时数]:2学时[授课形式]:多媒体授课、实际操作演示、边讲边练[教学过程]:课程回顾介绍(5分钟左右)1、回顾一下我们都学习的哪些选择结构?2、阅读下列程序,分析运行结果{二、正课阶段(70分钟左右)3.4.1while语句案例分析:求1~10的累加和?3.4.2do-while语句基本语句形式:执行过程:它先执行循环体中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环。执行do-while语句中的内嵌语句,直到表达式为假(0)才跳出循环。实例分析:用do…while循环求n!3.4.3for语句案例分析:求1~10的累加和?案例分析:输出Fibonacci数列1、1、2、3、5、8、13…的前20项,要求每输出5项后换行。说明:省略表达式1、2、3,即:for(;;)就等同于:while(1),会无限循环(死循环)省略表达式1和表达式3,即:for(;表达式2;)就等同于:while(表达式2)省略表达式2,即:for(表达式1;;表达式3)就等同于:表达式1;while(1){…表达式3;}小结while循环do…while循环3、for语句四、作业教材P14习题1所有题目教学进程第三章第4讲循环结构设计[教学目的]:通过本节的讲解使学生掌握循环的嵌套,理解break、continue语句,使学生能够应用基本的循环语句编写复杂的程序。[教学重点]:1、循环的嵌套2、break语句3、continue语句[教学难点]:1、循环的嵌套2、break语句3、continue语句[教学时数]:2学时[授课形式]:多媒体授课、实际操作演示、边讲边练[教学过程]:课程回顾介绍(5分钟左右)1、有哪3种循环结构?2、while、do…while、for循环的语句格式3、for循环的语句格式4、while、do…while的区别?5、阅读下列程序,分析出运行结果二、正课阶段(70分钟左右)3.4.4循环的嵌套如果将一个循环语句放在另一个循环语句的循环体中,就构成了循环的嵌套。内嵌的循环结构内还可嵌套循环结构,构成多层嵌套。3种循环语句都可以在循环嵌套中使用。案例分析:思考?如何实现在屏幕上输出一个菱形案例分析:输入n的值,计算并输出1~n的阶乘之和。3.5转移控制语句3.5.1break语句break语句的一般形式如下:break;功能:break语句除用于退出switch结构外,还可用于由while、do…while和for构成的循环结构中。当执行循环体遇到break语句时,break所在循环将立即终止,从循环语句后的第一条语句开始继续往下执行。阅读下列程序,分析运行结果实例分析:判断任意一个数是否为素数。3.5.2continue语句语句流程案例分析:把100~120之间不能被3整除的整数输出。案例分析:统计选票。现有选票如下:3,1,2,1,1,3,3,2,1,2,3,3,2,1,1,3,2,0,1,4,-1。-1是结束标志。设1选李,2选张,3选王,0和4为废票,问谁会当选?三小结循环嵌套break语句continue语句4、综合实例分析四、作业教材P14习题1所有题目

教学进程第四章数组(一)[教学目的]:掌握C语言中数组的基本概念。熟练掌握一维数组的定义、引用和初始化方法。能够用一维数组解决一些实际问题。[教学重点]:1、数组在内存空间中的分配使用情况。2、一维数组的定义及使用。[教学难点]:1、一维数组在实际编程过程中的应用。[教学时数]:2学时[授课形式]:多媒体授课、实际操作演示、边讲边练[教学过程]:一、课程回顾(5分钟左右)1、循环结构程序设计的几种形式2、转移控制语句二、正课阶段(70分钟左右)第4章数组4.1一维数组学习目标:熟悉一维数组的定义、引用和初始化方法。能够用一维数组解决一些实际问题。4.1.1一维数组的定义基本形式注意事项①数组名遵循标识符的命名规则。②一个数组中的元素下标必须从0开始。所以定义数组时,“常量表达式”指出数组长度,长度为n时,数组元素下标范围只能是0~n-1。③“常量表达式”可能包含常量,但不能包含变量。也就是说,C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。4.1.2一维数组的引用基本形式在C语言中,对数组的访问通常是通过对数组元素的引用来实现的,不能一次引用整个数组,也就是说,不能把一个数组当做整体进行相应的运算,如赋值运算、算术运算和关系运算等(字符数组的输入输出除外)。一维数组元素引用的一般形式如下:数组名[下标]其中,下标表示该数组元素在数组中的顺序号,可以是整型常量、整型变量或整型表达式。在C语言中,数组的下标从0开始,合理取值范围为0~(数组长度-1)。实例分析从键盘输入10个数,分别按正序和逆序将其输出。//FileName:chap4_2.c#include<stdio.h>intmain(){ inti,a[10]; printf("Input10numbers:\n"); for(i=0;i<=9;i++) scanf("%d",&a[i]); for(i=0;i<=9;i++) printf("%2d",a[i]); printf("\n");运行结果如下:Input10numbers:0123456789运行结果如下:Input10numbers:0123456789↙01234567899876543210 printf("%2d",a[i]); printf("\n"); return0;}4.1.3一维数组的初始化基本形式在定义一维数组的同时给数组元素赋初值称为一维数组的初始化。一维数组初始化的一般形式如下:类型说明符数组名[常量表达式]={常量表达式0,…,常量表达式n-1};其中,等号之前是一维数组定义的一般形式,花括号“{}”中给出的数值是对应数组元素的初值,各个值之间用逗号分隔。注意事项①对数组中的所有元素赋初值,常量表达式的个数与数组中元素的个数相同。②对数组中的部分元素赋初值,常量表达式的个数小于数组中元素的个数,未指定值的数组元素自动为“零值”,即数值类型的元素为0,字符型的元素为‘\0’字符。③除了在定义数组时可用初值列表为数组整体赋值外,不能对数组作整体赋值。④不能同时定义两个相同的数组,并给它们赋相同的初值。4.1.4一维数组的应用冒泡排序排序的方法有多种,冒泡排序法是其中之一,一般分为“上浮法”和“下沉法”两种。本题采用“下沉法”完成数据的排序。基本思想是:从第一个数开始,对相邻的两个数进行比较,通过交换使较大的数在后,直到最后两个数比较完毕。完成一遍这样的比较过程(称为一趟排序),就找到了这组数据中的最大值并且下沉到最后一个位置。对余下的数据重复这个比较过程,当只有一个剩余数据时就完成了排序工作。//FileName:chap4_5.c#include<stdio.h>intmain(){ inta[10]={6,3,9,8,1,5,4,10,2,7}; inti,j,t; printf("Thearraybeforesort:"); for(i=0;i<10;i++)printf("%d",a[i]); printf("\n"); for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(a[j]>a[j+1])运行结果如下:Thearraybeforesort:63981541027Thearrayaftersort:12345678910运行结果如下:Thearraybeforesort:63981541027Thearrayaftersort:12345678910 printf("Thearrayaftersort:"); for(i=0;i<10;i++)printf("%d",a[i]); return0;}三、小结(5分钟左右)1、一维数组的定义2、一维数组的引用3、一维数组的初始化4、一维数组的应用四、作业教材P138习题4一维数组所有题目。

教学进程第四章数组(二)[教学目的]:熟练掌握二维数组的定义、引用和初始化方法。能够用二维数组解决一些实际问题。[教学重点]:1、二维数组的定义、引用和初始化方法。2、二维数组在实际编程过程中的应用。[教学难点]:1、二维数组在实际编程过程中的应用。[教学时数]:2学时[授课形式]:多媒体授课、实际操作演示、边讲边练[教学过程]:一、课程回顾(5分钟左右)1、一维数组的定义2、一维数组的引用3、一维数组的初始化二、正课阶段(70分钟左右)第4章数组4.2二维数组学习目标:熟悉二维数组的定义、引用和初始化方法。能够用二维数组解决一些实际问题。4.2.1二维数组的定义基本形式几点说明二维数组中的数组元素的个数=行数×列数,存储一个二维数组所需要的内存字节数可以用下列方式来计算:总字节数=sizeof(类型)×行数×列数例如,语句“inta[3][4];”定义了一个3行4列的int型数组a,共有3×4=12个数组元素,存储数组a所需的内存空间为sizeof(int)×3×4=24个字节。C语言采用“按行存储”的方式来存储二维数组元素,即先存储第一行的元素,再存储第二行的元素,依次类推。4.2.2二维数组的引用基本形式二维数组中各元素的引用形式为:数组名[下标1][下标2]其中,下标可以是整型常量、整型变量或整型表达式。下标的值用于表示一个数组元素在数组中的位置。[下标1]可称为行下标,指示要引用的数组元素所在行的位置;[下标2]可称为列下标,指示要引用的数组元素所在列的位置。行下标的合理取值范围是0~(行数−1),列下标的合理取值范围是0~(列数−1)。实例分析分析以下程序的运算结果。//FileName:chap4_7.c#include<stdio.h>intmain(){inta[3][4],i,j;for(i=0;i<3;i++)for(j=0;j<4;j++)a[i][j]=i*4+j;程序运行结果如下:01234567程序运行结果如下:01234567891011{for(j=0;j<4;j++)printf("%4d",a[i][j]);printf("\n");}return0;}4.2.3二维数组的初始化基本形式1.按行赋初值例:inta[2][3]={{1,2,3},{4,5,6}};初始化后结果:1234562.按数组元素在内存中排列的顺序对各元素赋初值例:inta[2][3]={1,2,3,4,5,6};3.给部分元素赋初值例:inta[2][3]={{1},{4}};初始化后结果:1004004.2.4二维数组的应用矩阵问题编程计算一个给定3×3的矩阵的两条对角线所有元素之和。分析:主对角线上的元素为a[0][0]、a[1][1]、a[2][2],通过观察可以发现它们的行下标与列下标的值是相同的,即各个元素可以表示a[i][i];次对角线上的元素为a[0][2]、a[1][1]、a[2][0],通过观察可以发现它们的行下标与列下标的和为2,即各个元素可表示为a[i][2-i],所以利用循环就能方便地求出两条对角线上所有元素之和。实例分析分析以下程序的运算结果。//FileName:chap4_10.c#include<stdio.h>intmain(){ inta[3][3]={2,5,7,6,9,8,3,1,4},sum=0,i; for(i=0;i<3;i++)sum+=a[i][i];//主对角线上的元素求和 for(i=0;i<3;i++)sum+=a[2-i][i];//次对角线上的元素求和 printf("Sum=%d\n",sum); return0;}程序运行结果如下:Sum=34程序运行结果如下:Sum=341、二维数组的定义2、二维数组的引用3、二维数组的初始化4、二维数组的应用四、作业教材P138习题4二维数组所有题目。教学进程第四章数组(三)[教学目的]:掌握C语言中数组的基本概念和字符串的表示及存储方法,掌握字符串的输入输出方法。了解计算机内存空间的使用情况。[教学重点]:1、字符串的输入输出方法。2、常用的字符串处理函数。[教学难点]:1、字符串的输入输出方法。[教学时数]:2学时[授课形式]:多媒体授课、实际操作演示、边讲边练[教学过程]:一、课程回顾(5分钟左右)1、二维数组的定义2、二维数组的引用3、二维数组的初始化二、正课阶段(70分钟左右)第4章数组4.3字符数组及字符串学习目标:熟悉字符数组存放字符串的方法,掌握字符串的输入输出方法,熟悉常用的字符串处理函数。4.3.1字符数组基本形式字符数组的定义和引用符合前面所学过的数组的定义和引用法。例如:chara[5]; //定义一个一维字符数组charb[2][3]; //定义一个二维字符数组charc[2][3][4]; //定义一个三维字符数组a[3]=‘a’;//一维字符数组元素赋值b[1][2]=‘b’;//二维字符数组元素赋值实例分析输入一行字符,统计其中大写字母的个数,并将所有的大写字母转换成小写字母后输出这个字符串。//FileName:chap4_12.c#include<stdio.h>intmain(){ inti,n=0; chars[20]; for(i=0;(s[i]=getchar())!='\n';i++)if(s[i]>='A'&&s[i]<='Z')n++; printf("n=%d\n",n); for(i=0;s[i]!='\n';i++)程序运行结果如下:abCdeFGh↙程序运行结果如下:abCdeFGh↙n=3abcdefghprintf("%c",s[i]+32);elseprintf("%c",s[i]); return0;}4.3.2用字符数组存储字符串字符串常量就是用双引号括起来的若干个字符。例如,“China”。但实际上,在内存中存储这个字符串常量时,除了要存储我们看到的字符外,还要在这些字符后存存储一个‘\0’作为字符串的结束标志。例如,字符串常量“China”的内存映象如图所示。几点说明由于有了字符串结束标志’0’的存在,字符串常量“China”的字符串长度虽然只有5,但在内存中却要占6个存储单元。我们可以利用字符数组存放字符串,C语言允许用户在定义字符数组时,将字符串常量作为初值赋给字符数组。例如:charstr[]=”China”;等价于charstr[]={“China”};也等价于charstr[]={’C’,’h’,’i’,’n’,’a’,’\0’};(1)单元素处理例如:charstr[6];for(i=0;i<6;i++)scanf(“%c”,&str[i]);for(i=0;i<6;i++)printf(“%c”,str[i]);(2)以格式符%s通过数组名引用例如:charstr[6];scanf(“%s”,str);printf(“%s”,str);4.3.4字符串处理函数C语言提供了丰富的字符串处理函数,可以实现字符串的输入、输出、连接、比较、转换、复制和搜索等功能,使用这些函数可以大大提高编程的效率。在使用字符串处理函数时,要用编译预处理命令#include将头文件“string.h”包含进来,函数puts()和gets()除外(需要包含头文件“stdio.h”)。puts()一般形式:intputs(字符数组名)或intputs(字符串常量)功能:把字符数组中的字符串输出到终端,并在输出时将字符串结束标志'\0'转换成'\n'。gets()一般形式:char*gets(字符数组名)功能:接收从终端输入的字符串,并将该字符串存放到字符数组名所指定的字符数组中。实例分析利用gets()和puts()函数处理字符数组。/FileName:chap4_14.c#include<string.h>#include<stdio.h>intmain(){chars[20];printf("inputstring:\n");gets(s);程序运行结果如下:inputstring:Thisastring.程序运行结果如下:inputstring:Thisastring.↙Thisastring.return0;}strcat()一般形式:char*strcat(字符数组名1,字符数组名2或字符串常量)功能:把字符数组2中的字符串连接到字符数组1中字符串的后面,并删去字符数组1中字符串后面的串结束标志‘\0’。字符数组1必须足够大,以便容纳连接后的新字符串。strcpy()一般形式:char*strcpy(字符数组名1,字符数组名2或字符串2)功能:把字符数组2中的字符串复制到字符数组1中,串结束标志‘\0’也一同复制。与strcat函数一样,字符数组1也必须定义得足够大,以便容纳被复制的字符串。字符数组1的长度不应小于字符串2的长度。strlen()一般形式:intstrlen(字符串)功能:计算出字符串的长度(不含字符串结束标志‘\0’),并将该长度作为函数返回值。strlwr()一般形式:char*strlwr(字符串)功能:将字符串中的大写字母转换成小写字母,小写字符与其它字符不变。strupr()一般形式:char*strupr(字符串)功能:将字符串中的小写字母转换成大写字母,大写字符与其它字符不变。实例分析输入一个字符串,判断其是否是回文。所谓回文是指这个字符串顺读和反读是一样的,如“level”是回文。分析:可以设置两个下标变量i和j,分别表示字符串的第0个字符和最后一个字符,将字符串中下标为i和j上对应的字符进行比较,若不相等,则可断定该字符串不是回文;否则,将i加1,将j减1,继续将对应的字符进行比较,直到i>=j为止,即将所有对应的字符比较完都未找到不相等的字符,这时可断定该字符串是回文。//FileName:chap4_18.c#include<string.h>#include<stdio.h>intmain(){chars[10];inti,j,n,flag=1;gets(s);n=strlen(s);for(i=0,j=n-1;i<j&&flag==1;i++,j--)if(s[i]!=s[j])flag=0;if(i<j)程序运行结果如下:abcdcba↙程序运行结果如下:abcdcba↙Yeselseprintf("Yes");return0;}三、小结(5分钟左右)1、字符串的输入输出方法。2、常用的字符串处理函数有哪些。四、作业教材P138习题4字符数组所有题目。

教学进程第5章函数第一讲函数的概念,定义及调用[教学目的]:通过本节的讲解使学生了解C函数的概念,掌握函数的定义格式,使学生能够达到利用函数编写简单程序的能力。[教学重点]:1、熟悉函数的定义方法2、掌握函数的调用[教学难点]:1、函数的调用2、利用函数创建简单程序[教学时数]:2学时[授课形式]:多媒体授课、实际操作演示[教学过程]:一、课程回顾(5-分钟左右)1、二维数组的定义格式2、二维数组的赋值方法3、二维数组的元素引用二、正课阶段(70-80分钟左右)学习目标:了解C函数的概念,掌握函数的定义格式、调用格式,掌握函数的嵌套调用,使学生能够达到利用函数编写简单程序的能力。本节需要解决的问题如下:1、为何要学习函数,有何特点2、函数的定义格式及调用格式3、简单函数的创建及应用5.1函数的概念函数是C程序的基本功能单元,编写C程序实际上主要就是编写各种各样的函数。在结构化程序设计中,一个大的程序可被划分为若干个具有不同功能的模块,每个模块都由一个或多个函数组成,模块之间的数据传递和模块内部功能就靠函数调用来实现。函数对于构建程序并不是必需的,但却是非常重要的。5.2函数定义和调用函数定义案例:函数返回值几点说明:1.一个函数中可以有一个以上的return语句。只有一个起作用。2.如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。3.如果被调用函数中没有return语句,一般表示此函数完成一定操作,并不带回任何值。为了明确表示“不带回值”,可以用“void”定义“无类型”4.格式:return(z);returnz;函数举例:思考:通过函数调用,实现比较两个数的平方和?5.2.1函数调用调用格式:函数名(实参列表)方式:1.函数语句printstar()2.函数表达式c=a*max(a,b)3.函数参数m=max(a,max(b,c))函数参数:形式参数:定义函数时函数名后面括号中的变量名实际参数:调用函数时函数名后面括号中的表达式参数的传递方式:C语言中,参数传递的方式有两种:传值和传址。传值是指,进行参数传递时将实际参数的值赋值给形式参数;传址是指,将存放实际参数的内存地址赋值给形式参数。说明:形参在函数被调用前不占内存;实参可以是常量、变量或表达式在被定义的函数中,必须指定形参的类型若形参与实参类型不一致,自动按形参类型转换(函数调用转换)函数的嵌套调用例求三个数中最大数和最小数的差值三、小结1、为何要学习函数,有何特点2、函数的定义格式及调用格式3、简单函数的创建及应用四、作业教材P?习题?所有题目五、教学后记第二讲函数的调用、声明与返回[教学目的]:通过本节的讲解使学生掌握C函数的调用格式,掌握函数的嵌套调用及函数的递归调用,熟悉函数的声明方法,理解函数的返回值的概念,使学生能够达到利用函数编写简单程序的能力。[教学重点]:1、熟悉函数的调用方式2、掌握函数的嵌套调用和递归调用3、理解函数的返回值的概念[教学难点]:1、函数的嵌套调用调用2、利用函数创建简单程序[教学时数]:2学时[授课形式]:多媒体授课、实际操作演示[教学过程]:一、课程回顾(5-分钟左右)1、函数的概念及定义格式2、函数的形参与实参3、函数的简单调用二、正课阶段(70-80分钟左右)学习目标:掌握C函数的调用格式,掌握函数的嵌套调用及函数的递归调用,熟悉函数的声明方法,理解函数的返回值的概念,使学生能够达到利用函数编写简单程序的能力。本节需要解决的问题如下:1、函数的递归调用2、简单函数的创建及应用3、熟悉函数的声明方法4、理解函数的返回值的概念5.2.2函数的嵌套调用C语言允许在一个函数的定义中出现对另一个函数的调用,这样就出现了函数的嵌套调用,即在一个被调函数内部,又调用了其他的函数。其示意图如图所示。实例分析:计算1!+2!+…+n!的值,要求用函数的嵌套调用方式实现。分析:基于模块化思想,可以将该问题分解为二个子问题:(1)依次计算自然数1~n的阶乘,(2)求这些阶乘值的累加和。可以定义两个函数来实现。由于要计算的是n个不同的自然数的阶乘的值,因此第一个函数(命名为factorial)要有一个形参(命名为m),用于识别要计算的是哪个自然数的阶乘。第二个函数(命名为factorialSum)要明确对多少个数求和,因此要有一个形参(命名为n)。//FileName:chap5_7.c#include<stdio.h>//计算n!的函数longfactorial(intm){ inti; longt=1; for(i=1;i<=m;i++)t=t*i; returnt;}//计算累加和的函数longfactorialSum(intn){ longsum=0; inti; for(i=1;i<=n;i++)sum=sum+factorial(i); returnsum;}//主函数intmain(){intn;longt;printf("Pleaseinputthevalueofn:");scanf("%d",&n);t=factorialSum(n);printf("result=%ld\n",t);return0;}5.2.3函数的递归调用在C语言中,主调函数与被调函数可以是不同的函数,也可以是相同的函数,即允许一个函数调用它自身。如果一个函数在它的函数体内直接或间接地调用函数自身,则将这种调用形式称为函数的递归调用,将这个函数称为递归函数。函数的递归调用是函数嵌套调用的一种特殊形式。举例:用递归方法求n!分析:例5-3中使用for语句实现了n!的计算,在例5-3中,计算n!是基于数学公式“n!=1×2×3×…×n”,实际上还有另外一个数学公式“n!=(n-1)!×n”,也就是说要计算n!,只要把(n-1)!计算出来即可。而(n-1)!与n!的计算方法完全相同,仅仅是参数不同而已。可以用这种方法继续向前推,即(n-1)!=(n-2)!×(n-1),……,如此类推,直到2!=1!×2,1!=0!×1,而0!=1,此时无需再类推下去。因此,可以用下面的递归公式计算n!:递归函数://FileName:chap5_8.c#include<stdio.h>longfactorial(intn);intmain(){longresult;intn;printf("Pleaseinputthevalueofn:");scanf("%d",&n);result=factorial(n);printf("%d!=%ld\n",n,result);return0;}longfactorial(intn)//递归函数定义{longs;if(n==0)//递归出口s=1;elses=factorial(n-1)*n;//递归调用returns;程序运行结果如下:Pleaseinputthevalueofn:3程序运行结果如下:Pleaseinputthevalueofn:3↙3!=6下面以计算3!为例,具体描述递归程序的执行过程如图所示:思考:问题描述:有5个人坐在一起,问第5个人多少岁?他说他比第4个人大2岁,问第4个人,他说比第3个人大2岁。问第3个人,又说比第2个人大2岁,第1个人是10岁,请问第5个人多大?intage(intn){intc;intage(intn){intc;if(n==1)c=10;elsec=age(n-1)+2;return(c);}voidmain(){printf("age=%d",age(5));getch();}5.3函数的声明与返回所谓函数声明就是在编译系统认识被调函数之前,先告诉编译系统该函数的存在,并将有关信息(如函数的返回值类型、函数参数的个数、类型及其顺序等)通知编译系统,使编译过程正常执行。5.3.1函数声明基本形式函数声明的一般形式如下:类型说明符函数名([形式参数列表]);或类型说明符函数名(数据类型列表);例如,intmax(intx,inty);或intmax(int,int);【实例分析】5.3.1函数的返回函数返回的一般形式:第一种方式是在执行完函数的最后一个语句之后。第二种方式是使用函数返回语句return。函数返回语句的一般形式如下:return<表达式>;或return;当函数有返回值时,在函数体中采用函数返回语句“return<表达式>;”,该语句的执行过程如下:(1)计算表达式的值。(2)转换表达式的类型。(3)实现程序控制的转移。三、小结1、函数的递归调用2、简单函数的创建及应用3、熟悉函数的声明方法4、理解函数的返回值的概念四、作业教材P?习题?所有题目五、教学后记第三讲数组与函数[教学目的]:通过本节的讲解使学生掌握数组作为函数参数的用法,使学生能够达到利用函数编写简单程序的能力。[教学重点]:1、掌握数组作为函数参数的用法[教学难点]:1、掌握数组作为函数参数的用法2、利用函数创建简单程序[教学时数]:2学时[授课形式]:多媒体授课、实际操作演示[教学过程]:一、课程回顾(5-分钟左右)1、函数的调用方式2、函数的声明方法3、函数的返回形式二、正课阶段(70-80分钟左右)学习目标:掌握数组作为函数参数的用法,使学生能够达到利用函数编写简单程序的能力。本节需要解决的问题如下:数组作为函数参数的用法5.4.1数组元素作函数实参数组元素作函数实参:值传递数组名作函数参数:地址传递在主调函数与被调函数分别定义数组,且类型应一致形参数组大小(二维数组的第一维)可不指定形参数组名是地址变量例数组元素与数组名作函数参数比较(数组元素作为参数)12a12a调用前a[0]a[1]12a调用a[0]a[1]12xy21xy交换12a返回112a调用前12ax调用21ax交换21a返回【实例分析】编程实现,数组排序--简单选择排序#include<stdio.h>intmain(){inta[10],i;for(i=0;i<10;i++) scanf("%d",&a[i]);sort(a,10);for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");return0;}voidsort(intarray[],intn){inti,j,k,t,min;for(i=0;i<n-1;i++){min=array[i];k=i; for(j=i+1;j<n;j++) if(array[j]<min){k=j;min=array[j];} t=array[i]; array[i]=array[k]; array[k]=t;}}三、小结数组元素和数组名作为函数参数比较?四、作业教材P?习题?所有题目五、教学后记第四讲变量作用域与生命周期、数据的存储类别[教学目的]:通过本节的讲解使学生掌握局部变量和全局变量的概念和用法,理解变量存储类别的概念,熟练掌握atuo、register、static、extern类型变量的特点,使学生能够达到利用函数编写简单程序的能力。[教学重点]:1、掌握局部变量的概念和用法2、掌握全局变量的概念和用法3、理解变量存储类别的概念[教学难点]:1、掌握局部变量和全局变量的概念和用法2、利用函数创建简单程序[教学时数]:2学时[授课形式]:多媒体授课、实际操作演示[教学过程]:一、课程回顾(5-分钟左右)1、函数的调用方式2、函数的声明方法3、函数的返回形式二、正课阶段(70-80分钟左右)学习目标:掌握局部变量和全局变量的概念和用法,理解变量存储类别的概念,熟练掌握atuo、register、static、extern类型变量的特点,使学生能够达到利用函数编写简单程序的能力。本节需要解决的问题如下:1、掌握局部变量的概念和用法2、掌握全局变量的概念和用法3、理解变量存储类别的概念5.5.1局部变量局部变量是定义在函数内部的变量,如果变量的定义在函数体的开始处,则该变量可以在整个函数中使用,它的作用域是从变量定义处到本函数的结束处;如果变量的定义在函数内部的某个复合语句中,则该变量只能在这个复合语句中使用,它的作用域是从变量定义处到该复合语句的结束处。局部变量作用域如下图所示:【实例分析】分析以下程序的运行结果,注意局部变量的定义与使用。//FileName:chap5_16.c#include<stdio.h>intsum(inta,intb);intmain(){intx,y;ints;//局部变量,在main()中有效scanf("%d,%d",&x,&y);s=sum(x,y);printf("sum=%d\n",s);return0;}intsu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论