FORTRAN90练习题 下载本文

WRITE(*,'(1X,I4)') (P(K),__ ___) END

12. 下列程序执行后,输出的是___ ___。 PROGRAM MAIN

INTEGER(2),DIMENSION(:),ALLOCATABLE::A INTEGER(2)::Y ALLOCATE(A(0:15))

A=(/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16/) Y=FUN(A(1),3) WRITE(*,*) Y CONTAINS

FUNCTION FUN(B,N) RESULT(L) INTEGER(2)::N,L,I,J,M INTEGER(2)::B(N,N) L=0

DO I=1,N

M=1

IF (MOD(I,2).EQ.0) M=2 DO J=M,3,2

L=L+B(I,J)

ENDDO

ENDDO END FUNCTION END

13.下列程序执行后输出的结果是____ PROGRAM Moving

INTEGER, DIMENSION(4,4)::array INTEGER::i,j,tmp,n=4

array =RESHAPE((/1,2,4,7,0,3,5,8,0,0,6,9,0,0,0,10/),(/4,4/)) Do i=1,n Do j=1,n/2 tmp=array(i,j)

array(i,j)=array(i,n-j+1) array(i,n-j+1)=tmp ENDdo ENDDO

write(*,'(1X,4I3)') ((array(i,j),j=1,4),i=1,4) END PROGRAM Moving

14. “角谷猜想”是指,若一个自然数是偶数,则除以2;若是奇数,则乘3并加1,将得到的结果重复按照该规则运算,最终必得到1。完善下列程序。

INTEGER N READ*,N

PRINT*,N DO WHILE (N/=1)

IF (_________________-) THEN N=N/2 ELSE

________________ ENDIF PRINT*,N ________________ END

15. 程序运行时从键盘输入123456789012345678,则下列程序的执行结果是( )。

DIMENSION M(3,2)

READ(*,100) ((K,L,M(I,J),J=1,2),I=1,3) WRITE(*,200) ((M(I,J),I=1,3),J=1,2) 100 FORMAT(20I1) 200 FORMAT(1X,2I2) END

三. 编程题

1. 输入若干学生的成绩,分别统计小于85分、大于等于85分学生的人数,直到输入一个负数,程序结束。

2. 计算1!+2!+3!+…+M!的值 3. 计算100以内奇数之和

4. 从键盘输入10个整数存入数组,将数组最大值与第一个元素互换,最小值与最后一个元素互换,其余元素顺序不变,输出调整后的结果。 5. 输入一个4×4整型数据矩阵,要求: (1)求其转置矩阵并显示出来;

(2)对于转置矩阵,将第4行与第1行元素对调,输出新矩阵;

(3)对于第(2)步获得的新矩阵,用对角线上的各元素分别去除各元素所在行,输出生成的新矩阵。 6. 编程求100~999之间的所有水仙花数。 7. 采用筛选法求出100以内的所有素数。

n个a??a?aa?aaa?aaaa?...?a...a

8. 求sn其中,a是一个一位整型数,例如2+22+222+2222+22222+222222,此时a=2,n=6。通过键盘输入a和n(n<10)的值,编程计算sn