FORTRAN90考试笔试题2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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