fortran课后习题的答案_第1页
fortran课后习题的答案_第2页
fortran课后习题的答案_第3页
fortran课后习题的答案_第4页
fortran课后习题的答案_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

第一章FORTRAN程序设计根基第15页1、2

1.简述程序设计的步骤。

“程序设计反映了利用计算机解决问题的全过程,通常要经过以下四个基本步骤:(1)分析问题,确定数

学模型或方法;(2)设计算法,画出流程图;(3)选择编程工具,编写程序;(4)调试程序,分析输出结果。

2.什么是算法它有何特征若何描述算法

解决问题的方法利步骤称为算法。

算法的五个特征:(1)有穷性。(2)期定性。(3)有效性。(4)要有数据输入。(5)要有结果输出。

算法的描述有许多方法,常用的有:自然语言、一般流程图、N—S图等。

第二章顺序构造程序设计

第29页1、2、3、4、5、6、7、8、9

1.简述符号常量与变量的区别

符号常量在程序运行过程中其值不能改变。变量在程序运行过程中其值可以改变。

2.以下符号中为合法的FORTRAN90标识符的有哪些?

(1)A123B(2)M%10(3)X_C2(4)5YZ

(5)X+Y(6)F(X)(7)COS(X)(8)A.2

(9)'A,ONE(10)U.S.S.R.

(11)min*2(12)PRINT

3.以下数据中哪一些是合法的FORTRAN常量

(1)9,87(2).0⑶25.82(4)-356231

(5)3.57*E2(6)3.57E2.1(7)3.57E+2脚3,57E-2

4.A=2,B=3,C=5(REAL);且1=2,J=3(NTEGER),求以下表达式的值:

(1)A*B+C表达式的值:11(2)A*(B+C)表达式的值:16

(3)B/C*A表达式的值:1.2(4)B/(C*A)表达式的值:0.3

(5)A/I/J表达式的值:0.33(6)T/J/A表达式的值:0

(7)A*B**I/A**J*2表达式的值:4.5

(8)C+(B/A)**3/B*2.表达式的值:7.25

(9)A**B**I表达式的值:512

5.将以下数学表达式写成相应的FORTRAN表达式:

