武汉大学2013年fortran试卷A

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2013年物理科学与技术学院Fortran程序设计期末试卷(A卷)一、选择题(每题2分,共40分)1、若FORTRAN中一个INTEGER型数据占用2个字节,那么该类型的数据值范围是_______。A)-2147484648~2147483647B)-32768~32767C)0~4294967295D)0~655352、下列标识符中不能作为FORTRAN的合法变量名的是_______________。A)A_1B)A1C)A1AD)A+13、设A=3.0,C=6.0,L=.FALSE.,则下列FORTRAN表达式中值为.FALSE.的是_______________。A)A.NE.C.AND..NOT.LB)A.NE.C.NEQV..NOT.LC)A.NE.C.EQV..NOT.LD)A.NE.C.OR..NOT.L4、不等式0≤Y≤1的FORTRAN表达式是_______________。A)0.0.LE.Y.LE.1.0B)0.0.LE.Y.OR.Y.LE.1.0C)0.0.LE.Y.AND.Y.LE.1.0D)0.0.LE.Y.NOT.Y.GT.1.05、整型变量M能被整型变量K整除的FORTRAN表达式是______________。A)MOD(M,K)=0B)M-M/K*K.EQ.0C)MOD(K,M)=0D)MOD(M,K)=0.EQ..TRUE.6、设有下列数组说明语句:REAL::A(1:10,-1:10)该数组说明语句定义了数组A中的元素个数为___________。A)100B)110C)120D)1217、对于下列给定的FORTRAN说明和赋初值语句:INTEGER::A(2,2)=(/3,4,5,6/)数组元数A(2,1)的初值为_______________。A)3B)5C)4D)68、FORTRAN表达式3/4+0.5的值是___________。A)0.5B)1C)1.0D)09、下面循环语句执行后,SUM的值是__________。DOI=1,5SUM=0DOJ=I,4,-1SUM=SUM+I+JENDDOENDDOA)0.0B)19.0C)27.0D)76.010、阅读下列FORTRAN程序DOi=1,5SUM=SUM+iENDDOWRITE(*,*)SUMEND上述程序运行后,输出结果是_________。A)15B)15.0C)不确定D)011、332的FORTRAN表达式是_______。A)2**3**3B)(2**3)**3C)(2*2*2)**3D)2*2*2**312、阅读下列FORTRAN程序INTEGER,PARAMETER::L=3INTEGER::N(L)DATAN/3*0/DOI=1,LDOJ=1,LN(J)=N(I)+1ENDDOENDDOWRITE(*,*)N(L)END上述程序运行后,输出结果是_________。A)3B)5C)7D)913、阅读下列FORTRAN程序(其中□表示空格):CHARACTER*3A(3)A(1)='A□GOOD□IDEA.'WRITE(*,*)A(1)END执行该程序后,输出的结果是_______________。A)'A□GOOD□IDEA.'B)A□GOOD□IDEA.C)'A□G'D)A□G14、阅读下列FORTRAN程序READ(*,100)NO,MIF(NO.GE.125)THENM=M-10ELSEM=M+10ENDIFWRITE(*,*)M100FORMAT(I2,I1)END在执行上述程序时,从键盘上输入256,2↙后,输出结果是________。A)-4B)-8C)16D)1215、要选拔身高T1.7米且体重W62.5公斤的人,FORTRAN的逻辑表达式是_______。A)T.GE.1.7.AND.W.LE.62.5B)T.LE.1.7.OR.W.GE.62.5C)T.GT.1.7.AND.W.LT.62.5D)T.GT.1.7.OR.W.LT.62.516、将数学式51(ln)2xe改写为FORTRAN表达式,正确的是__________。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))17、阅读下列FORTRAN程序:SUBROUTINEABC(X,Y,Z)Y=Y-1.0Z=Z+XENDPROGRAMtestY=2.5CALLABC(6.5,Y,Y)WRITE(*,*)YEND运行上述程序后,输出的Y值为__________。A)1.5B)8.0C)9.0D)10.518、要想成功地打开名为QW的输出文件,应该使用语句A)OPEN(UNIT=3,FILE='QW')B)OPEN(3,FILE=QW)C)OPEN(FILE='QW',3,STATUS='OLD')D)OPEN(3,FILE=QW,STATUS=UNKNOWN)19、语句OPEN(9,FILE='DATA.TXT')打开的是()文件。A)无格式顺序文件B)有格式顺序C)无格式直接D)有格式直接20、程序代码如下CHARACTER(LEN=10)::A='ABCDEFGHIJ'CHARACTER(LEN=5)::CC=A(:5)A(:5)=A(3:7)A(3:7)=CWRITE(*,*)AEND输出的结果为____。A)CDBCDEFHIJB)CDABCDEHIJC)FGHIABCDED)ABCDEFGHIJ二、填空题(每空4分,共20分):1、以下程序的输出结果为:INTEGER::arr2(2,3)arr2=RESHAPE((/3,0,-3,5,-8,2/),(/2,3/))WHERE(arr20)arr2=2*arr2ENDWHEREWRITE(*,*)SUM(arr2,MASK=arr20.)END2、以下程序中,第一个WRITE的输出结果是第二个WRITE的输出结果是PROGRAMexamIMPLICITNONETYPE::ptrINTEGER,POINTER::p(:)ENDTYPETYPE(ptr)::p1INTEGER,TARGET::a(4)=(/1,2,3,4/)INTEGER,TARGET::b(4)=(/5,6,7,8/)INTEGER,TARGET::c(4)=(/9,10,11,12/)p1(1)%p=ap1(2)%p=bp1(3)%p=cWRITE(*,*)p1(3)%pWRITE(*,*)p1(2)%p(3)ENDPROGRAMexam3、以下程序中,第一个WRITE的输出结果是第二个WRITE的输出结果是其中,DOT_PRODUCT()和MATMUL()为内置函数,前者是计算两个向量的点积,后者计算两个向量的叉积PROGRAMMAINIMPLICITNONEINTEGER,ALLOCATABLE::A(:),B(:)INTEGER,ALLOCATABLE::X(:,:),Y(:,:),Z(:,:)INTEGER::C,I,JALLOCATE(A(1:10),B(1:10))A=(/1,2,3,4,5,6,7,8,9,10/)B=(/10,9,8,7,6,5,4,3,2,1/)C=DOT_PRODUCT(A,B)WRITE(*,FMT='(I5)')CALLOCATE(X(1:2,1:2),Y(1:2,1:2),Z(1:2,1:2))X=RESHAPE((/1,2,3,4/),(/2,2/))Y=RESHAPE((/4,3,2,1/),(/2,2/))Z=MATMUL(X,Y)WRITE(*,FMT='(4I4)')((Z(I,J),J=1,2),I=1,2)ENDPROGRAM三、程序填空(每空3分,共30分):1、已知牛顿迭代公式为1()'()nnnnfxxxfx。以下程序段用牛顿迭代法求方程320axbxcxd在0x附近一个根的函数。其中a、b、c、d及0x的值均在主程序中,输入、输出也在主程序中进行。REALFUNCTIONNEWTON(A,B,C,D,X)IMPLICITNONEREAL,INTENT(IN)::A,B,C,DREAL::X,F,F1,X1INTEGER::N=0DOX1=XF=A*X**3+B*X*X+C*X+DF1=(1)X=X1-F/F1N=N+1IF(ABS(X-X1)1E-5)(2)IF(N=100)EXITENDDOIF(N100)THENWRITE(*,*)'发散'NEWTON=9999ELSENEWTON=X(3)ENDFUNCTIONPROGRAMMAINIMPLICITNONEREAL::A,B,C,D,X0,X(4)WRITE(*,*)'请输入各系数A,B,C,D'READ(*,*)A,B,C,DWRITE(*,*)'请输入迭代初值'READ(*,*)X0(5)WRITE(*,*)'方程的一个根是',XENDPROGRAMMAIN2、已知数组A是4行7列的数组�以下程序代码是将该数组的每一行用选择排序法按从大到小的排列。SUBROUTINESORT(a,n)!对n个元素的一维数组a进行从大到小的选择排序IMPLICITNONEINTEGER::nINTEGER::a(n)(1)DO(2)k=iDOj=i+1,nIF(a(k)a(j))(3)ENDDOIF(k/=i)THENtemp=a(k)a(k)=a(i)(4)ENDIFENDDOENDSUBROUTINESORTPROGRAMMAINIMPLICITNONEINTEGER::a(4,7)INTEGER::i,j,kREAD(*,*)((A(i,j),j=1,7),i=1,4)DOi=1,4WRITE(*,'(7I5)')(A(i,j),j=1,7)ENDDODOk=1,4CALLSORT((5))ENDDODOi=1,4WRITE(*,'(1X,7I4)')(a(i,j),j=1,7)ENDDOENDPROGRAMMAIN四、程序设计题(10分)编写一个程序输出杨辉三角的前10行111121133114641……

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功