全国计算机考试二级QBASIC程序修改题
发布时间:2006-10-14 8:53:32   收集提供:gaoqian

第一题

给定程序MODI1.BAS其功能是:求0-100以内既不能被2整除也不能被3整除的所有的整数之和。程序有错,请改正之。
注意:不得增行或删行,也不得更改程序的结构!

Modi1.bas

CLS

FOR i = 0 TO 100

'**********found**********

IF i MOD 2 <> 0 OR i MOD 3 <> 0 THEN '参考答案:OR 改为 AND

'**********found**********

 s = s + 1 '参考答案:s=s+i

END IF

NEXT i

PRINT "S="; s

END


 第二题

给定程序MODI1.BAS其功能是:把一个大写字母组成的英语单词转换成小写字母,然后将这些小写字母的ASCII码相加起来,并输出之。请在【1】、【2】及【3】三处将程序补充完整。

注意:不得增行或删行,也不得更改程序的结构!

CLS

word$="VERY GOOD"

'**********found**********

word1$=【1】(word$) '参考答案:word1$=LCASE$(word$)

'**********found**********

FOR j = 1 TO 【2】 '参考答案:FOR j = 1 TO LEN(word$)

'**********found**********

aas = aas +【3】(MID$(word1$, j, 1)) '参考答案:aas = aas +ASC(MID$(word1$, j, 1))

NEXT j

PRINT aas

END


第三题

给定程序MODI1.BAS其功能是:把一个英语单词(小写)中的各字母循环移动三位(即a-d,b-e,...,z-c),然后输出之。请在【1】、【2】、【3】三处将程序补充完整。
注意:不得增行或删行,也不得更改程序的结构!

CLS

word$="encryption"

'**********found**********

FOR j=1 TO 【1】 '参考答案:LEN(word$)

'**********found**********

 word1$=word1$+CHR$(ASC("a")-1+((ASC(MID$(word$,j,1))-ASC("a")+4 )【2】))

NEXT j '参考答案:MOD 26

'**********found**********

【3】 word1$ '参考答案:PRINT word1$

END


第四题

给定程序MODI1.BAS其功能是:计算三维空间中的距离,找出

程序中的错误。

 注意:不得增行或删行,也不得更改程序的结构!

Modi1.bas

CLS

READ a,b,c

'**********found**********

d=SQRT(a*a+b*b+c*c) '参考答案:d=SQR(a*a+b*b+c*c)

PRINT "The distance of (";A;B;C;") =";d

'**********found**********

DATA "1";"2";"3" '参考答案:DATA 1,2,3

END

第五题

给定程序MODI1.BAS其功能是:打开一个随机文件"goods.dat",用以存放10种货物的货号、货名、价格和存货量。用TYPE定义了记录型变量goods,包括num,nam,price及stock四个域。用READ/DATA语句读入数据,用OPEN语句打开文件。请根据程序的需要在【1】、【2】及【3】三处填上所需的内容,将程序补充完整。

注意:不得增行或删行,也不得更改程序的结构!

TYPE goods

num AS STRING * 10

nam AS STRING * 12

price AS SINGLE

stock AS INTEGER

END TYPE

DIM dress AS goods

'**********found**********

OPEN 【1】 FOR 【2】 AS #1 LEN = LEN(dress) '参考答案:OPEN "goods.dat" FOR RANDOM…

DO

 READ dress.num, dress.nam, dress.price, dress.stock

 IF dress.num = "g9999 " THEN EXIT DO

 PUT #1, , dress

'**********found**********

【3】 '参考答案:loop

CLOSE

DATA g1001,Shirt,65,120, g1002,Skirt,76,108

DATA g1004,Coat,231.5,67, g1005,Soaks,4.5,250

DATA g1006,Pants,121.7,87, g1008,Underwear,34,86

DATA g1010,Cap,54.8,73, g1023,Shoes,145,90

DATA g1221,Woolly,231,34,g1243,Quilt,210,38

DATA g9999, , ,

END


第六题

给定程序MODI1.BAS其功能是:为一个三行三列的二维数组A赋值并在屏幕上按方阵形式输出,请将程序调试出所需结果。

 1 2 3

 2 4 6

 3 6 9

注意:不得增行或删行,也不得更改程序的结构!


CLS

OPTION BASE 1

DIM A(3,3)

'**********found**********

FOR K=0 TO 2 '参考答案:FOR K=1 TO 3

'**********found**********

FOR J=0 TO 2 '参考答案:FOR J=1 TO 3

A(K,J)=K*J

'**********found**********

PRINT A(K,J) '参考答案:PRINT A(K,J);

'**********found**********

NEXT K '参考答案:NEXT J

PRINT

'**********found**********

NEXT J '参考答案:NEXT K

END



第七题

给定程序MODI1.BAS其功能是:定义一个单行自定义函数F(X)=4*X*X+X+3,然后计算当自变量X为6和8时函数的值,请将程序调试出所需结果。

注意:不得增行或删行,也不得更改程序的结构!

CLS

'**********found**********

DEFINE FNF(X)=4*X*X+X+3 '参考答案:DEF FNF(X)=4*X*X+X+3

READ A,B

'**********found**********

X1= ABF(A);X2 = ABF(B) '参考答案:X1= FNF(A):X2 = FNF(B)

