程序复习及答案.doc_第1页
程序复习及答案.doc_第2页
程序复习及答案.doc_第3页
程序复习及答案.doc_第4页
程序复习及答案.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

程序设计复习一、 写出以下程序结果1. 写出下列程序运行结果(程序结果1.PRG)set talk offk=1& K为循环变量a1=10a2=A1+5 & a2的值为15a3=a1-5 & a3的值为5a4=a1+a2& a4 的值为25s=100do while kCTOD(01/01/84)USE CK1APPEND FROM XSK FOR 学号 19980200GO BOTTOM? RECNO( ),学号,姓名USESET TALK ONRETURN运行结果是:1 20020303 王小平说明:出生日期大于84年1月1日的记录只有一条记录(注意:出生日期大,年龄就小),即84年8月6日出生的王小平,因此COPY命令只复制了一条记录。而追加的记录没有学号小于“19980200”的记录,实际上CK1中仍然只有王小平一条记录,所以最后的结果是CK1中王小平的记录号、学号、姓名。N被除数S要进行转换的数Y16进制的数码X转换后的16进制数B商A转换过程中的余数,也是下一次的被除数N。二、 程序填空1下面程序的功能:从键盘输入一个十进制的数N,将N转换成相应的十六进制整数表示。请填空。cleainput 输入一个正整数: TO ns=ny=0123456789ABCDEFx=do WHILE n0b=INT(n/16)a=n-b*16( )& x=substr(y,a+1,1)+x( )& n=bENDDO?S,-,x,hreturn说明:(1) 取数从a+1位置取数是因为Y=0123456789ABCDEF,当余数为0时应取第1位数,余数为1时应取第二位数,以此类推,故取数位置就从a+1处开始。(2) 如将上述程序中对应16的地方换成2或8就可进行2进制和8进制的转换。若换成任意数R,也可以完成十进行到R进制的转换。2下面程序的功能是:输入10个非零整数(至少要有一个正整数),对其中的正整数计算阶乘。请填空完善该程序。CLEARK=10& K为循环变量DO WHILE (1) 0 & 确定循环条件 INPUT 输入一个数: TO T IF T0 (2) & 注意后面的两个变量M、N没有赋初值 DO WHILE M(2)STORE 1 TO N,M(3)STR3.下面程序的功能是从键盘上任意输入20个数,找出其中最大数和最小数。请在程序中空空缺处填上适当内容,使其完整正确。CLEARINPUT 输入一个数: TO MAMI=MAFOR N=1 TO 19& 注意:前面已输入了一个数 INPUT 输入一个数: TO X IF XMA MA=X ELSE (1) (2) (3) ENDIFENDFOR? MA,MIRETURN(1)IF X5),求对应的N值,使其满足SnM=Mexitendifenddo?N的值为:,N三、 程序设计题1. 计算并输出3100所有奇数和、偶数和,奇数的个数和偶数个数,要求只用一个循环语句编写。Sj奇数和Nj奇数个数So偶数和No偶数个数cleastore 0 to sj,so,nj,nofor i=3 to 100 if mod(i,2)0 sj=sj+i nj=nj+1 else so=so+i no=no+1 endifendfor?sj,so,nj,no2有一个数列前两个数是1,1。第二个数是前两个数之和以后每个数都是前两个数之和,求输出此数列的第30个数,请用FOR语句编写。(1) 求输出数列的一个数方法一:(一个循环输出两个数)cleastor 1 to a1,a2for i=3 to 30 step 2 a1=a1+a2 a2=a2+a1endfor?第30个数是:,a2方法二:(一个循环输出一个数)cleastor 1 to a1,a2for i=3 to 30 a=a1+a2 a1=a2 a2=a endfor?第30个数是:,a(2) 输出数列中所有数方法一:*输出数据中所有数cleastor 1 to a1,a2?a1?a2for i=3 to 30 step 2 a1=a1+a2 a2=a2+a1 ?a1 ?a2Endfor方法二:cleastor 1 to a1,a2?a1?a2for i=3 to 10 a=a1+a2 a1=a2 a2=a ?aendfor3.求素数(1) 判断单个素数的程序clearinput 请输入一个数: to nk=int(sqrt(n)for j=2 to k if mod(n,j)=0 &表达式可以是“n%j=0”或“INT(n/j)=n/j” exit ENDIFENDFORIF jk ?STR(n,5)+是素数ELSE ?STR(n,5)+不是素数ENDIF(2) 输出31000之间的所有素数,并输出它们的和值,要求使用FOR循环语句。CLEAS=0FOR I=3 TO 1000 FOR K=2 TO I-1 & 循环终值也I-1可用INT(SQRT(I) IF MOD(I,K)=0 EXIT ENDIF ENDFOR IF KI-1& I-1可用INT(SQRT(I) ?STR(I,5) S=S+I ENDIFENDFOR?S4. 求阶乘(1) 求单个数的阶乘*求任意数的阶乘程序clearinput 请输入一个数,求阶乘: to Ax=1for i=1 to A x=x*iendfor?str(A,2)+!=+str(x,3)(2) 求多个数的阶乘s=1!+2!+3!+20!*求1!+2!+20!阶乘程序clearm=0FOR j=1 to 20x=1for i=1 to j x=x*iendfor m=m+xendfor?1!+2!+3!+2!=+str(m)5.求从开始连续N个不是7的倍数的自然数之和,当和是101的倍数时显示最后的自然数的和。CLEARs=0 & S变量中装连续N个不是7的倍数的自然数之和n=1& n屡加到S中的连续N个不是7的倍数的自然数DO while .t. if mod(n,7)0 s=s+n n=n+1 else if mod(s,101)=0 exit endif s=0& 当能被7整除时,S要重新赋初值0 n=n+1 endif enddo?s 6.试编写程序PROG1.PRG,计算M=2462N。其中,N的值由键盘输入。程序要输出N和M的值。程序编写完后保存到考生文件夹下。CLEARSET TALK OFFINPUT 请输入一个数N: TO NM=1FOR i=1 TO N M=M*2*iENDFOR?N=,N?M=,MSET TALK ON7. 输入任一串汉字,颠倒显示,例:输入“秀水青山”,输出“山青水秀”。CLEARSET TALK OFFACCEPT 请输入一个字串: TO MN=LEN(M)S=FOR i=N TO 1 STEP -2 S=S+SUBSTR(M,I-1,2)ENDFOR?输入时的字串:,M?颠倒后的字串:,SSET TALK ON8求S=12+22+32+N2,输出S最接近不超过800时S和N的值。*PRG-8.9CLEARSET TALK OFFinput 请输入一个数n:to nk=1S=0DO WHILE k=800 EXIT ENDIFk=k+1ENDDOif k=n S=S-k2endifk=k-1 ?S,N的值为:,S,kSET TALK ONRETURN9有一数据库XSGL,数据库中有若干表

温馨提示

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

评论

0/150

提交评论