程序改错
1、
2、
3、
下列中有8大题,081班做前4题,082班做后四题。程序改错题的要求是:原有语句不变,将正确语句用红色字体写在错误语句的右原有语句不变,原有语句不变在修改程序时,不允许修改程序的总体框架和算法,侧,在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。数目。交
作业时,文件名类似为“公事管08212***”,发到相应的班级文件夹下的题号文件夹下。
1、程序改错(5分)下列程序的功能是计算分数数列2/1,3/2,5/3,……,m/n,m+n/m的前20项之和。要求:①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。nSum=0m=2&;&;数列中第一项的分子n=1&;&;数列中第一项的分母FORx=1TO20nSum=nSum+m/xy=mm=m+nn=yENDDOWAITWINDOWS'前20项之和为'+STR(nSum,10,2)
2、程序改错(5分)下列程序的功能是统计所有的“水仙花数”的个数,“水仙花数”是指一个三位数,其各位数333字立方和等于该数本身,例如:153=1+5+3)。要求:①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。nCount=1FORn=100TO999&;&;n1=VAL(SUBS(STR(n,3),3,1))n2=VAL(SUBS(STR(n,3),2,1))n3=VAL(SUBS(STR(n,3),1,1))IFn=n1^3+n2^3+n3^3nCount=nCount+1ENDIFENDFOR
WAITWINDOWS'“水仙花数”的个数为'+nCount
3、程序改错(5分)下列程序的功能是统计一个字符串中包括多少个汉字(假设这些汉字均属于GB2312字符集),其基本算法是从字符串中依次取一个字符,如果其ASCII码值大于127,则为一个汉字内码的第一个字节。要求:①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。cString='微软(Microsoft)公司开发的视窗(Windows)操作
系统'nCount=0DOWHILELEN(cString)=0IFASC(LEFT(cString,1))>127nCount=nCount+1cString=SUBSTR(cString,3)ELSEcString=SUBSTR(cString,1)ENDIFENDDOWAITWINDOWS'汉字个数为'+STR(nCount)&;&;赋初值
4、程序改错(5分)下列程序用于计算数列1,1/2,1/3,1/4,1/5,……,1/n之和,当某一数列项的值小于0.01时停止计算。要求:①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。SETDECIMALTO2n=1nSum=0DOWHILE.T.IF1/n<0.01LOOPENDIFnSum=nSum+nn=n+1ENDDOWAITWINDOWS'该数列之和为'+STR(nSum,10,2)
5、程序改错(5分)下列程序的功能是:将一个字符串中的各个单词的首字母组成其缩写形式(大写字母),其中,
字符串由多个英文单词组成且各单词之间用一个空格分隔,例如,对于字符串“centralprocessingunit”,生成其缩写形式“CPU”。其基本算法为:字符串左边加一个空格,然后依次检查字符串的每一个字符,如果该字符为字母且左边为空格,则该字母为首字母。要求:①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。cString='centralprocessingunit'&;&;赋初值cString=SPACE(1)+UPPER(cString)cResult=SPACE(0)FORn=2TOcStringc=SUBSTR(cString,n,1)IFBETWEEN(c,'A','Z')ANDSUBSTR(cString,n-1,1)=SPACE(1)cResult=cResult+nENDIFENDFORWAITWINDOWS'缩写形式为'+cResult
6、程序改错(5分)下列程序的功能是将二进制数转换成十进制数表示。要求:①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。nNumber=1011001&;&;赋初值(认定它为二进制数)cNumber=ALLTRIM(STR(nNumber))nResult=0FORn=LEN(cNumber)TO1c=LEFT(cNumber,1)IFc='0'nResult=nResult*2+1ELSEnResult=nResult*2ENDIFcNumber=SUBSTR(cNumber,2)ENDFORWAITWINDOWS'十进制数表示为'+STR(nResult)
7、程序改错(5分)下面的程序是用于将十进制数转换成二进制数表示。要求:①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。nNumber=37&;&;赋初值(十进制数)