VFP程序改错答案
- 格式:doc
- 大小:24.00 KB
- 文档页数:4
第一章习题6.将下面的E-R图转为关系数据模型仓库(仓库号,仓库名,地址,面积)产品(产品号,产品名,单价,仓库号,数量)材料(材料号,材料名)订购(产品号,材料号,数量)10.选择题1) B 2)B 3)A 4)B 5)B 6)A 7)B 8)D 9)C 10)C 11)B 12)A11.填空题1) 层次数据库、网状数据库、关系数据库2) 选择、投影、连接3)实体之间的联系、数据库的框架(或结构)4)元组;记录5)属性;属性名6)相同属性;列7)选择;投影;连接8)去掉重复属性的等值联接第二章习题4.选择题1)C 2)B 3)D 4)B 5)B 6)A 7)B 8)C第三章习题1.指出下列数据哪些是常量、哪些是变量?并说明其中常量的数据类型。
答:属于变量的有:姓名、T、NAME、T10其他都属于常量,其中字符常量有:"姓名"、"11/18/98"、"110"、[黄河]数值常量有:11/18/96、320.5、15.5%4日期常量有:ctod("11/18/98")、{^1996/10/20}逻辑常量有:.T.2、指出下列正确的变量名,对不正确的说明原因。
正确的变量名:X2Y、M10、性别、姓名X+Y:含非法字符"+"1AB:数字不能作为变量开头。
V AR%:含非法字符"%"姓名A:含有空格3.写出关系或逻辑表达式1)工资>=240..AND.工资<=12002)职称="教授".AND.性别="男"3)性别="女".AND.LEFT(姓名,2)="张"性别="女".AND.SUBSTR(姓名,1,2)="张"4)婚否=.T..AND.民族="汉".AND.性别="男"5)生日>={^1982/01/01} 或 YEAR(生日)>=19826)年龄%12=0 或 MOD(年龄,12)=04.设年龄=25,性别="男",婚否=.F.,学历="大学",工资=1200,判断下列逻辑表达式的值1).F. 2).T. 3).T. 4).T.5.指出下列表达式的值(按Machine规则)1) "中国湖北沙市"2) "湖北荆州龙舟节"3).T. 4).T. 5).F. 6).T. 7).F. 8).T.6.指出执行下列每一步操作后内存变量的值各是多少,并说明内存变量的类型?M1 值为10,是数值型M2 值为20,是数值型M2值为200,是数值型M3值为105,是数值型M1值为"A",是字符型M2值为"B",是字符型M3值为"AB",是字符型7.选择正确的答案1)D 2)C 3)C 4)C 5)B 6)A 7)B 8)D 9)B 10)D 11)C 12)A 13)D 14)A 15)D 16)B 17)C 18)A 19)D 20)D 21)D 22)D 23)D 24)C 25)C8.分别说明下列函数功能或函数返回的值1)返回值为-42)返回值为53)返回当前工作区打开的表的当前记录的记录号4)返回值为"def"5)返回值为26)返回值为"012"7)返回当前工作区打开的表的记录数目8)返回值为-35.49)返回值为.T.10)返回值为511)返回值分别为 1999、8、112)返回值分别为 N、D、C、C第四章习题1.选择题1)C 2)B 3)C 4)C 5)B 6)B 7)C 8) D 9) D 10) B11) A 12) B 13) B 14) B 15) B 16) C 17) D 18) D 19) B 20) C6. 书写命令或命令序列来完成以下任务1)USE 学1REPLACE ALL 专业WITH "计算机应用" FOR 专业="计算机"2)USE 学1REPLACE ALL 学号WITH "9710110" FOR 姓名="李明"3)USE 成绩APPEND BLANKREPLACE 学号WITH ”9710110”,平时成绩WITH 85, 期末成绩WITH 884)USE 工资REPALCE ALL 工资WITH 工资+50 FOR 性别="女"5)USE 学1INDEX ON 姓名TO XMFIND 柳青或SEEK "柳青"DISPLAY 或? 学号,姓名,性别,生日6)USE 学1DISP ALL 姓名,性别,专业,四级for left(姓名,2)="李"第五章12.选择题(1)-(10):A、C、C、D、D、A、B、D、B、B(11)-(12):B、B、C、C、B、B、A、A、D、B第六章10.选择题1)D 2)A 3)C 4)B 5)A 6)A 7)D 8)C 9)A 10)D11)A 12)C 13)C 14)C 15)D 16)D 17)D 18)D 19)B 20)A11.填空题1)磁盘2)DROP COLUMN 职业3)UNION4)UPDATE ALTER TABLE5) NULL6)逻辑7)SUM,A VG8) (INTO CURSOR),(INTO TABLE 或INTO DBF),(INTO ARRAY)9) 对于复杂的查询,查询设计器将无能为力10)连接第七章习题与上机实习题一、选择题1、C2、B3、C4、B5、A6、B7、C8、C9、C 10、A二、编写程序并上机调试程序1、* 求三个数的最大值和最小值CLEARINPUT "请输入第一个数:" TO AINPUT "请输入第二个数:" TO BINPUT "请输入第三个数:" TO CIF A>BMI=BMA=AELSEMI=AMA=BENDIFIF MI>CMI=CENDIFIF MA< CMA=CENDIF? "三个数中最大的数是:",MA? "三个数中最小的数是:",MIRETURN2、*增加分数的程序IF-ELSE的程序参见课本P396下面为CASE语句的程序:CLEARUSE 成绩? "开始的成绩如下:"LISTGO TOPDO WHILE NOT EOF()DO CASECASE 平时成绩<60REPLACE 平时成绩WITH 60CASE 平时成绩<70REPLACE 平时成绩WITH 平时成绩+5 CASE 平时成绩<80REPLACE 平时成绩WITH 平时成绩+3 CASE 平时成绩<90REPLACE 平时成绩WITH 平时成绩+2ENDCASESKIPENDDO?"增加平时成绩后的数据如下:"LISTUSERETURN3、*用DO-WHILE循环统计过四级的男女人数CLEAR? "用DO-WHILE循环统计过四级的男女人数:" USE 学1STORE 0 TO MALE,FEMALEDO WHILE .NOT. EOF()IF SUBSTR(学号,3,2)='01' .AND. 四级=.T.IF 性别="男"MALE=MALE+1ELSEFEMALE=FEMALE+1ENDIFENDIFSKIPENDDO? "通过四级的男生人数为:",MALE? "通过四级的女生人数为:",FEMALEUSE*用SCAN-ENDSCAN循环统计过四级的男女人数,可参考课本P213页例7-16 ? "用SCAN-ENDSCAN循环统计过四级的男女人数:"USE 学1STORE 0 TO M,WSCAN ALL FOR SUBSTR(学号,3,2)='01' .AND. 四级=.T.IF 性别="男"M=M+1ELSEW=W+1ENDIFENDSCAN? "通过四级的男生人数为:",M? "通过四级的女生人数为:",WUSERETURN6、*计算S=2!+4!+6!+ (10)CLEARS=0FOR I=2 TO 10 STEP 2JC=1DO SUB1 WITH I,JCS=S+JCNEXT? "S=2!+4!+……+10!=",SRETURN*计算阶乘的子过程PROCEDURE SUB1PARAMETER N,MFOR J=1 TO NM=M*JNEXTRETURN7、*用键盘输入一个文字,然后替换里面的字符串CLEARACCEPT "请输入字符串…我爱祖国,你爱祖国,他爱祖国,我们爱祖国‟:" TO X N=A T("祖国",X)DO WHILE N<>0X=STUFF(X,N,4,"中国")N=AT("祖国",X)ENDDO? "替换后的文字为:" ,XRETURN8、*求斐波那契数列的前15项CLEARDECLARE F(15)STORE 1 TO F(1),F(2)FOR I=3 TO 15F(I)=F(I-1)+F(I-2)NEXT? "斐波那契数列的前15项为:"FOR I=1 TO 15?? F(I),NEXTRETURN三、阅读程序,写出输出结果,并上机验证自己的判断是否正确1. 写出以下程序的显示结果6 12 02.写出以下程序的显示结果3 6 9 12 153.写出以下程序的显示结果1*1= 1 1*2= 2 1*3= 3 ……1*9= 92*1= 2 2*2= 4 2*3= 6 ……2*9=183*1= 3 3*2= 6 3*3= 9 ……3*9=27……9*1= 9 9*2=18 9*3=27 ……9*9=814. 写出以下程序的显示结果12 5 315 8 315 5 35. 设CJ.DBF数据表内容和程序分别如下:李晓芳75 75 150江海男周德明四、程序填空1.Store 0 TO S,W“C”+ALLTRAM(STR(I))&DBI=I+12.M=RECCOUNT() 或COUNT TO MUPPER(ANK)=”N” 或ANK&”nN” 或UPPER(ANK)<>”Y”ENDIFPACK3.USE RS INDEX BHDELETEDQJL=编号SKIPPACK五、程序改错改正下面程序的错误,使之能计算100以内(包括100)能被3整除的正整数之和。
vfp程序改错〖第1题〗『程序改错』(8分)(题号:513)*-------------------------------------------------------*【程序改错】*-------------------------------------------------------*题⽬:统计字符串中各元⾳字母(即:A、E、I、O、U)的个数。
* 注意:字母不分⼤、⼩写。
* 例如:若输⼊:THIs is a boot,则输出应该是:* 1、0、2、2、0。
*-------------------------------------------------------*注意:不可以增加或删除程序⾏,也不可以更改程序的结构。
*-------------------------------------------------------set talk offclears="This is a boot"store 0 to i1,i2,i3,i4,i5***********FOUND**********for i=0 to len(s)-1***********FOUND**********m=subs(s,i,i)do casecase m="A" .or. m="a"i1=i1+1case m="E" .or. m="e"i2=i2+1case m="I" .or. m="i"i3=i3+1case m="O" .or. m="o"i4=i4+1case m="U" .or. m="u"i5=i5+1***********FOUND**********otherwiseendfori1,i2,i3,i4,i5SET TALK ON答案:1). for★i=1★to★len(s)2). m=subs(s,i,★1)3). endcase〖第2题〗『程序改错』(8分)(题号:188)*-------------------------------------------------------*【程序改错】*-------------------------------------------------------*题⽬:显⽰XSDB.DBF中每个学⽣的姓名、计算机成绩和等级;等* 级划分如下:计算机成绩⼤于等于90显⽰"优秀";60到89* (包括 60和89)之间显⽰"及格";60分以下显⽰"补考"。
1.*题目:输入一个数值(如1998),要求输出一个字符串*(如1998 ---> 一九九八年)SET TALK OFFCLEARC="○一二三四五六七八九"s=""input "x=" to xm=xdo while x>0p=mod(x,10)***********SPACE**********s=substr(c,2*p+1,2)+sx=int(x/10)enddo***********SPACE**********s=s+年***********SPACE**********?m,"--->",s2.*题目:本程序实现:输入一个数,判断是否是素数。
SET TALK OFFCLEAINPUT 'X=' TO XFOR I=2 TO X-1***********FOUND**********IF INT(X/I)=X/I***********FOUND**********exitENDIFENDFOR***********FOUND**********IF I==x? '是素数!'ELSE? '不是素数!'ENDIFSET TALK ON2.题目:编程计算并输出给定整数N的所有因子(不包括1与自身)之和。
例如:n的值为344时,应输出315。
要求用FOR循环实现。
*将结果存入变量OUT中。
SET TALK ONSET LOGERRORS ON? "输入一个整数:n=855"n=855OUT=-1**********Program**********S=0FOR A=2 TO n-1IF MOD(n,A)=0S=S+AENDIFENDFOR?”s=”,sOUT=s********** End **********DO YZJ WITH OUTSET LOGERRORS OFFSET TALK OFF*题目:本程序实现任意查询功能。
2018安徽省计算机专业对口高考程序改错题汇总1.下列程序为求s=1-1/3+1/5-1/7+...-1/99之值,(精确到小数后两位), 程序中有错误。
改正后运行程序,将程序执行结果填入答案框内。
set talk offs=0n=1do while n<=99s=s+1/nn=n+1enddo?sreturnset talk offs=0n=1i=1do while n<=99s=s+i/nn=n+2i=-ienddo?sreturn2.下面的程序是求3+9+27+81+243+...这样的数之和. 若累加数大于500时,则结束累加.程序中有一处错误。
改正后运行程序,将程序执行结果填入答案框内。
SET TALK OFFCLEARX=3Y=0DO WHILE .F.Y=Y+XIF Y>500EXITENDIFSTORE 3*X TO XENDDOSET TALK ONRETURNDo while .f. 改为 Do while .t.3.已知S1=1,S2=1+2,S3=1+2+3,…,SN=1+2+…+N,下面的程序求S20到S80有多少数能被17或35整除。
改正后运行程序,将程序执行结果填入答案框内。
SET TALK OFFI=20N=0DO WHILE I<=80STORE 1 TO S 改为 s=0J=1DO WHILE J<=IS=S+JJ=J+1ENDDOIF MOD(S,17)=0 or mod(s,35)=0N=N+1ENDIFI=I+1ENDDO? NSET TALK ONRETURN4.下列程序为求满足s=1^3+2^3+3^3+...+N^3,当s>=100000的最小的整数N。
程序中有错误。
改正后运行程序,将程序执行结果填入答案框内。
set talk offs=0n=1do while s>=100000 改为s<10000s=s+n^3n=n+1enddo?nreturn5.计算S=1*5*9*13*...*k,直到累乘数k>=25中止。
Visual Foxpro程序改错〖第1题〗(练习题所在文件夹:163)*题目:该程序完成口令检验功能。
输入三次不正确退出。
*注意:不可以增加或删除程序行,也不可以更改程序的结构。
SET TALK OFFCLEARass1="AbCdEf"TT=1DO WHILE TT<4@10,20 SAY "请输入口令:"SET CONSOLE OFFACCEPT TO assSET CONSOLE ONIF ass1=assCLEAR?"欢迎使用本系统!"LOOPELSETT=TT-1CLEAR?"WAIT" "ENDIF或 IF UPPER(ass1)==UPPER(ass)〖第4题〗(练习题所在文件夹:500)*题目:ZHG.DBF是一个职工信息文件,其中包含编号(C 5)、姓名* (C 8)、性别(C 2)、政治面貌(C 4)、出生日期(D 8)等字* 段。
性别用字符串"男"或"女"表示,政治面貌用字符串"* 党员"、"团员"或"群众"表示。
此文件已按政治面貌建立* 了索引,索引文件名是ZHG_ZHZH.IDX。
* "群众"的女职工的* 姓名和出生日期(每行输出一个职工的信息)在屏幕上*注意:不可以增加或删除程序行,也不可以更改程序的结构。
set talk offclear***********FOUND**********USE ZHGSEEK "群众"***********FOUND**********DO WHILE !EOF()IF 性别="女"DISP 姓名,出生日期***********FOUND**********ENDDSKIPENDDOUSESET TALK ON答案:2). DO WHILE=[群众]3). ENDIF〖第5题〗(*题目:在RSH.dbf* 则增加100* 加50*CLEARWITH 工资+ 100REPLACE 工资 WITH 工资+ 50OTHERWISEREPLACE 工资 WITH 工资+ 20ENDCASE***********FOUND**********LIST 姓名,工资USE答案:1). LOCATE FOR 姓名="赵红" 或 LOCA FOR 姓名='赵红' 或 LOCA FOR 姓名="赵红" 或 LOCATE FOR 姓名=[赵红] 或 LOCA FOR 姓名=[赵红] 或 LOCATE FOR 姓名='赵红'2). DISP 姓名,工资或 ?姓名,工资或 DISPLAY 姓名,工资〖第6题〗(练习题所在文件夹:174)*题目:计算S=2+4+6+...+98+100的程序。
VFP程序题(已改)程序改错和填空题选程序设计题选1、谋100以内最小的自然数n,使从1已经开始的已连续n个自然数的倒数之和大于3.5。
settalkoffclears=0forn=1to100s=(s+1)/n废止:s=s+1/nifs>=3.5loop改正:exitendifendfor?n-1settalkonreturn\运行结果:18\2、谋100以内最轻的自然数n,使从1已经开始的已连续n个自然数的倒数之和大于3.6。
settalkoffclears=0forn=1to100s=s+1/nifs<=3.6废止:ifs>3.6loop废止:exitendifendfor?nsettalkonreturn\运转结果:21\3、求50以内最大的自然数n,使得从102开始的连续n个偶数之和小于3000。
settalkoffclears=0forn=1to50a=100+2*ns=s*a改正:s=s+aifs>=3000loop废止:exitendifendfor?n-1settalkonreturn\运转结果:23\4、求50以内最小的自然数n,使得从102开始的连续n个偶数之和大于2000。
settalkoffclears=0forn=1to50a=102+2*n改正:a=100+2*ns=s+aifs>2000loop废止:exitendifendfor?nsettalkonreturn1程序改错和填空题选\运转结果:17\5、求出100以内使得算式1*2+2*3+?+n*(n+1)的值小于5000的最大的自然数n。
settalkoffclears=0forn=1to100a=n*(n+1)s=s+aifs<5000改正:ifs>5000exitendifendforn废止:?n-1settalkonreturn\运行结果:23\6、算出100以内使算式1*2+2*3+?+n*(n+1)的值大于6000的最轻的自然数n。
1、打开考生文件夹下的程序文件temp.prg,并按题目的要求进行改错,修改完成后运行程序文件,如下所示。
***********程序提供的代码***********&&下句只有一处有错误SELECT 课程号FROM 课程表WHERE 课程名="数据结构" TO ARRAY a&&下句有错误OPEN 教师表STORE 0 TO sum&&下句两处有错误SCAN OF 课程号=a OR 工资>=4000&&下句有错误sum+1ENDSCAN?sum********************************错误1:将TO 改为INTO。
错误2:将OPEN 改为USE。
错误3:将SCAN OF 改为SCAN FOR。
错误4:将OR 改为AND。
错误5:将sum+1 改为sum=sum+1。
2、************程序提供的代码********************found********x,s1,s2,s3=0********found********x=thisform.text1do while x>0if int(x/2)=x/2s1=s1+1elses2=s2+1endif********found********if div(x,3)=0s3=s3+1endifx=x-1enddothisform.text2.value=s1thisform.text3.value=s2thisform.text4.value=s3thisform.text5.value=s1+s2+s3********************************错误1:改为STORE 0 TO x,s1,s2,s3。
错误2:改为x=val(thisform.text1.value)。
错误3:改为if mod(x,3)=0。
程序改错1、下列中有8大题,081班做前4题,082班做后四题。
2、程序改错题的要求是:原有语句不变,将正确语句用红色字体写在错误语句的右侧,在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
3、交作业时,文件名类似为“公事管08212*** ”,发到相应的班级文件夹下的题号文件夹下。
1、程序改错( 5 分) 下列程序的功能是计算分数数列2/1,3/2,5/3,,, ,m/n,m+n/m 的前20 项之和。
要求:①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
nSum=0m=2 &&数列中第一项的分子n=1 &&数列中第一项的分母FOR x=1 TO 20 nSum=nSum+m/n y=m m=m+n n=yENDD(O endfor )WAIT WINDOWS前20 项之和为’+STR(nSum,10,2)2、程序改错( 5 分) 下列程序的功能是统计所有的“水仙花数”的个数,“水仙花数”是指一个三位数,其各位数333字立方和等于该数本身,例如:153=13+53+33)。
要求:①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
nCount=0FOR n=100 TO 999 &&n1=VAL(SUBS(STR(n,3),3,1))n2=VAL(SUBS(STR(n,3),2,1))n3=VAL(SUBS(STR(n,3),1,1))IF n=n 1A3+n2T+n3TnCount=nCount+1ENDIFENDFORWAIT WINDOWS “' 水仙花数”的个数为' ,nCount3、程序改错( 5 分)下列程序的功能是统计一个字符串中包括多少个汉字(假设这些汉字均属于GB2312 字符集),其基本算法是从字符串中依次取一个字符,如果其ASCII 码值大于127,则为一个汉字内码的第一个字节。
程序改错
1、下列中有8大题,081班做前4题,082班做后四题。
2、程序改错题的要求是:原有语句不变,将正确语句用红色字体写在错误语句的右
侧,在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
3、交作业时,文件名类似为“公事管08212***”,发到相应的班级文件夹下的题号
文件夹下。
1、程序改错(5分)
下列程序的功能是计算分数数列2/1,3/2,5/3,……,m/n,m+n/m的前20项之和。
要求:
①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
nSum=0
m=2 &&数列中第一项的分子
n=1 &&数列中第一项的分母
FOR x=1 TO 20
nSum=nSum+m/n
y=m
m=m+n
n=y
ENDDO(endfor)
WAIT WINDOWS '前20项之和为'+STR(nSum,10,2)
2、程序改错(5分)
下列程序的功能是统计所有的“水仙花数”的个数,“水仙花数”是指一个三位数,其各位数字立方和等于该数本身,例如:153=13+53+33)。
要求:
①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
nCount=0
FOR n=100 TO 999 &&
n1=VAL(SUBS(STR(n,3),3,1))
n2=VAL(SUBS(STR(n,3),2,1))
n3=VAL(SUBS(STR(n,3),1,1))
IF n=n1^3+n2^3+n3^3
nCount=nCount+1
ENDIF
ENDFOR
WAIT WINDOWS '“水仙花数”的个数为',nCount
3、程序改错(5分)
下列程序的功能是统计一个字符串中包括多少个汉字(假设这些汉字均属于GB2312字符集),其基本算法是从字符串中依次取一个字符,如果其ASCII码值大于127,则为一个汉字内码的第一个字节。
要求:
①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
cString='微软(Microsoft)公司开发的视窗(Windows)操作系统' &&赋初值
nCount=0
DO WHILE LEN(cString)!=0
IF ASC(LEFT(cString,1))>127
nCount=nCount+1
cString=SUBSTR(cString,3)
ELSE
cString=SUBSTR(cString,2)
ENDIF
ENDDO
WAIT WINDOWS '汉字个数为'+STR(nCount)
4、程序改错(5分)
下列程序用于计算数列1,1/2,1/3,1/4,1/5,……,1/n之和,当某一数列项的值小于时停止计算。
要求:
①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
SET DECIMAL TO 2
n=1
nSum=0
DO WHILE .T.
IF 1/n<
exit
ENDIF
nSum=nSum+1/n
n=n+1
ENDDO
WAIT WINDOWS '该数列之和为'+STR(nSum,10,2)
5、程序改错(5分)
下列程序的功能是:将一个字符串中的各个单词的首字母组成其缩写形式(大写字母),其中,
字符串由多个英文单词组成且各单词之间用一个空格分隔,例如,对于字符串“central processing unit”,生成其缩写形式“CPU”。
其基本算法为:字符串左边加一个空格,然后依次检查字符串的每一个字符,如果该字符为字母且左边为空格,则该字母为首字母。
要求:
①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
cString='central processing unit' &&赋初值
cString=SPACE(1)+UPPER(cString)
cResult=SPACE(0)
FOR n=2 TO len(cString)
c=SUBSTR(cString,n,1)
IF BETWEEN(c,'A','Z') AND SUBSTR(cString,n-1,1)=SPACE(1)
cResult=cResult+c
ENDIF
ENDFOR
WAIT WINDOWS '缩写形式为'+cResult
6、程序改错(5分)
下列程序的功能是将二进制数转换成十进制数表示。
要求:
①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
nNumber=1011001 &&赋初值(认定它为二进制数)
cNumber=ALLTRIM(STR(nNumber))
nResult=0
FOR n=LEN(cNumber) TO 1 step -1
c=LEFT(cNumber,1)
IF c='1'
nResult=nResult*2+1
ELSE
nResult=nResult*2
ENDIF
cNumber=SUBSTR(cNumber,2)
ENDFOR
WAIT WINDOWS '十进制数表示为'+STR(nResult)
7、程序改错(5分)
下面的程序是用于将十进制数转换成二进制数表示。
要求:
①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
nNumber=37 &&赋初值(十进制数)
cResult=SPACE(0)
IF nNumber!=0
DO WHILE nNumber>0
n=MOD(nNumber,2) &&余数
nNumber=INT(nNumber/2)
cResult=STR(n,1)+cResult
ENDDO
ELSE
cResult='0'
ENDIF
WAIT WINDOWS '二进制数表示为'+ cResult
8、程序改错(5分)
下列程序的功能用于计算1~100之间的质数的个数(注:质数是指只能被1和自身整除的自然数)。
要求:
①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
nCount=0
FOR m=1 TO 100
bzs=.T.
FOR n=2 TO 9
IF MOD(m,n)=0 AND m#n
bzs=.F. &&不是质数
exit
ENDIF
ENDFOR
IF bzs
nCount=nCount+1
ENDIF
ENDFOR
WAIT WINDOWS '1~100之间的质数的个数为'+STR(nCount)。