c顺序结构教案
- 格式:doc
- 大小:241.50 KB
- 文档页数:6
一、实验准备实验准备实验准备实验准备1、C语言程序的上机操作语言程序的上机操作语言程序的上机操作语言程序的上机操作C是编译型语言,设计好一个C源程序后,需要经过编译生成目标文件(扩展名.obj)、连接生成可执行文件(扩展名.exe),然后执行。
一个C程序的具体开发步骤如下: (1) 启动启动启动启动VC++ 6.0:“开始”“程序”“Microsoft Visual C++ 6.0” (2) 新建文件新建文件新建文件新建文件:“文件”“新建”在“新建”对话框中选择“文件”标签列表框中选“C++ Source File”,在右边指定文件名和保存位置。
(3) 编辑编辑编辑编辑:录入或修改源程序并保存(Ctrl+S) (4) 调试运行调试运行调试运行调试运行:编译(Ctrl+F7)连接(F7)运行(Ctrl+F5),若有错需修改源程序后再调试程序 (5) 关闭工作区关闭工作区关闭工作区关闭工作区:“文件”“关闭工作空间”,一个程序调试结束后需关闭当前工作空间,再从第(2)步开始下一个程序的调试 2、、、、C程序的调试程序的调试程序的调试程序的调试调试即是在源程序中查找错误并修改错误的过程。
程序的错误一般分为两类:语法错误和逻辑错误语法错误和逻辑错误语法错误和逻辑错误语法错误和逻辑错误。
①语法错误语法错误语法错误语法错误:指不符合C语言语法规则而产生的错误。
语法错误系统能检测出来并告之原因及位置,设计者可参考修改。
②逻辑错误逻辑错误逻辑错误逻辑错误:指程序的运行结果与预期的结果不符而产生的错误。
这类错误拔除难度较大,一般需祥细分析算法或在程序运行过程中设置断点、追踪程序的运行来纠错。
(1)语法错误调试案例(建立程序名为ex1-1.c)# include <stdio.h> void main() { int i=0 //错误原因:语句结束位置缺分号printf("i=%d\n",i); } 调试并查找以上程序的语法错误并分析原因并改正。
06c语言程序设计教案程序的控制结构—顺序结构int a=-1;printf(“%d,%o”,a,a);输出结果为:-1,177777这是因为-1在内存中以补码形式存放(见图3-2)。
八进制数为从低位开始,以三位一组划分为一个八进制数。
3)x格式符。
以十六进制数无符号形式输出整数。
例如:int a=-1;printf(“%x,%o,%d”,a,a,a);输出结果为:ffff,177777,-1十六进制数为从低位开始,见图3-2,以四位一组划分为一个数。
4)u格式符。
以十进制数无符号形式输出整数。
一个有符号的(int)型数据能够用%d格式输出,也能够用%u格式输出。
要注意两类数据的取值范畴大小。
例如:无符号数据的输出。
main(){unsigned int x=65535;int y=-1;printf(“x=%d,%o,%x,%u\n”,x,x,x,x);printf(“y=%d,%o,%x,%u\n”,y,y,y,y);}运行结果为:x=-1,177777,ffff,65535y=-1,177777,ffff,65535即-1的二进制形式以无符号形式输出时为整数65535。
5)c格式符。
用来输出一个字符。
例如:char x=’A’;printf(“%c,%d\n”,x,x);运行结果为:A,65能够看出,一个范畴在0~255的整数,既能够用%d格式输出,也能够用%c格式输出。
输出该整数或者整数对应ASCII的字符。
6)s格式符。
用来输出一个字符串,该格式有以下用法:①%s例如:printf(“%s”,”HELLO”);运行结果为:HELLO②%±ms,假如%ms字符串的实际宽度小于m,右对齐,左端补空格,%-ms,字符串左对齐,右端补空格;否则,不受m限制,输出实际宽度。
③%±m.ns,若%m.ns取字符串左端n个字符,输出在m列的右端,左端补空格;%-m.ns,取字符串左端n个字符,输出在m列的左侧,右侧补空格;若m<n,则m自动取n 值输出n个字符。
《顺序结构》教案【教学目标】1.理解顺序结构的执行流程,掌握赋值语句和输入输出语句,会编写简单的顺序结构程序,并把程序应用于解决实际问题。
2.初步学会从简单问题出发,运用程序设计解决实际问题的方法,体验程序设计的基本思想方法。
3.激发学生学习程序设计的求知欲,培养学生的创新、探索精神。
【教学重难点】重点:认识并理解程序顺序结构的流程图,能根据程序顺序结构的执行流程,编写程序解决简单的问题。
难点:赋值语句、输入输出语句的实际应用,能根据问题要求写出正确的程序。
【课时安排】1课时【教学过程】一、热身小练习师:同学们,老师知道大家已经学习过一段时间的C++程序设计了,那现在我们通过一个热身小练习活动,让老师来了解一下你们的学习情况,我们就以开小火车的形式进行吧,首先是判断题,需要判断下列语句的正误,并且说明理由。
那等下火车开下去,每位同学只需要回答这上面的一个小题就可以了,来,从这位同学开始吧!第1小题是对还是错?为什么?<<流插入运算符 cout<<表达式;>>流读取运算符 cin>>变量;标识符:只能由字母或下划线开头,后面的字符可以是字母或数字。
x=++b;表示先将b的值加上1,再赋值给xx=b++;表示先将b的值赋给x后,再将b的值加1师:看来大家对于前面的知识掌握得都很牢固。
二、知识新授(1)例题引入师:下面我们一起来解决一个问题。
有红和蓝两个墨水瓶,但现在却错把蓝墨水装在了红墨水瓶中,红墨水装错在了蓝墨水瓶中,要求将其互换,请你设计算法解决这个问题。
生:回答。
师:你能不能把你刚才说的方法细化成具体的步骤?第1步:把红墨水瓶子中的蓝墨水倒入空墨水瓶中(t=a;)第2步:把蓝墨水瓶子中的红墨水倒入红墨水瓶中(a=b;)第3步:把空墨水瓶中的蓝墨水倒入蓝墨水瓶中(b=t;)师:如果用变量a表示红墨水瓶,用变量b表示蓝墨水瓶,用变量t表示空墨水瓶,然后请你用变量表达式描述刚才这3个步骤,应该怎么表示呢?师:同学们,刚才两瓶墨水的交换过程是一步一步按顺序执行的,在程序设计中,像这样按顺序执行的程序结构称为顺序结构,也就是我们今天要学习的内容《顺序结构》。
少年易学老难成,一寸光阴不可轻- 百度文库第3课最简单的C程序设计——顺序结构(一)一、教学目标1、C语句概述2、赋值语句3、数据输入输出的概念及在C语言中的实现4、字符数据的输入输出putchar 函数(字符输出函数)getchar函数(键盘输入函数)二、教学过程语句是语言的主要组成成分之一。
一个完整的C程序是由若干条C语句有机组合而成的。
1、C语句可分为以下五类:(1) 控制语句;(2)函数调用语句、(3) 表达式语句、(4) 空语句、(5)复合语句(1)控制语句:控制语句用于控制程序的流程,以实现程序的各种结构方式。
它们由特定的语句定义符组成。
C语言有九种控制语句。
可分成以下三类:a)条件判断语句:if语句、switch语句;例:int a=5, b=10;if(a>b){printf("Max is a");}else{printf("Max is b");}b) 循环执行语句:do while语句、while语句、for语句;例:int i;for(i=1;i<=5;i++){printf("%d\n",i);}c) 向语句:break语句、goto语句、continue语句、return语句。
(2)函数调用语句:由函数名、实际参数加上分号“;”组成。
语法:函数名(实际参数表);例如:printf("I Love You");调用库函数,输出字符串。
(3)表达式语句:表达式语句由表达式加上分号“;”组成。
语法:表达式;a=3 是赋值表达式a=3; 是赋值语句(注意分号结束)例如:x=y+z; 赋值语句;y+z; 加法运算语句,但计算结果不能保留,无实际意义;i++; 自增1语句,i值增1。
(4)空语句:只有分号“;”组成的语句称为空语句。
空语句是什么也不执行的语句。
在程序中空语句可用来作空循环体。
《C语言程序设计基本结构》教案教师姓名授课班级授课形式授课日期授课时数授课章节名称顺序结构程序设计教学FI的掌握顺序结构程序设计核心,并能够熟练使用输入输出函数。
教学重点顺序结构、输入输出函数教学难点输入输出函数使用教具计算机第3章C语言程序设计的3种基本结构所谓“程序结构”,即指程序中语句的执行顺序。
1.程序设计的三种基本结构程序一般由三种基本结构组成,即顺序结构、选择结构和循环结构。
(1)顺序结构是最基本、最简单的结构,它由若干部分组成,按照各部分的排列次序依次执行,表达式语句组图4.3循环结构如图4」所示。
(2)选择结构又称分支结构,是根据给定的条件,从两条或者多条路径中选择下一步要执行的操作路径,如图4.2所示。
图屮菱形屮的“表达式”表示给定的条件,当条件成立(即表达式的值非0)时,选择语句组1操作,否则选择语句组2操作。
(3)循环结构是根据一定的条件,重复执行给定的一组操作,如图4.3所示。
图中菱形中的“表达式”表示给定的条件,当条件成立(即表达式的值非0)时,重复执行语句组操作,一旦条件不成立时,即离开该结构。
由这三种基本结构或三种基本结构的复合嵌套构成的程序称为结构化程序。
结构化程序的特点是结构清晰、层次分明、具有良好的可读性。
2.程序设计的基本过程在实际应用屮,程序设计的过程可分为三个步骤:分析问题、设计算法、实现程序。
(1)分析问题明确要解决的问题是什么,需要输入哪些数据,需要进行什么处理,最终要得到哪些处理结果。
对要输入、输出的数据进行分析,确定数据类型。
(2)设计算法在对输入、输出的数据分析Z后,要设计数据的组织方式,设计解决问题的操作步骤, 并将操作步骤不断完善,最终得到一个完整的算法。
(3)实现程序选择一种程序设计语言,将算法设计后得到的数据组织方式、算法具体步骤转化成用具体的程序设计语言來描述,实现整个算法。
3.1顺序结构3.1.1赋值语句、复合语句、空语句顺序结构是程序中最简单的一种结构。
c语言顺序结构课程设计一、课程目标知识目标:1. 掌握C语言的基本语法和结构,理解顺序结构程序设计的概念;2. 学会使用C语言中的基本数据类型、变量和常量,并能正确进行赋值和运算;3. 掌握C语言中的输入输出语句,能够实现数据的输入和输出;4. 理解顺序结构程序设计中常用的控制语句,如条件语句和循环语句。
技能目标:1. 能够编写简单的顺序结构C语言程序,实现基本的数学运算和数据处理;2. 学会使用顺序结构程序设计解决实际问题,培养问题分析和算法设计的能力;3. 掌握C语言调试工具的使用,能够对顺序结构程序进行调试和优化。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发主动学习和探究的精神;2. 培养学生的逻辑思维能力和团队协作精神,提高解决实际问题的能力;3. 增强学生的自信心和成就感,培养面对困难和挑战时的积极态度。
课程性质:本课程为C语言程序设计的基础课程,侧重于顺序结构程序设计的基本概念和技能培养。
学生特点:学生为初中生,具有一定的数学基础和逻辑思维能力,对编程有一定兴趣,但实践经验不足。
教学要求:结合学生特点,注重理论与实践相结合,通过案例分析和实际操作,使学生掌握顺序结构程序设计的基本方法和技巧。
在教学过程中,关注学生的个体差异,提供个性化指导,确保课程目标的实现。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. C语言简介:介绍C语言的发展历程、特点和应用领域,使学生了解C语言的重要性。
教材章节:第一章 C语言概述2. 基本数据类型与变量:讲解整型、浮点型、字符型等基本数据类型,以及变量和常量的定义与使用。
教材章节:第二章 数据类型与运算符3. 输入输出语句:学习C语言中的输入输出函数,掌握printf和scanf函数的使用。
教材章节:第二章 输入输出语句4. 运算符与表达式:介绍各类运算符及其优先级,学会编写简单的数学运算表达式。
教材章节:第二章 运算符与表达式5. 顺序结构程序设计:讲解顺序结构的概念,分析顺序结构程序设计的步骤和方法。
C语⾔学案(三、顺序结构程序设计)课题3-1:顺序结构程序设计(1)——基本语句与字符输⼊输出、printf函数【知识⽬标】1.了解C语句的分类、数据输⼊输出的概念;2.掌握pritnf()格式输出函数;3.掌握字符数据的输⼊输出函数getchar()和putchar()。
【技能⽬标】1.能阅读各种格式printf的程序,并计算出数据输出的结果。
【学习⽅法】⼩组协作、⾃主探究、展⽰交流、任务驱动【学习环境】多媒体教室【学习过程】⼀、创设情境,激趣导⼊在程序中,常量、变量、运算符、表达式是构成程序的基本要素,从本章开始将深⼊介绍如何将这些基本要素有效地组合在⼀起,构成合法有意思的程序。
顺序结构是结构化程序设计中最简单、最常⽤的基本结构,也是任何应⽤程序的主体结构。
⼆、明确⽬标,⾃主学习预习教材P50-P55的内容,完成以下预习题。
1.C语⾔中语句分为简单语句、结构语句。
简单语句有____________、____________、____________、____________、____________、_____________、_____________,结构语句有____________、____________、____________。
2.字符数据的输⼊函数有_____________、_____________、_____________。
字符数据的输出函数有_____________。
3.printf函数的⼀般形式__________________________,格式控制字符串由格式字符串和_____________组成。
格式字符串以%开头,⼀般形式为__________________________。
参数列表中可给出各个输出项,输出项之间⽤_________分隔。
要求格式控制字符串和各输出项在数量和类型上应该⼀⼀对应。
输出项可以是__________、__________,甚⾄是表达式。
《C语言程序设计基本结构》教案第3章C语言程序设计的3种基本结构所谓“程序结构”,即指程序中语句的执行顺序。
1.程序设计的三种基本结构程序一般由三种基本结构组成,即顺序结构、选择结构和循环结构。
(1)顺序结构是最基本、最简单的结构,它由若干部分组成,按照各部分的排列次序依次执行,如图4.1所示。
(2)选择结构又称分支结构,是根据给定的条件,从两条或者多条路径中选择下一步要执行的操作路径,如图4.2所示。
图中菱形中的“表达式”表示给定的条件,当条件成立(即表达式的值非0)时,选择语句组1操作,否则选择语句组2操作。
(3)循环结构是根据一定的条件,重复执行给定的一组操作,如图4.3所示。
图中菱形中的“表达式”表示给定的条件,当条件成立(即表达式的值非0)时,重复执行语句组操作,一旦条件不成立时,即离开该结构。
由这三种基本结构或三种基本结构的复合嵌套构成的程序称为结构化程序。
结构化程序的特点是结构清晰、层次分明、具有良好的可读性。
2.程序设计的基本过程在实际应用中,程序设计的过程可分为三个步骤:分析问题、设计算法、实现程序。
(1)分析问题明确要解决的问题是什么,需要输入哪些数据,需要进行什么处理,最终要得到哪些处理结果。
对要输入、输出的数据进行分析,确定数据类型。
(2)设计算法在对输入、输出的数据分析之后,要设计数据的组织方式,设计解决问题的操作步骤,并将操作步骤不断完善,最终得到一个完整的算法。
(3)实现程序选择一种程序设计语言,将算法设计后得到的数据组织方式、算法具体步骤转化成用具体的程序设计语言来描述,实现整个算法。
3.1顺序结构3.1.1赋值语句、复合语句、空语句顺序结构是程序中最简单的一种结构。
在C 语言程序中,这类结构主要使用的是赋值语句以及由输入、输出函数构成的语句。
【例3.1】交换两个变量的值,并输出结果。
程序如下:#include<stdio.h> void main() { int a,b,t;scanf("%d%d",&a,&b); printf("a=%d, b=%d\n",a,b); t=a; a=b; b=t;printf("a=%d, b=%d\n",a,b); }程序运行情况: 5 9↙ a=5, b=9 a=9, b=5 程序说明:交换两个变量的值,需要第三个变量的帮助,上面程序中的t 就是这种变量,这个道理就像交换两杯水一样,需要第三个杯子的帮助。
【例3.2】输入三角形的三条边长,计算并输出三角形的面积。
分析:假设输入的三条边长a 、b 、c 能构成一个三角形,利用数学公式:)c s )(b s )(a s (s ---=面积,其中2/)c b a (s ++=,可以求出三角形的面积。
程序如下:#include<stdio.h>#include<math.h>/* math.h 为数学函数的头文件 */void main(){ float a,b,c,s,area;scanf("%f%f%f",&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt为求平方根函数*/printf("area=%.3f\n",area);}程序运行情况:1.22.43.0↙area=1.368程序说明:程序中的函数sqrt的功能是求平方根。
该函数在数学函数库中声明,因此在程序的开头必须包含头文件“math.h”。
细心的读者可能想,不是任意三个数都能构成三角形的三条边长,必须满足一定的条件。
上例程序没有验证输入的三个数能否构成三角形的三条边。
在编程解决实际问题时,往往需要根据某些条件作出判断,决定选择哪些语句执行或不执行。
用C语言中的if、switch 语句,可以编写出具有选择结构的程序。
3.1.2字符输入/输出函数非格式化输入输出函数可以由上面讲述的标准格式化输入输出函数代替, 但这些函数编译后代码少, 相对占用内存也小, 从而提高了速度, 同时使用也比较方便。
下面分别进行介绍。
1. putchar()函数putchar()函数是向标准输出设备输出一个字符, 其调用格式为:putchar(ch);其中ch为一个字符变量或常量。
putchar()函数的作用等同于printf("%c", ch);【例3.3】#include<stdio.h>main(){char c: /*定义字符变量*/c='B'; /*给字符变量赋值*/putchar(c); /*输出该字符*/putchar('\x42'); /*输出字母B*/putchar(0x42); /*直接用ASCII码值输出字母B*/}从本例中的连续四个字符输出函数语句可以分清字符变量的不同赋值方法。
2. getchar()函数getchar()函数也是从键盘上读入一个字符, 并带回显。
getchar()函数等待输入直到按回车才结束, 回车前的所有输入字符都会逐个显示在屏幕上。
但只有第一个字符作为函数的返回值。
getchar()函数的调用格式为:getchar();【例3.4】#include<stdio.h>main(){char c;c=getchar(); /*从键盘读入字符直到回车结束*/putchar(c); /*显示输入的第一个字符*/}3.1.3格式输入/输出函数格式化输入输出函数Turbo C2.0 标准库提供了两个控制台格式化输入、输出函数printf( ) 和scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。
printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入设备(键盘)上读数据。
下面详细介绍这两个函数的用法。
一、scanf()函数scanf()函数是格式化输入函数, 它从标准输入设备(键盘) 读取输入的信息。
其调用格式为: scanf("<格式化字符串>", <地址表>);判断输入结束的方法:1.安排起到数据分割作用的一般字符;2. 空格、制表符、回车换行符;3. 在格式符前冠以附加格式符。
【例3.5】main(){int i, j;printf("i, j=?\n");scanf("%d, %d", &i, &j);}上例中的scanf()函数先读一个整型数, 然后把接着输入的逗号剔除掉, 最后读入另一个整型数。
如果","这一特定字符没有找到, scanf()函数就终止。
若参数之间的分隔符为空格, 则参数之间必须输入一个或多个空格。
说明: (1). 对于字符串数组或字符串指针变量, 由于数组名和指针变量名本身就是地址, 因此使用scanf()函数时, 不需要在它们前面加上"&"操作符。
(2). 可以在格式化字符串中的"%"各格式化规定符之间加入一个整数, 表示任何读操作中的最大位数。
二、printf()函数printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。
在编写程序时经常会用到此函数。
printf()函数的调用格式为:printf("<格式化字符串>", <参量表>);其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想不到的错误。
1. 格式化规定符Turbo C2.0提供的格式化规定符如下:━━━━━━━━━━━━━━━━━━━━━━━━━━符号作用──────────────────────────%d 十进制有符号整数%u 十进制无符号整数%f 浮点数%s 字符串%c 单个字符%p 指针的值%e 指数形式的浮点数%x, %X 无符号以十六进制表示的整数%0 无符号以八进制表示的整数%g 自动选择合适的表示法━━━━━━━━━━━━━━━━━━━━━━━━━━说明:(1). 可以在"%"和字母之间插进数字表示最大场宽。
例如: %3d 表示输出3位整型数, 不够3位右对齐。
%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6,小数点占一位, 不够9位右对齐。
%8s 表示输出8个字符的字符串, 不够8个字符右对齐。
如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。
但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出;若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。
另外, 若想在输出值前加一些0, 就应在场宽项前加个0。
例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度为4位。
如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度,小数点前的数字代表最小宽度。
例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。
若大于9, 则第9个字符以后的内容将被删除。
(2). 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。
例如: %ld 表示输出long整数%lf 表示输出double浮点数(3). 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可说明输出为左对齐, 否则为右对齐。
例如: %-7d 表示输出7位整数左对齐%-10s 表示输出10个字符左对齐(s表示字符)2. 一些特殊规定字符━━━━━━━━━━━━━━━━━━━━━━━━━━字符作用──────────────────────────\n 换行\f 清屏并换页\r 回车\t Tab符\xhh 表示一个ASCII码用16进表示,其中hh是1到2个16进制数━━━━━━━━━━━━━━━━━━━━━━━━━━由本节所学的printf()函数, 并结合上一节学习的数据类型, 编制下面的程序, 以加深对Turbo C2.0数据类型的了解。
【例3.6】#include<stdio.h>#include<string.h>main(){char c, s[20], *p;int a=1234, *i;float f=3.141592653589;double x=0.12345678987654321;p="How do you do";strcpy(s, "Hello, Comrade");*i=12;c='\x41';printf("a=%d\n", a); /*结果输出十进制整数a=1234*/printf("a=%6d\n", a); /*结果输出6位十进制数a= 1234*/printf("a=%06d\n", a); /*结果输出6位十进制数a=001234*/printf("a=%2d\n", a); /*a超过2位, 按实际值输出a=1234*/printf("*i=%4d\n", *i); /*输出4位十进制整数*i= 12*/printf("*i=%-4d\n", *i); /*输出左对齐4位十进制整数*i=12*/printf("i=%p\n", i); /*输出地址i=06E4*/printf("f=%f\n", f); /*输出浮点数f=3.141593*/printf("f=6.4f\n", f); /*输出6位其中小数点后4位的浮点数f=3.1416*/printf("x=%lf\n", x); /*输出长浮点数x=0.123457*/printf("x=%18.16lf\n", x);/*输出18位其中小数点后16位的长浮点数x=0.1234567898765432*/printf("c=%c\n", c); /*输出字符c=A*/printf("c=%x\n", c); /*输出字符的ASCII码值c=41*/printf("s[]=%s\n", s); /*输出数组字符串s[]=Hello, Comrade*/printf("s[]=%6.9s\n", s);/*输出最多9个字符的字符串s[]=Hello, Co*/printf("s=%p\n", s); /*输出数组字符串首字符地址s=FFBE*/printf("*p=%s\n", p); /* 输出指针字符串p=How do you do*/printf("p=%p\n", p); /*输出指针的值p=0194*/retunr 0;}。