编程练习与参考答案.docx

上传人:b****6 文档编号:8118269 上传时间:2023-01-28 格式:DOCX 页数:9 大小:16.67KB
下载 相关 举报
编程练习与参考答案.docx_第1页
第1页 / 共9页
编程练习与参考答案.docx_第2页
第2页 / 共9页
编程练习与参考答案.docx_第3页
第3页 / 共9页
编程练习与参考答案.docx_第4页
第4页 / 共9页
编程练习与参考答案.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

编程练习与参考答案.docx

《编程练习与参考答案.docx》由会员分享,可在线阅读,更多相关《编程练习与参考答案.docx(9页珍藏版)》请在冰豆网上搜索。

编程练习与参考答案.docx

编程练习与参考答案

 

 

Pascal编程

上机练习及参考答案

 

莱西市前车小学

2014.12.08

 

1、求s=1!

+2!

+3!

+…+10!

programex1;

varj,n:

integer;

   t,s:

real;

begin

  s:

=0;

  forn:

=1to10do

  begin

    t:

=1;

    forj:

=1tondo

      t:

=t*j;

    s:

=s+t;

  end;

  writeln('s=',s);

  readln;

end.

2、求s=1+1/2!

+1/3!

+…+1/10!

programex2;

varj,n:

integer;

   t,s:

real;

begin

   s:

=0;

   forn:

=1to10do

    begin

     t:

=1;

     forj:

=1tondo

       t:

=t*j;

     s:

=s+1/t;

    end;

   writeln('s=',s:

0:

4);

   readln;

end.

3、求s=11+22+33+..+NN

programex3;

vari,n,t:

integer;

   s:

longint;

begin

 write(‘n=’);readln(n);

 fori:

=1tondo

 begin

  t:

=1;

  forj:

=1toido

t:

=t*i;

s:

=s+t;

 end;

 writeln(‘s=’,s);

 readln;

end.

4.把一张一元钞票换成一分,二分和五分的硬币,每种至少一枚。

问有哪几种换法?

program Ex4;

vara,b,c,q:

integer;

begin

 q:

=0;

fora:

=1to100do

forb:

=1to50do

forc:

=1to20do

begin

if(a+b*2+c*5=100)then

begin

write(a:

2,b:

2,c:

2);

q:

=q+1;

end;

end;

writeln(‘q=’,q);

readln;

end.

5.输入一个整数,若是素数,输出“YES”,否则输出“NO”

programEx5;

varx,i,s,n:

integer;

begin

 s:

=0;

 readln(n);

 fori:

=2ton-1do

    ifnmodi=0 thens:

=s+1;

 ifs>0 thenwriteln('no')elsewriteln('yes');

 readln;

end.

6.任给一个自然数n,求出这个自然数不同因数的个数。

 如:

n=6时,因为1,2,3,6这四个数均是6的因数,故输出为total=4。

programEx6;

var

 n,m,i:

integer;

begin

 write('n=');

 readln(n);

 fori:

=1tondo

    ifnmodi=0thenbeginm:

=m+1;write(i:

5);end;

 writeln('m=',m);

 readln;

end.

7.输入二个正整数,求出它们的最大公约数和最小公倍数。

方法一:

programex7-1;

vara,b,r,c,s:

integer;

