4.2. 1表操作题78统计出rsda.dbf表中职称为“工程师”的人数,Use rsda , store 0 to s , locate for 职称=“工程师”,do while not eof() , s=s+1 , continue , enddo461 计算机等级考试成绩笔试和上机均大于等于80 优秀Use student , do while .not.eof() , if 笔试>=80 and 上机>=80 , REPL 等级with“优秀”, endif , skip , enddo , list 462 由工资表。
Dbf 按性别汇总工资Use 工资表,index on 性别to sy , total on 性别to 汇总.dbf fildes 工资,use 汇总,list4.2.2求和题:437计算num的各位上的数字之和,将结果存入变量out中,用DO WHILE实现。
s=0 , DO WHILE num<>0, s=s+num%10, num=int(num/10), enddo , out=s , ?out.457求p=1-1/(2*2)+1/(3*3)-1/(4*4)+1/(5*5)结果存在out中,用DO WHILE实现P=0, M=1, DO WHILE M<=5 , P=P+((-1)^(M+1))/(M*M), M=M+1, ENDDO , ?"P=",P ,OUT=P414求p=1+1/(2*2)+1/(3*3)+````````1/(10*10)将结果存入变量out中,用DO WHILE实现P=0, M=1, DO WHILE M<=10 ,P=P+1/(M*M) , M=M+1 , ENDDO , ?”P=”,P , OUT=P73输出10到50之间所有能被7整除的数(用do while 实现)并将这些数存入out中i=10 , S=0 , do while i<=50 , if i%7=0 , ?i , S=S+i , endif , i=i+1 , enddo , OUT=s79用子程序求出1~15之间的能被3整除的整数的平方和。
将结果存入变量OUT中,要求用for循环实现。
N=1 , S=0 , FOR N=1 TO 15 , IF N%3=0 , S=S+N*N , ENDIF , ENDFOR , ?S , SET TALK ON , OUT=S86用循环求出1~15之间能被3整除的整数的阶乘和存入变量out中,要求用for循环语句T=1 , FOR N=1 TO 15 , T=T*N , IF N%3=0 , OUT=OUT+T , ENDIF , ENDFOR , ?OUT87从键盘输入一个整数,输出所有能整除该数,并且本身也能被3整除的数的和。
(eg 输入6,输出3,6)结果存于变量x中,要求用for实现。
FOR N=1 TO A , IF A%N=0.AND.N%3=0 , ?N , x=x+N ,ENDIF , ENDFOR71求出并显示3!+4!+5!的值,将结果存入变量out 中,要求用for编程。
S=0 , FOR I=3 TO 5 , p=1 , FOR J=1 TO I , p=p*J , ENDFOR , S=S+p ,endfor ,?“3!+4!+5!的值是:”,s ,OUT=S93求1~200间的所有偶数的和,结果输入变量OUT 中,要求用for循环语句实现。
S=0 , FOR I=1TO 200 ,IF I/2=INT(I/2) , S=S+I , ENDIF , ENDFOR , ?S , OUT=S97编程打印一数列,前两个数是0、1,第三个数是前两个数之和,以后每个数都是其前两个数之和。
编程求出第20个数,将结果存入out中,要求用for循环语句实现a=0 , B=1 , for i=3 to 20 , c=a+b , a=b , b=c , endfor , ?”c=”,c , out=c455编程求sum=3-33+333-3333+33333S=0 , t=0 , d=3 , for i=1 to 5 , t=t+d , s=s+t*(-1)^(i+1) , d=d*10 , endfor , out=s , ? out454求sum=1/3+1/33+1/333+1/3333+1/33333S=0 , t=0 , d=3 , for i=1 to 5 , t=t+d , s=s+1/t , d=d*10 , endfor , out=s , ? out450fibonacci 数列第28项的值。
第一项为1,第二项也为1,。
Store 1 to f1,f2 , f=f1+f2 , for i=3 to 27 , f1=f2 , f2=f , f=f1+f2 , endfor , out=f , ? out449 s=2/1+3/2+5/3+8/5+13/8+21/13+34/21f1=1 , f2=1 , s=0 , for i=1 to 7 , f3=f1+f2 , f1=f2 , f2=f3 , s=s+f2/f1 , endfor , out=s , ? out444 a1=1 , a2=1/(1+a1) , a3=1/(1+a2) ……..an=1/(1+a(n-1))当n=10 ,求s=a1+a2+…….+a10a=1 , s=1 , for i=1 to 9 , a=1.0/(1+a) , s=s+a , endfor , out=s , ? out445 a1=1 , a2=1/(1+a1) , a3=1/(1+a2) ……..an=1/(1+a(n-1))当n=10 ,求s=a1-a2+a3-a4…….-a10a=1 , s=1 , for i=1 to 9 , a=1.0/(1+a) , s=s+a*(-1)^i , endfor , out=s , ? out435 sum=3+33+333+3333+33333+333333S=0 , t=0 , d=3 , for i=1 to 5 , t=t+d , s=s+t , d=d*10 , endfor , out=s , ? out431 分数序列2/1, 3/2,5/3,8/5,13/8,21/13 (20)之和F1=1 , f2=1 , s=0 , for i=1 to 20 , f3=f1+f2 , f1=f2 , f2=f3 , s=s+f2/f1 , endfor , out=s , ? out422 a1=1 , a2=1/(1+a1) , a3=1/(1+a2) ……..an=1/(1+a(n-1)) 求a10a=1 , for i=1 to 9 , a=1.0/(1+a) , endfor , out=s , ? out427 y=1-1/3+1/5-1/7+1/9S=1 , for i=1 to 4 , s=s+(-1)^i/(2*i+1) , endfor , out=s , ? out428y=1-1/2+1/4-1/6+1/8-1/10S=1 , for i=1 to 5 , s=s+(-1)^i/(2*i) , endfor , out=s , ? out4.2.4最大(小)值77任意数三个数从大到小排序If x<y , k=x , x=y , y=k , endif , If x<z , k=x , x=z , z=k , endif , If y<z , k=y , y=z , z=k , endif , ?x,y,z , a=x , b=y , c=z94输入三个数找出最大和最小Ma=a , mi=a , if b>a , ma=b , endif , if mi>b , mi=b , endif , if ma<c , ma=c , endif , if mi>c , mi=c , endif439求1*1+2*2+。
+n*n<=1000中满足条件的最大的nS=0 , n=1 , do while s<=1000 , n=n+1 , s=s+n*n , enddo , out=n-1 , ? out4.2.5字符处理类74在屏幕上纵向输出"计算机等级考试"。
S=”计算机等级考试”,i=1 , do while i<14 , ?”SUBS(S,I,2)”, IF I=9 , Y=SUBS(S,I,2) , endif , i=i+2 , enddo91输入一个三位数,将个十百位顺序拆开分别存入变量s中,用加号分隔。
如输入345分开后为要求用dowhile 实现。
do while n>10 , a=n%10 , s=”+”+str(int(a),1)+s , n=n-a , n=n/10 , enddo , s=subs(s,2,len(s))426编程统计一个长度为2的字符串在另一个字符串中出现的次数。
例如。
将结果存入out中要求用dowhile实现I=0 , n=0 , do while i<=len(str1)-1 , if str2=substr(str1,I,2) , n=n+1 , endif i=i+1 , enddo , out=n , ? out85从键盘输入一个汉字字符串,送入变量s中,将它逆向存入变量Y中,如:输入"计算机考试",输出为"试考机算计",要求用for循环实现。
For n=1 to len(s)-1 step 2 , y=y+subs(s,len(s)-n,2) , endfor416过滤已存在字符串变量str中的内容,只保留串中的字母字符,并统计新生成串中包含的字母个数。
将生成的结果字符串存入变量out中。
N=len(str) , L=0 , S=”” , for i=1 to n , if substr(str,i,1)<=’Z’ and substr(str,i,1)>=’A’ or substr(str,i,1)<=’z’ and substr(str,i,1)>=’a’ , L=L+1 , S=S+ substr(str,i,1) , endif , endfor , ?”s=”,s , out=s456编程将一个由四个数字组成的字符串转换为每两个数字间有一个字符"*"的形式输出。