fortran例题6

fortran例题6
fortran例题6

工程分析程序设计上机作业(六)

上机目的:练习派生类型的定义、构造、初始化,成员的调用和操作,操作符的重载,指针

1、构造一个由年、月、日组成的派生类型,并编写程序,实现从键盘上输入年、月、日,由程序计算出

是当年度的第几天。例如:

输入:2011, 4, 8

输出:4月8日是2011年的第98天。

注意:需考虑闰年的情形。

program main

type day !day 是年、月、日组成的派生类型

integer year

integer month

integer date

end type

type(day)::d

integer i,j,k,n,m ! n 为天数

n=0

print*,"please imput the year month date"

read*,d%year,d%month,d%date

!判断是否为闰年

if(mod(d%year,4)==0.and.mod(d%year,100)/=0.or.mod(d%year,400)==0) then

do i=1,d%month-1 !31天的月1 3 5 7 8 10 12,30天4 6 9 11 ,29天2

if(i==1.or.i==3.or.i==5.or.i==7.or.i==8.or.i==10.or.i==12) then

n=n+31

else if(i==2) then

n=n+29

else

n=n+30

end if

end do

else !不是闰年

do i=1,d%month-1 !31天的月1 3 5 7 8 10 12,30天4 6 9 11 ,28天2

if(i==1.or.i==3.or.i==5.or.i==7.or.i==8.or.i==10.or.i==12) then

n=n+31

else if(i==2) then

n=n+28

else

n=n+30

end if

end do

end if

n=n+d%date

write(*,"(I5,'年',I3,'月',I3,'日是第',I3,'天')",advance='no') d%year,d%month,d%date,n

end

2、设计一个“-”操作符的重载,把集合A中那些同时又出现在集合B中的元素去掉。

module chaji

implicit none

real,dimension:: A,B,C,D

interface operator(-)

MODULE PROCEDURE cha

end interface

contains

subroutine cha(A,B,C,D)

! program main !从A、B两个数列中,把同时出现在两个数列中的数据删去。例如:

do i=1,n

do j=1,n

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

A(i)=' '

end if

end do

end do

do i=1,m

do j=1,m

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

B(i)=' '

end if

end do

end do

do i=1,n

do j=1,m

if(A(i)==B(j)) then

A(i)=' '

B(j)=" "

end if

end do

end do

C=A

D=B

j=1

do i=1,n

if(a(i)/=' ') then

C(j)=A(i)

j=j+1

end if

end do

i=1

do J=1,m

if(B(j)/=" ") then

C(i)=D(j)

i=i+1

end if

end do

end subroutine

program main !从A 、B 两个数列中,把同时出现在两个数列中的数据删去。例如

use chaji

implicit none

integer::i,j,n,m

integer,allocatable::A(:),B(:),C(:),D(:)

print *,'how many in A,B: '

read*,n ,m

allocate (A(n))

allocate(C(n))

allocate(d(m))

allocate (B(m))

print*,"please input A"

do i=1,n

read*,A(i)

end do

print*,"input B:"

do j=1,m

read*,B(j)

end do

deallocate(A)

deallocate(B)

deallocate(C)

deallocate(D)

end

3、 编写一程序用四阶龙格-库塔法求解微分方程2*d y

y x y d x =-,当x=0时,y=1.0。试求出x=0.1, 0.2,

0.3, 0.4…., 1.0,…, 100时的y 值。算法如下:求解))(,('x y x f y =,定解条件:x =x 0,y =y 0。

()()()1123412132431226,1,221,22,n n n n n n n n n n y y k k k k k h f x y h k h f x y k h k h f x y k k h f x h y k +?=++++??

?=????=++? ????

???=++? ????

?=++?

已知n y y y x f y y x f y y x x ??????????==21110000),(,),(。

要求:1)把结果按 x 1, y 1

x 2, y 2

……

……

的排列顺序输出到一个无格式文档data1.txt中,一个有格式文档data2.txt。注意比较两个文档占用存储空间的大小。

2)编写另一个程序,从上述文档中提取出数据,然后找出这个函数的最大值y max,和最大值所在的x max,以及函数的最小值y min,和最小值所在的x min,从屏幕上输出。寻找最大值和最小值的算法要求用指针完成:设定一个最大值指针y max和x max,开始指向第一个y值和x值。然后提取下一个y值与指针指向的数值进行比较,如果更大,则令指针指向新的y值和对应的x值,如此扫描所有数据,指针指向的最后的数值,就是所求的数值。

