回目录
回首页
一九九七年度初级程序员下午试卷

试题一

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

[程序1.1]

A=1

B=-1

IF A>B AND B=ABSB THEN GOTO P

A=2

IF A=B OR NOTA+B<A-BTHEN GOTO P

A=3

IFA=2 OR B-1=-AORA=B+4 AND NOT A<>3 THEN GOTO P

A=4

PPRINT A+ABSB

END

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

[程序1.2]

DECLARE FUNCTION P$XY

COMMON SHARED ABC$

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

若对变量AB分别输入16-3,则输出结果为__(2)__

若对变量AB分别输入23.339.5,则输出结果为__(3)__

 

[程序1.3]

C$=0123456789ABCDEF”

I=16

DIM X$(I)

L: INPUTS=”,S

INPUTD=”,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

若对变量SD分别输入16175,则输出结果为__(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)__处的字句,写在答卷的对应栏内。

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

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

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

  7. 已知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)

ABC分别键盘输入345经程序执行后,输出结果为__(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语言,将应填入__(n)__处的字名,写在答卷的对应栏内。

[程序说明]

本程序利用Machin公式求π的值。Machin公式的可表示如下:

π=16arctan( )-4 arctan( )

 

其中arctan用如下形式的级数计算:

arctan(x)=x- + + +

 

直到级数的某项绝对值不大于10-15为止;π和x均为双精度实数。

[程序]

 

main()

{

double a,b;

____(1)____;

a=____(2)____;

b=____(3)____;

printf(“PI=%20.15f\n”,a-b);

}

double arctan(double x)

{

int I;

double r, e, f, sqr;

 

sqr=x*x;

r =0;

e =x;

I =1;

white (e/I >le-15)

{

f=e/I;

r=(i%4==1)?___(4)____;

e=e*sqr;

I+=2;

}

return____(5)____;

}

试题六

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

[程序说明]

设有一个名为GZ.DBF的工资数据库,其库结构为:

XM(C,8) XB(C,2) ZC(C,10) GZ(N,8,1) CSRQ(D,8) ZSGF(L,1)

它们分别表示姓名、性别、职称、工资、出生日期、正式工否。

本程序的功能:

  1. 显示1970101日后(含101日)出生的、职称为工程师的正式职工的姓名、年龄及工资。
  2. 女性非正式职工每人增加工资30%
  3. 计算正式职工的平均工资存入变量PG

 

[程序]

 

SET TALK OFF

CLEAR

USE GZ

DO WHILE.NOT.EOF()

IF____(1)____

?XM,____(2)____,GZ

ELSE

IF XB=’’____(3)____

____(4)____

ENDIF

ENDIF

SKIP

ENDDO

____(5)____

USE

SET TALK ON

RETURN

 

试题七

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

[程序说明]

本程序中自定义函数TSINx)是按泰勒展开式计算SIN x的近似值。SIN x的展开式为:

 


 
SIN X = _ + _ +……= (-1) n-1

 

计算精度为10-6 。变量T用于存放展开式的一项,利用递推关系可求得展开式的下一项。当某项的绝对值小于计算精度时,停止累加,累加和即为该精度下的SIN x的近似值。

利用该自定义函数计算如下公式并输出结果

 

K= R2S2

R2>S2

 

其中RS的值由键盘输入

[程序]

 

REM MAIN

DECLARE FUNCTION TSIN (X)

 

INPUT “R=”,R

INPUT”S=”, S

IF R* R<= S*S THEN

____(1)____

ELSE

K=TSIN(R*S)/2

END IF

PRINT K

END

 

FUNCTION TSIN (X)

P=.000001

G=0

T=X

N=1

DO UNTIL____(2)____

G=____(3)____

N=N+1

T=____(4)____

LOOP

____(5)____

END FUNCTION

 

试题八

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

[程序说明]

本程序用于寻找并输出11~999之间的数m,m2m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如12167694249等。满足上述条件的数如m=11 m2=121,m3=1331皆为回文数。确定回文数的重要一步是确定一个整数的逆序数,即将该整数的各个数字从左至右逆序排列形成的整数,如103的逆序数为301

[程序]

 

main ( )

{ long m;

for (m=11; m<1000; m++)

{ if (symm(m) && ___(1)___ )

printf (m = %41d, m*m = %61d, m*m*m = %81d/n,

m, m*m, m*m*m);

}

}

int symm(long n)

{ long i, m;

____(2)_____; ____(3)____;

while (I)

{ m = m*10 + i % 10;

____(4)____;

}

return (____(5)____);

}

试题九

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

[程序说明]

设有某项考试的成绩库CJK.DBF,其库结构为:

ZKZHC4XMC8LLN3CZN3

它们分别表示准考证号、姓名、理论成线、操作成绩。

数据库记录:

Record # ZKZH XM LL CZ

1 1001 89 99

2 1002 李一明 100 77

3 1003 76 62

4 1004 张大林 88 90

5 1005 68 95

……

以及与之同序排列的人员基本库JBK.DBF,其库结构为:

ZKZH(C,4) XM(C,8) SR(D,8) XL(C,4)

