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。

FORTRAN程序设计复习题

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

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中数据输出域宽是字符。

大学FORTRAN考试试题1[1]

大学FORTRAN考试试题1[1]

大学FORTRAN考试试题1[1]1.下列叙述中,正确的是(D )A.语句标号的大小影响程度执行的顺序B.程序完全按语句出现的先后顺序执行C.不同程序单位不能有相同的语句标号D.同一程序单位不能有相同的语句标号2.下列标识符中,不能作为合法的FORTRAN90标识符的是( C) A.A3_B3 B.VOID C._123 D.IF3.下列哪一个为正确的常量( D )A.123,000 B. 3.5E+2.5 C. TRUE D. “HELLO”4.若A=2,B=2,I=3,则表达式A**B**I的值为( C )A. 64B.12C.256 D16.5.圆的直径存放在整型变量D之中,下列计算圆面积的表达式中正确的是( D )A. 3.14159*(D/2)*(D/2)B. 3.14159*(D*D/4)C. 3.14159*(D/2)**2D. 3.14159*D*D/46.下列运算符中,运算优先级最高的是(B )A. 关系运算B. 算术运算C. 逻辑非运算D. 逻辑与运算7.下列FORTRAN的表达式中值为0.5的是( C)A.MOD(4.8,0.5) B.100/20/10 C.50.0/4/25 D.MOD (15,10)/108.下列是完整的FORTRAN程序,编译时出错的语句是( C )A.PROGRAM PRINT B.PARAMETER (PI=3.1415926)C.PI=PI+1 D.WRITE(*,*)SIN(PI+0.5)END9.变量的类型定义中,优先级由高到低的顺序为( A )A.类型说明语句、IMPLICIT 说明语句、隐含约定B.隐含约定、IMPLICIT 说明语句、类型说明语句C.IMPLICIT 说明语句、类型说明语句、隐含约定D.隐含约定、类型说明语句、IMPLICIT 说明语句10.“两整数M与N不能同时小于零”的FORTRAN表达式( D ) A.M>=0.AND.N>=0B.(M.GE.0.AND.N.LT.0).OR.(M.LT.0.AND.N.GE.0)C.(M.LE.0.AND.N.LE.0).OR.(M.LE.0.AND.N.GE.0)D.M.GE.0.OR.N.GE.011.下列逻辑表达式描述的是(不会) X.GT.3.AND.X.LT.10.AND.MOD(X,3).NE.0.OR.X.EQ.2.OR.X.EQ.3 A.10以内的素数B.10以内的合数C.10以内的奇数D.10以内的偶数12.下面正确的逻辑IF语句是(C )A.IF(X.EQ.Y)THEN GOTO 10 B.IF M.LT.N PRINT*,M C.IF(ABS(X).LT.1E-6) A=1 D.IF(A.AND.(A.LE.0.0) A=313.下列语句中正确的是( C )A.DATA A,B,C/3*(-10.0)/ B.READ(*,*)(N,A(K),K=1,N)C.WRITE(*,*)(10,A(K),K=1,10) D.READ(*,*)N,N+114. 如果J是整型变量,则循环语句:DO J=5.5,-1.5,-2.5 所执行的循环次数是(C)A.4 B.3 C.2 D.115.如有语言:INTEGER B (-1:-2,3:7),则数组B 中所含的元素个数为( 无答案) A.0 B.10 C.12 D.2116. 关于FORTRAN90 的CASE结构,SELECT CASE(表达式)中的表达式的数据类型不允许为( A)A. 实型B. 字符型C. 实型D. 逻辑性17.下面符号在FORTRAN90 中表示续行符的是( B)A.! B. & C. # D. %18. 下列程序段中,错误的语句是( D)A.PARAMETER(N=10)B. INTEGER:: M=20C.M=M+ND.PRINT(*, *)M, N19.A. FUNCTIONB. SUBROUTINEC. BLOCK DA TAD. SUB20.下列语句中,错误的语句是( D)。

FORTRAN90上机试题

FORTRAN90上机试题

试卷1下面程序的功能是用指针的方法将整型变量A,B的内容互换,请改错。

PROGRAM EXIMPLICIT NONEINTEGER::A,B,C !<==ERROR1 integer,target::a,b,cINTEGER,POINTER::P1,P2,P3READ *,A,BC=BP1=>C !<==ERROR2 p1=>aP2=>BP3=B !<==ERROR3 p3=>cPRINT *,A,BP2=P1P1=P3PRINT *,A,BEND下面程序的功能是用折半法查找方法在给定的一维有序数组(升序)中查找给定的元素X,返回该元素在数组中的下标。

如果数组中没有该元素,则返回‘NO FOUND’,请填空。

PROGRAM EXIMPLICIT NONEINTEGER, DIMENSION(6)::AINTEGER::X,K,J,L,SREAD *,XA=(/2,4,6,9,15,24/)K=1J=6DO WHILE (K<=J)L=(K+J)/2IF (A(L)==X) THEN !<==BLANK1S=LEXITELSE IF (A(L)>X) THENJ=L-1ELSEK= L+1 !<==BLANK2ENDIFENDDOIF (K<=J) THEN !<==BLANK3PRINT *, SELSEPRINT *,'NO FOUND'END IFEND编程,求500-700之间各位数字之和等于12的整数的个数及和。

PROGRAM TESTIMPLICIT NONEINTEGER::N,S !N是存放个数的变量,S是存放和的变量!!考生做题开始!!************ BEGIN *******************INTEGER::A,B,C,IS=0;N=0DO I=500,700A=I/100B=MOD(I/10,10)C=MOD(I,10) THENN=N+1S=S+IEND IFEND DOPRINT*,N,S!!************ END *******************CALL OUTPRINT(N,S) !N为符合条件的结果!!考生做题结束,以下部分请勿修改CONTAINSSUBROUTINE OUTPRINT(X,Y)CHARACTER (LEN =10):: FILENAMEINTEGER:: X,YFILENAME ='RESULT.TXT'OPEN(UNIT = 1 ,FILE = FILENAME ,ACCESS = 'SEQUENTIAL' , STATUS ='REPLACE') WRITE(1,"(1X,'N=',I4,3X,'S=',I6)") X,YENDFILE(UNIT=1)CLOSE(UNIT=1)END SUBROUTINE OUTPRINTEND !程序结束试卷2下面程序的功能是从键盘输入任意10个整型数,使其按从小到大的鼠须排列并输出(冒泡法),请改错。

大学FORTRAN语言试题

大学FORTRAN语言试题

大学FORTRAN语言试题一、选择题(15×1分=15分)1.Fortran程序设计语言允许使用的专用字符集是。

A.(),.;[]+-*/=:空格B.(),.αβ+-*/=:空格C.(),.+-*/$'=:空格D.{},.;?+-*/=:空格2.按隐含规则确定变量的数据类型,Fortran表达式(A112/BC1+15.123456789.0_8)-(1000.0_4/3.0+ABI*ABJ)的值的数据类型为。

A.复型B.整型C.实型(种别为8)D.实型(种别为4)3.执行循环语句DO I=0.5,4.5,1.5,正常退出循环后,循环执行的次数和循环变量I的值分别为。

A.4和4.5 B.5和5 C.4和6 D.5和64.语句A(M(I))=MOD(I,7)是。

A.函数定义语句B.赋值语句C.非法语句D.说明语句5.下列不合法的是:_____A.A<B<C<D B..NOT.(X<0) C.A>B.EQV.C>D D.A.AND.B.AND.C6.若数组说明符ARRAY(-5:5,-10:0)的元素个数为。

A.144 B.121 C.110 D.1007.设循环初值、终值和增量分别为M1,M2和M3,循环次数的计算公式是。

A.INT((M2-M1)/M3)B.INT((M2-M1)/M3)+1C.MAX(INT(M2-M1+M3)/M3,0) D.MIN(INT(M2-M1+M3)/M3,0)8.下列字符表达式中正确的是。

A.’ABCD’+’MN’’D’B.’ABCD’//’MN’’D’C.CHAR(65)+’N’//’CH’D.’123 45’-’5’9.语句integer,dimension(1:-1)::a,下列说法中正确的是:_____A.a数组的元素个数为0 B.a数组的元素个数为3C.a数组的元素个数为1 D.该说明语句是错误的10.子程序的虚元可以是:A.变量名、数组名、过程名B.变量名、数组名、过程名和符号常量名C.变量名、数组名、数组片段、过程名D.任意符号名11.c为复型量,下列正确的是:A.c=(1/2,1/5) B.c=sqrt((0.1,4.5)) C.c=1.0+4i D.c=(x,y)12.数学式的FORTRAN表达式是()A.2/3*SIN(3.14/4)B.2SIN(3.14/4)/3C.2.0*SIN( /4.0)/3.0 D.2*SIN(3.14/4)/313.执行下列赋值语句后,变量X的值为()X=4+36**(7/14)A.10.0 B.5.0 C.10 D.514.下列不合法的是:A.A<B<C<D B..NOT.(X<0) C.A>B.EQV.C>D D.A.AND.B.AND.C15.执行下列程序时由键盘输入13579.2468,输出结果为:READ’(2(F4.1,2X))’,A,BPRINT’(2(F4.1,2X))’,A,BA.135.7 246.8 B.13.5 24.6 C.**** **** D.*** ****二、填空题(15×1分=15分)1.FORTRAN90自由格式的程序续行标记为______字符,一般写在_____位置;自由格式的程序注释标记为____字符。

FORTRAN笔试

FORTRAN笔试

一、判断题(共20分,每题1分,√表示对,×表示错)1.FORTRAN源程序的一条语句无法在一行内写下时,在行末用续行标志“!”,表示下一行是当前行的继续。

2.语句X=X+1的含义是将内存中名为X+1的存储单元的值赋给变量X。

3.如果程序单元中有说明语句PARAMETER(A=2.1),则不允许在该程序单元中改变A的值。

4.主程序和子程序可以储存到不同的文件中。

5.即使编译和连接都正确无误,FORTRAN程序运行时仍可能出错。

6.在数据块子程序中,可以调用另一个数据块子程序。

7.设有如下输入语句READ '(1X, F5.2)' , X若由键盘输入:12.3456789,则变量Y的值为12.34。

8.如果有以下程序段CHARACTER::A=’FORTRAN’则A内存储的实际值是’F’。

9.M=2000,为了在屏幕上输出□□***2000*** (其中□表示空格)。

则应使用的语句为:WRITE(*,100)M100 FORMAT(2X,’***’,I4,’***’)10.模块可用USE引用,也可用CALL调用。

11.语句函数定义语句在程序内的位置是:在程序块开头语句之后,END语句之前。

12.若有以下程序段:INTEGER,POINTER ::P1, P2INTEGER,TARGET::I=20, J=30P1=>I; P2=>J; P1=>P2; P2=>P1运行程序,I、J的值都为20。

13.COMMON语句的功能是给不同程序模块中的若干变量分配同一存储单元。

14.设C是复型变量,A、B是实型变量。

把A 的值赋给C的实部,把B的值赋给C的虚部的赋值语句是C=CMPLX(A,B)。

15.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的。

16.A2B的FORTRAN表达式为A**2*B。

17.程序中说明了变量a具有POINTER属性,若a=>b,则b应具有PARAMETER属性。

fortran试题

fortran试题

软件技术基础(FORTRAN)笔试模拟试题(带答案)一.概念选择题(单选题,将正确的答案填入括号内。

每题1分,共15分)1. 已知整型变量L=5,M=13,N=4,表达式L*M/N 、L/N*M 和M/N*L 的值分别是(A )。

A )16 13 15B )16.25 16.25 16.25C )16.0 13.0 15.0D )16 16 162.将数学式)||(ln 215-+e x 改写为FORTRAN 表达式,正确的是( D )。

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))3. 设A=.TRUE., B=.FALSE., C=.FALSE., 逻辑表达式(A.OR.B).AND.C 与A.OR..NOT.B 的值是( B )。

