版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序改错: 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。练习1:下列程序是将“China”编成密码,规律是:如是大写字母,用原字母后面第4个字母代替原字母,例字母“A”后面第4个字母是“E”,用“E”代替“A”;小写字母用原字母后面第2个字母代替原字母,例如字母“a”后面第2个字母是“c”,用“c”代替“a”。因此,“China”密码为“Gjkpc”。SET COLLATE TO MACHINELOCAL mSting,cString,chmString=SPACE(0)cString=ChinaFOR i=1 TO VAL(cString)*FOR i=1 TO
2、Len(cString)ch=SUBSTR(cString, 1, i)*ch=SUBSTR(cString, i,1)IF BETWEEN(ch,a,z)mString=mString+CHR(ASC(ch)+2)ELSEmString=mString+CHR(ASC(ch)+4)ENDIFENDFORWAIT WINDOW cString+密码为+mString练习2:下列程序中的过程(过程名为ren)用来产生n个ab之间的随机整数,然后将它们以从大到小的顺序存储在数组X中,并分别输出n=10、a=5、b=25和n=20、a=50、b=80时数组X的值。=ren(10,5,25)=ren(
3、20,50,80)PROC renPARA a,b,n *PARA n,a,bDIME x(n)x = 0FOR i = 1 TO nx(i) = INT(b-a)*RAND() + a)ENDFORFOR j = 1 TO n-1FOR k = j+1 TO n IF x(k) x(j)t = x(j) x(k) = x(j) *x(j) = x(k) x(k) = tENDIFENDFOR ENDFORFOR i = 1 TO n?x(i)ENDFOR ENDPROC练习3:下列程序用来产生10个3050之间的随机整数,并将它以从大到小的顺序存储在数组X中。DIMENSION X(10)x
4、 = 0FOR i = 1 TO 10x(i) = INT(50-30)*RAND()+20) *x(i) = INT(50-30)*RAND()+30)ENDFORFOR j = 1 TO 9FOR k = j+1 TO 10 IF x(k) x(j)t = x(j) x(j) = x(k) x(k) = tENDIFENDFOR ENDIF *ENDFORCLEARFOR i = 1 TO 10?x(i)ENDFOR练习4:数组A中存放着n个互不相同的整数,且按从小到大的顺序排列,要求在A数组中插入一个给定整数x(x不等于n个数中任何一个),插入以后A数组仍然是有序的。假定这n个整数分别为
5、10、20、30、40、50、60、70、80、90和100,X=55。n=10DIMENSION a(n+1)x = 55FOR i = 1 TO n a( i ) = i*nENDFORFOR j=1 TO n-1IF a(j)xFOR k = n+1 TO j+1 STEP -1a(k) = a(j+1) *a(k) = a(k-1)ENDFOR a(j) = x LOOP *EXITENDIFa(n+1)=IIF(j=n-1,x,a(n+1)ENDFORDISPLAY MEMORY LIKE A*练习5:数组A中存放着n个互不相同的数据,且按从小到大的顺序排列,要求从A数组中删除与给定
6、数x相同的那个数,后面数依次前移一个位置。假定这n个数为10、20、30、40、50、60、70、80、90和100,x=60。要求:n=10DIMENSION A(n)x = 60FOR i = 1 TO n A(i) = i*nENDFORm = INT(n+1)/2)IF A(m) xt1 = 1t2 = mENDIF *ELSEt1 = mt2 = nENDIFFOR j = t1 TO t2IF A(j) = xFOR k = j TO n-1A(k) = A(j+1) * A(k) = A(K+1)ENDFORA(n) = .F.EXITENDIFENDFORDISPLAY MEM
7、ORY LIKE A*练习6:找出12000之内所有的阿姆斯特朗数(Armstrong number)。一个数如果等于其每一位数字立方之和,则此数称为阿姆斯特朗数。例如407就是一个阿姆斯特朗数,因为:407 = 43 + 03 + 73。要求:? 12000之内的阿姆斯特朗数为:nCount=0FOR i = 1 TO 2000n = LEN(ALLT(STR(i)m = 0FOR j = 1 TO n m = m + VAL(RIGHT(ALLT(STR(i), j, 1)3 * m = m + VAL(substr(ALLT(STR(i), j, 1)3 ENDFORIF i = n*I
8、F i=mnCount= nCount+1? iENDIFENDFOR? ”共计”+ALLT(STR(nCount)+”个”练习7:下列程序用来找出1000以内同时满足以下条件的数:1)个位数字与十位数字之和除以10所得的余数是百位数;2)该数是素数(仅能被1和本身整除的数称为“素数”)。例如211、239、367等。CLEARFOR i = 1 TO 1000yn = .T.FOR j = 3 TO i-1IF MOD(i,j) = 0yn = .F.EXITENDIFENDFORIF yns = ALLT(STR(i)s1 = RIGHT(s,1)s2 = LEFT(RIGHT(s,2),
9、1)s3 = LEFT(RIGHT(s,3),1)IF MOD(s1+ s2,10) = s3 * IF MOD(VAL(s1)+ VAL(s2),10) = VAL(s3)? iENDIFENDIFENDIF *ENDFOR练习8:下列程序用来计算1!+(1!+3!)+(1!+3!+5!)+(1!+3!+5!+11!)。CLEARm = 0FOR i = 1 TO 6FOR j = i TO 2*i -1 STEP 2 m = m + jc(j)ENDFORENDFOR? 1!+(1!+3!)+(1!+3!+5!)+(1!+3!+5!+11!)的值为:+STR(m)FUNCTION jcPA
10、RAMETERS ns =1 FOR k = 1 TO ns = s*kNEXT *ENDFORRETURN *RETURN S练习9:下列程序的功能是找出1000之内所有的完数,并统计它们的个数(完数是指这样一个数,该数的各因子之和正好等于该数本身。例如,6的因子是1,2,3,而1+2+3=6,所以6是完数)。要求:CLEARnCount=0FOR n1 = 1 TO 1000m=0FOR n2 = 1 TO n1-1IF n1/n2 = MOD(n1,n2) * IF n1/n2 = INT(n1,n2)m = m + n2ENDIFENDIF *ENFFORIF n1 = m?n1 nC
11、ount = nCount + 1ENDIFENDFORWAIT WINDOWS 完数的个数为 + STR(nCount) 练习10:下列程序的功能是找出1000之内所有完数的个数(完数是指这样一个数,该数的各因子之和正好等于该数本身。例如,6的因子是1,2,3,而1+2+3=6,所以6是完数)。要求: CLEARn1 = 1nCount = 0DO WHILE n1=1000m=0FOR n2 = INT(n1/n2) TO 1 STEP -1 * n2=int(n1/2)IF n1/n2 = INT(n1/n2) m = m + n2ENDIFENDFOR IF n1 = m nCount
12、 = nCount + 1?n1ENDDO *ENDIFn1 = n1 + 1ENDDO WAIT WINDOWS 完数的个数为 + STR(nCount) 练习11:下列程序的功能是找出两个正整数的最大公约数。可以用辗转相除法来求最大公约数。例如27和6,先用27除以6,余数为3,由于余数不为0,再将6作为被除数,3作为除数,得到余数为0,则3就是27和6的最大公约数。要求:CLEARm = 27n = 6IF mnt = mm = nn = tENDIFr = MOD(m,n)DO WHILE r0 m = nn = t *n=rr = MOD(m,n)ENDDOWAIT WINDOWS
13、最大公约数为+ STR(r) * STR(n)练习12:下列程序的功能是找出1992至2010年中的闰年。判断闰年的条件是:(1)能被4整除,但不能被100整除的年份;(2)能被100整除,又能被400整除的年份。如1989,1900年不是闰年,1992,2000是闰年。要求:n=1992y = 1DO WHILE n=2010IF INT(n/4) = n/4IF INT(n/100) n/100y = 1ELSEIF INT(n/400) = n/400y = 1 ELSEy = 0ENDIF ENDIFENDIF *ELSEy = 0ENDIFWAIT WINDOWS STR(n) +
14、是 + IIF(y = 1,闰年,非闰年) *y=1n = n + 1ENDDO练习13:下列程序的功能是求函数f(x)的值,同时分别给出x= -2,x=2,x=6时函数的值。函数表达式为:CLEAR?f(-2)?f(2)?f(6)FUNCTION fPARAMETERS x IF x x(j)t = x(j) x(j) = x(k) x(k) = tENDIFENDDO * ENDFORENDFORCLEARFOR i = 1 TO 20?x(i)ENDFOR练习15:下列程序用来判断一个大于或等于3的正整数是不是素数。所谓素数是指除1和该数本身之外,不能被其它任何整数整除。要求:FOR n = 3 TO 100i = 2y = .T.DO WHILE i= n * DO WHILE i= n 1IF n/i = INT(n/i)y = .F.i = i+1EXIT ENDIFi = i + 1ENDDO?IIF( y, n,)ENDIF *ENDFOR练习16:找出由1,2,3,4这四个数字组成的所有可能的四位数,并统计它们的个数(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44821.1-2024平流层飞艇通用技术要求第1部分:环境控制系统
- 2024年度文化产业项目投资与孵化合同3篇
- 04版房地产开发合同2篇
- 2024年度网络游戏开发与运营合同:某游戏公司与某运营商之间的合同
- 班会课件主题班会做有责任心的人
- 2024年度禽畜粪便处理服务合同2篇
- 世界地理复习课件全部
- 2024年度博物馆展览设计合同
- 2024年度电子商务培训服务合同
- 2024年度技术转让合同技术转让详细描述
- TSCQA 208-2021 砼肋混凝土叠合板应用技术规程
- 银行保险从业人员销售服务初级培训考试题库
- 智慧学校(智慧教育)智慧校园创建工作汇报-强管理、重应用、促提升
- 多路温度采集系统设计与实现
- 泥浆材料及处理剂大全
- 临床基因扩增检验操作规范
- PS+6000+综合自动化系统教学
- 《空气能占据空间吗》教学反思
- 标准化沟通在临床护理中的应用PPT幻灯片课件
- 苏教版四年级上册小学数学《简单的周期》课件(公开课)
- 生活垃圾分类(课件)小学生垃圾分类主题班会
评论
0/150
提交评论