fortran 编程练习题

fortran 编程练习题
fortran 编程练习题

Fortran 程序设计

一.循环篇

1.编程找出并输出100-150之间和400-450之间能被9整除的数。

program main

implicit none

integer a,b

a=100

do 10 while(a<=150)

if(mod(a,9)==0) write(*,*)a

10 a=a+1

b=400

do 20 while(b<=450)

if(mod(b,9)==0) write(*,*)b

20 b=b+1

end

2.回文数是指正读和反读都一样的数。如:232,编程求100到999之间的回文数。

program main

implicit none

integer a,b,c,n

do 5 n=100,999

a=mod(n,10)

b=n/100

5 n=n+1

If(a==b)then

write(*,10)n

10format(1x,"100-999之间的回文数:",i3)

end if

stop

end

3.输出所有水仙花数(水仙花数是指一个三位正整数,其各位数字的立方和等于该数本身)。

program main

implicit none

integer a,b,c,d

do 5 d=100,999

a=mod(d/100,10)

b=mod(d/10,10)

c=mod(d,10)

if (d==a**3+b**3+c**3) then

write(*,15)

15format(1x,i3,"为a水仙花数" ) else

write(*,25)

25format(1x,i3,"不为水仙花数" ) endif

5 d=d+1

stop

end

4 .编程输出如下图形。

*

***

*****

*******

***

*

program main

implicit none

integer i,j

i=0

do 5 while(i.le.3)

j=0

do 10 while (j.le.2-i)

write(*,1)

1format(1x," ")

10 j=j+1

j=0

do 20 while(j.le.2*i)

write(*,2)

2format(1x,"*")

20 j=j+1

5 i=i+1

i=0

do 15 while(i.ne.2)

j=0

do 30 while(j.le.i)

write(*,3)

3format(1x," ")

30 j=j+1

j=0

do 40 while(j.le.4-2*i)

write(*,4)

4format(1x,"*")

40 j=j+1

15 i=i+1

end

二.循环篇

1.输入n个数,找出所有大于n个数的平均值的那些数及最小数。

program main

implicit none

real a(50),min,d,c

integer n,i

write(*,*)"输入数字个数n="

read(*,*) n

write(*,*) "输入数字:"

read(*,*)(a(i),i=1,n)

c=0

do i=1,n

c=c+a(i)

end do

d=c/n

do i=1,n

if(a(i).ge.d)then

write(*,*)"大于平均数的数为:"

write(*,"(1x,50f10.4)")a(i)

end if

end do

min=a(1)

do i=1,n

if (a(i).le.min) then

min=a(i)

end if

end do

write(*,*)"最小数为a"

write(*,"(1x,f10.4)")min

end

2.把一个数列中的所有相同的数删到只剩一个。

program main

implicit none

integer n,i,j,k

real a(50)

write(*,*)"输入数字个数n="

read(*,*)n

write(*,*)"输入数字"

read(*,*)(a(i),i=1,n)

do i=1,n

do j=i+1,n

if(a(i)==a(j))then

do k=j,n-1

a(k)=a(k+1)

end do

n=n-1

end if

end do

end do

write(*,*)"删除后的数列为:"

write(*,"(1x,50f10.4)") (a(i),i=1,n)

end

3.形成一个5行5列矩阵,要求两条对角线元素均为i,其余元素均为j。

program main

implicit none

integer a(5,5),m,n

do m=1,5

do n=1,5

if(m.eq.n.or.m+n==6)then

a(m,n)="i"

else

a(m,n)="j"

end if

end do

end do

do m=1,5

write(*,"(1x,10i5)")a(m,1:5)

end do

end

4.设有序(值从小到大)的两组数据,将这两组数据有序合并(合并过程数据始终保持有序)。

program main

implicit none

real a(1:25),b(1:25),c(1:50)

integer i,s,k,m,n

write(*,*)"输入数组a元素个数m="

read(*,*)m

write(*,*)"输入数组a各元素:"

read(*,*)(a(i),i=1,m)

write(*,*)"输入数组b元素个数n="

read(*,*)n

write(*,*)"输入数组b各元素:"

read(*,*)(b(i),i=1,n)

s=1

k=1

do i=1,m+n

if(a(s)<=b(k).and.s<=m)then

c(i)=a(s)

s=s+1

else

if(a(s)>b(k).and.k<=n)then

c(i)=b(k)

k=k+1

else

if(s>m)then

c(i)=b(k)

k=k+1

else

if(k>n)then

c(i)=a(s)

s=s+1

end if

end if

end if

end if

end do

write(*,*)"排列整合后的数列为:"

write(*,"(1x,7f10.4)")(c(i),i=1,m+n) end

5.编写程序输出杨辉三角。

program main

implicit none

integer i,j,n

integer a(1:50,1:50)

write(*,*) " 请输入杨辉三角的阶数"

read(*,*) n

do i = 1, n

a(i,1) = 1

a(i,i) = 1

end do

do i= 2,n-1

do j = 1,i-1

a(i+1,j+1)=a(i,j)+a(i,j+1)

end do

end do

write(*,*) "杨辉三角的展开式为:"

do i =1,n

write(*,"(1x,100i6)") (a(i,j),j=1,i)

end do

write(*,*)"调整后输出展开式为:"

write(*,"(28x,100i6)") a(1,1)

write(*,"(25x,100i6)") (a(2,i),i=1,2)

write(*,"(22x,100i6)") (a(3,i),i=1,3)

write(*,"(19x,100i6)") (a(4,i),i=1,4)

write(*,"(16x,100i6)") (a(5,i),i=1,5)

write(*,"(13x,100i6)") (a(6,i),i=1,6)

write(*,"(10x,100i6)") (a(7,i),i=1,7)

write(*,"(7x,100i6)") (a(8,i),i=1,8)

write(*,"(4x,100i6)") (a(9,i),i=1,9)

write(*,"(1x,100i6)") (a(10,i),i=1,10)

end

三.子程序篇

1.编写两个子程序,分别求两个整数的最大公约数和最小公倍数,并编写主程序调用这两个子程序,输出结果。

subroutine d(m,n,y1)

integer r,a,b,c,m,n,y1

a=m

b=n

r=mod(m,n)

do 10,while(r.ne.0)

m=n

n=r

10 r=mod(m,n)

c=a*b/n

y1=c

end!求两个数的最小公倍数

subroutine x(m,n,y2)

integer r,m,n,y2

r=mod(m,n)

