内容发布更新时间 : 2024/11/1 7:41:32星期一 下面是文章的全部内容请认真阅读。
A. 只有一个主程序没有外部子程序 B. 只有一个主程序和若干子程序 C. 只有一个主程序和一个子程序 D. 只有外部子程序而没有主程序
二. 填空题(在空白处添入正确内容)
1.下列程序执行后,num(1,3)= ,num(2,3)= ,num(3,1)= 。 INTEGER(1),DIMENSION(1:3,1:3)::num=0 INTEGER(1)::i=1,j=2,k num(i,j)= 1 DO k= 2,9
i= i-1 ; j= j-1 IF(I<1.AND.j<1)THEN i=i+2; j=j+1 ELSEIF(i<1.AND.j>=1)THEN i=3
ELSEIF(i>=1.AND.j<1)THEN j=3
ELSEIF(i<=3.AND.j<=3)THEN IF(num(i,j )/= 0)THEN i=i+2; j=j+1 ENDIF ENDIF num(i,j)=k ENDDO
PRINT '(6X,3I3)',((num(i,j),j= 1,3),i= 1,3)
END
2. 阅读以下程序:
SUBROUTINE swap(S1,S2) CHARACTER(*) S1,S2 CHARACTER(3)T T=S1;S1=S2;S2=T END SUBROUTINE PROGRAM MAIN
CHARACTER(3) :: S1='BD',S2='BC',S3='AB' IF (S1>S2) CALL swap(S1,S2) IF (S2>S3) CALL swap(S2,S3) IF (S1>S2) CALL swap(S1,S2) PRINT*,S1; PRINT*,S2; PRINT*,S3 END PROGRAM MAIN
执行以上程序后,输出的结果是 3. 阅读以下程序:
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 DO I=1,6-K N=N+1
A(K-3+I,4-I)=N ENDDO
ELSE
ENDIF
ENDDO DO K=1,3
DO I=1,3
PRINT'(I3\\)',A(K,I); ENDDO PRINT*
ENDDO
END PROGRAM MAIN
执行以上程序后,A(1,3)的值是 ,A(2,2)的值是 ,A(3,1)的值是 。 4. 阅读以下程序: 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
REAL FUNCTION IP(N) M=0 DO K=1,N M=M+K ENDDO IP=M END
执行以上程序后,A(1)的值是 ,A(2)的值是 。 5. 用选择法,将N个整数按从小到大排列。 PARAMETER(numl=500) INTEGER num(numl)
READ*,N,(num(I), ) DO I=1,N-1
min=I
DO J=
IF(num(min)>num(J)) ENDDO
IF(min .NE. I)THEN it=num(I) num(I)=num(min) ENDIF ENDDO
PRINT*,(num(I),I=1,N)
END 6.求N!。
PRINT*,'Input N?' READ *,N M=1 DO
nfac=nfac*M IF( )THEN PRINT*,'N!=',nfac ENDIF M=M+1 ENDDO END
7.下列程序运行后,A(1,4)= ,A(5,3)= 。
INTEGER A(5,5),T,I,J,K,M DO I=1,5
DO J=1,5 A(I,J)=J ENDDO DO K=1,I-1
T=A(I,5) DO M=4,1,-1
A(I,M+1)=A(I,M) ENDDO A(I,1)=T
ENDDO
ENDDO
PRINT\END
8. 下列程序的运行结果是_________________。
PROGRAM MAIN
INTEGER::A(5)=(/4,1,3,2,5/) INTEGER::S1=0,S2=1,I DO I=1,5
IF(MOD(I,2)/=0)THEN S1=S1+A(I) ELSE
S2=S2*A(I) ENDIF ENDDO PRINT*,S1 PRINT*,S2
END
9.下列程序运行后输出结果:M= ,X= 。
OPEN(1,FILE='A.DAT')
WRITE(1,'(2I1/F3.1)') 2,3,4.5 CALL ABC END
SUBROUTINE ABC REAL X INTEGER M BACKSPACE(1) READ(1,\M=X
WRITE(*,\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 A=M DO I=1,4
NN(I)=MOD(A,10)
ENDDO B=0 DO J=1,4
K=NN(J)*10**(4-J) B=B+K
ENDDO END
11. 阅读下列程序.其功能是使用筛法选出N以内的所有素数并显示。
算法:在N以内的自然数列中先筛除2的倍数;在2之后筛乘下的第一个数是3,于是再筛除3的倍数;在3之后筛剩下的第一个数是5,于是再筛除5的倍数;如此重复下去,直到遇见筛剩下的第一个数是最接近N的平方根的那个数为止。请在其中____处填入适当的内容。 PROGRAM PRINES PARAMETER (N=100) INTEGER A(N),P(N) DO K=1,N A(K)=K ENDDO DO K=3,N
IF(__ ___.EQ.0) A(K)=0 ENDDO
ISR=SQRT(REAL(N)) DO M=3,ISR,2 DO K=M+2,N
IF(A(K)/=0.AND.MOD(A(K),M)==0)A(K)=0 ENDDO ENDDO M=1 DO K=2,N
IF(A(K).NE.0)THEN ____ _ M=M+1 ENDIF ENDDO