北京理工大学 总号:01 分号:01-01 一九九八研究生入学考试 算法语言试题 题号 一 二 三 四 五 6.1 6.2 6.3 试题满分 20 10 10 10 10 15 15 15 实际得分 说明:(1)参加统一考试的学生回答一、二、三、四、五和第六大题的6.1、6.2、6.3题。 (2)参加单独考试的学生回答一、二、三、四、五和第六大题的6.1、6.2、6.4题。 (3)参加单独考试的学生回答一、二、三、四、五第六大题的6.1、6.2、6.4题。 (4)第一、二、三、四试题必须填写在试卷上。 一、基本概念填空题(每小题2分,本大题共20分) 1.用计算机进行科技计算的工作流程有下述几个步骤 。 2.计算机系统的硬件设备包括 。 3.FORTRAN程序的程序可分为 、 、 区,各区的起止列号分别为 、 、 。 4.4**(1/2)的计算结果为 ;在下面的空格中填上符号(或“>”、或“<”、或“=”)比较字符串的大小'ABCDEFG' ‘BASIC’。 5.算术条件转换语句有 个出口。 6.循环语句由下述几部分组成: 。 7.如二维数组的大小为L*M,则下标为(i、j)的数组元素在内存中的排列序号为 。 8.“虚实结合”时,调用程序中的确良实变量和所调用过程中的虚拟变量必须在 、 和 方面完全一致。 9.各程序块间有大量数据需要传递时,一般采用 的方式进行数据交换。与 方法相比,此方法的优点是 、 。 10.在程序中尽量少用GO TO语句的原因是 。 二、基本概念选择题(每小题2分,本大题共10分) 从供选择的答案中选取正确的答案填入空括号中。 1.一个FORTRAN表达式中,运算的先后次序是( )。 A.逻辑运算,关系运算,算术运算 B.关系运算,逻辑运算,算术运算 C.算术运算,关系运算,逻辑运算 D.关系运算,算术运算,逻辑运算 2.用隐含DO循环输入数据,正确的是( )。 A.READ(*,100)(I,A(I),I=1,10) B.READ(*,100)(B(I,J),I=1,10),J=1,10) C.READ(*,*)(A(I)I=1,10) D.READ(*,100)((W(I,J),I=1,10),J=1,10) 3.设I为整数变量,且10<I<100,A、B为实型变量,能正确执行语句WRITE(*,50)I,A,B的格式语句是( )。 A.50 FORMAT(1X,I10,F10.6,E10.7) B.50 FORMAT (I2,2F7.4) C.50 FORMAT(1X,2(I10,E15.7,F10.6)) D.50 FORMAT(1X,2(I10,F10.6)) 4.设X=2.0,Y=8.0, z=6.0, l=TRUE,则下列FORTAN表达式中值为,TURE的是( )。 A.X+Z.GT.Y.AND. L B..NOT.(.LT.Z+X).NEQV..NOT.L C.Y+X.GT.Z+X.AND. (L.AND. .FALSE. ) D..NOT.L.OR.(L.EQV.Y+X.EQ.Z) 5.结构化程序设计的三种基本结构是( )。 A.顺序结构、选择结构、转移结构 B.分支结构、等价结构、循环结构 C.多分支结构、赋值结构、等价结构 D.顺序结构、循环结构、选择结构 三、读程序(10分) 在本题结尾处的“执行结果”处,按输出格式写出下列程序中标号为3的语句的执行结果。 DIMENSION M(3,3) DATA M/1,2,3,4,5,6,7,8,9/ DO 10 I=1,2 DO 10 J=1,3 K=M(I,J) M(I,J)=M(J,I) M(J,I)=K 10 CONTINUE 1 WRITE (*,100)M DO 20 I=1,3 2 WRITE (*,100)(M(I,J),J=1,I) 20 CONTINUE DO 30 I=1,3 DO 30 J=1,I-1 K=M(I,J) M(I,J)=M(J,I) M(J,I)=K 30 CONTINUE 3 WRITE (*,100)M N=0 DO 40 I=1,3 J=3-I+1 40 N=N+M(I,J) 4 WRITE(*,*)N 100 FORMAT(1X,3I2) END 执行结果: 四、程序填空(10分) 阅读下列程序,在横线处填入适当的字句,使程序完整。 用牛顿迭代法求方程X3-21X+20=0在X0=0.0附近的根,精度为0.00001。牛顿迭代公式为Xn+1=Xn-F(Xn)/F(Xn)。 C PROGRAM MAIN NEWTON(0.0,X,1E-5) WRITE(*,100)X 100 FORMAT(X,'ROOT=',F10.5) END SUBROUTINE NEWTON(X0, X,EPS) COMMON/C/A(4) 10 F=A(4) DO 20 I=3,1,-1 20 F=F*X+A(I) F1=3*A(4) D0 30 I=3,2,-1 30 F1=F1*X+ X1=X X=X-F/F1 IF( )GOTO 10 END BLOCK DATA COMMON B(4) DATA B/20.0, -21.0, 0.0, 1.0/ END 五、改程序(10分) 下列程序是计算的程序,程序中有错,试改正(不允许重新编程)。 11 READ(*,*)'N=', N IF (N<1.OR.N.=.0.OR.N.NE. INT(N))GOTO 11 DO 50 I=1,N P=1.0 S=0.0 P=P*I M=M+1/P CONTINUE 20 FORMAT(1X,F5.2) WRITE(*,20); S=',S END 六、写程序(40) 6.1编程打印能被11整除,且不含有重复数的三位正整数并统计其个数。(10分) 6.2甲飞机以500米/秒的速度直线飞行。乙收音机在其正后方800米处向甲机射击。炮弹的初速为1000米/秒。如炮弹每0.1秒减速1%,问炮弹射击多长时间后可击中甲机。 [注]1.要求从键盘输入甲、乙两机的飞行速度V1、V2、射击时甲机的初始位置X1和计算步长h。 2.要求输出计算表头(T X甲 X乙),并按表头的顺序输出计算数据。 3.距离计算公式为Xi+1=Xi+Vh。 6.3已知数据文件IN.DAT中存放着20个整数,编写程序将这些数以IN.DAT中读入。把这20个数首尾相连、环型排列起来,请找出那四个相邻数据之和为最大,并将这串整数的序号(即在数据文件IN.DAT中的行号)和这串数的和写入文件OUT.DAT中。(15分) [注]1.文件IN.DAT中从第一行开始,每行放着一个数据。 2.第20个数的相邻数据之和为第20个数与第1、第2、第3个数的和。 6.4已知数据文件IN.DAT中放着某5行4列数组的S的各元素(元素的长度自定义)。编写程序,在计算机屏幕上打印数组S的各行和,并将各行和的最大值及其行号存放在数组OUT.DAT中。(15分) [注]文件IN.DAT中每行放着S数组的各行元素