A) .T. 与 .F. B).F . 与 .T. C) .T. 与 .T. D) .F. 与 .F .4. 数组REAL A (0:5,-1:5)的元素个数是 ( D )。

A )25B )30C )36D )42 5. 下列数组说明符中错误的是( A )。

A )K(3:2,1:2)B ) K(-1:1,2)C )K(-2:2,-1:1)D )K(2:2,5)6. 关于USE 语句的正确说法是( C )。

A)USE 语句是可执行语句 B)用USE 语句可以代替INCLUDE 语句C)USE 语句必须放在程序单元体的开头 D)USE 语句的位置任意7. 语句OPEN (9,FILE=‘DATA.TXT ’)打开的是 ( B ) 文件。

A )无格式顺序B )有格式顺序C )无格式直接D )有格式直接8. 阅读下列FORTRAN 程序, 程序运行时执行循环体的次数是( A )。

X=0DO L=10, 5, 1X=X+1.0ENDDOENDA) 0 B) 1 C) 6 D) 无穷9.结构化程序设计中有三种基本结构,下列不属于三种基本设计结构的是( D )。

Fortran复习

Fortran复习

Fortran复习Fortran 复习题⽬类型:1、选择题2、填空题3、简答题4、编程题样题⼀、选择题1.下列名称中,符合FORTRAN 90命名规则的是。

