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

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

一、选择题

1、下列关于"SUBROUTINE MAP(X,Y)"语句行的叙述中,不正确的是( )

A) 这是子程序的第一个语句 B) 字符串"MAP"是子程序名

C) 变量X是子程序的形参 D) 子程序执行后,MAP将返回整型数据

2、 FORTRAN表达式"2/4+0.5"的值是( )

A) 0.5 B) 1 C) 1.0 D) 0

3、阅读下列FORTRAN程序:

PI=3.14159265

WRITE(*,'(F7.4) ')PI

END

程序运行后输出结果是( )

A) 3.142 B) 3.1415 C) 0.31416 D) 3.1416

4、圆的直径存放在整型变量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)

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) (3.0,4.0) B) 3.1416D+00 C) 2/3 D) 'Very good!'

8、阅读下列FORTRAN程序:

F=1.0

DO 20 K=3, 7, 3

DO 20 L=K-1, K

20 WRTTE(*,'(I3, F8.1)'K, F*K

END

程序运行结果的最后一行是( )

A) 3 6.0 B) 6 6.0 C) 6 180.0 D) 7 180.0

9、在FORTRAN中,下列运算符的优先顺序是( )

A) 逻辑运算,关系运算,算术运算 B) 关系运算,逻辑运算,算术运算

C) 算术运算,关系运算,逻辑运算 D) 关系运算,算术运算,逻辑运算

10、使用FORTRAN内部函数时,所给的自变量( )

A) 只能是常量 B) 只能是变量

C) 只能是常量或者变量 D) 可以是常量、变量或者表达式

11、设X=2.0, Y=8.0, Z=6.0, L=.TRUE.,则下列FORTRAN表达式中值为.TRUE.的是( )

A) X+Z.GT.Y.AND.L B) .NOT.(Y.LT.Z+X).NEQV..NOT.L

C) .NOT.L.OR.(L.EQV.Y+X.EQ.Z) D) Y+X.GE.Z+X.AND.(L.AND..FALSE.)

12、下列输出语句行中正确的是( )

A) WRITE(*,*)(A(K,L),K=1,3,L=1,3)

B) WRITE(*,*)A(K,L),K=1,3,L=1,3

C) WRITE(*,*)((A(K,L),K=1,3), L=1,3)

D) WRITE(*,*)(A(K,L),K=1,3),L=1,3

13、给定下列FORTRAN子程序如下:

SUBROUTINE SUB(K,A)

A=SQRT(K*K+1.0)

END

下列调用语句中正确的是( )

A) CALL SUB(N,N) B) CALL SUB(X,X)

C) CALL SUB(N,X*X) D) CALL SUB(11,X)

14、阅读下列FORTRAN程序:

INTEGER AA(2,3)

DATA AA/1,2,3,4,5,6/

CALL S2D19(AA)

CALL S2D19(AA(1,2))

END

SUBROUTINE S2D19(BB)

INTEGER BB(2,2)

WRITE(*,'(1X,2I3)') BB(1,1),BB(2,2)

END

程序运行结果是( )

A) 1 4 B) 1 5 C) 1 4 D) 1 2

3 6 2 6 2 5 3 4

15、阅读下列FORTRAN程序:

INTEGER A(3,3)

DO 10 K=1,3

DO 10 L=1,3

10 A(K,L)=K*10+L

WRITE(*,'(1X,3I3)')A

END

程序运行结果是: ( )

A) 11 21 31 B) 11 12 13 C) 31 32 33 D) 33 32 31

12 22 32 21 22 23 21 22 23 32 22 21

13 23 33 31 32 33 11 12 13 31 21 11

16、阅读下列FORTRAN程序:

WRITE(*,10)'YEAR:', 1996

10 FORMAT(/3X,A,I4)

END

程序运行结果是(^代表空格,下同) ( )

A) ^^^^^YEAR:1996 B) ^^YEAR:1996

C) 空白行 D) 空白行

^^^^^YEAR:1996 ^^YEAR:1996

17、某函数子程序中使用了IMPLICIT、READ、COMPLEX和FUNCTION四种语句,其中属于可执行语句的是: ( )

A)FUNCTION B) READ C) COMPLEX D) IMPLICIT

18、阅读下列FORTRAN程序:

