left 当前位置: 洪恩在线 -> 继续教育 -> 计算机考级 -> 软件水平考试 -> 试题精粹 right

请给我们来信!

请给我们来信


我要发言

计考之友

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


    试题一

    阅读下列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(AB)《(A——B)THEN GOTO P

    A=3

    IF(A=2 OR B——1=——A)OR(A=B4 AND NOT (A《》3)THEN GOTO P

    A=4

    P:PRINT AABS(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(XY)*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$,B1,1)

    I=I——1

    LOOP

    FOR J=I1 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=K1

    WEND

    FOR K1=1 TO 5

    L=B(K11)

    FOR K2=K1 TO 1 STEP –1

    IF L》B(K2)THEN

    GOTO S

    END IF

    B(K21)=B(K2)

    NEXT K2

    S:B(K21)=L

    NEXT K1

    I=1

    DO UNTIL I》6

    PRINT B(I);””;

    I=I1

    LOOP

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

    END

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

    试题二

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

    1、已知int x=1,y=2,z=3;

    则z =x 》y ?x :y的值是__(1)__。

    2、已知int a[]={10,9,8,7,6},*p=a;

    则*(p1)*(p2)[2]的值是__(2)__。

    3、已知char ch ;

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

    4、已知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*4SQRT(A)

    SET TALK ON

    RETURN

    *P2.PRG

    PARAMETERS U

    U=U2

    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

    ?AC

    ?X(1)X(2),B100.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=(XYZ)/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语言,将应填入__(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)显示1970年10月1日后(含10月1日)出生的、职称为工程师的正式职工的姓名、年龄及工资。

    (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)__处的字句,写在答卷的对应栏内。

    [程序说明]

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

    SIN X =_ _ ……=(——1)n——1

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

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

    K=当R2≤S2

    当R2》S2

    其中R、S的值由键盘输入

    [程序]

    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=N1

    T=____(4)____

    LOOP

    ____(5)____

    END FUNCTION

    试题八

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

    [程序说明]

    本程序用于寻找并输出11~999之间的数m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满足上述条件的数如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,其库结构为:

    ZKZH(C,4)XM(C,8)LL(N,3)CZ(N,3)

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

    数据库记录:

    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)显示人员基本记录。

    [程序]

    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=ZH1

    ENDIF

    SKIP

    SELECT F2

    SKIP

    SELECT F1

    ENDDO

    LIST

    CLOSE DATABASES

    SET TALK ON

    RETURN

    试题十

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

    [程序说明]

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

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

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

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

    原始数据中有以下数:35,22,22,22,10,5,——2,19,19,19,19

    被压缩后的数据为:——1,35,3,22,——3,10,5,——2,4,10、9,0

    本程序对输入的已压缩的数据进复原。程序中数组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(JK)=__(1)__

    NEXT K

    J=JL

    I=I2

    ELSE

    FOR K=____(2)____

    UNPACK(JK)=____(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,其库结构为:

    SH(C,5)SM(C,20)SL(N,3)DJ(N,5,1)JE(N,7,1)

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

    本程序功能:

    (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=n1

    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



【关闭窗口】