pascal练习题(附答)
- 格式:doc
- 大小:41.50 KB
- 文档页数:5
1、输入a,b两个变量的值,打印输出a+b的横式与竖式。
2、编写程序,任意输入一个三位正整数,然后倒序输出。
比如输入的是285 ,输出的就该是582。
3、请看图3-2,判断任意一点A(x,y)是否在圆环内。
如果在的值。
提示:首先推导出判别式为2<=x2+y2<=254、某服装店对售货员发放奖金的办法是:日营业额在1000元以下的,只能拿到基本工资,没有奖金;超过1000元的,奖金为超出部分的2%。
编写程序输入营业额,计算并输出奖金。
5、编写程序计算y的值。
Sqrt(a+b)+sin(a-b) a>0,b>0Y= 1 a=0,b=0a2+b2其他6、从键盘输入三个整数,输出最大数max和最小数min。
7、已知三角形的三条边长为a,b,c,求三角形面积。
提示:用海沦公式求三角形面积s=sqrt(p*(p-a)*(p-b)*(p-c)) p=(a+b+c)/28、输入年号、月份,输出该月的天数。
1、3、5、7、8、10、12月为31天,4、6、9、11月为30天,2月平年28天,润年29天。
润年判别式为:(y mod 4=0)and (y mod 100<>0) or (y mod 400=0)9、模拟一个有加、减、乘除运算的简单计算器。
当输入一个实型数,再输入一个运算符,再输入一个实型数后马上输出运算结果。
比如:输入3.5*4.0后程序运行结果应该是14.0。
10、求n!(即1*2*..*n),n由键盘输入。
11、求1-1/2+1/3-1/4…+1/99-1/100的值。
12、利用双重循环编写出打印出右边数字方阵的程序。
1 2 3 4 5 62 3 4 5 6 73 4 5 6 7 85 6 7 8 9 106 7 8 9 10 1113、写程序打印右图。
11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 5 6 5 4 3 2 114、编程打印出右图12 34 5 67 8 9 101112 13 14 1515、打印输入的n个整数中的最大、最小数及其序号。
pascal语言试题及答案1. Pascal语言的创始人是谁?- A. Dennis Ritchie- B. Bjarne Stroustrup- C. Niklaus Wirth- D. Guido van Rossum答案: C2. 以下哪个选项不是Pascal语言的特性?- A. 结构化编程- B. 强类型- C. 面向对象- D. 编译型语言答案: C3. Pascal语言中,用于声明变量的关键字是什么?- A. var- B. let- C. def- D. declare答案: A4. 在Pascal中,以下哪个运算符用于比较两个变量是否不相等? - A. =- B. <>- C. ==- D. !=答案: B5. Pascal语言中,以下哪个关键字用于定义函数?- A. function- B. procedure- C. define- D. method答案: A6. 在Pascal中,如何声明一个整型数组?- A. var arr: array[1..10] of integer;- B. var arr: integer[1..10];- C. var arr: integer array[1..10];- D. var arr: integer[10];答案: A7. Pascal语言中,以下哪个语句用于循环执行一段代码? - A. loop- B. repeat- C. while- D. for答案: D8. 在Pascal中,以下哪个关键字用于定义过程?- A. function- B. procedure- C. subroutine- D. method答案: B9. Pascal语言中,以下哪个运算符用于取模运算?- A. %- B. mod- C. div- D. rem答案: D10. 在Pascal中,以下哪个关键字用于定义一个记录类型? - A. record- B. struct- C. type- D. class答案: A。
第1题:完善下列程序:问题:给出半径R=100,高H=30,求圆周长、圆面积、圆柱全面积。
源程序:program lx1(input,output);var(1):real;beginlen:=2*pi*r;s:=(2);qs:=len*h+2*s;writeln('len=',len,'s=',sm,'qs=',qs);end.解:我们可以看到变量pi,r,s,qs,len,h均未定义。
则(1)为pi,r,s,qs,len,h由圆面积公式可以很容易得到(2):pi*r*r注:这一题题目有错,pi,r,h变量未定义。
同学们可以自行加上,但不可以不加。
如在begin下加pi:=3.;r:=100;h:=30;第2题:编写一程序,当程序执行时,输入以秒为单位的时间,输出形式为:“小时:分:秒”解:这一题用到两个标准函数:mod和div,mod指取余,div指取整商。
用puts表输入,用hours表小时,用minutes表分钟,用seconds表秒。
程序如下:program name;var puts,hours,minutes,seconds:integer;beginread(puts);hours:=puts mod 3600;puts:=puts div 3600;minutes:=puts mod 60;seconds:=puts div 60;writeln(hours,':',minutes,':',seconds)end.同学们可以看到puts是输入变量,也是临时变量,变了两次值,仔细想想是如何变化的。
第3题:编写一程序,输入一个三位数的正整数,输出时反向输出。
如:输入456,输出654。
解:这一题如果学了数组很简单,没有的话就要用mod和div函数,请同学们在理解上一题的基础上看下面的程序。
program name;var three:integer;beginread(three);for i:=1 to 3 dobeginwrite(three mod 10);three:=three div 10;end;end.本程序用到一个for循环,指循环执行三次。
一、单项选择题(共20题,每题1.5分,共计30分。
每题有且仅有一个正确答案。
)1.在以下各项中,()不是CPU的组成部分。
A.控制器B.运算器C.寄存器D.主板2.在关系数据库中,存放在数据库中的数据的逻辑结构以()为主。
A.二叉树B.多叉树C.哈希表D.二维表3.在下列各项中,只有()不是计算机存储容量的常用单位。
A.Byte B.KB C.UB D.TB4.ASCII码的含义是()。
A.二→十进制转换码B.美国信息交换标准代码C.数字的二进制编码D.计算机可处理字符的唯一编码5.一个完整的计算机系统应包括()。
A.系统硬件和系统软件B.硬件系统和软件系统C.主机和外部设备D.主机、键盘、显示器和辅助存储器6.IT的含义是()。
A.通信技术B.信息技术C.网络技术D.信息学7.LAN的含义是()。
A.因特网B.局域网C.广域网D.城域网8.冗余数据是指可以由其它数据导出的数据。
例如,数据库中已存放了学生的数学、语文和英语的三科成绩,如果还存放三科成绩的总分,则总分就可以看作冗余数据。
冗余数据往往会造成数据的不一致。
例如,上面4个数据如果都是输入的,由于操作错误使总分不等于三科成绩之和,就会产生矛盾。
下面关于冗余数据的说法中,正确的是()。
A.应该在数据库中消除一切冗余数据B.用高级语言编写的数据处理系统,通常比用关系数据库编写的系统更容易消除冗余数据C.为了提高查询效率,在数据库中可以保留一些冗余数据,但更新时要做相容性检验D.做相容性检验会降低效率,可以不理睬数据库中的冗余数据9.在下列各软件,不属于NOIP竞赛(复赛)推荐使用的语言环境有()。
A.gcc B.g++ C.Turbo C D.Free Pascal 10.以下断电后仍能保存数据的有()。
A.硬盘B.高速缓存C.显存D.RAM11.在下列关于计算机语言的说法中,正确的有()。
A.高级语言比汇编语言更高级,是因为它的程序的运行效率更高B.随着Pascal、C等高级语言的出现,机器语言和汇编语言已经退出了历史舞台C.高级语言比汇编语言程序更容易从一种计算机上移植到另一种计算机上D.C是一种面向对象的高级计算机语言12.近20年来,许多计算机专家都大力推崇递归算法,认为它是解决较复杂问题的强有力的工具。
小学复赛集训21.问题描述:某科技展教馆的团体入场费30人为50元,超过30人后,每增加1 人增加费用1元,为了使所有人平均后的每人费用不超过某个指定的费用m(1<m≤1.7)元,问最少以几个人入场为好?指定费用m用键盘输入。
例如:输入:m = 1.65输出:ZuishaoRenshu:31var i,j : longint; m,n : real;begin write('M = '); readln(m);i := 30; j := 50; n := 50/30;while n > m do begin i:=i+1;j:=j+1; n := j/i;end;writeln(i); readln;end.2.三位数345,3<4<5,称这个三位数为“迎春花”数,输出三位数中所有既是“迎春花”数又是质数的数,并统计个数。
(127、137、……、569,S=20)var x,a,b,c,s,y,h:integer;begin for x:=100 to 999 dobegin a:=x div 100;b:=x div 10 mod 10;c:=x mod 10;s:=0;for y:=1 to x doif x mod y=0 then s:=s+1;if (s=2) and (a<b) and (b<c) then begin write(x:4);h:=h+1 end;end; write('s=',h);end.3.所有的正整数均可以表示为一个、两个或者多个连续的正整数之和,给定一个不超过30000的正整数,求出它可以用几种不同的方法表示成连续正整数之和。
如给出9,则有三种方法:9,4+5,2+3+4。
(注:方法5+4与方法4+5视为是相同的)用键盘输入一个正整数n(1≤n≤30000),输出与之相应的不同方法种数。
输入输出样例:输入:n=9↙输出:3var s,n,i,j,c:integer;begin write('n=');readln(n);c:=0; for i:=1 to n dobegin s:=0;j:=i;while s<n do begin s:=s+j; j:=j+1; end;if s=n then c:=c+1;end; writeln(c);end.4.任意输入一个自然数X,输出它对应的汉语拼音。
小学复赛集训31.已知小球从100米高度自由下落,落地后反复弹起。
每次弹起的高度都是上一次高度的一半。
求小球第N次反弹起的高度和球在整个过程所经过的路程(包括下落和反弹),用键盘输入N,输出反弹高度和经过路程,结果保留两位小数。
输入输出示例:输入:5输出:3.13290.63var n,i:integer;s,h:real;begin readln(n); h:=100;s:=h;for i:=1 to n do beginh:=h/2; s:=s+2*hend; s:=s-h;writeln(h:0:2);writeln(s:0:2);end.2.输入自然数N和K,输出自然数N的从右边开始第K位上的数字值,如N=528946,K=3,则输出9,若输入N=1289,K=6,则输出0。
var n,k,d,f:longint;begin read(n,k);repeat f:=n mod 10;n:=n div 10; k:=k-1;until k=0; write(f);end.3. 四个老师分析四个学生的成绩,甲老师认为c学生得优,乙老师认为得优的是B学生,丙老师认为D学生不可能得优,丁老师认为甲老师的意见不正确。
考试结果,四个学生只有一个学生得优,而且只有一个老师说对了,判断哪个学生得优,哪个老师的意见正确。
Var I,a,b,c,d:integer;Begin for i:=1 to 4 do begina:=ord(i=3); b:=ord(i=2); c:=ord(i<>4); d:=ord(i<>3);if (a+b+c+d=1)and(a*b*c*d=0) then beginwriteln(chr(64+i),' xuesheng');if a=1 then writeln('jia laoshi');if b=1 then writeln('yi laoshi');if c=1 then writeln('bing laoshi');if d=1 then writeln('ding laoshi');end; end; readln;End.4. 把1-9这 9 个数字分为 4 个和 5 个两组,使组成的 4 位数与 5 位数之比是1∶2。
PASCAL题集1、给一个不多于三位的正整数,求出它是几位数,并分别打印出各位上的数字。
vara,b,c,d,e:integer;beginreadln(a);b:=a div 100;c:=(a div 10) mod 10;d:=a mod 10;if b<>0 then e:=3 else if c<>0 then e:=2 else e:=1;writeln(e);if (e=1) then writeln(d)else if (e=2) then writeln (c,' ',d)else writeln(b,' ',c,' ',d);end.2、编写程序求出下式中n的最大值2*2+4*4+6*6+''''''''''+n*n<1500var a,s:integer;begina:=0;s:=0;repeata:=a+2;s:=s+a*a;until s>=1500;writeln(a-2); readln;end.3、古印度国王要褒奖他的聪明能干的宰相达依尔(国际象棋的发明者),问他要什么.达依尔回答:“殿下只要在棋盘(横竖个8行8列,共64个格)的第一个格子中放1粒麦子,在第二个格子中放2粒,在第三格中放4粒,以后每个格子中放的麦粒数都是前一个的两倍.如此放满64格,我就满足了。
”请你计算出输入格数(麦粒数或体积)后的麦粒数和体积(格数和体积或格数和麦粒数)提示:1立方米麦子约为1.42乘以10的8次方varsum,t:double;i,j:longint;begint:=0;for i:=0 to 63 dobeginsum:=1/142000000;for j:=1 to i dosum:=sum*2;t:=t+sum;end;writeln(t:10:10);end. 答案:129906648406.4054、已知一对兔子,每个月可以生一对小兔,而小兔子过一个月后也可以生一对小兔,即兔子的对数是:第一个月1对,第二月2对,第三个月3对,第四个月5对,……假设兔子的生育期是12个月,并且不死, 问一年后,这对兔子有多少对活着的后代?program t0101;constn=12;vari,l,p,x:integer;beginp:=1;l:=2;for i:=3 to n dobeginx:=l+p;p:=l;l:=x;end;writeln('total:',x);readlnend. 答案:即数列1,2,3,5,8……,结果为233。
小猪上幼儿园的时候,报名参加了折纸兴趣小组。
他表现出了极大的热情,折出了n 件折纸作品。
他的作品只有3种,分别是长方形、正方形和三角形。
小猪很想知道他的n 件折纸的周长之和。
【输入】输入文件folding.in 的第一行只有一个整数n ,表示共有n 件作品。
接下来n 行,每行有若干个以空格分隔的整数,表示一件作品的情况。
其中第一个整数k (k=1或2或3),表示小猪制作的这件作品的类型,1表示长方形,2表示正方形,3表示三角形。
如果k 为1,后面会跟二个正整数a 和b ,表示长方形的二条相邻边的长度分别为a 和b ;如果k 为2,后面会跟一个正整数a ,表示正方形的四条边的长度均为a 。
如果k 为3,后面会跟三个正整数a 、b 和c ,表示三角形三条边的长度分别为a 、b 和c (输入数据保证a,b,c 能构成三角形,不需验证)。
【输出】输出文件folding.out 中仅有一行,该行只有一个整数,表示所有作品的周长之和。
【样例输入】31 2 32 43 6 7 8【样例输出】47【样例说明】 ab c 三边长度分别为a,b,c 的三角形,周长为a+b+c相邻边长度分别为a 和b 的长方形,周长为2a+2b b 形,周长为4a a a共有3件作品:第一件作品:二条相邻边长度分别为2和3的长方形;第二件作品:边长为4的正方形;第三件作品:三条边长度分别为6、7、8的三角形。
这3件作品的周长分别为10、16、21,它们的周长之和为47。
【数据规模】50%的数据,1≤n≤50,所有边长为不超过100正整数。
100%的数据,1≤n≤100000,所有边长为不超过100000的正整数。
var n,a,b,c,k,I,S:LONGint;begin read(n);for i:=1 to n dobegin read(k);case k of1:begin read(a,b);s:=s+2*(a+b); end;2:begin read(a);s:=s+4*a; end;3:begin read(a,b,c); s:=s+a+b+c;end;end;end;write('s=',s);end.输入62 503 100 130 1401 80 901 300 5003 500 600 7002 90S=4670输入101 9000 100002 500002 800003 8000 9000 100003 20000 30000 400001 35000 450003 3000 4000 50002 5000001 9000 95002 678900S=5599600数学家总是喜欢研究有关数字的一些奇怪的性质。
第一次初赛模拟卷Pascal(含答案)中山市第一中学2021年初一年级第一次模拟赛(初中组PASCAL语言,120分钟完成)◆◆请将正确答案在答题卷上填写,在本试题卷上答题无效◆◆一、选择题(每题只有一个选项符合题目要求,多选无效,1.5*20=30分)1、世界第一台电子计算机于()在美国研制成功,采用的主要逻辑元件是()。
A、1946 电子管B、1946 晶体管C、1947 电子管D、1946 超大规模集成电路 2、个人计算机的主机包括()。
A、运算器和显示器B、CPU和内存储器C、CPU和键盘D、UPS和内存储器3、当前微机中存储器访问速度正确的是()。
A、RAM > Cache > 硬盘 > 软盘B、Cache > 硬盘 > RAM > 软盘C、RAM > 硬盘> 软盘> CacheD、Cache > RAM > 硬盘 > 软盘 4、Windows应用程序之间可以方便地通过()交换数据。
A、邮箱B、文本区C、对话框D、剪贴板5、(2021)10 + (5B)16的结果是()。
A. (833)16B. (2089)10C. (4163)8D. (100001100011)2 6、下列计算机设备中,既是输入设备,又是输出设备的是( )。
A.键盘B.触摸屏C.扫描仪D.投影仪E.数字化仪7、常见的邮件传输服务器使用()协议接收邮件。
A.HTTP B.SMTP C.TCPD.FTPE.POP38、设A=true,B=false,C=true,D=false,以下逻辑运算表达式值为真的是()。
A. (A∧B)∨(C∧D∨?A)B. ((?A∧B)∨C)∧DC. (B∨C∨D)∧D∧AD. A∧(D∨C) ∨B 9、纯文本文件格式常用于保存()文件。
A、声音B、位图),B、工作中需要动态地改变访存地址 D、每次读出后需要刷新C、网页D、源程序10、动态 RAM 的特点是(A、工作中需要动态地改变存储单元内容 C、每隔一定时间需要刷新11、使用数据库的主要目的之一是为了解决数据的()问题。
问题1【问题】甲乙丙丁戊五个人在运动会上分获百米、二百米、跳高、跳远和铅球冠军,有四个人猜测比赛结果:A说:乙获铅球冠军,丁获跳高冠军。
B说:甲获百米冠军,戊获跳远冠军。
C说:丙获跳远冠军,丁获二百米冠军。
D说:乙获跳高冠军,戊获铅球冠军。
其中每个人都只说对一句,说错一句。
求五人各获哪项冠军。
【算法】用1,2,3,4,5分别代表百米、二百米、跳高、跳远和铅球5个项目,用a,b,c,d,e 分别代表五人。
如b=3 表示乙获跳高冠军。
用多重循环穷举出来。
【答案】甲乙丙丁戊12435【参考程序】var a,b,c,d,e:byte;beginfor a:=1 to 5 dofor b:=1 to 5 dofor c:=1 to 5 dofor d:=1 to 5 do begine:=15-a-b-c-d;if (ord(b=5)+ord(d=3)=1) and(ord(a=1)+ord(e=4)=1) and(ord(c=4)+ord(d=2)=1) and(ord(b=3)+ord(e=5)=1) and (a*b*c*d*e=120) thenwriteln('a:',a,'b:',b,'c:',c,'d:',d,'e:',e);end;end.问题2【问题】5家工厂的产品在一次评比中分获1,2,3,4,5,在公布结果前,已知E厂产品肯定不是第二、三名,五厂代表猜测评比结果,A厂的代表说:E厂一定能获得第一名。
B厂的代表说:我厂的产品可能获第二名。
C厂的代表说:A厂的产品质量最次。
D厂的代表说:C厂的产品不是最好的。
E厂的代表说:D厂的产品会获得第一名。
公布结果后,证明只有产品获第一名和第二名的两个厂的代表猜对了。
求5个厂产品各获第几名。
【答案】ABCDE52134【参考程序】var a,b,c,d,e:byte;beginfor a:=1 to 5 dofor b:=1 to 5 dofor c:=1 to 5 dofor d:=1 to 5 do begine:=15-a-b-c-d;if (e<>2) and (e<>3) and (a*b*c*d*e=120) thenif(ord(e=1)+ord(b=2)+ord(a=5)+ord(c<>1)+ ord(d=1)=2) and(ord((e=1) and ((a=1) or (a=2)))+ord((b=2) and ((b=1) or (b=2)))+ord((a=5) and ((c=1) or (c=2)))+ord((c<>1) and ((d=1) or (d=2)))+ord((d=1) and ((e=1) or (e=2)))=2) thenwriteln('a:',a,' b:',b,' c:',c,' d:',d,' e:',e); end;end.问题3逻辑判断\v谁是小偷\a问题3\a\v谁获冠军?\a问题1\a\v猜测产品质量评奖\a问题2\a问题3【问题】有A、B、C、D四名偷窃嫌疑犯,其中一人是小偷,审问中,A说:“我不是小偷”,B说:“C是小偷”,C说:“小偷肯定是D”,D说:“C在冤枉人”,有三人说真话,一人说假话,问到底谁是小偷?【参考程序】var thief:char;beginfor thief:='A' to 'D' doif ord(thief<>'A')+ord(thief='C')+ord(thief='D')+ord(thief<>'D')=3 then writeln('The Thief is : ',thief); end.问题4字母塔【问题】输出由字母组成的“字母塔”。
输出X-Y之间自然数的所有因子和(不包括自然数本身),并求出最大因子和及对应自然数。
如输入X=2 Y=100,则输出156 96.因为96的因子为 1 2 3 4 6 8 12 16 24 32 48,这些因子和为156,是2-100之间所有自然数中的最大因子和.输入输出样例:输入:30 500输出:1032 480var i,s,max,p,j,X,Y:LONGINT;begin max:=-9999;READ(X,Y)for i:=X to Y dobegin s:=0; for j:=1 to i-1 doif i mod j=0 then s:=s+j;write(i,' ',s,' ');if s>max then begin max:=s;p:=i end;end;write('max=',max,'p=',p);end.有一只坏的里程表:它总是跳过数字3和数字8。
也就是说,当前显示已走过两公里时,如果车子再向前走一公里,那么将显示4公里,而不是三公里(数字3跳过了)。
再比如,当前是15229公里,车子再向前走一公里,显示的是15240公里,而不是15230公里。
数字8也同样跳过现在,给你里程表上显示的数字,请你告诉我车子真正走了多少公里。
输入:15输出:12program yx;const alph='01245679';var n,m,w,g,t:longint;st:string;beginassign(input,'yx.in');assign(output,'yx.out');reset(input);rewrite(output);readln(n);m:=0;t:=1;while n<>0 dobeging:=n mod 10;n:=n div 10;str(g,st);w:=pos(st,alph)-1;m:=m+t*w;t:=t*8;end;writeln(m);close(input);close(output);end.输入27 输出22 输入1345 输出476 输入567894 输出154619将1,2,……n个数(n<=7)按顺时针方向排成一圈,然后从任意位置开始按顺时针方向连续取k个数字组成一个k位数。
用0、1、2、3、8、7六个数字可以组成各位数字之和能被自然数N整除而又没有重复数字的四位数有多少个,输出这些数和个数。
输入输出样例:输入:9↙输出:1278 1287 1728 …… 8721 8730 S=42输入:7↙输出:1238 1283 1328 …… 8312 8321 S=24var a,b,c,d,e,s,t,N:integer;begin S:=0;READ(N);for a:=1 to 8 dofor b:=0 to 8 dofor c:=0 to 8 dofor d:=0 to 8 doif (a<>4) and (a<>5) and (a<>6) and (b<>4) and (b<>5) and (b<>6)and (c<>4) and (c<>5) and (c<>6) and (d<>4) and (d<>5) and (d<>6)and ((a+B+C+D) mod N=0) and ((A*1000+B*100+C*10+D)>=1000) AND(a<>b) and (a<>c) and (a<>d)and (b<>c) and (b<>d) and (c<>d) then begins:=s+1;write(a*1000+b*100+c*10+d:6);end;write('s=',s);end.设有一个数列A1,A2,A3,……,AN……,其中A1,A2由键盘输入,从A3开始,通过下列的公式计算:AN-2 AN-1 AN偶数奇数2AN-2+AN-1奇数偶数AN-2+2AN-1偶数偶数AN-2+AN-1+1奇数奇数AN-2+AN-1如:A1=1,A2=2,则A3=1+2*2=5,A4=4+5=9,A5=5+9=14输入N和A1,A2,输出前N项。
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),odd函数是判断一个数是否为奇数,如odd(5)=true,语句L:=ODD(I) OR ODD(I+1);执行后L的值为___________。
3. 以下程序的运行结果为___________。
PROGRAMEX(OUTPUT);VARA,B,C,N,SUM:INTEGER;BEGINN:=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;BEGINREADLN(ch);writeln(pred(pred(ch)),pred(ch),ch,succ(ch) ,succ(succ(ch)))END.假设输入字母C,则输出为___________。
6. 表达式trunc(-sqrt(sqr(17 MOD 5)*2*(15 DIV 2)+sqr(1/2)))的值是__________。
一、熟悉Pascal的集成环境,了解主菜单的各项功能二、完成下面程序的输入、编译、运行、保存,并注意观察程序的运行结果1、程序代码如下:program exe1 (input ,output) ;varh , k : integer ;beginfor h := 1 to 8 do beginwrite( ' ': 20-h);for k := 1 to 2*h-1 do write(' * ');writeln;end;end.2、编程计算半径为R的圆的面积和周长程序代码如下:Program Exe2; {程序首部 }Const Pi=Var R,S,C: Real; {变量说明部分 }BeginWrite ('R='); {提示输入半径 }Readln(R); {输入半径值 }S:=Pi*R*R;{利用圆面积公式s=Πr2面积}C:=2*Pi*R;{利用圆周长公式c=2πr求周长}Writeln('S=',S); {输出结果 }Writeln('C=',C);Readln;{等待输入回车键}End.3、编程在屏幕上显示“Hello World!”。
程序代码如下:Program exe3;BeginWriteln( ‘ Hello World!’);Readln;End.4、下面是一道猜数的趣味程序,程序运行后,由计算机随机地产生一个100以内的整数,用户有十次猜数的机会,并且计算机会根据你猜的数给你相应的提示。
程序代码如下:program caishu (input ,output) ;varx,n,k :integer;beginrandomize;x:=random( 100) ;repeatwrite('Please input a number(0- 100) : ' ) ;readln( k) ;n:=n+l;if k=x then writeln( 'You are right ! ');if k>x then writeln( 'Too big. Please try again!' ) ;if k<x then writeln( 'Too small. Please try again!') ;until (k=x) or (n= 10) ;if ( n=10) and ( k<>x) then writeln( ' You are fail. The number is :' ,x) ;end.四、练习:工人每工作一小时可得工资80元,求工作130小时的工资。
pascal语言笔试题及答案pascal语言笔试题及答案一、单选题(每小题2分,共60分)1、在结构化程序设计中所说的程序的三种基本结构是指()。
a)主函数、函数、过程b)顺序、选择、循环c)程序首部、说明部分、语句部分 d) while、repeat、for2、以下各组运算中运算优先级最低的一组是()。
a) +,-,orb) *,/c) div, mod,andd) >=, in3、数学表达式sin(60o)的正确pascal表达式是 ()。
a) sin(60)b)sin(3.14159*60)c) sin(3.14159*60/180)d)sin(60*3.14159/360)4、下列表达式中正确的是()。
a) 8/2 mod 2b)not(1=0) and(32)c)\a\+2d) 2+false5、当n为任意正奇数时,值总为true的表达式是()。
a) n mod 2=0b) n div 2=1c)n-(n div 2)=1 d)n-trunc(n/2)*2=16、表达式pred(chr(ord(\a \)+4))的值是 ()。
a) \c \b)\d c)69d) 707、下列表达式值为5的是()。
a) pred(8 div2)b) abs(round(23/4))c) su(trunc(22/(26 mod7)))d) ((8 mod 5)*3+1) div 38、下面变量说明中错误的是()。
a) var s:set of char;b)var s:set of integer;c) var s:set of1..100;d) var s:setof(sun,mon,tue,wed,thu,fri,sat);9、不能作为for语句循环控制变量的是下列哪种类型变量()。
a) 整型b) 布尔型c) 实型d) 字符型10、至少被执行一次的循环语句是()。
a) for语句b) repeat-until语句c) while语句d) for、repeat-until和while语句11、下面关于for循环不正确的叙述是()。
Pascal练习一1. 工人每工作一小时可得工资80元,求工作130小时的工资。
进入Qpascal,并打入以下程序:1program Wages (input, output);2var h, r, w : integer;3begin4h := 130;5r := 80;6w := h * r;7writeln (w)8end.a)程序中三个变量代表甚么资料?b)将程序编译(Make-Compile)后,执行程序(Run-Go),写下屏幕所看到输出。
c) 如果将行7改为…Total wages = ‟,如下列所示:writeln ( …Total wages = ‟, w )将程序编译(Make-Compile)后,执行程序(Run-Go),写下屏幕所看到输出。
d)试在行6和行7之间加多两程序语句,使程序产生以下的输出。
Total working hours = 130Hourly rate = 80Total wages =10400writeln(…Total working hours= ‟, h);writeln(…Hourly rate= ‟, r);e)用有意义的变量名称,将(d)部份的程序重写。
将程序储存于A磁盘。
Pascal练习二1. 计算某学生在三次考试所得的平均分。
进入Qpascal,并打入以下程序:1 program AverageMark (input, output);2 var Exam1, Exam2, Exam3 : integer;3 begin4 Exam1 := 65;5 Exam2 := 80;6 Exam3 := 72;7 Average := (Exam1 + Exam2 + Exam3) / 3;8 writeln (… The average mark is ‟, Average)9 end.a) 程序中四个变量代表甚么资料?b) i) 执行程序时, 计算机显示器显示出一程序错误讯息, 这讯息是甚么?Unknown Identifier …Average‟ii)程序有甚么错误?在程序说明部分欠缺了变量…Average‟ 的宣告。
Pascal语言基础知识测验题第一套1、sqrt(4)的值为(2.0)(保留一位小数)。
2、’A’>’a’的值为(False)。
3、下列标识符哪个是合法的(A)。
A、X1B、a(c)C、varD、1234、下列程序段输出结果为(9)。
Var a,b,c:integer;Begin a:=5;b:=4; c:=a*a-b*b;writeln(c); End.5、下列程序段输出结果为(45)。
Var m,n:integer;Begin M:=0;For n:=2 to 3 Dom:=m+2; Write(m); End.第二套1、Pascal 语言中的赋值号为(:=)。
2、ord(37)的值为(37)。
3、用Pascal语言表达式表示X为偶数。
(odd)4、下列程序段输出结果为(40)。
Var A:integer;Begin A:=100;A:=A+20; A:=A Div 3;Writeln(A); End.5、下列程序段输出结果为(4)。
Var Y:integer;Begin Y:=2;While(Y<=32)DoY:=Y*Y; Writeln(Y); End.第三套1、Turbo Pascal7.0中,Integer类型的取值范围为(-32768)到32767。
2、已知chr(97)的值为字母a则chr(100)的值为字母(d)。
3、-15 mod 4的值为(-3)。
4、下列程序段输出结果为(-1)。
Var X,Y:integer;Begin X:=-100;If (X<0) Then Y:=-1 ElseY:=1; Writeln(Y); End.5、下列程序段输出结果为(200)。
Var X:integer;Begin X:=0;For I:=1 to 100 DoX:=X+2; Writeln(X); End.第四套1、odd(24)的值(False)。
2、16 Div 5的值为(3)。
2PASCAL 程序设计基础训练题2pascal程序设计基础训练题Pascal编程基础培训问题第1课(基本格式)1、已知圆的半径,求它的周长和面积。
参考答案:项目xxy001;康斯特pi:=3.14159;varr、 l,s:真的;开始write(‘r=?’);readln(r);l:=2*r*pi;s:=r*r*pi;写('l=',l:6:2);writeln('s=',s:=6:3);雷登;终止2、已知长方形的长和宽,求它的周长和面积。
参考答案:项目xxy002;变量a,b,l,s:integer;begin写('a,b=?');readln(a,b);l:=(a+b)*2;s:=a*b;writeln(‘l=’,l);writeln(‘s=’,s);readln;end.3.输入盒子的长度、宽度和高度,以计算其表面积和体积。
参考答案:programxxy003;vara、 b,h,s,v:整数;开始readln(a,b,h);s:=(a*b+b*h+h*a)*2;v:=a*b*h;writeln(‘s=’,s);writeln(‘v=’,v);readln;终止4、x,y,z的值分别为1,23,456,将它们按三行输出,分别用左对齐和右对齐方式显示。
123456123345参考答案:programxxy004;varx、 y,z:整数;beginx:=1;y:=23;z:=456;writeln(x);writeln(x);writeln(x);书面材料(x:78);书面材料(x:78);书面材料(x:78);雷登;终止5、输入a,b二个变量的值,分别打印出a与b加法的横式与竖式运算式子。
参考答案:样例:输入:45237输出:45+237=28245+237------282参考答案:programxxy005;vara、 b,da:整数;开始readln(a,b);da:=a+b;写(a,“+”,b,“=”,da);writeln(a:6);writeln(“+”,b:5);书面语('----');书面记录(da:6);雷登;终止说明:编程时,使用英文字母大写和小写作用是相同的。
1.从键盘上输入一个自然数,将它转换成24小时制表示时间。
如输入T=720,则输出7:20 am ,若输入T=1570,则输出16:10pm(因为后两位70大于60,进一位到小时),若输入数据有错,则显示“error”(如输入T=12034、或T= -2或T=3012等)。
输入输出样例:输入t=965输出10:5amvar t,t1,t2:integer;begin write('t=');read(t);if (t<1) or (t>9999) then write('error')elsebegin t1:=t div 100;t2:=t mod 100;if t2>60 then begin t2:=t2-60;t1:=t1+1 end;if (t1>24) then write('error') elsebeginwrite(t1,':',t2);if t1<=12 then write('am') else write('pm');end; end;end.2.编写一个乘法运算的程序。
从键盘输入两个99(包括99)以内的正整数,进行乘法运算,按竖式计算格式输出。
输入输出样例:输入:34 12↙输出:34×12----------6834----------408输入:89 7↙输出:89×7---------623var a,b:longint;begin readln(a,b); writeln(a:10);writeln(b:10); writeln('----------');if b div 10=0 then writeln(a*b:10);if b div 10<>0 then beginwriteln(b*(a mod 10):10);writeln(b*(a div 10):9);writeln('----------');writeln(b*a:10);end;end.3.小明得到一笔优秀学生奖学金N元(N为整数,1≤N≤500),到商店去买笔,笔的单价有6角、7角、8角和9角四种,如果小明准备将钱全部用于买笔,不流余钱,请编程帮助小明算出这N元最多可以买几支笔?最少可以买几支笔?如果不可能,则用0表示。
1.测定素数(check.pas/c/cpp)*
【描述】
输入n个数,测定他们是不是素数
【输入格式】
两行,第一行为n,第二行有n个数(Xi),数与数之间用空格分开。
(1≤N≤1000);(1≤Xi≤5000000)
【输出格式】
一行n个true或false,输出对应的数字是否是素数(TRUE和FALSE之间用空格隔开)
【输入样例】
5
99 88 1 2 3
【输出样例】
FALSE FALSE FALSE TRUE TRUE
2.校门外的树(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%的数据,区域之间没有重合的部分;
对于其它的数据,区域之间有重合的情况。
3.排队接水(water.pas/c/cpp)
【描述】
有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。
【输入格式】
输入文件共两行,第一行为n;第二行分别表示第1个人到第n个人每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格。
【输出格式】
一行
为最小平均等待时间(输出结果精确到小数点后两位)。
【样例输入】
10
56 12 1 99 1000 234 33 55 99 812
【样例输出】
532.00
提示:每人等待时间包括排队等待时间、自己打水时等待的时间。
4.统计人数(count.pas/c/cpp)*
【描述】
数学竞赛结束后,各个班主任老师都很迫切地想知道自己班级在全年段前N 名的人数。
于是,教务主任就请来信息学兴趣小组的同学来帮忙,要求编写一程序,只要告诉计算机要查的班级K班和名次前N 名,然后再输入M个学生的成绩,计算机就统计出K班在年段前N名中的人数。
(假设每个学生的总分各不相同)
【输入格式】
输入文件count.in共M+1行
第一行三个整数依次为M,K,N,分别表示全年段共有M个学生,要统计的是K班在全年段前N名的人数。
(M≤1000,K≤20,N≤M)
接下来M行是M个学生的班级和成绩,中间用一个空格隔开。
【输出格式】
输出文件count.out共一行,表示K 班在年段前N名中的人数。
【样例输入】
7 2 5
2 65
3 90
9 100
8 64
2 66
2 80
4 84
【样例输出】
2
//check.pas
const maxN=5000000;
var
a:Array[1..maxN] of boolean;//设定一个筛,根据题目要求设1~500w
n,i,j,x:longint;
begin
fillchar(a,sizeof(a),true); //全设为true
a[1]:=false; //1不是素数,直接标记为false
for i:=2 to trunc(sqrt(maxN)) do //因为每个数据大小不定,所以2~500w的素数都必须筛出来
if a[i] then
for j:=2 to maxN div i do
a[i*j]:=false;
assign(input,'check.in');reset(input);
assign(output,'check.out');rewrite(output);
readln(n);
for i:=1 to n do //有了判定的素数的表(数组),下面操作直接读入-》查表-》输出即可
begin
read(x);
write(a[x],' ');
end;
close(input);close(output);
end.
//tree.pas
var
i,j,L,m,s,e,t:integer;
a:array[0..10000] of boolean; //注意起点是0,所以数组下标从0开始
begin
assign(input,'tree.in');reset(input);
assign(output,'tree.out');rewrite(output);
readln(L,m);
for i:=0 to L do a[i]:=true; //首先定义这些树都在(0~L)
for i:=1 to m do
begin
readln(s,e);
for j:=s to e do a[j]:=false; //从s开始到e结束的都标记为false,即树被移走了end;
t:=0;
for i:=0 to L do
if a[i] then inc(t); //统计0~L之间有多少个true即可
writeln(t);
close(input);close(output);
end.
//water.pas
var
a:array[1..10000] of longint;
n,m,i,j,t,s:longint;
begin
assign(input,'water.in');reset(input);
assign(output,'water.out');rewrite(output);
readln(n);
for i:=1 to n do read(a[i]);
for i:=1 to n-1 do //把数据按从小到大排列,即接水时间少的先接水。
begin
m:=i;
for j:=i+1 to n do
if a[m]>a[j] then
m:=j;
t:=a[m];a[m]:=a[i];a[i]:=t;
end;
s:=0;
for i:=1 to n do
s:=s+a[i]*(n-i+1);
//注:第1个人接水,N个人都等了a[1]的时间,第2人接水有n-1人共等待了a[2]时间,那么第i个人接水时剩下的人(包括自己)一共等待了a[i]*(n-i+1)的时间。
writeln(s/n:0:2);
close(input);close(output);
end.
//count.pas
var
a,b:array[1..1000] of integer;
m,k,n,i,j,t,x,s:integer;
begin
assign(input,'count.in');reset(input);
assign(output,'count.out');rewrite(output);
readln(m,k,n);
for i:=1 to m do readln(a[i],b[i]); //设a[i]为班号,b[i]为成绩
for i:=1 to n do //因为只在前n人中统计,所以排序只要排n个即可(n≤m)
begin
x:=i;
for j:=i+1 to m do
if b[x]<b[j] then //从大到小排序
x:=j;
t:=b[x];b[x]:=b[i];b[i]:=t; //在交换成绩的同时要把班号也对应交换。
t:=a[x];a[x]:=a[i];a[i]:=t;
end;
s:=0;
for i:=1 to n do
if a[i]=k then //统计前n名种k班的人数
s:=s+1;
writeln(s);
close(input);close(output);
end.。