FORTRAN习题答案.docx

上传人:b****6 文档编号:8015244 上传时间:2023-01-28 格式:DOCX 页数:18 大小:41.20KB
下载 相关 举报
FORTRAN习题答案.docx_第1页
第1页 / 共18页
FORTRAN习题答案.docx_第2页
第2页 / 共18页
FORTRAN习题答案.docx_第3页
第3页 / 共18页
FORTRAN习题答案.docx_第4页
第4页 / 共18页
FORTRAN习题答案.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

FORTRAN习题答案.docx

《FORTRAN习题答案.docx》由会员分享,可在线阅读,更多相关《FORTRAN习题答案.docx(18页珍藏版)》请在冰豆网上搜索。

FORTRAN习题答案.docx

FORTRAN习题答案

习题二

一、问答题

1.给出下面变量名称,哪些是合法变量?

哪些是非法变量?

说明原因。

Count、num_2、x&y、4x+5y、china-suzhou、$us、AbCdE、Mr.bai、t5、

_another、school_class_25、#125、2002Y、π、β、A01/02、alpha、date

(1)

1.判定下面整数,指出哪些是合法整数,哪些是非法整数?

说明原因。

-0、+215、$125、3,245,895、5.3245、5#384、-524_3、#5DFE、

23-345、16#1A2B、38#ABCD、8#275_2、+327890、4#321

2.判定下面实数,指出哪些是合法实数,哪些是非法实数?

说明原因。

-0E2、45.2345E3.5、-5489E25_8、-.2345E-35、$185.45E、+2.753425E24_3、

58D85、+0.E-0、-00000.001E5、5,443,223.44、-1234E+2、+18.5E18、2.5E42

习题三

一、选择题

1.下面是VisualFortran中正确的表达式是。

(A)A*COS(X)+∣B∣(B)2*EXP(2*X)/SQRT(16.0)

(C)B2-4AC(D)MOD(24.5,0.5)

2.下面算术赋值语句中正确的语句是。

(A)M*N=(X-Y)/Z(B)+R=A+B/C

(C)X=Y=Z-1.0(D)Y=A*B/C/D

3.算术表达式1/3+2/3的值为。

(A)0(B)1(C)0.99999999(D)值不确定

二、问答题

1.将下列代数式用VisualFortran表达式描述:

①②

③4sin3A-3sinA+sin3A④

2.执行下列赋值语句后,变量中的值。

变量的类型遵循I—N规则。

设I=6,K=2,N=-3,T=7.5,Y=1.5

①L=T/Y/2.02②M=I/K*Y+1.56

③Z=I*K+Y13.5④A=I**K/N+T/Y-7.0

习题四

一、运行程序题

1.判断下列输入输出语句是否正确?

(1)PRINT*,´X=´,X,´X*Y**2=´,X*Y**2

(2)WRITE(*,*)A,B,NO,´Y=´,Y

(3)READ*,N,M,5.0K

(4)WRITE(*,22)A,B,I,K,C

22FORMAT(4X,2F5.0,2I5)

(5)WRITE(8,33),X,Y,M,Z,N,

33FORMAT(4X,2F5.02I5)

(6)READ(*,44)NF,G,H,I,J

44FORMAT(4X,I5,2(F6.2,I5))

2.已知整型变量i、j、k、l、m、n,执行下面表控输入语句:

READ*,i,j

READ*,k,l,m

READ*,n

按以下格式输入8个数据:

25

2650455743

2728

输入语句执行后,每个变量取何值?

i=25、j=26、k=27、l=28、m=0、n=0

3.写出输出结果,设I=56,J=1274,K=5126

WRITE(*,100)I,J,K

(1)100FORMAT(1X,I4)

(2)100FORMAT(1X,2I5)

561274

5126

(3)100FORMAT(1X,2(I5,2X)/)

561274

5126

4.写出输出结果,设I=512,J=612,A=18.34,B=-21.4,C=112.463,D=-2174.573

WRITE(*,100)I,J,A,B,C,D

(1)100FORMAT(1X,I5,2X,2(F10.2,2X),F12.1)

5120.00E+0018.34-2.14

112.46-2174.57

(2)100FORMAT(3X,2(I4,2X),2(F10.2,2X),´NEW´)

5120.00E+0018.34-2.14NEW

112.46-2174.57NEW

5.有读入语句:

READ(*,100)I,J,B

设输入的值为:

I=63,A=76.5,J=122,B=156.783。

如用下面的FORMAT语句应如何输入数据。

(1)100FORMAT(I4,F6.2,I5,F8.2)

(2)100FORMAT(I4,2X,F6.2,I5,F8.2)

(3)100FORMAT(1X,2(I4,2X,F10.2))

(4)100FORMAT(I4,F6.2/I5,F8.2)