DIMENSION M(4,4)

DATA M/1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6/

DO 10 I=1,4

WRITE (*,100)(M(I,J),J=1,I)

10 CONTINUE

100 FORMAT(1X,4I2)

END

程序运行的结果是( )

A) 1 2 3 4 B) 1 5 9 3 C) 1 D) 1

6 7 8 6 0 4 2 6 2 6 6

1 2 1 5 3 7 1 9 3 7 1 1

6 6 4 8 2 6 3 4 4 8 2 6 6

19、阅读下列FORTRAN程序:

CHARACTER*10 A, B*6

DO 10 I=1,10

A(I:I)=' '

10 COUNTINUE

A(1:5)='ABCDE'

B='FGHIJK'

A(4:9)=B

WRITE(*,100) A

100 FORMAT(1X,A)

END

程序运行结果是:( )

A) ABCDEFGHIJ B) ABCDEGHIJK C) ABCFGHIJK D) BCDEFGHIJK

20、阅读下列FORTRAN程序:

INTRINSIC SIN, COS

WRITE(*,*)FUN(SIN,30.0)/FUN(COS,30.0)

END

FUNCTION FUN(F,X)

X=X*3.14159/180

FUN=F(X)

END

程序运行结果是 ( )

A) sin30°的值B) cos30°的值C) tg30°的值D) ctg30°的值

二、填空题

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 10 K=1,N

【2】

SUMX=SUMX+X

SUMX2=SUMX2+X*X

10 CONTINUE

AV=SUMX/N

AV2=SUMX2/N

S2=AV2-AV*AV

SIGMA=【3】

END

2、下列FORTRAN程序的功能是将30个学生的考试成绩读入数组A,然后统计并且输出最高的分数以及小于60分、60~80分与大于80分的三个分数段的学生数。请在程序中的下划线处填入合适的内容。

【4】 A(30), B, C(3)

DATA C/3*0/

READ(*,*)A

【5】

DO 10 K=2,30

IF(A(K).GT.B) B=A(K)

10 CONTINUE

DO 30 K=1,30

IF (A(K).LT.60)C(1)=C(1)+1

IF (A(K).GT.80)C(3)=C(3)+1

IF(A(K).LE.80 【6】 A(K).GE.60)C(2)=C(2)+1

30 CONTINUE

WRITE(*,*) B,C

END

3、下列FORTRAN程序的功能是用对分法求出方程4.1x3-5.2x=11.8在区间(1,5)中的一个实数根,要求输出根的近似值和对分次数。请在程序中的下划线处填入合适的内容。

【7】 =4.4*X**3-5.2*X-11.8

DATA XL,XR,N/1.0,5.0,0/

10 N=N+1

X=(XL+XR)/2.0

FX=FUN(X)

IF (ABS(FX).LT.1E-6.OR.N.GE.1000)THEN

WRITE(*,'(1X,A2,F12.7,A5,I4)')'X=',X,'N=', N

ELSE

IF(FUN(XR)*FX.GE.0.0) THEN

XR=X

【8】

XL=X

ENDIF

【9】

ENDIF

END

4、下列FORTRAN程序的功能是计算多项式y=2+2.1x+3.2x3+5.4x5 在x=1.7时的值。主程序调用了函数子程序POLY。请在程序中的下划线处填入合适的内容。

PROGRAM PVALUE

REAL A(6)

DATA A/【10】 /

DATA N,X/6, 1.7/

Y=POLY(A,N,X)

WRITE(*,'(1X,A5,6F5.1)')'a(k)=',A

WRITE(*,'(1X,A2,F5.1,A6,F8.2)')'X=',X,'; Y=',Y

END

FUNCTION POLY(B,M,V)

【11】

POLY=B(1)

FV=1.0

DO 10 K=2, M

FV=FV*V

10 POLY=POLY+【12】

END

5、下列FORTRAN程序的功能是使用筛法筛选出N以内的所有素数并输出。其算法如下:

在N 以内的自然数列中先筛除2的倍数(不包括2);在2之后未筛去的第一个数是3,于是再筛除3的倍数;在3之后未筛去的第一个数是5,于是再筛除5的倍数;如此重复下去,直到遇见筛剩下的第一个数是最接近N的平方根的那个数为止。请在程序中下划线处填入合适的内容。PARAMETER (N=100)

【13】 A(N),P(N)

A(1)=0

DO 10 K=2,N

10 A(K)=K

DO 20 K=3,N

20 IF(MOD(A(K),2).EQ.0)A(K)=0

ISR=SQRT(FLOAT(N))

DO 30 M=3,ISR,2

DO 30 K=M+2, N

30 IF(A(K).NE.0.AND.MOD(A(K),M).EQ.0)【14】

M=1

DO 40 K=1,N

IF(A(K).NE.0)THEN

P(M)=【15】

M=M+1

ENDIF

40 CONTINUE

WRITE(*,'(1X,10I8)')(P(K),K=1,M-1)

END

三、编写程序题

1、以循环来计算 1/1!+1/2!+1/3!+1/4!+……+1/10! 的值。

2、编写一个程序计算圆面积,输入两个参数,一个参数为输入圆的半径长,另一个参数用来返回圆面积。

3、利用选择排序法编制程序,将数组A中所有的数值(5,3,6,4,8,7,1,9,2,10)从小到大排列。

参考答案及评分标准

一、选择题

1、D

2、A

3、D

4、A

5、C

6、B

7、C

8、B

9、C 10、D 11、B 12、C 13、D 14、A 15、A 16、D

17、B 18、C 19、C 20、C

二、填空题

【1】FUNCTION

【2】X=Z(K)

【3】SQRT(S2)

【4】 INTEGER或者REAL

【5】 B=A(1)

【6】.AND.

【7】FUN(X)

【8】ELSE

【9】 GOTO 10

【10】 2.0, 2.1 0.0,3.2, 0.0,5.4

(注:顺序不可颠倒,小数点前后的0可以省略其中的一个。)

【11】DIMENSION B(M) 或者 REAL B(M)

【12】 B(K)*FV 或者 FV*B(K)

【13】INTEGER

【14】A(K)=0 或者 A(K)=0.0

【15】A(K)

三、编写程序题

1、解题程序:

program main

implicit none

integer, parameter :: max=10

integer i

real item

real ans

ans = 1.0

item = 1.0

do i=2,max

item = item/real(i)

ans = ans+item

end do

write(*,*) ans

stop

end program

2、解题程序:

program main

implicit none

real radius, area

write(*,*) "请输入半径长"

read(*,*) radius

call CircleArea(radius, area)

write(*,"(' 面积 = 'F8.3)") area

stop

end program

subroutine CircleArea(radius, area)

implicit none

real, parameter :: PI=3.14159

real radius, area

area = radius*radius*PI

end subroutine

3、解题程序:

program main

implicit none

integer, parameter :: size=10

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

integer :: i,j

integer :: t

do i=1, size-1

do j=i+1, size

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

t=a(i)

a(i)=a(j)

a(j)=t

end if

end do

end do

write(*,"(10I4)") a

stop

end

一、选择题

1、下列关于FORTRAN源程序编辑规则的叙述之中,正确的是( )

A) IMPLICIT语句可以放在REAL语句行之后

B) DATA语句可以在放在紧靠END语句行之前

C) 注释行不可以放在END语句行之后

D) FORMAT语句可以放在PROGRAM语句行之前

2、下列FORTRAN源程序的变量名之中,不符合规则的是( )

A) W B) W3 C) -3 D) W3W

3、若FORTRAN中一个INTEGER型数据占用2个字节,那么该类型的数据值范围是( )

A) -2147484648 2147483647 B) -32768 32767

C) 0 4294967295 D) 0 65535

4、阅读下列程序

X=0.618

WRITE(*,'(E12.4)')X

END

程序运行后显示结果是( )

A) .6180 B) 6.180E-01 C) .0618E+01 D) .6180E+00

5、梯形的上底为A,下底为B,高为H,计算其面积的FORTRAN表达式中错误的是( )

A) 1/2*(AB)*H B) (A+B)*H/2 C) (A+B)/2*H D) 0.5*(A+B)*H

6、要选拔身高T>1.7米且体重W<62.5公斤的人,FORTRAN的逻辑表达式是( )

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.5 D) T.GT.1.7.OR.W.LT.62.5

7、在FORTRAN的变量类型说明语句中没有( )

A) REAl语句 B) CHAR语句 C) INTEGER语句 D) LOGICAL语句

8、一次成功的FORTRAN源程序编译操作,不能( )

A) 同时编译一个主程序和一个子程序 B) 同时编译几个子程序

C) 同时编译一个主程序和几个子程序 D) 同时编译几个主程序

9、阅读下列程序

F=1.0

DO 20,J=3,7,2

DO 20,K=J-1,J

20 F =F*K

WRITE(*,'(13,F8.1)')J,F

END

程序运行结果是

A) 3 6.0 B) 5 120.0 C) 9 5040.0 D) 9362880.0

10、阅读下列程序

CHARACTER*10 W

DO K=1,10

READ *,W

IF (W(1:2).EQ.'AB'.OR.W(1:2).EQ.'ab')WRITE(*,*)'',W ENDDO

END

程序的功能是( )

A) 首字符是A或B的字符串被输出显示

B) 第一、二个字符是AB或ab的字符串被输出显示

C) 首字符是a或b的字符串将被输出显示

D) 第一、二个字符是Aa或Bb的字符串将被输出显示

11、阅读下列程序

LOGICAL L

READ(*,*)A,B

L=A.GT.B

IF(L)THEN

X=B+2*A

ELSE

X=B

END IF

WRITE(*,*)X

END

使用键盘为上述程序输入两个初值4和3,其输出的X值是( ) A) 4.0 B) 3.0 C) 11.0 D) 10.0

12、阅读下列程序

READ(*,*)K

WRITE(*,100)K

100 FORMAT(I5)

END

程序运行时输入初始值12345,那么显示结果是

A) 2345 B) 12345 C) **** D) *****

13、阅读下列程序

INTEGER F

F(X,Y)=X+Y

A=-2.5

B=2.1

B=B+F(A,B)

WRITE(*,'(F3.1)')B

END

程序运行的结果是( )

A) .1 B) .7 C) 2.1 D) 1.7

14、阅读下列程序

A=3.5

CALL SUBA(A,A,A)

WRITE(*,'(F4.1)')A

END

SUBROUTINE SUBA(X,Y,Z)

Y=Y-2.0

Z=Z+X

END

程序运行的结果是( )

A) 7.0 B) 5.0 C) 3.5 D) 1.5

15、阅读下列程序

CHARACTER A*4,B*5,C*4

DATA A,B,C/'BIG’,'MIDDLE','SMALL'/

WRITE(*,20)A,B,C

20 FORMAT(1X,A2,A3,A4)

END

程序运行结果是( )

A) BIGMIDDLE B) ********* C) BIGMIDSMA D) BIMIDSMAL

16、阅读下列程序

N=0

DO 10 K=1,3

N =N+1

M=K*N

10 CONTINUE

WRITE(*,'(1X,2I3)')M,K

END

程序运行结果是( )

A) 9 4 B) 9 3 C) 12 4 D) 12 3(#^)

17、阅读下列程序

FUN(c,d)=a*c+b/d

DATA a,b/1.0,1.0/

WRITE(*,'(F4.1)')FUN(a,b)-FUN(b,a)

END

程序运行结果是( )

A) 0.0 B) 4.0 C) 2.O D) 3.O

18、阅读下列程序

LOGICAL L1,L2,L3,L4,L5

DATA L1,L2,L3/3*.TRUE./

L4=.NOT.L1.AND..NOT.L2.AND.L3

L5=.NOT.L1.OR..NOT.L2.OR.L3

WRITE(*,*)L4,L5

END

程序运行结果是( )

A) T T B) T F C) F F D) F T

19、阅读下列程序

DIMENSION M(3,3)

DATA M/1,2,3,4,5,6,7,8,9/

WRITE(*,100)(M(3,J),J=1,3)

100 FORMAT(1X,3I2)

END

程序运行结果是( )

A) 2 5 8 B) 3 6 9 C) 4 5 6 D) 7 8 9

20、阅读下列程序

INTEGER A(100),G

READ(*,*)N,(A(I),I=1,N)

DO 10 I=1,N-1

G=I

DO 20 J=I+1,N

IF(A(J).LT.A(G))THEN

G=J

ENDIF

20 CONTINUE

K=A(I)

