高中数学 第一章 算法初步 1.1.1 算法的概念练习(含解析)新人教A版必修3-新人教A版高一必修
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1.1 算法的概念
A级基础巩固
一、选择题
1.下列四种自然语言叙述中,能称作算法的是()
A.在家里一般是妈妈做饭
B.做米饭需要刷锅、淘米、添水、加热这些步骤
C.在野外做饭叫野炊
D.做饭必须要有米
解析:算法是做一件事情或解决一类问题的程序或步骤,故B正确.
答案:B
2.下面的结论正确的是()
A.一个程序的算法步骤是可逆的
B.一个算法可以无止境地运算下去的
C.完成一件事情的算法有且只有一种
D.设计算法要本着简单方便的原则
解析:算法需每一步都按顺序进行,并且结果唯一,不能保证可逆,故A不正确;一个算法必须在有限步内完成,不然就不是问题的解了,故B不正确;
一般情况下,完成一件事情的算法不止一个,但是存在一个比较好的,故C不正确;设计算法要尽量运算简单,节约时间,故D正确.
答案:D
3.一个算法的步骤如下,若输入x的值为-3,则输出z的值为()
第一步,输入x的值.
第二步,计算x的绝对值y.
第三步,计算z=2y-y.
第四步,输出z的值.
A.4B.5
C.6 D.8
解析:因为x=-3,所以y=|x|=3.
所以z=23-3=5.
答案:B
4.阅读下面的算法:
第一步,输入两个实数a,b.
第二步,若a<b,则交换a,b的值;否则,不交换a,b的值.
第三步,输出a.
这个算法输出的是()
A.a,b中较大的数B.a,b中较小的数
C.原来的a的值D.原来的b的值
解析:第二步中,若a<b,则交换a,b的值,那么a是a,b中较大的数,即a≥b.
答案:A
5.给出算法:
第一步,输入n=6.
第二步,令i=1,S=0.
第三步,判断i≤n是否成立.若不成立,则输出S,结束算法;若成立,则执行下一步.
第四步,令S的值加i,仍用S表示,令i的值加1,仍用i表示,返回第三步.
则该算法的功能为()
A.计算1+2+3+4+5+6的值
B.计算1+2+3+4+5的值
C.计算1+2+3+4+5+6+7的值
D.以上答案皆不正确
解析:该算法的运行过程是:
n=6,i=1,S=0,i=1≤6成立;
S=0+1=1,i=1+1=2,i=2≤6成立;
S=1+2,i=2+1=3,i=3≤6成立;
S=1+2+3,i=3+1=4,i=4≤6成立;
S=1+2+3+4,i=4+1=5,i=5≤6成立;
S=1+2+3+4+5,i=5+1=6,i=6≤6成立;
S=1+2+3+4+5+6,i=6+1=7,i=7≤6不成立,输出S=1+2+3+4+5+6=21.
答案:A
二、填空题
6.给出下列算法:
第一步,输入x 的值.
第二步,当x >4时,计算y =x +2;否则执行下一步.
第三步,计算y =4-x .
第四步,输出y .
当输入x =0时,输出y =________.
解析:因为0<4,执行第三步,所以y =4-0=2.
答案:2
7.已知直角三角形两直角边长为a ,b ,求斜边长c 的一个算法分下列三步:
①计算c =a 2+b 2
.
②输入直角三角形两直角边长a ,b 的值.
③输出斜边长c 的值.
其中正确的顺序是________________.
解析:算法的步骤是有先后顺序的,第一步是输入,最后一步是输出,中间的步骤是赋值、计算.
答案:②①③
8.如下算法:
第一步,输入x 的值.
第二步,若x ≥0,则y =x .
第三步,否则,y =x 2.
第四步,输出y 的值.
若输出的y 值为9,则x =________.
解析:根据题意可知,此为求分段函数y =⎩⎪⎨⎪⎧x ,x ≥0,x 2,x <0的函数值的算法.当x ≥0时,x =9;当x <0时,x 2
=9,
所以x =-3.
答案:9或-3
三、解答题
9.试设计一个判断圆(x -a )2+(y -b )2=r 2与直线Ax +By +C =0(A 、B 不同时为零)位置关系的算法.
解:算法步骤如下:
第一步,输入圆心的坐标(a ,b )、半径r 和直线方程的系数A ,B ,C .
第二步,计算z 1=Aa +Bb +C .
第三步,计算z 2=A 2+B 2.
第四步,计算d =|z 1|z 2
. 第五步,如果d >r ,则输出“相离”;如果d =r ,则输出“相切”;如果d <r ,则输出“相交”.
10.某商场举办优惠促销活动.若购物金额在800 元以上(不含800 元),打7折;若购物金额在400 元以上(不含400 元),800 元以下(含800 元),打8折;否则,不打折.请为商场收银员设计一个算法,要求输入购物金额x ,输出实际交款额y .
解:算法步骤如下:
第一步,输入购物金额x (x >0).
第二步,判断“x >800”是否成立,若是,则y =0.7x ,转第四步;否则,执行第三步. 第三步,判断“x >400”是否成立,若是,则y =0.8x ;否则,y =x .
第四步,输出y ,结束算法.
B 级 能力提升
1.给出算法:
第一步,输入x .
第二步,判断x 是否小于0,若是,则输出x +2;否则,执行第三步.
第三步,输出x -1.
当输入的x 的值为-1,0,1时,输出的结果分别为()
A .-1,0,1
B .-1,1,0
C .1,-1,0
D .0,-1,1
解析:根据x 值与0的关系选择执行不同的步骤.
答案:C
2.以下为输出1至1 000的正整数中3的倍数的一个算法,请将算法补充完整: 第一步,令i =1.
第二步,i 被3除,得余数r .
第三步,若________,则输出i ,否则不输出.
第四步,令i =i +1.
第五步,若i ≤1 000,则返回第二步继续执行,否则结束算法.
解析:由定义可知,可被3整除的数即3的倍数,所以此处余数是否为0可以作为判断
是否输出该数的条件.
答案:r=0
3.“韩信点兵”问题:韩信是汉高祖手下的大将,他英勇善战,谋略超群,为汉朝的建立立下了不朽功勋.据说他在一次点兵的时候,为保住军事秘密,不让敌人知道自己部队的军事实力,采用下述点兵方法:①先令士兵从1~3报数,结果最后一个士兵报2;②又令士兵从1~5报数,结果最后一个士兵报3;③又令士兵从1~7报数,结果最后一个士兵报4.这样韩信很快算出自己部队里士兵的总数.请设计一个算法,求出士兵至少有多少人.
解:第一步,首先确定最小的满足除以3余2的正整数:2.
第二步,依次加3就得到所有除以3余2的正整数:2,5,8,11,14,17,20,….
第三步,在上列数中确定最小的满足除以5余3的正整数:8.
第四步,在自然数内的8的基础上依次加上15,得到8,23,38,53,….
第五步,在上列数中确定最小的满足除以7余4的正整数:53.
即士兵至少有53人.。