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

请给我们来信!

请给我们来信


我要发言

计考之友

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


    计算机软件专业技术资格和水平考试

    (考试时间14:00~16:00 共120分钟)

    请按下表选答试题

    试题号一~三四~六七~九十~十二

    选择方法选答1题选答2题选答3题选答4题

    请按下述要求正确填写答卷,若不按下述要求解答,将不给分数

    1.在答卷的指定位置填写你所在的盛自治区、直辖市、计划单列市的名称。

    2.在答卷的指定位置填写准考证编号、出生年月日和姓名。

    3.在试题号栏内用○圈住选答的试题号。

    4.答卷上除填写上述内容外只能写解答。

    5.解答时字迹务必清楚,字迹不清时,将不评分。

    6.仿照下面例题,将解答写在答卷的对应栏内。

    例题

    一九九六年度举行的计算机软件专业技术资格和水平考试的日期是(1)月(2)日。

    因为正确的答案是10月13日,故在答卷的对应栏内写上‘10’和‘13’(参看下表)。

    例题解答栏

    (1)10

    (2)13

    试题一

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

    [程序1.1]

    G =——2

    DEF FNA (X)=X *X – 4

    DEF FNB (X)=5

    D =FNA (G)FNB (G)*SGN (G)

    DEF FNC (X)=FNA (X)——FNC (D)

    PRINT FNA (D)

    PRINT FNB (D)3 *FNC (D)

    END

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

    [程序1.2]

    Y =2

    X =20

    DO

    X =X – Y

    LOOP WHILE X》=16

    PRINT “X=”;X

    END

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

    [程序1.3]

    A$=“WINDOWS”

    B$=“WORD”

    C$=LEFT$(A$,3)UCASE$(B$)

    PFINT “LENGTH OF STRING –“C$”:”,LEN(C$)

    END

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

    [程序1.4]

    DECLARE SUB PP (Y)

    COMMON SHARED X,T,S

    READ X,S

    PP X

    S =S T

    READ X

    RESTORE

    PP X

    S =S – T

    READ X

    PRINT “S=”;S

    PRINT “X=”;X

    END

    DATA 5,4,3,2,1

    SUB PP (Y)

    T =1

    FOR I =1 TO X

    T =T *I 1

    NEXT I

    EDN SUB

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

    试题二

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

    (1)已知int a =5,b =5;

    下达表达式的值是(1)。

    (a ==b )?a :b ——

    (2)已知int a []={5,4,3,2,1 },

    *p []={a 3,a 2,a 1,a},

    **q =p ;

    下列表达式的值是(2)。

    *(p [0 ]1 )**(q 2 )

    (3)已知float x,y,z;

    实现下达算式的C代码是(3)。

    Z =sin(36°)/√x2 y2 (设x ≠0,y ≠0 )

    (4)下述语句实现将S2所指字符数组中前n个字符复制到S1所指字符数组中,其中空框中的代码是(4)。

    For (;n ——;);

    (5)字符指针数组pta []共有5个元素,其定义形式是(5)。

    试题三

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

    [程序3.1]

    SET TALK OFF

    STORE .T.TO X

    STORE O TO Y

    DO WHILE X

    STORE Y 1 TO Y

    IF INT(Y/7)=Y/7

    ??Y

    ELSE

    LOOP

    ENDIF

    IF Y 》15

    STORE .F.TO X

    ENDIF

    ENDDO

    SET TALK ON

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

    [程序3.2]

    SET TALK OFF *PM.PRG

    Q =1

    DO PM WITH Q PARAMETERS X

    ?“Q=”,Q X =X 2

    SET TALK ON IF X 《10

    RETURN ??X

    RETRY

    ELSE

    RETURN

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

    [程序3.3]

    SET TALK OFF

    STORE 1 TO P,M

    X1 =20

    Y2 =31.3

    Z3 =41.4

    N =ASC(“X”)

    DO WHILE P 《=3

    STORE CHR(NP——1)STR (P,1)TO Q

    ?“Q=”,Q

    M =M *&Q

    P =P2

    ENDDO

    ?“M=”,M

    ET TALK ON

    RETURN

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

    [程序3.4]

    SET TALK OFF

    USE ABC

    SKIP 8

    DISPLAY

    LIST

    RETURN

    设数据库ABC.DBF 共有30条记录,顺序执行程序中每条语句后,记录指针值依次为(4)。

    试题四

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

    [程序说明]

    根据哥德巴赫猜想,任何一个偶数(》4 ),都可以表示为两个素数(即只能被1和本身整除的自然数)之和,如6 =3 3,8 =3 5,…。本程序将4 ~100 之间的偶数分解为两个素数,并以两个素数之和的形式打印输出。

    [程序]

    EDCLARE SUB PRIME (Y)

    COMMON SHARED T

    FOR N =4 TO 100 STEP 2

    FOR X =2 TO N – 1

    P =X

    PRIME P

    IF T =1 THEN

    (1)

    PRIME P

    IF T =1 THEN

    PRINT N;“=”;(2)

    (3)

    END IF

    END IF

    NEXT X

    NEXT N

    END

    SUB PRIME (Y)

    FOR I =2 TO SQR(Y)

    T =0

    IF Y /I =(4)THEN EXIT FOR

    NEXT I

    IF (5)THEN T =1

    END SUB

    试题五

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

    [程序说明]

    本程序三位正整数中寻找符合下列条件的整数:它既是完全平方数,又有两位数学相同,例如144、676等,程序找出所有满足上述条件的三位数并输出。

    [程序]

    main ()

    {

    int n,k,a,b,c;

    for (k =1;;k )

    {

    (1);

    if (n 《100)(2);

    if (n 》999)(3);

    a =n /100;

    b =(4);

    c =n %10;

    if (flag(a,b,c))

    printf(“N =%d =%d*%d、n”,n,k,k);

    }

    }

    flag((5))

    {

    return !((x – y )*(x – z )*(y – z ));

    }

    试题六

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

    [程序说明]

    某工厂有8个车间,分别设有数据库CJ1,CJ2,…CJ8,它们具有相同的库结构:GH(C,5);XM(C,8);GZ(N,5);…(分别表示工号、姓名、工资…)。本程序计算(1)全厂工资在500元和550元之间的职工总人数S。(2)全厂所有车间中工资大于本车间平均工资的职工数总和W。

    [程序]

    SET TALK OFF

    CLEAR

    I =1

    (1)

    DO WHILE I 《=8

    DB =“CJ”(2)

    USE (3)

    COUNT FOR GZ 》=500 .AND.GZ 《=550 TO P

    (4)

    CONUT FOR GZ 》AVGZ TO Q

    S =SP

    W =WQ

    (5)

    USE

    ENDDO

    ?“全厂工资在500元和550元之间的职工人数为:”,S

    ?“全厂大于车间平均工资的职工人数总和为:”,W

    SET TALK ON

    RETURN

    试题七

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

    [程序说明]

    对于十进制数成立如下一组等式:

    9 *1 2 =11

    9 *12 3 =111

    9 *123 4 =1111

    ……

    9 *12345678 9 =111111111

    本程序用来验证对于任何R进制(3 《R 《10)数,都成立类似于上列的一组等式。程序输入R(R进制的基)和任一正整数M(1 《M 《R——2),对于形如1 2 3 4 …(M – 1)M的R 进制数(记为P),验证成立如下等式:R1 *P M1 =Q1 其中R1为R——1的值,M1为M 1的值,Q1为由M1个1并列构成的R进制数(111…1)。为简单起见,输出结果均以十进制数表示。

    [程序]

    DEFLNG P——Q DO WHILE (3)

    INPUT “R=”,R K =K 1

    IF R 《3 OR R 》10 THEN Q =(4)

    PRINT “R——错误1IF Q 《R THEN

    END IF Q =1 AND (5)THEN

    END IF PRINT R1,P,M1,Q1

    INPUT “M=”,M PRINT “正确1

    IF M 《1 OR M 》R –2 THEN ELSE

    PRINT “M——错误1PRINT “错误1

    END END IF

    END IF END

    R1 =R – 1 ELSE

    M1 =M 1 C =Q MOD R

    P =0 END IF

    FOR L =1 TO M LOOP

    P =(1)PRINT “错误1

    NEXT L END

    Q =R1 *P M1

    Q1 =(2)

    K =0

    C =Q MOD R

    试题八

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

    [程序说明]

    本程序所列函数replace (char *s1,char *s2,char *str1,char *str2 )实现将已知字符串s1 中所有与字符串str1 相同的字符列时,就把该字符拷贝到字符数组s2;当从某字符开始能构成一个与字符串str1 相同的字符列时,就将字符串str2 的各字符拷贝到字符数组s2,并继续访问字符串s1 中那个字符列之后的字符,直至字符串s1 被访问完,字符复制即告结束。

    如程序中所列数据,程序运行输出为:

    ABCXYZdefg  abABCXYZd abab

    [程序]

    replace (char *s1,char *s2,char *str1,char *str2)

    {

    char *t0,*t1,*t2

    while ((1))

    {

    for (t0=s1,t1=str1;*t1 !=’、0’&&(2);t0,t1);

    if (*t1 !=’、0’)*s2=(3);

    else

    {

    for(t1=str2;*t1 !=’、0’;)*S2=(4);

    (5);

    }

    }

    *S2 =’、0’;

    }

    main()

    {

    char s1[]=“abcdefg ababcd abab .”;

    char s2[80];

    replace(s1,s2,“abc”,“ABCXYZ”);

    printf(“%s、n”,s2);

    }

    试题九

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

    [程序说明]

    现在奥运会奖牌数据库(JPK.DBF)库结构如下:

    GJ (C,10)表示国家名称

    JP (N,2)金牌数

    YP (N,2)银牌数

    TP (N,2)铜牌数

    ZS (N,3)总数

    及某一时刻数据库的前五条记录如下:

    Record #GJ JP YP TP ZS

    1 中国16 21 12

    2 美国36 31 19

    3 俄国23 20 10

    4 德国14 15 23

    5 法国15 6 14

    本程序用来计算各国获奖牌总数(ZS),并能按用户要求(通过键盘输入),分别显示按金牌、银牌、铜牌或总数排名的名次表。

    [程序]

    SET TALK OFF

    CLEAR

    USE JPK

    A1 =“”

    REPL (1)

    @3,20 SAY“按何种奖牌排名”

    @5,18 SAY“金牌—JP 银牌—YP”

    @7,18 SAY“铜牌—TP 总数—ZS”

    @9,18 SAY“请输入奖牌代号:”(2)A1

    READ

    SORT (3)TO MCK

    USE MCK

    CLEAR

    LIST

    USE

    SET TALK ON

    RETURN

    在打开数据库JPK后,欲显示金牌(JP)数在20块以上(含20块)的国家名字,要求只显示国名和金牌数,应使用(4)命令。

    若需要显示前一个国家的金牌数总和,银牌数总和及铜牌数总和,可在打开数据库JPK后,使用(5)命令。

    试题十

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

    [程序说明]

    本程序对于键盘输入的M,按不同情况输出相应结果:

    当M 《0 时,输出:‘M为负数’

    当M为非整数时,输出‘M为非整数’

    当M为偶数时,输出‘M为偶数’

    当M为奇数时,输出表达式C1mC2m……Cmm的值。

    其中

    [程序]

    DECLARE SUB P (X)(5)

    COMMON SHARED N,G G =1

    INPUT “M=”,M FOR I =1 TO N

    (1)G =G *I

    CASE IF 《0 NEXT I

    PRINT “M 为负数”END SUB

    CASE IS 《》INT(M)

    PRINT“M为偶数”

    CASE ELSE

    N =M

    P N

    T1 =G

    W =0

    K =1

    DO UNTIL (3)

    N =K

    P N

    T =T1 /G

    N =M – K

    P N

    T =T /G

    W =W T

    K =K 2

    (4)

    PRINT “W=”,W

    END SELECT

    END

    试题十一

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

    [程序说明]

    本程序是寻找长整数A。A的个位数a [0 ]为指定的数p(取值分别为2、3、4、……、9)。若将A的个位数字移到其它各位数字之前,则其数值为原数值A的p倍。例如,p为4,则A为102564(各位数字分别存入a [5 ],a [4 ],……,a [0 ]之中),有102564 *4 =410256。寻找从a [0 ]=p出发,用p 乘已确定的位的数值可推出其前1位的数字,逐位进行,直到用p乘a [n – 1 ]等于a [0 ],递推计算结束,A即为:a [n – 1 ]a [n – 2 ]……a [0 ]

    [程序]

    #define N 60

    int a [N ];

    main()

    {

    int p,i,n;

    for (p=2;p《=9;p)

    {

    n =search(p);

    printf(“p =%d:a =“,p);

    for(I =n ——1;(1);i ——)

    printf(“%d”,a [i ]);

    printf(“、n”);

    }

    }

    int search (int p)

    {

    int i,t,c;

    c =0

    (2);

    for (i =1;;i )

    {

    t =a[I——1]*pc;

    if (t==p)break;

    a{I}=(3);

    c =(4);

    }

    (5);

    }

    试题十二

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

    [程序说明]

    设有一个人员数据库RXK.DBF,其库结构为:

    CH(C,6);XM(C,8);SFZH(C,15);XL(C,8);

    DW(C,20);CJGZ(D,8);GZ(N,4);

    分别代表工号、姓名、身份证号、学历、单位、参加工作、工资。

    及另一个考核成绩库CJK.DBF,其库结构为:

    CH(C,6);LR(N,5,1);CZ(N,5,1);ZF(N,5,1);

    分别代表工号,理论成绩,操作成绩,总分。

    本程序完成:

    1、总分计算;

    2、生成一个新数据库NEW,含字段GH,XM,XL,LR,CZ,ZF等。

    3、显示总分(ZF)超过160分的职工的GH,XM,LR,CZ。

    [程序]

    SET TALK OFF

    SELECT D

    USE CJK

    REPL ALL ZF WITH LRCZ

    (1)TO CHKGH &&CHKGH 为索引文件

    SELECT F

    USE RXK

    SET (2)

    COPY TO NEW (3)

    (4)

    LIST FIELDS (5)

    USE

    SET TALK ON

    RETURN



【关闭窗口】