FORTRAN上机作业

合集下载

Fortran作业、期末复习、西南交大

Fortran作业、期末复习、西南交大

编写两个子程序,分别求两个整数的最大公约数和最小公倍数,并编写主程序调用这两个子程序,输出结果program xinteger m,n,swrite(*,*)"请输入两个数:"read(*,*)m,ns=m*ncall acb(n,m)call asd(n,m,s)endsubroutine acb(n,m)integer tempif(m<n)thentemp=m;m=n;n=tempend ifdo while(mod(m,n)/=0)temp=n;n=mod(m,n);m=tempend dowrite(*,"('最大公约数为:'i4)") nreturnendsubroutine asd(n,m,s)if(m<n)thentemp=m;m=n;n=tempend ifdo while(mod(m,n)/=0)temp=n;n=mod(m,n);m=tempend dowrite(*,"('最小公倍数为:'i4)") s/nreturnend编写一个递归子程序,求Fibonacci数列某项的值。

并编写主程序调用该递归子程序,输出结果。

program xinteger n,tempwrite(*,*)"输入Fibonacci数列某项数,n大于三"read(*,*)ncall abc(n)endsubroutine abc(n)integer i,j,temp,a(n)a(1)=1a(2)=1do i=3,na(i)=a(i-1)+a(i-2)end dotemp=a(n)write(*,"('Fibonacci数列n项的值为:',i8)")tempreturnend1:输入10名学生的学号和一门课程的考试成绩,分别存入顺序文件和直接文件中。

西安交大fortran上机作业

西安交大fortran上机作业

西安交大fortran 上机作业一工程分析程序设计 上机作业(一)Fortran 程序设计基础上机目的:掌握程序书写、字符集和标识符、数据类型、声明、算术表达式、表控输入输出语句等编程基本概念。

1、 若有实型数A=1.0, B=3.5, T=10.0, X=5.0; 整型数I=-5, J=7, K=3,求出下面表达式的值。

-(A+T) (B+(X/T))/(4.0*A) (I*J)/K (I/K)*J+T/X-(K+1)/5+I*A-B SQRT(REAL(ABS(K)+1)) MAX(J,MOD(J,K)) J+INT(T/B)/2PROGRAM MAINIMPLICIT NONEREAL ::A=1.0,B=3.5,T=10.0,X=5.0INTEGER ::I=-5,J=7,K=3PRINT*,'-(A+T)',-(A+T),'(B+(X/T))/(4.0*A)',(B+(X/T))/(4.0*A),'(I*J)/K',(I*J)/K,'(T/K)*J+T/X',(T/K)*J+T/XPRINT*,'-(K+1)/5+I*A-B',-(K+1)/5+I*A-B,'SQRT(REAL(ABS(K)+1))',SQRT(REAL(ABS(K)+1)),'MAX(J,MOD(J,K))',MAX(J,MOD(J,K)),'J+INT(T/B)/2',J+INT(T/B)/2 END2、 假定a =1.0, b =2.0, c =-1.0,求以下数学表达式的计算值: 2234a b a b +-2b a - 26ln()1403b c a ++cos ⎛⎫1sin tan -⎛ ⎝PROGRAM MAINIMPLICIT NONEREAL ::a=1.0,b=2.0,c=-1.0REAL D,E,F,M,NF=(3*a**2+4*b**2)/(a-b)M=(-b+SQRT(b*b-4*a*c))/(2*a)N=6*LOG((b+c)**2)*(3+a)/140D=COS(b/SQRT(a**2+b**2))E=SIN(ATAN(SQRT(a**2+b**2)/ABS(c)))PRINT*,'F=',F,'M=',M,'N=',N,'D=',D,'E=',EEND3、有一个六边形,求其面积。

二级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课后习题答案

fortran课后习题答案Fortran课后习题答案Fortran是一种编程语言,广泛应用于科学计算和工程领域。

学习Fortran的过程中,课后习题是非常重要的一部分,通过解答这些习题,可以巩固所学的知识,并且提升自己的编程能力。

在本文中,我将为大家提供一些Fortran课后习题的答案,希望对大家的学习有所帮助。

1. 编写一个Fortran程序,计算并输出1到100之间所有偶数的和。

```fortranprogram sum_even_numbersimplicit noneinteger :: i, sumsum = 0do i = 1, 100if (mod(i, 2) == 0) thensum = sum + iend ifend doprint *, "The sum of even numbers from 1 to 100 is", sumend program sum_even_numbers```2. 编写一个Fortran程序,计算并输出用户输入的两个数的乘积。

```fortranprogram multiply_numbersimplicit nonereal :: num1, num2, productprint *, "Enter the first number:"read *, num1print *, "Enter the second number:"read *, num2product = num1 * num2print *, "The product of", num1, "and", num2, "is", productend program multiply_numbers```3. 编写一个Fortran程序,计算并输出用户输入的一个数的平方根。

FORTRAN习题答案

FORTRAN习题答案

FORTRAN习题答案习题⼆⼀、问答题1. 给出下⾯变量名称,哪些是合法变量?哪些是⾮法变量?说明原因。