do 20,while(r.ne.0)

m=n

n=r

20 r=mod(m,n)

y2=n

end!求两个数的最大公约数

program main

implicit none

integer m,n,y1,y2

write(*,*)"输入两个数:"

read(*,*)m,n

call d(m,n,y1)

call x(m,n,y2)

write(*,30)y2

30format(1x,'这两个数的最大公约数是',i5)

write(*,40)y1

40format(1x,'这两个数的最小公倍数是',i5)

end

2.编写一个子程序,将一个十六进制数转换为十进制数。并编写主程序调用该子程序,输出结果。

program main

implicit none

integer x,n,v1,v2,v3,v4,v5,v6,v7,v8,name

character c1,c2,c3,c4,c5,c6,c7,c8

write (*,*) ' 请输入十六进制数各位字(高位用零补齐):'

read(*,*) c1,c2,c3,c4,c5,c6,c7,c8

if(c1=="0".and.c2/="0")then!将输入各位数字串联输出,最高位以前的舍去。

write(*,*)"您输入的十六进制数为",c2//c3//c4//c5//c6//c7//c8

else

if(c1=="0".and.c2=="0".and.c3/="0")then

write(*,*)"您输入的十六进制数为",c3//c4//c5//c6//c7//c8

else

if(c1=="0".and.c2=="0".and.c3=="0".and.c4/="0")then

write(*,*)"您输入的十六进制数为",c4//c5//c6//c7//c8

else

if(c1=="0".and.c2=="0".and.c3=="0".and.c4=="0".and.c5/="0")then

write(*,*)"您输入的十六进制数为",c5//c6//c7//c8

else

if(c1=="0".and.c2=="0".and.c3=="0".and.c4=="0".and.c5=="0".and.c6/="0")then

write(*,*)"您输入的十六进制数为",c6//c7//c8

else

if(c1=="0".and.c2=="0".and.c3=="0".and.c4=="0".and.c5=="0".and.c6=="0".and.c7/="0")then write(*,*)"您输入的十六进制数为",c7//c8

else

if(c1=="0".and.c2=="0".and.c3=="0".and.c4=="0".and.c5=="0".and.c6=="0".and.c7=="0")then write(*,*)"您输入的十六进制数为",c8

else

write(*,*)"您输入的十六进制数为",c1//c2//c3//c4//c5//c6//c7//c8

end if

end if

end if

end if

end if

end if

end if

v1=iachar(c1) !将输入字符型变量转换为数簓值

v2=iachar(c2)

v3=iachar(c3)

v4=iachar(c4)

v5=iachar(c5)

v6=iachar(c6)

v7=iachar(c7)

v8=iachar(c8)

x=name(v1)*16**7+name(v2)*16**6+name(v3)**16*5+name(v4)**16*4+name(v5)*16**3+name(v6)*1 6**2+name(v7)**16+name(v8)

write(*,*)"该十六进制数转化为十进制数为:"

write(*,*)x

end

function name(n) !子程序通过判断各位十六进制字符对应十进制数值。

integer name

if(n==65.or.n==97)then

name=10

if(n==66.or.n==98)then name=11

else

if(n==67.or.n==99)then name=12

else

if(n==68.or.n==100)then name=13

else

if(n==69.or.n==101)then name=14

else

if(n==70.or.n==102)then name=15

else

if(n==48)then

name=0

else

if(n==49)then

name=1

else

if(n==50)then

name=2

else

if(n==51)then

name=3

else

if(n==52)then

name=4

else

if(n==53)then

name=5

else

if(n==54)then

name=6

else

if(n==55)then

name=7

else

if(n==56)then

name=8

else

if(n==57)then

end if

end if

end if

end if

end if

end if

end if

end if

end if

end if

end if

end if

end if

end if

end if

end if

end

3.编写一个递归子程序,求fibonacci数列某项的值。并编写主程序调用该递归子程序,输出结果。

recursive integer function fib(n) result(ans)

if(n.le.0)then

ans=-1

return

elseif(n==1.or.n==2)then

ans=1

return

endif

ans=fib(n-1)+fib(n-2)

return

stop

end

program main

implicit none

integer n

integer fib

write(*,*)"输入n值的大小"

read(*,*)n

write(*,15)n,fib(n)

15format(1x,"fib(",i5,")","=",i6)

stop

end

4.从a、b数列中,把那些在a中出现又在b中出现的数统统删去。

program main

implicit none

integer i,j,k,c,n,m,a(50),b(50)

write(*,*)"a组数据个数n="

read(*,*) n

write(*,*)"输入a组数据"

read(*,*)(a(i),i=1,n)

write(*,*)"b组数据个数m="

read(*,*)m

write(*,*)"输入b组数据"

read(*,*)(b(i),i=1,m)

do i=n,1,-1 !将a组数据中自相重复的删除到只剩下一个。

do j=n-1,1,-1

if (a(i)==a(j).and.i/=j)then

call sub(a,i,n)

end if

end do

end do

do i=m,1,-1 !将b组数据中自相重复的删除到只剩下一个。

do j=m-1,1,-1

if (b(i)==b(j).and.i/=j)then

call sub(b,i,m)

end if

end do

end do

if(n>=m)then!选取n,m中的大者。

c=n

else

c=m

end if

do k=1,c !最外重循环考虑到执行过程中n和m的减小会导致a,b数组对比中第一个循环值被忽略,强制将删减后的a,b数组会重新执行循环。

do i=1,n !筛选a,b数据中重复。

do j=1,m

if (a(i)==b(j))then

call sub(a,i,n)

call sub(b,j,m)

end if

end do

end do

end do

write(*,*)"经删除后"

write(*,*)"数组剩余元素"

write(*,*)(a(i),i=1,n)

write(*,*)"数组剩余元素"

write(*,*)(b(i),i=1,m)

end

subroutine sub(d,s1,s2) !子程序功能将数组数据后者替代前者,并且数组元a素个数减一。

integer d(50),s1,s2

do i=s1,s2-1

d(i)=d(i+1)

end do

s2=s2-1

end

5.编程输出以下的方阵。(螺旋矩阵)

1 16 15 14 13 1 1

2 11 10

2 17 24 2

3 12 2 13 16 9

3 18 25 22 11 3 1

4 1

5 8

4 19 20 21 10 4

5

6 7

5 6 7 8 9

program main

implicit none

integer a(1:50,1:50),i,j,k,n,m,z

write(*,*)"矩阵的维数n="

read(*,*)n