A. a-b-cB. $123C. length_1D. date.year 2.关于FORTRAN 90程序单元,以下四种说法中正确的是。

A.⼀个FORTRAN 90程序由多个程序单元组成,其中有⼀个且只能有⼀个主程序单元B. ⼀个FORTRAN 90程序由多个程序单元组成,其中有⼀个且只能有⼀个模块单元C. ⼀个FORTRAN 90程序允许有多个程序单元,但每类程序单元只能有⼀个D. ⼀个FORTRAN 90程序允许有多个程序单元,但主程序单元和模块单元只能有⼀个3.关于FORTRAN 90的CASE结构,以下说法中正确的是。

A. CASE结构内必须取DEFAULT作为情况选择器的最终值结构的情况表达式不能是字符类型结构的情况表达式和情况选择器的取值类型必须相同结构的不同情况选择器取值可以重复4.已知数组说明REAL A(20:22,0:9,-3:-1),数组A的数组元素个数是。

A.164 B.360 C.450 D.90 5.⼦程序的形式参数(虚拟变元或哑元)可以是。

A.变量名、数组名、过程名B.变量名、数组名、过程名和符号常量名C.变量名、数组名、数组⽚段、过程名D.任意符号名6. 语句OPEN(3,FILE=’ABC’,ACCESS=’DIRECT’,RECL=40)打开的是⽂件。