CJGZ(C,4) DWC(C,20) ZSH(C,6) LL(N,3) CZ(N,3)

它们分别表示准考证号、姓名、生日、学历、参加工作年月、单位、证书号、理论成绩、操作成绩。

数据库记录:

Record # ZKZH XM SR XL CJGZ DWC ZSH LL CZ

1 1001 12/0169 高中 8707 东风中学

2 1002 李一明 10/16/70 初中 9209 黄桥街道办

3 1003 02/05/72 职高 9209 海宁医院

4 1004 张大林 02/03/69 高中 8508 大光实业公司

5 1005 08/07/69 高中 8710 新技术开发公司

本程序功能:

  1. 对于理论和操作两项成绩之和大于等于160分的合格考生,将成绩库的成绩填到人员基本库中相应字段。
  2. 对于合格考生赋于证书号,从某一初始证号(人工键盘输入)起,自动依次加一。
  3. 显示人员基本记录。
  4.  

    [程序]

     

    SET TALK OFF

    CLEAR

    ACCEPT’输入人员基本库名:TO F1

    ACCEPT’输入成绩库名:’TO F2

    INPUT’输入起始证书号:’TO ZH

    SELECT 2

    USE__(1)__ALIAS F1

    DO WHILE.NOT.EOF()

    IF___(3)___

    REPLACE LL____(4)____

    REPLACE ZSH WITH____(5)____

    ZH=ZH+1

    ENDIF

    SKIP

    SELECT F2

    SKIP

    SELECT F1

    ENDDO

    LIST

    CLOSE DATABASES

    SET TALK ON

    RETURN

     

    试题十

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

    [程序说明]

    为减少存贮空间或数据通信中的信息量,经常需要对原始数据进行压缩。下面给出一种压缩规则:

    1)当原始数据中连续出现NN>1)个相同的数x时,则在压缩数据中相继存放数N和数x

    2)当原始数据中连续出现M(M>0)个相邻不相同的数(即每个数与其相邻的数均不相同)时,则压缩数据中先存入数-M,再存放这M个相邻不相同的数。

  5. 在压缩的数据中,数的存放次序与原始数据中数的出现次序相一致,并在压缩数据的最后加下数0作为压缩数据的结束标志。例如:

原始数据中有以下数:35222222105-219191919

被压缩后的数据为:-135322-3105-241090

本程序对输入的已压缩的数据进复原。程序中数组PACKED存放已压缩的数据,其长度N1由用户输入。数组UNPACK存入复原后的原始数据,假设其长度200已足

 

[程序]

 

INPUT “N1=”,N1

DIM PACKED (N1),UNPACK(200)

FOR I=I TO N1

INPUT PACKED (I)

NEXT I

I=1

J=0

DO WHILE PACKED (I)<>0

L=PACKED(I)

IF L> 0 THEN

FOR K=1 TO L

UNPACK(J+K)=__(1)__

NEXT K

J=J+L

I=I+2

ELSE

FOR K=____(2)____

UNPACK(J+K)=____(3)____

NEXT K

J=____(4)____

I=____(5)____

END IF

LOOP

FOR I=1TO J

PRINT UNPACK(I)

NEXT 1

END

 

试题十一

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

[程序说明]

本程序中定义的函烽sdel(s)实现的功能是将已知字符串s中的前导空白符和尾随空白符删去并将字符串中间部分的连续多个空白符删减为一个空白符。

[程序]

 

char *sdel(char *s)

{

char p=s,q=s;

for(;____(1)____;s++);/*删去前导空白符*/

for(; s;) /遍历s字符串其它字符*/

{

q++=s;

if(*s!=’ ‘)____(2)____;

else

while(____(3)____)

s++;

}

if (q >p &&*(q-1)= =’ ‘) /*设定字符串结束符*/

____(4)____;

else *q=’\0’;

return____(5)____;

}

main()

{

char str[]=”

printf(“%s\n”,sdel(str));

}

 

试题十二

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

[程序说明]

设有图书订单文件TSDD.DBF,其库结构为:

SHC5SMC20SLN3DJN51JEN71

它们分别表示书号、书名、新定价。

本程序功能:

  1. 首先检验密码输入的正确性(假定密码为‘SKY7381’),输入密码在屏幕上不显示,输入错误超过3次,将拒绝进入本程序。
  2. 用调价单的新定价对图书订单中的数据进行更新,并计算出新的金额。
  3. 统计订单的总金额,存入变量ZJE,并显示。

[程序]

 

CLEAR ALL

SET TALK OFF

CLEAR

N=0

DO WHILE.T.

?’请输入密码:

____(1)____

ACCEPT TO PW

____(2)____

IF PW=’SKY7381’

____(3)____

ELSE

IF N=3

QUIT

ELSE

WAIT’密码错误,请重新输入!

n=n+1

ENDIF

ENDIF

DNDDO

SELECT 6

USE DJD

INDEX ON SH TO DJDIX

SELECT 1

USE TSDD

INDEX ON SH TO TSDDIX

UPDATE ON SH ____(4)____

____(5)____

?‘总金额=’,ZJE

CLOSE DATABASES

SET TALK ON

RETURN


回目录
回首页