网站建设| 数据库类| 图形图象| 程序设计| 现代办公| 操作系统| 考试认证| 网络技术| 软件工程| 电脑相关| 文学作品
网站开发| 网页制作| 操作系统| 图象图形| 考试认证| 数据库类| 程序设计| 硬件技术| 现代办公| 网络技术| 笑话频道
 
您的位置: 电脑书库首页-> 电脑文摘-> 考试认证-> 水平考试-> 1999年度初级程序员级 下午试卷

1999年度初级程序员级 下午试卷
作者:佚名 来源:InterNet 加入时间:2005-2-4
相关文章
  • 一九九六年度初级程序员级 上午试卷
  • 1999年度初级程序员级 上午试卷
  • 相关书籍:
    考试时间  14:00-16:00  共120分钟)

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

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

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

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

    4.本试卷的4道试题都是必答题,请全部解答。

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

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

    例题

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

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

    例  题      解 答 栏
     
    (1)         4
     
    (2)         16
     
     
    试题 一

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

    【程序1.1】

    #include <stdio.h>

    main()

    { struct num{ int x; int y;

    } sa[] = {{2, 32}, {8, 16}, {4, 48};

    struct num *p = sa+1;

    int x;

    x = p->y / sa[0].x * ++p->x;

    printf(″x = %d p->x = %d\n″, x, p->x);

    }

    程序1.1的输出结果是(1) 。

    【程序1.2】

    #include <stdio.h>

    int p(int k, int a[])

    { int m, i, c = 0;

    for(m = 2; i <= m; i++)

    for(i = 2; i <= m; i++)

    if (!(m % i)) break;

    if (i == m) a[c++] = m;

    }

    return c;

    }

    #define MAXN 20

    main()

    { int i, m, s[MAXN];

    m = p(13, s);

    for(i = 0; i < m; i++)

    printf(″%4d\t″, s[i]);

    printf(″\n″);

    }

    程序1.2的输出结果是(2) ;函数int p(int k, int a[])的功能是(3) 。

    【程序1.3】

    #include <stdio.h>

    void s(int a[], int n)

    { int i, j, t;

    for(i = 0; i < n; i++) {

    for(t = a[i], j = i-1; j >= 0 && t < a[j]; j--)

    a[j+1] = t;

    }

    }

    main()

    { int i, c[] = { 15, 3, 8, 9, 6, 2};

    s(c, 6);

    for(i = 0; i < 6; i++)

    printf(″%4d\t″, c[i]);

    printf(″\n″);

    }

    程序1.3的输出结果是(4) ;函数s(int a[], int n)的功能是(5) 。

    试题 二

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

    【程序2.1说明】

    程序2.1求以下级数和的近似值,约定求和的精度为0.000001。

                 x3          x5         x7

         
         

    s(x) = x –        +        -        + ……

                3*1!     5*2!     7*3!

    【程序2.1】

    #include <stdio.h>

    #include <math.h>

    #define Epsilon 0.000001

    main()

    { int i; double s, x, t;

    printf(″Enter x.\n″); scanf(″%1f″, &x);

    s = 0.0; t = x; i = 0;

    while (fabs(t) >= Epsilon) {

    s =(1); i++;

    t =  -t * x * x * (2) /((2 * i + 1) * i);

    }

    printf(″s(%f) = %f\n″, x, s);

    }

    【程序2.2说明】

    本程序中有函数rep(char *s, char *sl, char *s2),其形参字符串sl和s2有相同的字符个数,且sl中各字符互不相同。该函数实现将已知字符串s中所有在字符串sl中也出现的字符都用字符串s2中的对应位置的字符代替。例如:设字符串s、sl和s2分别为:

    s[ ] = ″ABCABC″, sl[ ] = ″AC″, s2[ ] = ″ZX″

    则s2中的字符Z和X分别对应sl中的字符A和C,函数调用rep(s, sl, s2)将字符串s的内容变为″ZBXZBX″。

    【程序2.2】

    #include <stdio.h>

    void rep(char *s, char *sl, char *s2)

    { char *p;

    for( ; s; s++) { /* 顺序考察s中的各个字符 */

    for( ; s; s++; p &&(3); p++); /* 找 *s是否在sl中出现 */

    if ( (4) ) s = *(s2+ (5) ); /* 找到,用s2中的对应字符替代 */

    }

    }

    main()

    { char s[] = ″ABCABC″;

    rep(s, ″AC″, ″ZX″); printf(″%s\n″, s);

    }


    试题 三

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

    【程序3说明】

    本程序从键盘读入整数,并按从大到小的顺序输出输入整数中互不相等的那些整数。

    程序一边读入整数,一边构造一个从大到小顺序链接的链表,直至不能从键盘读入整数,然后顺序输出链表上各表元的整数值。主函数每读入一个整数,就调用函数insert( ),函数insert( )将还未出现在链表上的整数按从大到小的顺序插入到链表中。

    为了插入方便,链表在表首有一个辅助表元。

    【程序3】

    #include <stdio.h>

    #include <malloc.h>

    typedef struct node { int val;

    struct node *next;

    } NODE;

    void insert(NODE *list, int x)

    { NODE *u, *v, *p;

    u = list; v = u->next;

    while ((1)&& x < v->val) /* 寻找插入位置 */

    { u = v; v = v->next; }

    if (v == NULL || (2)) { /* 判是否要插入新表元 */

    p = (NODE *)malloc(sizeof(NODE)); P->val = x; /* 生成新表元 */

     (3) = v; (4) = p; /* 插入新表元 */

    }

    }

    main( )

    { int x;

    NODE *head, *p;

    /* 首先建立只有辅助表元的空链表 */

    head = (NODE *)malloc(sizeof(NODE));

     (5) = NULL;

    printf(″Enter integers: \n″);

    while (scanf(″%d″, &x) == 1) /* 反复读入整数插入链表 */

    insert(head, x);

    for(p =head->next; p !=NULL; p=p->next)

    printf(″%d\t″, p->val);

    printf(″\n\n″);

    }


    试题 四

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

    【程序4说明】

    本程序对给定的n(n≤100),计算并输出k!(k = 1, 2, …, n)的全部有效数字,因k!的值可能很大,故采用一维数组存储计算结果。设数组的每个元素存储k!的一位数字,并约定从低位到高位依次存于数组的第一个位置、第二个位置、……。例如,5!= 120,在数组a中的存储形式为:

                                a[2] a[1] a[0]

                
      
    程序中,计算k!采用对已求得的(k-1)!的结果连续累加k-1次后求出。例如,4! = 24, 则计算5!对原来的24再累加4次24后得到120。为了控制累加的位数,另引入整型变量c用于记录当前(k-1)!的位数。

    【程序4】

    #include <stdio.h>

    #define MAXN 1000

    int a[MAXN], b[MAXN];

    void pnext( int k, int *cp)/* 已知a[ ]中的(k-1)!,求出k!存于a[ ].*/

    { int c = *cp, i, m, r;

    for(i = 0; i < c; i++) b[i] = a[i];

    a[c] = 0;

    for(m = 1; m < k; m++) /* 通过累加求k! */

    for(i = 0; i < c; i++) {

    r = (1) ; a[i] = r % 10; (2) += r/10;

    }

    /* 处理最高位进位 */

    r = a[c];

    while (r>0) { a[ (3) ] = r%10; r = r/10; }

     (4) = c;

    }

    void write(int *a, int k, int c)

    {    int i;

    printf(″%4d!=″, k);

    for(i = (5) ; i >= 0; i--) printf(″%d″, a[i]);

    printf(″\n\n″);

    }

    main()

    { int n, c, k ;

    printf(″Enter the number n(<=100):″); scanf(″%d″, &n);

    a[0] = 1; c = 1; write(a, l, c);

    for(k = 2; k <= n; k++) {

    pnext(k, &c);  write(a, k, c);  getchar();

    }

    }


    [文章录入员:nancy]

    相关文章
  • 一九九六年度初级程序员级 上午试卷
  • 1999年度初级程序员级 上午试卷
  • 相关书籍:
    本站推荐内容

    近期主机类热搜关键词:
    美国服务器 美国服务器租用 海外服务器租用 国外服务器租用

    水平考试
    微软认证
    思科认证
    其他认证
    等级考试
    水平考试
    公务员考试
    其它
    电脑教程阅读排行
    ·2004年11月软考模拟试题(网...
    ·2004年11月软考模拟试题(网...
    ·2004年11月软考模拟试题(网...
    ·软考辅导难题精讲:题目(1)
    ·国家网络技术水平考试认证的分级及...
    ·2004年11月软考模拟试题(程...
    ·90天搞定系统分析员考试回顾
    ·软考辅导难题精讲:题目(5)
    ·一九九九年度程序员级-上午试卷
    ·一九九九年度程序员级-下午试卷