FORTRAN90上机试题Word文件下载.docx
- 文档编号:17240737
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:24
- 大小:21.36KB
FORTRAN90上机试题Word文件下载.docx
《FORTRAN90上机试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《FORTRAN90上机试题Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
X)THEN
J=L-1
ELSE
K=L+1!
==BLANK2
ENDIF
ENDDO
IF(K<
=J)THEN!
==BLANK3
PRINT*,S
ELSE
PRINT*,'
NOFOUND'
ENDIF
END
编程,求500-700之间各位数字之和等于12的整数的个数及和。
PROGRAMTEST
N,S!
N是存放个数的变量,S是存放和的变量
!
考生做题开始
************BEGIN*******************
INTEGER:
A,B,C,I
S=0;
N=0
DOI=500,700
A=I/100
B=MOD(I/10,10)
C=MOD(I,10)THEN
N=N+1
S=S+I
ENDIF
ENDDO
PRINT*,N,S
************END*******************
CALLOUTPRINT(N,S)!
N为符合条件的结果
考生做题结束,以下部分请勿修改
CONTAINS
SUBROUTINEOUTPRINT(X,Y)
CHARACTER(LEN=10):
FILENAME
X,Y
FILENAME='
RESULT.TXT'
OPEN(UNIT=1,FILE=FILENAME,ACCESS='
SEQUENTIAL'
STATUS='
REPLACE'
)
WRITE(1,"
(1X,'
N='
I4,3X,'
S='
I6)"
)X,Y
ENDFILE(UNIT=1)
CLOSE(UNIT=1)
ENDSUBROUTINEOUTPRINT
END!
程序结束
试卷2
下面程序的功能是从键盘输入任意10个整型数,使其按从小到大的鼠须排列并输出(冒泡法),请改错。
INTEGER,DIMENSION(10):
I,J,TEMP
READ*,A
DOI=1,9
DOJ=10,I!
==ERROR1DOJ=1,10-I
IF(A(J)>
A(J+1))THEN
TEMP=A(J)
A(J+1)=A(J)!
==ERROR2A(J)=A(J+1)
A(J)=A(J+1)!
==ERROR3A(J+1)=TEMP
ENDDO
PRINT'
(1X,10I4)'
(A(I),I=1,10)
下面程序的功能是计算FIBONACCI数列(1,1,2,3,5,8,13,……,从第三项起,每一项都是其前两项之和)前50项之和。
请填空。
I!
计数器
REAL:
J,K,M!
M是累加器
I=1
J=1;
K=1!
第一项、第二项的值
M=0
DOWHILE(DOWHILE(I<
=25))!
M=M+J+(K)!
==BLANK2
I=I+1
J=J+K
K=K+(J)!
PRINT*,M
一个大于300的正整数,减去2是7的倍数,减去5是9的倍数,编程,求满足这个条件的最小正整数N。
INTEGER:
N
N=300
************BEGIN*****************
DO
IF(MOD(N-2,7)==0.AND.MOD(N-5,9)==0)EXIT
ENDDO
PRINT’(1X,”N=”I4)’,N
考生做题结束
CALLOUTPRINT(N)!
SUBROUTINEOUTPRINT(X)
X
I4)"
)X
ENDPROGRAMEX!
试卷3
下面程序的功能是从键盘上输入一个数据X,按下述关系,计算表达式Y的值:
当X>
10时,Y=1
当2<
X<
=10时,Y=X/2
当-1<
=2时,Y=X-1
当X<
=-1时,Y=2X
请改错。
X,Y
IF(X>
=10)THEN!
==ERROR1X>
10
Y=1
ELSEIF(X>
2)THEN
Y=X/2
=-1)THEN!
==ERROR2X>
-1
Y=X-1
Y=2X!
==ERROR3Y=2*X
PRINT*,X,Y
ENDPROGRAMEX
下面程序的功能是判断数字N是否在整数M中,若在则输出YES,否则输出NO。
I,N,M,K
LOGICAL:
F
READ*,M,N
I=M
F=.FALSE.
DOWHILE(I>
0)
K=MOD(I,10)
IF(K==N)THEN!
F=.TRUE.
I=(I/10)!
IF(F)THEN!
YES'
NO'
编写外部函数子程序MUL,其功能是求正整数N所有因子之积。
N,S,MUL!
S为存放累乘结果变量
N=65
S=MUL(N)
S
CALLOUTPRINT(S)!
S为符合条件的结果
10I4)"
考生做题开始。
FUNCTIONMUL(N)RESULT(RES)
N,RES,I
RES=1
DOI=1,N
IF(MOD(N,I)==0)RES=RES*I
ENDFUNCTION
试卷4
下面程序的功能是通过字符型数组P输出如下图形,请改错。
*
**
**
*******
CHARACTER,DIMENSION(7,7):
P
I,J
P='
'
DOI=1,6
P(I,I)='
*'
P(1,I)='
!
==ERROR1P(I,1)=’*’
DOJ=1,7
P(J,7)='
==ERROR2P(7,J)=’*’
DOI=1,7
PRINT10,(P(I,J);
J=1,7)!
==ERROR3PRINT10,(P(I,I),J=1,I)
10FORMAT(1X,10A)
下面程序的功能是输出矩阵:
1
12
123
1234
12345
I,J!
I表示行下标,J表示列下标
INTEGER,DIMENSION(5,5):
DOI=1,5
DOJ=1,I!
A(I,J)=J!
(1X,5I2)'
(A(I,J),J=1,I)!
输入一个字符串STR,然后将它的逆序仍放入字符串STR中并输出。
例如输入的是FORTRAN90,它的逆序是09NARTROF。
CHARACTER(LEN=10):
STR='
ASDFGHJKLZ'
INTEGER:
:
I
CHARACTER:
C
DO I=1,5
C=STR(I:
I)
STR(I:
I)=STR(11-I:
11-I)
STR(11-I:
11-I)=C
ENDDO
PRINT*,’STR的逆序为:
’,STR
CALLOUTPRINT(STR)!
STR为符合条件的结果
CONTAINS
STR的逆序为:
'
A)"
输出格式:
09NARTROF
试卷5
下面程序的功能是判断输入字符串STR(长度不超过20)是否是“回文”,(即顺读和倒读一样,如LEVEL,12321等),请改错。
IMPLICITNONE
CHARACTER(LEN=20):
STR,A*1
I,N
LOGICAL:
FLAG
READ*,STR
N=LEN_TRIM(STR)
FLAG=.TRUE.
DOI=1,N/2
A=STR(N+1-I:
N+1-I)
IF(STR(I:
I)=A)THEN!
==ERROR1IF(STR(I:
I)==A)THEN
FLAG=.FALSE.
ENDIF!
==ERROR2 END DO
IF(FLAG=.FALSE.)THEN!
==ERROR3 IF(.NOT.FLAG)THEN
PRINT*,"
该字符串不是回文"
STR
ELSE
该字符串是回文"
下面程序的功能是求4行4列整型矩阵中的两条对角线上元素的最小值及其所在的位置。
INTEGER,DIMENSION(4,4):
A
I,MINA,H,L
READ*,A
MINA=A(1,1)
H=1;
L=1
DOI=1,4!
==BLANK1
IF(A(I,I)<
MINA)THEN
MINA=A(I,I)
H=I;
L=I
IF(A(I,5-I)<
MINA=A(I,5-I)!
H=I
L=5-I!
==BLANK3
PRINT*,MINA,H,L
将一维整型数组A中的所有数据循环左移一位,即将第一个数据移至最右边,第二个数据移至第一个数据的位置,第三个数据移至第二个数据的位置,依次类推。
(要用循环结构)
3 2 1 4 5 6 12 14 17 9
I为循环变量
A=(/23,32,30,40,45,25,50,37,28,39/)
TEMP
TEMP=A(I+1)
A(I)=A(I+1)
A(10)=TEMP
PRINT’(1X,10I4)’,(A(I),I=1,10)
CALLOUTPRINT(A)!
A为符合条件的结果
INTEGER,DIMENSION(10):
(1X,10I4)"
试卷6
(改错)题目:
有4个学生的记录,每个学生有学号、姓名、3门课成绩。
下面程序的功能是输出这4位学生的学号、姓名、3门课成绩和每位学生的总分,请改错。
TYPESTUDENT
XH
NAME
REAL,DIMENSION(4):
CJ
ENDTYPESTUDENT
DIMENSION(4):
A!
==ERROR1TYPE(STUDENT),DIMENSION(4):
A
S
DOI=1,4
READ*,A(I)%XH,A(I)%NAME
S=0
DOJ=1,4!
==ERROR2DOJ=1,3
READ*,A(I)%CJ(J)
S=S+A(I)%CJ(J)
CJ=S!
==ERROR3A(I)%CJ(4)
PRINT10,A(I)%XH,A(I)%NAME,(A(I)%CJ(J),J=1,4)
10FORMAT(1X,I6,2X,A10,2X,4F6.1)
(填空)题目:
已知整型数组A中有10个元素,已经按从小到大的次序输入。
今插入任一整数P,使插入后的数组仍然保持有序,请填空。
INTEGER,DIMENSION(11):
P,K
READ*,(A(K),K=1,10)
READ*,P
K=10
DOWHILE(K>
=1.AND.A(K)>
P)!
A(K+1)=A(K)
K=K-1!
A(K+1)=P!
PRINT*,A
(编程)题目:
编写递归子例行子程序,其功能是求某整数N是几位数。
INTERFACE
RECURSIVESUBROUTINEF(N,M)
N,M
ENDSUBROUTINEF
ENDINTERFACE
N,M=0!
M存放数的位数
N=2343
CALLF(N,M)
(1X,"
M="
I4)'
M
CALLOUTPRINT(M)!
M为符合条件的结果
M='
RECURSIVESUBROUTINEF(N,M)!
N是正整数,M是数的位数
************BEGIN*******************
INTEGER:
IF(N>
0)THEN
M=M+1
CALLF(N/10,M)
ENDSUBROUTINEF
程序运行结果:
M=4
试卷7
改错:
下面程序的功能是判断大于1的自然数N是否是素数,若是输出YES,否则输出NO
N,K,M
READ*,N
IF(N>
=1)THEN!
==ERROR1IF(N>
1)THEN
DOK=2,N/2
M=MOD(N,K)
IF(M=0)EXIT!
==ERROR2IF(M==0)EXIT
IF(K>
=N/2)THEN!
==ERROR3IF(K.>
N/2)THEN
数据输入不正确!
程序设计:
该程序功能是求4行4列的外围元素之和
REAL,DIMENSION(4,4):
S=__0.0____!
S=S+A(1,I)+A(I,1)+_A(4,i)+A(i,4)________!
S=S-A(1,1)-A(4,4)-_A(1,4)-A(4,1)______!
PRINT*,S
对固有函数SIN进新行超载,使得参数为整数时,也能够使用SIN函数,返回的类型为实新,调用该函数,求SIN
(2)的值.
MODULEEXP_MODULE
INTERFACESIN
MODULEPROCEDURESIN_INT
FUNCTIONSIN_INT(X)FE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FORTRAN90 上机 试题