- 2021-06-16 发布 |
- 37.5 KB |
- 25页
申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
文档介绍
2020届二轮复习基本算法语句教案(全国通用)
板块二.基本算法语句 知识内容 Basic语言(A版) 1.将算法转变成计算机能够理解和能在计算机上实现的程序,这就需要程序语言,每一种程序语言都包含一些基本的语句,程序语言的基本语句结构:输入语句、输出语句、赋值语句、条件语句、循环语句. 2.赋值语句:表明赋给某一个变量一个具体的确定值的语句. 一般格式:变量=表达式.其中, “=”叫做赋值号. 作用:先计算出赋值号右边表达式的值,然后将它赋给左边的变量,使该变量的值等于表达式的值. 3.输入语句:在每次程序运行时,用于输入相应的初始数据的语句,我们主要介绍键盘输入语句. 一般格式:INPUT “提示内容”;变量 例:INPUT “Maths=”; a, INPUT “Chinese=”;b c=(a+b)/2 END 表示输入数学与语文的成绩,其中c表示它们的平均数. 4.输出语句:以某种形式把求解结果输出的语句. 一般格式:PRINT “提示内容”;表达式 如上例中输出平均成绩可以用:PRINT “The average=”;(a+b)/2 5.条件语句:处理条件结构的算法语句.有以下两种基本格式: 一般格式1:IF 条件 THEN 语句体 END IF 计算机执行语句时,先对IF后的条件进行判断,如果(IF)条件符合,那么(THEN)执行语句体,否则执行END IF之后的语句. 一般格式2:IF 条件 THEN 语句体1 ELSE 语句体2 END IF 计算机执行语句时,先对IF后条件进行判断,如果(IF)条件符合,那么(THEN)执行语句体1,否则(ELSE)执行语句体2. 6.循环语句:处理算法中的循环结构的语句; 有两种基本语句:UNTIL语句和WHILE语句,前者称为直到型循环语句,后者称为当型循环语句. UNTIL语句:DO 循环体 LOOP UNTIL 条件 WHILE语句的一般格式:WHILE 条件 循环体 WEND Scilab程序语言(B版) 1.将算法转变成计算机能够理解和能在计算机上实现的程序,这就需要程序语言,每一种程序语言都包含一些基本语句,程序语言的基本语句结构:输入语句、输出语句、赋值语句、条件语句、循环语句. 2.赋值语句:表明赋给某一个变量一个具体的确定值的语句. 一般格式:变量名表达式;其中“”叫做赋值号. 作用:先计算出赋值号右边表达式的值,然后将它赋给左边的变量,使该变量的值等于表达式的值. 3.输入语句:在每次程序运行时,用于输入相应的初始数据的语句,我们主要介绍键盘输入语句. Scilab中的输入语句常用的是:“input”; 一般格式:变量名=input(“提示内容”) 例:a=input(“x1”);b=input(“x2”);aver=(a+b)/2 表示输入,的值,求它们的算术平均数, 在Scilab界面内运行结果如下: -->a=input("x1");b=input("x2");aver=(a+b)/2 x1--> 此时通过键盘输入x1的值,如,再按“Enter”键,界面出现: x2--> 输入x2的值,如,再按“Enter”键,这时界面出现: aver = 5. 4.输出语句:以某种形式把求解结果输出的语句. Scilab中有:print,write,format,printf,disp等输出语句,主要介绍print语句: 一般格式:print(%io(2),表达式);其中参数%io(2)表示在屏幕上输出. 5.条件语句:处理条件分支结构的算法语句. Scilab程序语言中常用的条件语句为if语句. 一般格式:if 表达式 语句序列1; else 语句序列2; end 最简格式:if 表达式 语句序列1; end 6.循环语句:处理算法中的循环结构的语句; Scilab有两种循环语句:for循环和while循环. for循环的格式:for 循环变量=初值:步长:终值 循环体; end while语句的一般格式:while 表达式(即条件) 循环体; end <教师备案> 1.计算机能够直接或间接理解的程序语言有很多种,比如C语言,Basic语言,以及一些应用数学软件:Matlab,Mathsmatics,Scilab对应的计算机语言.这里的基本语句结构在这些语言中都是存在的,但是对应不同的程序语言,都会有自己的输入指令与方法.这里是以一种语言为例,让大家理解程序语句的含义,为以后深入学习程序设计打下基础. 2.赋值语句: ⑴赋值号左边只能是变量名,而不是表达式;如是错误的; ⑵赋值号左右不能对换,是将赋值号右边的表达式的值赋给左边的变量;如表示用的值替代变量原先的值,与不同; ⑶不能利用赋值语句进行代数式(或符号)的演算;如是不能实现的;并且在一个赋值语句中,只能给一个变量赋值; ⑷赋值号与数学中的等号的意义不同,执行赋值语句后,右面表达式的值会赋给左边,如果左边变量原来有一个值,会自动被冲掉,如表示将的原值加再赋给,即的值加. 3.输入语句:在某些算法中,变量的初值要根据情况经常地改变,一般我们把程序与初始数据分开,每次算题时,即使初始数据改变,也不必改变程序部分,只要程序运行时,输入相应的数据即可,这个过程在程序语言中,用“输入语句”来控制.输入语句中还有read输入语句等. 输入语句要求输入的一般都是具体的常数,也可输入单个或多个字符,格式为: 变量名=input(“提示内容”,“string”),string表示输入字符型变量. 4.循环语句: for语句:先把初值赋给循环变量,记下终值和步长,循环变量增值到超过终值时,执行end后面的语句,不超过时,执行for后面的语句;循环变量起计数作用,控制算法中循环次数,有初值与终值,步长是指循环变量每次增加的值,步长为时,可以省略; while语句:先判断条件是否成立,并在符合条件时,执行循环体;直到某次不符合时,跳到end后面的语句. 对应的基本框图是: 5.在程序语言中,乘、除、乘方、求平方根、绝对值,分别用下列符号表示:*、/、^、sqrt()、abs().程序语言中,一般“=”为赋值号,“==”表示等号. 、、分别写成:、、. 在程序中,如果赋值语句后面用分号隔开,则被赋值的变量不会输出,一般不随便使用逗号或句号,而是直接使用回车或空格. 在Scilab语句中,变量名一般用一个字母表示,不可以用几个字母表示.如可以用s表示变量名,但不能用sum表示变量名,但在有些程序语言中,可以用多个字母表示变量名. 典例分析 题型一:Basic语言(A版) 【例1】 下列程序(QBASIC语言)运行时,循环体内语句执行的次数和输出的结果分别是( ) A. B. C. D. 【考点】Basic语言 【难度】1星 【题型】选择 【关键词】无 【解析】 【答案】A 【例1】 下边程序运行后的输出结果为( ) A. B. C. D. 【考点】Basic语言 【难度】1星 【题型】选择 【关键词】无 【解析】 【答案】C 【例2】 对赋值语句的描述正确的是( ) ①可以给变量提供初值 ②将表达式的值赋给变量 ③可以给一个变量重复赋值 ④不能给同一变量重复赋值 A.①②③ B.①② C.②③④ D.①②④ 【考点】Basic语言 【难度】1星 【题型】选择 【关键词】无 【解析】 【答案】A 【例3】 判断下列赋值语句是否正确:①;②;③. 【考点】Basic语言 【难度】1星 【题型】解答 【关键词】无 【解析】 【答案】①不正确;②不正确;③正确. 【例4】 下列关于条件语句的叙述正确的是( ) A.条件语句中必须有ELSE和END IF B.条件语句中可以没有END IF C.条件语句中可以没有ELSE,但必须有END IF结束 D.条件语句中可以没有END IF,但必须有ELSE 【考点】Basic语言 【难度】1星 【题型】选择 【关键词】无 【解析】 【答案】C 【例1】 下边方框中为一个求20个数的平均数的程序,则在横线上应填的语句为( ) A.i>20 B.i<20C.i>=20 D.i<=20 【考点】Basic语言 【难度】1星 【题型】选择 【关键词】无 【解析】 该算法程序中,使用了UNTIL循环语句,按照该种循环特征,当某一次条件满足时,不再执行循环体,跳到LOOP UNTIL句的后面,执行其他的语句.根据问题要求,应填i>20. 【答案】A 【例2】 已知有两位同学的成绩在录入时被弄混,他们的成绩分别为,,试写出一个程序,将它们的分数调整过来. 【考点】Basic语言 【难度】1星 【题型】解答 【关键词】无 【解析】 INPUT A,B x=A A=B B=x PRINT A,B END 【答案】 【例3】 将下列的程序补充完整 INPUT x IF x<=0 THEN y=x*x—1; ELSE y=-x*x-1; END IF PRINT y END 输入,输出结果为_______;输入,输出结果为_____. 【考点】Basic语言 【难度】1星 【题型】填空 【关键词】无 【解析】 ,故;,;故输出的结果分别为; 【答案】 【例4】 在求时,下列程序中所缺少的一步是: i=1 s=0; DO s=s+i i=i+1 LOOP UNTIL __________ PRINT s END 如果要用WHILE循环语句计算此式的值,请写出相应的程序. 【考点】Basic语言 【难度】2星 【题型】解答 【关键词】无 【解析】 缺少的一步是:. 用WHILE循环语句: s=0 i=1 WHILE i<=50 s=s+i i=i+1 WEND PRINT s END 【答案】 【例1】 写出下列程序的运行结果:______. i=0 s=0 WHILE i<=20 s=s+i i=i+1 WEND PRINT s 【考点】Basic语言 【难度】1星 【题型】填空 【关键词】无 【解析】 计数变量从开始,循环到为止,当时,跳出循环, 故;输出结果为; 【答案】 【例2】 写出下列程序的运行结果:________. i=0 s=0; WHILE i<=20 i=i+1 s=s+i WEND PRINT s 【考点】Basic语言 【难度】1星 【题型】填空 【关键词】无 【解析】 计数变量从开始,增加到时,加到上,循环到时,增加后,加到上,故;输出结果为. 【答案】 【例3】 写一个程序,对于任意输入三个变量,输出它们的平方和的算术平方根的值. 【考点】Basic语言 【难度】1星 【题型】解答 【关键词】无 【解析】 INPUT “a,b,c=”;a,b,c d=a*a+b*b+c*c d=SQR(d) PRINT d END 【答案】 【例1】 下列程序执行后输出的结果是 . 【考点】Basic语言 【难度】1星 【题型】填空 【关键词】无 【解析】 程序反映出的算法过程为 i=11S=11×1,i=10 i=10S=11×10,i=9 i=9 S=11×10×9,i=8 i=8<9退出循环,执行PRINT S 故S=990. 【答案】 【例2】 已知函数,对每输入的一个值,都得到相应的函数值,画出程序框图并编写程序. 【考点】Basic语言 【难度】2星 【题型】解答 【关键词】无 【解析】 程序:INPUT x IF x>=0 y=2*x+3; ELSE y=2*x*x-x; END IF PRINT y END 程序框图: 【答案】 【例1】 分别用WHILE语句和UNTIL语句写出计算的值的算法,并写出程序框图. 【考点】Basic语言 【难度】2星 【题型】解答 【关键词】无 【解析】 WHILE语句: i=1 s=0 WHILE i<=100 s=s+1/i i=i+1 WEND PRINT s END UNTIL语句: i=1 s=0 DO s=s+1/i i=i+1 LOOP UNTIL i>100 PRINT s END 程序框图: 【答案】 【例2】 写一个程序求所有立方不大于10000的正整数. 【考点】Basic语言 【难度】1星 【题型】解答 【关键词】无 【解析】 i=1 WHILE i*i*i<=10000, PRINT i i=i+1 WEND END 【答案】 【例1】 写出将任意三个整数、、按从小到大的顺序排列的算法,画出相关的程序框图,并写出程序. 【考点】Basic语言 【难度】2星 【题型】解答 【关键词】无 【解析】 用数学语言写此排序算法: S1:输入、、三个数的值; S2:如果,则; S3:如果,则; S4:如果,则; S5:依次输出、、的值,即为所求的从小到大的排列. 程序: INPUT a,b,c IF b9 END 【答案】 【例1】 下面的程序运行时输出的结果是_______. i=1 y=1 DO y=y+i i=i+1 LOOP UNTIL i>5 PRINT y END 【考点】Basic语言 【难度】1星 【题型】填空 【关键词】无 【解析】 y=1+1+1+2+3+4+5=16,故输出结果为16. 【答案】 【例2】 请写出计算的程序,并作出相应的程序框图. 【考点】Basic语言 【难度】1星 【题型】解答 【关键词】无 【解析】 UNTIL循环语句: i=1 s=0 DO s=s+i*i; LOOP UNTIL i>50 PRINT s END WHILE循环语句: i=1 s=0 WHILE i<=50 s=s+i*i i=i+1 WEND PRINT s 程序框图: 【答案】 【例1】 下列给出的赋值语句中正确的是( ) A.4 = M B.M =-M C.B=A-3 D.x + y = 0 【考点】Basic语言 【难度】1星 【题型】选择 【关键词】无 【解析】 【答案】C 【例2】 下边程序执行后输出的结果是( ) A.-1 B.0 C.1 D.2 n=5 s=0 WHILE s<15 s=s+n n=n-1 WEND PRINT END 【考点】Basic语言 【难度】1星 【题型】选择 【关键词】无 【解析】 【答案】B 【例3】 如果下边程序执行后输出的结果是132,那么在程序until后面的“条件”应为( ) A.i > 11 B. i >=11 C.i <=11 D.i<11 i=12 s=1 DO s= s ※ i i = i-1 LOOP UNTIL “条件” PRINT s END 【考点】Basic语言 【难度】1星 【题型】选择 【关键词】无 【解析】 【答案】D 【例1】 对甲、乙两程序和输出结果判断正确的是( ) A.程序不同,结果不同 B.程序不同,结果相同 C.程序相同,结果不同 D.程序相同,结果相同 【考点】Basic语言 【难度】1星 【题型】选择 【关键词】无 【解析】 从两个程序可知它们的程序语句不同,但其算法都是求,故结果相同. 【答案】B 【例2】 如图所示,在边长为的正方形的边上有一点,沿着折线,由点(起点)向点(终点)运动.设点运动的路程为,的面积为,求与之间的函数关系式.并画出程序框图,写出程序. 【考点】Basic语言 【难度】3星 【题型】解答 【关键词】无 【解析】 由题意可得 程序框图如图: 程序: INPUT “x=”;x IF x>=0 AND x<=4 THEN y=2*x ELSE IF x<=8 THEN y=8 ELSE y=2*(12-x) END IF END IF PRINT y END 【答案】 【例1】 已知分段函数编写程序,输入自变量的值,输出其相应的函数值,并画出程序框图. 【考点】Basic语言 【难度】2星 【题型】解答 【关键词】无 【解析】 程序框图与程序分别如下面所示: 【答案】 【例1】 2018年9月发生了“三鹿奶粉污染”事件,主要是在一些企业生产的奶制品中检测出含三聚氰胺,三聚氰胺是一种有毒的化工原料,俗称“假蛋白”.蛋白质主要由氨基酸组成,蛋白质平均含氮量16%左右,而三聚氰胺的含氮量为66%左右,不法分子往往在奶制品中加三聚氰胺主要是因为它能冒充蛋白质.2018年9月16日国家质检总局公布了22家企业生产的婴幼儿配方奶粉中含有三聚氰胺,其中最高含量为mg/kg,最低含量为 mg/kg.设计一个求含量高于mg/kg的婴幼儿配方奶粉的平均含量的程序框图,并写出程序. 【考点】Basic语言 【难度】3星 【题型】解答 【关键词】无 【解析】 程序框图: 程序: S=0 M=0 i=1 DO INPUT x IF x>20 THEN S=S+x M=M+1 END IF i=i+1 LOOP UNTIL i>22 P=S/M PRINT P END 【答案】 【例2】 高一(2)班共有54名同学参加数学竞赛,现已有这54名同学的竞赛分数,请设计一个将竞赛成绩优秀同学的平均分输出的算法(规定90分以上为优秀),画出程序框图,并设计程序. 【考点】Basic语言 【难度】3星 【题型】解答 【关键词】无 【解析】 程序框图与程序如下: 【答案】 题型二:Scilab程序语言(B版) 【例1】 已知有两位同学的成绩在录入时分别被记到对方的名字上,分别为分,试写出一个程序,将它们的分数调整过来. 【考点】Scilab程序语言 【难度】1星 【题型】解答 【关键词】无 【解析】 input(“x=”); input(“y=”); p=x;x=y;y=p 【答案】 【例2】 设,则可以实现、的值互换的程序是( ) A. B. C. D. 【考点】Scilab程序语言 【难度】1星 【题型】选择 【关键词】2009,海淀,高二,期中测试 【解析】 【答案】C 【例3】 在界面内,输入如下程序: 在输入完程序,击键后,输出的值为( ) A. B. C. D. 【考点】Scilab程序语言 【难度】1星 【题型】选择 【关键词】无 【解析】 【答案】C 【例1】 为了在运行下列程序之后输出,键盘输入的值应为 . 【考点】Scilab程序语言 【难度】1星 【题型】填空 【关键词】2009,海淀,高二,期中测试 【解析】 【答案】或 【例2】 下面程序输出的结果是 .(注:表示的绝对值) 【考点】Scilab程序语言 【难度】1星 【题型】填空 【关键词】2009,海淀,高二,期中测试 【解析】 【答案】 【例3】 写一个程序,对于任意输入三个变量,输出它们的平方和的算术平方根的值. 【考点】Scilab程序语言 【难度】1星 【题型】解答 【关键词】无 【解析】 程序: a=input(“a=”);b=input(“b=”);c=input(“c=”); d=a*a+b*b+c*c; print(%io(2),sqrt(d)) 【答案】 【例4】 将下列的程序补充完整或写出程序的运行结果 x=input(“x=”); if x<=0 y=x*x—1; else y=-x*x-1; end print(%io(2),y) 输入,输出结果为_______;输入,输出结果为_____. 【考点】Scilab程序语言 【难度】1星 【题型】填空 【关键词】无 【解析】 ,故;,;故输出的结果分别为; 【答案】 【例1】 以下给出的是用条件语句编写的一个程序: x=input(“x=”); if x<1; y=1-2x; else y=1+2x; end print(%io(2),y) 若输入,输出的结果是______. 【考点】Scilab程序语言 【难度】1星 【题型】填空 【关键词】无 【解析】 ,故输出. 【答案】 【例2】 已知函数,对每次输入的一个值,都得到相应的函数值,画出程序框图并编写程序. 【考点】Scilab程序语言 【难度】2星 【题型】解答 【关键词】无 【解析】 程序:x=input(“x=”); if x>=0 y=2*x+3; else y=3*x*x-x; end print(%io(2),y) 程序框图: 【答案】 【例3】 在求时,下列程序中所缺少的一步是: s=0; for i=1:1:50 ____________ end print(%io(2),s) 如果要用while循环语句计算此式的值,请写出相应的程序. 【考点】Scilab程序语言 【难度】1星 【题型】填空 【关键词】无 【解析】 缺少的一步是:. 用while循环语句: s=0;i=1; while i<=50 s=s+i;i=i+1; end print(%io(2),s) 【答案】 【例1】 分别用while语句和for语句写出计算的值的算法,并写出程序框图. 【考点】Scilab程序语言 【难度】2星 【题型】解答 【关键词】无 【解析】 程序: while语句: i=1; s=0; while i<=100 s=s+1/i; i=i+1; end print(%io(2),s) for语句: s=0; for i=1:1:100(或:i=1:100) s=s+1/i; end print(%io(2),s) 程序框图: 【答案】 【例1】 写出将任意三个整数按从小到大的顺序排列的算法,画出相关的程序框图,并写出程序. 【考点】Scilab程序语言 【难度】2星 【题型】解答 【关键词】无 【解析】 用数学语言写此排序算法: S1:输入、、三个数的值; S2:如果,则; S3:如果,则; S4:如果,则; S5:依次输出、、的值,即为所求的从小到大的排列. 程序框图: 程序: a=input(“a=”);b=input(“b=”);c=input(“c=”); if b=0 y=2*x+3; else y=3*x*x-x; end print(%io(2),y) 程序框图: 【答案】 【例1】 编写程序判断输入的数是否为正数,若是,输出它的平方,若不是,输出它的相反数.则下面的空白部分应填. x=input(“x=”); if y=-x; else y=x*x; disp(y) end 【考点】Scilab程序语言 【难度】1星 【题型】填空 【关键词】无 【解析】 【答案】x<=0 【例2】 画出程序框图,编写程序,输入任意两个实数,输出其差的绝对值. 【考点】Scilab程序语言 【难度】2星 【题型】解答 【关键词】无 【解析】 设是任意两个实数, 程序如下: a=input(“a=”); b=input(“b=”); if a>b a-b; else b-a; end 框图如下: 【答案】 【例1】 写一个程序求所有立方不大于的正整数. 【考点】Scilab程序语言 【难度】1星 【题型】解答 【关键词】无 【解析】 程序:i=1; while i*i*i<=10000 print(%io(2),i) i=i+1; end 【答案】 【例2】 下面的程序运行时输出的结果是_______. y=1; for i=1:1:5; y=y+i; end print(%io(2),y) 【考点】Scilab程序语言 【难度】1星 【题型】填空 【关键词】无 【解析】 y=1+1+2+3+4+5=15,故输出结果为. 【答案】 【例3】 如下程序执行后输出的结果是 n=5; s=0; while s<12 s=s+n; n=n-1; end print(%io(2),n). 【考点】Scilab程序语言 【难度】1星 【题型】填空 【关键词】无 【解析】 【答案】 【例4】 编写程序求的值. 【考点】Scilab程序语言 【难度】1星 【题型】解答 【关键词】无 【解析】 用for循环: s=0; for i=1:1:99 s=s+i; end print(%io(2),s) 用while语句: i=1; s=0; while i<=99 s=s+i; i=i+1; end print(%io(2),s) 【答案】 【例1】 请写出计算的程序,并作出相应的程序框图. 【考点】Scilab程序语言 【难度】2星 【题型】解答 【关键词】无 【解析】 程序:for循环语句: s=0; for i=1:1:50 s=s+i*i; end print(%io(2),s) while循环语句: i=1;s=0; while i<=50 s=s+i*i; i=i+1; end print(%io(2),s) 程序框图: 【答案】 【例2】 公司二级质检单位若对100件产品编号00-99,并利用程序program-1随机生成的整数为产品序号,从100件产品中再抽取10个样本. 试根据下列参考材料①至③及对program-1程序要求,完成program-1程序编写. 01 i=1; 02 while i<=________(1) 03 a(i)=floor(100*rand()); 04 b=a(i); 05 k=1; 06 j=0; 07 while k<=i-1 08 if(a(k)-b)==0; 09 j=1; 10 end 11 k=______;(2) 12 end 13 if j==1 14 i=______;(3) 15 end 16 i=_______;(4) 17 end 18 a 【参考材料】: ①rand()生成之间的随机数; ②floor(4.5)=4,floor(0.2)=0; ③下为给三个变量赋值并对三个变量的值运算的程序program-2 01 for i=1:3 02 a(i)=2*I; 03 end 04 s=a(2)+a(3); 05 a 06 s 程序program-2执行结果如下图: 【考点】Scilab程序语言 【难度】2星 【题型】填空 【关键词】2018-2018,北大附中,必修模块3试题 【解析】 【答案】10;k+1;i-1;i+1 【例1】 高一(2)班期中考试结束后,给出了全班50名同学的数学成绩,规定60分以上为及格,试设计算法程序框图,统计出全班的及格人数、及格人数的平均分和全班同学的平均分,并写出相应的算法程序. 【考点】Scilab程序语言 【难度】3星 【题型】解答 【关键词】无 【解析】 记及格人数为,及格的分数为,及格人数的平均分为,全班同学的平均分为.算法的程序如下: 【答案】查看更多