




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.顺序结构101.求长方形的周长var a,b,c:integer;begin read(a,b); c:=(a+b)*2; write(c);end.102.两个变量的值的交换需要第三个变量的方法:var a,b,c:integer;begin a:=3; b:=4; c:=a; a:=b; b:=c; write(a, ,b);end.不需要第三个变量:var a,b:integer;begin a:=3; b:=4; a:=a+b; b:=a-b; a:=a-b; write(a, ,b);end.103.inc()和dec()var a :integer;begin a:=3; a:=a+1; writeln(a); inc(a); writeln(a); inc(a,3); writeln(a); a:=a-1; writeln(a); dec(a); writeln(a); dec(a,3); writeln(a);end.104.求一个四位数各位之和.var a,b,c,d,s:integer;begin read(s); a:=s mod 10; b:=s div 10 mod 10; c:=s div 100 mod 10; d:=s div 1000; write(a+b+c+d);end. 2.判断结构201.求三个数的最大值1.打擂台模式var a,b,c,s:integer;begin read(a,b,c); s:=a; if bs then s:=b; if cs then s:=c; write(s);end.2.else方式var a,b,c,s:integer;begin read(a,b,c); if a=b then if a=c then write(a) else write(c) else if b=c then write(b) else write(c);end.202.判断是否闰年var n:integer;begin read(n); if (n mod 1000)and(n mod 4=0) or (n mod 400=0) then write(yes) else write(no);end.203.输入年和月,输出该月有多少天。var year,month,day:integer; runnian:boolean;begin readln(year,month); case month of 1,3,5,7,8,10,12: day:=31; 4,6,9,11: day:=30;以上处理31天和30天的情况 2:begin runnian:=(year mod 400=0) or (year mod 4=0) and (year mod 1000); case runnian of true: day:=28; false: day:=29; end; end; 以上处理2月的情况:闰年28天,平年29天 end; write(day);end.204.某超市为了促销,规定:购物不足50元的按原价付款,超过50不足100的按九折付款,超过100元的,超过部分按八折付款。编一程序完成超市的自动计费的工作。var n,s:real;begin read(n); if n100 then s:=n*0.8 else if n50 then s:=n*0.9 else s:=n; write(s);end.3.循环结构1.单重循环301.1+2+3+4+.+100(1)for.do型var n,i,s:integer;begin n:=100; for i:=1 to n do s:=s+i; write(s);end.(2).while .do型var n,i,s:integer;begin n:=100; i:=1; while in; write(s);end.302.1+3+5+7+.+99(1)for.do型var n,i,s:integer;begin n:=99; for i:=1 to n do if i mod 2=1 then s:=s+i; write(s);end.(2).while .do型var n,i,s:integer;begin n:=99; i:=1; while in; write(s);end.303.求使1+3+5+7+.+x=1000成立的x的最小值var n,x,s:integer;begin s:=0; x:=1; while s0 do begin s:=s*10 + n mod 10; n:=n div 10; end; write(s);end. 305.质数的判断var n,i:longint;f:boolean;begin read(n); f:=true; for i:=2 to trunc(sqrt(n) do if n mod i=0 then begin f:=false; break; end; if f=true then write(yes) else write(no);end.306.求最大公约数与最小公倍数 :var a,b,x,y,n,i:integer;begin read(a,b); x:=a;y:=b; n:=x mod y; while y mod n0 do begin x:=y; y:=n; n:=x mod y; end; writeln(n);求最大公约数 writeln(a*b div n);最小公倍数end.307.数列:1,1,3,1,3,5,1,3,5,7,1,3,5,7,9,.求第n 项的值。例如n=5时,为3. var s,n,i,j,k:integer;begin read(n); i:=1;当前数到第i项 s:=1;当前项的值 k:=1;当前项处于第k个周期 j:=1;当前周期中数到第j项 while ik then begin j:=1; s:=1; k:=k+1; end else begin j:=j+1; s:=s+2; end; end; write(s);end. 308.求周期性数列第n项的值.数列:1,1,3,1,1,3,5,3,1,1,3,5,7,5,3,1,1,3,5,7,9,7,5,3,1.求第n项的值,如:n=5时,值为1第1周期 1 2第2周期 3 4第3周期 5 6第4周期 7 8第k周期 2*k-1 2*kvar s,i,j,k,t,n:integer;begin read(n); i:=1;当前数到第i项 k:=1;当前处于第k个周期 j:=1;处于当前周期中第j项 s:=1;当前项的值 while i2*k-1 then begin j:=1; s:=1; k:=k+1; end else if j+1=k then begin j:=j+1; s:=s+2; end else begin j:=j+1; s:=s-2; end; end; write(s);end.309.数列4:1,1,1,2,2,1,1,1,2,2,2,3,3,3,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4.的第n项,如n=4,值为2.var n,i,j,k,s:integer;begin read(n); i:=1;当前在总第i项 k:=1;当前项所在第k个周期 j:=1;处于当前周期中第j项 s:=1;当前项的值 while ik*k then begin j:=1; k:=k+1; s:=1; end else if j mod k=0 then begin j:=j+1; s:=s+1; end else begin j:=j+1; end; /write(s:4); end; write(s:4);end.310.求数列1、5、17、53、161、。前20项的和。(提示: An=2+3A(n-1))(答案:3486784380)var an,am,s:real; i:integer;begin writeln; am:=1; s:=1; write(am:20:0); for i:=2 to 20 do begin an:=am*3+2; s:=s+an; am:=an; write(am:20:0); end; writeln; write(totle:,s:0:0);end.双重循环311.打印图形*var i,j:integer;begin for i:=1 to 5 do begin for j:=1 to i do write(*); writeln; end;end.312.打印图形 * * * *var i,j:integer;begin for i:=1 to 5 do begin write(:5-i); for j:=1 to 2*i-1 do write(*); writeln; end;end.313.打印图形* * * * *解法一:var i,j:integer;begin for i:=5 downto 1 do begin write(:5-i); for j:=1 to 2*i-1 do write(*); writeln; end;end.解法二:var i,j:integer;begin for i:=1 to 5 do begin write(:i-1); for j:=1 to 10-(2*i-1) do write(*); writeln; end;end.314.打印图形:122333444455555var i,j:integer;begin for i:=1 to 5 do begin for j:=1 to i do write(i); writeln; end;end.315.打印图形:112123123412345var i,j:integer;begin for i:=1 to 5 do begin for j:=1 to i do write(j); writeln; end;end.打印图形:121321432154321解法一:var i,j:integer;begin for i:=1 to 5 do begin for j:=i downto 1 do write(j); writeln; end;end.解法二:var i,j:integer;begin for i:=1 to 5 do begin for j:=1 to i do write(i+1-j); writeln; end;end.思考:打印图形:244666888810101010打印图形:133555777799999打印图形:113135135713579打印图形: 1 313 53135 7531357975313579打印图形: 1 * 22222 *333333333continue 与break和exit.halt的区别317.var i,j,k,t,n,s:integer;begin read(n); for i:=1 to n do begin k:=k+i; for j:=1 to i do begin t:=t+j; if t2 then break; s:=s+1; end; end; write(s=,s,k=,k,t=,t);end.输入:3输出:318.var i,j,k,t,n,s:integer;begin read(n); for i:=1 to n do begin k:=k+i; for j:=1 to i do begin t:=t+j; if t2 then continue; s:=s+1; end; end; write(s=,s,k=,k,t=,t);end.输入:3输出: 319.var i,j,k,t,n,s:integer;begin read(n); for i:=1 to n do begin k:=k+i; for j:=1 to i do begin t:=t+j; s:=s+1; if t2 then break; end; end; write(s=,s,k=,k,t=,t);end.输入:3输出:320.var i,j,k,t,n,s:integer;begin read(n); for i:=1 to n do begin k:=k+i; for j:=1 to i do begin t:=t+j; s:=s+1; if t2 then continue; end; end; write(s=,s,k=,k,t=,t);end.输入:3输出: 321.var i,j,n,t,k:integer;begin read(n); for i:=1 to n do begin k:=k+2; for j:=1 to i do t:=t+i; end; write(k=,k,t=,t);end.输入:3输出:6.var i,j,n,t,k:integer;begin read(n); for i:=1 to n do begin k:=k+2; for j:=1 to i do t:=t+j; end; write(k=,k,t=,t);end.输入:3输出:7.var i,j,n,t,k:integer;begin read(n); for i:=1 to n do begin k:=k+2; for j:=1 to i do begin k:=k+1; t:=t+k; end; end; write(k=,k,t=,t);end.输入:3输出:多重循环(枚举)322.四大湖排名情况四个学生上地理课,回答我国四大淡水湖大小时这样说:甲:“最大洞庭湖,最小洪泽湖,鄱阳湖第三。”乙:“最大洪泽湖,最小洞庭湖,鄱阳湖第二,太湖第三。”丙:“最小洪泽湖,洞庭湖第三。”丁:“最大鄱阳湖,最小太湖,洪泽湖第二,洞庭湖第三。”对于每个湖的大小,每个学生仅答对一个,请编程确定四个湖的大小。Var dongtinghu,hongzehu,boyanghu,taihu:integer;A,b,c,d:integer;Begin For dongtinghu:=1 to 4 do For hongzehu:=1 to 4 do If hongzehudongtinghu then For boyanghu:=1 to 4 do If ( hongzehuboyanghu)and(dongtinghuboyanghu) then Begin Taihu:=1+2+3+4-dongtinghu-hongzehu-boyanghu; If taihu*hongzehu*boyanghu*dongtinghu=1*2*3*4 then Begin A:=ord(dongtinghu=1)+ord(hongzehu=4)+ord(boyanghu=3); B:=ord(hongzehu=1)+ord(dongtinghu=4)+ord(boyanghu=2)+ord(taihu=3); C:=ord(hongzehu=4)+ord(dongtinghu=3); D:=ord(boyanghu=1)+ord(taihu=4)+ord(hongzehu=2)+ord(dongtinghu=3) ; If (a=1) and ( b=1) and(c=1)and(d=1) then begin Writeln(dongtinghu:,dongtinghu, hongzehu:,hongzehu, taihu:,taihu, boyanghu:,boyanghu); break; end; end; end;end.323.说谎问题 一维数组400.输入n个数,要求输出最大值和最小值. var a:array1.1000of integer; n,i,j,max,min:integer; begin readln(n); for i:=1 to n do read(ai); max:=a1; min:=a1; for i:=2 to n do begin if aimax then max:=ai; if ai0 do begin i:=i+1; ai:=s mod 10; s:=s div 10; end; write(s);end.403.分解质因数12=2*2*3var s,n,i,j,k:integer;a:array1.1000of integer;begin read(n); s:=n; i:=2; while s1 do begin while s mod i =0 do begin k:=k+1; ak:=i; s:=s div 2; end; i:=i+1; end; write(n,=,a1); if k=1 then exit else for i:=2 to k do write(*,ai);end.404.筛选出1.100内所有素数405.猴子选大王有N只猴子围成一圈,每只各一个从1到N中的编号,打算从中选出一个大王;经过协商,决定出选大王的规则:从第一个开始循环报数,数到M的猴子出圈,最后剩下来的就是大王。要求:从键盘输入N、M,编程计算哪一个编号的猴子成为大王思路1:var a:array1.1000of integer;s,n,m,i,j,k:integer;begin read(n,m); s:=n; for i:=1 to n do ai:=1; i:=0; while s1 do begin k:=0; while kn then i:=1; k:=k+ai; end; ai:=0; write(i, ); s:=s-1; end; for i:=1 to n do if ai=1 then begin write(i); exit; end;end.思路2:建立一个循环数组,数组元素的每一个值保存的是它的下一个元素的编号,如果报到m后只要修改m前面的元素的编号为m后面的元素的编号,这样就跳过了第m个元素,如此下去直到n个人全部出列。【参考程序】Program yuesefu;Vara:array1.100 of integer;n,m,p,i,j:integer;Beginreadln(n,m);for i:=1 to n-1 doa:=i+1;an:=1;p:=n;for i:=1 to n dobeginfor j:=1 to m-1 dop:=ap;write(ap, );ap:=aap;end;End.406.狐狸追兔子狐狸捉兔子围绕着山顶有10个洞,一只狐狸和一只兔子住在各自的洞里。狐狸总想吃掉兔子。一天,兔子对狐狸说:“你想吃我有一个条件,先把洞从110编上号,你从10号洞出发,先到1号洞找我;第二次隔1个洞找我,第三次隔2个洞找我,以后依此类推,次数不限。若能找到我,你就可以饱餐一顿。不过在没有找到我以前不能停下来。”狐狸满口答应就开始找了,它从早到晚进了1000次洞,累得昏了过去也没找到兔子。请问,兔子躲在几号洞里?program mr;const holenumber = 10;var hole : array1 . holenumber of 0 . 1; step, i, number : longint;begin for i := 1 to holenumber do holei := 0; number := 0; for step := 1 to 1000 do begin number := number+step; 循环地数 i := number mod holenumber; 第几个洞 if i = 0 then i := 10; holei := 1; end; for i := 1 to holenumber do if holei = 0 then write(i:3); readln;end. 407.二分查找在一个包含n个数的从小到大排列的数列中查找某数k的所在该数列中的位置。 解法一:顺序查找法 var n,i,j,k:integer; a:array1.1000of integer; begin realn(n,k); for i:=1 to n do read(ai); i:=1; for i:=1 to n do if ai=k then begin write(i); break; end; if i=n then write(数列不存在k!); end. 解法二:二分查找法 var n,i,j,k,l,r,mid:integer; f:boolean; a:array1.1000of integer; begin readln(n,k); for i:=1 to n do read(ai); f:=false; l:=1; r:=n; repeat mid:=(l+r) div 2; if amid=k then begin write(mid); f:=true; exit; end else if amidk then r:=mid-1 else l:=mid+1; until raj+1 then begin k:=aj; aj:=aj+1; aj+1:=k; end; for i:=1 to n do write(ai:4); end. 思考:看程序写结果: var i,j,k:integer; a:array1.5 of integer; begin for i:=1 to 5 do read(ai); for i:=1 to 4 do for j:=5 downto i+1 do if ajaj-1 then begin k:=aj; aj:=aj-1; aj-1:=k; end; for i:=1 to 5 do write(ai:5); end. 输入:5 3 6 4 8 输出:3 4 5 6 8410.选择排序1.选择排序(从小到大排序): var n,i,j,k:integer; a:array1.1000of integer; begin readln(n); for i:=1 to n do read(ai); for i:=1 to n-1 do for j:=i+1 to n do if ajai then begin k:=aj; aj:=ai; ai:=k; end; for i:=1 to n do write(ai:4); end. 411.插入排序 var i,j,n:longint; r:array0.1000of integer; Begin readln(n); for i:=1 to n do read(ri); for I := 2 To N do begin R0 := RI; J := I - 1; While (R0 0) Do begin RJ+1 := RJ; J := J - 1; end; RJ + 1 := R0 ; end; for i:=1 to n do write(ri:4) ; End.412.改进的冒泡排序 var n,i,j,k:integer; f:boolean; a:array1.100of integer; begin readln(n); for i:=1 to n do read(ai); for i:=1 to n-1 do begin f:=false; for j:=1 to n-i do if ajaj+1 then begin k:=aj; aj:=aj+1; aj+1:=k; k:=true; end; if not f then break; end; for i:=1 to n do write(ai:4); end.413.改进的选择排序 var n,i,j,s,t:integer; a:array1.100of integer; begin readln(n); for i:=1 to n do read(ai); for i:=1 to n-1 do begin t:=i; for j:=i+1 to n do if ajat then t:=j; if ti then begin s:=ai; ai:=at; at:=s; end; end; for i:=1 to n do write(ai:4); end.414.二分插入排序415.不同进制数的转换416.10进制转为其他进制数417.其他进制数钻为10进制数418.翻牌游戏有52张扑克牌,使它们全部正面朝上。从第2张牌开始,把凡是2的倍数位置上的牌翻成正面朝下;接着从第3张牌把凡是3的倍数位置上的牌正面朝上的翻成正面朝下,正面朝下的翻成正面朝上;接着从第4张牌开始,把凡是4的倍数位置上的牌按此规律翻转;依此类推,直到第1张要翻的牌是第52张牌为止。统计最后有几张牌正面朝上,并打印他们的位置。const n=52;var a:array1.n of integer; i,j,s:integer;begin for i:=1 to n do ai:=1; for i:=2 to n do begin for j:=1 to n div i do ai*j:=-1*ai*j; end; j:=0; s:=0; for i:=1 to n do begin if ai=1 then begin write(i:3); s:=s+1; if s mod 5 = 0 then writeln; end; end; writeln; writeln(Total:,s:5);end.419.小明和小华玩一种游戏:先抽出13张牌并任意洗好,然后把它们背面朝上排成一列,接着抛出骰子,假设点数为n,根据点数n翻看第n张牌,然后根据这张牌的值x,又翻开第x张牌,再根据第x张牌的值y又翻开对应的第y张牌,依次类推,直到翻开的牌的值指向的对应的牌已经被翻开为止,最后统计所有被翻开的牌的值的和。这个游戏有点烦琐请你编写一个程序帮他们进行统计谁翻开的值最多。var n,i,k,s:integer;a:array1.13of integer;begin randomize; n:=random(6)+1; for i:=1 to 13 do ai:=random(13)+1; repeat s:=s+an; k:=n; n:=an; ak:=0; until an=0; write(s);end.420.合并有序数组。样例:输入:62 3 5 6 7 984 8 10 13 18 20 25 43输出:2 3 4 5 6 7 8 9 10 13 18 20 25 43程序思想:用s,t分别记录a,b两个数组的下标,比较as和bt大小后小的值放入c数组,如果a,b数组有一方已放完,另一方未放完,则直接复制该剩下的数到c数组。var n,m,i,j,k,s,t:integer;a,b,c:array1.1000of integer;begin readln(n); for i:=1 to n do read(ai);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国草药和和水果提取物行业市场现状供需分析及投资评估规划分析研究报告
- 2025年剪断机项目申请报告模板
- 2024年黔西南州公务员考试行测真题及1套完整答案详解
- 2024年杭州市公务员考试行测真题及1套参考答案详解
- 2025年农业灌溉用水高效管理与水资源保护与利用政策建议研究报告
- 森林火灾应急搜救智能感知的关键键技术研究
- 基于生物质材料制备亲水渗透汽化膜及其脱盐性能研究
- 降解菌种筛选技术-洞察及研究
- 多能源协同-洞察及研究
- 焊接结构疲劳寿命评估方法研究与实现
- 充电桩技术规格书
- 2024年华东师范大学第二附中自主招生数学试卷真题(含答案详解)
- 充电桩巡查记录表
- 建筑装饰装修工程验收标准及流程
- 供电可靠性理论考试题库大全-下(填空题)
- 社工沟通技巧课件
- 全国现场流行病学调查职业技能竞赛考试题及答案
- 七年级英语下学期期末考试(无锡卷)七年级英语下册单元重难点易错题精练(牛津译林版)
- 2019年天津市普通高中学业水平考试地理试卷(含答案)
- 烟囱工程技术标准
- 2024年春季学期外国文学基础#期末综合试卷-国开(XJ)-参考资料
评论
0/150
提交评论