z=1

m=n

do k=2,n-1

a(1,1)=1

do i=k,n

call s(a(i,z),a(i-1,z))

end do

do j=k-1,n-1

call s(a(n,j+1),a(n,j))

end do

do i=n-1,k-1,-1

call s(a(i,n),a(i+1,n))

end do

do i=n-1,k,-1

call s(a(z,i),a(z,i+1))

end do

a(k,k)=a(k-1,k)+1

z=z+1

n=n-1

end do

write(*,*)"所要求的矩阵为:"

do i=1,m

write(*,"(1x,20I4)")(a(i,j),j=1,m)

end do

end

subroutine s(a,b)

integer a,b

a=b+1

end

大学FORTRAN考试试题样题

《高级语言程序设计(FORTRAN)》考试样题 一、选择题(每小题2分,共40分) 1. 下列标识符中不能作为FORTRAN的合法变量名的是_____D_____。 A) A_1 B) A1 C) A1A D) A+1 2. 在FORTRAN的变量类型说明语句中没有 B A) REAL语句B)CHAR语句C)INTEGER语句 D)LOGICAL语句 3.FORTRAN90 源程序的扩展名是 C 。 A. TXT B. F C. F90 D. FOR 4.下列关于符号常量的说法正确的是___C____。 A.符号常量的定义应该放在所有语句之前 B.符号常量不可以是字符型常量 C.在一个程序单位中定义一个符号常量后,不能再改变它的值 D.符号常量定义语句与赋值语句一样,是可执行语句 5、在下列写法中,__D______不是FORTRAN常量。 A. .TRUE. B.1E-2 C. (0.0,2.4) D.1,000,000 6.表达式15/4/2.0的值是 B 。 A.整数2 B.实数1.5 C.实数2.25 D.实数1. 3 7. 下列不是FORTRAN赋值语句的是 _____D______。 A) X=.TRUE. B) X=X*X C) X=X**2**2 D) X=X++ 8. 梯形的上底为A,下底为B,高为H,计算其面积的FORTRAN表达式中错误的是____A____。 A)1/2*(AB)*H B)(A+B)*H/2 C)(A+B)/2*H D)0.5*(A+B)*H 9. 要选拔身高T>1.7米且体重W<62.5公斤的人,FORTRAN的逻辑表达式是__C_____。 A)T.ce.1.7.AND.w.le.62.5 B)T.le.1.7.OR.w.ge.62.5 C)T.gt.1.7. AND.w.lt.62.5D)T.gt.1.7.OR.w.lt.62.5 10.FORTRAN 90规定,变量类型声明的优先顺序是 C 。 A.隐含约定(I-N规则)、IMPLICIT声明、类型声明 B.类型声明、隐含约定(I-N规则)、IMPLICIT声明 C.类型声明、IMPLICIT声明、隐含约定(I-N规则) D.IMPLICIT声明、类型声明、隐含约定(I-N规则) 11、假设CH是一个字符型变量,并且具有足够的长度,则对于CH(3:7),下面说法正确的是___D________。 A.它是一个数组片段 B.它是一个数组定义形式 C.它是CH的一个子串,并且长度是4 D.它是CH的一个子串,并且长度是5 12.数组声明语句为: INTEGER,DIMENSION(-5:-1,-3:3,11:15) ::A 数组共有 A 个元素。 A.175 B.150 C.120 D.17 13. 下列DATA语句中正确的是______C____。 A) DATA /A,B/-1.0, -1.0/ B) DATA A, B/2*(-1.0)/ C) DATA A, B/2*-1.0/ D) DATA A/-1.0, B/-1.0 14. 下列有关FORTRAN数组的说法正确的是______D_____。 A) 数组定义语句只能定义一维或二维数组 B) 数组元素下标不能出现负值 C) 在赋值语句中出现的A(3)肯定是数组元素 D) 程序中使用的数组必须进行说明

FORTRAN程序设计复习题及答案

FORTRAN程序设计复习题 一、选择题 B (1)下列各FORTRAN表达式中合法的是 A) S+T*2P >= B) .NOT. (A*B+C) C) A2+B2/(C+D) <= D) (A+B).NOT.A*B.GT.(.NOT.只跟一个表达式) C (2)数学式(3/5)ex+y的FORTRAN表达式是 A) 3*EXP(X+Y)/5 B) 3*E* *(X+Y)/ C) (3/5)*EXP(X+Y)D) EXP(X+Y) D (3)下列FORTRAN77表达式中不合法的是 A) A.GT.B.EQV.C.GT.D B) A.AND.B.AND.C.AND.D C) .NOT.(X.LE.D) A.LT.B.LT.C.LT.D D(4)下列叙述中不正确的是 A) FORTRAN子程序可以单独编译 B) 对一个FORTRAN源程序进行编译和连接无误后可生成可执行文件 C) 即使编译和连接都正确无误,FORTRAN程序运行时仍可能出错 D) FORTRAN连接的主要任务是把函数库中的函数翻译成机器指令(正确描述:主要任务为连接目标文件) B (5)在下列FORTRAN77运算符中,优先级最高的是 A) .AND. B) .NOT. C) .OR. D) .EQ. B (6)FORTRAN表达式"6/5+9/2**3/2"的值为 A) 33 B) 1 C) 5 D) 3 A (7)下列FORTRAN77表达式中,合法的是: A) .AND.. B) 10.0 C) D) 提示:A)相当于 .AND.(.NOT.()) D (8)关于编译一个FORTRAN源程序文件,下列说法中错误的是 A) 允许编译只有一个主程序而没有子程序的源文件 B) 允许编译有多个子程序的源文件 C) 允许编译只有一个子程序而没有主程序的源文件 D) 允许编译有多个主程序的源文件 C (9)在FORTRAN77源程序中,续行标志符必须放在 A) 第1列 B) 第1-6列C) 第6列D) 第5列 D (10)下列关于"SUBROUTIN E MAP(X,Y)"语句行的叙述中,不正确的是 A) 这是子程序的第一个语句 B) 字符串"MAP"是子程序名 C) 变量X是子程序的形参D) 子程序执行后,MAP将返回整型数据 提示:子程序无返回值,自定义函数才有) A (11)FORTRAN表达式"2/4+"的值是 A) B) 1 C) D) 0 提示:2/4默认等于整型,=》 D (12)FORTRAN表达式"MOD,"的值是 A) B)0.0 C) D) A (13下列FORTRAN运算符中,优先级最低的是 A)逻辑运算符.AND. B)算术运算符*