PRINT X1,X2

'**********found**********

DATA "6","8" '参考答案:DATA 6,8

END

第8题
给定程序MODI1.BAS其功能是:分别找出1-100以内是2或是3倍数的数的个数s、11的倍数的数的个数t及上述两种数以外的数的个数q。程序有错,请改正之。

注意:不得增行或删行,也不得更改程序的结构!


CLS

FOR j = 1 TO 100

 IF j MOD 2 = 0 OR j MOD 3 = 0 THEN

'**********found**********

 q = q + 1 '参考答案:s=s+1

 IF j MOD 11 = 0 THEN t = t + 1

 ELSEIF j MOD 11 = 0 THEN

'**********found**********

 s = s + 1 '参考答案:t=t+1

 ELSE

 q = q + 1

'**********found**********

 IF END '参考答案:END IF

NEXT j

PRINT "s="; s, "t="; t, "q="; q

END


 第9题
给定程序MODI1.BAS其功能是:把字符串"GOOD MORNING"转换成"Good morning",然后将这些字母的ASCII 码的数值相加起来,并输出之。请在【1】、【2】及【3】三处将程序补充完整。

注意:不得增行或删行,也不得更改程序的结构!

CLS

word$="GOOD MORNING"

'**********found**********

length=【1】(word$) '参考答案:length=LEN(word$)

MID$(word$, 2,length-1)= "ood morning"

'**********found**********

FOR j = 【2】 '参考答案:FOR j = 1 TO LEN(word$)

'**********found**********

 aas = aas +【3】(MID$(word$, j, 1)) '参考答案:aas = aas +aas+ABC(MID$(word$, j, 1))

NEXT j

PRINT word$ , aas

END


 第10题

给定程序MODI1.BAS其功能是:求阶乘积s=1×2×3×…×n,但程序不完整,请【1】、【2】及【3】三处将填入所需内容。

注意:不得增行或删行,也不得更改程序的结构!

CLS

s = 1

m = 1

INPUT "n=";n

'**********found**********

DO WHILE 【1】 '参考答案:DO WHILE m
 m = m + 1

'**********found**********

 s = 【2】 '参考答案:s = s * m

'**********found**********

【3】 '参考答案:LOOP

PRINT "n!= "; s

END

第11题
给定程序MODI1.BAS其功能是:计算三维空间中坐标为(a,b,c)的点到原点的距离,并打印出该点及其与原点距离。找出程序中的错误。

注意:不得增行或删行,也不得更改程序的结构!

CLS

READ a,b,c

'**********found**********

d=SQRT(a*a+b*b+c*c) '参考答案:d=SQR(a*a+b*b+c*c)

'**********found**********

PRINT "The distance of (;a;b;c; ") =";d '参考答案:PRINT "The distance of (";a;b;c; ") =";d

'**********found**********

DATA "1";"2";"3" '参考答案:DATA 1,2,3

END



 第12题
给定程序MODI1.BAS其功能是:子程序sum1计算和

 j

s(j)=∑ i, 程序计算j为1至100中偶数时相应s(j)之和。

 i=1

请将程序调试出所需结果。

注意:不得增行或删行,也不得更改程序的结构!


DECLARE SUB sum1(k, s)

total = 0

FOR j = 2 TO 100 STEP 2

'**********found**********

 CALL sum1(j, s) '参考答案:CALL sum1((j), s)

'**********found**********

 total = s '参考答案:total = total + s

NEXT

PRINT total



SUB sum1(k, s)

 s = 0

 DO

 s = s + k: k = k - 1

'**********found**********

 WHILE k > 0 '参考答案:LOOP WHILE k > 0

END SUB



第13题
给定程序MODI1.BAS其功能是:为一个三行三列的二维数组A赋值并在屏幕上按方阵形式输出,请将程序调试出如下结果。

 1 2 3

 2 4 6

 3 6 9

注意:不得增行或删行,也不得更改程序的结构!

OPTION BASE 1

DIM a(3,3)

'**********found**********

FOR k=0 TO 2 '参考答案:FOR k=1 TO 3

'**********found**********

 FOR j=0 TO 2 '参考答案:FOR J=1 TO 3

'**********found**********

 a(k,j)=k+j '参考答案:a(k,j)=k*j

 PRINT a(k,j);

 NEXT j

 PRINT

NEXT k

END


 第14题

给定程序MODI1.BAS其功能是:定义一个单行自定义函数f(x)=4*x*x+x+3,计算当自变量x为6和8时函数的值,并将此二函数值存入数据文件prog71.dat中。但程序有错,请将程序调试出所需结果。

注意:不得增行或删行,也不得更改程序的结构!

CLS

DEF fnabf(x)=4*x*x+x+3

READ a,b

'**********found**********

x1= abf(a);x2 = abf(b) '参考答案:x1= nabf(a);x2 = nabf(b)

PRINT x1,x2

'**********found**********

DATA "6","8" '参考答案:DATA 6,8

'**********found**********

OPEN "prog71.dat" FOR INPUT AS #1 '参考答案:OPEN "prog71.dat" FOR OUTPUT AS #1

'**********found**********

PRINT x1,x2 '参考答案:PRINT #1,x1,x2

CLOSE #1

END















 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50