




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章程序的控制结构C语言大学实用教程内容提要算法的描述方法基本控制结构基本控制语句常用算法,如累加、累乘、统计、递推、迭代、穷举等程序的基本版式结构化程序设计的基本思想算法的概念
数据结构+算法=程序算法:为解决一个具体问题而采取的确定的有限的操作步骤,这里仅指计算机能执行的算法。算法的分类
数值运算算法:解决的是求数值解的问题,例如用辗转相除法求两个数的最大公约数等非数值运算算法:主要用于解决需要用分析推理、逻辑推理才能解决的问题,例如人工智能中的许多问题,查找、分类等问题算法特性:有穷性确定性
有效性
没有输入或有多个输入
有一个或多个输出
算法的表示方法自然语言表示传统的流程图表示N-S结构化流程图表示
伪代码表示
N-S流程图用以下的流程图符号:
(1)顺序结构(2)选择结构(3)循环结构C程序结构C程序源程序文件1源程序文件2源程序文件3编译预处理命令全局变量声明函数1函数n…函数首部函数体局部变量声明执行语句构成程序的三种基本结构顺序结构选择结构循环结构已经证明,任何程序均可只用这三种结构综合描述只用这三种结构编制的程序,叫结构化程序程序必须符合结构化规则BANS图传统流程图顺序结构BABN如果
成绩<60
那么
通知补考否则
告知你考试成绩AY条件PABNY条件P分支结构(选择结构)条件PA当型循环直到型循环真假假条件PA假真循环结构当型循环A真假假条件P循环结构当P为真A当P为真A直到型循环条件PA假真循环结构直到P为假A直到P为假A结构化程序设计的核心思想
采用顺序、选择和循环三种基本结构作为程序设计的基本单元只有一个入口;只有一个出口;无死语句,即不存在永远都执行不到的语句;无死循环,即不存在永远都执行不完的循环。采用“自顶向下、逐步求精”和模块化的方法进行结构化程序设计“百鸡问题”鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、雏各几何?(体会编程步骤)cocks+hens+chicks=1005*cocks+3*hens+chicks/3=1000≤cocks≤19 0≤hens≤33 0≤chicks≤19枚举法思路:依次取cocks值域中的值,求其余两个数(hens、chicks),看是否复合题意算法描述:cocks=0;当cocks<=19时{ 寻找满足题意的hens、chicks的值;
cocks++;}cocks=0;当cocks<=19时{
寻找满足题意的hens、chicks的值;
cocks++;}cocks=0;当cocks<=19时{
hens=0; 当hens<=33时 {寻找满足题意的chicks的值
hens++;}
cocks++;}cocks=0;当cocks<=19时{
hens=0; 当hens<=33时 {/*寻找满足题意的chicks的值*/
chicks=100-cocks-hens; 如果(5*cocks+3*hens+chicks/3=100)则输出;
hens++; }
cocks++;}voidmain(){ intcocks=0,hens,chicks; while(cocks<=19) {hens=0; while(hens<=33) {chicks=100-cocks-hens; if(5.0*cocks+3.0*hens+chicks/3.0==100.0) printf(“%d,%d,%d\n”,cocks,hens,chicks);
hens++;
}
cocks++;
}}经过调试运行,可以得到4组解4.2顺序结构最简单的C程序结构完全按照语句出现的先后顺序执行程序程序=算法+数据结构例1求本利和p80存款利率rate存款年份n本金capital计算n年之后本利和?算法描述:Step1:输入本金capital和存款年份n;Step2:计算本利和depositdeposit=capital*(1+rate)nStep3:输出n年后本利和例2求三角形面积例:输入三角形的三边长,求三角形面积。假设:三个边长a,b,c能构成三角形。已知面积公式:area=s=(a+b+c)*0.5开始输入三边长计算s计算面积结束例2求三角形面积(p743.5)#include<stdio.h>
#include<math.h>
voidmain()
{floata,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));
printf(“a=%7.2f,b=%7.2f,c=%7.2f,
s=%7.2f\n”,a,b,c,s);
printf(“area=%7.2f\n”,area);}
数学函数库因为要用到其中的sqrt函数运行情况:
3,4,6
a=3.00,b=4.00,c=6.00,s=6.50
area=5.33例3求根p83例4.12求ax2+bx+c=0方程的根。
a,b,c由键盘输入,设>0。
众所周知,一元二次方程式的根为
x1=x2=
可以将上面的分式分为两项:
p=,q=x1=p+q,x2=p-q例3求根#include<stdio.h>
#include<math.h>
voidmain()
{floata,b,c,disc,x1,x2,p,q;
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(disc)/(2*a);
x1=p+q;x2=p-q;
printf("x1=%7.4f,x2=%7.4f\n",x1,x2);
}运行情况:
a=1,b=3,c=2↙
x1=-1.0000
x2=-2.0000当△>=0,求出实根x1、x2;当△<0时,是虚根。。。BNAY条件P选择结构谢谢!4.3选择结构条件p。。。条件语句条件运算符逻辑运算符回顾1:关系运算符和关系表达式1.关系运算符及其优先次序<(小于)<=(小于或等于)>(大于)>=(大于或等于)==(等于)!=(不等于)优先级相同(高)优先级相同(低)说明:关系运算符的优先级低于算术运算符关系运算符的优先级高于赋值运算符回顾2:逻辑运算符和逻辑表达式1.逻辑运算符及其优先次序(1)&&(逻辑与)相当于其他语言中的AND(2)||(逻辑或)相当于其他语言中的OR(3)!(逻辑非)相当于其他语言中的NOT例:a&&b若a,b为真,则a&&b为真。
a||b若a,b之一为真,则a||b为真。!a若a为真,则!a为假。优先次序:!(非)->&&()->||()逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算术运算符4.3选择结构:条件语句1.If语句的三种基本形式(1)if(表达式)语句例:
if(x>y)printf(“%d”,x);表达式语句真(非0)假(0)单分支选择结构4.3选择结构:条件语句(2)if(表达式)语句1else语句2例:
if(x>y)printf(“%d”,x);elseprintf(“%d”,y);
条件
语句1
语句2YN双分支选择结构4.3选择结构:条件语句(3)if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3……elseif(表达式m)语句melse语句n多分支选择结构4.3选择结构:条件语句例:
if(score>=90) range=1;elseif(score>=80) range=2;elseif(score>=70) range=3;elseif(score>=60) range=4;else range=5;4.3选择结构:条件语句说明:(1)3种形式的if语句中在if后面都有表达式,一般为逻辑表达式或关系表达式。(2)第二,第三种形式的if语句中,在每个
else前面有一个分号,整个语句结束处有一个分号。(3)在if和else后面可以只含有一个内嵌的操作语句,也可以由多个操作语句,此时用花括号将几个语句括起来成为一个复合语句。回顾:复合语句{}括住的若干条语句构成一个复合语句语句块内可以定义变量变量仅在定义它的复合语句内有效变量必须在复合语句的开头定义复合语句可以用在任何可以使用语句的地方。if-else选择结构的一种最常用形式if(表达式)
语句1;
else
语句2;
语句3表达式值非0时,执行语句1,然后语句3;
表达式值为0时,执行语句2,然后语句3else部分可以没有。if(表达式)
语句1;
语句3当表达式值为0时,直接执行语句3if-else嵌套使用时,注意else和谁配对的问题If语句的嵌套在if语句中又包含一个或多个if语句称为if语句的嵌套。形式:If()
if()语句1 else语句2Else
if()语句3 else语句4内嵌if现场编程完成例4.5体型判断。按“体指数”对肥胖程度进行划分:
体指数t=体重w/(身高h)2
(w单位为公斤,h单位为米)当t<18时,为低体重;当t介于18和25之间时,为正常体重;当t介于25和27之间时,为超重体重;当t>=27时,为肥胖。编程从键盘输入你的身高h和体重w,根据给定公式计算体指数t,然后判断你的体重属于何种类型。用3种方法编程:算法1:用不带else子句的if语句编程算法2:用在if子句中嵌入if语句的形式编程算法3:用在else子句中嵌入if语句的形式编程回顾复习算法程序=数据结构+算法NS图伪代码回顾复习三种基本结构顺序结构选择结构循环结构BN如果
成绩<60
那么
通知补考否则
告知你考试成绩AY条件PABNY条件P分支结构(选择结构)回顾复习选择结构条件语句1.if形式if(e)语句1;if(score>=60)printf(“及格!”);表达式语句真(非0)假(0)单分支选择结构回顾复习选择结构条件语句1.if-else形式if(e)语句1;else语句2;if(score>=60)printf(“及格!”);else printf(“不及格!”);
条件
语句1
语句2YN双分支选择结构回顾复习(3)if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3……elseif(表达式m)语句melse语句n多分支选择结构例:
if(score>=90) range=1;elseif(score>=80) range=2;elseif(score>=70) range=3;elseif(score>=60) range=4;else range=5;练习1.输入x,计算y值练习2.判断整型数a的正负值练习3.判断闰年yearyear能被4整除但不能被100整除能被400整除练习4.输入x,计算y值关系运算符和逻辑运算符条件p:逻辑表达式真假的判断非0即为真if(‘a’) printf(“OK!”);x=-5;if(x)printf(“OK!”);y=0;if(y==0)printf(“OK!”);y=0;if(y)printf(“OK!”);例:
if(score>=90) range=1;elseif(score>=80) range=2;elseif(score>=70) range=3;elseif(score>=60) range=4;else range=5;switch多路选择switch(表达式){
case
常数1:
语句序列1;
case
常数2:
语句序列2;
…………
default:
语句序列3;
}default可以没有,但最好不省略不要忘记break
switch语句例:要求按照考试成绩的等级输出百分制分数段,用switch语句实现:
switch(grade){case′A′∶printf(″85~100\n″);
case′B′∶printf(″70~84\n″);
case′C′∶printf(″60~69\n″);
case′D′∶printf(″<60\n″);
default∶(printf″error\n″);}注意:常量n仅起语句标号作用,不做求值判断常量n的值必须是惟一的,没有先后次序多个case语句可以共用一组执行结果现场编程完成计算器程序……例4.8编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:操作数1运算符op操作数2然后,计算表达式的值,指定的运算符为加(+)、减(-)、乘(*)、除(/)作业1p1534.3(1)4.4(1)(2)4.5、4.6、4.7、4.8、4.9回顾选择结构if语句猜数游戏switch语句P1594.9读入一个年份和一个月份,输出该月有多少天谢谢!4.4循环结构猜数游戏计算1+2+3+4+……+n计算n!泰勒级数4.4循环结构循环就是满足一定条件时,重复执行一段程序。构成循环的语句while 当型循环,先判断后执行dowhile 直到型循环,先执行后判断for 功能最强大的循环语句循环语句的比较循环的嵌套循环——while,forwhile(表达式)
{
语句;}固定?变化?当型循环A真假假条件P循环结构当P为真A当P为真Awhilewhile(表达式)
{
语句;}只要表达式的值为非0,就重复执行语句,直到表达式值为0时止。whileintk=1,s=0;while(k<=100){s=s+k;k++;}循环控制表达式循环控制变量(k)循环体注意:循环体出现多条语句,应以复合语句的形式出现。循环前必须给循环控制变量赋初值。循环体中,必须有改变循环控制变量值的语句。循环体可以为空。while((c=getchar())!=‘A’);累加求和累加求和问题:sum=∑n例
求1到100的和。
#include<stdio.h>
voidmain()
{inti,sum=0;
i=1;
while(i<=100)
{sum=sum+i;
i++;
}
printf(″%d\n″,sum);
}说明:(1)循环体如果包含一个以上的语句,应该用花括弧括起来,以复合语句形式出现.(2)在循环体中应有使循环趋向于结束的语句。
运行结果:5050do-whiledo
{
语句;
}while(表达式);首先执行语句,然后判断表达式的值。如果表达式为0,继续向下执行,否则,再次执行语句,再次判断表达式的值。语句会被至少执行一次。最后分号不可省略!!!!条件PA当型循环直到循环真假假条件PA假真假条件P条件PA假当循环条件第一次就为假时例
求1到100的和。
#include<stdio.h>
voidmain()
{inti,sum=0;
i=1;
do
{sum=sum+i;
i++;
}
while(i<=100);
printf("%d\n″,sum);
}运行结果:5050循环——for表达式2?执行语句成立不成立执行for循环之后的语句执行表达式3执行表达式1循环初始条件循环控制条件循环体for语句等价于下列语句:表达式1;while(表达式2){语句;表达式3;}
forfor(表达式1;表达式2;表达式3)
{
语句;}首先执行表达式1。如果表达式2的值为非0,执行语句和表达式3,直到表达式2的值为0时停止循环。相当于:表达式1;
while(表达式2){
语句;
表达式3;
}表达式1和表达式3可以没有或者是用逗号分隔的多个表达式的组合。但最好不要有太多的表达式组合forfor语句最简单的应用形式也就是最易理解的如下形式
for(循环变量赋初值;循环条件;循环变量增值)例如:
for(i=1;i<=100;i++)sum=sum+i;
它相当于以下语句:
i=1;while(i<=100){sum=sum+i;i++;}
显然,用for语句简单、方便。
累加求和累加求和问题:sum=∑n注意在for和while语句之后一般没有分号。有分号表示循环体,就是分号之前的内容(空循环体)。while(i<100);
i++;for(i=0;i<100;i++);
printf("%d",i);for通常有一个循环变量控制循环的次数,不要在循环体内改变这个变量。选择三种循环的一般原则如果循环次数已知,用for如果循环次数未知,用while如果循环体至少要执行一次,用do-while这只是“一般”原则,不是“原则”现场编程完成例4.6,例4.9例4.6:猜数游戏:先由计算机“想”一个数请人猜,如果人猜对了,则计算机给出提示:“Right!”,否则提示:“Wrong!”,并告诉人所猜的数是大还是小。例4.9:先由计算机“想”一个1到100之间的数请人猜,如果人猜对了,则结束游戏,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。计算机记录人猜的次数,以此来反映猜数者“猜”的水平。猜数游戏用到的库函数随机函数rand()#include<stdlib.h>RAND_MAX在stdlib.h中定义,不大于双字节整数的最大值32767产生[0,RAND_MAX]之间的随机数magic=rand();产生[0,b-1]之间的随机数magic=rand()%b;产生[a,a+b-1]之间的随机数magic=rand()%b+a;现场编程完成例4.6,发现问题猜数游戏用到的库函数随机函数srand为函数rand()设置随机数种子来实现对函数rand所产生的伪随机数的“随机化”通过键入随机数种子,产生[0,100]之间的随机数scanf("%u",&seed);srand(seed);magic=rand()%100+1;猜数游戏用到的库函数随机函数srand为函数rand()设置随机数种子来实现对函数rand所产生的伪随机数的“随机化”使用计算机读取其时钟值并把该值自动设置为随机数种子,产生[0,100]之间的随机数函数time()返回以秒计算的当前时间值,该值被转换为无符号整数并用作随机数发生器的种子#include<time.h>srand(time(NULL));magic=rand()%100+1;死循环永远不会退出的循环为死循环for(;;){}while(1){}do
{}while(1)一般情况下,要极力避免死循环绝大多数程序不需要死循环。如果出现,往往都是bug时间过长的循环会造成“假死”效果,也要考虑解决计算:n!=1*2*3*……*n数据算法现场编程完成例4.11国王的许诺。相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8×8共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第一个格子中放1粒,第2格中放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上的64个格子,我就感恩不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。
国王能兑现他的许诺吗?试编程计算舍罕王共要多少麦子赏赐他的宰相,这些麦子合多少立方米?(已知1立方米麦子约1.42e8粒)
总粒数为:sum=1+2+22+23+…+263
方法1#defineCONST1.42e8#include<stdio.h>#include<math.h>main(){
intn;
doubleterm,sum=0;/*累加求和变量赋初值*/
for(n=1;n<=64;n++){
term=pow(2,n-1);/*根据累加项的规律计算累加项
*/sum=sum+term;/*作累加运算*/}
printf("sum=%e\n",sum);/*打印总麦粒数*/
printf("volum=%e\n",sum/CONST);/*打印折合的总麦粒体积数*/}
方法2#defineCONST1.42e8/*定义符号常量CONST值为1.42e8*/#include<stdio.h>main(){
intn;
doubleterm=1,sum=1;/*累乘求积、累加求和变量赋初值*/
for(n=2;n<=64;n++){term=term*2;/*根据后项总是前项的2倍计算累加项*/sum=sum+term;/*作累加运算*/}
printf("sum=%e\n",sum);/*打印总麦粒数*/
printf("volum=%e\n",sum/CONST);/*打印折合的总麦粒体积数*/}
嵌套循环在一个循环体内包含着另一个完整的循环结构。内嵌的循环又可以嵌套循环构成多重循环。三种循环结构可以互相嵌套。while(){ …… while() {……} ……}do{ …… do { …… }while(); ……}while();for(;;){ …… for(;;) {……} ……}do{ …… while() {……} ……}while();for(;;){ …… while(){……} ……}do{ …… for(;;) {……} ……}while();使用嵌套的循环体时,应注意以下问题
在嵌套的各层循环体中,使用复合语句(即用一对大花括号将循环体语句括起来)保证逻辑上的正确性。内层和外层循环控制变量不应同名,以免造成混乱。
嵌套的循环最好采用右缩进格式书写,以保证层次的清晰性。循环嵌套不能交叉,即在一个循环体内必须完整的包含着另一个循环。合法的嵌套循环for(i=0;i<3;i++){ printf(“i=%d:”,i); for(j=0;j<4;j++) printf(“j=%-4d”,j); printf(“\n”);}现场编程完成例4.14编程输出如下形式的乘法九九表
#include<stdio.h>main(){
intm,n;
for(m=1;m<10;m++)
printf("%4d",m);/*打印表头*/
printf("\n");
for(m=1;m<10;m++)
printf("-");
printf("\n");
for(m=1;m<10;m++) {
for(n=1;n<10;n++) {
printf("%4d",m*n); }
printf("\n"); }}现场编程完成例4.15将上例输出格式改成如下的下三角格式打印
#include<stdio.h>main(){
intm,n;
for(m=1;m<10;m++)
printf("%4d",m);/*打印表头*/
printf("\n");
for(m=1;m<10;m++)
printf("-");
printf("\n");
for(m=1;m<10;m++) {
for(n=1;n<=m;n++) {
printf("%4d",m*n); }
printf("\n"); }}现场编程完成例4.16马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人?
解方程组穷举法方法1:采用三重循环穷举x,y,z的全部可能的组合
#include<stdio.h>main(){
intx,y,z;
printf("Man\tWomen\tChildern\n");
for(x=0;x<=30;x++)
for(y=0;y<=30;y++)
for(z=0;z<=30;z++)
if(x+y+z==30&&3*x+2*y+z==50)
printf("%3d\t%5d\t%8d\n",x,y,z);}
方法2:改进算法
#include<stdio.h>
main(){
intx,y,z;
printf("Man\tWomen\tChildern\n");
for(x=0;x<=16;x++)
for(y=0;y<=25;y++){z=30–x-y;
if(3*x+2*y+z==50)printf("%3d\t%5d\t%8d\n",x,y,z);}}
作业课后练习4.3、4.4写在书上4.18、4.19、4.23、4.26、4.27、4.28思考?例题:试找出满足下列条件的所有三位数。(1)其百位数不大于2;(2)将个位与百位对换,得到的三位数是原三位数的两倍多。设这个三位数各个位上的数码为a,b,c符合的条件:第一:(100a+10c+b)/(100a+10b+c)>=2第二:a<=2流程的转移控制break语句continue语句goto语句return语句标准库函数exit()
break和continue对for、while、do-while循环进行内部手术。break,退出循环。continue,中断此次循环体的执行,开始下一次。break和continue少用为妙。break和continue假假真真break表达式1表达式2循环语句的下一条语句循环语句的下一条语句假假真真
contiue表达式1表达式2continue标号举例error:goto举例gotoerror;一般形式goto语句标号;……
语句标号:……或语句标号:…………goto语句标号;goto与标号(label)exit()函数exit(0)作用是终止整个程序的执行,强制返回操作系统。调用该函数需要嵌入头文件<stdlib.h>。案例:输入一个整数,判断它是否是素数
方法1#include<math.h>main(){
intm,i,k;
printf("Pleaseenteranumber:");
scanf("%d",&m); k=sqrt(m);
for(i=2;i<=k;i++) {
if(m%i==0) {
printf("No!\n");
gotoend; } }
printf("Yes!\n");end:
printf("Programisover!\n");}Pleaseenteranumber:
6
Programisover!No!方法1#include<math.h>main(){
intm,i,k;
printf("Pleaseenteranumber:");
scanf("%d",&m); k=sqrt(m);
for(i=2;i<=k;i++) {
if(m%i==0) {
printf("No!\n");
gotoend; } }
printf("Yes!\n");end:
printf("Programisover!\n");}Pleaseenteranumber:
5
Programisover!Yes!方法2#include<math.h>main(){
intm,i,k;
printf("Pleaseenteranumber:");
scanf("%d",&m); k=sqrt(m);
for(i=2;i<=k;i++){
if(m%i==0)
break; }
if(i>k)
printf("Yes!\n");
else
printf("No!\n");
printf("Programisover!\n");}Pleaseenteranumber:
6
Programisover!No!方法3#include<math.h>main(){intm,i,k,flag=1;/*标志变量flag初值置为1*/
printf("Pleaseenteranumber:");
scanf("%d",&m); k=sqrt(m);
for(i=2;i<=k&&flag;i++) { if(m%i==0)flag=0;}
if(flag)
printf("Yes!\n");
else
printf("No!\n");
printf("Programisover!\n");}这个程序是做什么的?#include<math.h>main(){intm,i,k,flag=1;/*标志变量flag初值置为1*/
printf("Pleaseenteranumber:");
scanf("%d",&m); k=sqrt(m);
for(i=2;i<=m-1;i++) { if(m%i==0)flag=0;
printf("%d\n",i);
}
if(flag)
printf("Nodivisor!Itisaprimenumber.\n");
printf("Programisover!\n");}Dijkstra和
gotoE.W.Dijkstra,生于1930年,卒于2002年8月6日软件体系结构,结构化程序设计,……Dijkstra和
gotoDijkstra早在1968年就指出:“Gotoconsideredharmful”
,“Ibecameconvincedthatthegotostatement
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七年级生物下册 第三单元 第二章 人的生活需要空气 第一节 人体与外界的气体交换教学实录设计(新版)济南版
- 偏瘫患者步态健康教育
- 入队前知识培训课件
- 《第三单元 黄河旅游共分享:10 旅行记录乐分享》教学设计-2024-2025学年泰山版信息技术三年级上册001
- 第7课《我们有新玩法》(教学设计)2023-2024学年统编版道德与法治二年级下册
- 2025私家车买卖合同
- 2025标准版上海市国内旅游合同(B版)
- 2023三年级数学上册 六 乘法第3课时 乘火车教学实录 北师大版
- 2023八年级英语上册 Unit 2 How often do you exercise Section A 1a-1c教学实录(新版)人教新目标版
- 党务基础知识培训课件教学
- 技术开发(委托)合同样本-(中华人民共和国科学技术部印制)
- 花篮拉杆式悬挑脚手架工程技术交底
- 汽车维修项目明细表
- 教科版科学实验目录1-6年级(新版)2022
- 海关2号桥支架验算书(盘扣)
- 坐标经纬度转换
- 智能检测技术与传感器PPT完整全套教学课件
- 2019五年级必背古诗诵读PPT
- 新概念英语第一册单词表默写模板仅中文可打印
- 2023年北京市中西医结合医院招聘医学类专业人才考试历年高频考点试题含答案解析
- 四年级下册数学第1~3单元测试卷
评论
0/150
提交评论