版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、pascal 语言练习题一、pascal 语言1. pascal语言规定,程序一律以保留字_开始,作为程序标志。5. 结构化程序设计的3种基本结构是_、_、_。9. 表达式pred(chr(ord(e)+1)的值为_。11. 将一万分之一写成pascal数的形式应为_。14. pascal语言的数据类型按其特点可分3大类,即_类型,_类型和_类型。15. 将65526.0034写成pascal数的形式应为_。22. 表达式ord(6)=ord(6)的值是_。二、基本语句和顺序结构1. 请写出把256.0赋给整型变量i的赋值语句是_。2. 设i为整型变量,l为布尔型变量(l:boolean),o
2、dd函数是判断一个数是否为奇数,如odd(5)=true,语句l:=odd(i) or odd(i+1);执行后l的值为_。3. 以下程序的运行结果为_。 programex(output); var a,b,c,n,sum:integer; begin n:=126; a:=n div 100; b:=(n-a*100) div 10; c:=n-a*100-b*10; sum:=a+b+c; writeln(sum=,sum:3) end.4. 有以下程序: program p1(input,output); var ch:char; begin readln(ch); writeln(p
3、red(pred(ch),pred(ch),ch,succ(ch),succ(succ(ch) end. 假设输入字母c,则输出为_。6. 表达式trunc(-sqrt(sqr(17 mod 5)*2*(15 div 2)+sqr(12)的值是_。7. 设变量说明如下: var ch1,ch2,ch:char; i1,i2:integer; r1,r2:real; 现在要把值a,b,15,128,2.3e-5,-18.96依次赋给变量ch1, ch2,i1,i2,r1,r2,设输入数据格式为: a b l5: 128 2.3e-5 -18.96; 请写出读语句_。8. 以下程序段的作用是:将读
4、入的一个三位数字的正整数反向输出。如输入123,则输出321,请填空: program exa(input,output); var m,a,b,c,x:integer; begin readln(m); a:_; b:_ mod 10; c:m div 100; x:a*100+b*10+c; writeln(x) end.三、选择语句1. 阅读下面程序体,其运行结果是_。 a:=5;b:=4;c:=3; if odd(pred(4) then a:=b+c; a:=a-c; writeln(a);2. 以下程序段将a,b,c三个数,按由小到大的顺序输出。请在空内填上正确的内容。 readl
5、n(a,b,c); if ab then begin temp:=a; a:=b; b:=temp end; if_ then begin temp:=a; a:=c; c:=temp end; if_ then begin temp:=b; b:=c; c:=temp end; writeln(a:3,b:3,c:3)3. 有下列两个if语句: if ab then x:=1 else x:=2; if ab then_; else;_;4. 以下程序段执行后,data的值是_。 l1:=false;l2:=true;l3:=false;data:=0; if l1 then data:=5
6、 else if not l2 then else if not l3 then data:=10 else data:15;5. 以下程序从键盘读入一个三位数的正整数,然后将其反向输出。如输入 456,输出654.请在空白处填入正确内容。 program turnover(input,output); var x,y,a,b,c:integer; begin writeln (input a numberx(100x=1000):); readln (x); if (x=1000) then writeln(inputerror!) else begin a:=x div 100; b:=_
7、; c:=x mod 10; y:=_; writeln(x,turnoveris:,y) end end.6. 以下程序实现了将24小时制表示的时间转换为12小时制表示的时间。如:输入1325(13点25分),则输出1:25pm。请在_。处填入正确内容。 program exchtime(input,output); var time,hour,minutes:integer; begin readln(time); hour:=_ mod 12; if hour=0 then hour:=12; write(hour:2,:); minutes:=_; write(minutes:2);
8、if (time1200) or (time=2400)then writeln(am) else writeln (pm) end.7. 以下程序实现:输入一个日期,计算出是星期几,请在空白处填入正确内容。 program countweek (input,output); var day,month,year,m,y,sum,week:integer; leap:boolean; begin readln(day,month,year); y:=year-1; y:=y+y div 4-y div 100+y div 400; case month of 1,10:m:=0; 5:m:=1
9、; 8:m:=2; 2,3,11:m:=3; 6:m:=4; 9,12:m:=5; 4,7:m:=6; end; sum:=y+m+day;总天数 if(year mod 4=0)_ (year mod 1000)_ (year mod 400=0)and(month2)then sum:=sum+1;闰年加一天 week:=sum mod 7; case_ of 0:writeln(sunday); 1:writeln(monday); 2:writeln(tuesday); 3:writeln(wednesday); 4:writeln(thursday); 5:writeln(frida
10、y); 6:writeln(saturday) end end.8. 下列程序段计算1100中既不能被3整除,也不能被4整除的所有整数之积,请填写完全。 p:=1for i:1 to 100 d0 if (i mod 30) and (i mod 40) then_;9. 本程序是在3个整数中找出最大的数,并输出到屏幕上。分析下面的程序,填上适当的内容。 program exa(input,output); var a,b,c,largest:integer; begin writeln(input a,b,c=); readln(a,b,c); if ab then largest_; el
11、se largest_; if c_ then largest:c; write1n (the1 argest number is,largest) end.四、循环语句1. 设a=true,b=false,i=1,且c为布尔类型变量,则循环语句for c:=b to a do i:=i+2;执行后,变量i的值为_。2. 以下程序段计算150中既不能被3整除也不能被5整除的所有整数之积。请在空格内填入适当内容。 r:=1; for i:= 1 to 50 do if(i mod 30) and (i mod 50) then_;3. 以下程序段用以找出满足的最大整数n,其中a,b都是正整数,且
12、b1。请在空格内填上正确的内容。 readln(a,b); n:=0;mult:=1; while mult=a do begin n:=n+1; mult:=_ end; _ writeln(largestnis:,n:1)4. 以下程序实现从键盘读入10个无序数,去掉一个最大数和一个最小数然后求平均值,请在_处填入正确内容。 program countave(input,output); var i,max,min,x,sum:integer; ave:real; begin readln(x); max:=x;min:=x;sum:=x; for i:=1 to 9 do begin r
13、eadln(x); sum:=sum+x; if xmax then _ end; sum:sum-max-min; ave:=sum/8.0; writeln(the averageis:,ave:5:1) end.5. 下面语句执行的循环次数是_。 t:=7; repeat t:=2*t-3; until t0;6. 设ch为字符型变量,num为整型变量,若输入数据为:121 123执行以下程序段的结果为_。 num:=0; read(ch); while (ch=0) and (ch=9) do begin num:=10*num+(ord(ch)-ord(0); read(ch) en
14、d; writeln(num);7. 以下程序用以找出被2,3,5除余数为1的前10个自然数,请在_处填入正确内容。 program tennumber (output); var num,count:integer; begin count:=0;num:=_ repeat num:=_ if(num mod 2=1) and (num mod 3=1) and (num mod 5=1) then begin write(num:4); count:=count+1 end; until_ writeln end.8. 以下循环语句所执行的循环次数为_。 l1:=true;l2:=fals
15、e; for i:=l1 to l2 do writeln(i);9. 设有说明: var sum,n,m,i:integer; 若输入数据行为:4 1 3 2 6 3 9 5 则执行以下程序段的结果为_。 sum:=0; read(n); for i:=1 to n do begin read(m); if odd(m) then sum:=sum+1 else sum:=sum+m div 2; end; writeln(sum);10. 以下程序的运行结果为_。 program ex(output); var x,y:integer; begin x:=0;y:=1; repeat x:
16、=x+y; y:=y+1; until x=10; writeln (x:3,y:3) end.11. 以下程序段的执行结果为_。 for i:=7 downto 3 do case i div 2 of 1,3:write(a); 2:write(b) end;12. 以下程序的运行结果为_。 program ex(input,output); var x,y:integer; begin x:=1; while x0 do begin read(x);read(y); x:=x-y; write(x:2); end; writeln end. 运行时输入:210-15513. 下面程序的运
17、行结果是_。 program lcd(output); var m,n:integer; begin m:=14; n:=63; while mn do begin while mn do m:=m-n; while nm do n:=n-m; end; writeln(m); end.14. 以下程序段实现计算公式: 请在空白处填上正确的内容。 sum:=1.0 i:=1; repeat i:=i+1; sum:=sum+_ until_ writeln (sum=,sum:6:4)15. 以下程序的运行结果为_。 program ex (output); var x,k:integer;
18、begin x:=5; for k:=1 to 10 do x:=x+k; writeln(k:4,x:4) end.16. 下面pascal循环语句所执行的循环次数是_。 n:=1 repeat writeln(testing.); n:=n+2; untiln=10;17. 以下程序段用以找出乘积为399的两个相邻奇数,请在空白填上正确的内容。 n:=1; while_399 do n:=n+2; if_=399 then writeln(n:3,n+2:3) else writeln(nofound)18. 下面pascal循环语句所执行的循环次数是_。 x:=32; y:=2; whi
19、le y=32 do y=y+y;19. 若运行时输入以下指定数据,则程序的运行结果为_。 program ex(input,output); var num:integer; ch:char; begin repeat read(ch) until(ch); num:=0; repeat if(ch=0) and (ch=a) and (ch=0)and(ch=a)and(ch= f); writeln(num:5) end. 输入数据(第一列开始):1c20. 本程序是用来输入一组学生的成绩(当成绩为负表示输入结束),并按成绩059、6079、80100分为三档,统计并输出三档次人数及总人
20、数。阅读下面的程序,在空白处填上适当的内容。 program examl(input,output); var p,n1,n2,n3,sum,score:integer; begin n1:=0;n2:=0;n3:0; sum:=0; repeat writeln(please input score:); readln(score); if score=0 then begin if_80 then p:1 else if(2)_60 then p:2 else p:3; sum:sum1; case(3)_of 1:n1:n1+1; 2:n2:n2+1; 3:n3:n3+1 _end; _
21、 writeln(the score059:,n3); writeln(the score6079:,n2); writeln(the score80100:,nl); writeln(the sumis,sum) end.21. 下面程序执行后显示abab,请填空。 program p(output); var a:(r1,r2,r3,r4); begin a:=r1; while ar4 do begin case a of _:write(a); _:wr1te(b); end; a:=_ end; writeln end.22. 下面程序计算并输出下式中s的值。请填空完成该程序。 pr
22、ogram ex(input,output); var k,n:integer; s,r:real; begin s:=_; for k:=2 to 20 do begin r:=0; for n:=1 to(2)_do r:=r+ln(n); s:=s+(3)_; end; writeln(s:10:3) end23. 下列程序段计算1100中既不能被3整除,也不能被4整除的所有整数之 积。请填写完全。 p:=1; for i:=1 to 100 do if(i mod 30)and(i mod 40)then_; writeln (p)24. 从键盘输入两个数x1,x2,判断它们是否互质。
23、判断两数是否互质的方法是设大数为x1,小数为x2,如果x1x2为整数,则非互质;如果x2和x1能同时被2x22间任一整数整除,则x1和x2也非互质,其他情况均为互质。 program sj(input,output); var x1,x2,t,n,i:integer; yes:boolean; begin write(please input x1,x2:); readln(x1,x2); if_then begin t:=x1;x1:=x2;x2:=t end; yes:=true; if(xl mod x2)=0 then yes:=false else begin n:=x2 div 2
24、; for i:=2 to _do if_then yes:=false end; if_then writeln(they are mutual prime numbers)x1,x2互质 else writeln(they are not mutua1 prime numbers)x11,x2非互质 end.25. 有一个数列,其第1和第2个数都是大于0的一位整数,将这两个数相乘得乘积x,若x10,则x为数列的第3个数;若x=10,则把x的十位数作为数列的第3个数,x的个位数作为数列的第4个数,再把已形成的数列的最后两个数相乘,按上述规则构成后面的数,依此类推。例如若前两个数是6,3,则数
25、列为: 6,3,1,8,8,6,4,2,4,8,3,2,6,1,2,2,4,8,3,2,6. 下面的程序以6,3为前两个数,产生并输出此数列的前n个数(n由键盘输入)。请填空完成。 program p(input,output); var a,b,k,n,x:integer; begin readln(n); a:=6;b:=3;k:=2; write(a:3,b:3); repeat x:=a*b; if x=10 then begin a:=_; b:=_; k:=k+2; write(a:3); if_then write(b:3); else begin a:=b;b:=x;k:=k+
26、1; write(x:3); end until_ writeln end.26. 求具有下列两个性质的最小自然数n:(1)n的个位数是6;(2)如果将n的个位数字6移到其余各位数字之前,所得新数是n的4倍。 program ex (output); var n,m6,temp:integer; beginn:=6;temp:=0; while(temp4*n) and (nmaxint-10) do begin n:=n+10;m6:=6;temp:=n; while_do begin temp:=_; m6:=m6*10 end; temp:=m6+n div 10 end; if_ th
27、en writeln(thenumberis,n:1) else writeln(the number is too larger or noneexistent) end.27. 本程序用来找出3100之间的全部素数,每行输出5个素数。请分析下面的程序并填空。 program exa(input,output); var i,j,m,count:integer, begin count:0; for i:3 to 100 d0 if(i mod 2)_0then begin m:=1; for j:2 to trunc(sqrt(i) do if(i mod j)0 then m:=0; i
28、f m1 then begin count:count1; if(count mod 5)=0 then _(i:5) else _(i:5) end end end.五、枚举和子界1. 设有如下的类型定义和变量说明: type color=(red,yellow,blue,green,black,white,orange); var flag:color; 再执行语句:flag:=black; 表达式chr(ord(pred(flag)+ord(a)的值是_。2. 以下程序的运行结果为_。 program ex(output); type color=(red,white,blue,gree
29、n,purple,black); var flower,sky:color; begin if ord(succ(red)2 then begin flower:=red; if succ(blue)=green then sky:=blue else flower:=white end else begin sky:=white; flower:=pred(blzck) end; case sky of blue:writeln(blue); white:writeln(white) end case flower of red:writeln(red); white:writeln(whi
30、te); purple:writeln(purple) end end.3. 请将下面程序补充完整。 program weekdays(output); var wd:(sun,mon,tue,wed,thu,fri,sat); begin_ case_of sun:writeln(sunday); mon:writeln(monday); tue:writeln(tuesday); wed:writeln(wednesday); thu:writeln(thursday); fri:writeln(friday); sat:writeln(saturday) _ end.4. 设有如下的类型
31、定义和变量说明: type color=(red,yellow,blue,green,black,white,orange); var i:integer; flag:color; 并且 flag:=blue; 则语句for i:=ord(flag)to 5 do writeln(hello);将执行循环体_次。5. 由5个字符组成的标识符,规定其第14个字符为小写元音字母(a,e,i,o,u),第五个字符为09之间的数字字符。本程序是用来计算这样的标识符有多少种不同排法。请填空完成该程序。 program exam4(input,output); type ch:(a,e,i,o,u); n
32、um:0.9; var c1,c2,c3,c4,c5:_ n0,n9:num; count:integer; begin c5:=u n9:=9 count_ for c1:=a to c5 do for c2:a to c5 do for c3:a to c5 do for c4:a to c5 do for n0:0 to_ count_; writeln(count) end.六、数组1. 有如下程序 program lang(input,output); const c=pascal; var a:packed array1.6 of char; i:integer; begin a:
33、=c; for i:=3 to 6 do read(ai); writeln(a) end. 执行时输入fortran,输出结果为_。2. 设有type mat=array1.5,1.5 of real; var m:mat; 用以下过程求m矩阵的转置矩阵mt,请在空白内填入适当内容。 procedure transfor(m:mat;var mt :mat); var i,j:integer; begin for i:=1 to 10 do for j:=1 to 10 do mti,j:=_ end;3. 若运行时输入以下指定数据, 则程序的运行结果为_。 program ex (inpu
34、t,output); const n=6; type colarr=array 1.n of integer; var a:colarr;i,j,p,t:integer; begin for i:=1 to n do read(ai); readln; for j:=1 to n-1 do begin p:=j; for i:=j to n do if aiap then p:=i; t:=ap;ap:=aj;aj:=t; end; for i:=1 to n do begin write(ai:2); if (i mod 3 )=0 then writeln end; end. 输入数据:7
35、 2 5 1 9 44. 设有二维数组ar: 1 2 3 10 2 4 6 20 10 20 30 100 对该二维数组元素求和的程序段如下: sum:=0; for i:=1 to_10_do for j:=_1_to 10 do sum:=sum+_ai,j_; writeln(the result is:,_sum_ )5. 以下程序实现从终端按行读入一个4*4的二维数组,分别求出其主,次对角线上元素之和,其中变量sumz用从累加主对角线元素的和,sumc用以累加次对角线元素之和。请在空白处填入正确内容。 program ex(input,output); var a:array 1.4
36、,1.4 of integer; n,m,sumz,sumc:integer; begin for n:=1 to 4 do for m:=1 to 4 do readln(1)_); sumz:=0;sumc:=0; for n:=1 to 4 do begin sumz:=sumz+(2)_; m:=(3)_; sumc:=sumc+an,m end; writeln(sumz:3,sumc:3) end. 6. 若运行时输入以下指定数据, 则程序的运行结果为_。 program ex(input,output); var i,j,n,temp:integer; a:array1.100
37、of integer; flag:boolean; begin read(n); for i:=1 to n do read(ai); readln; flag:=true;i:=1 while(iaj+1 then begin temp:=aj; aj:=aj+1; aj+1:=temp; flag:=true end; i:=i+1 end; for i:=1 to n do write(ai:2); writeln end. 输入数据:6 1 7 2 3 6 7 7. 程序count用以统计一个句子中的词数,句子放在字符数组c中,长度不超过80,以.表示结束。要求打印出词数及每个词的长度
38、(字符个数),允许空语句。 例:语句为: this is a program. 输出为:word no.1 length=4 word no.2 length=2 word no.3 length=1 word no.4 length=7 number of words is 4 请在空白处填入正确内容。 program count (input,output); var c:packed array 1.80 of char; i,k,l:integer; begin write(input a string:); i:=0; while not eoln do begin i:=i+1;
39、read(ci); end; readln; k:=0;i:=1; while ci. do begin while ci= do i:=i+1; l:=0; while (ci ) and (ci.) do begin i:=i+1; (1)_l:=l+1_ end; if l0 then begin (2)_; writeln(word no.,k:2,length=,l:2) end end; if k0 then writeln(number of words is ,k:2) else writeln(no word in the statement) end.8. 下面程序用冒泡排
40、序法对有10个数据元素的数组进行排序,数据由键盘输入,并将排序后的结果输出。请将程序补充完整。 program ex(input,output); const n=10; type colarr=array1.n of integer; var a:colarr ; t,i,j:integer; begin writeln(input 10 integer num:); for i:=1 to n do read(ai); readln; for j:=1 to (1)_ do for i:=1 to (2)_ do if aiai+1 then begin _; end; writeln(o
41、utput :); for i:=1 to n do write(ai:40); writeln end.9. 若运行时输入以下指定数据, 则程序的运行结果为_。 program ex (input,output); type arr=array 1.8 of integer; var a:arr; i,n:integer; procedure select (var b:arr;var n:integer); var i,j:integer; begin i:=0; for j:=1 to n do if bj mod 2 =0 then begin i:=i+1; bi:=bj end; n:=1 end; begin n:=8; for i:=1 to n do read(ai); readln; select(a,n); for i:=1 to n do write(ai:3); writeln end. 输入数据:1 2 3 4 5 6 7 810. 下面是输入一字符行然后按相反顺序输出的程序,请将程序填写完整。 program reveseline(input,output); const maxlinelength=80; var line:array1.maxlinelength of char; count:0.maxlinel
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 政府公共关系(第二版)课件 第13章 政府公共关系危机管理
- 初中综合实践活动计划
- 《朝花夕拾》读后感作文10篇
- 商务工作计划3篇
- 2025年己二酸二甲酯合作协议书
- 2025年多功能水质现场监测仪项目合作计划书
- 2025年脱毛剂合作协议书
- 人教版初中化学总复习
- 吊车租赁合同范本
- 门市房租房协议
- “双主体”协同育人背景下职业院校康复人才培养模式进展的研究获奖科研报告
- 总公司与子公司管理授权明细表
- 人教版道法七年级教材解读讲座
- 2023年建筑继续教育考试:安全员继续教育真题模拟汇编(共830题)
- 催收服务公司招聘管理制度
- 军队文职人员招聘考试真题
- 外科科主任工作计划
- 人教部编版八年级语文上册名著导读《红星照耀中国》复习素材
- 【个人简历】大学生职业生涯规划书10篇
- 患者满意度调查分析
- YS/T 1149.2-2016锌精矿焙砂化学分析方法第2部分:酸溶锌量的测定Na2EDTA滴定法
评论
0/150
提交评论