




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2006年春季 FORTRAN 90笔试一、选择题(用答题卡答题,答案依次填在2130答题号内)21.以下关于FORTRAN90符号名的属性的四种说法中,错误的是 21 。A. DIMENSION:a(4,5)属性说明语句指明a是二维数组 B. TARGET:a(4,5) 属性说明语句指明a是二维数组,是指针指向的目的,可动态分配内存C. POINTER:a(:)属性说明语句指明a是指向数组的指针D. ALLOCATABLE:a(:)属性说明语句指明a是可动态分配的数组22. 下述四种关于外部过程属性EXTERNAL的用法中,错误的是 22 。A. EXTERNAL: sub1 B. REAL, EXTERNAL,TARGET: func1C. EXTERNAL sin D. REAL, EXTERNAL: func123. 定义了三维向量类型,又将+、-、*超载定义为向量的和、差、向量积。以下说法中错误的是 23 。A. +、-、*可对纯量(即数量)进行运算,又可对向量进行运算,它们是类属运算符B. +、-、*既可以对变量、常数又可对数组进行运算,它们是类属运算符C. +、-、*对数组的运算虽然不同于对向量或矩阵的运算,但它们仍然是类属运算符D. +、-、*仅仅是程序中定义过的超载运算符,不能算是类属运算符24. 自定义一个称为逻辑异或运算的运算符.XOR.:仅当逻辑量a、b之一为真时,表达式a.XOR.b 为真。以下四个逻辑表达式中符合上述定义的是 24 。A. (a .OR. b) .AND. .NOT.(a .AND. b) B. (a .OR. b) .OR. .NOT.(a .AND. b) C. (a .AND. b) .AND. .NOT.(a .OR. b) D. (a .AND. b) .OR. .NOT.(a .OR. b) 25 a,b都是数组。有关数组的赋值,以下四种说法中错误的是 25 。A. 数组构造符(/c,d,z/)只能用于对一维数组赋值B. 数组赋值语句a=b,只有a,b形状相同才能实现C. 数组赋值语句a=b,不论何种情况都可以实现D. 过程内的可调维数组(例如REAL,DIMENSION(1:n):a)也可用数组构造符对其整体赋值26. 若数组说明语句为:COMPLEX(kind=4),DIMENSION(3:10,-1:3):a 则SIZE(a)等于 26 。A. 4 B. 160 C. 320 D. 4027. 以下选项所列的各程序块,全部属于独立的程序单位的是 27 。A. 主程序、内部函数过程、内部子程序过程、外部函数过程、系统提供的内部函数和子程序B. 主程序、接口块、外部函数过程、系统提供的内部函数和子程序C. 主程序、外部函数过程、外部子程序过程、模块、数据块辅程序D. 主程序、外部函数过程、系统提供的内部函数和子程序、内部子程序过程28. 若程序块内定义了一个结构型数据(为22矩阵):TYPE matrixINTEGER,DIMENSION(2,2):A END TYPE matrix主程序中有说明语句:TYPE(matrix),DIMENSION(10):b以下说法中正确的是 28 。A. 此语句正确,因为派生(即自定义)类型可以作为数组的类型 B. 此语句不正确,因为派生类型本身就是数组,数组作为数组的类型逻辑上说不通C. 此语句不正确,应写成 matrix,DIMENSION(10):b才正确D. 此语句不正确,应写成 matrix(TYPE),DIMENSION(10): b才正确29. 以下关于递归过程的说法中,错误的是 29 。A. 使用直接递归过程可求解n!问题,但使用间接递归过程却不能求解n!问题B. 递归过程定义中常常隐含着循环执行机制C. 用递归算法解决的Hanoi塔(汉诺塔,又名梵塔)问题很难用非递归算法解决D. 一个可用递归过程也可用非递归过程解决的问题,采用后者为好,它节省计算机的资源30.关于FORTRAN90文件系统的以下说法中,错误的是30 。 A. 无格式顺序存取文件不能是标准输入(键盘)、标准输出(显示器)文件,只能是磁盘文件B. 打开有格式顺序存取文件时,可以不写文件格式的选项FORM=FORMATTED C. 打开有格式直接存取文件时,必须写上文件格式的选项FORM=FORMATTED D. 直接存取的有格式文件可以是标准输入(键盘)、标准输出(显示器)文件二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)1.下列程序执行后,第一行是 (1) , 第二行是 (2) , 第三行是 (3) 。PROGRAM main IMPLICIT NONEINTEGER,DIMENSION(1:3,1:3):aINTEGER:i,j,k,ca=RESHAPE(/36,34,15,18,20,9,6,6,3/),(/3,3/)DO i=3,2,-1 DO k=i-1,1,-1 c=a(k,i)/a(i,i) DO j=i,1,-1 a(k,j)=a(k,j)-c*a(i,j) ENDDO ENDDOENDDOPRINT (3I5.1),(a(i,j),j=1,3),i=1,3)END PROGRAM main 2 . 下列程序执行后,输出的第一行是 (4) ,第二行是 (5) 。RECURSIVE FUNCTION even_fact(n) RESULT(f)IMPLICIT NONEINTEGER:n,ff=2IF(n=2) THEN f=even_fact(n-1)*(2*n)ENDIFEND FUNCTION even_factPROGRAM main IMPLICIT NONE INTEGER:even_fact PRINT (I7),even_fact(5), even_fact(7) END PROGRAM main3. 下列程序执行后,输出的第一行是 (6) ,第三行是 (7) 。 PROGRAM pointers IMPLICIT NONE REAL,POINTER:p1(:) REAL,ALLOCATABLE,TARGET:p2(:,:) ALLOCATE(p1(1:3) p1=3.6 WRITE(*,(1X,3F6.1)p1 ALLOCATE(p2(1:3,2) p2=2.4 p2(1:3:2,2)=6.8 WRITE(*,(1X,3F6.1)p2 p1=p2(2:3,2) WRITE(*,(1X,3F6.1)p1 DEALLOCATE(p2) END PROGRAM pointers4. 下列程序执行后,输出的第一行是 (8) ,第三行是 (9) 。 PROGRAM array INTEGER:a(5)=9, b(3, 3)=7 INTEGER:i(3), j(2) i = (/5, 3, 2/) j = (/3, 1/) a(i) = 3 b(2,j) = 4 WRITE(*,(5I4)a WRITE(*,(3I4)b END PROGRAM array5. 下列程序执行后,输出的第一行是 (10) ,第二行是 (11) 。MODULE data_of_bank TYPE costumer CHARACTER(len=10):date CHARACTER(len=8):name INTEGER:zhanghao REAL:credit,debit,balanceEND TYPE costumerEND MODULE data_of_bankPROGRAM mainUSE data_of_bankTYPE(costumer),DIMENSION(3):kehuOPEN(1,FILE=bank)DO i=1,3 READ(1,*)kehu(i)ENDDODO i=1,3 IF(kehu(i).name=李森林) THEN PRINT(A,2X,A,2X,F9.2,(余额),kehu(i).date,kehu(i).name,kehu(i).balance ELSEIF(kehu(i).zhanghao=30517196) THEN PRINT (A,2X,A,2X,F9.2,(余额),kehu(i).date,kehu(i).name,kehu(i).balance ENDIFENDDOEND PROGRAM main文件bank中的内容是:2003-04-12 张国栋 30517165 200.43 0.00 2500.572003-07-18 李森林 30517178 0.00 360.00 3530.782003-10-05 王凯庆 30517196 540.00 0.00 7630.456. 下列程序执行后,输出的第一行是 (12) ,第三行是 (13) 。 PROGRAM loop IMPLICIT NONE INTEGER:i,jloop1: DO i = 1, 3 IF (i2) EXIT loop1 WRITE(*,(A,I2)i=,iloop2: DO j = 1, 3 IF (j2) CYCLE loop2 IF (i=2 .and. j2) EXIT loop2 WRITE (*,(A,I2) j=,j ENDDO loop2 ENDDO loop1 END PROGRAM loop7. 下列程序执行后,输出的第一行是 (14) ,第二行是 (15) 。PROGRAM main IMPLICIT NONECHARACTER(len=5):x,yCHARACTER(len=2):zx=ABCDE; y=x; z=y(:2)y(:2)=y(4:); y(4:)=zPRINT *,x/zPRINT *,z/yEND PROGRAM main 8. 利用黄金分割比例0.618,在指定的区间内逐步修正搜索点,寻找使函数达到最小(或极小)值的点。设指定区间为small,big,命delta=big-small,t1=small+0.618*delta,t2=big-0.618*delta。若f(t1)f(t2),修正t2,反之修正t1,直到deltaeps) IF(f(t1) f(t2) THEN big=t1; t1= t2 (18) t2=big-0.618*delta ELSE small=t2; t2=t1 delta=big-small t1= (19) END IF END DO IF( (20) ) THEN point=t2; value=f(t2) ELSE point=t1; value=f(t1) END IF END SUBROUTINE golden_search FUNCTION g(x) RESULT(g_result) IMPLICIT NONE REAL:g_result,x g_result=(3.0*x-5.0)*x*2+2.0 END FUNCTION g9. 将辗转相除法求两个整数的最大公约数的过程编写成递归过程。求若干个整数的最大公约数,可先求出两个整数的最大公约数,再求出公约数和第三个数的最大公约数,如此等等,直到最后一个整数,即可求出若干个整数的最大公约数。本程序求出k个整数的最大公约数。完善以下程序。 PROGRAM main IMPLICIT NONE INTEGER,DIMENSION(20):a INTEGER:k,n,i READ(*,*)k,(a(i),i=1,k) CALL gys(a,k,n) ! n是k个整数的最大公约数 WRITE(*,*) n END PROGRAM main! 在子程序gys中,n用来存放k个整数的最大公约数 SUBROUTINE gys(a,k,n) IMPLICIT NONE INTEGER,DIMENSION(20):a INTEGER:k,i,m,n,gcd n= (21) DO i=3,k m=a(i) (22) ENDDO END SUBROUTINE gys! 外部函数gcd求出两个整数的最大公约数 (23) gcd(m,n) RESULT(g) IMPLICIT NONE INTEGER,INTENT(inout):m,n INTEGER:remainder,g remainder=MOD(m,n) IF( (24) )THEN g=n ELSE g=gcd( (25) ) ENDIF END FUNCTION gcd10. 子程序encode(line)给电文line加密的方法如下:采用两个密钥r1,r2(它们都是26个英文字母的任意排列,见以下程序)。输入line。若line中某单词的某字母是英文字母表的第n个字母,且若该字母在line内处于奇数位,则从r1中取第n个字母,否则从r2中取第n个字母替代之。字母的大小写、空格和标点符号不变,例如电文Long Live翻译成Vggr Scbs。完善以下程序。PROGRAM mainIMPLICIT NONECHARACTER(len=80):line,rst,encodeINTEGER:iREAD(*,FMT=(A)linerst=encode(line)WRITE(*,(A)rstEND PROGRAM mainFUNCTION encode(line) RESULT(rst)IMPLICIT NONECHARACTER(len=26),PARAMETER:r1=qazwsxedcrfvtgbyhnujmikolpCHARACTER(len=26),PARAMETER:r2=poiuytrewqasdfghjklmnbvcxzCHARACTER(len=*):line,rstCHARACTER(len=1):tmpINTEGER:i,n,k=32 !n为某字母在英文字母表中的序号,k为同一字母大小写的ASCII码值之差rst= DO i= (26) tmp=line(i:i) IF(tmp=A .AND. tmp=a .AND. tmpf(t2)21 gcd(a(1),a(2)22 n=gcd(m,n)23 RECURSIVE FUNCTION24 remainder=025 n,remainder26 1,LEN_TRIM(line) 27 ICHAR(tmp)-ICHAR(A)+128 CHAR(ICHAR(r1(n:n)-k) 29 ICHAR(tmp)-ICHAR(a)+130 tmpFORTRAN90上机试卷(2006年春)一、改错题(20分)【题目】正整数n的所有不同因子(含1和n)之和记为。正整数m,n称为互为亲和数如果,同时成立。显然,此条件等价于。以下程序试图找出介于40和3000之间的全部亲和数(个数很少)。函数sum_of_factor用于求整数的不同因子之和。主程序内数组sum_of_fact内存放介于40和3000之间整数的因子和。含有错误的源程序如下:FUNCTION sum_of_factor(n) RESULT(sum)IMPLICIT NONEINTEGER:sum,i,n,halfnsum=1+nDO i=2,n/2 IF(MOD(n,i)=0)sum=sum+iENDDOEND FUNCTION sum_of_factor!PROGRAM MainIMPLICIT NONEINTEGER: i,j,sigmai,sigmaj INTEGER,PARAMETER:first=40,last=3000INTEGER,DIMENSION(first:last):sum_of_factOPEN(1,FILE=myf1.out)DO i=first,last sum_of_fact(i)=sum_of_factor(i)ENDDOWRITE(1,(A) I J SIGMAi SIGMAjout:DO i=first,last-1 j=i+1 in: DO sigmai=sum_of_fact(i); sigmaj=sum_of_fact(j) IF(j=last)THEN IF(sigmai=i+j .OR. sigmaj=i+j)THEN WRITE(1,(4I6)i,j,sigmai,sigmaj EXIT in ELSE j=j+1 ENDIF ELSE CYCLE in ENDIF ENDDO inENDDO outEND PROGRAM Main【要求】1. 必须将上述源程序录入到文件 MYF1.F90中,然后根据题目的要求以及程序中前后语句的逻辑关系改正程序中的错误。 2. 改错时可增加或删除说明语句,调换语句顺序,不允许增加或删除任何可执行语句。 3. 改正后的程序和运行结果分别用MYF1.F90和MYF1.OUT为文件名存入考试盘。【注意】本题完成后必须将MYF1.F90、MYF1.OUT、MYF1.EXE拷贝到T盘的根目录下供阅卷用。 二、编程题(20分) 【题目】n次Legendre多项式函数 将上式右端编写成外部过程。将求和公式的系数记为,显然 , 一般地有。在同一行上,n用I3,x用F6.3,计算所得的用F12.4格式输出。计算所用的数据存放在文件MYF2.DAT中,从该文件输入的n,x的值分别为: 3,2.000; 2,3.000; 3,-4.000; 5,0.258; 6,1.333; 7,-2.854; 4,-3.907 【要求】1. 源程序必须存放在文件MYF2.F90中。 2. 建立数据文件MYF2.DAT,所需输入数据即从该文件中读出。 3. 程序运行结果存于文件MYF2.OUT中。 4. 数据文件的打开、使用、关闭均要求采用FORTRAN语言文件管理语句实现。【注意】本题完成后必须将MYF2.F90、MYF2.DAT、MYF2.OUT、MYF2.EXE等文件拷贝到T盘的根目录下供阅卷用。 FORTRAN90 上机试卷 参考答案(试卷代号F01)一、改错题(20分)FUNCTION sum_of_factor(n) RESULT(sum)IMPLICIT NONEINTEGER:sum,i,n,halfnsum=1+nDO i=2,n/2 IF(MOD(n,i)=0)sum=sum+iENDDOEND FUNCTION sum_of_factor!PROGRAM MainIMPLICIT NONEINTEGER: i,j,sigmai,sigmaj /*加上外部函数的说明,sum_of_factor */INTEGER,PARAMETER:first=40,last
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流仓储管理智能化方案探讨
- 社会工作服务方案设计与评估报告
- 安防公司营销推广方案及案例分析
- 物业管理合同范本与案例分析
- 房地产合同纠纷处理实务指南
- 建筑施工项目进度控制方案模板
- 小学教学质量提升三年规划方案
- 石油勘探成本控制操作指引流程
- 智慧物业管理平台功能设计与实施指南
- 深度神经网络算法核心原理概述
- 2025年国家电网有限公司特高压建设分公司招聘10人(第一批)笔试参考题库附带答案详解
- 6.2 人大代表为人民 第二课时 课件 2025-2026学年六年级道德与法治 上册 统编版
- 2025年甘肃省金川集团股份有限公司技能操作人员社会招聘400人考试参考试题及答案解析
- 2025年会议行业研究报告及未来发展趋势预测
- T/CIE 189-2023硫化物全固态锂电池
- 借游戏账号合同5篇
- 《医疗器械监督抽验介绍》
- 2025年中职政治专业资格证面试技巧与答案解析大全
- 炎德·英才大联考长郡中学2026届高三月考试卷(一)生物试卷(含答案)
- 3.4 活动:电路创新设计展示说课稿 2023-2024学年教科版物理九年级上册
- 2025-2026学年人教鄂教版(2024)小学科学三年级上册(全册)教学设计(附目录P137)
评论
0/150
提交评论