A(I)=A(G)

A(G)=K

10 CONTINUE

WRITE(*,'(1X,10I2)')(A(I),I=1,N)

END

程序运行时输入的初始值是3,6,9,8,则运行结果是( )

A) 6 9 8 B) 8 9 6 C) 6 8 9 D) 9 8 6

二、填空题

1、阅读下列程序,其功能是求出方程2X3-3X2+4X-11=0在区间(1,5)中的一个实数根,运行结果是显示根值和对分次数,使用的是二分算法。请在其中_____处填入适当的内容。

FUN(X)=2.0*X**3-3.0*X**2+4.0*X-11.0

DATA XL,XR,N/1.O,5.0,0/

10 CONTINUE

【1】

X=(XL+XR)/2.0

【2】

IF(ABS(FX).LT.1E-6 .OR.N.GE.1000)THEN

WRITE(*,'(1X,A2,F12.7,A5,14)')'X=',X,'N=',N

ELSE

IF(FUN(【3】)*FX.GE.0.0)THEN

XR=X

ELSE

XL=X

ENDIF

GOTO 10

ENDIF

END

2、阅读下列程序.其功能是计算Y=1+1.1X+1.2X2+1.3X3+1.4X4+1.5X5当X=3.1时的值。主程序调用了函数子程序。请在其中____处填入适当的内容。

PROGRAM PVALUE

【4】

DATA A/1.0,1.1,1.2,1.3,1.4,1.5/,N,X/6,3.1/

【5】

WRITE(*,'(1X,A5,6F5.1)')'a(k)=',A

WRITE(*,'(1X,A2,F5.1,A6,F8.2)')'X=',X,'; Y=',Y

END

FUNCTION POLY(B,M,V)

DIMENSION B(M)

POLY=B(1)

FV=1.0

DO 10K=2,M

FV=FV*V

10 【6】=POLY+B(K)*FV

END

3、函数子程序DTOH能够将一个十进制正整数DEC转换为一个表示十六进制数的字符字符串,其长度不超过8。例如127转换为'7F'。算法是:将DEC除16取余,将所得的商再除16取余,如此反复,直到商和零为止,最后按照逆序输出所得的各个余数。请在其中____处填入适当的内容。

CHARACTER*8 FUNCTION DTOH(DEC)

INTEGER DEC,R,POS

POS=9

DTOH=''

111 CONTINUE

【7】

IF(POS.GE.1)THEN

R=MOD(DEC,16)

IF(R.LT.1O)THEN

【8】=CHAR(ICHAR('0')+R )

ELSE

DTOH(POS:POS)=CHAR(ICHAR('A')+R-10)

ELSE

DTOH='**********'

GOTO999

ENDIF

DEC=DEC/16

IF(【9】)GOTO 111

999 CONTINUE

END

PROGRAM DECHEX

CHARACTER*8 DTOH

WRETE(*,*) DTOH(127)

END

4、有一个十进制的四位数ABCD与一个十进制的三位数CDC的差等于十进制的三位数ABC.下列程序按"ABCD=9876"的样式打印出ABCD这个数。请在其中____外填入适当的内容. INTEGER A,B,C,D

DO 10 A=1,9

DO 10 B=0,9

DO 10 C=1,9

【10】

L=1000*A+100*B+10*C+D

M=100*C+10*D+C

N=100*B+C

IF(【11】)WRITE(*,'(【12】)')'XABCD=',A,B,C,D

10 CONTINUE

END

5、阅读下列程序,其功能是使用筛法选出N以内的所有素数并显示算法在N以内的自然数列中先筛除2的倍数;在2之后筛乘下的第一个数是3,于是再筛除3的倍数;在3之后筛剩下的第一个数是5,于是再筛除5的倍数;如此重复下去,直到遇见筛剩下的第一个数是最接近N的平方根的那个数为止。请在其中____处填入适当的内容。

PROGRAM PRINES

PARAMETER (N=100)

INTEGER A(N),P(N)

DO 10 K=1,N

10 A(K)=K

DO 20 K=3,N

20 IF(【13】.EQ.0)A(K)=0

ISR=SQRT(REAL(N))

DO 30M=3,ISR,2

DO 30K=M+2,N

