Fortran练习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

● 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(b

end if if后必有end if作结

if(c

min_x=c

end if

max_x=a

if(b>max_x)then

max_x=b

end if

if(c>max_x)then

max_x=c

end if

print*,'最大值:',max_x

print*,'最小值:',min_x

end

● 6.输入学生成绩,评价成绩的优、良、中、及格和不及格,并输出

read*,s

if(s<60)then

print*,'该生成绩为不及格'

else if(s<70)then else if表示另一个if,但是条件已将if的条件去除print*,'该生成绩为及格'

else if(s<80)then

print*,'该生成绩为中'

else if(s<90)then

print*,'该生成绩为良'

else else表示在if,else if所包含的条件以外的情况时print*,'该生成绩为优'

end if

end

●7.求2到100之内的素数,并输出

integer n,w,i

n=3

do while(n<=100)do while循环表示在满足括号内条件时运行的循环w=0;i=2

do while(i<=(n-1).and.w==0).and.表示逻辑条件和,两个前后两个条件同时满足if(mod(n,i)==0)then mod(a,b)函数表示求余,a÷b=c……d的d为结果w=1

else

i=i+1

end if

end do do,do while后跟end do作结

if(w==0)then‘==’表示相等

print*,n,'不是素数'

else

print*,n,'是素数'

end if

n=n+1

end do

end

●8.判断一个整数N能否被3和5整除

read*,n

if(mod(n,3)==0.and.mod(n,5)==0)then

print*,n,'能被3和5整除'

else

print*,n,'不能被3和5整除'

end if

end

●9.求s=∑n!(20)

integer::n,i,k,sum=0在integer/real等后跟::可在后直接对变量赋值do n=1,20do i=j,k,l,j表示i的初值,k表示末值,l表示间隔

(为1可省略)循环次数即为(k-j)/l+1 k=1

do i=1,n

k=k*i

end do

sum=sum+k

end do

print*,'前20个自然数的阶乘和为:',sum

end

●10.求1-1/2+1/3-1/4+…+1/99-1/100

real s,m

s=0

m=1

do while(m<=100)

s=s+(-1)**(m+1)/m

m=m+1

end do

print*,s

end

●11.判断2000-2500年中每一年是否为闰年,并打印判断结果、闰年的条件是:年份能

被4整除,但不能被100整除,或者能被100整除又能被400整除

integer s

s=2000

do while(s<=2500)

if(MOD(s,100)==0.and.MOD(s,400)==0)then

print*,s,'是闰年'

else if(mod(s,4)==0.and.mod(s,100)/=0)then

print*,s,'是闰年'

else

print*,s,'不是闰年'

end if

s=s+1

end do

end

●12.输入一个班30名学生的成绩,求平均分、最高分、不及格人数和不及格率dimension G(3)定义数组dimension G(n)n为数组内元素个数

相关文档
最新文档