Fortran复习题讲解

FORTRAN程序设计复习题 选择题 B (1)下列各FORTRAN表达式中合法的是 A) S+T*2P >= 0.0 B) .NOT. (A*B+C) C) A2+B2/(C+D) <= 0.0 D) (A+B).NOT.A*B.GT.0.0(.NOT.只跟一个表达式) C (2)数学式(3/5)ex+y的FORTRAN表达式是 A) 3*EXP(X+Y)/5 B) 3*E* *(X+Y)/5.0 C) (3/5)*EXP(X+Y) D) (3.0/5.0)EXP(X+Y) D (3)下列FORTRAN77表达式中不合法的是 A) A.GT.B.EQV.C.GT.D B) A.AND.B.AND.C.AND.D C) .NOT.(X.LE.0.0) D) A.LT.B.LT.C.LT.D D (4)下列叙述中不正确的是 A) FORTRAN子程序可以单独编译 B) 对一个FORTRAN源程序进行编译和连接无误后可生成可执行文件 C) 即使编译和连接都正确无误,FORTRAN程序运行时仍可能出错 D) FORTRAN连接的主要任务是把函数库中的函数翻译成机器指令(主要任务为连接目标文件) B (5)在下列FORTRAN77运算符中,优先级最高的是 A) .AND. B) .NOT. C) .OR. D) .EQ. B (6)FORTRAN表达式"6/5+9/2**3/2"的值为 A) 33 B) 1 C) 5 D) 3 A (7)下列FORTRAN77 表达式中,合法的是:A)相当于0.0.LE.X .AND.(.NOT.(X.GE.10.0 ))A) 0.0.LE.X .AND..NOT.X.GE.10.0 B) 0.0.GE.X.LT.10.0 C) 0.0.LE.X.GE.10. D) 10.0.LE.X.OR..AND.X.GT.0.0 D (8)关于编译一个FORTRAN源程序文件,下列说法中错误的是 A) 允许编译只有一个主程序而没有子程序的源文件 B) 允许编译有多个子程序的源文件 C) 允许编译只有一个子程序而没有主程序的源文件 D) 允许编译有多个主程序的源文件 C (9)在FORTRAN77源程序中,续行标志符必须放在 A) 第1列 B) 第1-6列 C) 第6列 D) 第5列 D (10)下列关于"SUBROUTIN E MAP(X,Y)"语句行的叙述中,不正确的是 A) 这是子程序的第一个语句 B) 字符串"MAP"是子程序名 C) 变量X是子程序的形参 D) 子程序执行后,MAP将返回整型数据(子程序无返回值,自定义函数才有) A (11)FORTRAN表达式"2/4+0.5"的值是 A) 0.5 B) 1 C) 1.0 D) 0 D (12)FORTRAN表达式"MOD(4.9,1.3)"的值是 A)1.3 B)0.0 C)4.9 D)1.0 A (13下列FORTRAN运算符中,优先级最低的是 A)逻辑运算符.AND. B)算术运算符* C)关系运算符 >= D)算术运算符+ A (14下列语句函数的定义中正确的是 A)F(X,Y)=(X+Y)/(X*Y)+7.0 B)FUNCTION FUN(I,J,K)=3*I+2*J+0.5*K

大学FORTRAN考试试题1

1.下列叙述中,正确的是(D ) A.语句标号的大小影响程度执行的顺序 B.程序完全按语句出现的先后顺序执行 C.不同程序单位不能有相同的语句标号 D.同一程序单位不能有相同的语句标号 2.下列标识符中,不能作为合法的FORTRAN90标识符的是( C) A.A3_B3 B.VOID C._123 D.IF 3.下列哪一个为正确的常量( D ) A.123,000 B. 3.5E+2.5 C. TRUE D. “HELLO” 4.若A=2,B=2,I=3,则表达式A**B**I的值为( C ) A. 64 B.12 C.256 D16. 5.圆的直径存放在整型变量D之中,下列计算圆面积的表达式中正确的是( D ) A. 3.14159*(D/2)*(D/2) B. 3.14159*(D*D/4) C. 3.14159*(D/2)**2 D. 3.14159*D*D/4 6.下列运算符中,运算优先级最高的是(B ) A. 关系运算 B. 算术运算 C. 逻辑非运算 D. 逻辑与运算 7.下列FORTRAN的表达式中值为0.5的是( C) A.MOD(4.8,0.5) B.100/20/10 C.50.0/4/25 D.MOD(15,10)/10 8.下列是完整的FORTRAN程序,编译时出错的语句是( C ) A.PROGRAM PRINT B.PARAMETER (PI=3.1415926) C.PI=PI+1 D.WRITE(*,*)SIN(PI+0.5) END 9.变量的类型定义中,优先级由高到低的顺序为( A ) A.类型说明语句、IMPLICIT 说明语句、隐含约定 B.隐含约定、IMPLICIT 说明语句、类型说明语句 C.IMPLICIT 说明语句、类型说明语句、隐含约定 D.隐含约定、类型说明语句、IMPLICIT 说明语句 10.“两整数M与N不能同时小于零”的FORTRAN表达式( D ) A.M>=0.AND.N>=0 B.(M.GE.0.AND.N.LT.0).OR.(M.LT.0.AND.N.GE.0)C.(M.LE.0.AND.N.LE.0).OR.(M.LE.0.AND.N.GE.0)D.M.GE.0.OR.N.GE.0

FORTRAN77试题B

贵州大学2006-2007学年第一学期考试试卷 B 高级语言程序设计 注意事项: 1. 请考生按要求在试卷装订线内填写姓名、学号和年级专业。 2. 请仔细阅读各种题目的回答要求,在规定的位置填写答案。 3. 不要在试卷上乱写乱画,不要在装订线内填写无关的内容。 4. 满分100分,考试时间为120分钟。 一、选择题(共50分,每小题2分,各题中A)、B)、C)、D) 四个选项中,只有一个选项是正确的,请将正确的编号填在括号内) 1. 使用超大规模集成电路制造的计算机应该归属于() A) 第一代B) 第二代C) 第三代D) 第四代 2. 下列FORTRAN77运算符中,优先级最低的是()A)逻辑运算符.AND. B)算术运算符* C)关系运算符.GE. D)算术运算符+ 3.下列标识符中,不属于FORTRAN77常量的是()A).TRUE. B)FALSE C)ˊROOT=ˊ D)ˊ123.0ˊ 4.下列叙述中错误的是()A)PROGRAM语句可以是FORTRAN77主程序的第一个语句 B)每一个FORTRAN77程序块的最后一个语句必须是END语句 C)FORTRAN77的所有语句都是可执行语句 D)FORTRAN77的任何可执行语句都可以有标号 5.下列FORTRAN77表达式中,值为.FALSE.的是()A).NOT.(.FALSE. .AND. .NOT. .TRUE.) B).NOT. .FALSE. .OR. .NOT. .TRUE. C).NOT. .TRUE. .AND. .NOT. .FALSE. D)X .GT. Y .OR. X .LE. Y 6. 在计算机内部,一切信息存取、处理和传送的形式是() A) ASCII码B) BCD码C) 二进制D) 十六进制

