01、从键盘任意输入一个3位整数,若输入的数据不是一个3位整数则给出提示信息,编程实现3位整数的逆序输出方法一 SET TALK OFFCLEARINPUT "请输入一个三位数:" TO AIF A>100 AND A<1000 A1=INT(A/100) A2=INT(MOD(A,100)/10) A3=MOD(A,10)?A1+10*A2+100*A3ELSEMESSAGEBOX("输入的不是三位数,请重新输入!")ENDIFSET TALK ONRETURN方法二若要求输出的数必须是三位整数,则程序如下:SET TALK OFFCLEARINPUT "请输入一个三位数:" TO AIF A<100 OR A>=1000 OR MOD(A,100)=0 MESSAGEBOX("输入的不是三位数或重排后不是三位数,请重新输入!")ELSE A1=INT(A/100) A2=INT(MOD(A,100)/10) A3=MOD(A,10) ?A1+10*A2+100*A3ENDIFSET TALK ONRETURN方法三CLEARACCEPT"请输入一个三位整数:" TO XN=LEN(X)S=""FOR I=3 TO 1 STEP -1 S=S+SUBSTR(X,I,1)ENDFOR?"逆序输出为:",SRETURN02、键盘输入N,求N!方法一Set talk offClearP=1Input “请输入N:” to nFor i=1 to np=p*iEndfor? “N!=”,pSet talk onReturn方法二clearinput"n="to ns=1do while n>0 s=s*n n=n-1 enddo?"n!=",sreturn03、计算e的近似值。
其公式为:e=1+1/1!+1/2!+1/3!+…+1/N!,直到1/N!<0.000001为止方法一Set talk off ClearE=1t=1i=1Do while .t. T=1 For k=1 to i T=t*kEndfor(Next k) i=i+1 If 1/t<0.000001 Exit Endif E=e+1/tEnddo? ”e=”,eSet talk onReturn方法二Set talk offcleare=0 &&累加和f=1 &&存放阶乘k=1 &&累积项do while 1/f>=0.000001 e=e+1/f f=f*k k=k+1 enddo?"e=",eSet talk onreturn04、编程:求S=1-1/2+1/3-1/4+1/5-……-1/100方法一set talk off CLEAR s=0 i=0 FOR i=1 TO 100 STEP 1 IF i%2=0 s=s-1/i ELSE s=s+1/i endif ENDFOR ?sSet talk onReturn方法二Set talk offclears=0 &&累加和赋除值f=1 &&符号变量for i=1 to 100 s=s+f*1/i f=-1*f &&改变符号endfor?"s=",sSet talk onreturn05、用循环输出下列图形。
* * * ** * * * * * * * * * * * 方法一:SET TALK OFF CLEAR r=1 cc=10 DO WHILE r<=4 s=1 DO WHILE s<=2*r-1 @r,cc SAY “*” cc=cc+1 s=s+1 ENDDO cc=10-r r=r+1 ENDDO RETURN方法二:clearinput "请输入层数:"to nfor i=1 to n &&控制行数 ??space(40-i) &&设置每一行起始列位 for j=1 to 2*i-1 &&控制每一行星号个数 ??"*" endfor ? &&换行endfor06、输出乘法口诀表(下三角形的形式输出)试用固定次数循环的嵌套格式编写一个打印九九乘法口诀表的程序方法一:*用do while-enddo语句打印九九乘法表cleara=1do while a<=9 b=1 do while b<=ac=a*b?? str(a,1)+”*”+str(b,1)+”=”+str(c,2)+ “ ”b=b+1 enddoa=a+1?enddo方法二:*用for—endfor语句打印九九乘法表SET TALK OFFCLEARFOR Y=1 TO 9FOR X=1 TO y Z= Y * X ??STR(Y,1)+“*”+STR(X,1)+“=”+STR(Z,2)+“ ” ENDFOR ?ENDFOR SET TALK ONRETURN07、输入一个数n,判断其是否是素数。
提示:素数又称质数,只能够被1和它本身整除如果要判断n是否是素数,就用2~n-1之间的数逐个去除,若全部都除不尽,则n为素数,否则不是素数为减少除的次数,提高运行效率,除到 即可Set talk offClearP=1Input "请输入一个数N:" to nFor i=2 to n-1 If n/i=int(n/i)P=0Exit EndifEndforIf p<>0 ?"数"+ltrim(str(n))+"是素数"Else ?"数"+ltrim(str(n))+"不是素数"EndifSet talk onReturn输入10个数,让它们按降序的顺序输出提示:使用一维数组)Set talk offCleardime s(10) for i=1 to 10 input '请输入第'+STR(i)+'个数:' to s(i) endfor for i=1 to 9 for j=i+1 to 10 if s(i)
clearinput “X=” to Xinput “X=” to yif X>YT=XX=YY=TEndif? “X=”,X? “Y=”,Y09、编程求和S=1+2+3+…+100 SET TALK OFF CLEAR STORE 0 TO K,S DO WHILE k<=100 S= K +S K = K +1 ENDDO ?”累加和S=”,S SET TALK ON RETURN10、从键盘输入10个数,编程找出其中的最大值和最小值set talk offclearinput “请从键盘输入一个数:” to astore a to max, minfor I=2 to 10input “请从键盘输入一个数:” to aif maxamin=aendifendfor?”最大值为:”, max?”最小值为:”,minset talk onreturn11、求1000以内的 “水仙花数”所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。
例如,153=13+53+33,故153是水仙花数方法一:Clear? “打印1000以内的水仙花数:”for x=100 to 999 x1=x%10 &&取出个位数 x2=int(x/10)%10 &&取出十位数 x3=int(x/100) &&取出百位数 if x=x1^3+x2^3+x3^3?x endifendfor方法二:set talk offcleafor I=1 to 9 for j=0 to 9for k=0 to 9 if I^3+j^3+k^3=100*I+10*j+k ? 100*I+10*j+k endifendfor endforendforreturn12、求出0~300之间能被3整除的数的和?SET TALK OFFI=1S=0DO WHILE I<=300 IF mod(I,3)=0 S=S+I ENDIF I=i+1ENDDO??SRETURN13、求1到100中偶数的和AA=0FOR II=2 TO 100 STEP 2 AA=AA+IIENDFOR? AA屏幕显示为:2550 14、编写程序打印如下的图形 ******** ******** ******** ******** ******** ******** ********SET TALK OFF CLEAR A=1 DO WHILE A<=7 B=1 DO WHILE B<=8 @A,B+A SAY “*” B=B+1 ENDDO A=A+1 ENDDO SET TALK ON RETURN。