题2 单表程序设计1.doc_第1页
题2 单表程序设计1.doc_第2页
题2 单表程序设计1.doc_第3页
题2 单表程序设计1.doc_第4页
题2 单表程序设计1.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题2 单表程序设计 *-*【程序设计】 *-*题目:设表 RSDA.DBF 结构为:学号(C,5) ,姓名(C,6) , * 职称(C,6)统计出 RSDA.DBF 表中职称为工程师的 * 人数。 (利用 DO WHILEENDDO 循环语句实现) 。 * 将人数存入变量 Y 中 * 请按照题目要求,在下面编写程序代码。 *-SET TALK OFF SET LOGERRORS ON Y=-1 *Program* use rsda store 0 to s locate for 职称=工程师 do while not eof() s=s+1 continue enddo ?共有工程师+str(s,3)+名 use Y=S * End * DO YZJ9 WITH Y SET TALK OFF RETURN *-*【程序设计】 *-*题目:有学生数据表 student.dbf,其中编号字段的值从 1 开始 * 连续排列。欲按编号的 1,4,7,10,.规律抽取学生 * 参加比赛,并将满足条件的记录保存到 st1.dbf 中,请编 * 程完成。 * (用 do while .endd 和 scatter、gather 语句完成) * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON clear sele 1 use student sele 2 use st1 zap *Program* sele 1 do while .not. eof() if mod(编号,3)=1 scatter to arry sele 2 appe blan gather from arry Endif sele 1 skip endd * End * sele 2 list close data SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程以物理连接方法求学生刘一各门功课的考试成绩, * 已知数据表 STUDENT.DBF 和 STUDY.DBF。新生成的数据 * 表名为 SG.DBF。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON *Program* SELE 1 USE STUDENT SELE 2 USE STUDY SELE 1 JOIN WITH STUDY TO SG FOR 学号=STUDY.学号 .AND. 姓名=刘一 FIELDS 学号,姓 名,STUDY.课程号,STUDY.成绩 SELE 3 USE SG LIST * End * CLOSE DATA SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:计算机等级考试数据表为 STUDENT.DBF,凡笔试和上机成绩 * 均达到 80 分以上者,应在等级字段中填入优秀字样。 * 请用 DO WHILE .ENDDO 语句编写。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON CLEAR *Program* USE STUDENT DO WHILE .NOT. EOF() IF 笔试=80 .AND. 上机=80 REPL 等级 WITH 优秀 ENDIF SKIP ENDD LIST * End * CLOSE DATA SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:根据已知工资表.dbf 的内容,按性别汇总工资成绩,存于汇 * 总.dbf 表中 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON clear *Program* use 工资表 inde on 性别 to sy total on 性别 to 汇总.dbf fields 工资 use 汇总 list * End * close data SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:三个数据表分别为学生库(STUDENT.DBF)、选课程库(XK.DBF) * 和课程库(KC.DBF),将所有选必修课的记录内容生成新库 * STUDENT1.DBF,新库中包括学号、姓名、课程号、课程名称、 * 课程类型字段。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON CLEAR *Program* SELE 1 USE XK SELE 2 USE KC JOIN WITH XK TO XK1 FIELDS A. 学号,课程号,课程名称,课程类型 FOR 课程号=A.课程 号 .AND. 课程类型=选修 SELE 3 B. USE XK1 SELE 4 USE STUDENT JOIN WITH XK1 TO STUDENT1 FIELDS 学号,姓名, C.课程号,C.课程名称,C.课程类型 FOR 学号=C.学号 SELE 5 USE * End * CLOSE DATA SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程判断一个整数 w 的各位数字平方之和能否 * 被 5 整除, 可以被 5 整除则返回 1,否则返回 0。 * 将结果存入变量 OUT 中,要求用 Do While 语句实现。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON ? 输入一个整数:w=39 OUT=-1 w=39 *Program* s=0 do while w0 s=s+(w%10)*(w%10) w=int(w/10) Enddo if s%5=0 out=1 else out=0 endif ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程求一个大于 10 的 n 位整数的后 n-1 位的数。 * 将结果存入变量 OUT 中,使用 Do While 语句实现。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON OUT=-1 ? 输入一个大于 10 的整数:w=8765 w=8765 *Program* n=0 i=1 do while(w10) n=n+i*(w%10) w=int(w/10) i=i*10 Enddo ?n out=n * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程求对某一正数的值保留 2 位小数,并对第三位 * 进行四舍五入。 * 将结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON h=234.5367 OUT=-1 *Program* i=0 i=int(h*1000)%10) if i=5 out=int(h*100+1)/100 else out=int(h*100)/100 endif ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程找出一个大于给定整数且紧随这个整数的素数。 * 将结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON ? 给定的整数为 68 OUT=-1 *Program* i=69 do while i=68 for k=2 to i-1 if i%k=0 exit endif endfor if i=k exit endif i=i+1 enddo ?i out=I * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程当 n=10 时,计算如下表达式 a10 的值。 * a1=1,a2=1/(1+a1),a3=1/(1+a2), * .an=1/(1+a(n-1)。 * 将结果存入变量 OUT 中,要求用 For 循环语句实现。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON OUT=-1 *Program* a=1 for i=1 to 9 a=1.0/(1+a) endfor out=a ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程求自然数 345 各位数字的积。 * (要求使用循环语句求解,使用 Do While 语句实现。) * 将结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON n=345 OUT=-1 *Program* s=1 do while n0 d=n%10 s=s*d n=int(n/10) enddo out=s? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程当 n=10 时,计算如下表达式 a10 的值。 * a1=1,a2=1/(1+a1),a3=1/(1+a2), * .an=1/(1+a(n-1)。 * 将结果存入变量 OUT 中,要求用 For 循环语句实现。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON OUT=-1 *Program* a=1 for i=1 to 9 a=1.0/(1+a) endfor out=a ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *- *题目:编程求自然数 345 各位数字的积。 * (要求使用循环语句求解,使用 Do While 语句实现。) * 将结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON n=345 OUT=-1 *Program* s=1 do while n0 d=n%10 s=s*d n=int(n/10) enddo out=s ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程将两个两位数的正整数 a、b 合并形成一个整数放在 c 中。 * 合并的方式是:将 a 数的十位和个位数依次放在 c 数的百位和 * 个位上,b 数的十位和个位数依次放在 c 数的十位和千位上。 * 将 c 结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON a=45 b=12 OUT=-1 *Program* c=int(a/10)*100+a%10+int(b/10)*10+b%10*1000 out=c ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程判断整数 x 是否是同构数。若是同构数,结果返回 1; * 否则返回 0。(x 的值要求不大于 100) * 所谓“同构数”是指这样的数,这个数出现在它的平方数的右边。 * 例如:输入整数 5,5 的平方数是 25,5 是 25 中右侧的数,所以 5 是 * 同构数。 。 * 将结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON ? 输入整数 x=25 进行判断 x=25 OUT=-1 *Program* k=x*x if k%10=x or k%100=x out=1 else out=0 endif ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程计算如下表达式的值: * y=1-1/31/5-1/71/9。 * 要求使用 for.endfor 语句来完成。 * 将结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON OUT=-1 *Program* s=1 for i=1 to 4 s=s+(-1)i/(2*i+1) endfor out=s ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程计算如下表达式的值: * y=1-1/2+1/4-1/6+1/8-1/10。 * 要求使用 for.endfor 语句来完成。 * 将结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON OUT=-1 *Program* s=1 for i=1 to 5 s=s+(-1)i/(2*i) endfor out=s ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OF *-*【程序设计】 *-*题目:编程求一分数序列 2/1,3/2,5/3,8/5,13/8, * 21/13的前 20 项之和,将结果存入变量 OUT 中, * 要求用 For 循环语句实现。 *-SET TALK ON SET LOGERRORS ON OUT=-1 *Program* f1=1 f2=1 s=0 for i=1 to 20 f3=f1+f2 f1=f2 f2=f3 s=s+f2/f1 endf out=s ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程求 fibonacci 数列前 28 项的和。 * 已知数列的第一项值为 1,第二项值也为 1,从第三项开始, * 每一项均为其前面相邻两项的和。 * 将结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON OUT=-1 *Program* store 1 to f1,f2 k=f1+f2 for i=3 to 28 f=f1+f2 k=k+f f1=f2 f2=f endf out=k ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *- *题目:已知变量 x 为正整数,编程求变量 x 的位数。 * (请用 do case.case.endcase 语句完成。) * 将结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON x=4764 OUT=-1 *Program* do case case x9999 place=5 case x999 place=4 case x99 place=3 case x9 place=2 othe place=1 endcase out=place ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程求 sum=3+33+333+3333+33333 的值。 * 要求使用 for.endfor 语句来完成。 * 将结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON OUT=-1 *Program* s=0 t=0 d=3 for i=1 to 5 t=t+d s=s+t d=d*10 endf out=s ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程计算正整数 num 的各位上的数字之和。 * 将结果存入变量 OUT 中,要求用 Do While 语句实现。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON ?输入正整数 num=434 num=434 OUT=-1 *Program* s=0 do while num0 s=s+num%10 num=int(num/10) endd out=s ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程求一个整数,它加上 100 后是一个完全平方数, * 再加上 168 又是一个完全平方数,请问该数是多少?。 * 将结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *- SET TALK ON SET LOGERRORS ON OUT=-1 *Program* i=1 do while i100000 x=int(sqrt(i+100) y=int(sqrt(i+268) if x*x=i+100 and y*y=i+268 exit Endif i=i+1 enddo out=i ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程求出 1*1+2*2+.+n*n=1000 中满足条件 * 的最大的 n,将结果存入变量 OUT 中。 * 要求用 Do While 语句实现。 *-SET TALK ON SET LOGERRORS ON OUT=-1 *Program* s=0 n=1 do while s100) n=n+i*(w%10) w=int(w/10) i=i*10 enddo ?n out=n * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程找出一个小于给定整数且紧随这个整数的素数。 * 将结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON ? 给定的整数为 71 OUT=-1 *Program* i=69 do while i=5 out=int(h*1000+1)/1000 else out=int(h*1000)/1000 Endif ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程已知下列各项:a1=1,a2=1/(1+a1),a3=1/(1+a2), * .an=1/(1+a(n-1)。当 n=10 时,计算如下表达式的值 * s=a1+a2+.+a10。 * 将结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON OUT=-1 *Program* a=1 s=1 for i=1 to 9 a=1.0/(1+a) s=s+a endfor out=a ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程已知下列各项:a1=1,a2=1/(1+a1),a3=1/(1+a2), * .an=1/(1+a(n-1)。当 n=10 时,计算如下表达式的值 * s=a1-a2+a3-a4.-a10。 * 将结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON OUT=-1 *Program* a=1 s=1 for i=1 to 9 a=1.0/(1+a) s=s+a*(-1)i endfor out=a ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程求序列 s=2/1-3/2+5/3-8/5+13/8-21/13+34/21 的值。 * 要求使用 for.endfor 语句来完成。 * 将结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON OUT=-1 *Program* f1=1 f2=1 s=0 for i=1 to 7 f3=f1+f2 f1=f2 f2=f3 s=s+(-1)(i+1)*f2/f1 endf out=s ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程求 fibonacci 数列第 28 项的值。 * 已知数列的第一项值为 1,第二项值也为 1,从第三项开始, * 每一项均为其前面相邻两项的和。 * 将结果存入变量 OUT 中。 * 请按照题目要求,在下面编写程序代码。 *-SET TALK ON SET LOGERRORS ON OUT=-1 *Program* store 1 to f1,f2 f=f1+f2 for i=3 to 27 f1=f2 f2=f f=f1+f2 endf out=f ? Out * End * DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF *-*【程序设计】 *-*题目:编程求 sum=1/3+1/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论