1、高考资源网() 您身边的高考专家第二章 算法初步2.3.2 循环结构一、选择题1、学了算法你的收获有两点,一方面了解我国古代数学家的杰出成就,另一方面,数学的机械化,能做许多我们用笔和纸不敢做的有很大计算量的问题,这主要归功于算法语句的( )A、输出语句 B、赋值语句 C、条件语句 D、循环语句 2、读程序甲:INPUT i=1 乙:INPUT I=1000 S=0 S=0 WHILE i1000 DO S=S+i S=S+i i=i+l I=i一1 WEND Loop UNTIL i1 PRINT S PRINT SEND END对甲乙两程序和输出结果判断正确的是 ( ) A、程序不同结果不
2、同 B、程序不同,结果相同 C、程序相同,结果不同 D、程序相同,结果相同3、在上题条件下,假定能将甲、乙两程序“定格”在i=500,即能输出i=500 时一个值,则输出结果 A、甲大乙小 B、甲乙相同 C、甲小乙大 D、不能判断二、填空题4、INPUT x IF 9x AND x100 THEN a=x10 b=x MOD 10 x=10*b+a PRINT x END IF END (注:“”是x除以10的商,“MoD”是x 除以10的余数)上述程序输出x的含义是 三、解答题5、一木球从米高下落,每次落地后反跳回原高度的一半,再落下。设计在第次落地时,求小球经过的总路程的程序,并输出总路程
3、和第次下落的路程。6、高一3班共有54名同学参加了数学竞赛,现在已有了这54名同学的竞赛分数。请设计算法,要求将竞赛成绩优秀的同学的平均分计算并输出(规定90分以上为优秀),写出程序。7、 输入20个数,要求输出其中的正数、负数、零的个数,写出程序。8、编写程序,输入一元二次方程的系数,输出它的实数根。9、编写程序,使得任意输入的3个整数按从大到小的顺序输出。10、编写程序:计算并输出17501850之间的素数之和S与其中最大的素数(提示:只能被1和自身整除的自然数成为素数)11、假定在银行中存款10000元,按1125的利率,一年后连本带息将变为11125元,若将此款继续存人银行,试问多长时
4、间就会连本带利翻一番?请用直到型和当型两种语句写出程序12、如果我国工业产值每年以9%的增长率增长,问几年后我国产值翻一番?写出该算法的程序。13、试编程序,找出1至99之间的全部同构数。(同构数是这样一组数,它出现在平方数的右边。例如:5是25右边的数,25是625右边的数,5和25都是同构数。)14、设计算法求的值.要求画出程序框图,写出用基本语句编写的程序.15、给出30个数:1,2,4,7,其规律是:第1个数是1,第2个数比第1个数大1, 第3个数比第2个数大2,第4个数比第3个数大3,依此类推.要计算这30个数的和,现已给出了该问题算法的程序框图(如图所示),()请在图中判断框内(1
5、)处和执行框中的(2)处填上合适的语句,使之能完成该题算法功能;()根据程序框图写出程序.答案:一、选择题1、D 2、B 3、C 二、填空题4、把9到100之间的书转化为1、10之间的数三、解答题5、一木球从米高下落,每次落地后反跳回原高度的一半,再落下。设计在第次落地时,求小球经过的总路程的程序,并输出总路程和第次下落的路程。解:INPUTEND打印结果:、6、解:程序如下:S=0;m=0;i=1;while i90 S=S+x; m=m+1; end i=i+1;endp=S/m;p7、解:程序如下:n=0;A=0;B=0;C=0;While n20M=input(“M”=)If M=0
6、thenx1=p+qx2=p-qif x1=x2 thenprint “One real roots:x1”elseprint “One real roots:x1”; x1,”and x2”; x2endprint”No real root.”endend9、解:程序如下:a=input(“a=”)b=input(“b=”)c=input(“c=”)if ba then t=a a=b b=tendif ca then t=a a=c c=tend if cb then t=bb=cc=tendprint a,b,cend10、解:程序如下:i=2;max=0;S=0;for m=1750;
7、mm-1)S=S+m;max=m;endendprint S, max;end11、INPUT“money=”,10000 x=mOney r=11.25100 y=O WHILE x2r y=y+1 x=x+r*x WEND PRINT y END 12、解:程序如下:P=1;R=0.09;n=0;while P2P=P*(1+R);n=n+1;endprint(%io(2),n)13、解:程序:for i=1:1:100 if i*i/100= =i printf i else if i*i/10= =i printf iend14、解:这是一个累加求和问题,共99项相加,可设计一个计数变量,一个累加变量,用循环结构实现这一算法.程序框图如下图所示15、解:()该算法使用了当型循环结构,因为是求30个数的和,故循环体应执行30次,其中i是计数变量,因此判断框内的条件就是限制计数变量i的,故应为.算法 中的变量p实质是表示参与求和的各个数,由于它也是变化的,且满足第i个数比其前一个数大,,第个数比其前一个数大i,故应有.故(1)处应填;(2)处应填。()可设计程序如下:i=1p=1s=0WHILE i=30 s=s+p p=p+i i=i+1WENDPRINT aEND- 9 - 版权所有高考资源网