Fortran 上机题汇总

Fortran 复习题汇总program exer101_1implicit nonerealpi,r,t,sC 说明符号常量parameter(pi=3.1415926)C 打开用于保存结果的文件open(9,file='mydata.dat')write(*,*)"请输入r和t的值:"read*,r,ts=t/360.0*pi*r**2C 在屏幕上显示结果print*,'r=',r,'t=',t,'s=',sC 采用格式说明语句显示结果write(*,100)'r=',r,'t=',t,'s=',s100 format(1X,3(A2,F10.5,1X))C 将结果保存至文件中write(9,*)'r=',r,'t=',t,'s=',sendprogram exer101_2implicit nonerealpi.r,t,sparameter(pi=3.1415926) !说明符号常量open(9,file='mydata.dat') !打开用于保存结果的文件write(*,*)"请输入r和t的值:"read*,r,ts=t/360.0*pi*r**2print*,'r=',r,'t=',t,'s=',s !在屏幕上显示结果write(*,100)'r=',r,'t=',t,'s=',s !采用格式说明语句显示结果100 format(1X,3(A2,F10.5,1X))write(9,*)'r=',r,'t=',t,'s=',s !将结果保存至文件中end12program ex202 implicit none real F,Cprint*,"请输入一个华氏温度:"read*,FC=(F-32)*5/9print*,"摄氏温度为:",Cendprogram ex203implicit nonereala,b,x,yprint*,"请依次输入a,b,x的值" read*,a,b,xy=(exp(a*x)+log(x)**2)/(5.0*b) print*,yend program ex204implicit nonereal v0,t,g,sparameter(g=9.81)print*,"请输入v0,t的值" read*,v0,ts=0.5*g*t**2+t*(v0)print*,sendprogram ex301implicit nonereal I1,I2,I3,sprint*,"请输入三个整数" read*,I1,I2,I3s=I1+I2+I3print*,"三个整数之和为:",s print*,"第一种排列次序:",I1,I2,I33print*,"第二种排列次序:",I1,I3,I2 print*,"第三种排列次序:",I2,I1,I3 print*,"第四种排列次序:",I2,I3,I1 print*,"第五种排列次序:",I3,I1,I2 print*,"第六种排列次序:",I3,I2,I1 end!计算三数之和,求三数排列次序program ex301_2!说明部分开始implicit noneinteger(1)::I,J,Kinteger Sprint*,'请输入三个整数:'read*,I,J,KS=I+J+Kprint*,'I1+I2+I3=',Sprint*,'三个整数所有可能排列次序有:' print*,I,J,Kprint*,I,K,Jprint*,J,I,Kprint*,J,K,Iprint*,K,I,Jprint*,K,J,Iend programprogram ex302implicit nonecomplex::c1=(3.5,4.8),c2=(7.5,-3.2) complexa,b,c,da=c1+c2b=c1-c2c=c1*c2d=c1/c2print*,"两数之和为:",aprint*,"两数之差为:",bprint*,"两数之积为:",cprint*,"两数之商为:",dend4program ex401_1implicit nonereal A1,A2,B1,B2,C1,C2,X,Y,T A1=2.0A2=-6.0B1=1.0B2=-1.0C1=4.0C2=4.00T=A1*B2-A2*B1X=(B2*C1-B1*C2)Y=(A1*C2-A2*C1)WRITE(*,*)'X=',X,'Y=',YEND program ex0402implicit nonereal A1,A2,B1,B2,C1,C2,X,Y,Twrite(*,*)'请输入A1,A2,,B1,B2,C1,C2的值:' read*,A1,A2,B1,B2,C1,C2T=A1*B2-A2*B1X=(B2*C1-B1*C2)Y=(A1*C2-A2*C1)WRITE(*,*)'X=',X,'Y=',YENDPROGRAM ex402IMPLICIT NONEREAL AINTEGER IREAL RWRITE(*,*)'ENTER REAL A(A>0):'5READ(*,*)AI=int(A)R=A-IWRITE(*,*)'I=',I,'R=',RENDPROGRAM ex403IMPLICIT NONEREAL a1,a2,a3,a4,a5,a6,maxnumberwrite(*,*)'请输入6个实数:'READ(*,*)a1,a2,a3,a4,a5,a6a1=abs(a1);a2=abs(a2);a3=abs(a3);a4=abs(a4);a5=abs(a5);a6=a bs(a6)maxnumber=max(a1,a2,a3,a4,a5,a6)WRITE(*,*)'绝对值最大的数为=',maxnumberENDPROGRAM ex404IMPLICIT NONEinteger n,n1,n2,n3,sumwrite(*,*)'请输入1个三位整数:'READ(*,*)n n1=n/100n2=(n-n1*100)/10n3=n-n1*100-n2*10sum=n1+n2+n3WRITE(*,*)'各位数字之和为=',sum ENDprogram ex501implicit nonereal a,b,c,x1,x2,d,e,fprint*,"请输入任意实数:"read*,a,b,cd=b**2-4.0*a*cif(a==0.and.b==0.and.c==0)then print*,"此一元二次方程有无穷多的根"6endifif(a==0.and.b==0.and.c/=0)thenprint*,"此一元二次方程无解"endifif(a==0.and.b/=0)thenx1=-c/bprint*,"此一元二次方程的解为:",x1endifif(a/=0.and.d>0)thenx1=(-b+sqrt(d))/2*ax2=(-b-sqrt(d))/2*aprint*,"此一元二次方程有两个不同的实根:",x1,x2 endifif(a/=0.and.d==0)thenx1=(-b+sqrt(d))/2*ax2=(-b-sqrt(d))/2*aprint*,"此一元二次方程有两个相同的的实根:",x1,x2 endifif(a/=0.and.d<0)thene=sqrt(4*a*c-b**2)f=(-b)/2*aprint*,"此一元二次方程实根为:" print*,"x1=",f,"+",e,"i"print*,"x2=",f,"-",e,"i"endifendprogram ex502implicit nonereala,b,c,d,tprint*,"请输入任意四个实数:" read*,a,b,c,dif(a>b)then7t=aa=bb=t endifif(a>c)thent=aa=cc=t endifif(a>d)thent=aa=dd=t endifif(b>c)thent=bb=cc=t endifif(b>d)thent=bb=dd=t endifif(c>d)thent=cc=dd=tendifprint*,"四个数由小到大顺序为:",a,b,c,dendprogram ex502_1 !升序排列四个数,并打印输出integera,b,c,d,tempprint*,'请输入任意四个整数:'read*,a,b,c,dif(b<a)thentemp=a;a=b;b=tempendifif(c<b)thentemp=c;c=b;b=tempif(b<a)thentemp=a;a=b;b=tempendifendifif(d<c)thentemp=d;d=c;c=tempif(c<b)thentemp=c;c=b;b=tempif(b<a)thentemp=a;a=b;b=temp8endifendifendifprint*,a,b,c,dendprogram ex502_2implicit noneintegern,i,jreal treal,allocatable::a(:)write(*,*)"How many numbers"!提示输入数的个数read*,n !请输入数的个数n print*,'请输入n个数' !请输入n个数allocate(a(n))read*,ado j=1,n-1doi=1,n-jif(a(i)>a(i+1)) thent=a(i)a(i)=a(i+1)a(i+1)=tendifenddoenddoprint*,adeallocate(a)endprogram ex503implicit nonereala,b,c,d,e,sumprint*,"请输入该学生的五门课成绩:"read*,a,b,c,d,esum=a+b+c+d+eif(sum>450)thenprint*,"该学生获得学习优良奖"elseif(a>88.and.b>88.and.c>88.and.d>88.and.e>88)then print*,"该学生获得学习优良奖"elseif(a>95.and.b>95.and.c>95.and.d>80.and.e>80)then print*,"该学生获得学习优良奖"elseprint*,"该学生不能获得学习优良奖"endif9endprogram ex504implicit nonerealx,yprint*,"请输入x的值:"read*,xif(x>=1.and.x<2)theny=sqrt(4.3)+log(x)print*,"所对应的y的值为:",y elseif(x>=2.and.x<3)theny=x**2+exp(x)print*,"所对应的y的值为:",y elseif(x>=3.5.and.x<5)then y=log10(x)print*,"所对应的y的值为:",y elsey=1+x+x**2print*,"所对应的y的值为:",yendifendprogram ex601implicit nonerealx,s,f,pi,yinteger:: i=1parameter(pi=3.1415926)print*,"请输入x的值:"10read*,xx=(x*pi)/180s=xf=xy=sin(x)do while(abs(f)>1.0e-7)i=i+1f=(-x*x*f)/((2*i-2)*(2*i-1))s=x+fenddoprint 10,x,s,y10 format(f4.2,2x,f4.2,2x,f4.2)EndPROGRAM ex601_1IMPLICIT NONEREAL pi,epsPARAMETER(pi=3.1415926,eps=1E-7) INTEGER:: n=1REAL x,T,sinxWRITE(*,*),'输入一个度数值: 'READ*,xx=x*pi/180 !转换为弧度值T=x;sinx=TDO WHILE(ABS(T)>eps)n=n+1T=-T*x*x/((2*n-2)*(2*n-1))sinx=sinx+TEND DOPRINT*,'程序计算得到的正弦值',sinxPRINT*,'FORTRAN 90内部函数值',SIN(x)ENDPROGRAM ex601_2IMPLICIT NONEREAL pi,epsPARAMETER(pi=3.1415926,eps=1E-7)INTEGER:: n=1,maxterms=1000REAL x,T,sinxWRITE(*,*),'输入一个度数值: 'READ*,xx=x*pi/180 !转换为弧度值T=x;sinx=TDO WHILE(ABS(T)>eps.AND.(n<=maxterms)) n=n+1T=-T*x*x/((2*n-2)*(2*n-1))sinx=sinx+TEND DOIF(ABS(T)>eps)THEN11PRINT*,'发散级数,不能得到结果.' ELSEPRINT*,'程序计算得到的正弦值',sinx PRINT*,'FORTRAN 90内部函数值',SIN(x) END IFENDPROGRAM ex601_3IMPLICIT NONEREAL pi,epsPARAMETER(pi=3.1415926,eps=1E-7) INTEGER:: n=1,mREAL x,T,sinxWRITE(*,*),'输入一个度数值: 'READ*,xm=int(x/360.0)x=x-m*360x=x*pi/180 !转换为弧度值T=x;sinx=TDO WHILE(ABS(T)>eps)n=n+1T=-T*x*x/((2*n-2)*(2*n-1))sinx=sinx+TEND DOPRINT*,'程序计算得到的正弦值',sinx PRINT*,'FORTRAN 90内部函数值',SIN(x)ENDprogram ex602implicit noneintegeri,n,Arealf,sumprint*,"请输入A的值:"read*,Asum=0n=1do while(sum<A)sum=sum+n**2n=n+1enddof=0if(sum==A)then12print*,"此时n的值为:",n doi=1,nf=f+(1.0/i)*(-1)**(i+1) end doprint*,"此程序计算结果为:",f elseprint*,"此时n的值为:",n-1 doi=1,n-1f=f+(1.0/i)*(-1)**(i+1) end doprint*,"此程序计算结果为:",f endifend program ex701implicit noneinteger a(10),b,n,p,ia=(/10,55,25,70,45,15,25,85,45,35/) print*,"原始数据为:"print 10,aprint*,"输入一个待删除整数:"read*,bn=10p=1do while(p<=n)do p=1,nif(a(p)==b) exitend doif(p<=n) thendoi=p,n-1a(i)=a(i+1)end don=n-1end ifend doif(n==10) thenprint*,"没有发现要删除的数据!"13elseprint*,"待删除整数删除后的数据为:"print 10,a(1:n)end if10 format(1x,10i4)Endprogram ex702implicit noneinteger,allocatable::a(:,:),b(:)integersum,max,m,n,p,t,i,jprint*,"请输入m*n矩阵阶数m,n:"read*,m,nallocate(a(m,n),b(m))print*,"按逻辑结构输入m*n矩阵数据(数据之间用空格间隔):" read*,((a(i,j),j=1,n),i=1,m)doi=1,msum=0 do j=1,nsum=sum+a(i,j)end dob(i)=sumend domax=b(1);p=1doi=2,mif(b(i)>=max) thenmax=b(i);p=iendifend doprint*,"对调前矩阵"doi=1,mprint 200,(a(i,j),j=1,n)end doprint*,"和最大的行:",pdo j=1,nt=a(p,j);a(p,j)=a(1,j);a(1,j)=t end doprint*,"对调后矩阵:"doi=1,mprint 200,(a(i,j),j=1,n)end do200 format(1x,<n>(i4,1x))End1415program ex703 implicit noneparameter m=3,n=4 real a(m,n),min,max,tintegeri,j,i_min,j_min,i_max,j_maxa=reshape((/25.5,15.2,20.3,35.2,12.0,14.5,38.5,29.5,30.5,15.3,18.5,17.8/),(/m,n/))print*,"交换前的数据为:" print 10,((a(i,j),j=1,4),i=1,3)min=a(1,1) max=a(m,n)doi=1,m do j=1,nif(abs(min)>abs(a(i,j))) then min=a(i,j) i_min=i j_min=j endifif(abs(max)<abs(a(i,j))) then max=a(i,j) i_max=i j_max=j endifend doend dot=a(1,1)a(1,1)=a(i_min,j_min)a(i_min,j_min)=tt=a(m,n)a(m,n)=a(i_max,j_max)a(i_max,j_max)=tprint*,"交换后的数据为:"print 10,((a(i,j),j=1,4),i=1,3)10 format(2x,f4.1,2x,f4.1,2x,f4.1,2x,f4.1) endprogram ex704implicit noneinteger,allocatable::a(:,:) integer::sum1=0,sum2=0,i,j,nprint*,"请输入n*n矩阵阶数n:"read*,n allocate(a(n,n))print*,"按逻辑结构输入n*n矩阵数据:" read*,((a(i,j),j=1,n),i=1,n)doi=1,nsum1=sum1+a(i,i)end dodoi=1,nsum2=sum2+a(i,n-i+1)end doprint*,"第一条对角线元素之和:",sum1 print*,"第二条对角线元素之和:",sum2 end16program ex705 implicit none integeri,j,t,a(4)print*,"请输入4个整数:" read*,(a(i),i=1,4)print 100,(a(i),i=1,4) print*,"输出数组:"doi=1,4t=a(1)do j=2,4a(j-1)=a(j)end doa(4)=tprint 100,a(1:4)end do100 format(1x,i4,1x,i4,1x,i4,1x,i4,1x) Endprogram ex801implicit nonerealx,yx,fx,px,qxrealy,f,p,qy(x)=1+2*x+x**2f(x)=x**2/sqrt(1+2*x+x**2)p(x)=log(1+sqrt(x))/(1+x**2) q(x)=atan(x/sqrt(1-x**2))do x=0.1,0.3,0.1yx=y(x)fx=f(x)px=p(x)qx=q(x)print*,'x=',x17print*,'y(x)=',yx print*,'f(x)=',fx print*,'p(x)=',px print*,'q(x)=',qxenddoendprogram ex802implicit noneintegerx,y,zinteger ff(x,y,z)=25*x+20*y+13*z print*,'方程组的自然数解为:' do x=1,18do y=1,18z=20-x-yif(f(x,y,z)==400)thenprint*,z,y,zendifenddoenddoend program ex803implicit nonereal radius, areawrite(*,*) "请输入圆的半径:"read(*,*) radiuscallCircleArea(radius, area)write(*,"('圆面积=',F8.3)") area stopend program subroutineCircleArea(radius, area) implicit nonereal, parameter :: PI=3.14159real radius, areaarea = radius*radius*PIreturnend subroutineprogram ex804implicit none18real radiusreal, external :: CircleAreawrite(*,*) "请输入圆的半径"read(*,*) radiuswrite(*,"('圆面积=',F8.3)") CircleArea(radius) stopend programreal function CircleArea(radius)implicit nonereal, parameter :: PI=3.14159real radiusCircleArea = radius*radius*PIreturnendfunction subroutinematra_mul(A,B,M,N,L,AB)!A(M,N)*B(N,L)=>AB(M,L)implicit noneintegerM,N,L,i,j,kreal A,B,ABdimension A(M,N),B(N,L),AB(M,L)doi=1,Mdo j=1,LAB(i,j)=0do k=1,nAB(i,j)=AB(i,j)+A(i,k)*B(k,j)enddoenddoenddoendprogram ex805implicit noneintegerM,N,L,i,jparameter (M=3,N=4,L=3)real,dimension(:,:):: A(M,N),B(N,L),AB(M,L)data A/2.5,3.8,-45,1.5,4.5,23,12,5.9,34,2.4,24.5,0/ data B/3.2,0,3.4,2.5,-7.8,-9.8,5.8,-56,5,4.5,7.8,210/ callmatra_mul(A,B,M,N,L,AB)write(*,*)'A数组:'write(*,100)((A(i,j),j=1,N),i=1,M)19write(*,*)write(*,*)'B数组:'write(*,200)((B(i,j),j=1,L),i=1,N) write(*,*)write(*,*)'AB数组:'write(*,300)((AB(i,j),j=1,L),i=1,M) 100 format(2X,4F8.2)200 format(2X,3F8.2)300 format(2X,3F10.2)End program ex901 !用文件组织数据,对数据排序implicit noneinteger M,N,Lparameter (n=9,m=3)integer::A(n),i,j,t,kopen(1,file='dat.in')open(2,file='dat.out')k=n/mdoi=1,kread(1,*)(A(k*(i-1)+j),j=1,k)enddodoi=1,n-1do j=i+1,nif(A(i)>A(j))thent=A(i);A(i)=A(j);A(j)=tendifenddoenddodoi=1,kwrite(2,'(1X,<k>(I2,2X))')(A(k*(i-1)+j),j=1,k) enddoprint*,'程序运行结束,结果在输出文件dat.out中。