Count 、num_2、x&y 、4x+5y 、china-suzhou 、$us 、AbCdE 、Mr.bai 、t5、_another 、school_class_25、#125、2002Y 、π、β、A01/02、alpha 、date(1) 1. 判定下⾯整数,指出哪些是合法整数,哪些是⾮法整数?说明原因。

-0、+ 215、$125、3,245,895、5.3245、5#384、-524_3、#5DFE 、23-345、16#1A2B 、38#ABCD 、8#275_2、+327890、4 #3212. 判定下⾯实数,指出哪些是合法实数,哪些是⾮法实数?说明原因。

-0E2、45.2345E3.5、-5489E25_8、-.2345E-35、$185.45E 、+ 2.753425E24_3、 58D85、+0.E-0、-00000.001E5、5,443,223.44、-12 34E+2、+ 18.5E 18、2.5E42习题三⼀、选择题1.下⾯是V isual Fortran 中正确的表达式是。

(A )A*COS(X)+∣B ∣(B )2*EXP(2*X)/SQRT(16.0)(C )B 2-4AC (D )MOD (24.5,0.5)2.下⾯算术赋值语句中正确的语句是。

(A )M*N=(X-Y)/Z (B )+R=A+B/C(C )X=Y=Z-1.0 (D )Y=A*B/C/D3.算术表达式1/3+2/3的值为。

(A )0 (B ) 1 (C ) 0.99999999 (D )值不确定⼆、问答题1. 将下列代数式⽤Visual Fortran 表达式描述:①②③ 4sin 3A-3sinA+sin3A ④ 2.执⾏下列赋值语句后,变量中的值。

变量的类型遵循I —N 规则。

08上机

08上机
《Fortran程序设计》第8章
上机
上机内容
第4、5、6章作业成绩表 回查之前的作业 完成第8章的作业(共5道题目)
查阅成绩、回查以往作业方法
1. 录入 ftp://121.251.226.40 2. 使用homework用户名登陆(无需密码) 3. 下载相应章节的成绩表查阅成绩 4. 在提交作业的目录里,下载自己的作业文档 回查 5. 没交作业的同学请自省,抄袭的同的输出类似 下面的情况: 参数= 3时,输出3个星号 *** 参数= 10时,输出10个星号 ********** 可根据需要设计主程序调用该子程序。 4. 试写一个函数计算所输入的两个整数的最 大公因子,并设计主程序调用该函数。
本章作业
1. 写一个计算圆面积的子程序。需要输入两个 参数,第1个参数用来输入圆的半径长,第2 个参数用来返回圆面积。(使用参数传递) 2. 把上一题改用函数来编写,这个时候就只需 要通过输入参数来输入半径就足够了。(使 用参数传递) 3. 写一个子程序来画长条图,并设计主程序调 用该子程序。这个子程序可以输入1个整数,

fortran习题答案

fortran习题答案

fortran习题答案Fortran习题答案在学习编程语言Fortran的过程中,练习题是非常重要的一部分。

通过解答练习题,我们可以更好地掌握语言的语法和逻辑,提高自己的编程能力。

下面我将分享一些Fortran习题的答案,希望能够帮助大家更好地理解和掌握这门编程语言。

1. 编写一个Fortran程序,计算并输出1到100之间所有奇数的和。

```fortranprogram sum_odd_numbersimplicit noneinteger :: i, sumsum = 0do i = 1, 100, 2sum = sum + iend doprint *, 'The sum of odd numbers from 1 to 100 is ', sumend program sum_odd_numbers```2. 编写一个Fortran程序,计算并输出用户输入的两个数的和、差、积和商。

```fortranprogram arithmetic_operationsimplicit nonereal :: num1, num2, sum, difference, product, quotientprint *, 'Enter the first number: 'read *, num1print *, 'Enter the second number: 'read *, num2sum = num1 + num2difference = num1 - num2product = num1 * num2quotient = num1 / num2print *, 'Sum: ', sumprint *, 'Difference: ', differenceprint *, 'Product: ', productprint *, 'Quotient: ', quotientend program arithmetic_operations```3. 编写一个Fortran程序,计算并输出用户输入的正整数的阶乘。

Fortran平时编程练习及答案(上)

Fortran平时编程练习及答案(上)

1:编程找出并输出100—150之间和400—450之间能被9整除的数。

程序:program ex0401implicit noneinteger ido i=100, 150if(mod(i,9).eq.0) thenwrite(*,10) i10 format(i3)end ifend dodo i=400, 450if(mod(i,9).eq.0) thenwrite(*,20) i20 format(i3)end ifend doend运行结果:2:回文数是指正读与反读都一样的数。

如:232,编程求100到999之间的回文数。

