A. Fortran字符集中的任何一个字符,只要出现在第6列,该行就是续行
B. Fortran字符集中的非零非空字符,只要出现在第6列,该行就是续行
D.第6列不允许是8
【答案】B
【解析】当写入一个非零非空字符时,表示此行是上一行的续行。当一个语句很长,在
行中写不下时,允许有续行,续行必须在第6列标志出来
2.下面的程序段中,循环执行的次数为()。
Do10,i=-2,-11,-3
10 CONTINUE
B.5
C.6
【答案】D
【解析】按照循环次数的计算公式 CYCLENUM=INT((e2-e1+e3)/e3)计算循环体执行
的次数为(-11-(-2)+(-3))/(-3)=4次
3.下面程序执行后,输出的K值为()。
PROGRAM ffff
Do10K=1,15,4
IF(MOD(K, 10). EQ 0)GOTO 15
10 WRITE(*, *)K
END
A.159
B.1591317C.15913
D.10
【答案】C
【解析】程序的循环终端语句为输出语句,输出循环控制变量的当前值。循环体内的I语句由于K值不可能等于10,对循环过程没有实质性的影响。当循环执行到K=17时终止,但输出的K值为13。
4下面转移语句中不合法的是()。
A. GOTO 100
B.I=3
GoTO(10,100,1000)I
C. REAL I
I=3.0
GOTo(1, 2, 3)I
D. ASSIGN 100 TO I
GOTO I,(10,100,200
【答案】C
【解析】计算转移语句与赋值转移语句中的I必须是整型变量,而选项C中的I是实型变量,故选项C不合法。
5.下列程序的错误是()。
Do10m=1.10
n=m *k
WRITE(*,幸)n
10 CONTINUE
CONTINUE
A.没有共用一个循环终端语句
B.内外循环控制变量不同
C.遗漏循环参数c3
D.内循环没有完全包含在外循环中
【答案】D
【解析】在DO循环中,内外循环可以共用一个循环终端语句,但不是必须的;在DO循环中,内外循环控制变量不能相同;在DO循环中,步长e3不写时默认为1,故e3可以省略;根据Do循环使用规则,内外循环不能交叉,程序中却出现了此错误,应将号码10与20对换
6.有如下一段程序
IMPLICIT REAL(A-C, I -M)
INTEGER 11, IM
REAL M5, P, K
下面几组变量中全部为整型变量的是()。
B.,M3,N,A4
C. KI, P, Q
D. B1. MI. A6
【答案】B
【解析】由于类型说明语句优先于 IMPLICIT说明语句, IMPLICIT'说明语句优先于“I-N规则”,由此可得:凡是以字母A、B和C开头(除A4被明确说明为整型外)的变量都为实数;凡是以字母I、J、K、L和M开头(除Ⅱl、M和M3被明确说明为整型外)的变量都为实数;其他未加以说明的变量按“I-N规则”确定类型。
7.下列程序运行后,输出的结果是()
DIMENSION A(3),B(3, 2)
DATA((B(I,J)I=1,3),J=1,2)/1,2,3,4,5,6
Do10K=1,3
WRITE( * 100)A
100 FORHAT(IX, 611)
B.246
C.135
D.456
【答案】D
【解析】本程序中通过DATA语句对数组B赋值的结果为矩阵25,Do循环语句的功是将数组B的第2列的元素的值依次赋值给数组A。因此,A(1)=4、A(2)=5、A(3)=6,所以格式输出数组A后输出的结果为45678.阅读下列 Fortran程序
020I=1.10.2
N=N+1
D10J=10,1
10N=N+1
20 CONTINUE
WRITE(*,*)N
END
运行上述程序后,输出的N值为()。
A.5
C
【答案】A
【解析】本程序的主要考点为DO的循环次数的确定。在此程序中,有个嵌套的DO循环,其中外层DO循环的循环次数为IT((10-1+2)/2)=5,而内层DO循环的循环次数为INT((1-10+1)/1)=-8,因此内层DO循环的循环次数为0,语句N=N+I共被重复执行了5次,所以最终变量N的值为5。
9.下列程序执行后的输出结果是()。
Do10I=1.2
Do10J=1,2
10K=K*
WRITE(*,*)K
END
C.0.5
【答案】B
【解析】I-N隐含规则:在一个程序单位中,若无其他说明,则以字母1,J,K,L,M和N开头的变量名隐含定义为整型;其他字母打头的为实型。进入DO循环,当1=1,J=1时,K=K*DJ=1×1/1=1,当1=1,J=2时,K=K*DJ=1×1/2=0(两个整型数进行运算,结果仍是整型,所以1/2=0),零乘以任何数都为零,所以经过后续的两次循环运算后K仍为零,故整型变量K=0。
10.下列程序执行后的输出结果是()
Do10I=1,6,2
D010J=1,6,3
IF (K. LT I*K=I*J
10 CONTINUE
WRITE(*,*)K
【答案】C
【解析】在 Fortran语言中,有6个关系运算符,分别是.LT.(小于),LE(小于或等
于),EQ.(等于),GE.(大于或等于),CT.(大于)和.NE.(不等于),算术关系表
达式的结果是一个逻辑值。本题中,I的最大值为5,在第二个DO循环中,J的初值是
21
1,所以J的最大值也为5。因此,K=5×5=25。
81.给定如下子程序:
SUBROUTINE TTT(M, A)
B=M*3
A=A*B
RETURN
END
11.下面的调用语句中,正确的是()。
A. CALL TTT(M, M)
B. CALL TTT(Y, Y)
C. Y=TTT(M, A)