合集下载

FORTRAN90试题_3_

FORTRAN90试题_3_

FORTRAN90试题_3_计算机基础部分单项选择题(每题1分,共⼗分)(⼀)微型机的性能指标主要取决于 1 。

1.A) 内存 B) 中央处理器 C) 硬盘 D) 显⽰卡(⼆)与⼗进制数35等值的⼆进制数为 2 。

2.A) 100011 B) 110001 C) 11101 D) 101011 (三)硬盘⼯作时,应尤其注意防⽌ 3 。

3.A) 空⽓潮湿 B) 空⽓中的尘埃 C) 光线直射 D) 强烈震动(四)下列选项中, 4 不属于系统软件。

4.A) C 语⾔编译程序B)Windows C) Unix D)Office (五)计算机联⽹的主要⽬的是 5 。

5.A) 数度快 B) 资源共享 C) 精度⾼ D) 容量⼤(六)下列⽹络的IP 地址中, 6 正确的是。

6.A) 202.245.101.201 B) 204.256.9.101 C) 202.155.98.C D) 249.220.258.202(七)在多媒体计算机系统中,不能⽤于存储多媒体信息的是 7 。

7.A) 光缆 B)光盘 C) 硬盘 D) 磁带(⼋)计算机病毒不能通过 8 传播。

