全国计算机等级考试二级资料
1998年4月全国计算机等级考试二级笔试试卷Fortran语言
 

1998年4月二级笔试试题FORTRAN
Ⅰ 计算机基础知识

Ⅱ 语言部分

21、下列21中,所指定的FORTRAN表达式都是正确的。

①D=B * B - 4 * A * C ②MOD(M,N).NE.O

③.NOT.FALSE..OR..NOT..TRUE ④A.GT.B.EQ.A.LT.C

⑤π*R**2 ⑥3*E-2

⑦A.GT.B.EQ..TRUE. ⑧′123′//′ABC′

A、①、②、③ B、⑥、⑦、⑧ C、④、⑤、⑥ D、②、⑥、⑧

22、执行下列程序,输入3456.789,则输出的结果为22。

READ(8 ,100) S

WRITE( 8,100)

100 FORMAT(2F4.1)

END

A.345.6 B.45.6 C.456. D.* * *

23、下列程序执行后输出23

DIMENSION M(5)

READ(*,*)(M(I),I=1,5)

DO 10 I=1,5

10 WRITE(*,22)(M(J),J=1,I)

22 FORMAT(1X,3I3)

END

A、7 B、8 C、9 D、5

24、FORTRAN 77规定,变量类型的优先顺序是24 。

A、隐含约定(I-N规则)、Implicit说明、类型说明

B、类型说明、隐含约定(I-N规则)、Implicit说明

C、类型说明、Implicit说明、隐含约定(I-N规则)

D、Implicit说明、类型说明、隐含约定(I-N规则)

25、设T=.TRUE.F=.FALSE.下列表达式中值为.TRUE.的是25。

A、.T.AND.F.AND.7.GE.4

B、T.AND..NOT.T.AND.T

C、((T.OR.F).AND.(T.AND.5.LE.4)).EQV.(.NOT.T.OR.(5.GE.1.AND.F))

D、.NOT.(T.OR.F).NEQV.(T.AND.8-2.EQ.4)

26 、下面循环语句执行后,SUM的值是26。

DO 10 I=1,5

SUM=0

DO 10 J=I,4,-1

10 SUM=SUM+I+J

A、0.0 B1.9.0 C.27.0 D.76.0

27、下列语句中,正确的语句函数定义语句是 27 。

A、FA(I,I)=8*I+I B、FB(B(5),X)=X+B(5)

C、FC(X,8.)=X*X-SQRT(8.) D、FD(X)=MOD(X,2.)+SQRT(X)

28、在辅程序单位的各种变元中,一定要在哑元表中出现的是 28 。

A、可调数组名 B、常数组名 C、可调维变量名 D、变量名

29、下列符号名中,可作为有名公用区名的是 29 。

①变量名 ②数组名 ③外部函数名 ④内部函数名

⑤子程序名 ⑥主程序名 ⑦语句函数名

A、①、②、③、④ B、①、②、④、⑦ C、①、②、⑥、⑦ D、③、④、⑤、⑥

30、FORTRAN语言的文件读写单位是 30 。

A、字节 B、扇区 C、字长 D、记录

二、填空题

1、下述程序执行后,L(3,1)=(1) 。L(2,2)= (2) ,L(1,3)= (3)。

INTEGER L(3,3)

DATA L/9*0/

I=2

J=3

L(I,J)=1

DO 10 K=2,9

I=I+1

J=J+1

IF(J.GT.3.AND.I.LE.3)THEN

J=1

ELSE IF(J.LE.3.AND.I.GT.3)THEN

I=1

ELSE IF(I.GT.3.AND.L(I,J).NE.0))THEN

& OR.(J.LE.3.AND.I.LE..3.AND.L(I,J).NE.0))THEN

I=I-1

J=J-2

10 CONTINUE

PRINT′(6X,3I3)′,((L(I,J),J=1,3),I=1,3)

END

2、下列程序执行后输出的结果是 (4) ,(5)。

FUNCTION F(X,Y)

INTEGER F,X,Y

X=S+Y

Y=X*Y

F=X/Y

END

INTEGER F,FF,FFF

DO 10 I=1,0,1

FF=2*F(I,I)

10 PRINT *,FF

FFF=F(I,I)+F(I,I)

PRINT *,I,FFF

END

3、下述程序执行后,输出的第一行是(6),第二行是(7)。

REAL A(2,2,-1,:1)

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

F=FUN(A(1,2,0),3,A(2,1,1))

WRITE(*,′(1X,2HF=,F5.1)′)F

END

FUNCTION FUN(B,N,C)

REAL B(N+1)

FUN=3*C

DO 11 I=1,N

FUN=FUN+B(I)

11 CONTINUE

C=B(I)

WRITE(*,′(1X,2HC=,F5.1)′)C

END

4、下列程序运行后,C(2)=(8),N=(9)。

CHARACTER A(5),B*5,C(2)*10,D*4

DATA A/′1′,′2′,′3′,′4′,′5′/,B/′′/

D=′AB′

C(1)=′ABCDE′

DO 10 I=1,5

B(I:I)=C(1)(6-I:6-I)

