pascal 的初级题

如题所述

1. 计算Y值:
COS(X+3.0) 0≤X<10
Y= (COS(X+7.5))2 10≤X<20
(COS(X+4.0))4 20≤X<30
2. 读入一个三位数字的正整数,将其反向输出.
3. 输出三个数中的最大数.
4. x,y,z的值分别为1,11,111,将它们靠左边对齐输出.
5. x,y,z的值分别为1,11,111,将它们靠右边对齐打印输出.
6. 对于输入的方程系数,求二元一次方程组的解.
7. 输入两整数,求出它们的最大公约数和最小公倍数.
8. 对于输入的MAX个数字,统计其中奇,偶数的个数.
9. 找出10个数中的最大和最小数字.
10. 吉普车问题.希望一辆吉普车以最少的燃料消耗跨越1000公里的沙漠. 现已知吉普车总装油量为500升,耗油率为 1 升/公里.在沿途无加油站. 所以利用吉普车自己运油逐步前进.问要多少油才能使吉普车以最少油耗跨越 1000公里沙漠.
11. 求下面第N个fibonacci数.其定义为
f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2) (n>=2)
12. 求下面的Armstrong数,Armstrong数是一个N位数,它的值等于每位数字的N次幂的和.例如153=1^3+5^3+3^3.试求999以内的Armstrong数.
13. 马戏团有鸟和大象,它们共有 36 个头,100只脚.问有多少只鸟和大象.
14. 100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马2匹驮1担.计算大,中,小马的数目.
15. 打印数字金字塔.
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
...................
16. 找出2000以内的勾股数. (a2=b2+C2)
17. 将1元钱兑换成1,2,5分及1,2,5角钱,有多少种可能?
18. 打印乘法口诀表.
19. 有一对兔子,出生一个月后变成一对小兔子,两个月后生出第一小兔子, 自己变成一对老兔子,此时共有二对兔子,(一老一小),三个月后,老兔子又生出一对小兔子,上个月生的小兔子变成大兔子,此时共有三对(老,大小各一对),四个月后,大变老,小变大,二对老兔子又生二对小兔子,此时共有五对(老,小各二对,大的一对)...计算11个月后共有多少对兔子?
20. 打印方阵
A B C D E
B C D E A
C D E A B
D E A B C
E A B C D
21. 按字母表顺序和逆序每隔一个字母打印.即输出如下:
a c e g i k m o q s u w y
z x v t r p n l j h f d b
22. 计算机产生一个 0-100的随机整数,由你猜.计算机对你猜的数分别不同情况作出三种不同的反应,太大(TOO BIG),太小(TOO SMALL),正好(FIT).当猜着时,就输出你猜的次数和猜中的数.
23. 如果一个自然数等于它的全部约数(不包括这个数本身)之和,则这个自然数称为完全数.例如6本身以外的约数为 1,2,3,而6=1+2+3所以6是一个完全数.求出自然数中前3个完全数.
24. 将一真分数写成几个分子是一的分数的和的形式.
25. 有趣的数学问题: 某学校组织 M 名学生前往离校 X 公里处参加军事训练.可是,目前只有一部可坐 N 个人的汽车,其中M>=N.假如已知学生们的步行速度为A公里/小时,汽车的速度是 B 公里/小时,其中 A<B,学生们上下车的时间忽略不计,试设计一个程序求出全体学生到达目的地的最短时间.
26. 现有零件若干盒,每盒有零件100个,一个小组在制作某种机器时,需要这种零件,第一,二天不需要,第三天需要3个,第四天需要4个..,第N天需要N天需要N个,已知此小组工作了40天以上,且恰好用了M盒零件,5<=M<=10,问此小组一共工作多少天,用了几盒零件?
27. 验证哥德巴赫猜想.任意大于 6 的偶数均可表示为二素数之和.
28. 编程找出M,N(M<N,N为自然数)为何值时,1989的M次方与1989的N次方的最后三位数相等,且M+N的值最小.
29. 求1/a+1/b,1/a+1/b+1/c,a/b+c/d的最简分数值.
30. 打印
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
31. 输入5数,倒序输出.
32. 不用条件语句计算各分数段人数.
33. 约瑟夫环问题,max人围成一圈,每数到jump,则该人出圈,直至所有人全部出圈为止. 试求出圈顺序.
34. 约瑟夫环问题:
编号为 1,2,3,......,N 的N个人按顺时针方向围坐一圈,每人持有一个密码(正整数).从指定编号为 1 的人开始,按顺时针方向自 1 开始顺序报数,报到指定值M时停止报数,报第M的人出列,并将他的密码作为新的M值,从他在顺时针方向的下一人开始,重新从 1 报数,如此类推,直至所有人全部出列为止.试编一程序求出列顺序,其中 N<=30,N及密码数从键盘输入.
35. 编制一程序,要求输出20个数字(0-9),然后统计出在这个数组中相临两数字对出现的次数,如:0,1,5,9,8,7,2,2,2,3,2,7,8,7,8,7,9,6,5,9.则程序得到7,8这一数字对出现次数为2;而8,7这一数字对出现次数为3
36. 1.63 如图: 7 个学生按顺时针
① 方向手拉手围成一圈,并顺
1.72 ⑦ ② 1.70 序编号 ① ... ⑦, 用一
1.64 ⑥ ③ 1.60 个程序描述这 7个人按身高
1.67 ⑤ ④ 1.68 由矮到高重新排列面向内手
拉手的位置关系.
图中小圈内的数字为编号, 小圈外的数字为各人的身高.
37. 读入若干个数,滤掉中值为20的数.
38. 任意输入N,求数列1,1/2,2/2,1/3,2/3......的前N项。
39. 将1..8k的自然数表示成2k行,要求奇数在下,偶数在上.(k>0) k=4,则输出: 2 4 6 8
1 3 5 7
10 12 14 16
9 11 13 15
18 20 22 24
17 19 21 23
26 28 30 32
25 27 29 31
40. 打印数字螺旋方阵,这个数字方阵的特点是:数字从外圈向里圈按自然数顺序转圈递增,从左上角的1到中心位置的N*N为止,这里的N正好是方阵的行数或列数.
41. 编写一过程, 读入一个实型表示的度数,将其变成度,分,秒并显示.
42. 编一过程, 打印直方图,直方图为4行,每列表示1% .
43. 编写一个函数, 返回一正整数的倒序数字.
44. 编写一个过程, 倒序输出一正整数每位数字.
45. 幻方(奇阶和4的倍数阶).
46. 打印由1——N*N组成的N*N的螺旋方阵. (N<=50)
N=4
7 8 9 10
6 1 2 11
5 4 3 12
16 15 14 13
47. 验证任意自然数的阶乘均可表示为任意个素数的乘积的形式.表示方法:
例如: 5!=2*2*2*3*4*5
48. 以输入的自然数N作为行数, 打印杨辉三角形.
49. 求出输入的N个自然数的最大公约数.
50. N 个人进入会场开会(场内只有 N 个坐位), 本应对号入坐,可是N个人全都坐错了位置, 编程输出全都坐错了位置的所有可能坐法,并累计总数,N由键盘输入.
51. 求B/A+D/C.结果表示成最简分数.
52. 求I!+J!+K!,其中I,J,K由键盘输入.
53. 求N!.
54. 将十进制数变为等值二进制数字.
55. 根据键盘输入的两个数G和H,求出[G,H]中的所有质数.如果G<=2或G>H则要求重新输入.
56. 用递归方法求幂函数mn.
57. 跳马问题,5*5方阵,从左上角出发,跳遍所有格.
58. 一梯子有N格,小明上梯子有时一步上1格,有时一步上2格,编一程序,对任意输入的自然数N,打印出上梯子的所有可能的上法,并指出一共有多少种上法?
59. 第 13 届世界杯足球赛进入前八名的国家:
ARGENTINA(阿根廷),ENGLAND(英格兰),SPAIN(西班牙),BELGIUM(比利时)
GERMANY (西 德),MEXICO (墨西歌),FRANCE(法 国),BRAZIL (巴 西)
这八个国家的英文名藏在一个字块中:
A M U I G L E B P
P R W Y U B W R Y 需要设计一个程序查找这八个
W V G S T E X A N 国家的第一个字母所在的行和列以
Q N Q E C Y M Z A 及字母的走向.字母的走向规定为
H O R N N Z E I M 八个方向,分别用八个字符串加以
W P A G L T X L R 标注,如图:
J R M L K J I L E UP LEFT UP UP RIGHT
F S P A I N C N G LEFT RIGHT
A K W N G F O I A BOEN LEFT DOWN DOWN RIGHT
B P J D C D E H J
要求按国名字符的先后次序打印查找结果, 输出格式规定如下:
NAME(国名) ROW(行) COL(列) DIRECTION(方向)
60. 如果一个自然数N写在每个自然数之后则得到一个新数,它们都能被N整除. 请找出.
61. 编一过程READOCAL,读入八进制序列,转换成正整数.
62. 设计一程序,要求在1到30的数中,读入一个数字,列出它的平方,立方和它本身都含有数字D的数,例如1,则11,121,1331都是这样的数.
63. 判断一数是否回文数.
64. 设计一个递归函数计算一个自然数有多少种加表示法.
例如:5的加表示法有如下 7 种:
5,4+1,3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1
65. 设计一个计算Ackerman函数的函数说明.Ackerman函数定义为:
Ack(0,n)=n+1 (n>=0)
Ack(m,o)=Ack(m-1,1) (m>=1)
Ack(m,n)=Ack(m-1,Ack(m,n-1) (m,n>=1)
66. 10数已排好序,现要插入一新数,使得新数列仍为排序数列.
67. 设p(x)是十进制整数x的所有数码的乘积,如整数12 的p(x)值为1*2=2. 试求使下式成立的一切正整数: p(x)=x2-10x-22 .
68. 识别字符串abababab...,符合此规律的字符串,输出true,否则输出false,字符串总长度为N.
69. 编写布尔函数,以函数f为自变量,如果在x=0,0.1,0.2,0.3...1.0时,f(x)均为正,则布尔函数值为true,否则为false.
70. 在1( )2( )3( )4( )5=( )中填入+,-,*及合理数字,使之成为合理等式.
71. 在1()2()3()4()5()6()7()8()9=S中填入加减号使式子成立.
72. 在下面算式○中填入加号或减号,使算式结果等于键盘输入的S(S<200的自然数,且 S 是 9 的倍数).如果某个○不填符号,则将前后两个数字连成一个数(如:第一个○不填符号,即读成12),不允许相邻的两个○都不填符号.如果对S有多种填法,必须全部填出,如果找不到填法,则打印\'NO!\'.
1○2○3○4○5○6○7○8○9=S
73. 有如图方阵:
R A D A R 试从其中任意R出发,找出产生RADAR
A D A R A 的路线.打印每一种方案.
D A R A D
A R A D A
R A D A R
74. 求1到500之间本身和它二进制全是回文数的数.
75. 计算s除以1992后的商及余数(利用了字符串).
76. 高精度加法.
77. 高精度乘法.
78.对于任意输入的字符串判定其数据类型.
79. 对于任意N个数,经过处理,要求奇数在前,偶数在后,找所有排法.
80.有一个火车调度如图:
出口 -----\\ /------ 入口 有5列火车分别编号1,2,3,4,5
-----\\ \\/ /------ 1,2,3,4,5 依次排列于入口处,调度员可以
\\ / 在任意时刻将入口处的头一列
| | 火车拉入车站.也可将最后进入
| | 车站的那列火车拉至出口处.
车站
编程要求: 1.模拟调度员的工作,使所有入口处的火车在出口处重新排列;
2.打印出所有的火车在出口处的可能次序;
3.若入口处的火车进一步增加到 N 列呢?
81. 设 X 为一个一维整数数组,其元素由1--N之间的所有整数随机排列,数组下标上限N由键盘输入. 设计程序对数组X 的元素按如下定义的打印规则P打印:
(1) 如果 X 为空数组,打印"EMPTY";
(2) 如果 X 的长度是 1,打印出 X 的这个元素值;
(3) 如果 X 的长度大于1,设a是X的最小元素,B和C分别是a的左边元素和右边元素组成的子数组;
(4) 对B,C的所有元素按(1)(2)(3)规则处理,直至数组长度为1 为止.
打印规则 P 将 X 数组的所有元素按上述处理原则打印,格式如下:
a
L:B(L 表示 a 的左边)
R:C(R 表示 a 的右边)
例如: X=(4,3,5,1,2),则打印成:
1
L: 3
L: 4
R: 5
R: 2
上述结果表示,数组X的最小元素为 1,1的左边元素组成的子数组B=(4,3,5) 而B的最小元素为 3, 3的左边元素为 4,右边元素为 5; 1的右边元素组成的数组为C=(2),只有一个元素.
82. 要求设计一个程序,在每行的字间插入适当空白,使得所有行都在同一列结束.例如:
OPEN TOP COVER
TRACTOR FIXING RELEASE
在插入空白后变成:
OPEN TOP COVER
TRACTOR FIXING RELEASE
在每行字间插入空白时除了右端需对齐外,还需满足:
(1) 在不同的相临字间的空格最多相差 1;
(2) 对偶数(奇数)行, 所必须出现的空格出现在右端(左端).
83. 对键盘输入的任意字符串,比较其相临的每两个字符,相同则输出+,不同输出-,再对新生成的+,-串作同样处理,直至剩一个字符为止.
输入: 101101
则输出: --+--
+--+
-+-
--
+
84. 有 N*M (N列M行)张邮票连在一起,但其中第T张被挖掉了.
举例:下面是4*5的邮票情况,其中第 13 张被挖掉了,
┌—┬—┬—┬—┐ 现在要求从这些邮票中撕出4张连在一起的邮
│ 1│ 6│11│16│ 票如1,2,3,4或1,2,6,7或 1,2,6,11等,
├—┼—┼—┼—┤ 问符合条件的4张相连的邮票有多少种撕法?
│ 2│ 7│12│17│ (注:1,2,3,4 与2,3,4,5看作不同撕法)
├—┼—┼—┼—┤ 要求编写一个通用程序,并按如下格式打印:
│ 3│ 8│ │18│ 输入: 撕几连张?
├—┼—┼—┼—┤ 邮票形状 N,M=?
│ 4│ 9│14│19│ 被挖掉的邮票位置 N1,N2=?
├—┼—┼—┼—┤ 输出: 打印所有撕法及总方案数.
│ 5│10│15│20│
└—┴—┴—┴—┘
85. 高精度乘方.
86. 有一个 N*N (N为偶数)的图形,请你用 N*N/2 个长为 2,宽为1 的长方块,将它全部覆盖,编程找出所有盖法.要求每一种盖法不能重复,这里的重复是指经过旋转一个角度,或反过来时相同,输出最好用图形,也可用别的方式.
87. M*N 矩阵的各顶点随机填 0 和 1, 找出第一个四顶点值相同且面积最小的矩形.
88. 输入任一单词,统计其中元音和辅音字母出现的次数.
89. 设有一集合类型为set of 1..n,n是主程序中用const说明的整数,试编一过程求出集合元素的个数.
90. 编一函数,决定一给定字符是字母,数字,空格,标点符号或其它符号.
91. 编一函数,若传递给它的整数仅包含数字1,3,5,7,9,则返回true,否则返回 false.
92.用筛法求素数.(255以内)
93. 将十进制数N转化为二进制,并将1的所在位数存于集合.
94.城市路线问题(如图) ,寻找最短路线.图中括号内为里程数.

┏━━━━━━━━━━┓
┃ ⑺ ┃
⑺┏━━━━B━━━━━━┓ ┃
┃ ┃ ┃ ┃
┃ ┏━━╋━━C━━━┻━┓ ┃
┃⑹┃ ┃ ┃ ┃ ┃
┃ ┃ ┃ ⑼┃ ⑸┃ ┃
A ━┫ ┃ ┃ ┃ ┃
┃ ┗━━╋━━╋━━━━━━D┫
┃ ⑽ ┃ ┃ ┃
┃ ┃ ┃ ┃
┃ ┗━━┻━━━━━┓ ┃⑹
┃ ⑽ ┃ ┃
┗━━━━━━━━━━━━━E━┛
(13)

95. 一笔画问题. 找出一笔画遍全图的所有方法.
96. 数码管问题.找每两个位数字的数码笔画相差一的五位数.
1
┌—┐
2│ │3
├ 4┤
5│ │6
└—┘
7
97. 四色原理问题.
98. 表达式求值.( 包括+,-,*,/,^,(,) ).
99. 有一种绝对回文数,其十,二进制均为回文,请打印出1--500之间的绝对回文数(二进制最前面的0不能算).例如99(1100011)即是。
100. 一人带狼,羊,白菜过河,狼吃羊,羊吃白菜,河中只有一条船,此人一次只能带一物过河.用最少步全部过河.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-23
信息学模拟一
题目名称 陶陶摘苹果 校门外的树 明明的随机数 特殊的质数肋骨
代号 apple tree random sprime
输入文件 apple .in tree .in random .in sprime .in
输出文件 apple .out tree .out random .out sprime .out
时限 1秒 1秒 1秒 1秒
第一题 陶陶摘苹果
(apple.pas/c/cpp)
【问题描述】
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。

【输入文件】
输入文件apple.in包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
【输出文件】
输出文件apple.out包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。

【样例输入】

100 200 150 140 129 134 167 198 200 111
110

【样例输出】

5

第二题 校门外的树
(tree.pas/c/cpp)

【问题描述】

某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。
由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。

【输入文件】

输入文件tree.in的第一行有两个整数:L(1 <= L <= 10000)和 M(1 <= M <= 100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的,用一个空格隔开,表示一个区域的起始点和终止点的坐标。
M行每行包含两个不同的整数
【输出文件】

输出文件tree.out包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。

【样例输入】

500 3
150 300
100 200
470 471

【样例输出】

298

【数据规模】

对于20%的数据,区域之间没有重合的部分;
对于其它的数据,区域之间有重合的情况。

第三题 明明的随机数
(random.pas/c/cpp)
【问题描述】

明明随便输入N 个1 到1000 之间的整数表示学号,(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

【输入文件】

输入文件random.in 有2 行,第1 行为1 个正整数,表示明明随意输入的个数:N
第二行有N 个用空格隔开的正整数,为所输入的整数。

【输出文件】

输出文件random.out 也是2 行,第1 行为1 个正整数M,表示不相同的整数的个数。
第2 行为M 个用空格隔开的正整数,为从小到大排好序的不相同的整数。

【输入样例】

10
20 40 32 67 40 20 89 300 400 15
【输出样例】

8
15 20 32 40 67 89 300 400

第四题 特殊的质数肋骨
(sprime.pas/c/cpp)
【问题描述】
农民约翰母牛总是产生最好的肋骨。
你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。
农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说:
7 3 3 1
全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数。
7331 被叫做长度 4 的特殊质数。
写一个程序对给定的肋骨的数目 N (1<=N<=8),求出所有的特殊质数。
数字1不被看作一个质数。

PROGRAM NAME: sprime

【输入文件】
文件名: file sprime.in,单独的一行包含N。
【输入样例】
4
【输出文件】
文件名: file sprime.out,按顺序输出长度为 N 的特殊质数,每行一个。
【输出样例】
2333
2339
2393
2399
2939
3119
3137
3733
3739
3793
3797
5939
7193
7331
7333
7393

还不错,应该可以帮到你
第2个回答  2011-03-15
求最大公约数:
program gcd;

function gcd(a,b:longint):longint;
begin
if b=0 then exit(a) else exit(gcd(b,a mod b));
end;

begin
readln(a,b);
writeln(gcd(a,b));
end.
有五位同学,其各科成绩如下:

学号 数学 语文 英语 总分 名次

1 108 97 90

2 98 88 100

3 100 43 89

4 84 63 50

5 97 87 100

(1)编写一个过程enter,输入每个学生成绩并计算各人的总分。

(2)编写过程minci,用以排出每个人的名次。

(3)按学号顺序输出。

var
x,y,z,i,j,k,m,n,t:longint;
c,b,a:array[1..1000]of longint;

begin
readln(n);
for i:=1 to n do
begin
b[i]:=i;
readln(x,y,z);
a[i]:=x+y+z;
end;

for i:=1 to n do
for j:=i+1 to n do
if a[i]<a[j] then
begin
t:=a[i];a[i]:=a[j];a[j]:=t;
t:=b[i];b[i]:=b[j];b[j]:=t;
end;

for i:=1 to n do c[b[i]]:=i;
for i:=1 to n do writeln(c[i]);
end.

输入两个实数a、b和一个运算符号ch(“+-*/”中的某一个),输出(a ch b)的结果。

输入

第一行输入两个实数a、b
第二行输入运算符号ch

输出

输出(a ch b)的结果。
若运算有意义,则输出“a的值 ch的值 b的值=(a ch b)的结果”;
若运算无意义,则输出“ERROR”

(每个实数的输出场宽为12,保留4位小数)

var a,b,result:real;
ch:char;
begin
readln(a,b);
readln(ch);
result:=0;
case ch of
'+':result:=a+b;
'-':result:=a-b;
'*':result:=a*b;
'/':if b<>0 then result:=a/b else writeln('ERROR');
end;
writeln(a:12:4,ch,b:12:4,'=',result:12:4);
end.
第3个回答  2011-03-14
What?
第4个回答  推荐于2016-12-01
某仓库5月1日有粮食100吨,5月2日又调进20吨,5月3日卖出库存的3分之二,5月4日又调进库存的3倍粮食,问该仓库从5月1日到5月4日期间每天的粮食分别是多少吨?(输出每天的库存量)
分析:在这个问题中,主要要描述从5月1日到5月4日期间仓库的粮食库存量,且易知它是不断变化的。因此我们可以用一个变量A来描述仓库的粮食库存量。
程序可写如下:
Program ex1;
Var A : integer;
Begin
A:=100;Writeln('5/1:',A);
A:=A+20;Writeln('5/2:',A);
A:=A div 3; writeln('5/3:',A);
A:=A *4; writeln('5/4:',A);Readln;
End.
有三个小朋友甲乙丙。甲有50粒糖果,乙有43粒糖果,两有13粒糖果。现在他们做一个游戏。从甲开始,将自己的糖分三份,自己留一份,其余两份分别给乙与丙,多余的糖果自己吃掉,然后乙与丙也依次这样做。问最后甲、乙、丙三人各有书多少粒糖果?
分析:
这个问题中我们关心的是在游戏过程中每个小朋友的糖果个数,且他们所拥有的的糖果数是在变化的。因此可用a,b,c三个变量分别存放甲乙丙三个小朋友在某一时刻所拥有的糖果数。对于每人,分糖后,他的糖果数一定为原来的糖果数 div 3(因为分糖过程糖果的数目不一定都刚好分完,用整除恰恰可以表示多余的糖自己吃掉)。而其他两人则增加与这个小朋友现在拥有的一样的糖果。
程序可写如下:
program ex2;
var A,B,C:integer;
begin
A:=50;B:=43;C:=13; {初始时每个小朋友所拥有的糖果数}
A:=A div 3; B:=B+A;C:=C+A;{甲小朋友分糖果后,每个人拥有的糖果数变化情况}
B:=B div 3; A:=A+B;C:=C+B; {乙小朋友分糖果后,每个人拥有的糖果数变化情况}
C:=C div 3; A:=A+C;B:=B+C; {丙小朋友分糖果后,每个人拥有的糖果数变化情况}
writeln('A=',A,'B=',B,'C=',C); {输出结果}
readln;
end.
已知A=253,B=43,输出A*B的运算式子。即输出如下:
253*43=10879
253
* 43
759
+1012
10879
分析:
对于该问题,我们只要控制好输出时右靠齐即可。即前四行的总宽度一样(例如为12),第五行总宽度比前面少1。第六、七行总宽度与前四行一样。
参与程序如下:
var a,b:integer;
begin
a:=253;b:=43;
writeln(a:10,'*',b,'=',a*b);
writeln(a:12);
write('*':8);writeln(b:4);
writeln('--------':12);
writeln(a*3:12);
write('+':6);writeln(a*4:5);
writeln('--------':12);
writeln(a*b:12);
end.
试编一程序,输入一梯形的上底、下底、高, 求该梯形的面积。
分析:
整个程序分为三段:输入、计算、输出。程序中用a,b,h三个变量分别存放梯形的上、下底与高,S存放面积。 要而使用这些变量都要先说明,程序的执行部分中先输入上、下底与高,接着求面积S,最后输出结果S。
源程序如下:
program Tixing; {程序首部}
var a,b,h,s:real; {程序说明部分}
begin
write('Input a,b,h:');
readln(a,b,h); {程序执行部分}
s:=(a+b)*h/2;
write('s=',s:10:3);
end.
某幼儿园里,有5个小朋友编号为1,2,3,4,5,他们按自己的编号顺序围坐在一张圆桌旁。他们身上都有若干个糖果,现在他们做一个分糖果游戏。从1号小朋友开始,将他的糖果均分三份(如果有多余的,则他将多余的糖果吃掉),自己留一份,其余两份分给他的相邻的两个小朋友。接着2号、3号、4号、5号小朋友也这如果做。问一轮后,每个小朋友手上分别有多少糖果。
分析:
这道问题与第二课中的例2基本一样,只不过这里有5位小朋友,且他们初始时糖果的数目不确定。这里用a,b,c,d,e分别存放5个小朋友的糖果。初始时它们的值改为由键盘输入。其它都与第二课中的例2类似。
参考程序如下:
program fentang;
var a,b,c,d,e:integer;
begin
write('Please Enter init numbers ');readln(a,b,c,d,e);
a:=a div 3;b:=b+a;e:=e+a;{1号均分后,1、2、5号的糖果数变化情况}
b:=b div 3;c:=c+b;a:=a+b;{2号均分后,1、2、3号的糖果数变化情况}
c:=c div 3;b:=b+c;d:=d+c;{3号均分后,2、3、4号的糖果数变化情况}
d:=d div 3;c:=c+d;e:=e+d;{4号均分后,3、4、5号的糖果数变化情况}
e:=e div 3;d:=d+e;a:=a+e;{5号均分后,4、5、1号的糖果数变化情况}
{输出结果}
writeln('a=',a);
writeln('b=',b);
writeln('c=',c);
writeln('d=',d);
writeln('e=',e);
readln;{暂停}
end.
编一程序求半径为R的圆的周长与面积?
分析:
程序要先输入半径R,然后求周长c和面积s,最后输出c和s.
源程序如下:
program circle;
const PI=3.14159;
var r,c,s:real;
begin
write('Enter R=');readln(r);
c:=2*pi*r;
s:=pi*sqr(r);
writeln('c=',c:10:2);
writeln('s=',s:10:2);
end.本回答被提问者采纳
相似回答