FORTRAN程序设计复习题及答案.docx

上传人:b****1 文档编号:23153872 上传时间:2023-05-08 格式:DOCX 页数:24 大小:23.82KB
下载 相关 举报
FORTRAN程序设计复习题及答案.docx_第1页
第1页 / 共24页
FORTRAN程序设计复习题及答案.docx_第2页
第2页 / 共24页
FORTRAN程序设计复习题及答案.docx_第3页
第3页 / 共24页
FORTRAN程序设计复习题及答案.docx_第4页
第4页 / 共24页
FORTRAN程序设计复习题及答案.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

FORTRAN程序设计复习题及答案.docx

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

FORTRAN程序设计复习题及答案.docx

FORTRAN程序设计复习题及答案

FORTRAN程序设计复习题

一、选择题

B

(1)下列各FORTRAN表达式中合法的是

A)S+T*2P>=0.0B).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)33B)1C)5D)3

A(7)下列FORTRAN77表达式中,合法的是:

A)0.0.LE.X.AND..NOT.X.GE.10.0B)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

提示:

A)相当于0.0.LE.X.AND.(.NOT.(X.GE.10.0))

D(8)关于编译一个FORTRAN源程序文件,下列说法中错误的是

A)允许编译只有一个主程序而没有子程序的源文件

B)允许编译有多个子程序的源文件

C)允许编译只有一个子程序而没有主程序的源文件

D)允许编译有多个主程序的源文件

C(9)在FORTRAN77源程序中,续行标志符必须放在

A)第1列B)第1-6列C)第6列D)第5列

D(10)下列关于"SUBROUTINEMAP(X,Y)"语句行的叙述中,不正确的是

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

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

提示:

子程序无返回值,自定义函数才有)

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

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

提示:

2/4默认等于整型,0.5=》0.0

D(12)FORTRAN表达式"MOD(4.9,1.3)"的值是

A)1.3B)0.0C)4.9D)1.0

A(13下列FORTRAN运算符中,优先级最低的是

A)逻辑运算符.AND.B)算术运算符*

C)关系运算符>=D)算术运算符+

A(14下列语句函数的定义中正确的是

A)F(X,Y)=(X+Y)/(X*Y)+7.0B)FUNCTIONFUN(I,J,K)=3*I+2*J+0.5*K

C)H(A,B,C(I))=SIN(A)+SIN(B)+C(I)D)S(A,B,C)=A*B+S(A*A,B,C)

B(15下列标识符中,不属于FORTRAN常量的是

A).TRUE.B)FALSEC)ˊROOT=ˊD)ˊ123.0ˊ

B(16)"整型变量M能被整型变量K整除"的FORTRAN77表达式是

A)MOD(M,K)=0(MOD(M,K)==0)B)M-M/K*K.EQ.0

C)MOD(K,M)=0D)MOD(M,K)=0==.TRUE.

C(17)设有下列数组说明语句:

REAL:

:

A(1:

10,-1:

10)

该数组说明语句定义了数组A中的元素个数为

A)100B)110C)120D)121

A(18)按隐含规则(默认为整型),语句

IP=3.1415926

执行之后,IP的值是

A)3B)3.1416C)3.141592D)3.141593

D(19)下列数据中,不符合FORTRAN常量表示法的是

A)-25.6B)2.758D3C)‘FOOT’‘=’D)TRUE

C(20)设C是复型变量,A与B为有定义的实型变量,下列赋值语句中合法的是

A)C=A+BB)C=(3.5,1.5**2)

C)C=(2.0,3D-2)D)C=(A+B,A-B)

B(21)有矩阵(数组)

下列DATA语句中正确的是

A)DATAB/4*1.0,4*2.0/B)DATA((B(I,J),J=1,4),I=1,2)/4*1.0,4*2.0/

C)DATAB/4*(1.0,2.0)/D)DATA((B(I,J),I=1,2),J=1,4)/4*1.0,4*2.0/

C(21)在使用DO循环及循环嵌套时,下列叙述中正确的是