8.A) 硬盘 B) 优盘 C) D 打印机 D) ⽹络(九)在Windows 98中,将⼀个应⽤程序窗⼝最⼩化后,该应⽤程序 9 。

9.A) 任在后台运⾏ B) 暂时停⽌运⾏ C) 完全停⽌运⾏ D) 从任务栏退出(⼗)在Windows 环境下,若要将当前窗⼝存⼊剪贴板,则可以按 10 。

10.A) Ctrl + Print Screen B) Alt + Print Screen C) Shift + Print Screen D) Print ScreenFORTRAN90语⾔⼀、语⾔基础单项选择(每题2分,共20分)(⼀) 下⾯程序段中,错误的语句是 1 。

1. A) REAL,PARAMETER :: S = 1.73B) REAL :: X = 3 C) S = S + XD) PRINT *, S, X(⼆) ⼀个梯形的上底长为A,下底长为B,⾼为H,正确计算这个梯形⾯积的FORTRAN90表达式为 2 。

FORTRAN考试试题3

FORTRAN考试试题3

《高级语言程序设计(FORTRAN)》考试精题一、选择题(每小题2分,共40分)1. 下列标识符中不能作为FORTRAN的合法变量名的是_____D_____。

A) A_1 B) A1 C) A1A D) A+12. 在FORTRAN的变量类型说明语句中没有 BA) REAL语句B)CHAR语句C)INTEGER语句 D)LOGICAL语句3.FORTRAN90 源程序的扩展名是 C 。

A. TXTB. FC. F90D. FOR4.下列关于符号常量的说法正确的是___C____。