begin

 write('a,b:

');readln(a,b);

  s:

=a*b;r:

=amodb;

  repeat

    a:

=b;b:

=r;r:

=amodb;

  untilr=0;

  c:

=sdivb;

  write('b=',b);

  writeln('c=',c);

  readln;

end.

方法二:

programex7-2;

vari,a,b,r:

integer;

begin

 write('a=');readln(a);

 write('b=');readln(b);

 fori:

=1toado

    if(amodi=0)then

       if(bmodi=0)thenr:

=i;

 writeln('yueshu=',r);

 writeln('beishu=',a*b/r);

 readln;

end.

8.输入一列图形(字母金字塔)

a

a  b

     a  b  c

                .          .a b c…… y z

programex8;

varh,x:

integer;

begin

  forh:

=1to26do

   begin

     write('':

30-h);

     forx:

=1tohdo

        write(chr(96+x):

2);

      writeln;

   end;

   readln;

end.

9.1-100之间的所有素数(素数是大于1,且除1和它本身外,不能被任何其它整数所整除的整数)。

programex9;

vari,s,a:

integer;

begin

 fori:

=2to100do

begin

s:

=0;

     fora:

=2toi-1do

       if(imoda=0)thens:

=s+1;

ifs=0then

writeln(i:

5);

end;

   readln;

end.

10.哥德巴赫猜想(任何充分大的偶数都可由两个素数之和表示)。

将4-100中的所有偶数分别用两个素数之和表示。

输出为:

4=2+2

6=3+3

8=3+5

….

100=3+97

program ex10;

vari,p,q,k,a,x:

integer;

   fp,fq:

boolean;

begin

  fori:

=2to50do

   begin

     x:

=2*i;

     p:

=1;

    repeat

     p:

=p+1;

     q:

=x-p;fp:

=true;fq:

=true;

     fork:

=2top-1do

      if(pmodk=0)thenfp:

=false;

     fora:

=2toq-1do

      if(qmoda=0)thenfq:

=false;

    until(fpandfq);

    write(x,'=',p,'+',q);

   end;

  readln;

end.

11.某人想将手中的一张面值100元的人民币换成10元、5元、2元和1元面值的票子。

要求换正好40张,且每种票子至少一张。

问:

有几种换法?

应适当考虑减少重复次数。

programex11;

vara,b,c,d,q:

integer;

begin

 fora:

=1to10do

  forb:

=1to20do

   forc:

=1to50do

    ford:

=1to100do

     if(10*a+5*b+2*c+d=100)and(a+b+c=40)then

begin

q:

=q+1;

write(a:

3,b:

3,c:

3,d:

3);

end;

   writeln('q:

=',q);

  readln;

end.

12.百鸡问题:

一只公鸡值5元,一只母鸡值3元,而1元可买3只小鸡。

现有100元钱,想买100只鸡。

问可买公鸡、母鸡、小鸡各几只?

(4.39)

12.百鸡问题:

一只公鸡值5元,一只母鸡值3元,而1元可买3只小鸡。

现有100元钱,想买100只鸡。

问可买公鸡、母鸡、小鸡各几只?

13.programex12;

vara,b,c,q:

integer;

begin

 fora:

=1to20do

  forb:

=1to33do

   forc:

=1to300do

     if(5*a+3*b+cdiv3=100)and(a+b+c=100)and(cmod3=0)then

        begin

q:

=q+1;

write(a:

3,b:

3,c:

3);

end;

writeln('q:

=',q);

  readln;

end.

13、编写一程序,验证角谷猜想。

所谓的角谷猜想是:

“对于任意大于1的自然数n,若n为奇数,则将n变为3*n+1,否则将n变为n的一半。

经过若干次这样的变换,一定会使n变为1。

programex13;

varn:

integer;

begin

   write('n=');readln(n);

   repeat

     ifnmod2=1thenn:

=3*n+1;

     ifnmod2=0thenn:

=ndiv2;

   untiln=1;

   write(n);

  readln;

end.

14.有一堆100多个的零件,若三个三个数,剩二个;若五个五个数,剩三个;若七个七个数,剩五个。

请你编一个程序计算出这堆零件至少是多少个?

programex14;

var x:

integer;

  ok:

boolean;

begin

  x:

=100;

   repeat

    ok:

=true;inc(x);

    ifxmod3<>2thenok:

=false;

    ifxmod5<>3thenok:

=false;

    ifxmod7<>5thenok:

=false;

   untilok;

   write(x);

   readln;

end.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 中国风

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1