pascal100练习题

2019-01-19 14:42

Pascal练习题100道

1 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? var i,j,a,b,c:integer; begin

for i:=1 to 4 do for j:=1 to 4 do for a:=1 to 4 do for b:=1 to 4 do begin

if (i<>j) and (i<>a) and (i<>b) and (j<>a) and (j<>b) and (a<>b) then writeln(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);

if a<100000 then s:=a*0.1; if a>100000 then begin

if (a>100000) and (a<=200000) then s:= s + (a-100000)*0.075 + 100000*0.1;

if (a>200000) and (a<=400000) then s:=s+(a-200000)*0.05+100000*0.1+100000*0.075; if (a>400000) and (a<=600000) then s:=s+(a-400000)*0.03+100000*0.1+200000*0.05; if (a>600000) and (a<=1000000) then

s:=s+(a-600000)*0.015+100000*0.1+200000*0.05+200000*0.03; if (a>1000000) then

s:=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又是一个完全平方数,请问该数是多少? var i:longint; a,b:real; begin

for i:=1 to 1000000 do

begin

a:=sqrt(i+100); b:=sqrt(i+268);

if ((a*a)=(i+100)) and ((b*b)=(i+268)) then writeln(i); end; end.

4 题目:输入某年某月某日,判断这一天是这一年的第几天? var a1,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) then d:=a1 else if (b=2) then d:=a2 else if (b=3) then d:=a3 else if (b=4) then d:=a4 else if (b=5) then d:=a5 else if (b=6) then d:=a6 else if (b=7) then d:=a7 else if (b=8) then d:=a8 else if (b=9) then d:=a9 else if (b=10) then d:=a10 else if (b=11) then d:=a11 else if (b=12) then d:=a12; d:=d+c;

if (a mod 1000=0) and (c mod 400=0) and (b>3) then d:=d+1; if (a mod 1000<>0) and (c mod 4=0) and (b>3) then d:=d+1; writeln(d); end.

5 题目:输入三个整数x,y,z,请把这三个数由小到大输出。 var a,b,c,d:integer; begin

readln(a,b,c);

if a>b then begin d:=a;a:=b;b:=d; end; if a>c then begin d:=a;a:=c;c:=d; end; if b>c then begin d:=b;b:=c;c:=d; end; writeln(a,b,c); end.

6 题目:用*号输出字母c的图案。 begin

writeln(' ***');

writeln(' * '); writeln('* '); writeln('* '); writeln(' * '); writeln(' ***'); end.

7 题目:输出9*9口诀。 var i,j:integer; begin

for i:=1 to 9 do begin

for j:=1 to 9 do begin

write(j,'*',i,'=',j*i,' '); end; writeln; end; end.

8 题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? var a1,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之间的素数。 var n,i,a:integer; p:boolean; begin n:=200;

for a:=101 to n do

begin p:=true;

for i:=2 to trunc(sqrt(a))+1 do if a mod i=0 then begin p:=false; break end;

if p=true then write(a:4); end; end.

10 题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

var a,b,c,i:integer; begin

for i:=100 to 999 do begin

a:=i div 100;

b:=(i div 10) mod 10; c:=i mod 10;

if a*a*a+b*b*b+c*c*c=i then writeln(i); end; end.

11 题目:将一个正整数分解质因数。例如:输入90,打印出90=1*2*3*3*5。 var n,i:integer; begin

write('please input the number:'); read(n);

write(n,'=',1); i:=1; repeat inc(i);

while n mod i=0 do begin

n:=n div i; write('*',i); end; until n=1; end.

12 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用a表示,60-89分之间的用b表示,60分以下的用c表示。

var a:integer; begin readln(a);

if a>=90 then writeln('a') else

if (a>=60) and (a<=89) then writeln('b') else writeln('c'); end.

13 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 var a,b,ans,c:longint;

function gcd(a,b:longint):longint; begin

if b=0 then gcd:=a

else gcd:=gcd(b,a mod b); end;

function lcm(a,b:longint):longint; begin

lcm:=a*b div gcd(a,b); end; begin read(a,b); c:=gcd(a,b); writeln(c); ans:=lcm(a,b); writeln(ans); end.

14 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 var a:string;

b:array[1..200]of integer; t,i,z,h,f:integer; begin read(a); t:=length(a); for i:=1 to t do begin

b:=ord(a);

if (b>=65) and (b<=90) then z:=z+1 else if (b>=97) and (b<=122) then z:=z+1 else

if (b>=48) and (b<=57) then h:=h+1 else f:=f+1; end;

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

15 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此


pascal100练习题.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:现代企业员工培训需求分析的要素及方法分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: