为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

2018~2019学年第二学期FORTRAN90期末试卷(A)

2019-09-24 2页 doc 116KB 21阅读

用户头像 个人认证

一线信息技术教师,具有丰富教学经验和管理经验,多次被评为地级优秀教师

举报
2018~2019学年第二学期FORTRAN90期末试卷(A)2018~2019学年第二学期FORTRAN90期末试卷(A)(考试对象:2018级水工、大禹专业)学院        专业班级        学号            姓名      &n...
2018~2019学年第二学期FORTRAN90期末试卷(A)
2018~2019学年第二学期FORTRAN90期末(A)(考试对象:2018级水工、大禹专业)学院        专业班级        学号            姓名           成绩    一、选择题(用铅笔把选中的方格涂黑40×1=40分) 1 A B C D 2 A B C D 3 A B C D 4 A B C D 5 A B C D 6 A B C D 7 A B C D 8 A B C D 9 A B C D 10 A B C D 11 A B C D 12 A B C D 13 A B C D 14 A B C D 15 A B C D 16 A B C D 17 A B C D 18 A B C D 19 A B C D 20 A B C D 21 A B C D 22 A B C D 23 A B C D 24 A B C D 25 A B C D 26 A B C D 27 A B C D 28 A B C D 29 A B C D 30 A B C D 31 A B C D 32 A B C D 33 A B C D 34 A B C D 35 A B C D 36 A B C D 37 A B C D 38 A B C D 39 A B C D 40 A B C D二、填空题(每空占一行,每行写一个25×2=50分)1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.三、程序(10×1=10分)验证哥德巴赫猜想。内容为:任意一个大偶数(≥4)可示为两个素数之和。注意:对于一个大偶数只需表示成一对素数之和即可验证。例如:10=3+7、10=5+5、10=7+3,我们只取第一种组合为答案。算法思想:对一个偶数N,从2开始找到一个较小的素数I,只要判断另一个数N-I也是素数即可;若N-I不是素数,则增大I,再找到稍大一点的素数I,直到N-I也是素数为止。一、选择题1、下面的模块定义语句中,错误的是。A、moduleapi_moduleB、real::piC、pi=3.1415D、endmoduleapi_module2、执行赋值语句:R=16**(1/2)后,变量R的值为:A、16.0B、0C、1.0D、4.03、以下几组FORTRAN90关键字中,全部用于描述(数据)属性的是。A.DIMENSION、INTENT、POINTERB.INTENT、DEALLOCATE、TARGETC.PARAMETER、ALLOCATE、OPTIONALD.ALLOCATABLE、EXTERNAL、MODULE4、FORTRAN90源程序文件的扩展名是。A、f90B、forC、objD、txt5、按照FORTRAN90符号名命名规则,以下不可作为符号名的是。A、A1B、A_1C、A1AD、A+16、A是由INTEGER,DIMENSION(6:30)::A语句定义的一个一维数组,则数组片段:A(:20:5)包含的数组元素是。A.A(20),A(25),A(30)B.A(1),A(6),A(11),A(16)C.A(6),A(11),A(16),A(20)D.A(6),A(11),A(16)7、含有目标变量和指针变量的程序片断如下:INTEGER,POINTER::x1,x2INTEGER,TARGET::y=10X1=>y以下赋值语句中正确的是。A.x1=2*x2+1B.x1=2*y+1C.x2=2*y+1D.y=2*x2+18、下面对函数程序过程的描述,是错误的。A、函数过程由FUNCTION语句来说明,函数名的命名方式与变量相同。B、过程作为子程序可以不被调用独立运行。C、结果变量用于存放函数执行结果,它应该在过程体中至少被赋值一次。D、如果函数是递归的,则应以RECURSIVE开头。9、若数组说明语句为:REAL,DIMENSION(4:10,-2:2)::a,则LBOUND(a,2)的值是。A、4B、10,2C、-2D、4,-210、以下是有顺序文件的OPEN语句,其中错误的是。A.OPEN(2,FILE=‘A.DAT’)B.OPEN(2,FILE=‘A.DAT’,STATUS='SCRATCH')C.OPEN(2,FILE=‘A.DAT’,FORM=‘FORMATTED’,)D.OPEN(2,FILE=‘A.DAT’,ACCESS=‘SEQUENTIAL’)11、以下哪种情况下,主调程序可以不写接口块。A、调用某个系统内在的函数B、定义超载赋值符和超载运算符C、使用一个类属名调用过程D、虚元中有假定形状数组12、已知A=2,B=7.5,C=-3.6,L1=.TRUE.,L2=.FALSE.,则表达式值为’假’的是。A..NOT.L2.OR.B-A<=C/2.AND.C>=-3.6B.A-7<B-6.5C..NOT.L1D.L1.EQV.A<B+C13、下面程序的循环次数是 。INTEGER::iDOi=1,30,-3PRINT*,iENDDOENDA.2B.10C.0D.3014、CHARACTER(5),DIMENSION(10)::STR,以下选项中表示STR中第一个成员的第2个字符。A、STR(1)(2)B、STR(1,2)C、STR(1)(2:2)D、STR(1:2)15、下面对数组的描述中,正确的是。A.在主程序中可以使用假定形状数组;B.动态数组可以做虚元;C.常数组只能在主程序中使用;D.可调数组只能在子程序中使用16、下面关于派生类型的描述中,错误的是。A.派生类型成员为字符型时,其长度必须确定,不可用*;B.派生类型的定义由关键词TYPE开始,其后跟上所定义类型的类型名;C.一个派生类型中成员的类型,不可以是另一个已定义的派生类型;D.引用派生类型变量的成员可用”%”号或”.”号,例如abc%a,或abc.a均可17、FORTRAN90自由格式规定,一行可以有多个语句,语句之间的分隔符是 。A.;B.!C.&D.,18、下面对指针变量描述正确的是。A.指针变量的定义与一般变量的定义相同;B.一个指针可以同时指向几个目标变量;C.指针变量与目标变量的类型可以不同;D.指针不但可以指向实型、整型目标,还可以指向字符型和逻辑型目标。19、CASE结构中情况表达式的类型有一定的限制,它不能是。A、字符型、逻辑型B、实型、复型C、整型、逻辑型D、整型、字符型20、FORTRAN90的一个程序可以由多个程序单元组成。下面不是FORTRAN90的程序单元。A.子例行子程序B.接口块C.模块D.递归子程序21、下列数组说明语句中不正确的是。A.INTEGER,DIMENSION(-1:2,0:2)::AB.INTEGER,DIMENSION(-5:5)::AC.REAL,DIMENSION(1:8:2)::AD.REAL,DIMENSION(1,8,2)::A22、执行语句:CHARACTER::STR=’FORTRAN90’后,变量STR的值为。A.FB.FORC.FORTRAND.FORTRAN9023、下面是给二维整型数组A(3,2)进行按行赋值,正确的语句是。A.A=RESHAPE((/1,2,3,4,5,6/),(/3,2/),order=(/1,2/))B.A=RESHAPE((/1,2,3,4,5,6/),(/3,2/))C.A=RESHAPE((/1,2,3,4,5,6/),(/3,2/),order=(/2,1/))D.A=RESHAPE((/1,2,3,4,5,6/),(/3,2/),(/2,1/))24、执行如下语句后,屏幕打印结果是。INTEGER,POINTER::A(:)ALLOCATE(A(5))A=(/1,2,3,4,5/)PRINT*,A(3)DEALLOCATE(A)ENDA、3B、123C、345D、1234525、有关顺序文件的文件指针操作语句,描述不正确的是。A.OPEN:文件指针指向第一条记录B.READ:文件指针下移一个记录C.WRITE:文件指针下移一个记录D.REWIND语句:文件指针上移一条记录26、执行下列语句后,屏幕打印的结果是。INTEGER,DIMENSION(-5:1)::A=(/1,0,-12,-2,16,-1,8/)INTEGER,DIMENSION(1)::BB=MAXLOC(A)PRINT*,BA.-1B.16C.5D.027.数学式的FORTRAN90表达式正确的。A.SIN(X**2)+SQRT(B*B-4*A*C)/2/AB.SIN(X)**2+SQRT(B*B-4*A*C)/2/AC.(SIN(X**2)+SQRT(B*B-4*A*C))/(2*A)D.(SIN(X)**2+SQRT(B*B-4*A*C))/(2*A)28、控制转移语句EXIT的使用范围只能在 。A.块IF结构内B.DO循环结构内C.CASE选择结构内D.WHERE结构内29、下面的程序段中,错误的语句是。TYPETEACHERCHARACTER(LEN=8)::NAMEREAL,DIMENSION(2)::WAGENAME=’ANHUIUNI’D.ENDTYPETEACHER30、设有结构体定义:TYPEstudentINTEGER::noCHARACTER::name*8,sex*1INTEGER::ageENDTYPEstudent以下定义结构体变量并初始化正确的是。A、TYPE(student)::st1=(990101,"Smith","M",20)B、TYPE(student)::st1=student(990101,"Smith","M",20)C、TYPE(student),st1=student(990101,"Smith","M",20)D、TYPE(student),st1=(990101,"Smith","M",20)31、FORTRAN90提供的三种循环结构:不带循环变量的DO结构、带循环变量的DO结构以及DOWHILE结构,循环体执行次数最少分别是。A.0次、1次、1次B.0次、0次、0次C.1次、1次、1次D.1次、0次、0次32、执行如下程序段后,屏幕输出结果是。character::LONG*8,SHORT*3LONG='ABCDEF'SHORT='ABCDEF'LONG(1:2)='SS'PRINT*,LONG(:4)//SHORTENDA、ABCDABCDEFB、SSCDABCC、SSCDABCDEFD、ABCDSSABCDEF33、FORTRAN中可为数组指定POINTER属性,这样的数组称为指针数组。关于指针数组A的声明,正确的是。A、REAL,DIMENSION(:),POINTER::AB、REAL,DIMENSION(10),POINTER::AC、REAL,POINTER::A(10)D、REAL,POINTER,DIMENSION(10)::A34、设有数组定义:INTEGER::a(3,2)用数组构造器给数组赋值:a=RESHAPE((/6,5,4,3,2,1/),(/3,2/))则数组a的第一行应为。A、654B、321C、65D、6335、在FORTRAN90的类型定义中,一个REAL类型可使用的种别参数为。A.1,2,4B.2,4C.4,8D.2,4,836、若说明语句为:COMPLEX(KIND=8)::c=(3.23l,2.445)REAL(KIND=8),PARAMETER::e=2.818281828459045则下述说法中不正确的是。A.c和e的种别参数相同D.c为双精度复型,e为双精度实型C.c和e在程序内都可重新赋值D.c为普通变量,可重新赋值。e具参数属性,程序内不可重新赋值37、若数组说明语句为:INTEGER,DIMENSION(-2:2,0:4)::a,则数组元素a(1,1)是第元素。A.8B.9C.5D.738、以下关于超载运算符(例如+)的说法中,正确的。A.超载运算符的超载功能应由程序员用外部子例子程序来定义B.超载运算符的超载功能应由程序员用外部函数来定义C.程序单位内倘若需要使用超载运算符,不必特别声明即可随意使用D.程序单位内若要使用超载运算符,必须有接口块,其开头应为INTERFACEASSIGNMENT(+)39、子程序的形式参数(虚拟变元或哑元)可以是 。A.变量名、数组名、过程名、指针等B.变量名、数组名、过程名和符号常量名C.变量名、数组名、数组片段、过程名D.任意符号名40、有语句WRITE(*,‘(E9.2)’)area,说明area是一个 的变量。A.整型B.实型C.字符型D.逻辑类型二、填空题(请将答案按空填写在答题纸上。每空占一行,每行写一个答案25×2=50分)1、数学表达式:1<x2+y2<2的fortran90表达式写法为:(1)2、与其他语言不同,FORTRAN90提供了强大的数组运算功能,它允许把整个数组作为一个操作数进行运算,也允许在赋值语句中对整个数组或其片段进行赋值,就像对一个简单变量的赋值一样。其运算规则是:(2)相同,对应元素进行运算。3、FORTRAN90源程序必须经过编译、(3)后才可运行4、下列程序执行后,输出的第一行是(4),第二行是(5)PROGRAMEXAM_POINTERIMPLICITNONEINTEGER,TARGET::X,Y,ZINTEGER,POINTER::PT1,PT2,PT3X=10;Y=20;Z=30PT1=>X;PT2=>Y;PT3=>ZPT2=PT1;PT1=>PT3print*,"x=",x,"y=",y,"z=",zPRINT*,"PT1=",PT1,"PT2=",PT2,"PT3=",PT3ENDprogram5、下列程序执行后,输出的第一行是(6),第二行是(7)。ProgrammainImplicitnoneInteger::n=5,sum1Print*,sum1(n)Print*,nEndRecursivefunctionsum1(m)result(sum_result)Integer::m,sum_resultSelectcase(m)Case(1)Sum_result=1CasedefaultSum_result=sum1(m-1)+mEndselectm=m+2Endfunction6、下列程序执行后,需要从键盘输入数据的个数是(8),屏幕打印的第二行是(9)。PROGRAMdysTYPEstudentCHARACTER(len=8)::nameINTEGER::ageENDTYPEstudentINTEGER::iTYPE(student),DIMENSION(3)::sread*,s(1)s(2)%name='Lu's(2)%age=20s(3).name='Wang's(3).age=18WRITE(*,'(A,I5)')(s(i),i=1,3)ENDPROGRAMdys7、下列程序执行后,输出的第一行是(10),第二行是(11)。PROGRAMXITIIMPLICITNONEREAL,DIMENSION(1:2,1:3)::A,BINTEGER::IA=RESHAPE((/1,2,3,4,5,6/),(/2,3/))B=RESHAPE((/-1.1,-2.1,-3.1,-4.1,-5.1,-6.1/),(/2,3/))WHERE(A<=2)B=ABS(B)ELSEWHEREB=B+1ENDWHEREPRINT'(3F6.2)',(B(I,1:3),I=1,2)END8、下列程序执行后,输出的第二行的值是(12)。PROGRAMTRIPLETIMPLICITNONEINTEGER,DIMENSION(1:15)::RINTEGER::IDOI=1,15R(I)=IENDDODOI=1,3WRITE(*,'(1X,5I4)')R(I:15:3)ENDDOENDPROGRAMTRIPLET97、下列程序运行后,屏幕打印的结果共(13)行,其中第二行为(14)。PROGRAMMAINIMPLICITNONEREAL*4::G,H,E,RG=12345.678;H=12345678.;E=-4.56E+1;R=-365.WRITE(*,'(F8.2)')G,H,E,RENDPROGRAMMAIN10、下列程序执行后,输出的第一行是(15),第三行是(16)。INTEGER,DIMENSION(3,4)::mm=RESHAPE((/0,1,2,3,4,5,6,7,8,9,1,2/),(/3,4/))PRINT*,SHAPE(m)PRINT*,SUM(m,DIM=2,MASK=m<5)PRINT*,MAXLOC(m)END11、下列程序执行后,输出的第一行是(17),第二行是(18)。FUNCTIONupper_str(str)result(upper_string)implicitnonecharacter(len=*),intent(in)::strcharacter(len=255)::upper_stringinteger::icharacter::chdoi=1,len_trim(str)ch=str(i:i)if(ch>='a'.and.ch<='z')thenupper_string(i:i)=achar(ichar(ch)-32)elseupper_string(i:i)=chendifenddoendfunctionprogrammain_upperimplicitnoneinterfaceoperator(.upper.)FUNCTIONupper_str(str)result(upper_string)character(len=*),intent(in)::strcharacter(len=255)::upper_stringendfunctionendinterfacecharacter(len=7)::ch1,ch2ch1="Chinese"ch2=.upper.ch1print'(A,/,A)',ch1,ch2endprogram12、函数f(x)的展开式为:事实上。将上式右端编写成外部过程。当通项的绝对值小于eps=1E-12时停止计算。在同一行上,x用F7.4、级数之和及用于验证的值用F9.6格式输出。计算所用的数据存放在文件MYF2.DAT中,从该文件输入的x值为:0.58870.8874-0.8874。FUNCTIONF(x)RESULT(s)IMPLICITNONEREAL(4)::n,x,sum,s,un,eps=1E-12n=1un=-x/6sum=0.0DOWHILE((19))sum=sum+unun=-un*(n*x/(n+3))n=n+1ENDDOs=(20)ENDFUNCTIONFPROGRAMMainIMPLICITNONEREAL::x,F,y,zINTEGER::iCHARACTER(len=50)::fmtfmt='("x=",F7.4,"f(x)=",F9.6,"g(x)=",F9.6)'(21)open(2,file='myf2.out')DOi=1,3(22)y=F(x)z=(1+x)**2*log(1+x)WRITE(2,fmt)x,y,zWRITE(*,fmt)x,y,zENDDOclose(1);close(2)ENDPROGRAMMain13、利用随机过程产生20个处于区间【10,99】之间的随机整数,再将这20个整数中能被3整除的数,有序保存到数组b中,输出b,请完善下列程序。PROGRAMMAININTEGER,DIMENSION(1:20)::A,BINTEGER::I,KREAL::X(23)DOI=1,20CALLRANDOM_NUMBER(X)(24)IF(MOD(A(I),3)==0)THENK=K+1(25)ENDIFENDDOWRITE(*,'(10I5)')APRINT*,'能被3整除的数为:'WRITE(*,'(10I5)')B(1:K)END�EMBED\*MERGEFORMAT���PAGE第11页共11页_1234567891.unknown_1234567892.unknown_1234567893.unknown_1234567890.unknown
/
本文档为【2018~2019学年第二学期FORTRAN90期末试卷(A)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索