A.符号常量的定义应该放在所有语句之前B.符号常量不可以是字符型常量C.在一个程序单位中定义一个符号常量后,不能再改变它的值D.符号常量定义语句与赋值语句一样,是可执行语句5、在下列写法中,__D______不是FORTRAN常量。

A. .TRUE.B.1E-2C. (0.0,2.4)D.1,000,0006.表达式15/4/2.0的值是 B 。

A.整数2 B.实数1.5 C.实数2.25 D.实数1. 37. 下列不是FORTRAN赋值语句的是 _____D______。

A) X=.TRUE. B) X=X*X C) X=X**2**2 D) X=X++8. 梯形的上底为A,下底为B,高为H,计算其面积的FORTRAN表达式中错误的是____A____。

A)1/2*(AB)*H B)(A+B)*H/2 C)(A+B)/2*H D)0.5*(A+B)*H9. 要选拔身高T>1.7米且体重W<62.5公斤的人,FORTRAN的逻辑表达式是__C_____。

A)T.ce.1.7.AND.w.le.62.5 B)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.510.FORTRAN 90规定,变量类型声明的优先顺序是 C 。

A.隐含约定(I-N规则)、IMPLICIT声明、类型声明D.IMPLICIT声明、类型声明、隐含约定(I-N规则)B.类型声明、隐含约定(I-N规则)、IMPLICIT声明C.类型声明、IMPLICIT声明、隐含约定(I-N规则)11、假设CH是一个字符型变量,并且具有足够的长度,则对于CH(3:7),下面说法正确的是___D________。

fortran程序案例题汇编(14道)

fortran程序案例题汇编(14道)

1. Fibonacci数列定义如下:F1=1 F2=1F n=F n-1+F n-2 (n>2)求Fibonacci数列的前30项。

integer f(30),i f(1)=1 f(2)=2 do i=3,30 f(i)=f(i-1)+f(i-2) enddo print*,f end2.输入10个学生的总分,求每个学生的名次integer s(10),a(10),i,jdo i=1,10read*,s(i)enddo do i=1,10a(i)=1do j=1,10if(s(i)<s(j)) a(i)=a(i)+1enddoenddodo i=1,10print*,s(i),a(i)enddoend3.给定一组数,按照从小到大的顺序输出。

integer a(10) integer p do i=1,10 read *,a(i) enddo do j=1,9 p=j do i=j+1,10 if (a(i)<a(p)) p=i enddo if (p/=j) thent=a(p);a(p)=a(j);a(j)=t endif enddo print *,(a(i),i=1,10) end4.输入若干名学生的学号和三门课程 (语数英) 的成绩,要求从键盘输入一个学生的学号,能打印出该学生的三门功课成绩和总分。

character*6,dimension(:),allocatable::xueinteger,dimension(:,:),allocatable::g integer,dimension(:),allocatable::zong integer i,j,n character*6,xhprint *," 请输入学生的个数"read *,nallocate(xue(n))allocate(g(n,3))allocate(zong(n))do i=1,nread *,xue(i),(g(i,j),j=1,3)enddodo i=1,nzong(i)=0do j=1,3zong(i)=zong(i)+g(i,j)enddoenddoprint *," 请输入你要打印的学生的学号"read *,xhdo i=1,nif(xue(i)==xh)thenprint *,(g(i,j),j=1,3),zong(i)exitendifenddoend5.编写一个函数子程序计算所输入两个整数m、n 的最大公约数。

fortran习题参考答案

fortran习题参考答案

工程分析程序设计上机作业(五)模块化编程上机目的:掌握内部例程、主程序、外部例程、模块等功能的使用方法。

1、有一个六边形,求其面积。

为求面积,作了3条辅助线。

如图所示:(提示,三角形面积2a b cs++=,a、b、c为三个边长)。

要求用内部函数来计算每个三角形的面积。

=21program mainimplicit nonereal :: A(9)=(/10,30,16,13,21,14,20,36,28/)integer ireal ss=area(A(3),A(4),A(7))+area(A(2),A(7),A(8))+ &area(A(1),A(8),A(9))+area(A(5),A(6),A(9))print*,'The area is',scontainsfunction area(x,y,z)implicit nonereal x,y,zreal p,areap=(x+y+z)/2area=sqrt(p*(p-x)*(p-y)*(p-z))end functionend2、编写一个子例程子程序,SUM(S,T,N1,N2)。

把整型数N1到N2进行求和,并把求和的结果放置到S,把整型数N1到N2进行求积,并把求积的结果放置到T。

并用这个子程序来计算:y=++++++++++-(1234)(345678)(3*4*5*6)(1*2*3)program mainimplicit noneinteger A(8)integer i,b,c,d,e,f,g,m,n,yb=0;d=0;g=1;n=1do i=1,8A(i)=iend docall sum(b,c,1,4)call sum(d,e,3,8)call sum(f,g,3,6)call sum(m,n,1,3)y=b+d+g-nprint*,'y=(1+2+3+4)+(3+4+5+6+7+8)+(3*4*5*6)-(1*2*3)=',ycontainssubroutine sum(s,t,N1,N2)integer s,t,N1,N2,ido i=N1,N2s=s+A(i)t=t*A(i)end doend subroutineend3、编写函数子程序GDC求两个数的最大公约数。

二级FORTRAN程序设计上机题集

二级FORTRAN程序设计上机题集

二级FORTRAN程序设计上机题集上机题1======================================================================试题说明 :======================================================================补充编制fortran77程序prog1.for,其功能是计算并输出级数和1 1 (-1)^ns(n)=x - ─x^3 + ─x^5 - ... + ── x^(2n+1)3 5 2n+1直到s(n)-s(n-1)<0.000001为止。

其中x=0.7。

请编写该程序,最后运行程序。

其中部分程序与输出子程序writedat在程序中已经给出,不得修改。

======================================================================程序 :======================================================================write(*,100) s100 format(1x,'s=',e12.4)write(*,*)call writedat(s)endsubroutine writedat(s)open(10,file='bc01.out',status='new')write(10,100) s100 format(1x,e12.4)end======================================================================所需数据 :======================================================================@3 $bc01.out 001|.6107e+00#e上机题2=============================================================================== 试题说明 :补充编制fortran77程序prog1.for,其功能是计算并输出级数和1 1 1s(n)=1 + x + ─x^2 + ─x^3 +... + ─x^n2! 3! n!直到s(n)-s(n-1)<0.000001为止。

计算机专业技术基础(Fortran)试题库

计算机专业技术基础(Fortran)试题库

一、选择题1、下列关于"SUBROUTINE MAP(X,Y)"语句行的叙述中,不正确的是()A) 这是子程序的第一个语句 B) 字符串"MAP"是子程序名C)变量X是子程序的形参 D) 子程序执行后,MAP将返回整型数据2、 FORTRAN表达式"2/4+0.5"的值是( )A) 0.5 B) 1 C) 1.0D) 03、阅读下列FORTRAN程序:PI=3.14159265WRITE(*,'(F7.4)')PI ﻫEND程序运行后输出结果是( ) ﻫA) 3.142 B)3.1415 C) 0.31416 D) 3.14164、圆的直径存放在整型变量K之中,下列计算圆面积的表达式中正确的是( )A) 3.1415926*K*K/4 B) 3.1415926*(K*K/4)C) 3.1415926*(K/2)**2 D) 3.1415926*(K/2)*(K/2)5、要判断"月收入M在2000元以上(含2000元)且5000元以下)不含5000元)"的职工,应该使用的逻辑表达式是( ) ﻫA) M .GE. 2000 .AND. M .LE. 5000 B)M .GE. 2000.OR. M .LE. 5000C)M .GE. 2000 .AND.M.LT.5000 D) M .GE. 2000 .OR. M .LT. 50006、设FORTRAN子程序如下:SUBROUTINE SUB(I,X)B=I+1X=X+B ﻫEND ﻫ若主程序中的变量M,B已按I-N规则赋值,则调用上述子程序的语句中正确的是( )A) CALL SUB(M,M) B) CALL SUB(M+4,B) ﻫC) CALL SUB(B,B) D) CALL SUB(M,B+4)7、下列不是FORTRAN常量的是() ﻫA)(3.0,4.0) B) 3.1416D+00 C) 2/3 D) 'Very good!'8、阅读下列FORTRAN程序:F=1.0 ﻫDO 20 K=3, 7, 3DO 20 L=K-1, K20 WRTTE(*,'(I3, F8.1)'K,F*KENDﻫ程序运行结果的最后一行是( )ﻫA) 3 6.0 B) 6 6.0 C) 6 180.0D) 7 180.09、在FORTRAN中,下列运算符的优先顺序是( )ﻫA) 逻辑运算,关系运算,算术运算B) 关系运算,逻辑运算,算术运算C)算术运算,关系运算,逻辑运算 D) 关系运算,算术运算,逻辑运算10、使用FORTRAN内部函数时,所给的自变量( )A) 只能是常量 B) 只能是变量C) 只能是常量或者变量 D) 可以是常量、变量或者表达式11、设X=2.0,Y=8.0, Z=6.0,L=.TRUE.,则下列FORTRAN表达式中值为.TRUE.的是( ) ﻫA) X+Z.GT.Y.AND.L B) .NOT.(Y.LT.Z+X).NEQV..NOT.LC).NOT.L.OR.(L.EQV.Y+X.EQ.Z) D) Y+X.GE.Z+X.AND.(L.AND..FALSE.)12、下列输出语句行中正确的是( )A) WRITE(*,*)(A(K,L),K=1,3,L=1,3)B) WRITE(*,*)A(K,L),K=1,3,L=1,3C) WRITE(*,*)((A(K,L),K=1,3), L=1,3) ﻫD) WRITE(*,*)(A(K,L),K=1,3),L=1,313、给定下列FORTRAN子程序如下:ﻫSUBROUTINE SUB(K,A) ﻫA=SQRT(K*K+1.0) ﻫEND ﻫ下列调用语句中正确的是( )A) CALL SUB(N,N) B) CALL SUB(X,X) ﻫC) CALL SUB(N,X*X) D) CALL SUB(11,X)14、阅读下列FORTRAN程序:INTEGER AA(2,3)DATA AA/1,2,3,4,5,6/CALL S2D19(AA) ﻫCALL S2D19(AA(1,2))ENDSUBROUTINE S2D19(BB)INTEGERBB(2,2)WRITE(*,'(1X,2I3)') BB(1,1),BB(2,2) ﻫEND程序运行结果是( ) ﻫA) 1 4 B) 1 5 C) 1 4 D) 1 23 6 2 6 2 5 3 415、阅读下列FORTRAN程序:INTEGER A(3,3)。

计算机技术基础(Fortran)试题库