程序:program ex0402implicit noneinteger ainteger cinteger ido 10 i=100,999a=i/100 !百位上的数字c=mod(i,10) !个位上的数字if(a.eq.c) thenwrite(*,20) i20 format(i8)endif10 continueEnd运行结果:3:输出所有水仙花数(水仙花数是指一个三位正整数,其各位数字的立方和等于该数本身)编程:program ex0403implicit noneinteger ainteger binteger cinteger iwrite(*,*)'水仙花数:'do 10 i=100,999a=i/100 !百位上的数字b=mod(i,100)/10 !十位上的数字c=mod(i,10) !个位上的数字if(i.eq.a**3+b**3+c**3) thenwrite(*,20)i,a,b,c20 format(5x,i3,'=',i2,'^3+',i2,'^3+',i2,'^3')endif10 continueend运行结果:4:编程输出如下图形** * ** * * * ** * * * * * ** * * * ** * **编程:program ex0404implicit noneinteger i,jcharacter a(7)do i=1,7 !输入数组a(i)='*'end dodo j=1,4 !前四行write(*,'(<3*(4-j)>x,10a3)')(a(i),i=1,2*j-1)end dodo j=3,1,-1 !后三行write(*,'(<3*(4-j)>x,10a3)')(a(i),i=1,2*j-1)end doend运行结果:5:输入n个数,找出所有大于n个数的平均值的那些数及最小数。

FORTRAN实验报告

FORTRAN实验报告

《FORTRAN 语言》实验(上机)报告班级·学号 姓名 实验日期 任课教师 实验名称实验一 顺序结构程序设计验证型一、实验目的(1)熟悉Fortran PowerStation4.0的集成开发环境和上机步骤;(2)掌握源程序的书写格式; (3) 掌握FORTRAN 90中基本数据类型及其描述、运算;(4) 掌握基本语句的使用。

二、实验内容:(1)编写程序,将华氏温度转化为摄氏温度,公式为:。