A.有格式顺序存取B.⽆格式顺序存取C.有格式直接存取D.⽆格式直接存取7、下列关于"SUBROUTINE MAP(X,Y)"语句⾏的叙述中,不正确的是( )A) 这是⼦程序的第⼀个语句 B) 字符串"MAP"是⼦程序名C) 变量X是⼦程序的形参D)⼦程序执⾏后,MAP将返回整型数据8、 FORTRAN表达式"2/4+0.5"的值是( )A) 0.5 B) 1 C) 1.0 D) 09、阅读下列FORTRAN程序:PI=3.14159265WRITE(*,'(F7.4) ')PIEND程序运⾏后输出结果是( )A) 3.142 B) 3.1415 C) 0.31416 D) 3.141610、圆的直径存放在整型变量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)11、要判断"⽉收⼊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. 500012、下列不是FORTRAN常量的是( )A) (3.0,4.0) B) 3.1416D+00 C) 2/3 D) 'Very good!'13、阅读下列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.014、在FORTRAN中,下列运算符的优先顺序是( )A) 逻辑运算,关系运算,算术运算 B) 关系运算,逻辑运算,算术运算C)算术运算,关系运算,逻辑运算 D) 关系运算,算术运算,逻辑运算15、使⽤FORTRAN内部函数时,所给的⾃变量( )A) 只能是常量 B) 只能是变量C) 只能是常量或者变量D)可以是常量、变量或者表达式16、设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.)17、下列输出语句⾏中正确的是( )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,318、给定下列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)19、阅读下列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 420、阅读下列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 11⼆、填空题1、下列FORTRAN函数⼦程序的功能是⽤以下公式计算⼀组数据Z1,Z2,…,Zn的标准差σ:σ2=(Z12 +Z22+…+Zn2)/n-[(Z1+Z2+…+Zn)/n]2请在程序中的下划线处填⼊合适的内容。