计算机程序设计语言(FORTRAN语言)

计算机程序设计语言(FORTRAN语言) (总分:36.00,做题时间:90分钟) 一、 (总题数:36,分数:36.00) 1.编译程序能将高级语言编写的源程序转换成( )。 A.解释程序 B.汇编程序 C.映象程序 D.目标程序 (分数:1.00) A. B. C. D. √ 解析: 2.一个完整的FORTRAN源程序( )。 A.至少包括一个主程序 B.至少包括一个主程序和一个子程序 C.由一个主程序与一个以上的子程序组成 D.由一个主程序与一个子程序组成 (分数:1.00) A. √ B. C. D. 解析: 3.语句函数定义语句在程序内合法的位置是( )。 A.在程序块开头语句之后,END语句之前 B.在程序块开头语句之后,可执行语句之前 C.在说明语句之后,END语句之前 D.在说明语句之后,可执行语句之前 (分数:1.00) A. B. C. D. √ 解析: 4.下列关于函数子程序虚实参数的错误说法是( )。 A.可以没有形参数 B.虚实结合的数组长度可以不同 C.实参表与虚参表类型可以不同 D.函数名可以作为虚参

(分数:1.00) A. B. C. √ D. 解析: 5.下列叙述中正确的是( )。 A.FORTRAN程序块中,无名公用语句只能有一个B.FORTRAN子程序中,至少应有一个RETURN语句C.FORTRAN程序块中,最后一行必须是END语句D.FORTRAN程序块中,必须有变量说明语句 (分数:1.00) A. B. C. √ D. 解析: 6.运行下面的程序时得不到所需的结果,其主要原因是( )。INTEGER X(11) DATA X/9,8,7,6,5,4,3,2,1,0,-1/ DO 10 1=1,X(1) ,-1 WRITE(*,*)1.0/SQRT(25.0-REAL(X(1) )* * 2) 10 CONTINUE END A.没有给X(11) 赋初值 B.发生除以零的情况 C.发生负数开平方的情况 D.循环参数设置错误 (分数:1.00) A. B. C. D. √ 解析: 7.下列数据中,不符合FORTRAN常量表示法的是( )。 A.-25.6 B.2.758D3 C.'FOOT"=' D.TRUE (分数:1.00) A. B. C. D. √ 解析:

计算机技术基础(Fortran)试题库

一、选择题 1、下列关于"SUBROUTINE MAP(X,Y)"语句行的叙述中,不正确的是( ) A) 这是子程序的第一个语句B) 字符串"MAP"是子程序名 C) 变量X是子程序的形参D) 子程序执行后,MAP将返回整型数据 2、FORTRAN表达式"2/4+"的值是( ) A) B) 1 C) D) 0 3、阅读下列FORTRAN程序: PI=3. WRITE(*,' ')PI END 程序运行后输出结果是( ) A) B) 3.1415 C) D) 4、圆的直径存放在整型变量K之中,下列计算圆面积的表达式中正确的是( ) A) *K*K/4 B) *(K*K/4) C) *(K/2)**2 D) *(K/2)*(K/2) 5、要判断"月收入M在2000元以上(含2000元)且5000元以下)不含5000元)"的职工,应该使用的逻辑表达式是( ) A) M .GE. 2000 .AND. M .LE. 5000 B) M .GE. 2000 .OR. M .LE. 5000 C) M .GE. 2000 .AND. M .LT. 5000 D) M .GE. 2000 .OR. M .LT. 5000 6、设FORTRAN子程序如下: SUBROUTINE SUB(I,X) B=I+1 X=X+B END 若主程序中的变量M,B已按I-N规则赋值,则调用上述子程序的语句中正确的是( ) A) CALL SUB(M,M) B) CALL SUB(M+4,B) C) CALL SUB(B,B) D) CALL SUB(M,B+4) 7、下列不是FORTRAN常量的是( ) A) , B) +00 C) 2/3 D) 'Very good!' 8、阅读下列FORTRAN程序: F= DO 20 K=3, 7, 3 DO 20 L=K-1, K

Fortran 上机题汇总

Fortran 复习题汇总program exer101_1 implicit none realpi,r,t,s C 说明符号常量 parameter(pi=3.1415926) C 打开用于保存结果的文件 open(9,file='mydata.dat') write(*,*)"请输入r和t的值:" read*,r,t s=t/360.0*pi*r**2 C 在屏幕上显示结果 print*,'r=',r,'t=',t,'s=',s C 采用格式说明语句显示结果 write(*,100)'r=',r,'t=',t,'s=',s 100 format(1X,3(A2,F10.5,1X)) C 将结果保存至文件中 write(9,*)'r=',r,'t=',t,'s=',s end program exer101_2 implicit none realpi.r,t,s parameter(pi=3.1415926) !说明符号常量 open(9,file='mydata.dat') !打开用于保存结果的文件write(*,*)"请输入r和t的值:" read*,r,t s=t/360.0*pi*r**2 print*,'r=',r,'t=',t,'s=',s !在屏幕上显示结果 write(*,100)'r=',r,'t=',t,'s=',s !采用格式说明语句显示结果100 format(1X,3(A2,F10.5,1X)) write(9,*)'r=',r,'t=',t,'s=',s !将结果保存至文件中 end 1

2 program ex202 implicit none real F,C print*,"请输入一个华氏温度:" read*,F

fortran习题参考答案