一、选择题1、下列关于"SUBROUTINE MAP(X,Y)"语句行的叙述中,不正确的是( )A) 这是子程序的第一个语句 B) 字符串"MAP"是子程序名C) 变量X是子程序的形参 D) 子程序执行后,MAP将返回整型数据2、 FORTRAN表达式"2/4+0.5"的值是( )A) 0.5 B) 1 C) 1.0 D) 03、阅读下列FORTRAN程序:PI=3.14159265WRITE(*,'(F7.4) ')PIEND程序运行后输出结果是( )A) 3.142 B) 3.1415 C) 0.31416 D) 3.14164、圆的直径存放在整型变量K之中,下列计算圆面积的表达式中正确的是( )A) 3.1415926*K*K/4 B) 3.1415926*(K*K/4)C) 3.1415926*(K/2)**2 D) 3.1415926*(K/2)*(K/2)5、要判断"月收入M在2000元以上(含2000元)且5000元以下)不含5000元)"的职工,应该使用的逻辑表达式是( )A) M .GE. 2000 .AND. M .LE. 5000 B) M .GE. 2000 .OR. M .LE. 5000C) M .GE. 2000 .AND. M .LT. 5000 D) M .GE. 2000 .OR. M .LT. 50006、设FORTRAN子程序如下:SUBROUTINE SUB(I,X)B=I+1X=X+BEND若主程序中的变量M,B已按I-N规则赋值,则调用上述子程序的语句中正确的是( ) A) CALL SUB(M,M) B) CALL SUB(M+4,B)C) CALL SUB(B,B) D) CALL SUB(M,B+4)7、下列不是FORTRAN常量的是( )A) (3.0,4.0) B) 3.1416D+00 C) 2/3 D) 'Very good!'8、阅读下列FORTRAN程序:F=1.0DO 20 K=3, 7, 3DO 20 L=K-1, K20 WRTTE(*,'(I3, F8.1)'K, F*KEND程序运行结果的最后一行是( )A) 3 6.0 B) 6 6.0 C) 6 180.0 D) 7 180.09、在FORTRAN中,下列运算符的优先顺序是( )A) 逻辑运算,关系运算,算术运算 B) 关系运算,逻辑运算,算术运算C) 算术运算,关系运算,逻辑运算 D) 关系运算,算术运算,逻辑运算10、使用FORTRAN内部函数时,所给的自变量( )A) 只能是常量 B) 只能是变量C) 只能是常量或者变量 D) 可以是常量、变量或者表达式11、设X=2.0, Y=8.0, Z=6.0, L=.TRUE.,则下列FORTRAN表达式中值为.TRUE.的是( )A) X+Z.GT.Y.AND.L B) .NOT.(Y.LT.Z+X).NEQV..NOT.LC) .NOT.L.OR.(L.EQV.Y+X.EQ.Z) D) Y+X.GE.Z+X.AND.(L.AND..FALSE.)12、下列输出语句行中正确的是( )A) WRITE(*,*)(A(K,L),K=1,3,L=1,3)B) WRITE(*,*)A(K,L),K=1,3,L=1,3C) WRITE(*,*)((A(K,L),K=1,3), L=1,3)D) WRITE(*,*)(A(K,L),K=1,3),L=1,313、给定下列FORTRAN子程序如下:SUBROUTINE SUB(K,A)A=SQRT(K*K+1.0)END下列调用语句中正确的是( )A) CALL SUB(N,N) B) CALL SUB(X,X)C) CALL SUB(N,X*X) D) CALL SUB(11,X)14、阅读下列FORTRAN程序:INTEGER AA(2,3)DATA AA/1,2,3,4,5,6/CALL S2D19(AA)CALL S2D19(AA(1,2))ENDSUBROUTINE S2D19(BB)INTEGER BB(2,2)WRITE(*,'(1X,2I3)') BB(1,1),BB(2,2)END程序运行结果是( )A) 1 4 B) 1 5 C) 1 4 D) 1 23 6 2 6 2 5 3 415、阅读下列FORTRAN程序:INTEGER A(3,3)DO 10 K=1,3DO 10 L=1,310 A(K,L)=K*10+LWRITE(*,'(1X,3I3)')AEND程序运行结果是: ( )A) 11 21 31 B) 11 12 13 C) 31 32 33 D) 33 32 3112 22 32 21 22 23 21 22 23 32 22 2113 23 33 31 32 33 11 12 13 31 21 1116、阅读下列FORTRAN程序:WRITE(*,10)'YEAR:', 199610 FORMAT(/3X,A,I4)END程序运行结果是(^代表空格,下同) ( )A) ^^^^^YEAR:1996 B) ^^YEAR:1996C) 空白行 D) 空白行^^^^^YEAR:1996 ^^YEAR:199617、某函数子程序中使用了IMPLICIT、READ、COMPLEX和FUNCTION四种语句,其中属于可执行语句的是: ( )A)FUNCTION B) READ C) COMPLEX D) IMPLICIT18、阅读下列FORTRAN程序:DIMENSION M(4,4)DATA M/1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6/DO 10 I=1,4WRITE (*,100)(M(I,J),J=1,I)10 CONTINUE100 FORMAT(1X,4I2)END程序运行的结果是( )A) 1 2 3 4 B) 1 5 9 3 C) 1 D) 16 7 8 6 0 4 2 6 2 6 61 2 1 5 3 7 1 9 3 7 1 16 6 4 8 2 6 3 4 4 8 2 6 619、阅读下列FORTRAN程序:CHARACTER*10 A, B*6DO 10 I=1,10A(I:I)=' '10 COUNTINUEA(1:5)='ABCDE'B='FGHIJK'A(4:9)=BWRITE(*,100) A100 FORMAT(1X,A)END程序运行结果是:( )A) ABCDEFGHIJ B) ABCDEGHIJK C) ABCFGHIJK D) BCDEFGHIJK20、阅读下列FORTRAN程序:INTRINSIC SIN, COSWRITE(*,*)FUN(SIN,30.0)/FUN(COS,30.0)ENDFUNCTION FUN(F,X)X=X*3.14159/180FUN=F(X)END程序运行结果是 ( )A) sin30°的值B) cos30°的值C) tg30°的值D) ctg30°的值二、填空题1、下列FORTRAN子程序的功能是用以下公式计算一组数据Z1,Z2,…,Zn的标准差σ:σ2=(Z12 +Z22+…+Zn2)/n-[(Z1+Z2+…+Zn)/n]2请在程序中的下划线处填入合适的内容。

fortran考试题及答案分开

fortran考试题及答案分开1. 以下哪个选项是Fortran语言中正确的整型变量声明?A. INTEGER xB. REAL xC. COMPLEX xD. LOGICAL x答案:A2. Fortran程序中,哪个关键字用于定义数组?A. ARRAYB. LISTC. VECTORD. DIMENSION答案:D3. 在Fortran中,以下哪个选项是正确的条件语句?A. IF (x > 0) THENPRINT *, 'x is positive'B. IF x > 0 THENPRINT *, 'x is positive'C. IF (x > 0)PRINT *, 'x is positive'D. IF x > 0PRINT *, 'x is positive'答案:A4. Fortran中用于循环结构的关键字是什么?A. LOOPB. ITERATEC. DOD. FOR答案:C5. 如何在Fortran程序中包含另一个文件?A. 使用INCLUDE语句B. 使用IMPORT语句C. 使用INCLUDE关键字D. 使用IMPORT关键字答案:A6. Fortran中,哪个函数用于计算数组元素的总和?A. SUMB. TOTALC. AGGREGATED. ACCUMULATE答案:A7. 在Fortran中,如何声明一个具有默认值的变量?A. INTEGER :: x = 0B. INTEGER x = 0C. INTEGER x DEFAULT 0D. INTEGER x = DEFAULT 0答案:A8. Fortran程序中的主程序必须以哪个关键字开始?A. PROGRAMB. MAINC. PROCEDURED. FUNCTION答案:A9. 在Fortran中,如何声明一个二维数组?A. INTEGER :: matrix(10, 10)B. INTEGER :: matrix[10][10]C. INTEGER :: matrix(10)(10)D. INTEGER :: matrix(10,10)答案:A10. Fortran中用于计算数组元素平均值的函数是什么?A. AVGB. MEANC. AVERAGED. SUM答案:C。

FORTRAN程序设计复习题