选作:

4、有n个人围成一圈,从第一个人开始报数(1-3报数),凡报到3退出圈子,问最后留下的是原来第几

号位的,要求用单链表完成。

(完整)Fortran经典编程语言笔记(你值得拥有)

FORTRAN笔记 2014.10.07 目录 第七讲_FORTRAN的基本知识.ppt (2) FORTRAN语言程序设计初步 (2) FORTRAN源程序的书写格式(以77为例) (2) 变量 (2) 变量类型 (2) 算术运算符和运算优先级 (3) 赋值语句 (3) 参数语句(PARAMETER语句) (3) END语句 (3) PAUSE语句 (3) 逻辑运算和选择结构 (4) 关系表达式 (4) FORTRAN中数组的定义及使用 (4) 其他 (5) 1. fortran语言定义CHARACTER*6 TTL(14,3),CNAM(400)是什么意思? (5) 2. fortran里character*10 是什么意思 (5) 3. Fortran中kind是什么函数? (5)

第七讲_FORTRAN的基本知识.ppt FORTRAN语言程序设计初步 FORTRAN是Formula Translation的缩写,意为“公式翻译”,它是为科学、工程问题或企事业管理中的那些能够用 数学公式表达的问题而设计的,其数值计算的功能较强。 常用的是FORTRAN77和FORTRAN90两种标准。 1、一个程序由若干个程序单位组成。主程序和每一个子程序分别是一个独立的程序单位。 2、每一个程序单位都是以“END”结束的。 3、一个程序单位包括若干行。 1)语句行。由一个FORTRAN语句组成。 2)非语句行,即注释行。 4、FORTRAN程序中的语句可以没有标号,也可以有标号,根据需要而定。标号的作用是标志一个语句以便被其 他语句引用。 5、一个程序单位中各类语句的位置是有一定规定的。 6、FORTRAN源程序必须按一定的格式书写。 FORTRAN源程序的书写格式(以77为例) 每一行有80列,分别如下: 1、第1-5列为标号区。一行中第一列为“C”或“*”,该行即被认为是注释行。 2、第6列为“续行标志区”,如果在一行的第6列上写一个非空格和非零的字符,则该行作为其上一行的续行。 3、第7-72列为语句区。 4、第73-80列,注释区。 变量 变量名:一个变量需要用一个名字(变量名)来识别。在同一个程序单位中不能用同一个变量名代表两个不同的变 量。 FORTRAN的变量名按以下规则选定: 1)第一个字符必须是字母,即变量名必须以字母开头; 2)在一个字母后面可以跟1-5为数字或字母。 如果选定的变量名超过6个字符,则只有前面6个字符有效。 注:在变量名中大写与小写字母是等价的。 变量类型 整型变量Integer、实型变量Real、双精度变量Double Precision、复型变量Complex、逻辑型变量Logical和字符型变量Character。 1、隐含约定(I-N规则) FORTRAN规定:在程序中的变量名,凡以字母I,J,K,L,M,N六个字母开头的,即认为该变量为整型变量。 在程序中,凡是变量名以字母I,J,K,L,M,N,i,j,k,l,m,n开头的变量被默认为整型变量,以其他字母开头的变量被 默认为实型变量。 2、用类型说明语句确定变量类型 1)INTEGER语句(整型说明语句) 2)REAL语句(实型说明语句) 3)DOUBLE PRECISION语句(双精度说明语句) 4)COMPLEX语句(复型说明语句) 5)LOGICAL语句(逻辑型说明语句)

大学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) 程序中使用的数组必须进行说明

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

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习题4答案

工程分析程序设计 上机作业(五) 模块化编程 上机目的:掌握内部例程、主程序、外部例程、模块等功能的使用方法。 1、 有一个六边形,求其面积。为求面积,作了3条辅助线。如图所示:(提示,三角形面积=()()()s s a s b s c ---,其中2 a b c s ++=,a 、b 、c 为三个边长)。要求用内部函数来计算每个三角形的面积。 l 1=10 l 2=30 l 3=16 l 4=13 l 5=21 l 6=14 l 7=20 l 8=36 l 9=28 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考试试题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

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 95 语法速查

