用户名 密码  加入VIP   如何付款   会员好评    网站首页   全部考试   加入收藏
  中国软考考试门户网站
  考试报名-试题答案-成绩查询
软考考试| 软考资讯 | 软考真题 | 软考模拟题 | 指南 | 图书 | 精品课程
 北京 天津 上海 重庆 江苏 浙江 山东 江西      广东 福建 广西 海南 河南 河北 湖南 湖北
 安徽 山西 四川 云南 贵州 陕西 吉林 辽宁      甘肃 宁夏 青海 新疆 西藏 黑龙江 内蒙古
 软考频道 | 资讯 | 真题 | 模拟 | 指南 | 教材 | 网址 | 热点 | 收藏
 首页 >> 计算机技术与软件水平考试 >> 软考最新指南 >>程序员考试下午试题程序填空解题方法


程序员考试下午试题程序填空解题方法[1]

http://www.51Test.net  2008年9月25日  来源:网络综合
  一、步骤
   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、理解题目:
   已知条件为两个链表La和Lb,最后得到的结果也是两个链表,只不过是La中的部分结点移动到Lb中,因此,本问题主要是解决是怎么移动的。
   2、算法:
   在题目中没有给出结点移动的算法,我们先可以结合实例自己设计一个算法,然后看是不是与程序中的算法一致。如果不是,则再找算法。
   实例:

  如图所示,如果我们找到实线的指针,它们分别指向La中的Key1结点(p指针)、Key1的前一个结点(q指针)、Aj(从Key1结点开始的第len个结点,r指针)和Lb中的Key2的前一个结点(s指针),则根据链表操作,用图中的虚线指针连接,我们就可以把La中从Key1结点开始的共len个结点全部移动到Lb链表中。因此算法大致如下:
   (1)找到p和q指针;
   (2


更多信息请访问:软考频道    软考课程    软考论坛

   试题计算机技术与软件水平考试相关文章
   【软考】程序员考试下午试题程序填空解题方法   2008-9-26
   【软考】从切身经历来谈2004年5月程序员试题   2008-9-26
   软考程序员考试下午试题解答方法与技巧   2008-9-26
   2003年度系统设计师/高级程序员上午试题   2008-9-26
   2006年1月高级语言程序设计考试题目   2008-9-26
   1990-2001年十一年系分考试试题演变大事记   2008-9-26
   全国2006年10月高等教育自学考试高级语言程序设计(一)试题   2008-9-26
   IT求职经典面试题,你能做几道?   2008-9-25
   程序员考试下午试题程序填空解题方法   2008-9-25
   2007年11月计算机原理与体系结构类试题详解   2008-9-25
声明:由于各方面情况的调整与变化,无忧考网所提供的考试报名,试题答案,成绩查询查分信息仅供参考,敬请考生以权威部门公布的正式信息为准。如本网站内容不慎侵犯权益请联系51test.net@gmail.com。

     
 软考频道热点专题
2008计算机软件水平考试时间
2008年5月软件水平考试成绩查询
2008年5月计算机软件水平考试试题答案
2008年软件水平考试专题
软件水平考试试题专题
   >> 全部软考热点专题

 软考频道特别推荐
软考:网络工程师考试经验
【学习之路】程序员如何学好C++的50条忠告荟萃
我的初级程序员考试经历
【学习之路】程序员如何掌握计算专业机英语
【软考】程序员考试下午试题程序填空解题方法
2008计算机软件水平考试时间
2008年下半年过网工推荐学习资料
如何通过软件设计师考试
2008年上半年软件设计师考试学习方法
山东警方追回计算机考试试卷 责任人正受审查

 无忧考网软考问答专区

 软考频道最新更新
配置异步BOOTP请求地支持和配置双用途端口
巧用“本地连接”修复网络故障
虚拟局域网管理中的路由器与交换机角色的改变
系统权限和局域网共享与安全
解决网线接错导致的局域网故障
局域网中comet和push技术
不用正常命令退出路由器的故障
家庭SOHO网络交换机解决方案
简要介绍如何检测VLAN交换机及其端口
DHCP服务器无法获取IP地址问题解决实录

 软考频道热点试题
2008年下半年网工笔试考前练习(53)
2008年下半年网络工程师基础训练习题目
2008年下半年网工笔试考前练习(55)
2008年11月程序员笔试考前练习(38)
2008年11月网络管理员笔试考前练习(3)
2008年下半年网工笔试考前练习(56)
2008年11月程序员笔试考前练习(44)
2008年11月网络管理员笔试考前练习(29)
2008年11月网络管理员笔试考前练习(4)
2008年11月程序员笔试考前练习(36)