Fortran 上机题汇总

合集下载

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)试题库

计算机技术基础(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考试题及答案分开

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。

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

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中。

相关文档
最新文档