FORTRAN 95 语法速查 ----------白云、李学哲、陈国新、贾波编著《FORTRAN95程序设计》读书笔记 目录:一、应用程序的创建与运行/FORTRAN 95所用的字符/ 变量类型及其声明,常量声明/表达式与运算符 二、输入与输出:表控、有格式 三、选择语句与结构:IF语句、CASE结构 四、DO循环结构 五、数组:数组的声明,数组的引用,数组的算术运算,数组的输入、输出,给数组赋初值, 动态数组,WHERE、FORALL语句 六、子程序:语句函数,内部子程序,调用子程序时的虚实结合:形参为数组、非定界数组、子 程序名、星号,递归子程序,外部子程序,纯子程序,逐元子程序 七、派生数据类型与结构体 八、指针与动态链表 九、文件:存取方式,基本操作语句,各类文件的读写操作 十、接口、模块 十一、公用区、存储关联、数据块子程序 十二、绘图:坐标系、设置图形颜色、创建图形程序/ 常用过程:设置线型、绘一像素点、设置当前位置、绘直线、绘弧线、绘矩形、绘多边形、绘制扇形(圆、椭圆)/ 文字信息的显示 附/录:标准函数与标准子例行程序 一、基础部份 1-1 FORTRAN 95 应用程序的创建与运行 创建或运行FORTRAN 95程序必须在Microsoft Developer Studio平台上进行。尽管程序文本及相关文件的编辑可以在任一文本编辑器上进行,然后再拷到Studio的文档窗口中。但最好还是一开始就进入Studio环境。创建FORTRAN 95 程序的步骤大致如下: 1)启动Microsoft Developer Studio 可以通过不同方式运行dfdev.exe程序以启动Microsoft Developer Studio [开始] \ Compaq Visual Fortran 6 \ Developer Studio \ dfdev.exe:或 ……\CVF66 \https://www.360docs.net/doc/384364048.html,\MSDEV98\dfdev.exe Microsoft Developer Studio的界面如下图所示: 文档窗口 工作空间窗口 输出窗口

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是世界上最早出现的高级编程语言,是工程界最常用的编程语言,它在科学计算中(如航空航天、地质勘探、天气预报和建筑工程等领域)发挥着极其重要的作用。经过40多年的发展,伴随着FORTRAN语言多次版本的更新及相应开发系统的出现,其功能不断完善,最新版本的开发系统几乎具备了VC、VB的所有特点,如图形界面编程、数据库等。目前,工科院校开设的计算机编程语言课首选仍然是FORTRAN :< 说实话,从科技发展的趋势来说这不是好事。您可以设想一下,如果需要用鹅毛笔抄写大量的古籍是什么感受! 强烈建议阅读《发掘C#特性赋予科学计算项目以威力》 1 FORTRAN77四则运算符 + - * / ** (其中**表示乘方) 在表达式中按优先级次序由低到高为: +或-→*或/→**→函数→() 2 FORTRAN77变量类型 隐含约定:I-N规则 凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。 用类型说明语句确定变量类型:可以改变I-N规则

用IMPLICIT语句将某一字母开头的全部变量指定为所需类型 如IMPLICIT REAL (I,J) 三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。 数组的说明与使用 使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例:DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(-1:0),A(0:2,0:1,0:3)

fortran课后习题答案