(5)100FORMAT(I4/F6.2/I5/F8.2)

(6)100FORMAT(I5,F8.1)

6.IMPLICITNONE

INTEGER:

:

I,J,K

READ*,I,J

K=I/J

PRINT*,’K=’,K

END

当输入9,2时,输出结果为K=4。

7.IMPLICITNONE

REAL:

:

I,J,K

READ(*,*)I,J

K=I/J

WRITE(*,*)’K=’,K

END

当输入9,2时,输出结果为K=4.500000。

8.下面是一些非法的输入输出语句和格式说明语句。

说明其非法原因。

READ*i,j,k

READ10i,j,k

READ*,‘i=’,i,‘j=’,j

READ(*,10)i,j,125

READ(*,‘(“i=”,I3,“j=”,I3)’)i,j

READ(‘(I3,I3)’,*)i,j

10FORMAT(1X,I3,:

I3,:

I3)

PRINT*i,j,k

PRINT10i,j,k

WRITE*,‘i=’,i,‘j=’,j

WRITE(20,*)i,j,125

PRINT(*,‘(“i=”,I3,“j=”,I3)’)i,j

WRITE(‘(I3,I3)’,*)i,j

20FORMAT(1X,I3,I3I3)

9.给定下面READ和FORMAT语句:

READ100,i,j,k,m,n

100FORMAT(I2,I3,2X,I2,1X,I4.1,I3)

执行READ语句,输入以下5组数据:

12345678901234567890↙

13224356576878↙

12,3437,23455↙

1232;45A1893215↙

123;324;445;555;777↙

READ语句执行后,每组i,j,k,m,n的值分别是多少?

10.给定下面READ和FORMAT语句:

READ100,a,b,c

100FORMAT(F5.2,F5.1,E8.3)

执行READ语句,输入以下5组数据:

12345678901234567890↙

123,456789012,345890↙

132243565E+28↙

123E2343723455↙

1.23245.E3.1893215↙

READ语句执行后,每组a,b,c的值分别是多少?

11.已知:

i=25,j=-125,k=-4725,m=-31500,a=48.57,x=-1.5E+11,y=158.895E-11。

给定输出语句:

WRITE(*,100)i,a,j,b,k,m,x,y

对下面不同的FORMAT语句,写出输出结果:

①100FORMAT(1X,I3,1X,F5.2,1X,I4,1X,F9.2,I5,I6,E12.3,E12.3E3)

②100FORMAT(3X,I4,1X,F9.2,1X,I4,1X,F9.2,2I5,2E12.3)

③100FORMAT(‘i=’,I3,‘a=’,F5.2,‘j=’,I4,‘b=’,F9.2,‘k=’,I5,‘m=’,I6,

‘x=’,E12.3,‘y=’,E12.3E3)

④100FORMAT(2(2X,I4,2X,F9.2),2I5,2E12.3)

⑤100FORMAT(1X,I3,1X,F5.2/1X,I4,1X,F9.2/I5,I6,E12.3,E12.3E3)

12.已知:

i=315,j=512,a=43.57,b=-15.9,c=123.456,d=-5231.573。

给定输出语句:

WRITE(*,100)i,j,a,b,c,d

对下面不同的FORMAT语句,写出输出结果:

①100FORMAT(1X,I4,2X,I5,2X,2(F7.2,2X),F10.1)

②100FORMAT(1X,2(I4,2X),2(F7.2,2X),‘OLD’)

13.给定下面程序:

READ10,i,j,k,m,n

10FORMAT(1X,I3,T5,I3,I4,TL8,I2,TR5,I3)

PRINT*,i,j,k,m,n

END

程序执行时,输入数据:

1234567890987654321↙

程序执行后,变量i,j,k,m,n的值是什么?

二、填空题

下面程序是求任意两个整型数M、N的和,要求输出形式为:

M+N=和,如M=3,N=8,则输出形式为:

M+N=11。

请填空。

IMPLICITNONE

INTEGER:

:

M,N,S

READ*,M,N

S=M+N

PRINT*,‘M+N=’,S

END

习题五

一、选择题

1、已知:

A=4.9,B=5.5,C=8.0,L=.FALSE.,则其值为’假’的表达式是。

A)A

B)L.OR.A

C)13>C.EQV..NOT.L

D)L.EQV.A

2、以下不合法的VisualFortran表达式是。

A)A

B).NOT.(X<0.0)

C)A>=B.EQV.C>D

D)A.AND.B.AND.C

3、以下能表示条件“X、Y中至少有一个大于0且小于等于10”的逻辑表达式是。

A)(0

B)(0

C)(0

D)0<(X.OR.Y)<=10

4、以下能表示条件“X、Y中至少有一个大于等于10或小于5”的逻辑表达式是。

