第10章第2节一、选择题1.下列赋值语句正确的是()A.6=tB.x+y=5C.A=B=2D.x=x2[答案]D[解析]由赋值语句中的“=”左边是变量,右边是表达式知A错,又赋值语句只能给一个变量赋值,所以B、C错,只有D正确.2.执行下面的程序,输出的结果为()x=20Ifx≥10ThenValue=5*xElseValue=4*xEndIf输出ValueA.100B.80C.60D.20[答案]A[解析]x取值满足条件,执行Then分支,Value=5x=100.3.下面算法语句的执行结果为()Fori=1To7i=i+2S=2*i+3Next输出S.A.17B.19C.21D.23[答案]A[解析]该程序为For语句,知道循环次数为4次,最后循环结束时,i=7,故此时S=2×7+3=17.4.若输入-3,则下列语句输出的结果为()输入a;Ifa>=0Thenm=a*a-1输出mElse输出“anegativenumber”EndIf.A.8B.-8C.anegativenumberD.以上均不对[答案]C[解析]因为a=-3,不满足a≥0,所以输出“anegativenumber”.5.下面程序的运行结果是()a=2用心爱心专心1b=10Doa=a+1b=b-1LoopWhileb>8输出a,bA.2,10B.3,9C.4,8D.4,7[答案]C[解析]当b=8时不满足LoopWhile后的条件,此时应输出。6.(2011·杭州模拟)下列程序执行后输出的结果是()n=5S=0DoS=S+nn=n-1LoopWhileS<15输出nA.-1B.0C.1D.2[答案]C[解析]n初值是5,S初值是0,每循环一次n减1,循环4次,故n=1.二、填空题7.设计算法计算1+2+3+…+50的值时,如果用循环语句应用________语句,循环次数为________.[答案]For;50[解析]因为知道循环次数,故应用For语句,其语句描述为:S=0Fori=1To50S=S+iNext输出S.8.下面程序表达的是输入x;Ifx>0Theny=1ElseIfx=0Theny=0Elsey=-1EndIfEndIf输出y求函数__________的值.[答案]y=[解析]根据程序语句发现,输入x后,随着x取不同的值输出的y的结果也不相同,故所用心爱心专心2求的是一个分段函数y=的值.9.i=1sum=0Dosum=sum+ii=i+1LoopWhilei≤100输出sum该程序是计算sum=________.[答案]1+2+…+100[解析]正确理解DoLoop语句的形式.10.写出下面算法语句的执行结果________.i=0;S=1;Doi=i+1S=S*iLoopWhileS≤20输出i.[答案]4[解析]第一次循环i=1,S=1×1,第二次S=1×2,第三次S=1×2×3,第四次S=1×2×3×4>20不合题意,而此时i=3+1=4,故输出的i值为4.三、解答题11.已知,现在我国的人口年平均增长率为1.5‰,设现有人口总数为12.3亿,设计算法,用语句描述多少年后人口数将达到或超过15亿.[解析]设n年后满足题意,将n的数值从1开始往后验证,看是否满足结论,这个算法用到了循环结构中DoLoop语句.算法语句描述为:p=12.3;r=0.0015;n=0;Dop=p*(1+r)n=n+1LoopWhilep<15输出n.12.求π的近似值可用以下公式:=++…+.用上述公式求π,当n越大时,越接近π的近似值,写出当n=1000时,求π的近似值的程序,并画出相应的算法框图.[解析]用语句描述为:i=1S=0DoT=1/(i^2)S=S+Ti=i+1LoopWhilei<=1000用心爱心专心3M=6*SP=sqr(M)输出P算法框如图所示:用心爱心专心4