第一章 FORTRAN程序设计基础第15页 1、2 1.简述程序设计的步骤。 “程序设计”:反映了利用计算机解决问题的全过程,通常要经过以下四个基本步骤:(1)分析问题,确定数学模型或方法;(2)设计算法,画出流程图;(3)选择编程工具,编写程序;(4)调试程序,分析输出结果。 2. 什么是算法?它有何特征?如何描述算法? 解决问题的方法和步骤称为算法。 算法的五个特征:(1) 有穷性。 (2) 确定性。 (3) 有效性。 (4) 要有数据输入。(5) 要有结果输出。 算法的描述有许多方法,常用的有:自然语言、一般流程图、N-S图等。 第二章顺序结构程序设计 第29页 1、2、3、4、5、6、7、8、9 1.简述符号常量与变量的区别? 符号常量在程序运行过程中其值不能改变。变量在程序运行过程中其值可以改变。 2. 下列符号中为合法的FORTRAN 90标识符的有哪些? (1) A123B (2) M%10 (3) X_C2 (4) 5YZ (5) X+Y (6) F(X) (7) COS(X) (8) A.2 (9) ‘A’ONE (10) U.S.S.R. (11) min*2 (12) PRINT 3. 下列数据中哪一些是合法的FORTRAN常量? (1) 9,87 (2) .0 (3) 25.82(4) -356231 (5) 3.57*E2 (6) 3.57E2.1 (7) 3.57E+2(8) 3,57E-2 4. 已知A=2,B=3,C=5(REAL);且I=2,J=3(INTEGER),求下列表达式的值: (1) A*B+C 表达式的值: 11 (2) A*(B+C) 表达式的值: 16 (3) B/C*A 表达式的值: 1.2 (4) B/(C*A) 表达式的值: 0.3 (5) A/I/J 表达式的值: 0.33 (6) I/J/A 表达式的值: 0 (7) A*B**I/A**J*2 表达式的值: 4.5 (8) C+(B/A)**3/B*2. 表达式的值: 7.25 (9) A**B**I 表达式的值: 512 5. 将下列数学表达式写成相应的FORTRAN表达式: (1) 1E-2 (2)(-B+SQRT(B*B-4*A*C)/(2*A) (3) 1+X+X*X/2+X**3/2/3 (4) COS(ATAN((A**3+B**3)**(1.0/3)/(C*C+1))) (5) EXP(A*X**2+B*X+C) (6) COS(X*Y/SQRT(X*X+Y*Y))**3 6. 用FORTRAN语句完成下列操作: (1) 将变量I的值增加1。I=I+1 (2) I的立方加上J,并将结果保存到I中。 I=I**3+J (3) 将E和F中大者存储到G中。G=Max(E,F) (4) 将两位自然数N的个位与十位互换,得到一个新的数存储到M中(不考虑个位为0的情况) M=MOD(N,10)*10+N/10 第三章选择结构程序设计第43页 1、2、3、5、6、7、9 1.分析下列程序运行结果 (1) LOGICAL P INTEGER I,I1,I2,I3 P=.FALSE. READ*,I I1=MOD(I,10) I2=MOD(I/10,10) I3=I/100

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)试题库

一、选择题 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

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 上机题汇总

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语言内部函数

附录 FORTRAN 90标准函数 符号约定: ●I代表整型;R代表实型;C代表复型;CH代表字符型;S代表字符串;L代表逻辑型;A代表数组;P代表指针;T代表派生类型;AT为任意类型。 ●s:P表示s类型为P类型(任意kind值)。s:P(k)表示s类型为P类型(kind值=k)。 ●[…]表示可选参数。 ●*表示常用函数。 表1 数值和类型转换函数 函数名说明 ABS(x)*求x的绝对值∣x∣。x:I、R,结果类型同x; x:C,结果:R AIMAG(x)求x的实部。x:C,结果:R AINT(x[,kind])*对x取整,并转换为实数(kind)。x:R, kind:I,结果:R(kind) AMAX0(x1,x2,x3,…)*求x1,x2,x3,…中最大值。x I:I,结果:R AMIN0(x1,x2,x3,…)*求x1,x2,x3,…中最小值。x I:I,结果:R ANINT(x[,kind])*对x四舍五入取整,并转换为实数(kind)。x:R, kind:I,结果:R(kind) CEILING(x)*求大于等于x的最小整数。x:R,结果:I CMPLX(x[,y][,kind]))将参数转换为x、(x,0.0)或(x,y)。x:I、R、C, y:I、R,kind:I,结果:C(kind) CONJG(x)求x的共轭复数。x:C,结果:C DBLE(x)*将x转换为双精度实数。x:I、R、C,结果:R(8) DCMPLX(x[,y])将参数转换为x、(x,0.0)或(x,y)。x:I、R、C, y:I、R,结果:C(8) DFLOAT(x)将x转换为双精度实数。x:I,结果:R(8) DIM(x,y)*求x-y和0中最大值,即MAX(x-y,0)。x:I、R, y的类型同x,结果类型同x DPROD(x,y)求x和y的乘积,并转换为双精度实数。x:R, y:R,结果:R(8)

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 平面驻点流动数值解的计算结果

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

相关文档
最新文档