C语言程序设计教程(第2版)-教案全套 余琴 第1-10章 概述、数据类型、运算符和表达式- 文件_第1页
C语言程序设计教程(第2版)-教案全套 余琴 第1-10章 概述、数据类型、运算符和表达式- 文件_第2页
C语言程序设计教程(第2版)-教案全套 余琴 第1-10章 概述、数据类型、运算符和表达式- 文件_第3页
C语言程序设计教程(第2版)-教案全套 余琴 第1-10章 概述、数据类型、运算符和表达式- 文件_第4页
C语言程序设计教程(第2版)-教案全套 余琴 第1-10章 概述、数据类型、运算符和表达式- 文件_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE1教案课程名称:C语言程序设计授课教师:授课对象:非计算机专业本科授课学期:2总学时:64学时学期学时:64学时

第1次课教案一、讲授内容1.C语言简介2.C语言的特点3.简单C程序介绍4.上机环境及步骤介绍二、教学目的及要求1.对C语言形成初步的印象。2.掌握C语言上机的步骤。三、教学重点1.简单C程序介绍。2.上机环境及步骤介绍。四、教学难点初步认识C程序。五、本讲计划学时--2学时(100分钟)1.开始部分(10分钟)介绍课程目标及课程要求2.讲授课程(75分钟)通过C语言与自然语言的对比,引入C语言的教学。自然语言C语言信息交流(地位平等)(有思维、推理能力)人-机对话(命令方式)(无思维、推理能力)语法规则、句法规则灵活如:走,去晒太阳!去晒太阳,走语法规则、句法规则固定(一般不可省略、颠倒,必须按部就班)如:x=a+b;scanf(“%d%d”,a,b);表达方式多样算法多样1)C语言出现的历史背景(自学)2)C语言的特点(1)语言简洁、紧凑,使用方便、灵活。(2)运算符丰富。34种运算符。(3)数据类型丰富,具有现代语言的各种数据结构。(4)具有结构化的控制语句,是完全模块化和结构化的语言。(5)语法限制不太严格,程序设计自由度大。(6)兼有高级和低级语言的特点。(7)目标代码质量高,程序执行效率高。(8)程序可移植性好(与汇编语言比)。3)简单C程序的介绍通过简单C程序的例子,介绍C程序的构成模式。4)C语言上机步骤与方法通过简单的VisualC++上机视频介绍如何在该环境编辑、编译、连接和运行一个C程序。3.课堂讨论(10分钟)简单C程序的分析和讨论。4.内容小结(5分钟)(1)C语言的特点(2)简单C程序构成模式(3)C语言上机环境。六、实施步骤通过多媒体与板书结合,在课堂讲授过程中采用启发教学方式,,通过适当的课堂讨论来提高学生的积极性。七、总结通过本章节的学习,我们应该要掌握以下几点内容:1.简单C程序各组成部分及其相关句法规则;2.C程序的运行环境及上机步骤。第2次课教案一、讲授内容1.常量与变量的相关概念;2.整型数据、浮点型数据的存储方式及表示方法。二、教学目的及要求1.掌握常量与变量的相关概念;2.掌握整型常量和变量的存储方式及表示方法;3.掌握浮点型常量和变量的存储方式及表示方法。三、教学重点1.常量和变量的相关概念;2.整型数据和浮点型数据的存储方式及表示方法。四、教学难点整型数据和浮点型数据的存储方式及表示方法。五、本讲计划学时2学时(100分钟)1.开始部分(5分钟)复习上节课内容,回顾简单C程序构成模式。2.讲授课程(80分钟)1.C语言的基本元素1)符号集(字符集)(1)大写字母:A~Z(2)小写字母a~z(3)阿拉伯数字:0~9(4)下划线:_(5)标点符号和运算符2)标识符用来标记常量、变量、函数及文件名字的字符序列。标识符的构成规则:(1)以字母(大小写皆可)或下划线开头(2)随后可跟若干个(包括0个)字母、数字、下划线3)关键字(附录B)也称“保留字”它是C语言中具有特定含义、专门用作语言特定成分的一类标识符。ANSI推荐的C语言的关键字是32个如:main、int、char、float、define等注意:所有的关键字都有固定的意义,不能用作其他。所有关键字都必须小写。如:else与ELSE代表不同含义else是关键字,ELSE用户定义的标识符2.通过实例深入理解常量和变量的概念,及相关的命名规则。1)编译系统将大写字母和小写字母认为是两个不同的字符(习惯上,符号常量用大写)。2)建议变量名的长度最好不要超过8个字符。3)在选择变量名和其它标识符时,应注意做到“见名知意”,即选有含意的英文单词(或其缩写)作标识符。4)要求对所有用到的变量作强制定义,也就是“先定义,后使用”。3.整型数据1)整型数据在内存中是以二进制形式存放的,以二进制的补码表示;2)C规定在程序中所有用到的变量都必须在程序中定义,即“强制类型定义”;3)一个整型变量只能容纳-32768~32767范围内的数,无法表示大于32767或小于-32768的数。遇此情况就发生“溢出”;4)一个整数,如果其值在-32768~+32767范围内,认为它是int型,它可以赋值给int型和longint型变量;5)一个int型的常量同时也是一个shortint型常量,可以赋给int型或shortint型量;6)一个整常量后面加一个字母u或U,认为是unsignedint型,如12345u,在内存中按unsignedint规定的方式存放;7)在一个整常量后面加一个字母l或L,则认为是longint型常量。4.浮点型数据1)一个浮点型数据一般在内存中占4个字节(32位)。与整型数据的存储方式不同,浮点型数据是按照指数形式存储的;2)浮点型变量分为单精度(float型)、双精度(double型)和长双精度型(longdouble)三类形式。3.课堂讨论(10分钟)对常量、变量等概念的有关习题进行分析和讨论。4.内容小结(5分钟)(1)C语言基本元素(2)常量和变量(3)整型和浮点型数据六、实施步骤通过多媒体与板书结合,在课堂讲授过程中采用启发教学方式,,通过适当的课堂讨论来提高学生的积极性。七、课外作业布置熟悉学习辅导中的VisualC++上机环境,学会编译前两讲的简单C程序。八、总结1.理解常量与变量的概念及语法规则;2.掌握整型及浮点型数据的存储方式及表示方法。第3次课教案一、讲授内容1.字符型数据的语法及其存储形式和使用方法;2.算术运算符和表达式及逗号运算符和逗号表达式。二、教学目的及要求1.掌握字符型数据的存储方式、表示方法;2.掌握不同类型间数据转换的原则与方法;3.掌握有关运算符与表达式的运用。三、教学重点1.字符型数据2.运算符和表达式的运用四、教学难点1.字符型数据2.运算符和表达式的运用五、本讲计划学时2学时(100分钟)1.开始部分(10分钟)在第一章的讲授中,大家已大概了解了下C程序的构成框架,先对上次课内容进行简单的回顾,复习整型、浮点型数据的相关表示形式。2.讲授课程(75分钟)1.字符型数据1)字符常量:用单引号包含的一个字符2)转义字符3)字符变量4)字符数据在内存中的存储形式及其使用方法一个字符常量存放到一个字符变量中,实际上并不是把该字符的字型放到内存中去,而是将该字符的相应的ASCII代码放到存储单元中。这样使字符型数据和整型数据之间可以通用。字符数据与整型数据可以相互赋值字符数据可以以字符形式输出,也可以用整型数形式输出。intmain(){charc;c=‘\376’;//八进制数\376(十进制为254)printf(“%c,%d\n”,c,c);}//有些系统(如TurboC)将字符处理为带符号的整数。5)字符串常量2.各类数值型数据间的混合运算整型(包括int,short,long)、浮点型(包括float,double)可以混合运算。3.算术运算符和算术表达式C运算符(1)基本的算术运算符:+(加法运算符,或正值运算符。如:3+5、+3)-(减法运算符,或负值运算符。如:5-2、-3)*(乘法运算符。如:3*5,2*x,3*(a+b))/(除法运算符。如:5/3,(x+y)/(a+b))%(模运算符,或称求余运算符,%两侧均应为整型数据,如:7%4的值为3)。(2)算术表达式和运算符的优先级与结合性(3)强制类型转换运算符(4)自增、自减运算符4.逗号运算符和逗号表达式逗号表达式的一般形式可以扩展为:表达式1,表达式2,表达式3,……,表达式n,它的值为表达式n的值。逗号运算符是所有运算符中级别最低的。#include<stdio.h>intmain(){inta=1;printf(“结果为:%d\n”,a=3*a,3*a);//若改为(a=3*a,3*a),考虑输出结果的不同}3.课堂讨论(10分钟)字符数据输出及逗号运算符的使用。4.内容小结(5分钟)(1)字符型数据(2)算术运算符和算术表达式(3)逗号运算符和逗号表达式六、实施步骤通过多媒体与板书结合,在课堂讲授过程中采用启发教学方式,,通过适当的课堂讨论来提高学生的积极性。七、课外作业布置1.完成第二章的复习题;2.上机练习课本例题及书后习题。八、总结数据类型是C语言的基础,牢固掌握数据类型的相关语法,结合习题、上机进一步了解C程序设计的相关知识,为以后程序分析与设计打好良好基础。第4次课教案一、讲授内容1.程序的三种基本结构2.赋值语句3.字符数据的输入输出二、教学目的及要求1.掌握语句的概念;2.掌握字符数据输入输出函数。三、教学重点1.赋值语句2.字符数据的输入输出函数四、教学难点1.赋值语句2.字符数据的输入输出函数五、本讲计划学时2学时(100分钟)1.开始部分(10分钟)复习第2章有关数据类型与表达式的知识,指出上周上机操作存在的不足及需要改进的地方。2.讲授课程(75分钟)1.通过对程序的三种基本结构的介绍引入顺序程序设计的讲授。2.了解C语言中语句的分类1)简单语句2)复合语句3)空语句3.赋值语句1)掌握赋值表达式的相关概念及写法赋值运算符“=”用法:变量=表达式作用:将表达式的值赋给变量(常量、变量是表达式的特例)如:a=5;ave=(a+b)/10;赋值结果与类型转换实型数据(单、双精度)赋给整型变量时,舍弃实数的小数部分。整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中。长度相同的有符号与无符号整型数间,原样赋值(但数值有时会有变化)char、int、long等类型的转换2)赋值语句(第2章介绍了相关知识)4.字符数据的输入输出(通过了解输入输出的概念来进一步学习)1)字符输出函数putchar形式:putchar(c)作用:向显示器上输出一个字符2)字符输入函数getchar()格式:getchar()作用:从键盘缓冲区读入一个字符注意:当输入多个字符时,多余字符作废;用getchar()得到的字符可以赋给字符型变量、整型变量,或作为表达式的一部分。3.课堂讨论(10分钟)赋值运算符及字数输入输出函数的使用。4.内容小结(5分钟)(1)三种基本结构(2)赋值语句(3)字符输入输出函数六、实施步骤通过多媒体与板书结合,在课堂讲授过程中采用启发教学方式,,通过适当的课堂讨论来提高学生的积极性。七、课外作业布置1.上机练习课本例题,理解赋值语句与字符输入输出语句的应用;2.尝试修改程序达到发现问题的目的,在不断的上机实践中发现自己在语法上的问题。八、总结结合前面所学知识,进一步了解书上例题及学习辅导中例题的含义,理解赋值语句与字符输入输出语句的应用。第5次课教案一、讲授内容1.简单的格式输入与输出2.较复杂的输入输出格式控制3.初略地了解算法的相关概念二、教学目的及要求掌握格式输入输出函数的用法。三、教学重点格式输入输出函数的用法。四、教学难点格式输入输出函数的用法;五、本讲计划学时2学时(100分钟)1.开始部分(10分钟)复习前一次课有关知识,讲解上机出现的问题。2.讲授课程(75分钟)1.简单的输入输出函数1)简单的printf函数输出数据printf(格式控制符,输出项列表)格式控制符:双引号括起来的字符串输出项列表:要输出的内容(常量、变量、表达式等)如:格式控制字符串i=%3df=%5.1f格式控制符完整的格式:说明:eq\o\ac(○,1)格式字符:指定输出项的数据类型和输出的格式1)d——十进制整数2)o——无符号八进制数3)x——无符号十六进制数4)u——不带符号的十进制整数5)c输出一字符6)s输出一字符串7)e以指数的形式输出实型数8)f以小数的形式输出实型数9)g自动决定输出格式为e和f中较短的一种10)%输出%eq\o\ac(○,2)长度修正符l:对整型指长整型long例:%ld,%lx,%lo,%lu对实型指双精度double例:%lfeq\o\ac(○,3)域宽及精度的描述m:域宽,即对应的输出项在输出设备上所占的字符数若实际数据宽度>m,按实际数据宽度输出若实际数据宽度<m,左边补空n:精度,说明输出的实型数的小数位数需要注意的几点:编译程序只是检查printf函数的调用形式,不分析格式控制字符串,如果格式字符与输出项的类型不匹配,不进行类型转换;格式字符要用小写字母;格式控制字符串中可以包含转义字符;格式控制字符串中的普通字符则原样输出;输出项的参数除了常数、变量外还可以是表达式、函数调用。2)格式输入函数scanf作用:按格式控制符的要求将数据从终端传送到变量地址所指定的内存空间形式:scanf(格式控制符,变量地址列表)变量地址:通过对变量名“求地址”运算得到形式:&变量名控制符格式与printf相似,在此不做过多说明。注意:scanf中不使用U说明符,对unsigned型数据用d,o,x说明符输入;输入数据时不能规定数据的精度如:scanf(“%4.2f”,&a);在“格式控制”字符串中,若有格式说明以外的其他字符,输入时应照原样输入如:scanf(“a=%d,b=%f”,&a,&b);输入:a=123,b=45.678%c一次接收一个字符,无需单引号,空格字符是有效字符。2.简单的顺序结构程序设计3.课堂讨论(10分钟)通过课本中两个具体实例,分析如何使用输入输出函数及简单顺序程序设计。4.内容小结(5分钟)(1)输入函数(2)输出函数六、实施步骤通过多媒体与板书结合,在课堂讲授过程中采用启发教学方式,,通过适当的课堂讨论来提高学生的积极性。七、课外作业布置1.书后习题3、4、6;2.鸡兔同笼问题:已知鸡兔总头数为h,总脚数为f,求鸡兔各多少只?八、总结C的输入输出格式较多,比较烦琐,但用得不对,则会浪费大量调试时间,因此对于这部分的学习必须通过多上机练习,才能更好地掌握。第6次课教案一、讲授内容1.条件判断关系运算和关系表达式;逻辑运算符及逻辑表达式2.if语句二、教学目的及要求1.掌握关系与逻辑表达式的用法;2.掌握if语句的用法。三、教学重点1.格式输入输出函数的用法;2.if语句的用法。四、教学难点关系与逻辑表达式的用法。五、本讲计划学时2学时(100分钟)1.开始部分(10分钟)复习前一次课有关知识,讲解上机出现的问题。2.讲授课程(80分钟)1.算法相关概念及表示方法(1)带序号的自然语言描述易懂却不直观,不严格(2)流程图:灵活、自由、形象、直观,可表示任何算法(3)N-S图(盒图):完全去掉了带箭头的流程线,算法的所有处理步骤都写在一个大矩形框(表示简单、符合结构化思想)(4)伪代码:用介于自然语言与计算机语言之间的文字及符号来描述算法(方便、易懂、便于向计算机语言过渡)2.条件判断(1)关系运算和关系表达式关系运算符及其优先次序:<(小于)<=(小于或等于)>(大于)>=(大于或等于)前4个优先级相同(高)==(等于)!=(不等于)后2个优先级相同(低)关系运算符的优先级低于算术运算符!关系运算符的优先级高于赋值运算符!关系表达式:用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符表达式)接起来的式子,称关系表达式。例:a>b,a+b>b+c,(a=3)>(b=5),’a’<‘b’,(a>b)>(b<c)!关系表达式的值是一个逻辑值,即“真”或“假”。例:关系表达式”a>b”的值为“真”,表达式的值为1。(2)逻辑运算符和逻辑表达式逻辑运算符及其优先次序&&(逻辑与)相当于其他语言中的AND||(逻辑或)相当于其他语言中的OR!(逻辑非)相当于其他语言中的NOT例:a&&b若a,b为真,则a&&b为真。a||b若a,b之一为真,则a||b为真。!a若a为真,则!a为假。优先次序:!(非)->&&()->||()逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算术运算符逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。逻辑表达式的值应该是一个逻辑量“真”或“假”。3.if语句1)if语句的三种形式:条件执行if(e)AA可为简单或复合语句如:if(a>0)printf(“aispositive.\n”);if(x>y){z=y;y=x;x=z;}分支选择if(e)AelseB当e为真值(非0)时执行A,否则执行B或后续语句。if(a>0)printf(“Aispositive.\n”);elseprintf(“Aisnotpositive.\n”);例:读程序,写出它所完成的功能。#include<stdio.h>intmain(){floatx,y;printf(“Enterx:”);scanf(“%f”,&x);if(x==0)y=1;elsey=(x*5+1)/x;printf(“\nx=%4.1f\ty=%4.1f\n”,x,y);}elseif形式(阶梯式的if-else语句)if(P1)S1elseif(P2)S2…..elseif(Pn)SnelseSn+1系统从上到下的逐个判断条件P,一旦发现某条件Pi满足时,则执行与它有关的语句Si,并跳过其他剩余的阶梯。若所有条件均不满足,执行最后一个else语句或后续语句。注意:else与最近的if相匹配。思考:评价学生的成绩score>=90优秀score>=80良好score>=70中score>=60及格score<60不及格3.课堂讨论(10分钟)关系表达式和逻辑表达式的运算。六、实施步骤通过多媒体与板书结合,在课堂讲授过程中采用启发教学方式,通过适当的课堂讨论来提高学生的积极性。七、总结选择结构是C语言中非常重要的程序设计结构,要求学生结合上机掌握逻辑表达式,条件判断语句的用法。第7次课教案一、讲授内容1.if语句2.switch语句3.程序举例二、教学目的及要求掌握选择性程序设计语句的用法。三、教学重点选择型程序设计语句。四、教学难点选择型程序设计语句。五、本讲计划学时2学时(100分钟)1.开始部分(10分钟)复习前一次课有关知识,讲解上机出现的问题。2.讲授课程(75分钟)1.if语句2)if语句的嵌套if(P1)if(P1)if(P2)AelseBelseif(P3)CelseD例:计算函数#include<stdio.h>#include<math.h>intmain(){floatx,y;printf(“inputx:”);scanf(“%f”,&x);if(x<-3.0)y=x-1.0;elseif(x>=-3.0&&x<=3.0)y=sqrt(9.0-x*x);elsey=log10(x);printf(“x=%0.1f\ty=%0.1f\n”,x,y);}3)条件运算符与条件表达式条件运算符:?和:/*唯一的三目运算符*/条件表达式:e1?e2:e3如:a>b?a:bx==0?1:sin(x)/x执行过程:1)计算e12)e1值为非0(真),计算并返回e2的值否则计算并返回e3的值运算顺序:高于赋值运算,低于算术、关系、逻辑运算条件运算符的结合方向是“右结合”如:a>b?a:c>d?c:d等价于:a>b?a:(c>d?c:d)思考:读程序,写出程序完成的功能。#include<stdio.h>intmain(){inta,b,imax;printf(“inputdatatoaandb:”);scanf(“%d,%d”,&a,&b);imax=a>b?a:b;printf(“Themaxis%d\n”,imax);}2.开关语句亦称为多分支选择语句,比用嵌套的if语句实现多路分支问题,其程序结构清晰、易读。1)格式switch(e){casec1:语句1casec2:语句2……casecn:语句n[default:语句n+1]}2)执行过程计算表达式e的值;若与常量表达式ci值一致,则从语句i开始执行;直到遇到break语句或switch语句的”}”。若与任何常量表达式值均不一致时,则执行default语句或执行后续语句。3)注意常量表达式ci仅起语句标号作用,不作求值判断;常量表达式的值必须是唯一的;多个case语句课共用一组执行语句。3.程序举例(见课本)3.课堂讨论(10分钟)通过课本中具体实例,分析选择型程序设计。4.内容小结(5分钟)(1)if语句(2)开关语句六、实施步骤通过多媒体与板书结合,在课堂讲授过程中采用启发教学方式,,通过适当的课堂讨论来提高学生的积极性。七、课外学习辅导安排及作业布置1.书后习题5、6、72.完成第四章练习册习题。八、总结选择结构是C语言中非常重要的程序设计结构,要求学生结合上机掌握逻辑表达式,条件判断语句的用法。第8次课教案一、讲授内容for、while、do…while实现循环二、教学目的及要求掌握三种循环语句的运用。三、教学重点三种循环语句四、教学难点三种循环语句的运用五、本讲计划学时2学时(100分钟)1.开始部分(5分钟)复习if语句有关知识,讲解上机出现的问题。2.讲授课程(90分钟)1.循环的概念通过对选择结构设计的简单复习和解决问题的有限,引入循环的概念。循环语句:while,do…while,for2.while循环1)用while语句实现当型循环,一般形式:while(表达式)语句;当型循环的特点:先判断表达式,后执行语句。如:k=1;while(k<=100){s=s+k;k++;}循环控制表达式、循环控制变量、循环体注意:若循环体包含一条以上的语句,应以复合语句形式出现;循环前,必须给循环控制变量赋初值;循环体中,必须有改变循环控制变量值的语句;循环体可以为空,如:while((c=getchar())!=’A’);例1:回忆上一章介绍算法时计算1+2+…+100求和的问题,尝试用while循环解决。例2:求100以内的奇数、偶数之和。3.do-while循环do-while语句用来实现“直到型”循环,一般形式为:do语句while(表达式)例:用do-while循环修改上节例1。4.for循环for循环的一般形式:for(表达式1;表达式2;表达式3)语句for循环的其他形式(P102)说明:1)表达式1省略时,应在for前给循环变量赋初值;如:k=1;for(;k<=3;k++)s=s+k;2)表达式2省略时,不判断循环条件,将成为“死循环”,需要在循环体中引入break语句以退出循环;3)表达式3省略时,循环体内应使循环条件改变的语句;4)同时省略表达式1和表达式3,只有表达式2,此时相当于while语句。5)表达式2一般是关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只要其值不等于0就执行循环体。例1:读程序,写出程序的功能。#include<stdio.h>intmain(){charc;for(;(c=getchar())!=’\n’;)putchar(c);putchar(‘\n’);}例2:用for循环修改上节例2。3.内容小结(5分钟)三种循环的特点。六、实施步骤通过多媒体与板书结合,在课堂讲授过程中采用启发教学方式,,通过适当的课堂讨论来提高学生的积极性。七、课外学习辅导安排运用三种循环实现1+2+…+100。八、总结循环结构是结构化程序设计的基本结构之一,熟练掌握循环结构的概念及使用,是程序设计的最基本的要求。相比前面的章节,本章涉及大量编程习题,需要同学们上机多加练习。第9次课教案一、讲授内容循环的嵌套二、教学目的及要求掌握循环的嵌套。三、教学重点循环的嵌套四、教学难点循环的嵌套五、本讲计划学时2学时(100分钟)1.开始部分(5分钟)复习三种循环的有关知识,讲解上机出现的问题。2.讲授课程(75分钟)1.循环的嵌套一个循环体内包含着另一个完整的循环结构,就称为循环嵌套;内嵌的循环中可以嵌套循环,从而构成多重循环;三种循环可以互相嵌套。说明:嵌套的循环控制变量不能相同;内循环变化快,外循环变化慢;正确确定循环体;循环控制变量常与求解的问题挂钩。2.通过各种图案的打印讲解循环的嵌套。3.几种循环的比较3.课堂讨论(15分钟)例:试找出满足下列条件的所有三位数1)其百位数不大于2;2)将个位与百位对换,得到的三位数是原三位数的两倍多。4.内容小结(5分钟)循环的嵌套的执行过程。六、实施步骤通过多媒体与板书结合,在课堂讲授过程中采用启发教学方式,,通过适当的课堂讨论来提高学生的积极性。七、课外学习辅导安排1.编程打印九九乘法口诀表。2.书后习题6、7。八、总结循环结构是结构化程序设计的基本结构之一,熟练掌握循环结构的概念及使用,是程序设计的最基本的要求。相比前面的章节,本章涉及大量编程习题,需要同学们上机多加练习。第10次课教案一、讲授内容1.break语句和continue语句2.三种基本结构的综合应用二、教学目的及要求1.掌握break语句和continue语句。2.掌握三种基本结构的综合应用。三、教学重点break语句和continue语句四、教学难点break语句和continue语句五、本讲计划学时2学时(100分钟)1.开始部分(5分钟)复习循环嵌套的有关知识,讲解上机出现的问题。2.讲授课程(95分钟)1.break语句和continue语句break语句:用break语句可以结束switch结构和三种循环。(P109例5.7)continue语句:用continue语句可以结束本次循环,即忽略循环体中剩余的语句。2.通过例题讲解三种基本结构的综合应用六、实施步骤通过多媒体与板书结合,在课堂讲授过程中采用启发教学方式,,通过适当的课堂讨论来提高学生的积极性。七、总结循环结构是结构化程序设计的基本结构之一,熟练掌握循环结构的概念及使用,是程序设计的最基本的要求。灵活运用三种基本结构设计满足要求的程序。第11次课教案一、讲授内容1.数组的概念2.一维数组的定义和引用3.二维数组的定义和引用二、教学目的及要求1.掌握数组的概念和使用2.掌握数组初始化的方法三、教学重点1.数学建模的基本方法2.数学模型在算法设计中的应用。四、教学难点1.一维数组2.二维数组和多维数组五、本讲计划学时2学时(100分钟)1.开始部分(10分钟)1)前面使用的数据类型都属于基本类型(整型、实型、字符型),存储特点是:每个变量单独存储,亦称简单变量。2)C语句中除基本类型还有另一些复杂类型,合称为构造类型由基本类型构造而成的。3)构造类型的每一个分量是一个变量,它可以是一个简单类型或构造类型;分量的使用方法与简单变量相同;分量占用相邻的存储空间。4)对于构造类型的变量来说,重点是访问其分量的方法。2.讲授课程(75分钟)1.数组的概念计算机处理数据时,经常出现数据是用某种有序的形式进行组织的情况,如随温度而改变的实验数据,按学号排列的成绩表。这些数据的共同特征:都是由若干个分量组成;数据的诸分量都是同一类型(可取任何类型);这些分量是按一定顺序排列的。1)数组:按序排列的具有相同类型的变量的集合。2)用一符号名(数组名)来表示这一组数。3)用数组名后跟下标来唯一确定数组中的元素。4)数组的首地址、数组元素的类型和个数(数组长度)。2.一维数组1)定义:类型名数组名1[exp],数组名2[exp],……exp为常量表达式数组名命名规则和简单变量名相同;数组名后只能用方括弧括起来的常量表达式;常量表达式的值确定数组元素的个数。2)一维数组的存储:用连续的内存单元存放各个元素。保存数组所需内存量与数组元素的基本类型和数组大小有关总字节数=sizeof(基本类型)*数组元素个数3)一维数组的引用数组必须先定义后引用;C语言规定只能逐个引用数组元素,而不能一次引用整个数组;引用一维数组元素的一般形式:数组名[下标]例:读程序#include<stdio.h>intmain(){inti,a[10];for(i=0;i<=9;i++)a[i]=i;for(i=9;i>=0;i--)printf(“%d”,a[i]);printf(“\n”);}4)一维数组的初始化在定义数组时对数组元素赋以初值(如:inta[4]={1,2,3,4};);给一部分元素赋初值;若对全部数组元素赋初值时,可以不指定数组长度;例题:P1173.二维数组在C语言中,数组的元素还可以是数组,这样就构成二维数组。1)二维数组的定义:类型名数组名[C_exp1][C_exp2],……如:inta[3][4],b[4][M](M是符号常量)2)二维数组的存储二维数组从概念上可理解为行-列矩阵,但存储器是一维的,需按一定规则转换。数组元素的实际存放顺序是:右边下标比左边下标变化快。3)二维数组的引用数组名[下标][下标]如:inta[2][4],b[5][3]注意下标的最大取值,即:要注意数组定义和数组元素引用的区别。4)二维数组的初始化(按行存放)按存放顺序赋:intx[2][3]={1,2,3,4,5,6};按行赋:intx[2][3]={{1,2,3},{4,5,6}};部分赋:staticintx[2][3]={1,2,4};5)二维数组程序举例3.课堂讨论(10分钟)一维数组和二维数组的应用。4.内容小结(5分钟)(1)一维数组(2)二维数组六、实施步骤通过多媒体与板书结合,在课堂讲授过程中采用启发教学方式,,通过适当的课堂讨论来提高学生的积极性。七、课外作业布置1.编程统计全班某门功课期末考试的平均分数和最高分数(设全班人数为30)2.书本例题上机练习。八、总结通过数组的学习,使得程序设计中的数据结构更加丰富,本次课的学习要求同学们掌握一维、二维数组的定义、存储和使用。第12次课教案一、讲授内容字符数组的定义和使用。二、教学目的及要求掌握字符数组和字符串的应用。三、教学重点掌握字符数组和字符串的应用。四、教学难点掌握字符数组和字符串的应用。五、本讲计划学时2学时(100分钟)1.开始部分(10分钟)通过作业的讲解复习上节介绍的有关一维、二维数组的知识。2.讲授课程(75分钟)1)字符数组的定义在C语言中,没有专门的字符串变量,而是将字符串存入字符数组来处理;用一个一维数组来存放一个字符串,每个元素存放一个字符;字符数组是数组的一个特殊情况,但它的定义方法与上述介绍的类似;引用方法可以与上述介绍的相同,也有其独特的引用方法;由于字符型与整型是互相通用的。2)字符数组的初始化按元素赋:staticcharc[10]={‘s’,’t’,’o’,’r’,’e’};注意:在C语言中,将字符串作为字符数组来处理,即用一个一维数组来存放一个字符串;为了测定实际字符串长度,C语言规定了一个“字符串结束标志”。使用字符串常量给字符数组赋初值例:charc[6]={“china”};注意:以字符串方式赋值时,必须保证数组元素个数>=字符个数+1。例:字符数组初始化#include<stdio.h>intmain(){chara[7]={’a’,’p’,’p’,’l’,’e’};charb[7]={“apple”};charc[7];staticcharx[7];inti;for(i=0;i<=6;i++)printf(“%6d%6d%6d%6d\n”,a[i],b[i],c[i],x[i]);}3)字符串的引用与输入输出对于字符数组,在程序中既可以逐个引用字符串中的单个字符(数组元素),也可以一次引用整个字符串(数组)。逐个字符数组元素输入输出:用%c格式符描述;整个字符串输入输出,用%s格式符描述(只要遇到“\0”便结束)。4)字符串处理函数gets(字符数组名)从键盘输入一个字符串(以回车结束)放到数组中,并得到一个函数值,该函数值是字符数组的其实地址;puts(字符数组名/字符串)将数组中的字符串(以’\0’结束的字符序列)输出到终端上,输完换行。strcpy(字符数组1,字符串/字符数组2)将字符串/字符数组2中的字符串拷贝到字符数组1中。strcat(字符数组1,字符串/字符数组2)将字符串或字符数组2连接到字符串1的后面,并放在字符数1中。strcmp(字符数组1/字符串1,字符数组2/字符串2)strlen(字符数组名/字符串)strlwr(字符串)strupt(字符串)5)字符数组应用举例(P134)3.课堂讨论(10分钟)字符数组的初始化及字符串的引用与输入输出。4.内容小结(5分钟)(1)字符数组的初始化(2)字符串的引用与输入输出。(3)字符串处理函数六、实施步骤通过多媒体与板书结合,在课堂讲授过程中采用启发教学方式,,通过适当的课堂讨论来提高学生的积极性。七、课外学习辅导安排及作业布置1.上机练习课本例题及习题。2.编程:选秀某课程的学生共10人,按成绩高低输出学生名单。(用比较法排序)八、总结字符型数据也是C语言中重要的数据类型,要通过不断练习掌握字符数组的定义、初始化、引用等知识。第13次课教案一、讲授内容1.函数定义2.函数的参数及返回值二、教学目的及要求掌握函数的定义和参数。三、教学重点1.函数的定义2.函数的参数及返回值四、教学难点函数的参数及返回值五、本讲计划学时2学时(100分钟)1.开始部分(10分钟)通过两个问题引入:1)我的程序有上百行,如何调试最方便?2)我想设计一个程序完成下面的计算m!n!/(m-n)!其中,m、n为正整数且m>n,该如何设计程序最有效?2.讲授课程(75分钟)1.函数概述1)C程序结构:一个C程序可以分为若干个函数;每个程序有且只有一个主函数,其他函数都是子函数;子函数可以相互调用,但主函数不能被调用;一个C源程序由一个或多个文件构成,一个源程序文件是一个编译单位。2)几点说明C程序的执行从main函数开始,调用其他函数后仍回到main函数,程序在main函数结束时结束;所有子函数都是平行的,任何子函数都不属于其他函数;从用户角度看,函数可分为:标准函数,自定义函数;从函数形式看,可分为:无参数函数,有参数函数。2.函数定义函数定义的一般形式:类型说明函数名([形式参数说明]){函数体}形式参数说明方法:类型说明变量名[,类型说明变量名]….1)无参函数的定义形式类型说明函数名(){函数体}2)有参函数的定义形式类型说明函数名(形式参数说明){函数体}3)空函数的定义形式类型说明函数名([形式参数说明]){}如:intsum(intx,inty){intz;z=x+y;return(z);}intprinthello(charname[]){printf(“Hello,%s\n”,name);}一般情况下,函数体由两部分组成{[局部变量说明]语句}局部变量:函数体内定义的变量,其有效范围仅限于所在的函数内部,离开函数体则无意义。3.函数参数和函数的值C程序中各函数调用时经常需要传递一些数据,即调用函数把数据传递给被调用函数,经被调用函数处理后,得到一个确定的结果,在返回调用函数时,把这结果带回调用函数。1)形式参数和实际参数函数参数:用于函数间数据的传递形式参数:定义函数时使用的参数实际参数:引用函数时使用的参数说明:(1)定义函数时,必须说明形参的类型。(2)函数被调用前,形参不占用内存;函数调用结束后,形参所占用的内存也将被回收。(3)实参可以是常量、变量或表达式。(4)实参与形参的类型必须一致。(5)C语句中实参对形参的数据传递是“值传递”,即单向传递。例:读程序,写出运行结果#include<stdio.h>intsum(inta,intb){a=a+b;b=a+b;returna;}intmain(){inta=1,b=3,c;c=sum(a,b);printf(“Sumof%d,%dis%d\n”,a,b,c);}2)函数的返回值(1)返回函数值的方法:如果一个函数有返回值,就必须使用return语句;一个函数中可以有一个以上的return语句,但不论执行到哪个return都将结束函数的调用返回主调函数。return语句中的括号可以省略,后面的值可以是一个表达式。(2)函数值的类型函数的类型即函数值的类型;省略了类型说明的函数是int型的;return语句中表达式的值一般应与函数类型一致;如果不一致,则需要进行类型转换。(3)不需要返回值的函数如果函数中没有使用return语句,函数返回的是一个不确定的数值;如果一个函数不需要返回值(表示一个过程),可以用int做类型说明;如果一个函数被声明为int类型,就不允许再引用它的返回值。3.课堂讨论(10分钟)形式参数与实际参数的区分及值传递。4.内容小结(5分钟)(1)函数的定义(2)函数的参数和函数的值六、实施步骤通过多媒体与板书结合,在课堂讲授过程中采用启发教学方式,,通过适当的课堂讨论来提高学生的积极性。七、课外学习辅导安排及作业布置1.上机练习课本例题。2.课后习题1、3。八、总结C语言中,函数是用来完成某一个特定功能的,C程序是由一个或多个函数组成的,因此必须熟练地掌握函数的基本知识及函数参数的相关知识。第14次课教案一、讲授内容1.函数的调用2.函数的嵌套调用二、教学目的及要求掌握函数的调用。三、教学重点函数的嵌套调用。四、教学难点函数的嵌套调用五、本讲计划学时2学时(100分钟)1.开始部分(10分钟)复习前一次课有关知识,讲解上机出现的问题。2.讲授课程(85分钟)1.函数的调用1)函数调用的一般形式函数名(实参表列)(1)如果调用无参函数,实参表列可以忽略,但括号不能省;(2)实参的个数和形参一般相等;(3)实参与形参的类型应一一对应,必要时使用类型转换。2)函数调用的方式(1)函数语句:函数名(实参表列)(2)函数表达式:函数的返回值参与运算。3)函数调用的执行过程(1)按从右向左顺序,计算实参中各表达式的值;(2)按照位置,将实参的值一一对应地传送给形参;(3)执行被调用函数;(4)当遇到return(表达式)语句时,计算表达式的值,并返回主调函数。4)函数的原形说明(1)被调函数必须存在,且遵循“先定义后使用”的原则;(2)如果被调函数的定义在主调函数之后,可以先给出原形说明。2.函数的嵌套调用嵌套调用是指在一个函数的函数体中又调用了其他函数。3.数组作为函数的参数1)数组元素做函数实参与变量做实参一样,数组元素做实参是“值传递”。例:求10个任意整数中的最大数。2)一维数组与函数参数若函数的形参是数组,对应的实参必须是数组名。说明:(1)实参数组与形参数组的类型必须一致;(2)用数组名做参数时,传递的是数组的首地址,因此形参数组也可以不指定大小;(3)数组做函数参数时,形参数组和实参数组共享同一内存单元。3.内容小结(5分钟)(1)函数的调用(2)数组作为函数参数六、实施步骤通过多媒体与板书结合,在课堂讲授过程中采用启发教学方式,,通过适当的课堂讨论来提高学生的积极性。七、课外学习辅导安排及作业布置1.已有函数调用语句c=add(a,b);请编写add函数,计算两个实数a和b的和,并返回和值。2.上机练习课本例题。八、总结对于函数调用的理解能够帮助学生更好地读懂程序的结构,使程序更加清晰。第15次课教案一、讲授内容1.地址和指针的概念2.变量的指针和指向变量的指针变量二、教学目的及要求1.掌握指针变量的定义与引用2.掌握指针与变量的关系三、

温馨提示

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

评论

0/150

提交评论