循环程序测试题目2解析.docx

上传人:b****4 文档编号:13937283 上传时间:2023-06-19 格式:DOCX 页数:14 大小:18.57KB
下载 相关 举报
循环程序测试题目2解析.docx_第1页
第1页 / 共14页
循环程序测试题目2解析.docx_第2页
第2页 / 共14页
循环程序测试题目2解析.docx_第3页
第3页 / 共14页
循环程序测试题目2解析.docx_第4页
第4页 / 共14页
循环程序测试题目2解析.docx_第5页
第5页 / 共14页
循环程序测试题目2解析.docx_第6页
第6页 / 共14页
循环程序测试题目2解析.docx_第7页
第7页 / 共14页
循环程序测试题目2解析.docx_第8页
第8页 / 共14页
循环程序测试题目2解析.docx_第9页
第9页 / 共14页
循环程序测试题目2解析.docx_第10页
第10页 / 共14页
循环程序测试题目2解析.docx_第11页
第11页 / 共14页
循环程序测试题目2解析.docx_第12页
第12页 / 共14页
循环程序测试题目2解析.docx_第13页
第13页 / 共14页
循环程序测试题目2解析.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

循环程序测试题目2解析.docx

《循环程序测试题目2解析.docx》由会员分享,可在线阅读,更多相关《循环程序测试题目2解析.docx(14页珍藏版)》请在冰点文库上搜索。

循环程序测试题目2解析.docx

循环程序测试题目2解析

1、从键盘上输入两个不超过32767的整数,试编程序用竖式加法形式显示计算结果。

例如:

输入123,85

显示:

 123

  + 85

  -------------

   208

varx,y:

integer;

begin

readln(x,y);

writeln(x:

10);

writeln('+',y:

9);

writeln('-------------');

writeln(x+y:

10);

end.

2、输入一个奇数,输出下列图形;

输入:

3

         *

        ***

         *

输入:

5

         *

        ***

*****

 ***

 *

varx,i,j,space:

integer;

Begin

readln(x);

space:

=40;

fori:

=1toxdo

 ifodd(i)then

   begin

   write('':

space);

     forj:

=1toido

         write('*':

1);

      writeln;

      space:

=space-1;

   end;

fori:

=x-1downto1do

 ifodd(i)then

   begin

   write('':

space+2);

     forj:

=1toido

         write('*':

1);

      writeln;

      space:

=space+1;

   end;

 

 

end.

3、随机产生一些1—100之间的整数,直到产生的数为50为止。

varx,y:

integer;

begin

randomize;

repeat

x:

=random(100)+1;

write(x:

4);

untilx=50;

end.

4、输入一串字符,以“?

”结束,输出其中小写字母、大写字母与数字的个数。

programex;

var

ch:

char;

big,small,data:

integer;

begin

big:

=0;small:

=0;data:

=0;

read(ch);

whilech<>'?

'dobegin

if(ord(ch)>=65)and(ord(ch)<=90)thenbig:

=big+1;

if(ord(ch)>=97)and(ord(ch)<=122)thensmall:

=small+1;

if(ord(ch)>=48)and(ord(ch)<=57)thendata:

=data+1;

read(ch);

end;

writeln;

writeln(big:

4,small:

4,data:

4);

end.

5、任何一个自然数的约数中都有1和它本身,我们把小于它本身的因数叫做这个自然数的真约数。

如6的所有真约数是1、2、3,而且6=1+2+3。

像这样,一个数所有真约数的和正好等于这个数,通常把这个数叫做完美数(完全数)。

古希腊人非常重视完美数。

毕达哥拉斯发现它之后,人们就开始了对完美数的研究。

现在要求输出所有在2到10000范围内的完美数。

var

 i,j,tmp:

integer;

begin

 fori:

=2to10000do

   begin

      tmp:

=0;

      forj:

=1toIdiv2do

        if imodj=0then

          tmp:

=tmp+j;

      iftmp=ithen

         writeln(i);

   end;

 readln;

end.