30 IF(A(K).NE.0.AND.MOD(A(K),M).EQ.0)A(K)=0

M=1

DO 40K=2.N

IF(A(K).NE.0)THEN

【14】

M=M+1

ENDIF

40 CONTINUE

WRITE(*,'(1X,1018)')(P(K), 【15】)

END

三、编写程序题

1、以循环来计算等差数列 1+3+5+7+……+99 的值。

2、利用选择排序法编制程序,将数组A中所有的数值(5,3,6,4,8,7,1,9,2,10)从大到小排列。

3、编制函数GCD(A,B)计算输入的两个整数A,B的最大公因子。

参考答案

一、选择题

1、 B

2、 C

3、 B

4、 D

5、 A

6、 C

7、 B

8、 D

9、 C 10、B 11、C 12、B 13、A 14、C 15、D 16、A

17、B 18、D 19、B 20、C

二、填空题

【1】 N=N+1或N=1+N

【2】FX=FUN(X)

【3】XR

【4】 DIMENSION A(6)或REPL A(6)

【5】Y=POLY(A,N,X)

【6】 POLY

【7】POS=POS-1

【8】DTOH(POS:POS)

【9】 DEC.NE.0或DEC.GT.0

【10】 DO 10 D=0,9或DO 10,D=0,9

【11】L-M.EQ.N或(L-M).EQ.N

【12】A6.411

【13】 MOD(A(K),2)

【14】P(M)=A(K)

【15】K=1,M-1

三、编写程序题

1、解题程序:

program main

implicit none

integer i,sum

sum = 0

do i=1,99,2

sum = sum+i

end do

write(*,*) sum

stop

end program

2、排序程序:

program main

implicit none

integer, parameter :: size=10

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

integer :: i,j

integer :: t

do i=1, size-1

do j=i+1, size

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

t=a(i)

a(i)=a(j)

a(j)=t

end if

end do

end do

write(*,"(10I4)") a

stop

end

3、解题程序:

program main

implicit none

integer, external :: gcd

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

end program

integer function gcd(A,B)

implicit none

integer A,B,BIG,SMALL,TEMP

BIG=max(A,B)

SMALL=min(A,B)

do while( SMALL /= 1 )

TEMP=mod(BIG,SMALL)

if ( TEMP==0 ) exit

BIG=SMALL

SMALL=TEMP

end do

gcd=SMALL

return

end function

大学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笔记 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程序设计复习题 选择题 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

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)

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 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、下列关于"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,这时的除数就是两个数的最大公约数。

Simple算法_fortran语言编写

Cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc Cccc This computer program was copied from the graduate student course program Cccc of the University of Minnesota. Part of it was re-formulated to meet the Cccc personal computer environment. Some inappropriate expressions were also Cccc corrected. The program is used only for teaching purpose. No part of it Cccc may be published. You may use it as a frame to re-develop your own code Cccc for research purpose. XJTU Instructor, 1995.11 **************************************************************************** *----------------------------MAIN PROGRAM----------------------------------- **************************************************************************** LOGICAL LSTOP COMMON/CNTL/LSTOP **************************************************************************** OPEN(08,FILE='teresul') CALL SETUP0 CALL GRID CALL SETUP1 CALL START 10 CALL DENSE CALL BOUND CALL OUTPUT IF(.NOT.LSTOP) GO TO 15 CLOSE(08) STOP 15 CALL SETUP2 GO TO 10 END *--------------------------------------------------------------------------- SUBROUTINE DIFLOW **************************************************************************** COMMON/COEF/FLOW,DIFF,ACOF **************************************************************************** ACOF=DIFF IF(FLOW .EQ.0.0)RETURN TEMP=DIFF-ABS(FLOW)*0.1 ACOF=0. IF(TEMP .LE. 0. ) RETURN TEMP=TEMP/DIFF ACOF=DIFF*TEMP**5 RETURN END *-------------------------------------------------------------------------- SUBROUTINE SOLVE ****************************************************************************

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

Fortran语言

