查看全部128种考试
软件水平考试
 考试动态 报考指南 历年真题 模拟试题 复习资料 心得技巧 专业英语 技术文章 软考论坛 考试用书
 程序员 软件设计师 网络管理员 网络工程师 系统分析师 数据库系统工程师
1
2
3
4
5
6
7
8
9
10
ak47  
【字体: 程序员考试下午试题程序填空解题方法
程序员考试下午试题程序填空解题方法
spks.exam8.com 来源:老顽童 更新:2005-5-12 23:46:00 软件水平考试 考试论坛

    一、步骤

    1、理解题意:

  主要是根据问题的描述,确定问题的已知条件,并了解算法(程序)要达到的目的。通俗讲,就是要知道问题的输入和输出。

    2、确定算法:

  每个题目在前面都有描述,通过对描述的分析,要确定题目应该属于哪一类数据结构以及相应的算法。有些题目可能不属于任何数据结构,则它可能与某类算法(8类)有关;但也有一些算法纯粹是数学方法。

  在描述中同时要理解算法过程。在分析算法时,可以以某个具体实例来试验。

    3、理解程序:

  分析程序结构,如果有很多子函数,首先弄清楚各函数之间的关系和各函数的作用;如果程序较长,则应该根据算法过程,把每个程序段与算法的每个过程对应起来,确定相应的程序段功能。

  在程序中,已经定义了某些变量,则在理解程序时,首先必须理解这些变量的含义。

    4、根据C语言的语法填空。

    二、示例

    【示例】2004年上半年程序员下午试题试题六

[函数说明]

  函数DelAInsB(LinkedList La,LinkedList lb,int key1,int key2,int len)的功能是,将线性表A中关键码为keyl的结点开始的len个结点,按原顺序移至线性表B中关键码为key2的结点之前,若移动成功,则返回0;否则返回-1。线性表的存储结构为带头结点的单链表,La为表A的头指针,Lb为表B的头指针。单链表结点的类型定义为:

  typedef struct node{
   int key;
   struct node*next;
  }*Linkedhist;

[函数]

(1) int DelllnsB(LinkedLiSt La,LinkedList Lb,int keyl,int key2,int len)

(2) { LinkedList ?p,q,s,prep,pres;

(3)  int k;

(4)  if (!La->next || !Lb->next || len<=0) return-1;

(5)  p = La->next; prep = La;

(6)  while (p && p->key != keyl) { /* 查找表A中键值为key1的结点 */(7)   prep = p;p = p->next;

(8)  }

(9)  if (!p) return -1; /* 表A中不存在键值为key1的结点 */

(10)  q = p; k = 1;

(11)  while (q && __(1)__) { /* 在表A中找出待删除的len个结点 */

(12)   __(2)__; k++;

(13)  }

(14)  if (!q) return -1; /* 表A中不存在要被删除的len个结点 */

(15)  s = Lb->next; __(3)__;

(16)  while (s && s->key != key2) { /* 查找表B中键值为key2的结点 */(17)   pres = s; s = s->next;

(18)  }

(19)  if (!s) return -1; /* 表B中不存在键值为key2的结点 */

(20)  __(4)__ =q->next; /* 将表A中的len个结点删除 */

(21)  q->next= ??(5) ;

(22)  pres->next = p; /* 将len个结点移至表B */

(23)  return 0;

(24)  }

[1] [2] 下一页

转帖于:软件水平考试_考试吧
文章搜索  
看了本文的网友还看了:
软件水平考试权威辅导教材: 订书电话:010-62168566  更多>>>
网友评论
昵 称: *  评 分: 1分 2分 3分 4分 5分
标题:   匿名发表    (共有条评论)查看全部评论>>
版权声明 -------------------------------------------------------------------------------------
  如果软件水平考试网所转载内容不慎侵犯了您的权益,请与我们联系,我们将会及时处理。如转载本软件水平考试网内容,请注明出处。
关于本站  网站声明  广告服务  联系方式  付款方式  站内导航  客服中心  友情链接  考试论坛  网站地图
Copyright © 2004-2008 考试吧软件水平考试网 All Rights Reserved    
中国科学院研究生院权威支持(北京) 电 话:010-62168566 传 真:010-62192699
百度大联盟黄金认证  十佳网络教育机构  经营许可证号:京ICP060677