工程分析程序设计上机作业(五) 模块化编程 上机目的:掌握内部例程、主程序、外部例程、模块等功能的使用方法。 1、有一个六边形,求其面积。为求面积,作了3条辅助线。如图所示:(提示,三角形面 积 2 a b c s ++ =,a、b、c为三个边长)。要求用内部函 数来计算每个三角形的面积。 =21 program main implicit none real :: A(9)=(/10,30,16,13,21,14,20,36,28/) integer i real s s=area(A(3),A(4),A(7))+area(A(2),A(7),A(8))+ & area(A(1),A(8),A(9))+area(A(5),A(6),A(9)) print*,'The area is',s contains function area(x,y,z) implicit none real x,y,z real p,area p=(x+y+z)/2 area=sqrt(p*(p-x)*(p-y)*(p-z))

end function end 2、编写一个子例程子程序,SUM(S,T,N1,N2)。把整型数N1到N2进行求和,并把求 和的结果放置到S,把整型数N1到N2进行求积,并把求积的结果放置到T。并用这个子程序来计算: y=++++++++++- (1234)(345678)(3*4*5*6)(1*2*3) program main implicit none integer A(8) integer i,b,c,d,e,f,g,m,n,y b=0;d=0;g=1;n=1 do i=1,8 A(i)=i end do call sum(b,c,1,4) call sum(d,e,3,8) call sum(f,g,3,6) call sum(m,n,1,3) y=b+d+g-n print*,'y=(1+2+3+4)+(3+4+5+6+7+8)+(3*4*5*6)-(1*2*3)=',y contains subroutine sum(s,t,N1,N2) integer s,t,N1,N2,i do i=N1,N2 s=s+A(i) t=t*A(i) end do end subroutine end 3、编写函数子程序GDC求两个数的最大公约数。求最大公约数的算法如下:把两个数中 大的那个数作为被除数,两数相除得到一个余数。把余数去除除数得到新一轮的余数。 不断重复这一过程直到余数为0,这时的除数就是两个数的最大公约数。

fortran考试试题(A)有答案版

