pascal100练习题.docx

上传人:b****5 文档编号:6085348 上传时间:2023-01-03 格式:DOCX 页数:53 大小:31.29KB
下载 相关 举报
pascal100练习题.docx_第1页
第1页 / 共53页
pascal100练习题.docx_第2页
第2页 / 共53页
pascal100练习题.docx_第3页
第3页 / 共53页
pascal100练习题.docx_第4页
第4页 / 共53页
pascal100练习题.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

pascal100练习题.docx

《pascal100练习题.docx》由会员分享,可在线阅读,更多相关《pascal100练习题.docx(53页珍藏版)》请在冰豆网上搜索。

pascal100练习题.docx

pascal100练习题

Pascal练习题100道

1题目:

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?

都是多少?

vari,j,a,b,c:

integer;

begin

fori:

=1to4do

forj:

=1to4do

fora:

=1to4do

forb:

=1to4do

begin

if(i<>j)and(i<>a)and(i<>b)and(j<>a)and(j<>b)and(a<>b)thenwriteln(i,j,a,b);

end;

end.

2题目:

企业发放的奖金根据利润提成。

利润(i)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数?

var

a:

longint;

s:

real;

begin

readln(a);

ifa<100000thens:

=a*0.1;

ifa>100000then

begin

if(a>100000)and(a<=200000)thens:

=s+(a-100000)*0.075+100000*0.1;

if(a>200000)and(a<=400000)thens:

=s+(a-200000)*0.05+100000*0.1+100000*0.075;

if(a>400000)and(a<=600000)thens:

=s+(a-400000)*0.03+100000*0.1+200000*0.05;

if(a>600000)and(a<=1000000)thens:

=s+(a-600000)*0.015+100000*0.1+200000*0.05+200000*0.03;

if(a>1000000)thens:

=s+(a-1000000)*0.01+100000*0.1+200000*0.05+200000*0.03+400000*0.015;

end;

writeln(s:

5:

2);

end.

3题目:

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

vari:

longint;

a,b:

real;

begin

fori:

=1to1000000do

begin

a:

=sqrt(i+100);

b:

=sqrt(i+268);

if((a*a)=(i+100))and((b*b)=(i+268))thenwriteln(i);

end;

end.

4题目:

输入某年某月某日,判断这一天是这一年的第几天?

vara1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a,b,c,d:

integer;

begin

read(a,b,c);

a1:

=0;a2:

=31;a3:

=59;a4:

=90;a5:

=120;a6:

=151;a7:

=181;a8:

=212;a9:

=243;a10:

=273;a11:

=304;a12:

=334;

if(b=1)thend:

=a1else

if(b=2)thend:

=a2else

if(b=3)thend:

=a3else

if(b=4)thend:

=a4else

if(b=5)thend:

=a5else

if(b=6)thend:

=a6else

if(b=7)thend:

=a7else

if(b=8)thend:

=a8else

if(b=9)thend:

=a9else

if(b=10)thend:

=a10else

if(b=11)thend:

=a11else

if(b=12)thend:

=a12;

d:

=d+c;

if(amod1000=0)and(cmod400=0)and(b>3)thend:

=d+1;

if(amod1000<>0)and(cmod4=0)and(b>3)thend:

=d+1;

writeln(d);

end.

5题目:

输入三个整数x,y,z,请把这三个数由小到大输出。

vara,b,c,d:

integer;

begin

readln(a,b,c);

ifa>bthenbegind:

=a;a:

=b;b:

=d;end;

ifa>cthenbegind:

=a;a:

=c;c:

=d;end;

ifb>cthenbegind:

=b;b:

=c;c:

=d;end;

writeln(a,b,c);

end.

6题目:

用*号输出字母c的图案。

begin

writeln('***');

writeln('*');

writeln('*');

writeln('*');

writeln('*');

writeln('***');

end.

7题目:

输出9*9口诀。

vari,j:

integer;

begin

fori:

=1to9do

begin

forj:

=1to9do

begin

write(j,'*',i,'=',j*i,'');

end;

writeln;

end;

end.

8题目:

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

vara1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12:

integer;

begin

a1:

=1;writeln(a1);

a2:

=1;writeln(a2);

a3:

=a1+a2;writeln(a3);

a4:

=a2+a3;writeln(a4);

a5:

=a3+a4;writeln(a5);

a6:

=a4+a5;writeln(a6);

a7:

=a5+a6;writeln(a7);

a8:

=a6+a7;writeln(a8);

a9:

=a7+a8;writeln(a9);

a10:

=a8+a9;writeln(a10);

a11:

=a9+a10;writeln(a11);

a12:

=a10+a11;writeln(a12);

end.

9题目:

输出所有101-200之间的素数。

varn,i,a:

integer;

p:

boolean;

begin

n:

=200;

fora:

=101tondo

begin

p:

=true;

