Fortran模拟试卷1-8 联系客服

发布时间 : 星期六 文章Fortran模拟试卷1-8更新完毕开始阅读689aef09844769eae009ed4a

FORTRAN90模拟试题四(笔试部分)

一、 选择题(从4个可选答案中选择一个正确答案添入空白处)

1. 下面是5个准备用作子程序(辅程序)的形参,四组选择中其形参均正确的是 。

①常数符号名 ②变量名 ③数组元素名 ④形式过程 ⑤数组名 A.①③⑤ B.②③④ C.①③④ D.②④⑤ 2.语句OPEN(3,FILE=‘ABC’,ACCESS=‘DIRECT’,RECL=40)打开的是 文件。

A.有格式顺序存取 B.无格式顺序存取 C.有格式直接存取 D.无格式直接存取

3.辅程序引用时,某实参可为常数、函数引用及表达式时,其相应形参是 。

A.变量名 B.数组名 C.过程名 D.*

4.并非所有的标准函数名均可作为过程形实结合的实参,例如 就不能。 A.ABS B.SIN C.REAL D.LOG

5.以下程序片段中其值均为9的元素是 。 INTEGER::N(-1:1,-1:1,-1:1)

N=RESHAPE((/1,2,3,4,5,6,7,8,9,10,11,12,13,14,13,12,11,10,9,8,7,6,5,4,3,2,1/),(/3,3,3/))

A.N(1,1,-1)与N(-1,-1,0) B.N(1,1,0)与N(-1,-1,0)

C.N(1,1,1)与N(1,-1,-1) D.N(1,1,-1)与N(-1,-1,1)

6.下列数据中,不符合FORTRAN90常量表示的是 。

A.-25.6 B.3.2344D0 C.?BOOT??=? D.TRUE

7.运行下列程序时输入数据5E2后,其输出结果是 。

READ‘(E5.2)’,X WRITE(*,‘(1X,F6.2)’)X END

A.5.00 B.500.00 C.0.05 D.****** 8.圆心在原点的两个同心圆,半径分别为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 9.以下关于指针说法不正确的是 。

A.指针变量可以指向任何变量 B.一个指针变量可以同时指向多个变量 C.多个指针变量可以同时指同向一个变量 D.指针变量的内容是地址或变量名称 10.以下关于接口块说法不正确的 。

A. 当外部过程名作为实参时,一定要用接口块 B. 重载运算符时,一定要用接口块 C. 调用子程序时,实参和形参的次序及个数不同时,一定要用接口块 D. 外部函数的返回值为数组时,一定要用接口块

二、填空题(在空白处添入正确内容)

1.以下程序运行后,输出的第一行为 (1) ; 第二行为 (2)

REAL:: X=5.0,Y=5.0

PRINT'(1X,3F5.1)',X,Y,X CALL sub(X,Y,X)

PRINT'(1X,3F5.1)',X,Y,X END

SUBROUTINE sub(X,Y,Z) REAL X,Y,Z

X=X+1.0; Y=Y+2.0; Z=Z+3.0 END SUBROUTINE

25

2.下列程序运行后,K(3)= (3) ,M(1,3)= (4) 。

读入的第一个记录为1,-1,2,-2,第二个记录为3,-3,4,-4,5,-5。

INTEGER K(4),M(2,3) READ*,K

CALL sub(K,M)

PRINT\END

SUBROUTINE sub(K,M) INTEGER K(2,2),M(6),I,J READ*,M DO I=1,2 DO J=1,2

K(I,J)=K(I,J)-M(J) M(I)=M(I)+K(I,J) ENDDO ENDDO DO I=3,6

M(I)=M(I-1)+M(I-2) ENDDO END

3.下列程序运行后,A(1,4)= (5) ,A(5,3)= (6) 。

INTEGER A(5,5),T,I,J,K,M DO I=1,5 DO J=1,5 A(I,J)=J ENDDO

DO K=1,I-1 T=A(I,5) DO M=4,1,-1

A(I,M+1)=A(I,M) ENDDO A(I,1)=T ENDDO ENDDO

PRINT\END

4.下列程序运行后输出结果:M= (7) ,X= (8) 。

OPEN(1,FILE='A.DAT')

WRITE(1,'(2I1/F3.1)') 2,3,4.5 CALL ABC END

SUBROUTINE ABC REAL X INTEGER M BACKSPACE(1)

READ(1,\M=X

26

WRITE(*,\END

5.下列程序运行时,输入3,5,F时,输出结果中B(5,3)= (9) ;

输入3,5,T时,输出结果中B(5,3)= (10) ;

MODULE AA

INTEGER::X,Y,A(5,5)=(/(I,I=1,25)/) END MODULE

PROGRAM MAIN USE AA, B=>A LOGICAL L INTEGER I,J READ*,X,Y,L IF (L) THEN CALL one

PRINT'(1X,5I4)',((B(I,J),J=1,5),I=1,5) ELSE

CALL two

PRINT'(1X,5I4)',((B(I,J),J=1,5),I=1,5) ENDIF END

SUBROUTINE one USE AA,C=>A INTEGER I,IT DO I=1,5 IT=C(I,X) C(I,X)=C(I,Y) C(I,Y)=IT ENDDO END

SUBROUTINE two

USE AA, X2=>X,Y2=>Y,D=>A INTEGER I,IT DO I=1,5

IT=D(X2,I)

D(X2,I)=D(Y2,I) D(Y2,I)=IT ENDDO END

6.以下程序运行后,下列变量的输出结果是:C= (11) ,F= (12) INTEGER A(100),B(100),C,I REAL F C=1

DO I=1,100

C=C+1; A(I)=C; B(I)=C*C ENDDO

CALL SS(A(10),C,B(20),A(10),F)

27

A(20)= (13) ,C(21)= (14) 。,

PRINT'(1X,\END

SUBROUTINE SS(A,B,C,D,E) INTEGER A(50),C(50),B,D REAL E E=B+D

PRINT'(1X,\END

7.下列程序运行后的输出结果,第二行为: (15) 。

REAL:: P(5)=(/2.0,3.0,5.0,1.0,3.0/),X,Y,Z INTEGER K,L,M,N N(K,L,M)=K+L/M

X=1.0+REAL(N(2,3,2)) Y=2.0

CALL SS(X,P(1),Z,X)

WRITE(*,\END

SUBROUTINE SS(A,B,X,W) REAL A,B,X,Y,W A=A+1 B=B+1 Y=2.0

PRINT\X=W+Y END

8.下面程序的功能是统计输入英文句子中每个单词所包含的字母个数。程序中数组ICOUNT用于存放统计结果。假设英文句子由字母、空格和句点组成,单词个数不超过10,每个单词不超过10个字母,单词之间有一个空格,句子以句点(.)结尾,句子长度不超过72个字符。 INTEGER:: ICOUNT(10),I,NUM CHARACTER*1 ICHR(72) READ'(72A1)',ICHR NUM=1 DO (16)

IF (ICHR(I)=='.') (17) IF (ICHR(I)/=' ') THEN (18) ELSE

(19) ENDIF ENDDO

PRINT'(1X,72A1)',(ICHR(I),I=1,72)

PRINT'(1X,10I5)',(ICOUNT(I), (20) ) END

9.下面程序的功能是计算 1x31?3x51?3?5x7?1SINx?x????????? 232?452?4?67 的值,直到最后一项的绝对值小于1.0E-5为止。

28