fortran习题答案

fortran习题答案

fortran习题答案【篇一:fortran习题1答案】txt>上机目的:练习c语言的书写、循环和判断结构1. 编写程序实现摄氏度和华氏度的相互转换:f?c*9/5?32#include stdio.hint main(void){ float c,f;printf(请输入摄氏温度:\n);scanf(%f,c);f=c*9/5+32;printf(对应的华氏温度为:\n);printf(%.2f\n,f);}2. 打印出6行杨辉三角形如下图:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1#include stdio.h#define n 6int main(){int a[n][n],i,j; for (i=0;in;i++) { a[i][0]=1; a[i][i]=1; } for(i=2;in;i++) for (j=1;ji;j++)a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;in;i++) {}for (j=0;j=i;j++)printf(%4d,a[i][j]); printf(\n); } return 0;3. 求出数列2/1,3/2,5/3,8/5,13/8,21/13...的前10项之和。

#include stdio.hint main(void){} float a,b,c,i,s; a=1;b=2;s=0; for (i=1;i=10;i++) { } printf(数列前10项的和为:%f\n,s); s=s+b/a; c=a+b; a=b; b=c;4. 输入若干实数,请编写程序用于统计每个正数和负数的个数。

5. 从键盘上输入三条边长,判断是否能组成三角形。

#include stdio.hint main(void){float a,b,c;printf(请输入三个边长:\n); scanf(%f%f%f,a,b,c);if (a+bca+cbb+ca) printf(这三条边可以围成三角形\n);} else printf(这三条边不可以围成三角形\n);6. 输入某个点的坐标(a, b),判断该点是否位于圆心(x, y)、半径为r的圆内。

FORTRAN试卷汇总

FORTRAN试卷汇总

FORTRAN 机试试卷班级: 姓名: 学号: 机器号 得分:考生请注意:考试时间为60分钟,请将结果和程序写在试卷对应的位置上,只写结果....不给分,结果对而程序错误的倒扣分................。

1、 有一函数:y=⎩⎨⎧≥+<01cos 0ln sin 2x x x x x 从键盘输入x,输出y 的值。

当X=-6时,y= ;当x=6时,y= 。

2、求2000~5000中第五大的素数。

第五大的素数为: 。

3、已知函数)1sin()ln(+=x e x y x ,用随机函数10*ran(iseed )+1生成10个自变量x ,从键盘读入iseed ,当读入5时,求x 和y 的平均值。

x 的平均值为: ;y 的平均值为: 。

FORTRAN 机试试卷班级: 姓名: 学号: 机器号 得分:考生请注意:考试时间为60分钟,请将结果和程序写在试卷对应的位置上,只写结果....不给分,结果对而程序错误的倒扣分................。

1、 有一函数:y=⎪⎩⎪⎨⎧≥-<≤<)10(113)101(2)1(cos x x x xx x当x=-0.5时,y= ;当x=0.5时,y= 。

2、随机生成500个1~1000的整数,输出最大和最小的数所在的位置。

其中随机数的生成函数为ran(iseed)从键盘读入iseed 。

当读入8时:最大的数在第 个;最小的数在第 个;3、已知函数y=e x cos(x+1),用随机函数100*ran( iseed)+1生成10个自变量x ,求y 的最大值为: ;对应的x 的值为: 。

FORTRAN 机试试卷班级: 姓名: 学号: 机器号 得分: 考生请注意:考试时间为60分钟,请将结果和程序写在试卷对应的位置上,只写结果不给......分,结果对而程序错误的倒扣分..............。

1、有一函数:y=⎪⎪⎩⎪⎪⎨⎧≥+<≤<)10(1)101(2)1(cos 22x xx x x x e 当x=-10时,y= ;当x=15时,y= ;2、 3)2sin(cos )(++=t t t f ,求⎰=π5.10)(dx x f I (矩形法,区间等分成1000分)。

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

相关文档
最新文档