《改错题(包含答案).doc》由会员分享,可在线阅读,更多相关《改错题(包含答案).doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、程序改错 第1题 (10.0分) 题号:20*-*【程序改错】*-*题目:完数是指数n的各因子(1视为因子,n不视为因子)之和正好* 等于该数本身。例如:6为完数(因子为1、2、3,且1+2+3=6)。* 下列程序的功能是:找出1000 以内的所有完数,并将找出的* 完数及该数的所有因子输出。输出结果形式为:* 6,1,2,3* 28,1,2,4,7,14* 要求:* (1)将下列程序输入到项目的程序文件pcode中,并对其中的* 2条错误语句进行修改;* (2)在修改程序时,不允许修改程序的总体框架和算法,不允许* 增加或减少语句数目。*-clearfor i=1 to 1000 m=0
2、 s= for j=1 to i-1 if i/j=int(i/j) m=m+j*FOUND* s=s+ , + j endif endfor if i=m ?i*FOUND* ?s endifendfor答案:=(答案1)=s= s+ ,+ str(j )=或=s= s+ ,+ allt (str(j)=(答案2)=? s第2题 (10.0分) 题号:14*-*【程序改错】*-*题目:下列的程序功能是:求出不超过6位数的Armstrong数。所谓* Armstrong数是指一个n位数的正整数,它的每位数字的n次方* 之和等于该数本身。例如:153=13+53+33 要求:* (1)将下列程序
3、输入到项目的程序文件pcode中,并对其中的* 2条错误语句进行修改;* (2)在修改程序时,不允许修改程序的总体框架和算法,不允许* 增加或减少语句数目。*-clear for m=1 to 100000 n=len(allt(str(m) x=0 for y=1 to n c=substr(allt(str(m),y,1)*FOUND* x=x+val(c)*n endfor*FOUND* if n=x ? Armstrong数, m endif endfor答案:=(答案1)=x =x +val(c) n=或=x =x +val(c) *n=(答案2)=if m=x=或=if x=m第3
4、题 (10.0分) 题号:18*-*【程序改错】*-*题目:下列的程序用来产生30个0100之间的随机整数,并且找出* 其中的最大偶数和最小奇数* 要求:* (1)将下列程序输入到项目的程序文件pcode中,并对其中的* 2条错误语句进行修改;* (2)在修改程序时,不允许修改程序的总体框架和算法,不允许* 增加或减少语句数目。*-cleardimension a(30)for i=1 to 30*FOUND* a(i)=int(rand()*200)endforMmax=-1Mmin=100for i=1 to 30 ?str(a(i),3) if Mmaxa(i) and mod(a(i)
5、,2)=1 Mmin=a(i) endifendfor?最大偶数:,iif(Mmax=-1,无,Mmax)?最小奇数:,iif(Mmin=100,无,Mmin)答案:=(答案1)=a(i) =int (rand() * 100)=(答案2)=endif第4题 (10.0分) 题号:11*-*【程序改错】*-*题目:下列程序用来产生20个0100之间的随机整数,* 并找出其中的最大数和最小数,输出时20个随机* 整数*均在一行显示,下一行显示最大数和最小数。*要求:* (1)将下列程序输入到项目中的程序文件pcode中,并* 对其中的2条错误语句进行修改。* (2)在修改程序时不允许修改程序的总体框架和算法,* 不允许增加或减少语句的数目。*-DIMENSION A(20)FOR I=1 TO 20 A(I)=INT(RAND()*100)ENDFORMmax=A(1)Mmin=A(1)?A(1)FOR i=2 to 20*FOUND* ?STR(A(I),3) IF MmaxA(i) Mmin=A(i) ENDIFENDFOR*FOUND*?最大数是: + Mmax + 最小数是: ,Mmin答案:=(答案1)=?str(a(i) ,3)=(答案2)=?最大数是: + str(Mmax) + 最小数是: , Mmin=或=?最大数是: ,Mmax , 最小数是: , Mmin