(1)1E-2(2)(-B+SQRT(B*B-4*A*C)/(2*A)

(3)l+X+X*X/2+X**3/2/3

(4)COS(ATAN((A**3+B**3)**(1.0/3)/'(C*C+1)))

(5)EXP(A*X**2+B*X+C)

(6)COS(X*Y/SQRT(X*X+Y*Y))**3

6.用FORTRAN语句完成以下操作:

⑴将变量I的值增加1。1=1+1

(2)I的立方加上J,并将结果保存到I中。I=I**3+J

(3)将E和F中大者存储到G中。G=Max(E,F)

(4)将两位自然数N的个位与十位互换,得到一个新的数存储到M中(不考虑个位为0的情况)

M=MOD(N,10)*10+N/10

第三章选择构造程序设计第43页1、2、3、5、6、7、9

1.分析以下程序运行结果

(1)

LOGICALP

INTEGERI,11,12,13

P=.FALSE.

READ*,I

T1=MOD(T,10)

I2=M0D(I/10,10)

13=1/100

IF(I1+I3.EQ.2*12)P=TRUE.

PRINT*,P

END

输入123时,输出:T

输入132时,输出:F

(2)

REALX,Y,Z

READ*,X,Y

IF((X*Y)>0.AND.(X.NE.1.0))THEN

Z=10.0

ELSEIF(X*Y<0.0)THEN

Z=0.0

ELSE

Z=-1.0

ENDIF

WRITE(*,*)Z

E

ND

出-Lo

输•1o

•o.

输入1,-4,输出:0.0

(3)

INTEGERX,Y,A,B

X=1

Y=0

A=3

B二4

SELECTCASE(X)

CASE(l)

SELECTCASE(Y)

CASE(O)

A=A+1

CASE(l)

B=B+1

ENDSELECT

CASE(2)

A=A+1

B=B-1

CASEDEFAULT

A=A+B

B=A+B

ENDSELECT

PRINT*,=〃,A,〃B=〃,B

END

输出结果是:A=4B=4

2.将以下数学运算转换成对应的FORTRAN表达式或写出语句。

(1)xe(3,6)FORTRAN表达式:x>0.AND.x<6

(2)2.5<yW8FORTRAN表达式:y>=2.5.AND.y<=8

(3)x+y#z+6FORTRAN表达式:(x+y)/=(z+6)

(4)2x+4y+xy=0FORTRAN表达式:2*x+4*y+x*y=0

(5)|a-blWc'FORTRAN表达式:ABS(a-b)〈=c*c

(6)如果A<y或x<z,那么niin=x

FORTRAN语句:IF(x<y.OR.x<z)min=x

(7)实数a,b,c能否构成三角形三边

FORTRAN表达式:a>0.AND.b>0.AND.c>0.AND.(a+b)>c.AND.(b+c)>a.AND.(c+a)>b

(8)a,b之一为0但不同时为0

FORTRAN表达式:(a==0.OR.b==0).AND.(.NOT.(a==0.AND.b==0))

(9)如果m与n相等,那么k为1,否那么k为0

FORTRAN语句:

IF(m=n)THEN

k=l

ELSE

k=0

ENDIE

(10)a,b是否一样号

FORTRAN表达式:a*b>0

3.如果A=2.5,B=7.5,C=5.0,D=6.0,L=.TRUE.,M=FALSE.,请求出以下逻辑表达式的值。

/\

(1)

\/(A+B).LT.(C+D).AND.A.EQ.3.5逻辑表达式的值:.FALSE.

\

2)

zA+B/2.0.NE.C-D.OR.C.NE.D逻转表达式的值:.TRUE.

z\

(3J

\/.NOT.L.OR.C.EQ.D.AND.M逻辑表达式的值:.FALSE.

/\

(4J

\ZC/2.0+D.LT.A.AND..NOT..TRUE..OR.C.EQ.D逻辑表达式的值:.FALSE.

z5\

()

\z(C.GT.D).OR.C.NOT.(A+B.LT.D)该表达式错误

z\

(6J

\/(A.LT.B).AND.(B.LT.A)逻辑表达式的值:.FALSE.

5、某运输公司在计算运费时,按照运愉距离S对运费打一定的折扣D,其标准如下:

S<250kmD=0

250^S<500kmD=2.5%

500^S<1000kmDM.5%

1000^S<2000kmD=7.5%

2000^S<2500kmD=9.0%

2500^S<3000kmD=12.0%

3000km^SD=15.0%

编写程序,输入基本运费Price,货物重量Weight,距离S,计算总运费Freighto其中

Freight=Price*Weight*S*(1-D)。

REALPrice,Weight,S,Freight,D

READ*,Price,Weight,S

IF(S<250)THEN

D=0

ELSEIF(S<500)THEN

D=0.025

ELSEIF(S<1000)THEN

DR.045

ELSEIF(S<2000)THEN

D=0.075

ELSEIF(S<2500)THEN

D=0.09

ELSEIF(S<3000)THEN

(3)k=6

(4)145

(5)5167

P.652.利用下式计算兀的近似值。

IMPLICITNONE

REALPI

INTEGERI

pro

DO1=1,N

PFPI+1.0/(4*1-3)-1.0/(4*I-l)

ENDDO

PRINT*,PIM

END

P66习题5

IMPLICITNONE

INTEGERN,S,M,I

LOGICALFLAG

DON=3,999,2

FLAG=.TRUE.

M=SQRT(REAL(N))

DO1=2,M

IF(MOD(N,1)=0)THEN

FLAG=.FALSE.

EXIT

ENDIF

ENDDO

IF(FLAG)THEN

S=N/100+M0D(N/10,10)+M0D(N,10)

IF(MOD(S,2)/=0)PRINT*,N

ENDIF

ENDDO

END

P.66习题11

REALYO,Y1

READ(*,*)X

YO二X

Yl=2*Y0/3+X/(3*Y0**2)

DOWHILE(ABS(Yl-YO)>lE-5)

YO=Y1

Yl=2*Y0/3+X/(3*Y0**2)

ENDDO

PRINT*,Y1

END

P.66习题12

Reala,b,m,x

f(x)=x**3-x**2T

Read*,a,b

Dowhile(Abs(a-b)>le-6)

m=(a+b)/2

If(f(a)*f(m)>0)then

a=m

Else

b=m

Endif

Enddo

Print*,(a+h)/2

END

第五章FORTRAN90数据类型第88页4、10

4.有一个三角形,顶点为X,Y,Z,其坐标分别为(1.5,2.0),(4.5,4.5),(18.0,10.5)。求三角形的面积和重心(提示:

重心坐标=1X+Y+Z)/3利用复数计算)。

COMPLEXX,Y,Z,W

REALA,B,C,S,P

READC,*)X,Y,Z

A=ABS(X-Y)

B=ABS(Y-Z)

C=ABS(Z-X)

P=(A+B+C)/2

S=SQRT(P*(P-A)*(P-B)*(P-C))

W=(X+Y+Z)/3

WRITE(*,*)S

WRITE(*,*)W

END

10.设有4个圆,圆心分别在(2,2),(-2,・2),(2,-2),(・2,2),半径为1°当X,Y坐标点落在圆上和圆内时,Z=l;落在圆

外时,Z=l;落在圆外时,Z=0o编出相应的的程序(要求利用逻辑变量)。

IMPLICITNONE

LOGICALP,Q,R,S

REALX,Y

INTEGERZ

READ*,X,Y

Z=0

P=(X-2)**2+(Y-2)**2<=l

Q=(X+2)**2+(Y+2)**2<=l

R=(X-2)**2+(Y+2)**2<=l

S=(X+2)**2+(Y-2)**2〈=l

IF(P.OR.Q.OR.R.OR.S)Z=1

PRINT*,Z

END

第七章数组第124页1、3、4、7、9、12

1.写出以下程序的执行结果

(1)

5.0

5.0

5.0

5.0

4.0

(2)K=5

(3)

123

456

789

101112

14710

25811

36912

(4)S=15.00

3.将一个数组的元素按逆序重新存放,例如,原来存放顺序为:8,6,5,4,1。要求改为:1,4,5,6,8。

IMPLICITNONE

INTEGER,PARAMETER::N=5

INTEGERA(N),I,T

DATAA/8,6,5,4,1/

WRITER,10)(A(I),1=1,5)

DO1=1,N/2

T二A⑴

A(I)=A(N-I+1)

A(N-I+1)=T

ENDDO

WRITE(*,10)(A(I),1=1,5)

10FORMAT(IX,514)

END

4.求数组中的最大和最小元素,并将最大和最小元素分别与数组的第一和第二元素互换。

IMPLICITNONE

INTEGERX(10),I,T,MA

!变量MA存放最大数下标序号

X=(/10,55,25,70,45,15,25,85,45,35/)

WRITE(*,10)(X(I),1=1,10)

MA=1

DO1=2,10

IF(X(I)>X(MA))MA=I

ENDDO

T二X⑴

X(1)=X(MA)

X(MA)=T

WRITER,10)(X(I),1=1,10)

10FORMAT(IX,1014)

END

7.求3X4矩阵中的最大元素和最小元素。

REALA(3,4),AMAX,AMIN

INTEGERI,J

DO1=1,3

READ(刊*)(A(I,J),J=l,4)

ENDDO

AMAX=A(1,1)

AMIN=A(1,1)

DO1=1,3

DOJ=l,4

IF(A(I,J)>AMAX)AMAX=A(I,J)

IF(A(I,J)<AMIN)AMIN=A(I,J)

ENDDO

ENDDO

WRITER,*)”最大值:〃,AMAX

