第二章 算法初步 2.4.3循环语句 一、选择题 1、学了算法你的收获有两点,一方面了解我国古代数学家的杰出成就,另一方面,数学的机械化,能做许多我们用笔和纸不敢做的有很大计算量的问题,这主要归功于算法语句的( ) A、输出语句 B、赋值语句 C、条件语句 D、循环语句 2、读程序 甲:INPUT i=1 乙:INPUT I=1000 S=0 S=0 WHILE i≤1000 DO S=S+i S=S+i i=i+l I=i一1 WEND Loop UNTIL i<1 PRINT S PRINT S END END 对甲乙两程序和输出结果判断正确的是 ( ) A、程序不同结果不同 B、程序不同,结果相同 C、程序相同,结果不同 D、程序相同,结果相同 3、在上题条件下,假定能将甲、乙两程序“定格”在i=500,即能输出i=500 时一个值,则输出结果 A、甲大乙小 B、甲乙相同 C、甲小乙大 D、不能判断 二、填空题 4、INPUT x IF 990 S=S+x; m=m+1; end i=i+1; end p=S/m; p [来源:] 7、解:程序如下: n=0;[来源: ] A=0; B=0; C=0; While n≤20 M=input(“M”=) If M<0 B=B+1; else if M=0 C=C+1; else A=A+1; end end n=n+1 end print(%io(2),C,B,A) 8、 解:程序如下: a=input(“a=”) c=input(“c=”) d=b*b-4*a*c p=-b/(2*a) q=SQR(ABS(d))/(2*a) (SQR)()为根号函数 if d>=0 then x1=p+q x2=p-q if x1=x2 then print “One real roots:x1” else print “One real roots:x1”; x1,”and x2”; x2 end print”No real root.” end end 9、解:程序如下: a=input(“a=”) b=input(“b=”) c=input(“c=”) if b>a then t=a a=b b=t end if c>a then t=a a=c c=t end if c>b then t=b b=c c=t end print a,b,c end 10、解:程序如下: i=2;max=0;S=0; for m=1750;m<=1850 for i=2:1(m-1) if m%i=0 break; if(i>m-1) S=S+m;max=m; end end print S, max; end 11、INPUT“money=”,10000 x=mOney r=11.25/100 y=O WHILE x≥2r y=y+1 x=x+r*x WEND PRINT y END 12、解:程序如下: P=1; R=0.09; n=0; while P<2 P=P*(1+R); n=n+1; end print(%io(2),n) 13、解:程序: for i=1:1:100 if i*i/100= =i printf i else if i*i/10= =i printf i end 14、 解:这是一个累加求和问题,共99项相加,可设计一个计数变量,一个累加变量,用循环结构实现这一算法.程序框图如下图所示 [来源:] 15、解:(Ⅰ)该算法使用了当型循环结构,因为是求30个数的和,故循环体应执行30次,其中i是计数变量,因此判断框内的条件就是限制计数变量i的,故应为.算法 中的变量p实质是表示参与求和的各个数,由于它也是变化的,且满足第i个数比其前一个数大,,第个数比其前一个数大i,故应有.故(1)处应填;(2)处应填。 (Ⅱ)可设计程序如下:

【点此下载】