中南林业科技大学课程考试试卷 课程名称: Fortran 语言程序设计 ;试卷编号:A 卷;考试时间:120分钟 题号 一 二 三 四 总分 应得分 30 10 20 40 实得分 一、填空题(30分,每题2分) 得分 评卷人 复查人 1. Fortran 语言中有:整数型 逻辑型 字符型 实数型 复数型五种基本数据类型。 2. Fortran 程序的书写格式有两种固定格式 自由格式。 3. 字符型常数’this ”s ’的字符长度为6 4. 下列程序运行结果为125。 Program main Implicit none Integer::floor=5,i Do i=1, floor If(i==3)cycle If(i==4)cycle Write(*,*)i End do end 5. 下列程序的运行结果为7 6.0,2.0。 Program main Implicit none Real :: a, b, m A=2.0 B=76.0 If(a

sum=0.0 do i=1,203,2 sum=sum+i end do write(*,*) i end 7.下列程序的运行结果是12000。Program test Implicit none Integer::i Integer::a(5)=(/ (i, i=1,5) /) Integer::b(5)=0 Where (a<3) b=a End where Write(*,”(5(i3,1x))”) b end 8.下列程序的运行结果是30。Program test Implicit none Integer,parameter:: limit=10 Integer counter Integer:: ans=0 Counter=2 do while(counter<=limit) ans=ans+counter counter=counter+2 end do Wrte(*,*)ans end 9.下列程序的运行结果是2,3。Program main implicit none integer ::a=1 integer ::b=2 call add ( a ) Call add ( b) Write(*,*) a , b Stop end Subroutine add (sum) Implicit none

FORTRAN90练习题

一.选择题 1.语句OPEN(3,FILE=‘ABC’)打开的是文件。 A.有格式顺序存取B.无格式顺序存取 C.有格式直接存取D.无格式直接存取 2.调用子程序时,假设实参可以是常数、内在函数及表达式,其相应形参是。 A.变量名B.数组名C.过程名D.* 3.下列数据中,不符合FORTRAN90常量表示的是。 A.-25.6 B.3.2344D0 C.’BOOT’’=’D.TRUE 4.圆心在原点的两个同心圆,半径分别为2和4。描述点(X,Y)在小圆外,大圆内(包括在两圆周上)的表达式是。 A.ABS(X)<=4.0 .AND. ABS(Y)>=2.0 B.2.0>=SQRT(X*X+Y*Y)<=4.0 C.X*X+Y*Y<=16.0 .AND. X*X+Y*Y>=4.0 D.(X.OR.Y)>=2.0 .AND. (X .OR.Y)<=4.0 5.下列字符串中可用作FORTRAN90变量名的是。 A.ABC B. A-BCD C. 2ABC D. AB.C 6.下列数据中不符合FORTRAN90常数表示的为。 A. 21.50 B. +0.0D0 C. .TRUE. D. $1000 7.表达式:-B+SQRT(B*B-4.0*A*C).LE.3E-5值的类型是。 A. 逻辑型 B. 整型 C. 实型 D. 字符型 8.按隐含约定,设X=2.5,Y=1.0,Z=3.0, 执行赋值语句I=X+Y/Z后I的值为。 A. 2.0 B. 2 C. 3 D. 3.0 9.下列语句中那个语句是错误的是。 A. READ(*,*)X B. READ*,X C. PRINT(*,*)X D. PRINT *,X 10.说明语句REAL A(1:2,-1:10)说明数组A的元素个数为。 A. 11 B. 12 C. 22 D. 24 11.M能被N整除的FORTRAN表达式为。 A. (M/M)=0 B. (M MOD N).EQ.0 C. (M/N).EQ.0 D. MOD(M,N).EQ.0 12.以下关于FORTRAN90中有关虚参、实参的说法中,不正确的是。 A.实参和虚参个数一定要相等B.实参和虚参个数可以不相等 C.虚参可以用数组 D.实参可以用数组 13. 下列关于FORTRAN 90源程序编辑规则的叙述之中,正确的是。 A. 任何以符号“!”开头的内容均是注释行。 B. 主程序第一行必须是PROGRAM语句。 C. 要实现有格式输入输出,必须有FORMAT语句。 D. 每个子程序中必须有一个RETURN语句。 14. 阅读下列程序 F=1.0 DO J=3,7,2 DO K=J-1,J F =F*K ENDDO ENDDO WRITE(*,'(I3,F8.1)') J,F

Fortran语言编程练习题

平面驻点流动方程数值解 1问题描述 自编程序完成平面驻点流动方程:的数值解。 边界条件为 式中:。 2求解过程 由于上述方程是非线性方程,可采用MATLAB 7.0软件来求解,步骤如下: 第一步:将方程化为一阶常微分方程组。 边界条件为 第二步:建立ode.m和lbc.m两个M文件。 ode.m文件程序如下: function dfdx=ode(x, f) dfdx=[f(2);f(3);-f(1)*f(3)+f(2)^2-1]; lbc.m 文件程序如下: function res=lbc(f0,finf) res=[f0(1);f0(2);finf(2)-1]; 第三步:求解方程。 在MATLAB 7.0工作窗口输入程序: infinity=4; solinit=bvpinit(0:0.4:infinity,[0 0 0]); sol=bvp4c(@ode,@lbc,solinit); x=0:0.4:infinity f=deval(sol,x) plot(x,f(1,:),'ob',x,f(2,:),'rp',x,f(3,:),'b*') /*绘图命令*/ xlabel('轴\it \eta');ylabel('轴\it \phi')

legend('平面驻点流动\phi曲线','平面驻点流动d\phi/d\eta曲线','平面 驻点流动d^2\phi/d\eta^2曲线') title('平面驻点流动的数值解') 3结果分析 平面驻点流动数值解的计算结果见表1,图1是平面驻点流动数值解的散点图。从表和图中可以看出,从开始呈线性增长,随着的增加,偏离斜直线,当以后渐近于1。在左右,,即此时粘性流动的流速已接近 势流流速,只差百分之一。 00.40000.8000 1.2000 1.6000 2.000 2.4000 2.8000 3.2000 00.08800.31240.62200.9798 1.3620 1.7553 2.1530 2.5523 00.41450.68590.84670.93240.97320.99060.99710.9992 1.23250.84630.52510.29380.14730.06580.02600.00910.0028 表1 平面驻点流动数值解的计算结果

Fortran95程序设计习题答案

Fortran95程序设计习题答案 第四章 1.program main implicit none write(*,*) "Have a good time." write(*,*) "That's not bad." write(*,*) '"Mary" isn''t my name.' end program 2.program main real, parameter :: PI=3 implicit none.14159 real radius write(*,*) "请输入半径长" read(*,*) radius write(*,"(' 面积='f8. 3)") radius*radius*PI end program 3.program main implicit none real grades write(*,*) "请输入成绩" read(*,*) grades write(*,"(' 调整后成绩为 'f8.3)") SQRT(grades)*10.0 end program 4.integer a,b real ra,rb a=2 b=3 ra=2.0 rb=3.0 write(*,*) b/a ! 输出1, 因为使用整数计算, 小数部分会无条件舍去 write(*,*) rb/ra ! 输出 1.5 5.program main implicit none type distance real meter, inch, cm end type type(distance) :: d write(*,*) "请输入长度:" read(*,*) d%meter d%cm = d%meter*100 d%inch = d%cm/ 2.54 write(*,"(f8.3'米 ='f8.3'厘米 ='f8.3'英寸')") d%meter, d%cm, d%inch end program 第五 章 1.program main implicit none integer money real tax write(*,*) "请输入月收入" read(*,*) money if ( money<1000 ) then tax = 0.03 else if ( money<5000) then tax = 0.1 else tax = 0.15 end if write(*,"(' 税金为 'I8)") nint(money*tax) end program 2.program main implicit none integer day character(len=20) :: tv write(*,*) "请输入星期几" read(*,*) day select case(day) case(1,4) tv = "新闻" case(2,5) tv = "电视剧" case(3,6) tv = "卡通" case(7) tv = "电影" case default write(*,*) "错误的输入" stop end select write(*,*) tv end program 3.program main implicit none integer age, money real tax write(*,*) "请输入年龄"

《FORTRAN 95程序设计》学习笔记

《FORTRAN 95程序设计》学习笔记 66RPG gg ★目录★ 《FORTRAN 95程序设计》学习笔记 (1) 基础知识(基础、字符串、FORMAT、隐式、TYPE) (1) 流程与控制(if、select、do) (4) 数组(声明、隐式循环、整体操作、可变数组) (5) 函数与子程序(子程序、函数、全局变量) (6) MODULE与面向对象(重载操作符、虚函数) (9) 文件相关(OPEN、WRITE、READ) (10) 指针(指向变量、数组、函数) (11) Visual Fortran 编译器(DLL,VB调用) (12) 数值算法与IMSL(数值算法插件) (14) 常用库函数(数学、数组、零碎、子程序) (15) 基础知识(基础、字符串、FORMAT、隐式、TYPE) ★【小玩意】二进制观察器:装在M.. Visual Studio\DF98\bin,有一个Bitviewer,可以观察变量储存方式 ★【语法】续行:行结尾或行开头使用& 符号;注释:使用! 符号 ★【语法】数学表达式:+ ;- ;* ;/ ;( ;) ;**乘幂 ★【语法】程序结束:STOP (Ruby的exit) ★【语法】输出:write(*,*),完整写法:write(unit=*,fmt=*) ?建议:少用print,尽量用write ★【语法】声明 ?整型:integer(kind=4) a ;其中kind是使用的bytes数,4 or 2 ◆其他写法:integer*4 a; integer(4) a ?浮点:real(kind=4) a ;有效数位6位(12345678存为1.234567E7),如果是kind8 则为15位有效数字 ◆此外:1E10:单精10^10,1D10:双精10^10 ?复数:complex :: a=(2,3)

Fortran练习题

● 1.输出a,b,c的值,其中a=28,b=34,c=60.5 integer a,b,c定义整型integer a=28;b=34;c=60.5‘=’为赋值符号,把右赋给左 print*,'a=',a,'b=',b,'c=',c输出格式:print*,’文字内容’,该输出变量 end结束必须以end作结 ● 2.输出x和y的值 real x,y定义实型real print*,'输入x和y:' read*,x,y读入格式:read*,读入变量 print*,x,y end ● 3.求三个数的和及平均值 real sum,ave read*,a,b,c sum=a+b+c ave=sum/3 print*,'和为',sum print*,'平均值为',ave end ● 4.现有长1500m宽1000m的地块要拍卖建造住宅小区,地块中央有一半径为100m的 圆形公共绿地不属于拍卖范围,每平方米地价为0.5万元,编写程序计算该地块拍卖总价,并输出。 real area,money read*,a,b,r area=a*b-3.14*r**2a b为a**b money=area*0.5 print*,'总价为',money,'万元' print*,'地长为',a print*,'地宽为',b print*,'绿地半径为',r end ● 5.求三个数中的最大数与最小数 real max_x,min_x read*,a,b,c min_x=a if(bmax_x)then max_x=b

Fortran90试题

Fortran 复习 题目类型: 1、选择题 2、填空题 3、简答题 4、编程题 样题 一、选择题 1.下列名称中,符合FORTRAN 90命名规则的是。 A. a-b-c B. $123 C. length_1 D. date.year 2.关于FORTRAN 90程序单元,以下四种说法中正确的是。 A.一个FORTRAN 90程序由多个程序单元组成,其中有一个且只能有一个主程序单元 B. 一个FORTRAN 90程序由多个程序单元组成,其中有一个且只能有一个模块单元 C. 一个FORTRAN 90程序允许有多个程序单元,但每类程序单元只能有一个 D. 一个FORTRAN 90程序允许有多个程序单元,但主程序单元和模块单元只能有一个3.关于FORTRAN 90的CASE结构,以下说法中正确的是。 A. CASE结构内必须取DEFAULT作为情况选择器的最终值 B. CASE结构的情况表达式不能是字符类型 C. CASE结构的情况表达式和情况选择器的取值类型必须相同 D. CASE结构的不同情况选择器取值可以重复 4.已知数组说明REAL A(20:22,0:9,-3:-1),数组A的数组元素个数是。 A.164 B.360 C.450 D.90 5.子程序的形式参数(虚拟变元或哑元)可以是。 A.变量名、数组名、过程名 B.变量名、数组名、过程名和符号常量名 C.变量名、数组名、数组片段、过程名 D.任意符号名

6. 语句OPEN(3,FILE=’ABC’,ACCESS=’DIRECT’,RECL=40)打开的是文件。 A.有格式顺序存取B.无格式顺序存取 C.有格式直接存取D.无格式直接存取 7、下列关于"SUBROUTINE MAP(X,Y)"语句行的叙述中,不正确的是( ) A) 这是子程序的第一个语句 B) 字符串"MAP"是子程序名 C) 变量X是子程序的形参D)子程序执行后,MAP将返回整型数据 8、 FORTRAN表达式"2/4+0.5"的值是( ) A) 0.5 B) 1 C) 1.0 D) 0 9、阅读下列FORTRAN程序: PI=3.14159265 WRITE(*,'(F7.4) ')PI END 程序运行后输出结果是( ) A) 3.142 B) 3.1415 C) 0.31416 D) 3.1416 10、圆的直径存放在整型变量K之中,下列计算圆面积的表达式中正确的是( ) A) 3.1415926*K*K/4 B) 3.1415926*(K*K/4) C) 3.1415926*(K/2)**2 D) 3.1415926*(K/2)*(K/2) 二、填空题 1、下列FORTRAN函数子程序的功能是用以下公式计算一组数据Z1,Z2,…,Zn的标准差σ: σ2=(Z12 +Z22+…+Zn2)/n-[(Z1+Z2+…+Zn)/n]2 请在程序中的下划线处填入合适的内容。 【1】 SIGMA(Z,N) REAL Z(N) SUMX=0.0 SUMX2=0.0 DO K=1,N 【2】 SUMX=SUMX+X SUMX2=SUMX2+X*X ENDDO AV=SUMX/N AV2=SUMX2/N S2=AV2-AV*AV

