资源描述
一、选取题
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在元以上(含元)且5000元如下)不含5000元)"职工,应当使用逻辑表达式是( )
A) M .GE. .AND. M .LE. 5000 B) M .GE. .OR. M .LE. 5000
C) M .GE. .AND. M .LT. 5000 D) M .GE. .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) - B) -32768 32767
C) 0 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
展开阅读全文