6、输出1--999中能被3整除,且至少有一位数字是5的所有整数。

vara,b,c,n:

integer;

begin

 forn:

=1to999do

 begin

 a:

=ndiv100;

 b:

=(n-a*100)div10;

 c:

=nmod10;

 if((a=5)or(b=5)or(c=5))and((nmod3)=0)then

 write(n,'')

 end;

end.

programex1;

vars,n:

integer;

begin

n:

=2;

s:

=0;

whiles<1500do

begin

s:

=s+n*n;

n:

=n+2;

end;

writeln(n);

readln

end.

 

7、输入x的值(|x|<1),按下列公式计算s

s=x+(x^2/2)+(x^3/3)+(x^4/4)+....

直到最后一项的绝对值小于0.00001为止。

vars,t,x:

real;n:

integer;

begin

 readln(x);

 t:

=x;s:

=x;n:

=1;

 whileabs(t/n)>0.00001do

 begin

   t:

=t*x;

   n:

=n+1;

   s:

=s+(t/n);

 end;

 writeln(s);

end。

8、求下列式中n的最大值:

2^2+4^2+6^2+...+n^2<1500

varx,n,z:

integer;

begin

 n:

=0;z:

=0;

 repeat

   n:

=n+2;

   x:

=n*n;

   z:

=z+x;

 untilz>1500;

 writeln(n-2);

end.

9、输入20个数,统计其中正、负和零的个数

程序如下:

programex4_7;

var

  a:

real;  {声明变量a,用于表示输入数}

  i,k,n,l:

integer;{i表示输入数是第几个,k,n,l分别表示负数、零、正数的个数}

 begin

 i:

=0;k:

=0;n:

=0;l:

=0;

 whilei<20do

 begin

  readln(a);

  ifa<0thenk:

=k+1;

  ifa>0thenl:

=l+1;

  ifa=0thenn:

=n+1;

  i:

=i+1;

 end;

 writeln(l,',',k,',',n);

 end.

10、输入一自然数A,判断它是否是质数。