A)不仅可以从循环体内转到循环体外,也可以从循环体外转到循环体内

B)外循环与内循环的DO循环控制变量可以不同.也可以相同

C)可以从循环体内转到循环体外,但不能从循环体外转到循环体内

D)DO循环控制变量在循环体内可以再赋值,也可以被引用

B(22)在FORTRAN表达式中,各种运算的顺序是

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

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

D(23)赋值语句

X=4**(6/12)=4**0=1.0

执行后,实型变量X的值是

A)2B)2.0C)1D)1.0

D(24)为了保证正确出数据,格式编辑符Ew.d中w与d的关系应该是

A)w>dB)w>d+2C)w>d+4D)w>d+6

C(25)设下列各语句中用到的数组都已定义,则下列语句中正确的是

A)READ(*,*)(I,A(I),I=1,10)B)READ(*,*)(B,(I,J),I=1,10,J=1,10)

C)READ(*,*)N,(A(I),I=1,N)D)READ(*,*)(I=1,10,A(I))

A(26)下列DO语句中,不正确实现循环的是(I-N规则:

I-N会被视为整型)

A)DO10S=-1.6,-5.3,-0.4B)DO10K=-1.6,-5.3,-0.4

C)DO10S=-5.3,-1.6,-0.4D)DO10K=1.6,5.3,-1.4

D(27)下列说法中正确的是

A)块IF结构中的THEN块或ELSE块不能是空块

B)块IF结构中至少有一个ELSEIF语句或ELSE语句

C)每个ELSEIF语句要有一个对应的ENDIF语句

D)一个块IF结构中只能有一个ENDIF语句

A(28)下列数组说明语句中正确的是

A)INTEGERA(-1:

5,0:

6)B)REALM(10:

5)

C)DOUBLEY(1:

N+1)D)DOUBLEZ(14)

B(29)设有一个FORTRAN77子程序如下:

SUBROUTINESS(X,Y,S,T)

S=X+Y(S,T为传出,即需要输出的(相当于求圆的面积中的area),只能T=X*Y为确定的数;X,Y为传入(相当于radius),可为表达式)

END

调用上述子程序的正确语句是

A)CALLSS(2.4,W*W,5,5.9,Z)(多了一个)

B)CALLSS(0.0,4.2,P,Q,R)(多了一个)

C)CALLSS(F,G,7.2,5.1)

D)CALLSS(4.4*I,5.8*J,C,D)(I,J可先赋值)

A(30)在下列语句函数的定义中正确的是

A)F(X,Y)=(X+Y)/(X*Y)+7.0B)FUNCTION(I,J,K)=3*I+2*J+0.5*K

C)H(A,B,C(I))=SIN(A)+SIN(B)+C(I)D)S(A,B,C)=A*B+S(A*A,B,C)

B(31)COMMON语句的功能是

A)给同一程序模块中的若干变量分配同一存储单元

B)给不同程序模块中的变量分配相同的存储单元

C)给程序中任意两个变量分配相同的存储单元

D)给同一程序模块中的不同变量分配相同的存储单元

B(32)下列表达式中值为整数4的是

A)SQRT(16.0)B)27/6C)16**0.5D)4*1.0

C(34)语句K=2+3.0**2/2执行后,整型变量K的值是

A)6.5B)5C)6D)7

C(36)适用于字符型I/O的FORTRAN77格式编辑将是

A)Fw.dB)Iw.dC)AD)Gw.d

D(37)给定子例行程序如下

SUBROUTINESUB(K,A)

B=K+2(K为整型,B)错误;A不是整型,A)错误;K为传入,可为表达式,

A=A+BA为传出,不能为表达式)

END

下列调用语句中正确的是

A)CALLSUB(N,N)B)CALLSUB(X,X)

C)CALLSUB(N+2,X)D)CALLSUB(N,X+3)

C(38)下列FORTRAN语句中,正确的是

A)READ(*,*)(N,A(K),K=1,N)B)WRITE(*,*)(M(K,J),K=1,10,J=1,10)