10 C(2)=B//A(I)

N=LEN(D//A(1)+INDEX(C(1),D)

WRITE(*,*)C(2),N

END

5、下述程序执行后,输出的第一行是(10),第二行是(11)

SUBROUTINE COMP(A,B)

COMMON X,Y

A=X+Y

B=X-Y

END

COMPLEX X,Y

COMMON X,Y

X=(3.0,4.0)

Y=(4.0,3.0)

CALL COMP(X,Y)

CALL COMP (X,X)

CALL COMP(Y,X)

PRINT 10,X,Y

10 FORNAT(1X,′(′,F5.1,′,′,F5.1,′)′)

END

6、下列程序执行后,输出的第一行是 (12),第二行是(13)。

EXTERNAL SIN

X=60.0

CALL F1(X,Y,SIN)

Y=30.0

CALL F2(X,Y)

END

SUBROUTINE F1(X,Y,FUN)

Y=FUN(X/18-*3.1415926)

PRINT*,X,Y

END

FUNCTION SIN(X)

SIN=COS(X)

END

SUBROUTINE F2(X,Y)

INTRINSIC SIN

CALL F1(Y,X,SIN)

END

7、下列程序执行后输出的结果是 (14),(15)。

INTEGER W(6)

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

OPEN(1,FILE=′CHA′)

DO 10 I=1,6

10 WRITE(1,′(15)′)I*I

REWIND(1)

DO 20 I=1,6,2

20 READ(1,′(6I5)′)W(I)

WRITE(*,′(1X,2I5)′)W(3),W(4)

CLOSE (1)

END

8、函数FACTOR(M,FAC,N)的功能是:计算正整数M(M>2)的除自身以外的所有不同因子之和。因子个数存于N中且不超过100。方法是:M被由2开始的逐个自然数来除,若某次相除得到两个互异因子,由小者依次存入数组FAC的左端,大者逐个存入FAC的右端;若只得一个因子,由该因子存入FAC的左端,直至全部因子求毕,最后将所有因子从小到大集中于FAC的左端。例如:M=16,其因子为1,2,4,8,因子之和为15,因子个数为4。

RUNCTION FACTOR(M,FAC,N)

INTEGER FACTOR,FAC(100),SUM,R

FAC(1)=1

L=1

R=100

SUM=1

I=2

10 K=M/I

IF(K*I-M.EQ.0)THEN

IF(I*I.NE.M)THEN

L=L+1

(16)

(17)

R=R-1

SUM=SUM+I+K

ELSE

L=L+1

(18)

SUM=SUM+I

ENDIF

ENDIF

I=I+1

FI(I.LT.K)GOTO 10

DO 20 I =(19)

FAC( (20) )=FAC(I)

20 CONTINUE

N=L+100-R

FACTOR=SUM

END

INTEGER FAC(100),FACTOR

READ*,MM

NN=FACTOR(MM,FAC,N)

WRITE(*,′(1X, ″Factors are:″/1X,20I4)′)(FAC(I),I=1,N)

END

9、用辛普生法则求定积分的方法计算由积分定义的函数

公式空白……

辛普生法则为:首先将被积区间3n等分,h=b-a ,求积公式为

3n

公式空白……

 

用语句函数定义被积函数,本程序求x=sin00 至x=sin890的函数值。

FUNCTION ELLIPTIC(X)

PARAMETER(PI=3.1415926,N=200)

(21)

A=0.

B=PI/2

(22)

S=G(A)=G(B)

DO 10 J =1,N

(23)

X2=X1+H

X3=X2+H

(24)

10 CONTINUE

(25)

END

PROGRAM MAIN

PARAMETER(PI+3.1415926,RD=PI/180.)

DO 15 I=0,89

X=SIN(RD*I)

Y=ASIN(X)

PRINT 20,INT(Y/RD+0.05),ELLIPTIC(X)

20 RORMAT(1X,′X=′,I2,′ELLIPTIC(X)= ′, F7.4)

15 CONTINUE

END

10、设某个字符串最多有80个字符,另有一个最多有10个字符的短串,下面程序是从字符串LINE中找出短字符串STR(此串的最右边的空格要去掉)。同时自左向右逐个搜索,如果找到,则输出找到的信息及STR首字符出现的位置,未找到则输出信息“not found!”。

CHARACTER LINE * 80, STR*10

LOGICAL FLAG

READ *, LINE,STR

DO 10 I=(26)

IF(STR(I:I).NE. ′′)THEN

K=I

(27)

ENDIF

10 CONTINUE

15 FLAG=.FALSE.

DO 20 I=1,80-K+1

DO 30 J=(28)

IF(LINE( (29) ).NE.STR(J:J))THEN

FLAG=.FALSE.

GOTO 20

ELSE

(30)

ENDIF

30 CONTINUE

IF(FLAG)THEN

PRINT 35,STR,I

35 FORMAT(′is found and its place in LINE is from′,i2,′th′)

STOP

ENDIF

20 CONTINUE

PRINT *,′not found!′

END



[ 2005年8月4日 ]  返回上一级目录