发布时间 : 星期一 文章Fortran模拟试卷1-8更新完毕开始阅读689aef09844769eae009ed4a
CALL p() ENDDO PRINT*,I
END PROGRAM MAIN
执行以上程序后,输出的第一行是 (6) ,第二行是 (7) ,第三行是 (8) 。 4. 阅读以下程序:
PROGRAM MAIN
INTEGER:: A(3,3),I,J,K,N DO K=1,5
IF(K<=3)THEN DO I=1,K N=N+1
A(I,K-I+1)=N ENDDO ELSE
DO I=1,6-K N=N+1
A(K-3+I,4-I)=N ENDDO ENDIF ENDDO DO K=1,3 DO I=1,3
PRINT'(I3\\)',A(K,I); ENDDO PRINT* ENDDO
END PROGRAM MAIN
执行以上程序后,A(1,3)的值是 (9) ,A(2,2)的值是 (10) ,A(3,1)的值是 (11) 。 5. 阅读以下程序:
sum=1.0; ID=1.0; K=1 10 K=(-1.0)*K ID=ID*2.0
sum+K/ID
IF(ID.LE.7) GOTO 10 WRITE(*,*) sum WRITE(*,*) ID END
执行以上程序后,输出的第一行是 (12) ,第二行是 (13) 6. 阅读以下程序: REAL A(10),IP DO K=1,10
A(K)=IP(K*2)/IP(K) ENDDO
WRITE(*,100) A(1),A(2) 100 FORMAT(1X,2F3.1)
END
21
REAL FUNCTION IP(N) M=0
DO K=1,N M=M+K ENDDO IP=M END
执行以上程序后,A(1)的值是 (14) ,A(2)的值是 (15) 。 7.求多项式a0+a1x
1
+…+an-1xn-1+anxn之和的外部函数
n
数组A表示多项式系数,变量T表示x ,S表示多项式之和。 FUNCTION p(A,N,x) RESULT(r_p) (16) S= (17) T=1.0 DO I=1,N
T= (18) S=S+A(I)*T (19) PRINT*,'S=',S (20) END
8. 用选择法,将N个整数按从小到大排列。 PARAMETER(numl=500) INTEGER num(numl)
READ*,N,(num(I), (21) ) DO I=1,N-1 min=I
DO J= (22)
IF(num(min) .GT. num(J)) (23) ENDDO
IF(min .NE. I)THEN it=num(I)
num(I)=num(min) (24) ENDIF ENDDO
PRINT*,(num(I),I=1,N) END
9. 以下程序是通过超载赋值(=)运算符,实现将字符的ASCII码赋给整型变量的功能.
SUBROUTINE CTOI(I,C) INTEGER ,INTENT(OUT):: I CHARACTER ,INTENT(IN):: C I= (25) END SUBROUTINE
PROGRAM MAIN
22
INTERFACE ASSIGNMENT(=) SUBROUTINE (26)
INTEGER ,INTENT(OUT):: I CHARACTER ,INTENT(IN):: C ENDSUBROUTINE (27) INTEGER I
CHARACTER:: C='A' I=C
PRINT*,C,I
END PROGRAM MAIN 10.求N!。
PRINT*,'Input N?' READ *,N M=1
(28) DO
nfac=nfac*M
IF( (29) )THEN PRINT*,'N!=',nfac (30) ENDIF M=M+1 ENDDO END
FORTRAN90模拟测验三(上机部分)
一、 改错题
【题目】本程序从键盘输入n个整数,并存在数组中,以0作为输入数据的结束标志。如果相邻的两数之和为素数,则输出它们的元素名称和元素值。这里第一个元素和最后一个非零元素也认为是相邻元素。
从键盘输入的数据为:5, 7, 4, 9, 31, 6, 0。含有错误的程序为:
FUNCTION PRIME(N) RESULT(RP) IMPLICIT NONE J=SQRT(REAL(N)) I=2 RP=1
DO WHILE(I<=J)
IF(N/I*I==N) RP=0 I=I+1 ENDDO
END FUNCTION
PROGRAM MAIN
INTEGER I,J,N,A(30),PRIME N=1
PRINT*,'请输入数据'
23
READ*,A(N)
DO WHILE(A(N)==0) N=N+1
PRINT*,'请输入数据:' READ*,A(N) ENDDO
DO I=1,N-1 J=I+1
IF(J==N)J=1
IF(PRIME(A(J))==1)THEN
PRINT\ ENDIF ENDDO END
【要求】1. 必须将上述源程序录入到文件MYF1.F90中,然后根据题目的要求以及程序中前后
语句的逻辑关系,改正程序中的错误.
2. 改错时,除可以增加说明语句和可调换语句顺序外,不允许增加或删除任何语句. 3. 改正后的程序存放在考试盘MYF1.F90文件中。
【注意】本题完成后必须将文件MYF1.F90拷贝到考试盘中供阅卷使用。
二、 编程题
【题目】求S??i?1i??1的近似值。当求出的最后一项小于1.0E-6时,就认为满足精度要求,2ii!输出S的近似值,及相应的i值。
【要求】 1. 必须将源程序存到文件MYF2.F90中。
2. 用文件操作语句将求出的S近似值和相应i值存入结果文件MYF2.OUT中。
【注意】本题完成后必须将文件MYF2.F90及MYF2.OUT拷贝到考试盘中供阅卷使用。
24