2下面程序的功能是用指针的方法求两个整数A,B的和。请改错
PROGRAM EX
IMPLICIT NONE
REAL,INTEGER,POINTER::PA,PB,PC !<==ERROR1
INTEGER,TARGET::A,B,C
READ *,A,B
PA=>A
PB=>B
PC=PA+PB !<==ERROR2 PC=>C
C=PC !<==ERROR3 PC=PA+PB
PRINT *,C,PC
END PROGRAM EX
3下面程序的功能是求M行N列的整形矩阵A的所有元素之和。请填空
PROGRAM EX
IMPLICIT NONE
INTEGER::M,N,I,J,SUM
INTEGER,ALLOCATABLE,DIMENSION(:,:)::A !<==BLANK1
READ*,M,N
ALLOCATE(A(M,N))
READ*,A
SUM=0 !<==BLANK2
DO I=1,M
DO J=1,N
SUM=SUM+A(I,J) !<==BLANK3
END DO
END DO
PRINT*,SUM
DEALLOCATE(A)
END PROGRAM EX
编写一个递归函数FAC求M的阶乘M!。主程序调用该递归函数,计算N!.
输入格式:
N!= 235.00
PROGRAM EX
IMPLICIT NONE
INTERFACE
RECURSIVE FUNCTION FAC(M) RESULT(RES)
INTEGER::M
REAL::RES
END FUNCTION FAC
END INTERFACE
INTEGER::N=10
REAL::JS
JS=FAC(N)
PRINT "(1X,'N!=',F12.2)",JS
CALL OUTPRINT(JS) !JS为符合条件的结果
CONTAINS
SUBROUTINE OUTPRINT(X)
CHARACTER (LEN =10):: FILENAME
REAL:: X
FILENAME ='RESULT.TXT'
OPEN(UNIT = 1 ,FILE = FILENAME ,ACCESS = 'SEQUENTIAL' , STATUS ='REPLACE')
WRITE(1,"(1X,'N!=',F12.2)") X
ENDFILE(UNIT=1)
CLOSE(UNIT=1)
END SUBROUTINE OUTPRINT
END
RECURSIVE FUNCTION FAC(M) RESULT(RES)
!!考生做题开始
!!************ BEGIN *******************
INTEGER::M
REAL::RES
IF(M==0.OR.M==1) THEN
RES=1
ELSE
RES=M*FAC(M-1)
END IF
!!************ END *******************
!!考生做题结束
END FUNCTION FAC
程序运行结果是:
N!= 3628800.00