算法初步(1)----同步练习
一、基础知识 1.算法
(1)定义:在数学中,算法通常是指按照 解决某一类问题的 的步骤. (2)应用:算法通常可编成计算机 ,让计算机执行并解决问题. 2.程序框图
为了将设计好的算法清晰直观地描述出来,通常采用画流程图的方法来表示。
程序框图是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。
3、框图的结构
(1)、顺序结构:依次进行多个处理的结构称为顺序结构。下图(1)为顺序结构。
(2)、条件结构:先根据条件作出判断,再决定执行哪一种操作的结构称为选择结构。下图(2)为选择结构。
(3)、循环结构:需要重复执行同一操作的结构称为循环结构。下图(3)为循环结构。
图1 图2 图3
3、算法语句
(1)输入语句、输出语句和赋值语句 :1.输入语句
(1)格式:INPUT “提示内容”;变量
(2)功能:可以一次为一个变量或多个变量赋值,实现算法中的输入功能. 2.输出语句
(1)格式:PRINT “提示内容”;表达式
(2)功能:先计算表达式的值,然后输出结果,实现了算法中的输出功能.显示在计算机屏幕上,也就输出
信息,可以是常量、变量的值或系统信息.
3.赋值语句
(1)格式:LET 变量=表达式
(2)功能:先计算表达式的值,然后吧结果赋值给“=”左边的变量,此步完成后, “=”右边变量的值就改
变了.
(2)1.格式1 (1)框图 (2)格式
(3)功能:当计算机执行上述语句时,首先对IF 后面的条件进行判断,如果满足条件P,那么执行语句A,否
则执行 2.格式2 (1)框图
(2)格式
(3)功能:当计算机执行上述语句时,首先对IF 后面的条件进行判断,如果满足条件P,那么执行语句体
1,在执行END IF 之后的语句,即结束条件语句;如果不满足条件P,那么执行语句体2,再执行END IF 之后的语句,即结束条件语句.
(3)循环语句
(I )当型(WHILE 型)循环语句 (1)框图
(2)格式
(3)功能:计算机执行此程序时,遇到WHILE 语句,先判断条件是否成立,如果成立,则执行WHILE 和WEND 直
接的循环体;然后返回到WHILE 语句再判断上述条件是否成立,如果成立,再执行循环体,这个过程反复执行,直到一次返回到WHILE 语句判断上述条件不成立为止,这时不再执行循环体,而是跳到WEND 语句后,执行WEND 后面的语句.因此当型循环又称“前测试型”循环,也就是我们经常讲的“先测试后执行”、“先判断后循环”.
(II )直到型(UNTIL 型)循环语句 (1)框图
(2)格式
(3)功能:计算机执行UNTIL 语句时,先执行DO 和LOOP UNTIL 之间的循环体,然后判断LOOP UNTIL 后面
的条件是否成立,如果条件不成立,返回DO 语句重新执行循环体.这个过程反复执行,知道一次判断LOOP UNTIL 后面的条件成立为止,这时不再返回执行循环体,而是跳出循环体执行LOOP UNTIL 条件下面的语句.因此直到型循环又称“后测试型”循环,也就是我们经常讲的“先执行后测试”、“先循环后判断”.
二、基本题型 (一)例题分析 选择题:
1.阅读下面的程序框图,则输出的S =
A .14
B .20
C .30
D .55
2.阅读图2所示的程序框图,运行相应的程序,输出的结果是
A .1 B. 2 C. 3 D. 4
3.阅读右图所示的程序框图,运行相应的程序,输出的结果是
A .2
B .4
C .8
D .16
4.某程序框图如图所示,该程序运行后输出的k 的值是
A .4
B .5
C .6
D .7
5
S 是
A .378-
B .378
C .418-
D .418
6.如图的程序框图表示的算法的功能是
A .计算小于100的奇数的连乘积
B .计算从1开始的连续奇数的连乘积
C .从1开始的连续奇数的连乘积,当乘积大于100时,计算奇数的个数
D .计算100531≥???????n 时的最小的n 值.
2题 4题
5题
6题
7.右图是把二进制数)2(11111化为十进制数的一个程序框图,判断框内应填入的 条件是
A .4i >
B .4i ≤
C .5i >
D .5i ≤
8.某程序框图如图所示,则该程序运行后输出的B 等于 A .15 B .29 C .31 D .63
9.如果执行右边的程序框图,输入2,0.5x h =-=,那么输出的各个数的和等于 A .3 B .3.5 C .4 D .4.5
10.某店一个月的收入和支出总共记录了N 个数据1a ,2,,N a a ???,其中 收入记为 正数,支出记为负数。该店用右边的程序框图计算月总收入S 和月 净盈利V ,那么在图中空白的判断框和处理框中,应分别填入下列四个选项中 的
A .0,A V S T >=-
B .0,A V S T <=-
C .
A >S T +
7题
8题
10题
9题
11. 如图所示,是关于闰年的流程,则 以下年份是闰年的为
A .1996年
B .1998年
C .2010年
D .2100年12. 某流程如图所示,现输入如下四个函数,则可以输出的函数是
A .2
)(x x f = B .
x
x f 1
)(=
C .62ln )(-+=x x x f D.x x f sin )(=
二、填空题:
13.程序框图(即算法流程图)如图所示,其输出结果是_______.
14.执行右边的程序框图,输出的T =
.
12题
11题
13题
14题
15.下面的程序框图表示的算法的结果是 16
16.阅读右上面的流程图,若输入6,1a b ==,则输出的结果是 2
17右面的程序框图,如果输入三个实数a ,b ,c ,要求输出这
三个数中最大的数,那么在空白的判断框中,应该填入下面四个选项中的 ①c x > ②x c > ③C .c b > ④b c >
18、如图所给出的是计算12+14+16+…+1
20的值的一个程序框图,
其中判断框内应填入的条件是________答案:i>10?
15题
17题
18题
算法初步(2)—算法同步练习
1、 分析下面的程序,当输入x 的值为3时,程序的输出结果为________.答案:8-
INPUT x IF x<-1 THEN y=x^2 ELSE
IF x<=1 THEN y=0 ELSE y=(-2)^x END IF END IF PRINT y END
2 、给出下列程序,如果输入8,26,10--,那么输出的是________.答案:26-
INPUT a,b,c IF a>b THEN a=b END IF
IF a>c THEN a=c END IF PRINT a END
3、 编写一个程序,求实数x 的绝对值. 解:程序1:
INPUT x IF x>=0 THEN PRINT x ELSE PRINT –x END IF END 程序1: INPUT x
x=-x END IF PRINT x END
4、 判断一元二次函数)0(02≠=++a c bx ax 是否有根. 分析:ac b 42
-=?,当0≥?时,方程有实根;
当0
Step1:输入三个系数c b a ,,. Step2:计算ac b 42
-=?.
Step3:判断0≥?是否成立.若是,则输出“方程有实根”;
否则输出“方程无实根”,
程序框图为: 程序为:
INPUT “a,b,c=”;a,b,c d=b^2-4*a*c IF d>=0 THEN
PRINT “Have real root ” ELSE
PRINT “No real root ” END IF END
5 、编写一个程序,使任意输入的3个整数按从大到小的顺序输出.
解:算法分析:用c b a ,,表示输入的3个整数.为了节约变量,把他们重新排列后,仍用c b a ,,表示,并使
c b a ≥≥.具体操作步骤如下:
第一步,输入3个整数c b a ,,.
第二步,将a 与b 比较,并把小者赋给b ,大者赋给a .
第三步,将a 与c 比较,并把小者赋给c ,大者赋给a (此时a 已是三者中最大的).
第四步,将b 与c 比较,并把小者赋给c ,大者赋给b (此时c b a ,,已按从大到小的顺序排列好). 第五步,按顺序输出c b a ,,.
程序:
INPUT “a,b,c=”;a,b,c IF b>a THEN t=a a=b b=t END IF
t=a
a=c
c=t
END IF
IF c>b THEN
t=b
b=c
c=t
END IF
PRINT a,b,c
END
(二)循环语句
1、下列程序执行后输出结果为________.答案:990
i=11
S=1
DO
S=S*i
i=i-1
LOOP UNTIL i<9
PRINT S
END
2、下列程序输出的结果是( )答案: C
i=1
S=0
WHILE i<=4
S=S*2+1
i=i+1
WEND
PRINT S
END
A.3
B.7
C.15
D.19
3、已知以下程序,则( )答案: D
x=-1
DO
x=x*x
LOOP UNTIL x>10
PRINT x
END
4、 设计一个计算100321++++ 的算法,并画出程序框图. 解:算法如下:
第一步:输入n (这里100=n ). 第二步:0=sum ,1=i . 第三步:i sum sum +=. 第四步:1+=i i .
第五步:如果i 不大于n ,返回第三步;否则,算法结束.
最后得到的sum 值就是100321++++
程序框图为:
类型题1: 设计一个算法计算100642++++ . 解:算法如下:第一步:输入n (这里100=n ).
第二步:0=sum ,2=i .
第三步:i sum sum +=,2+=i i .
第四步:如果i 不大于n ,返回第三步;否则,算法结束.
最后得到的sum 值就是100642++++ 的值.
程序框图为:略
类型题2: 设计一个算法计算2
2
2
2
100321++++ . 解:算法如下:第一步:输入n (这里100=n ).
第二步:0=sum ,1=i .
第三步:2
i sum sum +=,1+=i i .
第四步:如果i 不大于n ,返回第三步;否则,算法结束.
最后得到的sum 值就是2
2
2
2
100321++++ 的值.
程序框图为:略
类型题3: 设计一个算法计算100321???? . 解:算法如下:第一步:输入n (这里100=n ).
第二步:0=sum ,1=i . 第三步:i sum sum ?=,1+=i i .
第四步:如果i 不大于100,返回第三步;否则,算法结束.
最后得到的sum 值就是100321???? 的值.
程序框图为:略