WRITE(*,*)”最小值:〃,AMIN

END

9.输入5X5矩阵a,完成以下要求:

(1)输出矩阵a。

(2)将第2行和第5行元素对调后,输出新的矩阵a。

(3)用对角线上的各元素分别去除各元素所在行,输出新的矩阵a。

PARAMETER(N=5)

INTEGERA(N,N),I,J,T

DO1=1,N

READ(次*)(A(I,J),J=1,5)

ENDDO

DO1=1,N

WRITE(*,10)(A(I,J),J=1,N)

ENDDO

DO1=1,N

T二A⑵D

A(2,I)=A(5,J)

A⑸J)二T

ENDDO

DO1=1,N

WRITER,10)(A(I,J),J=1,N)

ENDDO

DO1=1,N

DOJ=1,N

A(T,J)=A(T,J)/A(T,T)

ENDDO

ENDDO

DO1=1,N

WRITE(*,10)(A(I,J),J=1,N)

ENDDO

10FORMAT(IX,515)

END

12.按以下格式打印出杨辉三角形的前N行。

1

11

121

1331

14641

15101051

PARAMETER(N=10)

INTEGERA(N,N),I,J

DO1=1,N

1)=1

A(I,

I)=1

A(I,

O

ENDD

N

=3,

DO1

1

=2,1-

DOJ

J-l)

I-1,

)+A(

-1,J

)=A(I

A(I,J

O

ENDD

O

ENDD

N

=1,

DO1

I)

J=1,

J),

A(I,

10)(

ER,

WRIT

O

ENDD

)

1015

(IX,

RMAT

10FO

END

13

12、

、8、

1、6

3页

第17

子程序

第八章

义:

数定

句函

的语

错误

以下

1.指出正确

+A-B

+Y+2

Y)=X

(X,

(1)F错误

)*Z

(2)+Z

+(X

=3*Y

Y,Z)

(2),

UM(X

(2)S错误

)

IN(A

+C-S

-Y+X

X**2

,X)=

(X,Y

(3)F错误

Y(I)

)-A*

(Z+l

=EXP

Y(I)

2(Z,

(4)X正确

~X*Y

)**2

(B-C

*X+

)=A

,B,C

AN(A

(5)L

:

式是

算公

。计

计算

停顿

E8时

n!〉l

值。当

近似

数。的

计算

程序

该子

调用

,并

程序

数子

的函

算n!

个计

计一

6.设

)

JC(N

TION

FUNC

JC=1

=1,N

DOT

C*I

JC=J

O

ENDD

END

EX6

RAM

PROG

,T

*8E

REAL

E=0

0

T=1.

1=0

lE-8)

(T>

HILE

DOW

T

E=E+

1=1+1

(I)

0/JC

T=1.

DO

END

*,E

PRINT

END

10),

温馨提示

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

评论

0/150

提交评论