fori:

=2totrunc(sqrt(a))+1do

ifamodi=0then

begin

p:

=false;

breakend;

ifp=truethenwrite(a:

4);

end;

end.

10题目:

打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

例如:

153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

vara,b,c,i:

integer;

begin

fori:

=100to999do

begin

a:

=idiv100;

b:

=(idiv10)mod10;

c:

=imod10;

ifa*a*a+b*b*b+c*c*c=ithenwriteln(i);

end;

end.

11题目:

将一个正整数分解质因数。

例如:

输入90,打印出90=1*2*3*3*5。

varn,i:

integer;

begin

write('pleaseinputthenumber:

');

read(n);

write(n,'=',1);

i:

=1;

repeat

inc(i);

whilenmodi=0do

begin

n:

=ndivi;

write('*',i);

end;

untiln=1;

end.

12题目:

利用条件运算符的嵌套来完成此题:

学习成绩>=90分的同学用a表示,60-89分之间的用b表示,60分以下的用c表示。

vara:

integer;

begin

readln(a);

ifa>=90thenwriteln('a')else

if(a>=60)and(a<=89)thenwriteln('b')else

writeln('c');

end.

13题目:

输入两个正整数m和n,求其最大公约数和最小公倍数。

vara,b,ans,c:

longint;

functiongcd(a,b:

longint):

longint;

begin

ifb=0thengcd:

=a

elsegcd:

=gcd(b,amodb);

end;

functionlcm(a,b:

longint):

longint;

begin

lcm:

=a*bdivgcd(a,b);

end;

begin

read(a,b);

c:

=gcd(a,b);

writeln(c);

ans:

=lcm(a,b);

writeln(ans);

end.

14题目:

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

vara:

string;

b:

array[1..200]ofinteger;

t,i,z,h,f:

integer;

begin

read(a);

t:

=length(a);

fori:

=1totdo

begin

b:

=ord(a);

if(b>=65)and(b<=90)thenz:

=z+1else

if(b>=97)and(b<=122)thenz:

=z+1else

if(b>=48)and(b<=57)thenh:

=h+1elsef:

=f+1;

end;

writeln(z,'',h,'',f);

end.

15题目:

求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

vara,s,b,i,z:

longint;

begin

readln(a,b);

s:

=a;

fori:

=1tob-1do

begin

a:

=a*11;

z:

=a;

end;

z:

=z+s;

writeln(z);

end.

16题目:

一个数如果恰好等于它的因子之和,这个数就称为“完数”。

例如6=1+2+3.编程找出1000以内的所有完数。

var

m,i,n,t:

integer;

begin

forn:

=1to100do

begin

t:

=0;

fori:

=2tondo

if((nmodi)=0)

thent:

=t+(ndivi);

if(t=n)thenwrite(n,'');

end;

end.

17题目:

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?

第10次反弹多高?

vara,i,b:

integer;

begin

a:

=100;

fori:

=1to10do

begin

b:

=adiv2;

a:

=adiv2;

writeln(b);

end;

end.

18题目:

猴子吃桃问题:

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,见只剩下一个桃子了。

求第一天共摘了多少。

vari,x1,x2:

integer;

begin

fori:

=1to10do

begin

x1:

=(x2+1)*2;

x2:

=x1;

end;

writeln(x2);

end.

19题目:

两个乒乓球队进行比赛,各出三人。

甲队为a,b,c三人,乙队为x,y,z三人。

已抽签决定比赛名单。

有人向队员打听比赛的名单。

a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

var

i,h,e:

char;

begin

fori:

='x'to'z'do

if(i<>'x')and(i<>'z')thenbeginwriteln('c',i);h:

=i;end;

fori:

='x'to'z'do

if(i<>'x')and(i<>h)thenbeginwriteln('a',i);e:

=i;end;

fori:

='x'to'z'do

if(i<>h)and(i<>e)thenwriteln('b',i);

end.

20题目:

打印出如下图案(菱形)

*

***

******

********

******

***

*

begin

writeln('*');

writeln('***');

writeln('******');

writeln('********');

writeln('******');

writeln('***');

writeln('*');

end.

21题目:

有一分数序列:

2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

vara,b,c,t:

real;

i:

integer;

begin

a:

=2;

b:

=1;

fori:

=1to20do

begin

c:

=c+a/b;

t:

=a;a:

=a+b;b:

=t;

end;

writeln(c);

end.

22题目:

求1+2!

+3!

+...+20!

的和

vari,j,a:

longint;

t,c:

int64;

begin

fori:

=1to20do

begin

t:

=1;

forj:

=1toido

begin

t:

=t*j;

end;

c:

=c+t;

end;

writeln(c);

end.

23题目:

利用适当方法求5!

vara,j:

longint;

t,c:

int64;

begin

t:

=1;

forj:

=1to5do

begin

t:

=t*j;

end;

c:

=c+t;

writeln(c);

end.

24题目:

将输入5个字符,以相反顺序打印出来。

vara:

array[1..5]ofchar;

i:

integer;

begin

fori:

=1to5do

readln(a);

fori:

=5downto1do

writeln(a);

end.

25题目:

有5个人坐在一起,问第五个人多少岁?

他说比第4个人大2岁。

问第4个人岁数,他说比第3个人大2岁。

问第三个人,又说比第2人大两岁。

问第2个人,说比第一个人大两岁。

最后问第一个人,他说是10岁。

请问第五个人多大?

vara,i:

longint;

begin

a:

=10;

fori:

=1to4do

a:

=a+2;

writeln(a);

end.

26题目:

给一个不多于5位的正整数,要求:

一、求它是几位数,二、逆序打印出各位数字。

vara,c,d1,d2,d3,d4,d5:

longint;

begin

readln(a);

ifa<10thenbeginc:

=1;writeln('1');endelse

if(a>=10)and(a<100)thenbeginc:

=2;writeln('2');endelse

if(a>=100)and(a<1000)thenbeginc:

=3;writeln('3');endelse

if(a>=1000)and(a<10000)thenbeginc:

=4;writeln('4');endelse

ifa>=10000thenbeginc:

=5;writeln('5');end;

ifc=5then

begin

d1:

=amod10;a:

=adiv10;

d2:

=amod10;a:

=adiv10;

d3:

=amod10;a:

=adiv10;

d4:

=amod10;a:

=adiv10;

d5:

=a;

writeln(d1,d2,d3,d4,d5);

end;

ifc=4then

begin

d1:

=amod10;a:

=adiv10;

d2:

=amod10;a:

=adiv10;

d3:

=amod10;a:

=adiv10;

d4:

=a;

writeln(d1,d2,d3,d4);

end;

ifc=3then

begin

d1:

=amod10;a:

=adiv10;

d2:

=amod10;a:

=adiv10;

d3:

=a;

writeln(d1,d2,d3);

end;

ifc=2then

begin

d1:

=amod10;a:

=adiv10;

d2:

=a;

writeln(d1,d2);

end;

ifc=1thenwriteln(a);

end.

27题目:

一个5位数,判断它是不是回文数。

即12321是回文数,个位与万位相同,十位与千位相同。

vara,b1,b2,b3,b4,b5:

longint;

begin

readln(a);

b1:

=amod10;a:

=adiv10;

b2:

=amod10;a:

=adiv10;

b3:

=amod10;a:

=adiv10;

b4:

=amod10;a:

=adiv10;

b5:

=a;

if(b1=b5)and(b2=b4)thenwriteln('yes')elsewriteln('no');

end.

28题目:

请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母……

vara,b,c:

char;

begin

readln(a);

if(a='m')or(a='w')or(a='f')then

begin

ifa='m'thenwriteln('1')else

ifa='w'thenwriteln('3')else

ifa='f'thenwriteln('5');

end

else

begin

readln(b);

if(b='h')or(b='a')then

begin

ifb='h'thenwriteln('4')else

ifb='a'thenwriteln('6');

end

else

begin

readln(c);

if(c='e')or(c='n')then

begin

ifc='e'thenwriteln('2')else

ifc='n'thenwriteln('7');

end;

end;

end;

end.

29题目:

求100之内的素数

varn,i,a:

integer;

p:

boolean;

begin

n:

=100;

fora:

=3tondo

begin

p:

=true;

fori:

=2totrunc(sqrt(a))+1do

ifamodi=0then

begin

p:

=false;

breakend;

ifp=truethenwrite(a:

4);

end;

end.

30题目:

对10个数进行排序插入排序

constn=10;

vara:

array[1..n]ofinteger;

i,j,k,t:

integer;

begin

write('Enterdate:

');

fori:

=1tondoread(a);

writeln;

fori:

=2tondo

begin

k:

=a;j:

=i-1;

while(k0)do

begina[j+1]:

=a[j];j:

=j-1end;

a[j+1]:

=k;

end;

write('outputdata:

');

fori:

=1tondowrite(a:

6);

writeln;

end.

冒泡排序

constn=10;

vara:

array[1..n]ofinteger;

i,j,k,t:

integer;

begin

write('Enterdate:

');

fori:

=1tondoread(a);

fori:

=1ton-1do

forj:

=ndowntoi+1do

ifa[j-1]

begint:

=a[j-1];a[j-1]:

=a[j];a[j]:

=tend;

write('outputdata:

');

fori:

=ndownto1dowrite(a:

6);

writeln;

end.

选择排序

constn=10;

vara:

array[1..n]ofinteger;

i,j,k,t:

integer;

begin

write('Enterdate:

');

fori:

=1tondoread(a);

writeln;

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

当前位置:首页 > 求职职场 > 简历

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

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