FORTRAN程序设计复习题一、选择题(1) 下列各FORTRAN表达式中合法的是A) S+T*2P >= 0.0 B) .NOT. (A*B+C)C) A2+B2/(C+D) <= 0.0 D) (A+B).NOT.A*B >0.0(2) 数学式(3/5)e x+y的FORTRAN表达式是A) 3*EXP(X+Y)/5 B) 3*E* *(X+Y)/5.0C) (3/5)*EXP(X+Y) D) (3.0/5.0)EXP(X+Y)(3) 下列FORTRAN表达式中不合法的是A) A > B.EQV.C > D B) A.AND.B.AND.C.AND.DC) .NOT.(X <= 0.0) D) A < B < C < D(4) 下列叙述中不正确的是A) FORTRAN子程序可以单独编译B) 对一个FORTRAN源程序进行编译和连接无误后可生成可执行文件C) 即使编译和连接都正确无误,FORTRAN程序运行时仍可能出错D) FORTRAN连接的主要任务是把函数库中的函数翻译成机器指令(5) 在下列FORTRAN77运算符中,优先级最高的是A) .AND. B) .NOT. C) .OR. D) ==(6) FORTRAN表达式“6/5+9/2**3/2”的值为A) 33 B) 1 C) 5 D) 3(7) 下列FORTRAN 表达式中,合法的是A) 0.0 <= X .AND..NOT. X>=10.0 B) 0.0 >= X < 10.0C) 0.0 < X >= 10.0 D) 10.0 <= X .OR..AND.X > 0.0(8) 关于编译一个FORTRAN源程序文件,下列说法中错误的是A) 允许编译只有一个主程序而没有子程序的源文件B) 允许编译有多个子程序的源文件C) 允许编译只有一个子程序而没有主程序的源文件D) 允许编译有多个主程序的源文件(9) 在FORTRAN77源程序中,续行标志符必须放在A) 第1列 B) 第1-6列 C) 第6列 D) 第5列(10) 下列关于"SUBROUTINE MAP(X,Y)"语句行的叙述中,不正确的是A) 这是子程序的第一个语句 B) 字符串"MAP"是子程序名C) 变量X是子程序的形参 D) 子程序执行后,MAP将返回整型数据(11) FORTRAN表达式"2/4+0.5"的值是A) 0.5 B) 1 C) 1.0 D) 0(12)FORTRAN表达式"MOD(4.9,1.3)"的值是A)1.3 B)0.0 C)4.9 D)1.0(13)下列FORTRAN运算符中,优先级最低的是A)逻辑运算符.AND. B)算术运算符* C)关系运算符 >= D)算术运算符+(14)下列语句函数的定义中正确的是A)F(X,Y)=(X+Y)/(X*Y)+7.0B )FUNCTION FUN(I ,J ,K)=3*I +2*J +0.5*KC )H(A ,B ,C(I))=SIN(A)+SIN(B)+C(I) D)S(A ,B ,C)=A*B +S(A*A ,B ,C)(15)下列标识符中,不属于FORTRAN 常量的是A ).TRUE.B )FALSEC )ˊROOT =ˊD )ˊ123.0ˊ (16)"整型变量M 能被整型变量K 整除"的FORTRAN77表达式是A )MOD(M ,K)=0B )M -M/K*K .EQ. 0C )MOD(K ,M)=0D )MOD(M ,K)=0 == .TRUE.(17)设有下列数组说明语句:REAL:: A(1:10,-1:10)该数组说明语句定义了数组A 中的元素个数为A )100B )110C )120D )121 (18) 按隐含规则,语句 IP=3.1415926 执行之后,IP 的值是A) 3 B) 3.1416 C) 3.141592D)3.141593(19) 下列数据中,不符合 FORTRAN 常量表示法的是A) -25.6 B) 2.758D3 C)‘FOOT’‘=’ D) TRUE (20) 设C 是复型变量,A 与B 为有定义的实型变量,下列赋值语句中合法的是 A) C=A+B B) C=(3.5,1.5**2) C) C=(2.0,3D-2) D) C=(A +B,A-B)(21) 有矩阵(数组) ⎥⎦⎤⎢⎣⎡=22221111B 下列DATA 语句中正确的是A) DATA B/4*1.0,4*2.0/B) DATA((B(I,J), J=1,4), I=1,2)/4*1.0, 4*2.0/ C) DATA B/4*(1.0,2.0)/D) DATA((B(I,J),I=1,2), J=1,4)/4*1.0, 4*2.0/(21) 在使用DO 循环及循环嵌套时,下列叙述中正确的是A) 不着可以从循环体内转到循环体外,也可以从循环体外转到循环体内 B) 外循环与内循环的DO 循环控制变量可以不同.也可以相同C) 可以从循环体内转到循环体外,但不能从循环体外转到循环体内 D) DO 循环控制变量在循环体内可以再赋值,也可以被引用 (22) 在FORTRAN 表达式中,各种运算的顺序是A) 逻辑运算,关系运算,算术运算 B) 算术运算,关系运算,逻辑运算 C) 关系运算,逻辑运算,算术运算 D) 关系运算,算术运算,逻辑运算 (23) 赋值语句X=4**(6/12) 执行后,实型变量X 的值是A) 2 B) 2.0 C) 1 D) 1.0 (24) 为了保证正确出数据,格式编辑符Ew.d 中w 与d 的关系应该是A) w>d B) w>d+2 C) w>d+4 D) w>d+6 (25) 设下列各语句中用到的数组都已定义,则下列语句中正确的是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))(26) 下列DO语句中,不正确实现循环的是A) DO 10 S=-1.6,-5.3,-0.4 B) DO 10 K=-1.6,-5.3,-0.4C) DO 10 S=-5.3,-1.6,-0.4 D) DO 10 K=1.6,5.3,-1.4(27) 下列说法中正确的是A) 块IF结构中的THEN块或ELSE块不能是空块B) 块IF结构中至少有一个ELSE IF 语句或ELSE语句C) 每个ELSE IF 语句要有一个对应的END IF语句D) 一个块 IF 结构中只能有一个END IF语句(28) 下列数组说明语句中正确的是A) INTEGER A(-1:5,0:6) B) REAL M(10:5)C) DOUBLE Y(1:N+1) D) DOUBLE Z(14)(29) 设有一个FORTRAN77子程序如下: SUBROUTINE SS(X,Y,S,T)S=X+Y T=X*Y End调用上述子程序的正确语句是A) CALL SS(2.4,W*W,5,5.9,Z) B) CALL SS(0.0,4.2,P,Q,R)C) CALL SS(F,G,7.2,5.1) D) CALL SS(4.4*I,5.8*J,C,D)(30) 在下列语句函数的定义中正确的是A) F(X,Y)=(X+Y)/(X*Y)+7.0 B) FUNCTION(I,J,K)=3*I+2*J+0.5*KC) H(A,B,C(I))=SIN(A)+SIN(B)+C(I) D) S(A,B,C)=A*B+S(A*A,B,C)(31) COMMON语句的功能是A) 给同一程序模块中的若干变量分配同一存储单元B) 给不同程序模块中的变量分配相同的存储单元C) 给程序中任意两个变量分配相同的存储单元D) 给同一程序模块中的不同变量分配相同的存储单元(32) 下列表达式中值为整数4的是A) SQRT(16.0) B)27/6 C) 16**0.5 D) 4*1.0(34) 语句K=2+3.0**2/2执行后,整型变量 K的值是A) 6.5 B) 5 C) 6 D) 7(36) 适用于字符型 I/O的 FORTRAN77格式编辑将是A) Fw.d B) Iw.d C) A D) Gw.d(37) 给定子例行程序如下SUBROUTINE SUB(K,A) B=K+2 A=A+B END下列调用语句中正确的是A) CALL SUB(N,N) B) CALL SUB(X,X)C) CALL SUB(N+2,X) D) CALL SUB(N,X+3)(38) 下列FORTRAN语句中,正确的是A) READ(*,*) (N,A(K),K=1,N) B) WRITE(*,*) (M(K,J),K=1,10, J=1,10)C) WRITE(*,*) (10,A(K),K=1,10) D) DATA A,B,C/2*0.0/(39) 对于下列给定的FORTRAN说明和赋初值语句:INTEGER A(2,2)DATA A/3,4,5,6/数组元数A(2,1)的初值为A) 3 B) 5 C) 4 D) 6(40) 下列对公用区的说明语句中错误的是A) COMMON A(5), B B) COMMON/AB/ A(5), B C) COMMON AB/A(5), B/ D) COMMON//A(5), B(41) 下列各逻辑IF语句中正确的是A) IF(X<0.0) THEN 10B) IF(X>=0.0).AND.(X.LT.1.0)Y=2*X+1.0C) IF(0.0>=X<=1.0) Y=2*X+1.0D) IF(X >= 0.0.AND.X <=1.0) Y=2*X+1.0二、阅读题program examplereal a,b,ca=1.0b=2.0c=3.0write(*,"(3(F5.2))") a,b,cend程序运行的结果是:4、阅读下列FORTRAN程序:program exampleimplicit nonereal a,b,anscharacter operatorread(*,*) aread(*,"(A1)") operatorread(*,*) bselect case(operator)case('+')ans = a+bcase('-')ans = a-bcase('*')ans = a*bcase('/')ans = a/bcase defaultwrite(*,"('Unknown operator ',A1)")operatorstopend selectwrite(*,"(F6.2,A1,F6.2,'=',F6.2)")a,operator,b,ansstopend运行上述程序时,如果从键盘输入100<回车>?<回车>200<回车>则最后输出的结果为:7、阅读下列FORTRAN程序:program exampleimplicit noneinteger :: dest = 6integer floordo floor=1, destif ( floor==2 .or. floor==4 ) cycle write(*,*) floorend dostopend程序运行的结果是:8、阅读下列FORTRAN77程序:program exampleimplicit noneinteger, parameter :: limit=10integer counterinteger :: ans = 0counter = 1do while( counter <= limit )ans = ans + countercounter = counter + 2end dowrite(*,*) ansstopend程序运行的结果是:9、阅读下列FORTRAN程序:program exampleimplicit noneinteger, parameter :: students = 5integer :: student(students) = (/ 80, 90, 85, 75, 95 /)integer iwrite(*,*) "Query:"read(*,*) iif ( i<=0 .or. i>students ) exitwrite(*,*) student(i)end dostopend运行上述程序时,如果从键盘输入3<回车>则最后输出的结果为:12、阅读下列FORTRAN程序:program exampleimplicit nonereal :: a=1.0call ShowInteger(a)call ShowReal(a)stopendsubroutine ShowInteger(num)implicit noneinteger :: numwrite(*,*) numreturnendsubroutine ShowReal(num)implicit nonereal :: numwrite(*,*) numreturnend程序运行的结果是:13、阅读下列FORTRAN程序:program exampleimplicit noneinteger, parameter :: row = 2integer, parameter :: col = 2integer :: m(row, col)integer rinteger cdata ((m(r,c), r=1, 2), c=1,2) /1,2,3,4/write(*,"(I3,I3,/,I3,I3)") (( m(r,c), c=1,2 ), r=1,2) stopend14、阅读下列FORTRAN程序:program ex0805implicit noneinteger :: a = 1integer :: b = 2write(*,*) a,bcall add(a)call add(b)write(*,*) a,bstopendsubroutine add(num)implicit noneinteger :: numnum = num+1returnend程序运行的结果是:15、阅读下列FORTRAN程序:program exampleimplicit noneinteger, parameter :: size=10integer::a(size)=(/ 5,3,6,4,8,7,1,9,2,10 /)integer :: i,jinteger :: tdo i=1, size-1do j=i+1, sizeif ( a(i) > a(j) ) thent=a(i)a(i)=a(j)a(j)=tend ifend dowrite(*,"(10I4)") astopend程序运行的结果是:18、阅读下列FORTRAN程序:module globalimplicit nonereal a,bcommon a,bend moduleprogram exampleuse globalimplicit nonea=1.0b=2.0call sub()end programsubroutine sub()use globalimplicit nonewrite(*,*) a,breturnend subroutine程序运行的结果是:23、阅读下列FORTRAN程序:CHARACTER(LEN=10) ACHARACTER(LEN=6) BDO I=1,10A(I:I)=' 'END DOA(1:5)='ABCDE'B='FGHIJK'A(4:9)=BWRITE(*,100) A100 FORMAT(1X,A)END程序运行结果是:26、阅读下列FORTRAN程序:COMMON /COM/M(5),N(4)CALL FIBWRITE(*,'(1X,4I3)') NENDSUBROUTINE FIBCOMMON /COM/J(5),K(4)DO I=1,4K(I)=J(I+1)-J(I)END DOENDBLOCK DATACOMMON /COM/K(5),L(4)DATA K/8,7,10,4,13/END程序运行的结果是:27、阅读下列FORTRAN程序:N=0DO K=30,0,-2DO L=-10,10,1N=N+1END DOEND DOWRITE(*,*) NEND程序运行结果是::29、阅读下列FORTRAN程序:DIMENSION M(3,4)DATA M/4*2,4*1,4*-1/N=0DO K=1 ,4N=N+M(1,K)END DOWRITE(*,*) NEND运行上述程序后,输出的N的值为30、阅读下列FORTRAN77程序:READ(*,*) YIF (Y.LE.0.0) THENZ=0 .0ELSE IF ((Y < 5.0).AND.(Y /= 2.0)) THENZ=1/(Y+2)ELSE IF (Y <= 10.0) THENZ=1/YELSEZ=10.0END IFWRITE (*,*)ZEND在执行上述程序时,由键盘输入2.0最后输出的Z值为三、编程题教科书中:第四章—第九章的习题,以及上机练习题。

