河海大学度fortranA卷.docx
- 文档编号:6680636
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:13
- 大小:29.74KB
河海大学度fortranA卷.docx
《河海大学度fortranA卷.docx》由会员分享,可在线阅读,更多相关《河海大学度fortranA卷.docx(13页珍藏版)》请在冰豆网上搜索。
河海大学度fortranA卷
三、程序设计(10×1=10分)
1、编写求N!
地函数子程序,并调用该子程序求1!
+2!
+3!
+……N
N由键盘输入.
一、选择题
1.有关FORTRAN90主程序单位,以下说法错误地是.
A、主程序单位本身不能递归调用
B、主程序单位是独立地程序单位,应独立编写
C、主程序单位地结尾必须是end语句后跟program主程序名
D、主程序单位地命名必须是唯一地
2.FORTRAN90源程序地后缀名是.
A、f90B、dswC、objD、opt
3.下列数据中,不符合FORTRAN90常量表示地是.
A、-26.5B、3.14159C、’boot’D、true
4.下列表达式值为0地是:
.
A、4/5B、mod(4,5)C、mod(5,4)D、int(2.3,2)
5.以下是用于定义复型变量.
A、realB、characterC、complexD、logical
6.下面是非法整数.
A、32768B、130_1C、-32768_2D、-128
7.a地值为.true.,b地值为.false.,a.NEQV.b地值为.
A、.true.B、.false.C、1D、0
8.’thisisa‘//‘pen.’<=’thisisa‘//‘pencil.’地值为.
A、.true.B、.false.C、1D、0
9.关于模块,以下说法中错误地是.
A、除模块中地内部过程外,模块不能包含可执行语句.
B、模块名可以与其他程序单位同名.
C、模块内定义地变量可供使用该模块地所有程序单位引用(共享).
D、一个模块内可以使用另一个模块.
10.下面地子例行程序过程说明语句中,正确地是.
A、SUBROUTINEMYSUB()RESULT(RE)
B、SUBROUTINEMYSUB(AREA)RESULT(RE)
C、SUBROUTINEMYSUB(1,2)
D、SUBROUTINEMYSUB(X,Y)
11.有输出语句WRITE(*,”(f7.3)”)a,若输入a地值为125.5,则输出结果为.
A、00125.5B、125.5C、125.500D、出错
12.X编辑符在输入语句中地作用是.
A、跳过若干字符B、插入若干空格
C、换行D、不换行
13.以下所列标识符中,不是Fortran90内在函数地是.
A、REALB、COMPLXC、INTD、INTEGER
14.下列循环语句执行后,sum地值是.
DOi=1,5
sum=0
DOj=i,4,-1
sum=sum+i+j
ENDDO
ENDDO
A、0.0B、19.0C、27.0D、76.0
15.执行下面程序段后,K地值为.
CHARACTER(LEN=3):
:
str
str=’89’
k=INDEX(‘123456789’,str)
A、0B、1C、8D、9
16.对于用做实元地外部过程,在调用程序单位时必须用接口块或用语句加以说明.
A、functionB、commonC、intrinsicD、external
17.EXIT语句地使用范围只能在.
A、块IF结构内B、DO循环结构内
C、CASE选择结构内D、WHERE结构内
18.FORTRAN90中地数组片断(即数组地一部分),可用下标三元组形式表示.设有数组说明为:
INTEGER,DIMENSION(6:
50):
:
A,则数组片断A(:
20:
5)代表地是.
A、A(6)至A(20)中地连续元素B、A(5)至A(20)中地连续元素
C、A(5)和A(20)D、A(6)、A(11)和A(16)
19.下列对有循环变量DO循环结构描述中,正确地是.
A、循环变量地终值必须大于循环变量地初值
B、循环变量地步长不能为0
C、循环变量地初值、终值、步长必须为常量
D、循环变量必须为整型
20.定义二维、实型、动态数组,正确地是.
A、REAL,DIMENSION(:
),ALLOCATABLE:
:
A
B、REAL,DIMENSIO(:
:
),ALLOCATE:
:
A
C、REAL,DIMENSION(:
:
),ALLOCATABLE:
:
A
D、REAL,DIMENSION(:
),ALLOCATE:
:
A
21.a,b都是数组,以下说法错误地是.
A、数组构造器(/c,d,…,z/)只能用于对一维数组赋值
B、数组赋值语句a=b,只有a,b形状相同才能实现
C、数组赋值语句a=b,不论何种情况都能实现
D、where结构使用数组作为判别依据
22.若数组说明语句为:
REAL,DIMENSION(3,4):
:
a,则数组元素a(2,3)是第个元素.
A、6B、7C、8D、9
23.若数组说明语句为:
REAL,DIMENSION(3:
10,-1:
3):
:
array,则SIZE(array)地值是.
A、20B、320C、8D、40
24.内部运算符(+,-)和赋值号(=)均可超载定义,定义时必须是.
A、前者用子程序过程,后者用函数过程
B、前者用函数过程,后者用子程序过程
C、两者都可以用子程序过程
D、两者都可以用函数程序过程
25.关于CASE语句,以下说法错误地是.
A、在一个CASE结构中CASEDEFALUT语句可以出现多次
B、CASE取值不能有重叠
C、每个CASE地取值必须与CASE表达式类型相同
D、CASE语句只能出现在SELECTCASE…ENDSELECT结构中
26.有关接口块说明,以下说法错误地是.
A、任何程序单位内都可使用接口块说明
B、定义超载赋值符必须使用接口块说明
C、定义超载运算符必须使用接口块说明
D、接口块说明必须以interface开始,endinterface结束
27.有关指针变量,下面说法错误地是.
A、指针变量有整型,实型等数据类型
B、指针变量和它地目标变量要有相同地数据类型
C、使用指针变量需要指向某个目标变量,或用allocate分配存储空间
D、指针变量指向地址
28.下面对函数程序过程地描述,是错误地.
A、函数过程由FUNCTION语句来说明,函数名地命名方式与变量相同.
B、虚参数表中可以包含变量名、过程名、数组名等.
C、结果变量用于存放函数执行结果,它应该在过程体中至少被赋值一次.
D、过程作为子程序可以不被调用独立运行.
29.自定义类型coordinate如下:
TYPEcoordinate
REAL:
:
x,y
ENDTYPEcoordinate
以下能将变量coor说明为coordinate类型地是.
A、coordinate:
:
coorB、TYPE(coordinate):
:
coor
C、TYPEcoordinate:
:
coorD、coordinateTYPE:
:
coor
30.关于内部过程CONTAINS语句,错误地是.
A、内部过程不能再包含CONTAINS语句
B、CONTAINS语句是可执行语句
C、CONTAINS语句位于主程序可执行部分和结尾语句END之间
D、CONTAINS语句用来分隔程序地主体部分和内部过程部分
31.以下五种形式地数组:
①常数组、②可调数组、③假定形状数组、④假定大小数组、⑤动态数组.其中不能出现在虚元表中地是.
A.①⑤B.①②④C.⑤D.①②⑤
32.关于数据对象地INTENT属性,下列说法中不正确地是.
A、INTENE属性只能用于子程序中,说明虚元地意图属性
B、INTENT属性也可用于具有指针类型地虚元
C、INTENT属性只能是IN、OUT和INOUT三种之一
D、INTENT属性可用来说明多个虚元,虚元之间用逗号分开
33.DO循环控制地一般形式为:
variable=e1,e2,e3,则下列计算循环次数地公式正确地是.
A、MIN((e2-e1+e3)/e3,0)B、(e3-e1+e2)/e3
C、(e2-e1+e3)/e3D、MAX((e2-e1+e3)/e3,0)
34.FORTRAN90使用地专用字符集中,以下字符中可用于标识符(如变量名)地是.
A.*B.$C._(下划线)D.&
35、以下描述各种功能地程序块中,不属于FORTRAN90独立程序单位地是.
A.PROGRAMmain…………ENDPROGRAMMain
B.INTERFACEOPERATER(……)……ENDINTERFACE
C.SUBROUTINEsub(……)……ENDSUBROTINEsub
D.MODULEabc…………ENDMODULEabc
36、关于递归过程,以下说法中错误地是.
A.直接递归过程只需用一个过程就能定义.
B.间接递归过程至少用两个过程才能定义.
C.间接递归过程只能用两个过程定义.
D.直接递归能解决地问题用间接递归方法也能解决,但后者开销大.
37、FORTRAN90说明指针变量a时要用POINTER属性,若b不是指针变量且a=>b,则b应具有.
A.TARGET属性B.PARAMETER属性
C.POINTRER属性D.DIMENSION属性
38、FORTRAN90地很多内部函数(如ABS、MOD等)都是类属过程,那是因为.
A.其变元地类型可以随意确定
B.其函数值地类型可以随意确定
C.用户无需考虑变元类型因而使用起来方便
D.其变元和函数值可以有若干种事先规定地类型,可以根据需要选用
39、程序设计语言FORTRAN90地三种基本程序结构是.
A.模块结构、函数结构、子程序结构
B.顺序结构、判定选择结构、循环结构
C.CASE结构、IF…ENDIF结构、DO…ENDDO结构
D.主程序结构、函数和子例子程序结构、数据库子程序结构
40、FORTRAN文件系统中标准输入文件指键盘、标准输出文件指屏幕,以下叙述中错误地是.
A.标准输入文件、标准输出文件以及磁盘文件均可按有格式、顺序方式读写
B.标准输入文件、标准输出文件以及磁盘文件均可按有格式、直接方式读写
C.磁盘文件才可按有格式、直接方式读写,而标准输入文件、标准输出文件不可以
D.磁盘文件才可按无格式、顺序方式读写,而标准输入文件、标准输出文件不可以
二、填空题(请将答案按空填写在答题纸上.每空占一行,每行写一个答案25×2=50分)
1、FORTRAN90源程序在计算机上运行并获得结果要经过三个步骤,分别是编译、
(1)和运行.
2、将下面地数学式子写成FORTRAN90表达式.
(2)
3、下列程序执行后,输出地第一行是(3),第四行是(4),第六行是(5).
INTEGER,DIMENSION(3,3):
:
a
INTEGER:
:
i,j,t,m
a=RESHAPE((/11,22,33,44,55,66,77,88,99/),(/3,3/))
PRINT'(3i3)',((a(i,j),j=1,3),i=1,3)
DOi=1,2
m=4-i
t=a(m,3)
a(m,3)=a(3,i);a(3,i)=a(i,1);a(i,1)=a(1,m)
a(1,m)=t
ENDDO
PRINT'(3i3)',(a(i,1:
3),i=1,3)
END
4、下列程序执行后,输出地结果是(6).
RECURSIVEFUNCTIONf(n,p,k)RESULT(r)
INTEGER:
:
n,k
REAL:
:
p,r
IF(k==0)THEN
r=(1-p)**n
ELSE
r=((n-k+1)*p)/(k*(1-p))*f(n,p,k-1)
ENDIF
ENDFUNCTIONf
PROGRAMmain
REAL:
:
f
PRINT'(f5.3)',f(2,0.5,1)
ENDPROGRAMMAIN
5、下列程序执行后,输出地结果是(7).
PROGRAMexample_of_WHERE
IMPLICITNONE
INTEGER,DIMENSION(1:
3):
:
a=20
a(1:
3:
2)=25
WHERE(a>20)
a=a-MAXVAL(a)
ELSEWHERE
a=a-10
ENDWHERE
PRINT'(1X,3I6)',a
ENDPROGRAMexample_of_WHERE
6、下列程序执行后,输出地第一行是(8),第二行是(9).
PROGRAMmain
IMPLICITNONE
INTERFACEassignment(=)
SUBROUTINEinttolog(f,i)
LOGICAL,INTENT(out):
:
f
INTEGER,INTENT(in):
:
i
ENDSUBROUTINE
ENDINTERFACE
LOGICAL:
:
flag
CALLinttolog(flag,10)
PRINT'(L3)',flag
flag=0
PRINT'(L3)',flag
ENDPROGRAMMAIN
SUBROUTINEinttolog(f,i)
INTEGER,INTENT(out):
:
f
INTEGER,INTENT(in):
:
i
IF(i==0)THEN
f=.false.
ELSE
f=.true.
ENDIF
ENDSUBROUTINE
77、下列程序执行后,输出地第一行是(10),第三行是(11).
TYPEscore_TYPE
CHARACTER(LEN=8):
:
name!
学生姓名
CHARACTER(LEN=5):
:
no!
学号
REAL:
:
score!
考试成绩
ENDTYPEscore_TYPE
INTEGER:
:
I
TYPE(score_TYPE),DIMENSION(3):
:
s
s
(1)=score_TYPE('mary','101',90.5)
s
(2).name='jhon'
s
(2).no='102'
s
(2).score=100
s(3)%name='jack'
s(3)%no='103'
s(3)%score=88.5
WRITE(*,'(A,A,F6.1)')(s(I),I=1,3)
END
888、下列程序执行后,输出地第一行是(12),第二行是(13).
PROGRAMmain
IMPLICITNONE
INTEGER,POINTER:
:
p,q
INTEGER,TARGET:
:
i=1,j=2
p=>i;q=>j
PRINT'(4i3)',p,q,i,j
p=q+1
IF(p-1==q)p=>q
p=q+1
PRINT'(4i3)',p,q,i,j
ENDPROGRAMMAIN
9、下列程序执行后,输出地结果是(14),exchange(string)地功能是(15).
FUNCTIONexchange(string)RESULT(s)
CHARACTER(len=*):
:
string,s
INTEGER:
:
i,j,k
s="";i=1
k=ICHAR('a')-ICHAR('A')
DO
IF(string(i:
i)=='.')THEN
s(i:
i)=string(i:
i);EXIT
ELSEIF(string(i:
i)>='a'.AND.string(i:
i)<='z')THEN
s(i:
i)=CHAR(ICHAR(string(i:
i))-k);i=i+1
ELSEIF(string(i:
i)>='A'.AND.string(i:
i)<='Z')THEN
s(i:
i)=CHAR(ICHAR(string(i:
i))+k);i=i+1
ELSE
s(i:
i)=string(i:
i);i=i+1
ENDIF
ENDDO
ENDFUNCTION
PROGRAMmain
IMPLICITNONE
CHARACTER(20):
:
str1,str2,exchange
str1="I'mfromChina."
str2=exchange(str1)
PRINT*,str2
ENDPROGRAMmain
10、计算函数Sinh(x)地值,当ex地通项值小于等于1E-6时停止.计算公式如下:
PROGRAMmain
IMPLICITNONE
REAL:
:
MyExp,y,x
WRITE(*,*)'Enterx:
'
READ*,x
Y=(16)
WRITE(*,*)Y
ENDPROGRAMmain
FUNCTIONMyExp(x)RESULT(Exp_res)
IMPLICITNONE
REAL:
:
Exp_res,x,s,T
INTEGER:
:
N
N=1;T=1;S=1
Do
T=T*X/N
IF(ABS(T)<=1E-6)(17)
S=S+T
N=N+1
ENDDO
(18)
ENDFUNCTIONMyExp
11、找出3×5数组中地最大元素.(假定形状数组作虚元)
FUNCTIONARRAY_MAX(a)RESULT(max)
IMPLICITNONE
(19)
INTEGER:
:
max,i,j,m,n
m=UBOUND(a,DIM=1)!
求数组A行下标地上界(下界为1)
n=UBOUND(a,DIM=2)!
求数组A列下标地上界(下界为1)
max=a(1,1)
DOi=1,m
DOj=1,n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 fortranA