Fortran程序设计课后习题答案方便.docx

上传人:b****7 文档编号:23819801 上传时间:2023-05-21 格式:DOCX 页数:10 大小:19.44KB
下载 相关 举报
Fortran程序设计课后习题答案方便.docx_第1页
第1页 / 共10页
Fortran程序设计课后习题答案方便.docx_第2页
第2页 / 共10页
Fortran程序设计课后习题答案方便.docx_第3页
第3页 / 共10页
Fortran程序设计课后习题答案方便.docx_第4页
第4页 / 共10页
Fortran程序设计课后习题答案方便.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

Fortran程序设计课后习题答案方便.docx

《Fortran程序设计课后习题答案方便.docx》由会员分享,可在线阅读,更多相关《Fortran程序设计课后习题答案方便.docx(10页珍藏版)》请在冰豆网上搜索。

Fortran程序设计课后习题答案方便.docx

Fortran程序设计课后习题答案方便

第四章

mainimplicitnonewrite(*,*)"Haveagoodtime."write(*,*)"That'snotbad."write(*,*)'"Mary"isn''tmyname.'endprogram

mainreal,parameter:

:

PI=3implicitrealradiuswrite(*,*)"请输入半径长"read(*,*)radiuswrite(*,"('面积='f8.3)")radius*radius*PIendprogrammainimplicitnonerealgradeswrite(*,*)"请输入成绩"read(*,*)gradeswrite(*,"('调整后成绩为'")SQRT(grades)*endprogram

a,brealra,rba=2b=3ra=rb=write(*,*)b/a!

输出1,因为使用整数计算,小数部分会无条件舍去write(*,*)rb/ra!

输出

mainimplicitnonetypedistancerealmeter,inch,cmendtypetype(distance):

:

dwrite(*,*)"请输入长度:

"read(*,*)d%meterd%cm=d%meter*100d%inch=d%cm/write(*,"'米=''厘米=''英寸')")d%meter,d%cm,d%inchendprogram

第五章

mainimplicitnoneintegermoneyrealtaxwrite(*,*)"请输入月收入"read(*,*)moneyif(money<1000)thentax=elseif(money<5000)thentax=elsetax=endifwrite(*,"('税金为'I8)")nint(money*tax)endprogram

mainimplicitnoneintegerdaycharacter(len=20):

:

tvwrite(*,*)"请输入星期几"read(*,*)dayselectcase(day)case(1,4)tv="新闻"case(2,5)tv="电视剧"case(3,6)tv="卡通"case(7)tv="电影"casedefaultwrite(*,*)"错误的输入"stopendselectwrite(*,*)tvendprogram

mainimplicitnoneintegerage,moneyrealtaxwrite(*,*)"请输入年龄"read(*,*)agewrite(*,*)"请输入月收入"read(*,*)moneyif(age<50)thenif(money<1000)thentax=elseif(money<5000)thentax=elsetax=endifelseif(money<1000)thentax=elseif(money<5000)thentax=elsetax=endifendifwrite(*,"('税金为'I8)")nint(money*tax)endprogram

mainimplicitnoneintegeryear,dayslogicalmod_4,mod_100,mod_400write(*,*)"请输入年份"read(*,*)yearmod_4=(MOD(year,4)==0)mod_100=(MOD(year,100)==0)mod_400=(MOD(year,400)==0)if((mod_4.NEQV.mod_100).or.mod_400)thendays=366elsedays=365endifwrite(*,"('这一年有'I3'天')")daysstopendprogram

第六章

mainimplicitnoneintegeridoi=1,5write(*,*)"Fortran"enddostopendprogram

mainimplicitnoneintegeri,sumsum=0doi=1,99,2sum=sum+ienddowrite(*,*)sumstopendprogram

mainimplicitnoneinteger,parameter:

:

answer=45integer,parameter:

:

max=5integerweight,idoi=1,maxwrite(*,*)"请输入体重"read(*,*)weightif(weight==answer)exitenddoif(i<=max)thenwrite(*,*)"猜对了"elsewrite(*,*)"猜错了"endifstopendprogram

mainimplicitnoneinteger,parameter:

:

max=10integerirealitemrealansans=item=doi=2,maxitem=item/real(i)ans=ans+itemenddowrite(*,*)ansstopendprogram

mainimplicitnoneinteger,parameter:

:

length=79character(len=length):

:

input,outputintegeri,jwrite(*,*)"请输入一个字串"read(*,"(A79)")inputj=1doi=1,len_trim(input)if(input(i:

i)/='')thenoutput(j:

j)=input(i:

i)j=j+1endifenddowrite(*,"(A79)")outputstopendprogram

