好文档 - 专业文书写作范文服务资料分享网站

Fortran95程序设计课后习题答案(word版方便).docx

天下 分享 时间: 加入收藏 我要投稿 点赞

第四章

1.program main bad.\

implicit none write(*,*) \ good time.\

write(*,*)

\

not

write(*,*) '\

2.program main 输入半径长 \ 3.program main write(*,\

4.integer a,b real 5.program main

real, parameter :: PI=3 implicit none.14159 real radius write(*,*) \ 请 read(*,*) radius write(*,\ 面积 ='f8. 3)\ radius*radius*PI end program

implicit none

real grades

write(*,*) \请输入成绩 \

read(*,*) grades

调整后成绩为 'f8.3)\

ra,rb a=2 b=3 ra=2.0 rb=3.0 write(*,*) b/a

! 输出 1,

因为使用整数计

算, 小数部分会无条件舍去 type(distance) :: d d%inch = d%cm/2.54 end program

write(*,*) rb/ra

! 输出 1.5

implicit none type distance real meter, inch, cm end type

write(*,*) \请输入长度 :\

read(*,*) d%meter

d%cm = d%meter*100

d%cm, d%inch

write(*,\ 米 ='f8.3' 厘米 ='f8.3' 英寸 ')\

第五章

real

1.program main implicit none \

read(*,*) money

else

integer money

end if

tax write(*,*) \ 请输入月收入 else if ( money<5000) then

nint(money*tax)

if ( money<1000 ) then tax = 0.15

tax = 0.03

tax = 0.1 program 星期几 \

write(*,\

税金为 'I8)\

end 请输入

tv

2.program main = \电视剧 \ 3.program main read(*,*) age 0.15

end if

else

implicit none

integer day tv = \卡通 \ end select

character(len=20) :: tv case(1,4) case(7)

write(*,*) \ case(2,5)

read(*,*) day select case(day) tv = \新闻 \ tv = \电影 \ end program

case(3,6)

case default

write(*,*) \ 错误的输入 \

write(*,*) else

stop write(*,*) tv read(*,*)

implicit none

integer age, money real tax money

write(*,*) tax = 0.10

\请输入年龄 \

if tax =

else

\请输入月收入 \ if ( age<50 ) then else if ( money<5000 )then

( money<1000 ) then tax = 0.7

tax = 0.03

end if

else if ( money<5000 )then

tax = 0.5

end if

if ( money<1000 ) then

tax = 0.10

write(*,\ 税金为 'I8)\

end program 4.program main

implicit none

integer year, days

logical mod_4, mod_100, mod_400

mod_100 = write(*,\ 这

write(*,*) \请输入年份 \ ( MOD(year,100) == 0 ) 一年有 'I3' 天 ')\

read(*,*) year mod_400 = (

mod_4

else

= ( MOD(year,4) == 0 )

MOD(year,400) == 0 )

if ( (mod_4 .NEQV.

mod_100) .or. mod_400 ) then

days = 366

days = 365 end if

stop end program

第六章

integer i

1.program main stop end program 2.program main end do

implicit none

do i=1,5

write(*,*)

\

end do

implicit none

integer i,sum

sum = 0

do i=1,99,2

sum = sum+i

write(*,*) sum stop end program

3.program main max = 5

implicit none integer, parameter :: answer = 45 do i=1,max

integer, parameter ::

read(*,*) weight \猜对了 \

integer weight, i

write(*,*) \ 请输入体重 \

if ( weight==answer ) exit write(*,*) \ 猜错了 \ 4.program main ans

end do

if ( i<=max ) then

write(*,*)

else

end if stop end program

do i=2,max

implicit none integer, parameter :: max=10 integer i

real item real

ans = 1.0 item = 1.0 item = item/real(i) ans = ans+item

end do write(*,*) ans

stop end program

5.program main input, output end do

implicit none integer i,j

integer, parameter :: length = 79 write(*,*) \请输入一个字串 \

character(len=length) ::

j=1 end if

read(*,\ input

do i=1, len_trim(input)

if ( input(i:i) /= ' ' ) then

output(j:j)=input(i:i)

j=j+1

write(*,\

stop end program 第七章

1.program main a(max) = (/ (2*i, 2.integer a(5,5) integer d( -5:5) f(1)=0

implicit none

integer, parameter :: max = 10

integer i

integer :: write(*,*)

i=1,10) /) integer :: t ! sum() 是 fortran

库 函 数

real(sum(a))/real(max) stop end program

! 5*5=25 integer b(2,3,4) implicit none

! 2*3*4=24 integer c(3,4,5,6) ! 3*4*5*6=360

! 11 integer e( -3:3, -3:3)

! 7*7=49

3.program main

f(2)=1

stop end program 4.program

integer, parameter :: max=10

f(i)=f(i -1)+f(i-2)

integer f(max) integer i

f

do i=3,max

end do

write(*,\

main implicit none

integer, parameter :: size=10

integer :: a(size)

= (/

5,3,6,4,8,7,1,9,2,10 /) end do

integer :: i,j

integer :: t t=a(i)

do i=1, size-1 do j=i+1, size

end do

if ( a(i) < a(j) ) then ! a(i) 跟 a(j)交换

write(*,\

a(i)=a(j)

a(j)=t

end if

a

stop end 5.a(2,2) ! 1+(2 -1)+(2-1)*(5)

= 7 a(3,3) !

1+(3-1)+(3-1)*(5) = 13 1.program main read(*,*) radius program

real radius, area 输入半径长 \ program real radius subroutine

第八章

implicit none real radius, area write(*,*) \请 输 入 半 径 长 \

call CircleArea(radius, area) area = radius*radius*PI implicit none read(*,*) radius

write(*,\ 面积 = 'F8.3)\ implicit none

stop end

subroutine CircleArea(radius, area)

real, parameter :: PI=3.14159

return end subroutine

2.program main real radius write(*,\

real, external :: CircleArea write(*,*) \请

面积 = 'F8.3)\ CircleArea(radius) implicit none

stop end

real function

CircleArea(radius)

real, parameter :: PI=3.14159

CircleArea = radius*radius*PI return end function

implicit none

3.program main call bar(3) none

call bar(10)

stop end program

bar(length)

implicit

integer, intent(in) do i=1,length

:: length

integer

i

character(len=79) :: string write(*,\ 4.program main ( n<0 ) then 5.program main integer function SMALL=min(A,B) exit

string=\

string(i:i)='*'

end do

return end subroutine

implicit none sum=0 return implicit none gcd(A,B)

integer, external :: add

write(*,*) add(100) end program

integer, intent(in)

recursive integer function add(n) result(sum)

implicit none

:: n

if sum

else if ( n<=1 ) then

sum=n return end if

= n + add(n-1) return end function

integer, external :: gcd

write(*,*) gcd(18,12) end program

implicit none SMALL=TEMP

integer A,B,BIG,SMALL,TEMP

TEMP=mod(BIG,SMALL)

BIG=max(A,B) if ( TEMP==0 )

do while( SMALL /= 1 ) use TextGraphLib

BIG=SMALL

end do gcd=SMALL

return end function

xinc =

call call

6.program main maxy=20

implicit none integer i,px,py

integer, parameter :: maxx=60,

real, parameter ::

call SetScreen(60,20)

real, parameter :: StartX=0.0, EndX=3.14159*2.0

real x

(EndX-StartX)/(maxx -1) SetCurrentChar('*')

x=StartX do px=1,maxx py = (maxy/2)*sin(x)+maxy/2+1

PutChar(px,py) x=x+xinc

end docall UpdateScreen()

第九章

stop end program

1.program main integer, parameter write(*,*)

\

implicit none :: fileid = 10

character(len=79) integer count

:: character(len=79)

:: buffer ) then

integer :: status = 0 , exist=alive)

logical alive do while(.true.)

read (*,\ inquire( if ( alive

open(unit=fileid, , & 出 循环 pause end if

access=\

count = 0

read(unit=fileid, fmt=\

write(*,\

end if

if ( status/=0 ) exit write(*,*)

! 没有资料就跳

) then

buffer

count = count+1 else

if ( count==24

count = 0 stop end

end do

TRIM(),\ doesn't exist.\

2.program main read (*,\

implicit none character(len=79)

::

character(len=79) logical alive

:: buffer

integer, parameter :: fileid = 10

integer i integer :: status = 0

do while(.true.)

) exit

write(*,*) \ fmt=\

do i=1,

inquire( , exist=alive)

if ( alive ) then

open(unit=fileid, , &

access=\ status=\ iostat=status ) buffer len_trim(buffer) buffer social,

read(unit=fileid, end do

if ( status/=0 ! 没有资料就跳出循环 -3 )

buffer(i:i) = char( ichar(buffer(i:i)) else implicit none

type student

write(*,\ stop end

end do total

write(*,*) TRIM(),\

end if

3.program main subjects=5 students

integer chinese, english, math, science,

end type type(student) :: s, total integer, parameter :: students=20, write(*,\

do i=1,

integer i

open(10,file=\

\座号 \中文 \英文 \数学 \自然 \社会 \总分 \

read(10,rec=(i -1)*subjects+1)

s%english s%science

total = student(0,0,0,0,0,0)

s%chinese read(10,rec=(i -1)*subjects+2) read(10,rec=(i -1)*subjects+4) s%social

read(10,rec=(i -1)*subjects+3) s%math

read(10,rec=(i -1)*subjects+5) s%total

=

s%chinese+s%english+s%math+s%science+s%social total%chinese = total%chinese+s%chinese total%english = total%english+s%english total%science+s%science total%total+s%total

total%math = total%math+s%math

= total%social+s%social end do

total%science = total%total

=

total%social

write(*,\

write(*,\平均 \ real(total%english)/real(students),& real(total%science)/real(students),&

real(total%chinese)/real(students),& real(total%math)/real(students),& real(total%social)/real(students),& 4.program main \

real(total%total)/real(students)

::

integer :: status = 0

stop ::

end buffer

implicit none character(len=79) character(len=79)

logical alive

integer, parameter :: fileid = 10

read (*,\

integer i write(*,*) fmt=\

do i=1, end

inquire( , exist=alive)

if ( alive ) then

open(unit=fileid, , &

access=\ status=\ iostat=status ) buffer len_trim(buffer) write(*,\ stop end

do while(.true.)

) exit

read(unit=fileid,

if ( status/=0 end do

! 没有数据就跳出循环

buffer(i:i) = char( ichar(buffer(i:i)) -(mod(i -1,3)+1)

)

do

buffer

else

write(*,*) TRIM(),\

exist.\ end if

5.module typedef Natural, Social typedef total

type student integer :: num

integer :: Chinese, English, Math,

program main

integer :: total

:: tempstr

integer :: rank end type end module use

implicit none integer, parameter :: integer, parameter :: students=20

type(student) ::

open(fileid,

character(len=80)

type(student) :: s(students) ! 储存学生成绩

! 计 算 平 均 分 数 用 integer i, num, error

Fortran95程序设计课后习题答案(word版方便).docx

第四章1.programmainbad.\implicitnonewrite(*,*)\goodtim
推荐度:
点击下载文档文档为doc格式
7l4qi4fd7m0088t3x4ji0cqsi0v0qh00p8n
领取福利

微信扫码领取福利

微信扫码分享