C)WRITE(*,*)(10,A(K),K=1,10)D)DATAA,B,C/2*0.0/

C(39)对于下列给定的FORTRAN说明和赋初值语句:

INTEGERA(2,2)

DATAA/3,4,5,6/

数组元数A(2,1)的初值为

A)3B)5C)4D)6

C(40)下列对公用区的说明语句中错误的是

A)COMMONA(5),BB)COMMON/AB/A(5),B

C)COMMONAB/A(5),B/D)COMMON//A(5),B

D(41)下列各逻辑IF语句中正确的是

A)IF(X<0.0)THEN10

B)IF(X>=0.0).AND.(X.LT.1.0)Y=2*X+1.0

C)IF(0.0>=X<=1.0)Y=2*X+1.0

D)IF(X>=0.0.AND.X<=1.0)Y=2*X+1.0

二、阅读题

1、阅读下列FORTRAN程序:

programexample

reala,b,c

a=1.0

b=2.0

c=3.0

write(*,"(3(F5.2))")a,b,c

end

程序运行的结果是:

1.002.003.00

 

2、阅读下列FORTRAN程序:

programexample

integer:

:

a=1

integer:

:

b=2

real:

:

c

c=a/b

write(*,"(F5.2)")c

end

程序运行结果是:

0.00

3、阅读下列FORTRAN程序:

programexample

implicitnone

integerrain,windspeed

write(*,*)"Rain:

"

read(*,*)rain

write(*,*)"Wind:

"

read(*,*)windspeed

If(rain>=500.or.windspeed>=10)then

write(*,*)"停止上班上课"

else

write(*,*)"照常上班上课"

endif

stop

end

运行上述程序时,如果从键盘输入

Rain:

505<回车>

Wind:

8<回车>

则最后输出的结果为:

停止上班上课

4、阅读下列FORTRAN程序:

programexample

implicitnone

reala,b,ans

characteroperator

read(*,*)a

read(*,"(A1)")operator

read(*,*)b

selectcase(operator)

case('+')

ans=a+b

case('-')

ans=a-b

case('*')

ans=a*b

case('/')

ans=a/b

casedefault

write(*,"('Unknownoperator',A1)")operator

stop

endselect

write(*,"(F6.2,A1,F6.2,'=',F6.2)")a,operator,b,ans

stop

end

运行上述程序时,如果从键盘输入

100<回车>

?

<回车>

200<回车>

则最后输出的结果为:

Unknownoperator?

5、阅读下列FORTRAN程序:

programexample

implicitnone

integeri

integerstrlen

integer,parameter:

:

key=2

character(len=20):

:

string

write(*,*)"Encodedstring:

"

read(*,*)string

strlen=len_trim(string)

doi=1,strlen

string(i:

i)=char(ichar(string(i:

i))+key)

enddo