fortran习题3答案

工程分析程序设计上机作业(四) 数组 上机目的:练习数组的声明、存储、操作,以及数组参数、动态数组的使用。 1、请声明一个大小为10的一维数组,它们的初值为A(1)=2, A(2)=4, A(3)=6, ……A(I)=2*I, 并计算数组中这10个数字的平均值。 program main implicit none integer A(10) integer i,sum sum=0 do i=1,10 A(i)=2*i sum=sum+A(i) end do print*,'The average of the ten numbers is:',sum/10. end 2、编写一个程序来计算费氏数列的前10项,并把它们按顺序保存在一个一维数组当中。 费氏数列(Fibonacci Sequence)的数列规则如下: F(0)=0 F(1)=1 当n>1时 F(n)=f(n-1)+f(n-2) program main implicit none integer i integer(2) A(11) A(1)=0; A(2)=1 do i=3,11 A(i)=A(i-1)+A(i-2) end do

print*,A(2:11) End 3、输入任意n个数存放在数组中(如5个数1、2、8、2、10),请在屏幕上打印如下方阵 1 2 8 2 10 10 1 2 8 2 2 10 1 2 8 8 2 10 1 2 2 8 2 10 1 program main implicit none integer ,allocatable ::A(:) integer(2) i,j,n,temp print*,'请输入数字的个数:' read*,n allocate(A(n)) print*,'请输入数字:' read*,A(1:n) print*,A do i=2,n temp=A(1) do j=1,n-1 A(j)=A(j+1) end do A(n)=temp print*,A end do deallocate(A) end

fortran 编程练习题

Fortran 程序设计 一.循环篇 1.编程找出并输出100-150之间和400-450之间能被9整除的数。 program main implicit none integer a,b a=100 do 10 while(a<=150) if(mod(a,9)==0) write(*,*)a 10 a=a+1 b=400 do 20 while(b<=450) if(mod(b,9)==0) write(*,*)b 20 b=b+1 end 2.回文数是指正读和反读都一样的数。如:232,编程求100到999之间的回文数。 program main implicit none integer a,b,c,n do 5 n=100,999 a=mod(n,10) b=n/100 5 n=n+1 If(a==b)then write(*,10)n 10format(1x,"100-999之间的回文数:",i3) end if stop end 3.输出所有水仙花数(水仙花数是指一个三位正整数,其各位数字的立方和等于该数本身)。 program main implicit none integer a,b,c,d do 5 d=100,999 a=mod(d/100,10) b=mod(d/10,10)

c=mod(d,10) if (d==a**3+b**3+c**3) then write(*,15) 15format(1x,i3,"为a水仙花数" ) else write(*,25) 25format(1x,i3,"不为水仙花数" ) endif 5 d=d+1 stop end 4 .编程输出如下图形。 * *** ***** ******* *** * program main implicit none integer i,j i=0 do 5 while(i.le.3) j=0 do 10 while (j.le.2-i) write(*,1) 1format(1x," ") 10 j=j+1 j=0 do 20 while(j.le.2*i) write(*,2) 2format(1x,"*") 20 j=j+1 5 i=i+1 i=0 do 15 while(i.ne.2) j=0 do 30 while(j.le.i) write(*,3) 3format(1x," ") 30 j=j+1

相关文档
最新文档