一九九七年度初级程序员级 下午试卷

发表于:2007-05-26来源:作者:点击数: 标签:
试题一 阅读下列BASIC程序,将应填入__(n)__处的字句,写在答卷的对应栏内。 [程序1.1] A=1 B=-1 IF AB AND B=ABS(B) THEN GOTO P A=2 IF A=B OR NOT(A+B)(A-B)THEN GOTO P A=3 IF(A=2 OR B-1=-A)OR(A=B+4 AND NOT (A3) THEN GOTO P A=4 P:PRINT
试题一

阅读下列BASIC程序,将应填入__(n)__处的字句,写在答卷的对应栏内。

[程序1.1]

A=1

B=-1

IF A>B AND B=ABS(B) THEN GOTO P

A=2

IF A=B OR NOT(A+B)<(A-B)THEN GOTO P

A=3

IF(A=2 OR B-1=-A)OR(A=B+4 AND NOT (A<>3) THEN GOTO P

A=4

P:PRINT A+ABS(B)

END

程序执行后,输出结果为__(1)__.

[程序1.2]

DECLARE FUNCTION P$(X,Y)

COMMON SHARED A,B,C$

INPUT “A=”,A

INPUT “B=”,B

C$=“TEST-RESULT”

PRINT P$(A,B)

END

FUNCTION P$(X,Y)

IF X>=Y THEN

Z$=MID$(C$,6,6)+“1=”+STR$((SQR(X)+ABS(Y))/2)

ELSE

Z$=MID$(C$,6,6)+“2=”+STR$(INT(X+Y)*100)

END IF

P$=Z$

END FUNCTION

若对变量A、B分别输入16和-3,则输出结果为__(2)__。

若对变量A、B分别输入23.3和39.5,则输出结果为__(3)__。

[程序1.3]

C$=“0123456789ABCDEF”

I=16

DIM X$(I)

L: INPUT“S=”,S

INPUT“D=”,D

IF (S<2’ORS>16 OR D < 0 OR D>32767 THEN

PRINT “ERROR”

GOTO L

END IR

DO WHILE D<> 0

A=D

D=INT(A/S)

B=A-D*S

X$(I)=MID$(C$,B+1,1)

I=I-1

LOOP

FOR J=I+1 TO 16

PRINT X$(J);

NEXT J

END

若对变量S、D分别输入16和175,则输出结果为__(4)__。

[程序1.4]

OPTION BASE 1

DIM B(6)

K=1

WHILE K<=6

READ B(K)

K=K+1

WEND

FOR K1=1 TO 5

L=B(K1+1)

FOR K2=K1 TO 1 STEP –1

IF L>B(K2)THEN

GOTO S

END IF

B(K2+1)=B(K2)

NEXT K2

S: B(K2+1)=L

NEXT K1

I=1

DO UNTIL I>6

PRINT B(I);” ”;

I=I+1

LOOP

DATA 9,-1,4,18,-5,7

END

程序执行后,输出结果为__(5)__。

试题二

阅读以下与C语言有关的叙述,将应填入__(n)__处的字句,写在答卷的对应栏内。

已知int x=1,y=2,z=3;
则z + = x > y ? + + x : + + y的值是__(1)__。

已知int a[ ] ={10,9,8,7,6},*p=a;
则*(p+1)*(p+2)[2]的值是__(2)__。

已知char ch ;
则判别 ch 是英文字符的逻辑表达式是__(3)__。

已知int p( ),(*q)( );
则P是__(4)__,而q是__(5)__.

试题三

阅读以下FoxBASE程序,将应填入__(n)__ 处的字句,写在答卷的对应栏内。

[程序3.1]

SET TALK OFF

P=CTOD(‘07/01/97’)

Q=‘东方之珠:香港’

R=‘庆祝回归’

M=SUBSTR(Q,10,4)+SUBSTR(R,5,4)+’日’

? DTOC(P)+’是+SUBSTR(R,1,4)+M

SET TALK ON

RETURN

程序执行后,输出结果为__(1)__。

[程序3.2]

* P1.PRG

SET TALK OFF

A=100

B=1

DO P2 WITH B

? B*4+SQRT(A)

SET TALK ON

RETURN

* P2.PRG

PARAMETERS U

U=U+2

IF U<20

RETRY

ENDIF

RETURN

程序执行后,输出结果为__(2)__。

[程序3.3]

* G1.PRG

SET TALK OFF

CLEAR

DIMENSION X (2)

PUBLIC A

A=’绿化’

B=146.77

X(1)=’BC’

X(2)=’EF’

C=’祖国’

DO G2

? A+C

?X(1)+X(2),B+100.1

SET TALK ON

RETURN

* G2.PRG

PRIVATE B

A=’保卫’

B=476.22

STORE’AA’ TO X

RETURN

程序执行后,输出结果为__(3)__和__(4)__。

[程序]

*.PRG

SET TALK OFF

CLEAR

INPUT’A=’ TO A

INPUT’B=’ TO B

INPUT’C=’ TO C

G=100*CAL(A,B,C)

?’程序输出:‘+STR(G,5,1)

SET TALK ON

RETURN

*自定义函数CAL.PRG

PARAMETERS X,Y,Z

S=(X+Y+Z)/2

RETURN SQRT(S*(S-X)*(S-Y)*(S-Z)

当A、B、C分别键盘输入3,4,5经程序执行后,输出结果为__(5)__。

试题四

阅读以下程序说明和BASIC程序,将应填入__(n)__处的字句。写在答卷的对应栏内。

[程序说明]

本程序按得分从大至小打印出十佳运动员的编号、得分和名次。运动员编号、得分由DATA语句提供,分别存入在数组N和数组M中。每个运动员得分最高为120分。得分从大到小排序方法采用冒泡法,为提高排序速度,算法中啬了下列措施:若在某一次冒泡过程中发现没有发生过数据交换,则表示数据已排序完毕,此时可提前结束排序。

具有相同得分的运动员,其名次相同。例如前4位运动员排序后的名次情况如下:

编号 得分 名次

4 119 1

7 119 1

2 116 3

5 110 4

[程序]

DIM N(10),M(10),L (10)

FOR I=I TO 10

READ N(I),M(I)

NEXT I’

I=10

S1: FLAG=0

FOR__(1)__

IF M(J) < M(J-1) THEN __(2)__

SWAP N(J), N(J-1)

SWAP M(J),M(J-1)

FLAG=1

S2: NEXT J

I=I-1

IF__(3)__ THEN GOTO S1

PRINT“编号”,“得分”,“名次”

L(1)=1

FOR I=2 TO 10

PRINT N(I-1),M(I-1),L(I-1)

IF M(I-1)=M(I) THEN __(4)__ELSE __(5)__

NEXT I

PRINT N(10),M(10),L(10)

DATA 1,102,2,118,3,99,4,107,5,117

DATA 6,115,7,111,8,117,9,102,10,104

END

试题五

阅读以下程序说明和C语言,

原文转自:http://www.ltesting.net