第一章算法初步
第一章 算法初步
1.1 算法与程序框图 1.1.1 算法的概念
1.下面四种叙述能称为算法的是( ) A.在家里一般是妈妈做饭
B.做米饭需要刷锅、淘米、添水、加热这些步骤
C.在野外做饭叫野炊
D.做饭必须要有米
2.下列关于算法的描述正确的是( ) A.算法与求解一个问题的方法相同
B.算法只能解决一个问题,不能重复使用
C.算法过程要一步一步执行,每步执行的操作必须确切
D.有的算法执行完后,可能无结果
3.对“求1+2+3+4+5的和”,下列说法正确的是( ) A.只能设计一个算法 B.可以设计两种算法 C.不能设计算法
D.设计的算法可以不包含输出 4.阅读下面的算法:
第一步,输入两个实数a ,b .
第二步,若a
这个算法输出的是( )
A.a ,b 中的较大数
B.a ,b 中的较小数
C.原来的a 的值
D.原来的b 的值
5.写出解方程2x +3=0的算法步骤:
第一步,________________________________________________________________. 第二步,________________________________________________________________. 第三步,________________________________________________________________.
6.写出求解方程组?
????
2x +y =7, ①
4x +5y =11 ②的一个算法.
7.已知直线l 的倾斜角是α(α≠90°),且直线l 过点P (x 0,y 0),请完成求直线l 的方程的一个算法:
第一步,设直线l 的方程为y -y 0=k (x -x 0). 第二步,___________________________________________________________________. 第三步,___________________________________________________________________.
8.有5个小球,其中4个的重量相同,仅有一个较重,打算用天平(不用砝码)找出那个重的小球.下面设计了一种用最少的测量次数测出那个重的小球的算法:
第一步,将5个小球分成A,B,C三组,每组分别有2,2,1个.
第二步,将A,B两组的小球分别放在天平的两侧,若____________________,则________________,然后执行第三步;若______________________,则C组的小球为那个重的小球.
第三步,将含那个重的小球的一组的两个小球分别放在天平的两侧,则较重的球为那个重的小球.
(1)将上述算法补充完整;
(2)若80个小球中含有1个较重的小球,请仿照上述算法设计一个算法,找出那个重的小球.
1.1.2程序框图和顺序结构
1.下列框图是判断框的是()
2.下列是程序框图的一部分,表示恰当的是()
A. B.
C. D.
3.在程序框图中,算法中间要处理数据或计算,可分别写在不同的()
A.处理框内
B.判断框内
C.输入、输出框内
D.终端框内
4.下列关于程序框图的说法,正确的有()
①程序框图只有一个入口,也只有一个出口;
②程序框图中的每一部分都应有一条从入口到出口的路径通过它;
③程序框图中的循环可以是无限的循环.
A.①②③
B.②③
C.①③
D.①②
5.如图1-1-4,该算法的功能是计算长方体的()
图1-1-4
A.体积
B.面对角线的长
C.体对角线的长
D.表面积
6.如图1-1-5所示的框图的输出结果为------------
图1-1-5
7已知三角形边长为a ,b ,c ,计算其面积公式为S =p (p -a )(p -b )(p -c ) ?
???其中p =a +b +c 2.如图1-1-6所示的框图是表示求三角形面积的一个算法,但缺少了两个框
图,缺少的是______________、____________.
图1-1-6
8.如图1-1-7所示的程序框图的功能是求一个数的相反数,则 内应填____________.
图1-1-7
9.已知小张的期末考语文成绩为102分,数学成绩为120分,英语成绩为116分,求他的总分和平均分的算法为:
第一步,输入A =102,B =120,C =116. 第二步,计算A +B +C .
第三步,计算A +B +C
3
.
第四步,得出总分和平均分. 请用程序框图表示这个算法.
10. 已知直角三角形的两直角边长分别为a ,b ,设计一个求该三角形周长的算法,并画出相应的程序框图.
1.1.3 条件结构和循环结构
1.下列说法不正确的是( )
A.顺序结构是由若干个依次执行的处理步骤组成的,每一个算法都离不开顺序结构
B.循环结构中一定包含条件结构
C.循环结构中不一定包含条件结构
D.循环结构中反复执行的步骤叫做循环体
2.如果一个算法的程序框图中有◇,那么表示该算法中一定有( ) A.循环结构和条件结构 B.条件结构 C.循环结构 D.无法确定
3.图1-1-16是描述求一元二次方程ax 2+bx +c =0的根的过程的程序框图,则虚线框内
是________结构.
图1-1-16
4.(2014年广东茂名一模)某程序框图如图1-1-17,现输入如下四个函数,则可以输出的
函数是( )
图1-1-17
A.f (x )=x 2
B.f (x )=1
x
C.f (x )=e x
D.f (x )=sin x 5.阅读图1-1-18,运行相应程序,则输出的i 值为( )
A.3
B.4
C.5
D.6
图1-1-18
6.
6.如图1-1-20,该程序框图所表示的算法的功能是( )
图1-1-20
A.比较a ,b ,c 三个数的大小
B.求a ,b ,c 三个数中的最大数
C.求a ,b ,c 三个数中的最小数
D.求a ,b ,c 三个数的和 7.如果执行如图1-1-21所示的程序框图后,输出的S =2550,那么判断框内应填( )
A.k <50?
B.k ≤50?
C.k ≤49?
D.k <49?
图1-1-21
8下面是求10的所有正约数的一个算法,请完成这个算法. 第一步,n =1.
第二步,若n ≤10,则判断10
n
是否为整数,若是,则____________,若不是,则执行第
三步;若n >10,则执行第四步.
第三步,将n用n+1代替,返回____________.
第四步,结束.
9.(2013年广东)执行如图1-1-19所示的程序框图,若输入n的值为4,则输出s的值为________.
图1-1-19
10.(创新题)阅读图1-1-22所示的程序框图,试说明它解决的是什么问题.
图1-1-22
11.(2012年全国)如果执行图1-1-23的程序框图,输入正整数N(N≥2)和实数a1,a2,…,
a N,输出A,B,则()
图1-1-23 A.A+B为a1+a2+…+a N的和
B.
A+B
2为a1,a2,…,a N的算术平均数
C.A和B分别是a1,a2,…,a N中最大的数和最小的数
D.A和B分别是a1,a2,…,a N中最小的数和最大的数
1.2基本算法语句
1.2.1输入语句、输出语句和赋值语句
1.下列给出的赋值语句中不正确的是
A.x=-x B.x=x-3
C.x=x2+1 D.4=x
2.执行“PRINT 3+2=”,则输出的结果是()
A.3+2=3+2 B.3+2=5
C.5=3+2 D.5
3.下面程序运行的结果是()
M=1
M=M+1
M=M+2
PRINT M
END
A.2B.3
C.4D.5
4.“x=3×5”,“x=x+1”是某一程序中的先后相邻的两个语句,那么下列说法正确的是()
①x=3×5的意思是x=3×5=15,此式与算术中的式子是一样的;
②x=3×5的意思是将数值15赋给x;
③x=3×5可以写成3×5=x;
④x=x+1语句在执行时“=”右边x的值是15,执行后左边x的值是16.
A.①③B.②④C.①④D.②③
5.在程序语言中,下列符号分别表示什么运算:*____________;/____________;∧______________;SQR()_____________;ABS()___________.
6.写出下列各语句描述的算法的输出结果.
(1)______________;
(2)________________.
a=5
b=3
c=(a+b)/2
d=c*c
PRINT“d=”;d END a=1
b=2
c=a+b
b=a+c-b
PRINT“a,b,c=”;a,b,c END
7.下列程序若输出的结果为3,则输入的x值可能是________.
INPUT“x=”;x
y=x*x+2*x
PRINT y
END
8.已知函数f(x)=x2+3x+1,编写一个程序计算f(4)的值.
9.给出下列程序,此程序的功能为()
INPUT“实数”;x1,y1,x2,y2
a=x1-x2b=y1-y2
m=a∧2n=b∧2
S=m+n
PRINT SQR(S)
END
A.求点到直线的距离
B.求两点之间的距离
C.求一个多项式的值
D.求输入值的平方根
1.2.2 条件语句
1.下列关于条件语句的说法正确的是( ) A.条件语句中必须有ELSE 和END IF B.条件语句中可以没有END IF
C.条件语句中可以没有ELSE ,但是必须有END IF
D.条件语句中可以没有END IF ,但是必须有ELSE
2.如下表示的程序,当输入a ,b 的值分别为2,3时,最后输出的值是( ) INPUT a ,b IF a>b THEN m =a ELSE
m =b END IF PRINT m END
A.2
B.3
C.2或3
D.5
3.已知函数y =?
???
?
x ,x ≥0,-x ,x <0,计算y 的值的程序是( )
INPUT “x =”;x IF x =0 THEN y =x
END IF PRINT y END INPUT “x =”;x IF x>=0 THEN y =x
ELSE y =-x END IF PRINT y
END
A B
INPUT “x =”;x
IF x>=0 THEN
x =y
END IF
PRINT y
END
INPUT “x =”;x
IF x>=0 THEN
y =x
ELSE y =-x
PRINT y
END
C D
4.为了使运行下面程序之后输出y =9,键盘输入应为( )
INPUT “x =”;x IF x>=0 THEN y =(x +1)*(x +1)ELSE
y =(x -1)*(x -1)END IF PRINT y END
A.x =-2
B.x =-4
C.x =-2或x =2
D.x =-4或x =4
5.写出下列程序的运行结果:
若x =6,则P =________;若x =20,则P =________.
6.函数“MOD”表示求余数,如3MOD2=1(3除以2,余数为1),将下列程序补充完整: INPUT x m =xMOD2
IF THEN PRINT “x 是奇数”
ELSE
PRINT “x 是偶数”END IF END
7.对于函数y =?
???
?
x (0
INPUT x
IF x>0 AND x<=10 THEN ELSE
END IF PRINT y END
8.已知在a,b,c三个实数中,有且只有一个正数,设计一个程序(用算法语句表示),筛选出这个正数.
9.铁路部门托运行李的收费方法如下:y是收费额(单位:元),x是行李重量(单位:kg).当0<x≤20时,按0.35元/kg收费;当x>20时,20 kg的部分按0.35元/kg,超出20 kg 的部分,则按0.65元/kg收费.请根据上述收费方法编写程序.
1.2.3循环语句
1.循环语句有WHILE和UNTIL语句两种,下面说法错误的是()
A.WHILE语句和UNTIL语句之间可以相互转化
B.当计算机遇到WHILE语句时,先判断条件真假,如果条件符合,就执行WHILE和WEND之间的循环体
C.当计算机遇到UNTIL语句时,先执行一次DO和UNTIL之间的循环体,再对UNTIL 后的条件进行判断
D.WHILE语句与UNTIL语句之间不可以相互转化
2.下面程序执行后,输出的结果是()
n=5
s=0
WHILE s<15
s=s+n
n=n-1
WEND
PRINT n
END
A.-1
B.0
C.1
D.2
3.阅读下面程序,该程序是哪个和式的计算?()
i=1
S=0
WHILE i<=10
S=S+i
i=i+1
WEND
PRINT S
END
A. B.1+2+3+…+11
C.1+2+3+…+9
D.1+2+3+…+10
4.以下给出的程序的功能是___________________________.
i=1
S=1
WHILE S<=5000
S=S*i
i=i+1
WEND
i=i-2
PRINT i
END
5.下面是求30个数的平均数的程序,则在横线上应补充语句为()
A.i>30
B.i<30
C.i>=30
D.i<=30
6.把求n!的程序补充完整
[注:n!=1×2×…×(n-1)×n]:
7.设计一个计算5×7×…×99的算法,并写出相应的算法程序.
8.下面程序输出的n值是____________.
j =1
n=0
WHILE j<=11
j=j+1
IF
jMOD 4=0
THEN
n=n+1
END IF
j=j+1
WEND
PRINT n
END
9.读程序:
甲乙
i=1
S=0
WHILE i<=1000 S=S+i
i=i+1
WEND
PRINT S
END i=1000
S=0
DO
S=S+i
i=i-1
LOOP UNTIL i<1 PRINT S
END
对甲、乙程序和输出结果判断正确的是()
A.程序不同,结果不同
B.程序不同,结果相同
C.程序相同,结果不同
D.程序相同,结果相同
10.设计一个程序,求立方小于等于1000的所有正整数.
1.3算法案例
1.整数108与84的最大公约数是()
A.6
B.8
C.12
D.24
2.用秦九韶算法求多项式f(x)=7x6+6x5+3x2+2当x=4时的值,先算的是()
A.4×4=16
B.7×4=28
C.4×4×4=64
D.7×4+6=34
3.用秦九韶算法计算多项式f(x)=x7-5x5+2x4+4x3+7x2+9x+2当x=2时的值时,需要做乘法和加法运算的次数分别是()
A.7,7
B.7,6
C.6,7
D.6,6
.4 根据如图1-3-1所示的求公约数方法的程序框图,输入m=2146,n=1813,则输出的实数m的值为()
图1-3-1
A.36
B.37
C.38
D.39
5.将下面的八进制数化为十进制数.
(1)24(8);(2)1357(8).
6 用秦九韶算法计算多项式x4+x3+x2+x+1的值时,其表达式应写成________________.
7.若六进制数13a 502(6)转化为十进制数后,等于12 710,求数字a的值(要求用两种方法解答).
8用辗转相除法求210与162的最大公约数,并用更相减损术检验.
9..用秦九韶算法求多项式f(x)=7x7+6x6+5x5+4x4+3x3+2x2+x当x=3时的值.
参考答案
第一章 算法初步 1.1 算法与程序框图 1.1.1 算法的概念 【课后巩固提升】
1.B 2.C 3.B 4.A 5.D
6.移项,得2x =-3 系数化为1,得x =-3
2
输出x =-3
2
7.-2x <-3 x >3
2
8.解:用加减消元法解这个方程组,其算法步骤是: 第一步,①×2-②,得-3y =3. ③ 第二步,解③,得y =-1.
第三步,①×5-②,得6x =24. ④
(或第三步,将y =-1代入①,得2x -1=7. ④) 第四步,解④,得x =4.
第五步,方程组的解为?
????
x =4,
y =-1.
9.第二步,求k 值,k =tan α
第三步,把k =tan α代入直线l 的方程得y -y 0=tan α(x -x 0)
10.解:(1)天平不平衡 那个重的小球在较重的一组中 天平平衡 (2)算法如下:
第一步,将全部小球分成A ,B ,C 三组,使A ,B 两组的球一样多,且比C 组多一个球.
第二步,将A ,B 两组的小球分别放在天平的两侧,若天平不平衡,则那个重的小球在较重的一组中,执行第三步;若天平平衡,则那个重的小球在C 组中;
第三步,对含那个重的小球的一组,重复第一步、第二步的操作直至找出那个重的小球为止.
这样至多测量4次就可找出那个重的小球.
1.1.2 程序框图和顺序结构 【课后巩固提升】 1.D 2.A 3.A
4.D 解析:程序框图有且仅有一个入口和一个出口,其中每一部分都应有一条从入口到出口的路径通过它.程序框图的循环必须在有限步骤内完成,无限的循环被称为死循环,在程序框图中是禁止出现的.
5.C
6.B 解析:本框图是一个赋值语句.先把y 的值2赋给x ,即x =2;然后再把z 的值3赋给y ,即y =3;最后把x 的值2赋给z ,即z =2.∴输出的x ,y ,z 的值分别为2,3,2.
7. 8.解:如图D4.
图D4 9.y=-x
10.解:算法步骤如下:
第一步,输入实数a,b.
第二步,计算a2+b2,并将结果赋给c.
第三步,计算l=a+b+c.
第四步,输出l.
程序框图如图D5.
图D5 11.解:算法步骤如下:
第一步,人带两只狼过河.
第二步,人自己返回.
第三步,人带一只羚羊过河.
第四步,人带两只狼返回.
第五步,人带两只羚羊过河.
第六步,人自己返回.
第七步,人带两只狼过河.
第八步,人自己返回.
第九步,人带一只狼过河.
程序框图如图D6.
图D6
1.1.3条件结构和循环结构
【课后巩固提升】
1.C 2.B 3.条件 4.D
5.B解析:列表依照循环执行过程可得出结果.
6.输出n第二步
7.7解析:根据题意,该算法的功能为
第一步:i=1,s=1+(1-1)=1,i=2;
第二步:i=2,s=1+(2-1)=2,i=3;
第三步:i=3,s=2+(3-1)=4,i=4;
第四步:i=4,s=4+(4-1)=7,i=5.
5>4,此时退出程序,输出s=7.
8.B
9.B解析:因为S=2+4+6+…+100=2550,故k=50,故判断框内填“k≤50?”.10.解:本题为当型循环结构,先执行i≤n?,再循环.i=1是奇数,执行循环体时,i均取奇数,M是所有奇数的3次幂之和,即计算13+33+53+…+n3的值.11.C
1.2基本算法语句
1.2.1输入语句、输出语句和赋值语句
【课后巩固提升】
1.D 2.B 3.D 4.D
5.乘除乘方求算术平方根求绝对值
6.C
7.(1)16(2)1,2,3
8.1或-39.B
10.解:程序如下:
INPUT“x=”;x
x=4
y=x∧2+3*x+1
PRINT“f(4)=”;y
END
11.B
1.2.2 条件语句 【课后巩固提升】
1.C 2.B 3.B 4.a 是否为0 5.2.1 10.5
解析:求分段函数P =?
????
0.35x (x ≤10),
3.5+0.7(x -10) (x >10)的值.
6.m<>0 7.C
8.y =x y =2*x -11
9.解:由题意,得y =?
????
0.35x (0 0.35×20+0.65(x -20) (x >20), 该函数是一个分段函数,需要对行李的重量作出判断,因此,这个过程可以用算法中的条件结构来实现. 程序如下: 10.解:程序框图如图D10,程序如下: INPUT a ,b ,c IF a>0 THEN PRINT “正数”;a ELSE IF b>0 THEN PRINT “正数”;b ELSE PRINT “正数”;c END IF END IF END 图D10 1.2.3 循环语句 【课后巩固提升】 1.D 2.B 解析:试运行程序,n =5,s =0;s =5,n =4;s =9,n =3;s =12,n =2;s =14,n =1;s =15,n =0.输出n =0. 3.D 4.求使1×2×3×…×i ≤5000成立的最大正整数 5.A 6.INPUT WHILE WEND 7.解:算法如下: 第一步,令S =5,i =7. 第二步,S =S ×i ,i =i +2. 第三步,判断i>99是否成立,若成立,则执行下一步;否则,返回第二步. 第四步,输出S,结束. 程序如下: S=5 i=7 DO S=S*i i=i+2 LOOP UNTIL i>99 PRINT S END 8.3解析:试运行程序,j=1,n=0;j=2,j=3;j=4,n=1,j=5;j=6,j=7;j =8,n=2,j=9;j=10,j=11;j=12,n=3,j=13,输出n=3. 9.B解析:甲、乙都是计算1+2+3+…+1000的值. 10.解:程序如下: i=0 DO i=i+1 m=i*i*i LOOP UNTIL m>1000 PRINT i END 1.3算法案例 【课后巩固提升】 1.C 2.15 3.D解析:因为f(x)=a n x n+a n-1x n-1+…+a1x+a0=(…((a n x+a n-1)x+a n-1)x+…+a1)x+a0,所以用秦九韶算法求多项式f(x)=7x6+6x5+3x2+2当x=4时的值,先算的是7×4+6=34. 4.x(x(x(x+1)+1)+1)+1 5.A解析:此n次多项式的最高次项系数为1且含有系数为0的项,但仍需进行n 次乘法运算和n次加法运算. 6.解:(1)24(8)=2×8+4=20. (2)1357(8)=1×83+3×82+5×8+7=751. 7.解:210=162×1+48,162=48×3+18,48=18×2+12,18=12×1+6,12=6×2+0. 所以210与162的最大公约数为6. 检验:因为210与162都是偶数,可同时除以2, 即取105与81的最大公约数后再乘2, 105-81=24,81-24=57,57-24=33, 33-24=9,24-9=15,15-9=6,9-6=3,6-3=3. 所以210与162的最大公约数为3×2=6. 8.B解析:算法的功能是利用辗转相除法求2146与1813的最大公约数,2146=1813+333; 1813=5×333+148;333=2×148+37;148=4×37+0,最大公约数是37.故选B. 9.解:方法一:将六进制数转化为十进制数. 13a 502(6)=1×65+3×64+a×63+5×62+0×6+2 =12 710(10). 即7776+3888+216a+180+0+2=12 710, 216a=864,a=4. ∴a的值为4.