Fortran模拟试卷1-8

FORTRAN90模拟测验一(笔试部分)一.选择题(从4个可选答案中选择一个正确答案添入空白处)1.FORTRAN 90规定程序中名称的长度不能超过个字符。

A.8 B.15 C.31 D.632.关于FORTRAN 90程序单元,以下四种说法中正确的是。

A.一个FORTRAN 90程序由多个程序单元组成,其中有一个且只能有一个主程序单元B.一个FORTRAN 90程序由多个程序单元组成,其中有一个且只能有一个模块单元C.一个FORTRAN 90程序允许有多个程序单元,但每类程序单元只能有一个D.一个FORTRAN 90程序允许有多个程序单元,但主程序单元和模块单元只能有一个3.FORTRAN 90程序中允许使用的三个通用标志符是。

A.!% & B.@ , ; C.! ; & D.; & *4. 下列中,所指的FORTRAN 90表达式都是正确的。

①∣A*x+B*y+C*z∣② b*b+4*a*c③.NOT. .TRUE. .AND. .FALSE. ④‘A’<= ch <= ‘Z’⑤ X>100 = = .TRUE. ⑥ SQRT(A2+B2)⑦π*R**2 ⑧‘HAPPY ’+‘NEW ’+‘YEAR.’A. ①②⑤B.②③④⑧C.②③⑤D.②⑤⑥⑦5. FORTRAN 90规定,变量类型声明从高到低的优先顺序是。

A.隐含约定(I-N规则)、IMPLICIT声明、类型声明B.类型声明、隐含约定(I-N规则)、IMPLICIT声明C.类型声明、IMPLICIT声明、隐含约定(I-N规则)D.IMPLICIT声明、类型声明、隐含约定(I-N规则)6.数组声明语句为:INTEGER,DIMENSION(-5:-1,-3:3,11:15) ::num 数组元素num(-2,1,13)是存储结构中第个元素。

A.70 B.85 C.90 D.947.类型声明语句为:INTEGER(2) I 数据输出语句为:PRINT *,I变量I中数据输出域宽是字符。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档