A).NOT.(X>=10.OR.X<5).OR.Y>=10.OR.Y<5

B)(X>=10.OR.X<5).OR.(Y>=10.OR.Y<5)

C)(X.OR.Y)>=10.0R.(X.OR.Y)<5

D)(X>=10.AND.X<5).AND.(Y>=10.AND.Y<5)

5、以下正确的逻辑表达式是。

(其中A,B,C,D,X均是数值型变量)

A)(A+B).AND.C

B)(A+B)==C

C)A<=B.AND.C>=X

D)(A+B)>CAND(C+D)<0

6、要实现“当X>Y时,Z=X+Y,否则Z=X-Y”。

以下能完成该功能的程序段是。

A)IF(X>Y)Z=X+Y

ELSEZ=X-Y

B)IF(X>Y)THENZ=X+Y

Z=X-Y

C)Z=X-Y

IF(X>Y)Z=X+Y

D)IF(X>Y)

Z=X+Y

ELSE

Z=X-Y

ENDIF

7、下面程序段中有错误的语句是。

A)IFA>BTHEN

B)A=B

C)ELSE

B=A

D)ENDIF

8、下面程序段中有错误的语句是。

A)IF(A.GT.B)THEN

B)A=B

C)ELSEB=A

D)ENDIF

9、下面程序段中有错误的语句是。

READ*,X

A)IF(X<0.0)THEN

Y=1.0

B)ELSEIF(X<=10.0)THEN

Y=2.0

C)ELSE

Y=3.0

D)ENDIF

ENDIF

PRINT*,Y

END

10、下面程序段中有错误的语句是。

LOGICAL:

:

L

A)L=0.1.GT.1.0

B)IF(L==.FALSE.)C=0.0

C)D=1.0-0.1

D)IF(1.0>0.1)D=0.1-1.0

PRINT*,D,C

END

二、运行程序题

1、己知整型变量M=3,N=10,K=0,J=0,阅读下面程序段:

IF(MOD(M,N)/=0)THEN

K=N/M

IF(K>M)THEN

J=K

K=M

M=J

ENDIF

ENDIF

PRINT*,M,K

其运行结果是:

33。

2、阅读下面程序:

IMPLICITNONE

INTEGER:

:

I,J

I=2

J=0

IF(I>=2)J=1

IF(J==1)I=J

IF(I<2)I=I+1

PRINT*,I,J

END

其运行结果是:

21。

3、阅读下面程序:

IMPLICITNONE

INTEGER:

:

I,J,K,M

I=10

J=20

K=30

M=-32768

IF(I>M)M=I

IF(J>M)M=J

IF(K>M)M=K

PRINT*,M

END

其运行结果是:

30。

4、阅读下面程序:

IMPLICITNONE

REAL:

:

X,Y

READ*,X

IF(X<0.0)THEN

Y=0.0

ELSEIF(X<10.0)THEN

Y=1.0/X

ELSE

Y=10.0

ENDIF

PRINT*,Y

END

若从键盘输入2.0↙

则程序的运行结果是:

0.5。

5、阅读下面程序:

IMPLICITNONE

LOGICAL:

:

L1,L2,L3,L4

L1=.TRUE.

L2=.FALSE.

L3=.TRUE.

L4=.NOT.L2.OR.L1.AND..NOT.L3

PRINT*,L4

END

则运行结果是:

T。

6、阅读下面程序:

IMPLICITNONE

LOGICAL:

:

A,B,L

A=.FALSE.

B=.TRUE.

L=.NOT.A.AND.B

PRINT*,L

END

则运行结果是:

T。

7、阅读下列程序,若运行中的输入值分别为2.5和-1.0,则两次运行结果分别是。

IMPLICITNONE

LOGICAL:

:

L

REAL:

:

X

L=.TRUE.

READ*,X

IF(X<0.)THEN

L=.FALSE.

ELSE

PRINT*,X

ENDIF

IF(.NOT.L)PRINT*,-X

END

当输入的数值为2.5↙

则输出结果为:

2.500000。

当输入的数值为-1.0↙

则输出结果为:

1.000000。

8、阅读下面程序:

IMPLICITNONE

INTEGER:

:

X=1,Y=0,A=2,B=2

SELECTCASE(X)

CASE

(1)

SELECTCASE(Y)

CASE(10)

A=A+1

CASE

(1)

B=B+1

ENDSELECT

CASE

(2)

A=A+1;B=B-1

CASE(3)

A=A-1;B=B+1

ENDSELECT

PRINT*,‘A=’,A,’B=’,B

END

程序运行结果为:

A=2B=2。

9、阅读下面程序:

IMPLICITNONE

LOGICAL:

:

P,Q

REAL:

:

X=0.0,Y=0.0