write(*,"('String:

',A20)")string

stop

end

BCDIJK<回车>

则最后输出的结果为:

DEFKLM

6、阅读下列FORTRAN程序:

programexample

implicitnone

integeri,j

doi=1,2

doj=2,3,2

write(*,"(I2,I2)")i,j

enddo

write(*,*)"anothercircle"

enddo

stop

end

程序运行的结果是:

12

anothercircle

22

anothercircle

(按输出格式,1、2前均有一空格。

若题目无特殊说明,不需表达出;若有说明,则空格用“□”表示)

7、阅读下列FORTRAN程序:

programexample

implicitnone

integer:

:

dest=6

integerfloor

dofloor=1,dest

if(floor==2.or.floor==4)cycle

write(*,*)floor

enddo

stop

end

程序运行的结果是:

1

3

5

6

8、阅读下列FORTRAN77程序:

programexample

implicitnone

integer,parameter:

:

limit=10

integercounter

integer:

:

ans=0

counter=1

dowhile(counter<=limit)

ans=ans+counter

counter=counter+2

enddo

write(*,*)ans

stop

end

程序运行的结果是:

25

9、阅读下列FORTRAN程序:

programexample

implicitnone

integer,parameter:

:

students=5

integer:

:

student(students)=(/80,90,85,75,95/)

integeri

dowhile(.true.)

write(*,*)"Query:

"

read(*,*)i

if(i<=0.or.i>students)exit

write(*,*)student(i)

enddo

stop

end

运行上述程序时,如果从键盘输入

3<回车>

则最后输出的结果为:

85

10、阅读下列FORTRAN程序:

programexample

implicitnone

integer,parameter:

:

L=2,M=3,N=2

real:

:

A(L,M)=(/1,2,3,4,5,6/)

real:

:

B(M,N)=(/1,2,3,4,5,6/)

real:

:

C(L,N)

integer:

:

i,j,k

doi=1,L

doj=1,N

C(i,j)=0.0

dok=1,M

C(i,j)=C(i,j)+A(i,k)*B(k,j)

enddo

enddo

enddo

doi=1,L

write(*,*)C(i,:

enddo

stop

end

程序运行的结果是:

2249

2864

11、阅读下列FORTRAN程序:

programexample

implicitnone

integer:

:

i,j

loop1:

doi=1,3

loop2:

doj=1,3

if(i==3)exitloop1

if(j==2)cycleloop2

write(*,"('(',i2,',',i2,')')")i,j

enddoloop2

enddoloop1

stop

end

程序运行的结果是:

(1,1)

(1,3)

(2,1)

(2,3)

12、阅读下列FORTRAN程序:

programexample

implicitnone

real:

:

a=1.0

callShowInteger(a)

callShowReal(a)

stop

end

subroutineShowInteger(num)

implicitnone

integer:

:

num

write(*,*)num

return

end

subroutineShowReal(num)

implicitnone

real:

:

num

write(*,*)num

return

end

程序运行的结果是:

随机数

1.000000

13、阅读下列FORTRAN程序:

programexample

implicitnone

integer,parameter:

:

row=2

integer,parameter:

:

col=2

integer:

:

m(row,col)

integerr

integerc

data((m(r,c),r=1,2),c=1,2)/1,2,3,4/

write(*,"(I3,I3,/,I3,I3)")((m(r,c),c=1,2),r=1,2)

stop

end

程序运行的结果是:

13

24

14、阅读下列FORTRAN程序:

programex0805

implicitnone

integer:

:

a=1

integer:

:

b=2

write(*,*)a,b

calladd(a)

calladd(b)

write(*,*)a,b

stop

end

subroutineadd(num)

implicitnone

integer:

:

num

num=num+1

return

end

程序运行的结果是:

12

23

15、阅读下列FORTRAN程序:

programexample

implicitnone

integer,parameter:

:

size=10

integer:

:

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

integer:

:

i,j

integer:

:

t

doi=1,size-1

doj=i+1,size

if(a(i)>a(j))then

t=a(i)

a(i)=a(j)

a(j)=t

endif

enddo

enddo

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

stop

end

程序运行的结果是:

12345678910

16、阅读下列FORTRAN程序:

programexample

implicitnone

real:

:

a=1

real:

:

b=2

real,external:

:

add

write(*,*)add(a,b)

stop

end

functionadd(a,b)

implicitnone

real:

:

a,b

real:

:

add

add=a+b

return

end

程序运行的结果是:

3.000000(类似的题目,写3.0亦可,但不可写3)

17、阅读下列FORTRAN程序:

programexample

implicitnone

integer:

:

a,b

commona,b

a=1

b=2

callShowCommon()

write(*,*)a,b

end

subroutineShowCommon()

implicitnone

integer:

:

num1,num2

commonnum1,num2

write(*,*)num1,num2

return

end

程序运行的结果是:

12

12

18、阅读下列FORTRAN程序:

moduleglobal

implicitnone

reala,b

commona,b

endmodule

programexample

useglobal

implicitnone

a=1.0

b=2.0

ca

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

当前位置:首页 > 人文社科 > 视频讲堂

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

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