Fortran模拟试卷1-8 联系客服

发布时间 : 星期日 文章Fortran模拟试卷1-8更新完毕开始阅读689aef09844769eae009ed4a

REAL X,Y,A,B,T INTEGER N READ*,X

T= (21) B=1.0 Y=T N=2

DO WHILE( (22) ) A=X**(2*N-1)/(2*N-1) B= (23) T=A*B Y=Y+T N=N+1 ENDDO

PRINT'(1X,F5.2,I3,F12.7)',X,N-1,Y END

10.下面程序的功能是输入十个任意四位整数A,用来检验inver子程序的可靠性。其中CALL

inver(A,B)应能将A中四位数倒过来成为B(如A=1966,可得B=6691)。最后计算并输出由具体数字构成的算式C=A+B。 INTEGER A,B,C,I DO I=1,10 READ*,A

DO WHILE(A<1000 .OR. A>9999) READ*,A ENDDO

CALL inver(A,B) C=A+B

PRINT'(1X,I5,\ENDDO END

SUBROUTINE inver(M,N) IMPLICIT NONE (24) A=M

DO I=1,4

NN(I)=MOD(A,10) (25) ENDDO B=0

DO J=1,4

K=NN(J)*10**(4-J) B=B+K ENDDO

(26) END

29

11.下面的程序建立一个链表,子程序fmax()的功能是:求出链表所有结点中数据成员值最大的结

点的位置,并由参数s返回给主函数。该函数的第一个参数是链表的首指针。 MODULE AA TYPE NODE

INTEGER DATA

TYPE(NODE),POINTER::NEXT END TYPE NODE CONTAINS

SUBROUTINE FMAX(HEAD,S,I) 27 INTEGER:: I,J=0 P=>HEAD;S=>P

IF(.NOT.(ASSOCIATED(P)))RETURN DO WHILE(ASSOCIATED(P)) J=J+1

IF( (28) )THEN I=J;S=>P ENDIF

(29) ENDDO

END SUBROUTINE

SUBROUTINE PRINTL(H)

TYPE(NODE),POINTER::H,P P=>H

DO WHILE(ASSOCIATED(P)) PRINT*,P.DATA P=>P.NEXT ENDDO

END SUBROUTINE END MODULE AA

PROGRAM MAIN (30)

TYPE(NODE),POINTER::H,P,P1 INTEGER A,I NULLIFY(P)

PRINT*,'INPUT DATA' READ*,A

DO WHILE(A/=-1) ALLOCATE(P) P.DATA=A

IF(.NOT.(ASSOCIATED(H)))THEN H=>P;P1=>P ELSE

P1.NEXT=>P;P1=>P

30

ENDIF

PRINT*,'INPUT DATA' READ*,A ENDDO

NULLIFY(P) CALL PRINTL(H) CALL FMAX(H,P,I) PRINT*,'DDD'

IF(ASSOCIATED(P))PRINT*,P.DATA,I END

FORTRAN90模拟试题四(上机部分)

一、 改错题

【题目】本程序的功能是:求100到999之间所有三位同构数。所谓三位同构数就是该数出现在其平方的末三位。含错误的程序为:

SUBROUTINE FIND(NT,FLAG,MT) IMPLICIT NONE LOGICAL FLAG

INTEGER::N,NT,MT,K FLAG=FALSE N=NT MT=N*N K=1 DO N=N/10

IF(N/=0)EXIT K=K+1 ENDDO

IF(MOD(MT,10)==NT)FLAG=.TRUE. END

PROGRAM MAIN LOGICAL FLAG

OPEN(1,FILE=?MYF1.OUT?) DO N=100,999

CALL FIND(N,FLAG,M)

IF(FLAG)WRITE(1,\END

【要求】1、必须将上述源程序录入到文件MYF1.F90中,然后根据题目的要求以及程序中前后语句

的逻辑关系,改正程序中的错误。

2、改错时,除可以增加说明语句和可调换语句顺序外,不允许增加或删除任何语句。 3、改正后的程序存放在考试盘MYF1.F90文件中,并将运行结果以MYF1.OUT为文件名存于考盘中。

【注意】本题完成后必须将文件MYF1.*拷贝到考试盘中供阅卷使用。

二、 编程题

【题目】函数f(x)的展开式如下:

1cos3x

f(x)?cosx??2313cos5x135cos7x?????????245246731

?(2n?1)!!cos(2n?1)x?cosx??,0?x??

(2n?1)n?1(2n)!!

其中,(2n-1)!!=1·3·5·7·9·?·11·(2n-1), (2n)!!=2·4·6·8·10·12·?·2n。

将上式编写成外部函数。当通项的绝对值小于EPS时,计算停止。 在主程序中从数据文件内读出三组X和EPS的值如下:

0.071068, 1E-10; 0.8660254, 1E-9; 1.5707963, 1E-9。 并将三个计算结果写入输出文件。

【要求】1.按要求编写程序,并将源程序录入到文件myf2.f90中。

2.建立数据文件myf2.dat,将三组输入数据在程序运行前输入到该文件中,程序从该文件中读取数据。

3.将程序运行结果存放于myf2.out文件中。

4.数据文件的打开、读写、关闭均要求用FORTRAN 90语言文件操作语句实现。

【注意】本题完成后必须将myf2.f90、myf2.dat、myf2.out和myf2.exe拷贝到考试盘中。

? 32