要求:输入一个华氏温度)32(95-=F C 值F ,按照公式将其转化为摄氏温度值C 。

(2)编写程序,其功能是:输入a,b,x 的值,计算并输出y 的值。

b x e y ax 5ln 2+=当x=1.234,a=-5,b=0.9876时,y= 。

三、实验平台 Fortran PowerStation 4.0四、程序清单五、调试和测试结果六、教师批语与成绩评定:年月日《FORTRAN语言》实验(上机)报告班级·学号姓名实验日期任课教师实验名称实验二选择结构程序设计验证型一、实验目的(1)掌握逻辑表达式的书写方法和逻辑型数据的使用;(2)学会正确使用逻辑运算符和逻辑表达式;(3)掌握块IF结构、块CASE结构、逻辑IF语句和算术IF语句。

二、实验内容:(1)编写程序,输入年、月,求该月的天数。

用year、month分别表示年、月,day表示每月的天数。

注意:①每年的1,3,5,7,8,10,12月,每月31天;4,6,9,11月每月30天;2月闰年为29天,平年为28天。

②年份能被4整除,但不能被100整除,或者能被400整除的年均为闰年。

(2)编写程序,输入一个自然数,若为奇数则输出其平方根,否则输出其立方根。

三、实验平台Fortran PowerStation 4.0四、程序清单五、调试和测试结果六、教师批语与成绩评定:年月日《FORTRAN 语言》实验(上机)报告班级·学号 姓名 实验日期 任课教师 实验名称实验三 循环结构程序设计操作型一、实验目的(1)掌握用DO 语句和DO WHILE 语句实现循环的方法;(2)掌握循环结构的实现方法; (3) 掌握循环嵌套的执行过程。

西安交大Fortran上机作业4

西安交大Fortran上机作业4

工程分析程序设计上机作业(四)数组上机目的:练习数组的声明、存储、操作,以及数组参数、动态数组的使用。

1、请声明一个大小为10的一维数组,它们的初值为A(1)=2, A(2)=4, A(3)=6, ……A(I)=2*I,并计算数组中这10个数字的平均值。

PROGRAM MAINIMPLICIT NONEINTEGER A(10)INTEGER I,ANS,PANS=0DO I=1,10A(I)=2*IEND DODO I=1,10WRITE(*,"('A','(',I2,')= ',I2)"),I,A(I)END DODO I=1,10ANS=ANS+A(I)END DOP=ANS/10.0PRINT*,'AVERAGE=',PEND2、编写一个程序来计算费氏数列的前10项,并把它们按顺序保存在一个一维数组当中。

费氏数列(Fibonacci Sequence)的数列规则如下:F(0)=0F(1)=1当n>1时F(n)=f(n-1)+f(n-2)PROGRAM MAINIMPLICIT NONEINTEGER F(0:9)INTEGER IDATA (F(I),I=0,1) /0,1/DO I=2,9F(I)=F(I-1)+F(I-2)END DOWRITE(*,"('F','(',I2,') =',I2)"),I,F(I)ENDPROGRAM MAINIMPLICIT NONEINTEGER F(0:9)INTEGER IDATA (F(I),I=0,1) /0,1/DO I=2,9F(I)=F(I-1)+F(I-2)END DOPRINT*,FEND3、输入任意n个数存放在数组中(如5个数1、2、8、2、10),请在屏幕上打印如下方阵1 2 8 2 1010 1 2 8 22 10 1 2 88 2 10 1 22 8 2 10 1PROGRAM MAINIMPLICIT NONEINTEGER A(5,5),B(5,5)INTEGER I,J,TA(1,:)=(/1,2,8,2,10/)DO I=2,5DO J=2,5T=A(I-1,5)A(I,J)=A(I-1,J-1)A(I,1)=TEND DOEND DODO I=1,5DO J=1,5B(J,I)=A(I,J)END DOEND DOWRITE(*,10)B10 FORMA T(1X,5I4)END4、打印杨辉三角形,打印的行数由键盘输入。

免费在线作业答案兰州大学《Fortran语言》15秋在线作业3满分答案

免费在线作业答案兰州大学《Fortran语言》15秋在线作业3满分答案

免费在线作业答案兰州大学《Fortran语言》15秋在线作业3满分答案兰州大学《Fortran语言》15秋在线作业3满分答案兰州大学《Fortran语言》15秋在线作业3满分答案一、单选题(共 14 道试题,共 70 分。

)1. 用8位无符号二进制数能表示的最大十进制数为A. 127B. 128C. 255D. 256正确答案:C2. 阅读下列FORTRAN77程序: P=0.0 DO 20 N=2,6,2 P=P+1/N 20 CONTINUE WRITE(*,*) P END 运行上述程序后,输出的P值为A. 0.0大众理财作业满分答案B. 0.5C. 0.75D. 0.91正确答案:A3. 一次成功的fortran77源程序编译操作,不能A. 同时编译一个主程序和一个子程序B. 同时编译几个子程序C. 同时编译一个主程序和几个子程序D. 同时编译几个主程序正确答案:D4. 一片存储容量是1.44MB的软磁盘,可以存储大约140万个A. ASCII字符B. 中文字符C. 磁盘文件D. 子目录>正确答案:A5. 阅读下列FORTRAN77程序: DO 10 M=1,5,2 DO 10 N =2,6,3 10 K=M+N WRITE(*,*) K END 上述程序执行后,输出的结果是A. 10B. 11C. 12D. 39正确答案:A6. 阅读下列FORTRAN77程序: K=1 J=2 CALL SUBS(K,J,L,3) WRITE(*,50) K,J,L 50 FORMAT(1X,3I1) END SUBROUTINE SUBS(M,N,K,L) N=N +2 M=M+1 J=1 K=J +L END 运行上述程序后,输出的结果为A. 254B. 412C. 244D. 4247. 在64位高档微机中,一个字长所占的二进制位数为A. 8B. 16C. 32D. 64正确答案:D8. 下列FORTRAN77语句中,错误的是A. READ(*,*)(A(K),K=1,10)B. READ(*,*)(N,A(K),K=1,N)C. WRITE(*,*)(A(K),K=1,0)D. WRITE(*,*)(N,A(K),K=1,N)正确答案:B9. 若实型函数子程序FUN1没有形式参数,则正确形式是___A. REALFUNCTIONFUN1B. FUNCTIONFUN1C. FUNFUN1()D. FUNCTIONFUN1()正确答案:D10. 等价语句的主要用途是___ FUNCTION语句的A. 节省内存空间B. 便于进行数据传递C. 使多个变量具有同一值D. 节省运算时间正确答案:A11. 阅读下列FORTRAN77程序:READ(*,100) K WRITE(*,100) K 100 FORMAT(I4) END 运行上述程序时,如果从键盘输入6271234<回车> 则最后输出的结果为A. 6271B. 271C. 627D. ****正确答案:B12. 在fortran77的变量类型说明语句中没有A. real语句B. char语句C. integer语句D. logical语句正确答案:B13. 下列关于FORTRAN77源程序编辑规则的叙述之中,正确的是A. 编辑时一行都必须从第7列开始B. 主程序第一行必须是PROGRAM语句C. 每个FORMAT语句必须具有标号D. 每个子程序中必须有一个RETURN语句14. 阅读下列FORTRAN77程序:DO 20 M=2,5,2 P=1.0 DO 10 K=M,5 10 P=P+K 20 CONTINUE WRITE(*,*) P END 运行上述程序后,输出的P值为A. 11.0B. 10.0C. 9.0D. 24.0正确答案:B《Fortran语言》15秋在线作业3二、判断题(共 6 道试题,共 30 分。

FORTRAN上机指导

FORTRAN上机指导

上机环境一.上机环境FORTRAN语言程序设计的上机环境如下:1.硬件环境微型计算机(Intel X86系列CPU)一台。

2.软件环境∙Windows98/2000/XP操作系统;∙任意一种文本编辑器(EDIT.exe、NOTEPAD.exe、TC.exe等);∙FOR5.1编译器二.上机步骤1.设置环境变量假设将FOR5.1安装在D:\,则上机前用如下的命令设置环境变量:PATH D:\FOR5\BIN;%PATH%SET LIB=D:\FOR5\LIB2.建立FORTRAN源程序建立FORTRAN源程序可以使用EDIT或NOTEPAD(记事本)文本编辑器,使用方法同Microsoft Office Word。

3.用FL.EXE编译连接源文件将源程序编译为可执行文件的方法,有两种情况:第一种:将编译和连接一次完成,命令如下:FL 源程序名回车后开始编译)例:FL Y.FOR (没有错误,将产生Y.EXE文件)第二种:先将每个程序编译成目标文件(.OBJ),再将多个文件连接装配成可执行文件(.EXE)文件,这时命令分为两步:第一步:FL /C 源程序名(产生目标文件)第二步:FL 目标文件1+目标文件2 /LINK(产生.EXE)例: FL/C Y1.FOR (没有错误,将产生Y1 .OBJ)FL/C Y2.FOR (没有错误,将产生Y2 .OBJ)然后,将两个目标文件连接生成可执行文件:FL Y1.OBJ+Y2.OBJ /link (没有错误,将产生Y1.EXE文件)4.运行程序建立了EXE文件后,就可以直接在DOS下运行此程序,如下所示:C:>Y〈回车〉程序运行结束后,返回DOS。

如果运行结果正确,那么程序运行结束时结果会直接显示在屏幕上。

如果不正确,则从1开始修改程序。

目录上机一顺序程序设计 (1)一.上机目的 (1)二.上机内容 (1)三.上机要求 (2)四.思考题 (2)上机二分支结构程序设计 (3)一.上机目的 (3)二.上机内容 (3)三.上机要求 (4)四.思考题 (4)上机三循环结构(一) (5)一.上机目的 (5)二.上机内容 (5)三.上机要求 (6)四.思考题 (6)上机四循环结构(二) (7)一.上机目的 (7)二.上机内容 (7)三.上机要求 (8)四.思考题 (9)上机五数组(一) (10)一.上机目的 (10)二.上机内容 (10)三.上机要求 (11)四.思考题 (11)上机六数组(二) (12)一.上机目的 (12)二.上机内容 (12)三.上机要求 (13)四.思考题 (14)上机七字符数据(一) (15)一.上机目的 (15)二.上机内容 (15)三.上机要求 (17)四.思考题 (17)上机八字符数据(二) (18)一.上机目的 (18)二.上机内容 (18)三.上机要求 (20)四.思考题 (20)上机九子程序(一) (21)一.上机目的 (21)二.上机内容 (21)三.上机要求 (23)四.思考题 (23)上机十子程序(二) (24)一.上机目的 (24)二.上机内容 (24)三.上机要求 (26)四.思考题 (26)上机十一文件(一) (27)一.上机目的 (27)二.上机内容 (27)三.上机要求 (27)四.思考题 (27)上机十二文件(二) (28)一.上机目的 (28)二.上机内容 (28)三.上机要求 (28)四.思考题 (28)上机十三综合设计 (29)一.上机目的 (29)二.上机内容 (29)三.上机要求 (31)四.思考题 (31)上机一顺序程序设计一.上机目的1、掌握编程、编译、连接过程。

西安交通大学工程分析程序设计Fortran上机作业参考答案

西安交通大学工程分析程序设计Fortran上机作业参考答案

. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . . . . .
. . . . .
1
8 指 针 、格 式化 输入 /输 出、 文件 操作 8.1 格式化输入输出 . . . . . . . . . 8.1.1 整数 . . . . . . . . . . . 8.1.2 实数 . . . . . . . . . . . 8.1.3 复数 . . . . . . . . . . . 8.1.4 逻辑型 . . . . . . . . . . 8.1.5 字符串 . . . . . . . . . . 8.2 输出金字塔形状 . . . . . . . . . 8.3 整齐的杨辉三角形 . . . . . . . 8.4 龙格-库塔法求解微分方程 . . . 8.5 Shell排序 . . . . . . . . . . . . 9 参考文献 10 LICENSE

兰大《Fortran语言》15春在线作业3 答案

兰大《Fortran语言》15春在线作业3 答案
正确答案:B
7.使用CONMON语句的主要目的是___
A.简化程序设计
B.提高运算速度
C.增强程序的通用性
D.加快批量数据的传递速度
正确答案:D
8.阅读下列FORTRAN77程序:K=1 J=2 CALL SUBS(K,J,L,3) WRITE(*,50) K,J,L 50 FORMAT(1X,3I1) END SUBROUTINE SUBS(M,N,K,L) N=N+2 M=M+1 J=1 K=J+L END运行上述程序后,输出的结果为
A. .102E+02
B. .103E+02
C. .162E+02
D. .163E+02
正确答案:B
11.设Z是复型变量,X和Y为实型变量,下列赋值语句中不合法的是___
A. Z=X+Y
B. Z=(X,Y)
C. Z=(X+Y,X-Y)
D. Z=(X,Y)
正确答案:C
12.阅读下列FORTRAN77程序:SUBROUTINE ABC(X,Y,Z) Y=Y-1.0 Z=Z+X END Y=2.5 CALL ABC(6.5,Y,Y) WRITE(*,*) Y END运行上述程序后,输出的Y值为
A. 1.5
B. 8.0
C. 9.0
D. 10.5
正确答案:B
13.设有整型矩阵B=为给矩阵B赋初值,下列DATA语句中正确的是
A. DATAB/4*(3,4)/
B. DATAB/4*3,4*4/
C. DATA((B(I,J),J=1,4),I=1,2)/4*3,4*4/
D. DATA((B(I,J),I=1,2),J=1,4)/4*3,4*4/

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

2010秋F90上机试卷F02答案

2010秋F90上机试卷F02答案

2010年秋二级 FORTRAN90 上机试卷参考答案(试卷代号F02)一、改错题(20分)【题目】将包含有整数部分和小数部分的八进制数(形式上和十进数无异)转换成十进制实数。

方法是分离整数部分和小数部分,然后分别转换成十进数。

! output results! 11.11111! 33.33333! 55.55555! 77.77777!PROGRAM mainIMPLICIT NONEINTEGER::i,k=4REAL,ALLOCATABLE,DIMENSION(k)::oct !/* DIMENSION(:) */REAL::dec,oct2decALLOCATE(oct(k))oct=(/13.070707,41.252525,67.434343,115.616161/)OPEN(1,FILE='myf1.out')DO i=1,4dec=oct2dec(oct(i))WRITE(*,'(F9.5)')dec; WRITE(1,'(F9.5)')decENDDOEND PROGRAM main!FUNCTION oct2dec(oct) RESULT(dec)IMPLICIT NONEREAL::oct,dec,octdec,tempINTEGER::count,octint,tmpdec=0.0octint=INT(oct); octdec=oct-octintcount=0DO WHILE(octint>0)tmp=MOD(octint,10)dec=dec+tmp*8.**countcount=count+1octint=octint/8 !/* octint/10 */ENDDOcount=-1DO WHILE(octdec>0)temp=octdec*8 !/* octdec*10 */tmp=INT(temp)dec=dec+tmp*8.**countcount=count-1octdec=temp-REAL(tmp)ENDDOEND FUNCTION oct2dec二、编程题(20分)【题目】函数f(x)的展开式如下:,!)!2(!)!12()(41n n x n n x f ∑∞=-= x <1 事实上411)(x x f -=。

西安交大fortran上机作业之四

西安交大fortran上机作业之四

四工程分析程序设计 上机作业(四)结构化编程 上机目的:练习使用选择结构和循环结构编制程序。

1、 求y 值,x 由键盘输入。

2320101102012030x x y x x x x x ≤<⎧⎪=+≤<⎨⎪++≤<⎩PROGRAM MAINIMPLICIT NONEREAL X,YPRINT*,'请输入X 值'READ*,XIF (X>=0.AND.X<10) THENY=XELSEIF (X>=10.AND.X<20) THENY=X**2+1ELSEIF (X>=20.AND.X<30) THENY=X**3+X**2+1ELSEPRINT*,'X不在取值范围内'END IFPRINT*,'Y值为:',YEND2、输入4个数A,B,C,D,按由大到小的顺序打印出来。

PROGRAM MAINIMPLICIT NONEREAL A,B,C,D,TREAL::E(4)INTEGER I,JPRINT*,'请输入四个数:'READ*,A,B,C,DE(1)=AE(2)=BE(3)=CE(4)=DDO I=1,3DO J=I+1,4IF (E(I)>E(J)) THENT=E(I)E(I)=E(J)E(J)=TEND IFEND DOEND DOPRINT*,EEND3、编写一个子程序,判断一个整数是否素数。

PROGRAM MAIN IMPLICIT NONE INTEGER X,SSPRINT*,'请输入一个整数:' READ*,XCALL SUSHU(X,SS) CONTAINS SUBROUTINE SUSHU(A,SS) IMPLICIT NONE INTEGER I,A,B,SS,KK=0DO I=2,A-1B=MOD(A,I)IF (B==0) THENK=K+1END IFEND DOIF (K==0) THENPRINT*,'是素数'ELSEPRINT*,'不是素数'END IFEND SUBROUTINEEND4、利用上一编程结果,对1000以内的所有偶数验证哥德巴赫猜想。

工程分析程序设计上机作业Fortran部分1

工程分析程序设计上机作业Fortran部分1

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

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

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

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

要求用内部函数来实现。

=21PROGRAM MAINIMPLICIT NONEREAL ::L1=10,L2=20,L3=18,L4=15,L5=21,L6=14,L7=30,L8=36,L9=28REAL FF=AREA(L5,L6,L9)+AREA(L1,L8,L9)+AREA(L2,L7,L8)+AREA(L3,L4,L7)PRINT*,FCONTAINSFUNCTION AREA(A,B,C)REAL S,A,B,C,AREAS=(A+B+C)/2AREA=SQRT(S*(S-A)*(S-B)*(S-C))END FUNCTIONEND2、 使用牛顿法求解以下方程的根:(要求用外部子程序)2410x x ++=PROGRAM MAINIMPLICIT NONEREAL F,DFEXTERNAL GENCALL GEN(F,DF)SUBROUTINE GEN(F,DF)IMPLICIT NONEREAL ::X=0REAL F,DFINTEGER ::N=0INTEGER ::MaxN=100REAL ::Eps=1.0E-6F=X**2+4*X+1DF=2*X+4DO WHILE (ABS(F)>Eps.AND.N<MaxN) X=X-F/DFN=N+1F=X**2+4*X+1DF=2*X+4END DOIF (F<=Eps) THENPRINT*,'ANSWER IS ',XELSEPRINT*,'NO ANSWER'END IFEND SUBROUTINE432+-++=x x x x765430 PROGRAM MAINIMPLICIT NONEREAL F,DFEXTERNAL GENCALL GEN(F,DF)ENDSUBROUTINE GEN(F,DF)IMPLICIT NONEREAL ::X=0REAL F,DFINTEGER ::N=0INTEGER ::MaxN=100REAL ::Eps=1.0E-6F=7*X**4+6*X**3-5*X**2+4*X+3DF=28*X**3+18*X**2-10*X+4DO WHILE (ABS(F)>Eps.AND.N<MaxN) X=X-F/DFN=N+1F=7*X**4+6*X**3-5*X**2+4*X+3DF=28*X**3+18*X**2-10*X+4END DOIF (F<=Eps) THENPRINT*,'ANSWER IS ',XPRINT*,'NO ANSWER'END IFEND SUBROUTINE3、编写一个子例程子程序,SUM(S,T,N1,N2)。

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

第一次上机作业:1-1、编写程序计算3+5(一)完整程序integer a,b,sread*,a,bs=a+bprint*,'s=',send(二)输入数据3 5(三)输出结果s= 81-2、编写1+x+((x^2)/2!)+((x^3)/3!). x=5.0,输出实型与整型(一)完整程序real xf=1.0y=1.0read*,xdo i=1,3f=f*x/iy=y+fenddoprint*,'y=',yend(二)输入数据5.0(三)输出结果、y=39.33334如果输出是整型:输出结果y=381-3. 若c=0, 100, -40 . 求F=(9*c)/5+32 (一)完整程序integer c,Fread*,cF=(9*c)/5+32print*,'F=',Fend(二)输入数据0(100或者-40)(三)输出结果F= 32(212或者-40)第二次上机作业2-1.编写程序,能够对于输入的五个数进行判断,输出绝对值最大值和最小的数。

(一)完整程序integer x1,x2,x3,x4,x5,m,nm=x1n=x1read*,x1,x2,x3,x4,x5if(abs(x2)>abs(m)) thenm=x2elseif(abs(x3)>abs(m)) thenm=x3elseif(abs(x4)>abs(m)) thenm=x4elseif(abs(x5)>abs(m)) thenm=x5elseif(abs(x2)<abs(n)) thenn=x2elseif(abs(x3)<abs(n)) thenn=x3elseif(abs(x4)<abs(n)) thenn=x4elseif(abs(x5)<abs(n)) thenn=x5endifprint*,'绝对值最大的数是',m,'绝对值最小的数是',nend(二)输入数据50 -90 30 -60 0(三)输出结果绝对值最大的数是-90 绝对值最小的数是02-2.y=e^(3.14/2*X)+ln(abs((sin)^2x-(sinx)^2)),x=sqrt((1+tan52.25)*3.14/180) 求y.(一)完整程序real x,yx=sqrt(1+tan(52.25*3.14/180))y=exp(3.14/2*x)+log(abs(sin(x)*sin(x)-sin(x*x)))print*,'y=',yend(二)输出结果y=9.3533722-3.编程判断两位整数M是否为守形数。

所谓守形数是指该数本身等于自身平方的低位数。

(一)完整程序integer x,y,Mread*,My=M*Mif(M==mod(y,100)) thenprint*,M,'是守形数'elseprint*,M,'不是守形数'endifend(二)输入数据25(三)输出结果25是守形数第三次上机作业3-1(66页第6题)求满足如下条件的三位数:它除以9的商等于它的各位数字的平方和。

例如224,它除以9的商为24,而22+22+42=24 完整程序:implicit noneinteger a,b,c,s,h,i,jread*,a,b,cif(a>b)thens=aa=bb=sendifdo i=a,bs=i/cj=ih=0Do while(j>0)h=h+(mod(j,10))**2j=j/10enddoif(h==s)thenprint*,iendifenddoend运行结果:100,999,91322243154535355616356617538058153-2(66页第8题)A的因子之和等于B,B的因子之和等于A,且A≠B,则称A,B为亲密数对,求[2,1000]中的亲密数对完整程序:implicit noneinteger a,b,i,j,k,c,h1,h2read*,a,bif(a>b)thenc=aa=bb=cendifdo i=a,bh1=0do j=1,i-1if(mod(i,j)==0)thenh1=h1+jendifenddodo k=i,bh2=0do c=1,k-1if(mod(k,c)==0)thenh2=h2+cendifenddoif((h1==k).and.(h2==i).and.(i/=k))thenprint*,i,kendifenddoenddoend运行结果:2,1000↵220 2843-3(87页第4题)有一个三角形,顶点为X ,Y ,Z ,其坐标分别为(1.5,2.0),(4.5,4.5),(18.0,10.5),求三角形面积和三角形重心。

(提示:重心坐标=3ZY X ++,利用复数计算) 三角形面积公式:S=)()()(c p b p a p p -⨯-⨯-⨯,p=(a+b+c )/2 完整程序:IMPLICIT NONECOMPLEX::M REAL::A,B,C,D,E,F,G ,H,I,J,SREAD*,A,B,C,D,E,FM=CMPLX((A+C+E)/3,(B+D+F)/3)G=SQRT((A-C)**2+(B-D)**2)H=SQRT((A-E)**2+(B-F)**2)I=SQRT((C-E)**2+(D-F)**2)J=(G+H+I)/2S=SQRT(ABS(J*(J-G)*(J-H)*(J-I)))PRINT*,'M=',MPRINT*,'S=',SEND运行结果:1.5,2.0,4.5,4.5,18.0,10.5M= (8.000000,5.666667)S= 7.875072第四次上机作业4-1(66页第9题)某数的平方,其低位与该数本身相同,则称25为守形数。

例如252=625而625的低位25与原数相同,则称25为守形数。

求[2,1000]中的守形数。

完整程序:implicit noneinteger a,b,c,i,j,nread*,a,bif(a>b)thenc=aa=bb=cendifdo i=a,bc=i**2n=0j=iDo while(j>0)n=n+1j=j/10enddoif(mod(c,10**n)==i)thenprint*,iendifenddoend运行结果:2,10005625763766254-2编写程序:判断是否能找出乘积为323(或325)的两个相邻的奇数?完整程序:IMPLICIT NONEINTEGER A,MREAD*,MDO A=1,sqrt(M*1.0),2IF(M==A*(A+2))THENPRINT*,A,A+2ENDDOEND运行结果:323↵17 19325↵无结果输出4-3编写程序:判断并输出1951——2010年中所有的闰年?完整程序:IMPLICIT NONEINTEGER M,N,S,TREAD*,M,NIF(M>N)THENT=MM=NN=TENDIFDO S=M,NIF((MOD(S,400)==0).OR.((MOD(S,4)==0).AND.(MOD(S,100)/ =0)))THENPRINT*,SENDDOEND运行结果:2010,1951195219561960196419681972197619801984198819921996200020042008第五次上机作业5-1.找出个位是7的三位素数(一)完整程序real m,n,ado i=100,999if(mod(i,10)==7) thenn=im=sqrt(n)a=0do j=2,mif(mod(i,j)==0) thena=1endifenddoif(a==0) thenprint*,iendifendifenddoend(二)输出结果127137...9779975-2.设有四个圆,圆心分别在(2,-2),(2,2),(-2,2),(-2,2),半径为1,坐标落在圆上或者圆内,z=1.落在圆外时,z=0.(利用逻辑变量)(一)完整程序real x,ylogical::p,q,r,sread*,x,yp=((x-2)**2+(y-2)**2)<=1q=((x-2)**2+(y+2)**2)<=1r=((x+2)**2+(y-2)**2)<=1s=((x+2)**2+(y-2)**2)<=1if(p.or.q.or.r.or.s) thenprint*,'z=1'elseprint*,'z=0'end(二)输入数据2 2(三)输出结果z=15-3.编写程序,用户可以输入两个数字及一个运算符号来解决要把这两个数字做加减乘除的其中一项运算。

每做完一次运算后,让用户来决定要做新的运算还是结束程序。

(一)完整程序real a,bcharacter op,yread*,ydo while(y/='n')read*,a,op,bselect case(op)case('+')print*,a+bcase('-')if(a<b) thenprint*,'被减数不能小于减数'elseprint*,a-bendifcase('*')print*,a*bcase('/')if(b==0) thenprint*,'除数不能为零'elseprint*,a/bendifcase defaultprint*,'data error'endselectprint*,'是否继续'read*,yenddoend(二)输入数据Y4 ‘+’4(三)输出结果8.000000 是否继续第六次上机作业6-1 P126 习题9program exe62real a(5,5)integer i,j,t,kread(*,*)aj=1do while(j<=5)t=a(2,j)a(2,j)=a(5,j)a(5,j)=tj=j+1end dowrite(*,10)((a(i,k),i=1,5),k=1,5)10 format(1x,5f6.2)i=1j=1do while(i<=5)a(i,i)=a(i,i)/iif(i/=j.and.i+j==5)thena(i,j)=a(i,j)/jendifi=i+1j=j+1enddoprint*," "write(*,100)((a(i,k),i=1,5),k=1,5)100 format(1x,5f6.2)end6-2program exe63!P125习题12implicit noneinteger,dimension(:,:),allocatable::a integer::i,j,nread *,nallocate(a(n,n))a=0a(:,1)=1do i=2,ndo j=2,ia(i,j)=a(i-1,j-1)+a(i-1,j)enddoenddodo i=1,nprint *,(a(i,j),j=1,i)enddoC 10 format(10i5)end6-3implicit nonetype singerinteger numcharacter nameinteger score(12)real finalend typeinteger i,j,max,mintype(singer)::si(100),t,rank(100) do i=1,100si(i).num=iprint*,"name"read*,si(i).nameprint*,"score"read*,(si(i).score(j),j=1,12)enddodo i=1,100max=si(i).score(1)min=si(i).score(1)si(i).final=0do j=1,12si(i).final=si(i).final+si(i).score(j) if(max<si(i).score(j))max=si(i).score(j) if(min>si(i).score(j))min=si(i).score(j) enddosi(i).final=(si(i).final-min-max)/10.enddorank=sido i=1,99do j=i+1,100if(rank(i).final<rank(j).final)thent=rank(i)rank(i)=rank(j)rank(j)=tendifenddoenddodo i=1,100write(*,*)rank(i).num,rank(i).name,rank(i).final enddo!10 format(i4,a11,f6.2)end第七次上机作业7-1.编写一个子程序,判断一个数K是否在数组A中。

相关文档
最新文档