FORTRAN90考试笔试题2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FORTRAN90语言部分

一、 语言基础单项选择(每题2分,共20分)

(一)下面的函数计算中,错误的是 1 。 A) SQRT(9) B) REAL(9) C) ABS(9) D) MOD(9,2)

(二)运行下面的程序时(P,W,X,Y 都是实型变量), READ(*,10) P,W,X,Y WRITE(*,20)X,Y

10 FORMAT(1X,F3.1,3(1X,F4.2)) 20 FORMAT(1X,F4.1,3(1X,F5.2)) END

如果从键盘输入数据:12345678901234567890,则输出结果为 2 。 A) 1.23 56.78 B) 12.3 67.89 C) 12.3 45.67 D) 34.5 67.89

(三)数学式a ac

b x 24sin 22-+的FORTRAN 表达式为 3 。

A) SIN(X**2)+SQRT(B*B-4*A*C)/2/A B) SIN(X)**2+ SQRT(B*B-4*A*C)/2/A

C) (SIN(X**2)+SQRT(B*B-4*A*C))/(2*A) D) (SIN(X)**2+SQRT(B*B-4*A*C))/(2*A)

(四)表示条件“A 加B 大于C 并且C 大于等于D ”的FORTRAN90逻辑表达式是 4 。 A) A+B>C >=D B) (A+B)>C >=D

C) A+B>C.AND. C>=D

D) (A+B)>C.OR. C>=D

(五)通过下面的赋值,字符变量LINE 的值是 5 。 表示空格。 CHARACTER(LEN=4)::LINE LINE=’10’ A) 10 B) 1000 C) ‘10’ D) ’10 ’

(六)下面对二维数组的说明语句中,正确的语句是 6 。 A) 显式形状数组的说明:REAL,DIMENSION(10,:) ::A

B) 动态数组的说明方式:REAL,DIMENSION(:,:), ALLOCATE ::A C) 假定形状数组的说明:REAL,DIMENSION(10,:) ::A D) 指针数组的说明:POINTER,DIMENSION(1:3,2:4) ::A (七)下面的模块中,错误的语句是 7 。 A) MODULE SWAP_MOD

B) REAL,DIMENSION(5,5)::A,B C) A=125

D) END MODULE SWAP_MOD

(八)下面的程序段中,错误的语句是 8 。

TYPE TEACHER

A) CHARACTER(LEN=8)::NAME

B) REAL,DIMENSION(2):: WAGE C) NAME=’ANHUI UNI’ D) END TYPE TEACHER (九) 下面的程序段中,正确的程序段是 9 。 A) REAL,POINTER::P INTEGER,TARGET ::X X=10;P=>X B) INTEGER,POINTER::P

INTEGER,TARGET :: X X=10;X=>P C) INTEGER,POINTER::P REAL,TARGET :: X X=10;P=>X D) REAL,POINTER::P

REAL,TARGET :: X X=10;P=>X (十)下面给出了一个文件打开语句:

OPEN(10,FILE=’FILENAME’)

1.

A

2. B

3. B

4. C

5. A

6. B

7. C

8. C

9. D

这个语句打开的文件是 10 。

A) 无格式直接文件 B) 有格式直接文件

C) 无格式顺序文件 D) 有格式顺序文件

二、阅读下列程序,写出程序的运行结果(每题4分,共

24分)

程序1: PROGRAM EXAM1

IMPLICIT NONE

INTEGER,DIMENSION(0:10)::ASD=(/1,2,3,4,5,6,7,8,9,10,11/)

INTEGER :: I,N=0,S=0

EX1: DO I=0,100

IF(ASD(I)>10)EXIT EX1

IF(MOD(ASD(I),2)/=0)THEN

N=N+1

S=S+ASD(I)

ENDIF

ENDDO EX1

PRINT*,N,S

END

程序2: PROGRAM EXAM2

IMPLICIT NONE

CHARACTER(LEN=20)::LINE=' '

INTEGER :: I, N=5,M=10

DO I=1,N

LINE(M+I: M+I)='#'

PRINT*,LINE

ENDDO

END

程序3: PROGRAM EXAM3

IMPLICIT NONE

INTEGER:: I,MAXI,NUM=5

INTEGER,DIMENSION(:),ALLOCATABLE:: ARRAY_LIST

ALLOCATE(ARRAY_LIST(NUM))

ARRAY_LIST=(/20,10,30,50,40/)

MAXI=1

DO I=2,NUM

IF(ARRAY_LIST(I)>ARRAY_LIST(MAXI))MAXI=I

ENDDO

WRITE(*,*)MAXI,ARRAY_LIST(MAXI)

DEALLOCATE(ARRAY_LIST)

END

程序4: PROGRAM EXAM4

IMPLICIT NONE

INTEGER :: M=10,K

K=1

DO WHILE(K<=M/2)

IF(MOD(M,K)==0) PRINT*,'K=',K

K=K+1

ENDDO

END

程序5: PROGRAM EXAM5

IMPLICIT NONE

TYPE STUDENT_TYPE

INTEGER::NUMBER 10. D

程序1运行结果:

5 25 程序2运行结果:#

##

###

####

#####

程序3运行结果:

4 50 程序4运行结果:K= 1

K= 2

K= 5

程序5运行结果:LI DAIHUA CHINESE

相关文档
最新文档