大学FORTRAN考试试题11.docx
《大学FORTRAN考试试题11.docx》由会员分享,可在线阅读,更多相关《大学FORTRAN考试试题11.docx(26页珍藏版)》请在冰豆网上搜索。
大学FORTRAN考试试题11
1.下列叙述中,正确的是(D)
A.语句标号的大小影响程度执行的顺序
B.程序完全按语句出现的先后顺序执行
C.不同程序单位不能有相同的语句标号
D.同一程序单位不能有相同的语句标号
2.下列标识符中,不能作为合法的FORTRAN90标识符的是(C)
A.A3_B3B.VOIDC._123D.IF
3.下列哪一个为正确的常量(D)
A.123,000B.3.5E+2.5C.TRUED.“HELLO”
4.若A=2,B=2,I=3,则表达式A**B**I的值为(C)
A.64B.12C.256D16.
5.圆的直径存放在整型变量D之中,下列计算圆面积的表达式中正确的是(D)
A.3.14159*(D/2)*(D/2)B.3.14159*(D*D/4)
C.3.14159*(D/2)**2D.3.14159*D*D/4
6.下列运算符中,运算优先级最高的是(B)
A.关系运算B.算术运算C.逻辑非运算D.逻辑与运算
7.下列FORTRAN的表达式中值为0.5的是(C)
A.MOD(4.8,0.5)B.100/20/10C.50.0/4/25D.MOD(15,10)/10
8.下列是完整的FORTRAN程序,编译时出错的语句是(C)
A.PROGRAMPRINTB.PARAMETER(PI=3.1415926)
C.PI=PI+1D.WRITE(*,*)SIN(PI+0.5)
END
9.变量的类型定义中,优先级由高到低的顺序为(A)
A.类型说明语句、IMPLICIT说明语句、隐含约定
B.隐含约定、IMPLICIT说明语句、类型说明语句
C.IMPLICIT说明语句、类型说明语句、隐含约定
D.隐含约定、类型说明语句、IMPLICIT说明语句
10.“两整数M与N不能同时小于零”的FORTRAN表达式(D)
A.M>=0.AND.N>=0
B.(M.GE.0.AND.N.LT.0).OR.(M.LT.0.AND.N.GE.0)
C.(M.LE.0.AND.N.LE.0).OR.(M.LE.0.AND.N.GE.0)
D.M.GE.0.OR.N.GE.0
11.下列逻辑表达式描述的是(不会)
X.GT.3.AND.X.LT.10.AND.MOD(X,3).NE.0.OR.X.EQ.2.OR.X.EQ.3
A.10以内的素数B.10以内的合数
C.10以内的奇数D.10以内的偶数
12.下面正确的逻辑IF语句是(C)
A.IF(X.EQ.Y)THENGOTO10B.IFM.LT.NPRINT*,M
C.IF(ABS(X).LT.1E-6)A=1D.IF(A.AND.(A.LE.0.0)A=3
13.下列语句中正确的是(C)
A.DATAA,B,C/3*(-10.0)/B.READ(*,*)(N,A(K),K=1,N)
C.WRITE(*,*)(10,A(K),K=1,10)D.READ(*,*)N,N+1
14.如果J是整型变量,则循环语句:
DOJ=5.5,-1.5,-2.5所执行的循环次数是(C)
A.4B.3C.2D.1
15.如有语言:
INTEGERB(-1:
-2,3:
7),则数组B中所含的元素个数为(无答案)
A.0B.10C.12D.21
16.关于FORTRAN90的CASE结构,SELECTCASE(表达式)中的表达式的数据类型不允许为(A)
A.实型B.字符型C.实型D.逻辑性
17.下面符号在FORTRAN90中表示续行符的是(B)
A.!
B.&C.#D.%
18.下列程序段中,错误的语句是(D)
A.PARAMETER(N=10)
B.INTEGER:
:
M=20
C.M=M+N
D.PRINT(*,*)M,N
19.
A.FUNCTIONB.SUBROUTINE
C.BLOCKDATAD.SUB
20.下列语句中,错误的语句是(D)。
A.PARAMETER(PI=3.1415)B.DIMENSIONA(-5:
0)
C.INTEGER:
:
A=10D.SELECTCAE(3.0)
21.执行语句:
WRITE(*,‘(1X,A,‘=’,I2)’)“2+3”,2+3后,屏幕上显示的结果是(不会)。
A.□5B.2+3=□5
C.5=□5D.语句不正确
22.能得到一下数据正确输出结果的FORTRAN语句是(A)
X=1.34
M=3
Y=1.25
A.100FORMAT(1X,F6.3,I3,E9.4)
B.100FORMAT(1X,2F8.3,I3)
C.100FORMAT(1X,F8.4,I3,F3.1)
D.100FORMAT(1X,F8.4,2(1X,I3))
23.设有如下程序,下面描述正确的是(一次也不循环)
K=10;DOWHILE(K==0);K=K-1;ENDDO
A.循环执行10次B.循环是无限循环
24.C
A,READ(*,*)(I,A(I),I=1,10)
B,READ(*,*)(B(I,J),I=1,10,J=1,10)
C,READ(*,*)N,(A(I),I=1,N)
D,READ(*,*)(I=1,10,A(I))
25.为了保证正确的输出数据,格式编辑符Ewd中w与d的关系应该是(B)
A.w>dB.w>d+2C.w>d+4D.w>d+6
26.若定义了语句函数S(X,Y,Z)=X+Y+Z后,S(2.01.03.0)的值为(6.0)
A.17.0B.11.0C.20.0D.29.0
27.下列说法中正确的是(D)
A.块IF结构中的THEN块或ELSE块不能是空块
B.块IF结构中至少要有一个ELSEIF语句或ELSE语句
C.每一个ELSE语句要有一个对应的ENDIF语句
D.一个块IF结构中只能有一个ENDIF语句
28.在子程序SUB中,下列各语句的正确顺序是(A)1.④要放③前2.见P129:
①为语句函数,语句函数是非执行语句,语句函数的定义语句要放在一个程序单位的所有其他说明语句之后,放在所有可执行语句之前,所以②在①前
①F(A,B,C)=A*A+B*C②IMPLICITINTEGER(F,A,B,C)
③REALD(M),E(N)④PARAMETER(M=4)
⑤SUBROUTINESUB(E,N)
A.⑤④③②①B.⑤②④③①
C.⑤③②④①D.⑤②③④①
答案应该正确,有异议可以大家一起讨论,或Q我,树连
学生班级________________学生学号:
□□□□□□□□□□□□学生姓名:
________________
………………装订线………装订线………装订线…………试卷须与答题纸一并交监考教师…………装订线………装订线………装订线………………
《Fortran语言程序设计》考试试题
一、关键字解释及表达式互换(共10题,每题2分,共20分)
1.READ*,X,Y
2.REAL
3.12FORMAT(2X,I5)
4.COMPLEX
5.LOGICAL
6.INTEGER,DIMENSION(4,5):
:
A
7.SELECTCASE(R3)
8.写出
的fortran表达式
9.写出COS((A+1)*(A+1))/(N*N+1)数学表达式
10.写出
的fortran表达式
二、下面分别是程序中的一段代码,请指出其错误?
(共2题,(共2题,1题12分,2题8分,共20分)
1.……………………
E=(E*T+23)
IF(E>=500)GOTO5
DON=1,1O,0
5T=SS*3.45
PRINT*,R,T
ENDDO
………………
2.PROGRAMex
IMPLICINONE
INTEGER:
:
n
CHARACTER(LEN=3):
:
a,b,c
READ*,n
a=n
b=’nkd_lixy’
c=sqrt(a**2+b**2)
print*,c
………………
三、请写出下面程序的运行结果(共4题,每题10分,共40分)
1.写出下列程序的作用是解决什么问题的?
PROGRAMGH1
REALX,Y
READ*,X
IF(X<=0)Y=LOG(SQRT(X*X+1))
IF(X>0)Y=SIN(X**3)+ABS(X)
PRINT*,”Y=”,Y
END
2.写出下列程序的运行结果,程序运行时输入5,6,7,8四个数。
PROGRAMGH2
IMPLICITNONE
INTEGER:
:
M,N
READ*,M,N,N,M!
说明:
程序运行时输入5,6,7,8四个数
M=M+N
N=M+N
PRINT*,M,N
END
3.写出下列程序的结果,或分析下列程序结果。
PROGRAMGH3
IMPLICITNONE
INTEGER:
:
i,k
k=3
DOi=1,k
PRINT*,'i=',i,fact(i)
ENDDO
CONTAINS
integerfunctionfact(n)
integer:
:
n,t,j
t=5
j=3
t=n**j+t
fact=t
ENDfunctionfact
END
4.写出下列程序实现的功能。
PROGRAMExample
IMPLICITNONE
INTEGER:
:
i,k
DOi=200,600
If(mod(i,7)==0)then
PRINT*,'i=',i
Endif
ENDDO
END
四、根据题目要求画出程序一般流程图和盒图(即N-S图)。
(共2图,每图10分,共20分)
题目:
求u=
。
其中,
,
。
标准答案
一、关键字解释及表达式互换(共10题,每题2分,共20分)
1.读入数据X,Y。
2.实型变量说明语句,它的取值范围由其后跟随的种类参数(可略)说明。
3.定义数据输出形式。
4.复数型变量说明语句。
5.逻辑型变量说明语句。
6.定义整型(4
)的二维数组,数组名为A。
7.条件选择说明语句,选择变量为CASE(R3)
8.
9.
10.(x/y)**(n-1)
二、下面分别是程序中的一段代码,请指出其错误?
(共2题,1题12分,2题8分,共20分)
1.不允许从循环体外转入循环体内(6分),循环步进值(增量)不能为零。
(6分)
2.赋值语句中,值与变量类型不匹配(8分).
三、请写出下面程序的运行结果
(共4题,每题10分,共40分)
(结果写错,如果分析程序思路对,酌情给分)
1.求
函数式解的程序。
2.1522
3.i=16
i=213
i=332
4.输出200~600之间可以被7整除的数。
四、画出程序一般流程图和盒图(即N-S图)。
(共2图,每图10分,共20分)
如果画出部分或部分画错,根据画的情况酌情给相应的分值。
软件技术基础(FORTRAN)笔试模拟试题
(带答案)
一.概念选择题(单选题,将正确的答案填入括号内。
每题1分,共15分)
1.已知整型变量L=5,M=13,N=4,表达式L*M/N、L/N*M和M/N*L的值分别是(A)。
A)161315B)16.2516.2516.25
C)16.013.015.0D)161616
2.将数学式
改写为FORTRAN表达式,正确的是(D)。
A)1/2*(LOG(ABS(X))+E**(-5))
B)1.0/2*(LN(ABS(X))+E**-5)
C)1/2.0*(LN(ABS(X))+E-5)
D)1.0/2*(LOG(ABS(X))+EXP(-5))
3.设A=.TRUE.,B=.FALSE.,C=.FALSE.,逻辑表达式(A.OR.B).AND.C与A.OR..NOT.B
的值是(B)。
A).T.与.F.B).F.与.T.C).T.与.T.D).F.与.F.
4.数组REALA(0:
5,-1:
5)的元素个数是(D)。
A)25B)30C)36D)42
5.下列数组说明符中错误的是(A)。
A)K(3:
2,1:
2)B)K(-1:
1,2)C)K(-2:
2,-1:
1)D)K(2:
2,5)
6.关于USE语句的正确说法是(C)。
A)USE语句是可执行语句B)用USE语句可以代替INCLUDE语句
C)USE语句必须放在程序单元体的开头D)USE语句的位置任意
7.语句OPEN(9,FILE=‘DATA.TXT’)打开的是(B)文件。
A)无格式顺序B)有格式顺序C)无格式直接D)有格式直接
8.阅读下列FORTRAN程序,程序运行时执行循环体的次数是(A)。
X=0
DOL=10,5,1
X=X+1.0
ENDDO
END
A)0B)1C)6D)无穷
9.结构化程序设计中有三种基本结构,下列不属于三种基本设计结构的是(D)。
A)顺序结构B)选择结构C)循环结构D)嵌套结构
10.对链表中的数据元素的插入和删除(B)。
A)移动结点,不需要改变结点指针B)不移动结点,需要改变结点指针
C)移动结点,并且需要改变结点指针D)不移动结点,不需要改变结点指针
11.具有12个记录的序列,采用冒泡排序最多的比较次数是(D)。
A)1B)144C)11D)66
12.下列形式中,不能作为形参的是(C)。
A)函数B)数组C)表达式D)变量
13.一个深度为k(k≥0)的满二叉树的结点数应满足(A)。
A)2k+1-1B)2k+1C)2k+1D)2k
14.栈和队列都是(D)。
A)顺序存储线性表B)限制存取点的顺序存储线性表
C)链式存储线性表D)限制存取点的线性表
15.进行二分法查找,则线性表(D)
A)必须以顺序方式存储B)必须以链接方式存储
C)必须以链接方式存储,且数据元素已按值排好序
D)必须以顺序方式存储,且数据元素已按值排好序
二.阅读程序,并写出下列各程序的运行结果。
(每题3分,共15分)
1.CHARACTERLINE*19,DC*5运行结果是:
DC="*****"*****
LINE=""****#
DOK=16,12,-1***##
LINE(K-7:
K-3)=DC**###
PRINT*,LINE*####
DC(K-11:
K-11)="#"
LINE=""
ENDDO
END
2.INTEGERFUNCTIONFUN(M)运行结果是:
43
M=M/2
FUN=M*M
END
INTEGER:
:
A,X=17,FUN
A=FUN(X)/FUN(X)
B=FUN(X)-FUN(X)
PRINT*,A,B
END
3.INTEGERA(4,4)运行结果是:
DOI=1,43
DOJ=1,457
A(I,J)=I*J-15811
ENDDO371115
ENDDO
DOI=1,4
N=5-I
WRITE(*,30)(A(I,J),J=N,4)
ENDDO
30FORMAT(1X,4I3)
END
4.INTEGERA(3,4)运行结果是:
6.00
DATAA/12*0/
DOM=1,3
DON=1,4
CALLSUB(A,3,4,M,N)
ENDDO
ENDDO
WRITE(*,"f6.2)")F(A,3,4)
END
SUBROUTINESUB(P,M,N,I,J)
INTEGERP(M,N)
P(I,J)=J-I
END
FUNCTIONF(P,M,N)
INTEGERP(M,N)
F=0.0
DOI=1,M
DOJ=1,N
F=F+P(I,J)
ENDDO
ENDDO
END
5.A=3.0;B=5.0;C=4.0运行结果:
CALLSUBT(B-A,C)2.05.0
WRITE(*,’(1X,2F4.1)’)B-A,C
END
SUBROUTINESUBT(X,Y)
X=X+2
Y=Y+1
END
三.程序填空题(每空2分,共30分)
1.下列模块中的子程序DECTOR的功能是用除R取余法将整数X转换成R(2<=R<=9)进制的数字,并把结果存放在数组B中,B(0)存放R进制数的位数,其正负号与X相同,最低位放在B
(1)中;模块中的函数ISPRIME的功能是判断整数X是否为一个素数,是返回.TRUE.,否则返回.FALSE.。
MODULEINTMAP
IMPLICITNONE
CONTAINS
SUBROUTINEDECTOR(X,R,B)!
将整数X转换成R进制的数字存放在数组B中
INTEGER,INTENT(IN):
:
X,R
INTEGER,INTENT(OUT):
:
B(0:
20)
INTEGER:
:
S=1,I=0,REMAINDER,X1
IF(X<0)S=-1
X1=ABS(X)
DOWHILE(X1/=0)
I=I+1
REMAINDER=MOD(X1,R)
B(I)=REMAINDER
X1=X1/R
ENDDO
B(0)=I*S
ENDSUBROUTINE
FUNCTIONISPRIME(X)!
判断整数X是否为一个素数
INTEGER:
:
X,K
LOGICAL:
:
ISPRIME
ISPRIME=.FALSE.
DOK=2,X-1
IF(MOD(X,K)==0)EXIT
ENDDO
IF(K==X)ISPRIME=.TRUE.
ENDFUNCTION
ENDMODULE
2.求出1900~2100的闰年,要求把求出的闰年存入数组Y,并统计闰年的数目。
以7位宽度输出闰年年号,每行10个。
INTEGER:
:
Y(50),K=0
DOI=1900,2100
IF(MOD(I,400)==0.OR.MOD(I,100)/=0.AND.MOD(I,4)==0)THEN
K=K+1
Y(K)=I
ENDIF
ENDDO
PRINT'(1X,I2,12HLEAPYEARS:
)',K
PRINT'(1X,10I7)',(Y(I),I=1,K)
END
3.下面的程序输出ACSII码对照表,请填空。
INTEGERA(32:
126),ASC
CHARACTERCH(32:
126)
PRINT*,"ACSII码对照表"
DOASC=32,126
A(ASC)=ASC
CH(ASC)=CHAR(ASC)
ENDDO
PRINT10,(CH(I),A(I),I=32,126)
10FORMAT(7(1X,A,"=",I4))
END
四.简答题(共10分)
1.简述数据结构的内容。
(2分)
答案:
数据结构主要研究数据元素之间的逻辑关系、数据元素在计算机存储器中的物理关系、在数据元素集合上的运算。
2.给定树如下,分别写出对该树进行中序和后序遍历的结果(4分)
答案:
中序遍历结果是GDBEAFC
后序遍历结果是GDEBFCA
3.已知有序列A、B、C,如果按A、B、C的顺序入栈,请写出它们的各种不同的出栈序列。
(2分)
答案:
A,B,CA,C,BB,C,AB,A,CC,B,A
五.编程题(10分)(在下列2题中任选一题,按题目要求编写FORTRAN程序。
)
1.编写判断一个整数是否为偶数或奇数的子例行子程序,在主程序中调用它,以便分别求出100个整数中奇数和偶数的个数。
SUBROUTINESUB(N,CH)
CHARACTER*1CH
IF(MOD(N,2)==0)THEN
CH=’O’
ELSE
CH=’J’
ENDIF
END
PROGRAMMAIN
DIMENSIONK(100)
CHARACTER*1CHA
READ*,K
NA=0
NB=0
DOI=1,100
KN=K(I)
CALLSUB(KN,CHA)
IF(CHA==’O’)NA=NA+1
IF(CHA==’J’)NB=NB+1
ENDDO
PRINT*,’偶数的个数为:
’,NA
PRINT*,’奇数的个数为:
’,NB
END
2.已知一个实型数组由6行5列组成,要求:
(1)统计数组内每一行的所有元素和,
(2)将这些元素的和进行升序排列,并输出排序结果;
(3)按数组原有格式输出已知数组。
REALA(6,5),S(6),T
READ*,A
DOI=1,6
S(I)=0
DOJ=1,5
S(I)=S(I)+A(I,J)
ENDDO
ENDDO
DOI=1,5
DOJ=I+1,6
IF(S(J)
T=S(J)
S(J)=S(I)
S(I)=T
ENDIF
ENDDO
ENDDO
PRINT*,(S(I),I=1,6)
WRITE(*,10)((A(I,J),J=1,5),I=1,6)
10FORMAT(1X,6F8.1)
END
软件技术基础(FORTRAN)上机考试练习题
1.编写程序,首先从文件D:
\CJ1.TXT读入以下字符串:
"IamlearningtheC++ProgrammingLanguage."将其中的单词""换成"FORTRAN",然后将结果显示在屏幕上。
2.编写程序,首先键盘输入以下两个字符串:
"IamastudentofTianjinUniversity","IamlearningtheFORTRANProgrammingLanguage";分别统计各字符串中字母出现的次