PASCAL语法基础-答案.doc_第1页
PASCAL语法基础-答案.doc_第2页
PASCAL语法基础-答案.doc_第3页
PASCAL语法基础-答案.doc_第4页
PASCAL语法基础-答案.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Pascal语法基础习题第一题:下列哪些常量是对的,哪些是错误的,错在哪? Consta=30;b=a;b=a+1;c=true and falsed=2,3f,g=a;解:1.常量定义不可以出现字母的赋值,如:B=a;B=a+1;2.定义的数值只可以唯一。如 D=2,3则为非法。3.常量只可以一个一个定义。如F,g=3为非法,更不用说 F,g=a.第二题:下面的表达式,哪些是正确的,哪些是错误的;正确的请求出表达式的值,错误的指出其错误。(其中L为整型变量,R为实型变量)(1)round(L) and round(L+1)(2)round(L)round(L+1)(3)odd(L) or odd(L+1)(4)round(L/r) mod 5解:1.大家知道round()是取四舍五入的标准函数.odd()是判断奇偶数的函数。 2.and or not 只能连接布尔型常量true或false.并且得到布尔型常量。 而比较符如,或odd()函数等也可以得到布尔型常量.所以:1。错误 2。true 3。true 4。小于5大于等于0的整数第三题:将下列写成pascal语言的表达式。(1) Ma+b(2)tg2(x/2)/(a-x) a+3(3) - 4/(b+1)+c+d 解:这一题很简单,只要知道括号的运用一般就可以迎刃而解,并且要知道pascal中没有直接的次方函数。正切的函数为tan(),其它三角函数可以通过正切来转化。如sin,cos,ctg等。1。S:=1;for i:=1 to (a+b) do S:=S*M;M:=S;2。tan(x/2)*tan(x/2)/(a-x)3。(a+3)/(4/b+1)+c+d)第四题:完善下列程序:问题:给出半径R=100,高H=30,求圆周长、圆面积、圆柱全面积。源程序: program lx1(input,output); var (1):real; begin len:=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.1415926; r:=100;h:=30;第五题:编写一程序,当程序执行时,输入以秒为单位的时间,输出形式为:“小时:分:秒”解:这一题用到两个标准函数:mod和div,mod指取余,div指取整商。用puts表输入,用hours表小时,用minutes表分钟,用seconds表秒。程序如下: program name; var puts,hours,minutes,seconds:integer; begin read(puts); hours:=puts mod 3600; puts:=puts div 3600; minutes:=puts mod 60; seconds:=puts div 60; writeln(hours,:,minutes,:,seconds) end. 同学们可以看到puts是输入变量,也是临时变量,变了两次值,仔细想想是如何变化的。第六题:编写一程序,输入一个三位数的正整数,输出时反向输出。如:输入456,输出654。解:这一题如果学了数组很简单,没有的话就要用mod和div函数,请同学们在理解上一题的基础上看下面的程序。 program name; var three:integer; begin read(three); for i:=1 to 3 do begin write(three mod 10); three:=three div 10; end; end.本程序用到一个for循环,指循环执行三次。同学们想一想最后three的值是什么?对了!是0!第七题:编写一个程序,输入两个实数a,b,求a,b的乘积。(尤其当a,b两数比较大时,看一下输出结果。)解:这一题主要是范围问题。 program name; var a,b:real; begin read(a,b); write(a*b); end.虽然实数范围很大可达到10-38-10+38之间,但更大则会:Floating point overflow.第八题:下面程序或程序段的执行结果是什么?(1)program sumofpower(input,output); const n=4; var X,power,I,sum:integer; begin for X:=1 to n do begin power:=1; for I :=1 to x do Power:=power*x; sum:=sum+power; end; writeln(sum); end.(2)sum:=0.0 for counter:=7 downto 4 do case counter of 1,4,7:sum:=sum+1; 2,3,6:; 0,5:sum:sum+2; end; writeln(sum=,sum:5:2);解:首先,pascal语言的大小写一样。而且当一个数值变量规定以后,初始值为0,这就是为何程序中sum未赋值就用。(1)求出x的x次方,再累加.(2)题目没有写完,同学们自己加上.(2)的case语句的形式一定要住,在这一点上不要眼高手低.注意只有end没有begin,且要注意:的位置.case语句是指选择语句.即表达式的值若和冒号前相同则运行冒号后的语句.注意downto与to的不同.(1)288(2)sum=4.00第九题:编写一个程序,输出三个整数中最大的数.解:虽然此题可以用三个变量来比较并交换,但由于只需输出一个数,于是只要用一个动态变量来储存最大数即可.程序如下: program name; var i,max,temp:integer; begin max:=-maxint; for i:=1 to 3 do begin read(temp); if tempmax then max:=temp; end; end.注:maxint为保留字,是最小整数,同学们可以试一试它是多少.第十题:编写一个程序,输入三个数,按从大到小的顺序打印出来。解:由于题目指定三个数,所以题目就变得很简单。只要设三个变量就可以了,然后就比较大小。这个很简单,相信同学们一定会。同学们在学习的时候注意体会write()语句的表达方式。有时候 会很好用。程序如下: program name; var i,max,a,b,c:integer; begin read(a,b,c); for i:=1 to 3 do begin max:=-maxint; if a=max then max:=a; if b=max then max:=b; if c=max then max:=c; write(max, ); if a=max then a:=-maxint; if b=max then b:=-maxint; if c=max then c:=-maxint; end; end.同学们可以想一想,如果没有指明是几个数,不用数组怎么做?第十一题:输入一个不多于5位数的下整数,求出它是几位数,并打印出每位的数字.解:同学很容易就能想到要用mod和div函数,可见这两个函数运用率还是很高的,学到以后就知道,这一题非常重要,同学们一定要好好理解,并学会触类旁通.程序如下: program name; var readin,wei,i,j:integer; begin readln(readin); i:=10000; wei:=5; while (readin div i)=0 do begin wei:=wei-1; i:=round(i/10); end; writeln(wei); for j:=1 to wei do begin write(readin div i); readin:=readin mod i; i:=round(i/10) end.同学注意我用了一个round()函数.想想如果不要会出现什么结果?第十二题:五分币和二分币共有M枚,总金额为N分,写一个程序计算五分币和二分币各有多少枚?将结果输出。解:这一题不要想单纯用计算机语言来描述,不可能。这是一题解方程题。 x+y=M x=(N-2M)/3 | = | 5x+2y=N y=M-x程序如下: program name; var N,M,wu:integer; begin read(M,N); wu:=(N-2M)/3; write(wu, ,M-wu) end.第十三题:写一个程序找出3到1000之间的全部质数。解质数的方法有很多种,在这里介绍一种最简单也是繁的。注意这一题中判断是否为质数用了哪几个函数。程序如下: program name; var i,j:integer; judge:boolean; begin for i:=3 to 1000 do begin judge:=true; for j:=1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论