这次讲座为大家提供了几道练习题。这些习题的形式不一样,有的是从所给的答案中选择正确的答案,有的是判断题。
(-)下列三种情况下哪一种中使用GOSUB语句?(1)当程序处于固定循环时。(2)当程序需要多次执行某段程序时。(3)你想转到执行程序的另一部分。
(二)当计算机执行到下列程序中的RETURN语句时,将转到何处去执行?
5……
10 GOSUB10
20……
100……
110 RETURN
(三)当计算机执行到第一条REDA语句时,它将转向哪里?(1)转向子程序。(2)转向下一条语句。(3)转向第一条DATA语句。
(四)第四次执行语句10时,将出现下列情况中的何种情况?
10 READ A
20 PRINT A * B
30 GOTO 10
40 DATA 12, 2, 8, 1, 2, 3
(1)计算机给出一个错误信息。(2)程序再次使用DATA语句中的数据。(3)计算机等待用户输入数据。(4)计算机把数送给A和B。
(五)下列变量中哪些变量是数组元素?
(1)A B C D(2)A$ B$ C$(3)A(1) A(2) A(3)(4)A\(_{1}\) A2 A\(_{3}\)
(六)如何定义一个含有36个数组元素的一组维数组A?(1)10DIM A(35)(2) 10DIMA(3)10A=35
(七)下面程序给出一个含两重循环语句的程序的前半部分。
10 FOR A=1 TO 3
20 FOR B=1 TO 3
30 PRINT “*”
问:下列句语中哪一组可以和上面程序组成正确的程序?
(1)40 NEXT A(2) 40NEXT B
50 NEXT B 50NEXT A
(八)在浮点BASIC中,下列语句是否正确?
(1) 10 PRINT“WHAT'S YOUR NAME”;
INPUT A$
(2) 10 DATA 7.1,-11,-1/2, SIN(2)
(3) 10 FOR X=A TO10
20 PRINT X
30 NEXT A
习题解答
(-)答案为(2)。因为GOSUB语句的功能是调用子程序,子程序就是在程序中多次被调用的程序段,因此当程序中某段要多次被调用时,一般将它写成子程序的形式,而主程序中使用GOSUB语句来调用该段子程序。
(二)当计算机执行到该程序中的RETURN语句时,它将转到GOSUB语句的下一条即语句20。因为RETURN语句的功能是从子程序中返回主程序,返回时则回到此次执行调用该子程序语句的下一条,再继续执行。
(三)答案为(3),因为READ/DATD在程序中必须联合使用才能起到对变量赋值的作用。当执行到READ语句时,将从DATA数据区中取出数据,赋给READ语句中的变量,即执行完REDA语句后将马上按顺序执行DATA语句。所以当执行到第一条READ语句时应即转向第一条DATA语句。
(四)答案为(1),因为每执行一次语句10,将顺序从语句40中取出两个数据,分别赋值给变量A和B,而数据区(即语句40)中,只有6个数据,故只能供语句10使用3次,当第四次执行语句10时, 由于数据区中的数据已在前三次使用完,故此时计算机将给出错误的信息告诉用户数据区已无数可读。
(五)答案为(3)。(1),(2),(4)中的变量均为简单变量。
(六)答案为(1),定义数组必须采用定维语句DIM,并将该数组元素的个数在定维时加以定义。由于A(0)可以作为数组中的一个元素,故在对含有36个元素数组定维时,只需写成:10DIM A(35)。
(七)答案为(2)。在双重循环中,两个循环是嵌套在一起的。在执行时,外层循环(这里是对变量A的循环)就完整的运行一遍。故此时语句应在NEXTA语句之前。
(八)(1)不正确。
(2)不正确。
(3)不正确。(蒙跤)