#LOCAL REAL Uds,Uqs,angles,vs,w,o,ang,ta,tb,t0,Ud1,Uq1,E #LOCAL REAL tc,t,mt,pi #LOCAL INTEGER sign,M,nl,n t=TIME tc=$TC nl=DNINT(tc/delt) pi=3.1415926 E=$Udc w=2*pi*50 if(t.lt.delt) then sign=0 M=0 Uds=0 Uqs=0 angles=0 vs=0 o=0 ang=0 ta=0 tb=0 t0=0 Ud1=0 Uq1=0 n=1 end if if(mod(n,nl).lt.1E-7) then !初始化变量 M=M+1 Uds=$Ud Uqs=$Uq angles=$angle !变换到alphabeta坐标直角坐标

Ud1=cos(angles)*Uds+sin(angles)*Uqs Uq1=sin(angles)*Uds-cos(angles)*Uqs ! Ud1=$Ud ! Uq1=$Uq !生成矢量的模和角度 vs=sqrt(Ud1**2+Uq1**2) if(Ud1.gt.0.and.Uq1.ge.0) then ang=atan(Uq1/Ud1) else ang=atan(Uq1/Ud1)+2*pi end if if(Ud1.lt.0) then ang=atan(Uq1/Ud1)+pi end if if(Ud1.eq.0) then if(Uq1.ge.0) then ang=pi/2 else ang=3*pi/2 end if end if !判断矢量的所属,计算角度 if(ang.ge.0.and.ang.lt.pi/3) then sign=1 o=ang ! o=w*t end if if(ang.ge.pi/3.and.ang.lt.2*pi/3) then sign=2 o=ang-pi/3 ! o=w*t-pi/3 end if if(ang.ge.2*pi/3.and.ang.lt.3*pi/3) then sign=3 o=ang-2*pi/3 ! o=w*t-2*pi/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

fortran初步学习资料

第一章: Fortran语言程序设计初步 Fortran语言的发展概况 本节介绍Fortran的起源与发展历史,讲述Fortran由产生到形成标准FortranIV、Fortran77,并进一步形成新标准Fortran90/95的发展历程。 1.1.1 Fortran的历史 a)a)FortranI FortranIV Fortran是目前国际上广泛流行的一种高级语言,适用于科学计算。Fortran 是英文FORmula TRANslatio n的缩写,意为“公式翻译”。它是为科学、工程问题中的那些能够用数学公式表达的问题而设计的语言,主要用于数值计算。这种语言简单易学,因为可以像抄写数学教科书里的公式一样书写数学公式,它比英文书写的自然语言更接近数学语言。Fortran语言是第一个真正推广的高级语言。至今它已有四十多年历史,但仍历久不衰,始终是数值计算领域所使用的主要语言。Fortran语言问世以来,根据需要几经发展,先后推出形成了很多版本。 第一代Fortran语言是在1954年提出来的,称为FortranI。它于1956年在IBM 704计算机上得以实现。在此之前编写计算机程序是极为繁琐的,程序员需要详细了解为之编写代码的计算机的指令、寄存器和中央处理器(CPU)等方面的知识。源程序本身是用数学符号(八进制码)编写的,后来采用了助记符,即所谓机器码或汇编码,这些编码由汇编程序转换为指令字。在50年代书写和调试一个程序要很长时间,因为用这种方式编写程序显然是很不方便的,尽管它能使CPU高效地工作。正是这些原因,促使由John Backus率领的IBM公司的一个小组研究开发最早的高级程序设计语言Fortran。其目的是开发一种容易理解、简单易学又能几乎像汇编一样高效运行的语言,他们取得了极大的成功。Fortran 语言作为第一种高级语言不仅是一次创新,也是一次革命。它使程序员摆脱了使用汇编语言的冗长乏味的负担,而且它使得不再只是计算机专家才能编写计算机程序,任何一名科学家或工程技术人员,只要稍加努力学习和使用Fortran,就能按自己的意图编写出用于科学计算的程序。 经过不断发展,FortranI形成了很多不同版本,其中最为流行的是1958年出现的FortranII,它对FortranI进行了很多扩充(如引进了子程序),FortranII 在很多机器上得以实现。其后出现的FortranIII未在任何计算机上实现。1962年出现的FortranIV对原来的Fortran作了一些改变,使得FortranII源程序在FortranIV编译程序下不能全部直接使用,导致了语言不兼容的问题。这样就形成了当时同时使用FortranII和FortranIV两种程序设计语言的局面。

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

相关文档
最新文档