第七章

mainimplicitnoneinteger,parameter:

:

max=10integeriinteger:

:

a(max)=(/(2*i,i=1,10)/)integer:

:

t!

sum()是fortran库函数write(*,*)real(sum(a))/real(max)stopendprogram

a(5,5)!

5*5=25integerb(2,3,4)!

2*3*4=24integerc(3,4,5,6)!

3*4*5*6=360integerd(-5:

5)!

11integere(-3:

3,-3:

3)!

7*7=49

mainimplicitnoneinteger,parameter:

:

max=10integerf(max)integerif

(1)=0f

(2)=1doi=3,maxf(i)=f(i-1)+f(i-2)enddowrite(*,"(10I4)")fstopendprogram

mainimplicitnoneinteger,parameter:

:

size=10integer:

:

a(size)=(/5,3,6,4,8,7,1,9,2,10/)integer:

:

i,jinteger:

:

tdoi=1,size-1doj=i+1,sizeif(a(i)

a(i)跟a(j)交换t=a(i)a(i)=a(j)a(j)=tendifenddoenddowrite(*,"(10I4)")astopend(2,2)!

1+(2-1)+(2-1)*(5)=7a(3,3)!

1+(3-1)+(3-1)*(5)=13

第八章

mainimplicitnonerealradius,areawrite(*,*)"请输入半径长"read(*,*)radiuscallCircleArea(radius,area)write(*,"('面积='")areastopendprogramsubroutineCircleArea(radius,area)implicitnonereal,parameter:

:

PI=realradius,areaarea=radius*radius*PIreturnendsubroutine

mainimplicitnonerealradiusreal,external:

:

CircleAreawrite(*,*)"请输入半径长"read(*,*)radiuswrite(*,"('面积='")CircleArea(radius)stopendprogramrealfunctionCircleArea(radius)implicitnonereal,parameter:

:

PI=realradiusCircleArea=radius*radius*PIreturnendfunction

mainimplicitnonecallbar(3)callbar(10)stopendprogramsubroutinebar(length)implicitnoneinteger,intent(in):

:

lengthintegericharacter(len=79):

:

stringstring=""doi=1,lengthstring(i:

i)='*'enddowrite(*,"(A79)")stringreturnendsubroutine

mainimplicitnoneinteger,external:

:

addwrite(*,*)add(100)endprogramrecursiveintegerfunctionadd(n)result(sum)implicitnoneinteger,intent(in):

:

nif(n<0)thensum=0returnelseif(n<=1)thensum=nreturnendifsum=n+add(n-1)returnendfunction

mainimplicitnoneinteger,external:

:

gcdwrite(*,*)gcd(18,12)endprogramintegerfunctiongcd(A,B)implicitnoneintegerA,B,BIG,SMALL,TEMPBIG=max(A,B)SMALL=min(A,B)dowhile(SMALL/=1)TEMP=mod(BIG,SMALL)if(TEMP==0)exitBIG=SMALLSMALL=TEMPenddogcd=SMALLreturnendfunctionmainuseTextGraphLibimplicitnoneinteger,parameter:

:

maxx=60,maxy=20real,parameter:

:

StartX=,EndX=*real,parameter:

:

xinc=(EndX-StartX)/(maxx-1)realxintegeri,px,pycallSetScreen(60,20)callSetCurrentChar('*')x=StartXdopx=1,maxxpy=(maxy/2)*sin(x)+maxy/2+1callPutChar(px,py)x=x+xincenddocallUpdateScreen()stopendprogram

第九章

mainimplicitnonecharacter(len=79):

:

filenamecharacter(len=79):

:

bufferinteger,parameter:

:

fileid=10integercountinteger:

:

status=0logicalalivewrite(*,*)"Filename:

"read(*,"(A79)")filenameinquire(file=filename,exist=alive)if(alive)thenopen(unit=fileid,file=filename,&access="sequential",status="old")count=0dowhile(.true.)read(unit=fileid,fmt="(A79)",iostat=status)bufferif(status/=0)exit!

没有资料就跳出循环write(*,"(A79)")buffercount=count+1if(count==24)thenpausecount=0endifenddoelsewrite(*,*)TRIM(filename),"doesn'texist."endifstopend

mainimplicitnonecharacter(len=79):

:

filenamecharacter(len=79):

:

bufferinteger,parameter:

:

fileid=10integeriinteger:

:

status=0logicalalivewrite(*,*)"Filename:

"read(*,"(A79)")filenameinquire(file=filename,exist=alive)if(alive)thenopen(unit=fileid,file=filename,&access="sequential",status="old")dowhile(.true.)read(unit=fileid,fmt="(A79)",iostat=status)bufferif(status/=0)exit!

没有资料就跳出循环doi=1,len_trim(buffer)buffer(i:

i)=char(ichar(buffer(i:

i))-3)enddowrite(*,"(A70)")bufferenddoelsewrite(*,*)TRIM(filename),"doesn'texist."endifstopend

mainimplicitnonetypestudentintegerchinese,english,math,science,social,totalendtypetype(student):

:

s,totalinteger,parameter:

:

students=20,subjects=5integeriopen(10,file="",access="direct",recl=1)write(*,"(7A10)")"座号","中文","英文","数学","自然","社会","总分"total=student(0,0,0,0,0,0)doi=1,studentsread(10,rec=(i-1)*subjects+1)s%chineseread(10,rec=(i-1)*subjects+2)s%englishread(10,rec=(i-1)*subjects+3)s%mathread(10,rec=(i-1)*subjects+4)s%scienceread(10,rec=(i-1)*subjects+5)s%socials%total=s%chinese+s%english+s%math+s%science+s%socialtotal%chinese=total%chinese+s%chinesetotal%english=total%english+s%englishtotal%math=total%math+s%mathtotal%science=total%science+s%sciencetotal%social=total%social+s%socialtotal%total=total%total+s%totalwrite(*,"(7I10)")i,senddowrite(*,"(A10,")"平均",&real(total%chinese)/real(students),&real(total%english)/real(students),&real(total%math)/real(students),&real(total%science)/real(students),&real(total%social)/real(students),&real(total%total)/real(students)stopendmainimplicitnonecharacter(len=79):

:

filenamecharacter(len=79):

:

bufferinteger,parameter:

:

fileid=10integeriinteger:

:

status=0logicalalivewrite(*,*)"Filename:

"read(*,"(A79)")filenameinquire(file=filename,exist=alive)if(alive)thenopen(unit=fileid,file=filename,&access="sequential",status="old")dowhile(.true.)read(unit=fileid,fmt="(A79)",iostat=status)bufferif(status/=0)exit!

没有数据就跳出循环doi=1,len_trim(buffer)buffer(i:

i)=char(ichar(buffer(i:

i))-(mod(i-1,3)+1))enddowrite(*,"(A70)")bufferenddoelsewrite(*,*)TRIM(filename),"doesn'texist."endifstopend

typedeftypestudentinteger:

:

numinteger:

:

Chinese,English,Math,Natural,Socialinteger:

:

totalinteger:

:

rankendtypeendmoduleprogrammainusetypedefimplicitnoneinteger,parameter:

:

fileid=10integer,parameter:

:

students=20character(len=80):

:

tempstrtype(student):

:

s(students)!

储存学生成绩type(student):

:

total!

计算平均分数用integeri,num,erroropen(fileid,file="",status="old",iostat=error)if(error/=0)thenwrite(*,*)"Openfail."stopendifread(fileid,"(A80)")tempstr!

读入第一行文字total=student(0,0,0,0,0,0,0,0)!

用循环读入每位学生的成绩doi=1,studentsread(fileid,*)s(i)%num,s(i)%Chinese,s(i)%English,&s(i)%Math,s(i)%Natural,s(i)%Social!

计算总分s(i)%Total=s(i)%Chinese+s(i)%English+&s(i)%Math+s(i)%Natural+s(i)%Social!

累加上各科的分数,计算各科平均时使用total%Chinese=total%Chinese+s(i)%Chinesetotal%English=total%English+s(i)%Englishtotal%Math=total%Math+s(i)%Mathtotal%Natural=total%Natural+s(i)%Naturaltotal%Social=total%Social+s(i)%Socialtotal%Total=total%Total+s(i)%Totalenddocallsort(s,students)!

重新输出每位学生成绩write(*,"(8A7)")"座号","中文","英文","数学","自然","社会","总分","名次"doi=1,studentswrite(*,"(8I7)")s(i)enddo!

计算并输出平圴分数write(*,"(A7,")"平均",&real(total%Chinese)/real(students),&real(total%English)/real(students),&real(total%Math)/real(students),&real(total%Natural)/real(students),&real(total%Social)/real(students),&real(total%Total)/real(students)stopendprogramsubroutinesort(s,n)usetypedefimplicitnoneintegerntype(student):

:

s(n),tintegeri,jdoi=1,n-1doj=i+1,nif(s(i)%total

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1