READ(*,’(1X,2L4)’)P,Q

IF(P)X=1.0

IF(Q)Y=1.0

PRINT*,X,Y

END

当从键盘输入FFTTFFTTFFTT,则X与Y的值为_0.0___0.0__。

10、阅读下面程序:

   IMPLICITNONE

INTEGER:

:

A,B,C,X

READ*,A,B,C

X=A+2+B+C**2

SELECTCASE(X)

CASE(:

7)

PRINT*,“A”

CASE(8:

10)

PRINT*,“B”

CASE(11:

15)

PRINT*,“C”

CASE(16:

PRINT*,“N”

ENDSELECT

END

若从键盘输入0,1,2↙

其运行结果为:

  A    ;

若从键盘输入1,2,3↙

其运行结果为:

  C    ;

若从键盘输入3,2,1↙

其运行结果为:

  B    。

11.给出下列关系表达式和逻辑表达式,判定表达式的值。

25.5>54F

(35+3*8).GE.75F

(2.5,5.7)>(1.2,3.5)错误的表达式

(25.9,58.4).NE.(58.4,25.9)T

‘banana’<’bananas’T

12+2*5>20.AND..NOT.(’pen’//’s’<’pencil’.OR.45+5.3>80)T

三、填空题

1、下面程序的功能是求方程X**2+BX+C=0的实根,请填空。

IMPLICITNONE

REAL:

:

B,C,X1,X2

READ(*,*)B,C

D=B**2-4*C

IF(D>0)THEN

IF(D/=0)THEN

X1=-B/2.0+SQRT(D)/2.0

X1=-B/2.0-SQRT(D)/2.0

PRINT*,X1,X2

ELSE

X1=-B/2.0

X2=X1

PRINT*,X1,X2

ENDIF

ELSE

PRINT*,‘ERROE’

ENDIF

END

2、下面程序的功能是求以下函数的函数值,请填空。

IMPLICITNONE

REAL:

:

X,Y

READ(*,*)X

IF(X<0)THEN

Y=3*X-LOG(ABS(X))

ELSEIF(x>=0.AND.x<=10)THEN

Y=X**3+6

ELSE

Y=1

ENDDO

PRINT*,Y

END

3、下面程序的功能是判断一个整数是否能被3或7整除,若能被整除,则输出’YES’,否则输出’NO’,请填空。

IMPLICITNONE

INTEGER:

:

M

READ(*,*)M

IF(mod(M,3)==0.OR.mod(M,7)==0)THEN

PRINT*,‘YES’

ELSE

PRINT*,‘NO’

ENDIF

END

4、下面程序是判断YEAR是否为闰年,是输出’YES’,不是输出’NO’.

IMPLICITNONE

INTEGER:

:

YEAR

CHARACTER(LEN=3):

:

RES=’NO’

READ*,YEAR

IF(MOD(YEAR,100)==0)THEN

IF(MOD(YEAR,400)==0)RES=’YES’

ELSE

IF(MOD(YEAR,4)==0)RES=‘YES’

ENDIF

PRINT*,RES

END

习题六

一、选择题:

1、阅读下列VisualFortran程序段

INTEGER:

I,J,K

DOI=1,5,2

DOJ=2,6,3

K=I+J

ENDDO

ENDDO

上述称序段执行完后K的值是

A)11B)10C)12D)30

2、阅读下列VisualFortran程序段

INTEGER:

N,K

REAL:

S,T

READ*,N

S=0.0

K=1

IF(N>=5)THEN

S=S+32

T=1

DOWHILE(K

T=T*2

S=S+T

K=K+1

PRINT*,S

ENDDO

ENDIF

PRINT*,S

END

若从键盘输入:

6,则运行后S的值为:

A)64.0B)32.0C)94.0D)96.0

二、运行程序题:

(1)1IMPLICITNONE

INTEGER:

M,I,J

M=0

DOI=1,5,4

DOJ=4,19,4

M=M+1

ENDDO

ENDDO

PRINT*,M

END

M的值为___8________。

(2)IMPLICITNONE

INTEGER:

K,J

REAL:

S

DOK=2,5,2

S=1.0

DOJ=K,5

S=S+J

ENDDO

ENDDO

PRINT*,S

END

S的值为__10.0__。

三、填空题

题目要求:

从键盘输入5组数,每组有5个数,求出各组中元素绝对值之和的最大者和最小者。

IMPLICITNONE

INTEGER:

I,J,SUM,MAX1,MAX2

MAX1=0;MIN1=0

DOI=1,5

SUM=0

DOJ=1,5

READ*,X

SUM=SUM+ABS(X)

ENDDO

IF(SUM>MAX1)MAX1=SUM

IF(I==1.OR.SUM

ENDDO

PRINT*,MAX1,MIN1

END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1