haihongyuan.com
海量文库 文档专家
全站搜索:
您现在的位置:首页 > 初中教育 > 初中英语初中英语

改错题(包含答案)

发布时间:2014-01-11 16:00:45  

一、程序改错

第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)在修改程序时,不允许修改程序的总体框架和算法,不允许 * 增加或减少语句数目。

*------------------------------------------------------- clear

for i=1 to 1000

m=0

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

endif

endfor

答案:

=======(答案1)=======

s= s+ ','+ str(j )

=========或=========

s= s+ ','+ allt (str(j))

=======(答案2)=======

?? s

第2题 (10.0分) 题号:14

*------------------------------------------------------- *【程序改错】

*-------------------------------------------------------

*题目:下列的程序功能是:求出不超过6位数的Armstrong数。所谓 * Armstrong数是指一个n位数的正整数,它的每位数字的n次方 * 之和等于该数本身。例如:153=1^3+5^3+3^3 要求: * (1)将下列程序输入到项目的程序文件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题 (10.0分) 题号:18

*------------------------------------------------------- *【程序改错】

*-------------------------------------------------------

*题目:下列的程序用来产生30个0~100之间的随机整数,并且找出 * 其中的最大偶数和最小奇数

* 要求:

* (1)将下列程序输入到项目的程序文件pcode中,并对其中的 * 2条错误语句进行修改;

* (2)在修改程序时,不允许修改程序的总体框架和算法,不允许 * 增加或减少语句数目。

*------------------------------------------------------- clear

dimension a(30)

for i=1 to 30

***********FOUND**********

a(i)=int(rand()*200)

endfor

Mmax=-1

Mmin=100

for i=1 to 30

??str(a(i),3)

if Mmax<a(i) and mod(a(i),2)=0

Mmax=a(i)

***********FOUND**********

else

if Mmin>a(i) and mod(a(i),2)=1

Mmin=a(i)

endif

endfor

?"最大偶数:",iif(Mmax=-1,"无",Mmax)

?"最小奇数:",iif(Mmin=100,"无",Mmin)

答案:

=======(答案1)=======

a(i) =int (rand() * 100)

=======(答案2)=======

endif

第4题 (10.0分) 题号:16

*------------------------------------------------------- *【程序改错】

*题目:下列的程序功能是:在屏幕上显示如图所示的菱形。 * A

* BBB

* CCCCC

* DDDDDDD

* EEEEEEEEE

* FFFFFFFFFFF

* FFFFFFFFFFF

* EEEEEEEEE

* DDDDDDD

* CCCCC

* BBB

* A

* 要求:

* (1)将下列程序输入到项目的程序文件pcode中,并对其中的 * 2条错误语句进行修改;

* (2)在修改程序时,不允许修改程序的总体框架和算法,不允许 * 增加或减少语句数目。

*------------------------------------------------------- set talk off

c="ABCDEF"

clear

for i=1 to len(c)

?space(10-i)

for j=1 to 2*i-1

***********FOUND**********

??subs(c,i)

endfor

endfor

***********FOUND**********

for i=len(c) to 1

?space(10-i)

for j=1 to 2*i-1

??subs(c,i,1)

endfor

endfor

答案:

=======(答案1)=======

?? subs (c, i, 1)

=======(答案2)=======

for i=len(c) to 1 step -1

第5题 (10.0分) 题号:12

*------------------------------------------------------- *【程序改错】

*-------------------------------------------------------

*题目:下列的程序功能是:第一个循环随机生成10个大写英文字 * 母,并且存放到数组C中,第二个循环将数组C中10个元素 * 排序(从小到大)。要求:

* (1)将下列程序输入到项目的程序文件pcode中,并对其中的 * 2条错误语句进行修改;

* (2)在修改程序时,不允许修改程序的总体框架和算法,不允许 * 增加或减少语句数目。

*------------------------------------------------------- clear

n=10

dimension c(n)

for i=1 to n

c(i)=chr(65+int(rand()*26))

endfor

DISPLAY MEMO LIKE c*

for j=2 to n

m=c(j)

for t=1 to j-1

if m<c(t)

for k=j to t+1 step -1

***********FOUND**********

c(k)=c(k+1)

endfor

c(t)=m

exit

endif

endfor

***********FOUND**********

enddo

DISPLAY MEMO LIKE c*

答案:

=======(答案1)=======

c(k )=c (k-1)

=======(答案2)=======

endfor

=========或=========

next

=========或=========

Endf

第6题 (10.0分) 题号:11

*----------------------------------------------- *【程序改错】

*----------------------------------------------- *题目:下列程序用来产生20个0~100之间的随机整数, * 并找出其中的最大数和最小数,输出时20个随机 * 整数*均在一行显示,下一行显示最大数和最小数。 *要求:

* (1)将下列程序输入到项目中的程序文件pcode中,并 * 对其中的2条错误语句进行修改。

* (2)在修改程序时不允许修改程序的总体框架和算法, * 不允许增加或减少语句的数目。

*------------------------------------------------ DIMENSION A(20)

FOR I=1 TO 20

A(I)=INT(RAND()*100)

ENDFOR

Mmax=A(1)

Mmin=A(1)

?A(1)

FOR i=2 to 20

***********FOUND**********

?STR(A(I),3)

IF Mmax<A(i)

Mmax=A(i)

ENDIF

IF Mmin>A(i)

Mmin=A(i)

ENDIF

ENDFOR

***********FOUND**********

?"最大数是:" + Mmax + "最小数是:" ,Mmin

答案:

=======(答案1)=======

??str(a(i) ,3)

=======(答案2)=======

?"最大数是:" + str(Mmax) + "最小数是:" , Mmin =========或=========

?"最大数是:" ,Mmax , "最小数是:" , Mmin

网站首页网站地图 站长统计
All rights reserved Powered by 海文库
copyright ©right 2010-2011。
文档资料库内容来自网络,如有侵犯请联系客服。zhit326@126.com