(提示:

若从2到A的平方根的范围内,没有一个数能整除A,则A是质数。

         var i,j,k,n:

integer;

           yes:

boolean;

begin

 readln(i);

yes:

=true;

ifi=1then beginyes:

=false;writeln(i,'no':

6);halt;end;

ifi=2then beginyes:

=true;writeln(i,'yes':

6);halt;end;

 k:

=trunc(sqrt(i));

 for j:

=2 to k do

 ifi mod j=0 then

      begin yes:

=false;writeln(i,'no':

6);break;end;

  if yesthen write(i,'yes':

6);

end.

11、设我国目前的人口为11亿,且每年的增长率为1.5%。

问多少年后,我国的人口会翻一番,达到22亿?

var

   x:

real;

   i:

longint;

 begin

 i:

=1;

 x:

=11;

   whilex<22do

   begin

     inc(i);x:

=x*1.015;end;

 writeln(i);

 end.

12、编程模拟剪刀、石头、布游戏:

用S表示剪刀,用R表示石头,用P表示布。

规则是:

剪刀剪布,石头砸剪刀,布包石头。

游戏者把自己的选择输入,计算机随机产生输入并给出结果。

实现重复玩,键入“x”结束。

Programgame;

Const

S1='playeronewin!

';

S2='playertwowin!

';

S3='nowinner.';

Var

P1,p2:

integer;

T:

char;

Begin

whilet<>'x'dobegin

randomize;

p1:

=random(3)+1;

Writeln('playertwo:

');

Readln(t);

Caseupcase(t)of

'S':

p2:

=1;

'R':

p2:

=2;

'P':

p2:

=3;

End;

Casep1-p2of

-2:

writeln(s1);

-1:

writeln(s2);

0:

writeln(s3);

1:

writeln(s1);

2:

writeln(s2);

End;

end;

End.

13、有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子,假设兔子都不死,问:

第20个月后共有多少对兔子。

求费波那契faibonacai数列(0,1,1,2,3,5,8,13,21…………….)的前n项。

Varn,p,l,t,f:

integer;

Begin

 writeln('nonfaibonacai:

');

 read(n);

 p:

=0;l:

=1;t:

=2;

 write('0':

6,'1':

6);

 whilen>tdo

Begin

 f:

=p+l;

 if(tmod4)=0thenwriteln;

 write(f:

6);

 p:

=l;

 l:

=f;

 t:

=t+1;

End;

End.

14、A,B,C,D,E五个人合伙夜间捕鱼,凌晨时都疲惫不堪,各自在河边的树丛中找地方睡着了,日上三竿,E第一个醒来,他将鱼数了数,平分成五分,把多余的一条扔进河中,拿走一份回家去了,D第二个醒来,他并不知道有人已经走了,照样将鱼平分成五分,又扔掉多余的一条,拿走自己的一份,接着C,B,A依次醒来,也都按同样的办法分鱼(平分成五份,扔掉多余的一条,拿走自己的一份),问五人至少合伙捕到多少条鱼。

 也许你能用数学办法推出鱼的条数,但我们要求你编出一个程序,让计算机帮你算出鱼的总数。

programyam;

vara1,a2,a3,a4,a5:

integer;

bl:

boolean;

begin

a1:

=6;bl:

=false;

repeat

a2:

=a1div5;

a3:

=a2div5;

a4:

=a3div5;

a5:

=a4div5;

if(a1mod5=1)and(a2mod5=1)and (a3mod5=1)and(a4mod4=1)and(a5mod5=1)then

bl:

=true;

inc(a1);

untilbl;

write(a1-1);

end.

Var  a,b,i,n:

integer;

functionis_prime(m:

integer):

Boolean;

    var  i:

integer;    Ok:

Boolean;

    begin

         ok:

=true;

         fori:

=2totrunc(sqrt(m))do

           ifmmodi=0then

             begin ok:

=false;break;end;

     is_prime:

=ok;

   end;

begin

   fori:

=10to99do

   begin

     a:

=idiv10;

     b:

=imod10;

     n:

=10*b+a;

  if is_prime(i)andis_prime(n)thenwrite(i:

5);

  end;

end.

15、一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数,例如13。

试找出所有两位数的绝对素数。

 var i,j,k,k2,n:

integer;

   yes,yes2:

boolean;

begin

yes:

=true;

fori:

=10to99do

ifodd(i) then

begin

       yes:

=true;                 

       k:

=trunc(sqrt(i));

       for j:

=2 to k do       

        ifi mod j=0 then yes:

=false;

       ifyesthen begin              

a:

=idiv10;

b:

=imod10;

n:

=10*b+a;

       yes2:

=true;                 

       k2:

=trunc(sqrt(n));

       for j:

=2 to k do       

        ifn mod j=0 then yes2:

=false;

       ifyes2then  write(i,'');

end;

end;

end.

16、某本书的页码从1开始,小明算了算,总共出现了202个数1,试编程求这本书一共有多少页?

varx,y,s,p:

integer;

beginx:

=0;s:

=0;

 whiles<202do

  beginx:

=x+1;y:

=x;

   whiley>0do

   beginp:

=ymod10;

   ifp=1thens:

=s+1;

   y:

=ydiv10

   end;

  end;

  write('p=',x);

 end.

17、一本书的页数为N,页码从1开始编起,请你求出全部页码中,用了多少个0,1,2,...,9。

其中一个页码不含多余的0,如N=1234时第5页不是0005,只是5。

输入:

一个正整数N(N≤109),表示总的页码。

输出:

共十行:

第k行为数字k-1的个数。

varn,i,x,y,s0,s1,p:

integer;

begin

readln(n);

s0:

=0;s1:

=0;

 fori:

=1tondo

  begin

  y:

=i;

   whiley>0do

   beginp:

=ymod10;

   ifp=0theninc(s0);

   ifp=1theninc(s1);

   y:

=ydiv10

   end;

  end;

  writeln('s0=',s0);

  writeln('s1=',s1);

 end.

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2