• 首页
  • 资料下载
  • IT书店
  • 论坛交流
  • 最新文章
  • 更多
    • 壁纸大全
    • 天气预报
    • QQ群联盟
    • 网址导航
    • 团队博客
    • 联系我们
设软件水平考试网为首页 | 注册 | 登陆

  • 财会类
    • 财会类
    • 会计从业
    • 中级会计
    • 经济师
    • 注册税务师
    • 银行从业
    • 内审师
    • 资产评估
    • 统计师
    • 审计师
    • 更多>>
  • 建筑类
    • 建筑类
    • 一级建造师
    • 二级建造师
    • 造价工程师
    • 咨询工程师
    • 监理工程师
    • 房地产估价
    • 结构工程师
    • 注册建筑师
    • 土地估价师
    • 更多>>
  • 职业资格
    • 职业资格
    • 证券从业
    • 期货从业
    • 司法考试
    • 教师资格
    • 秘书资格
    • 保险从业
    • 导游资格
    • 人力资源
    • 电子商务
    • 更多>>
  • 公务员
    • 公务员
    • 行测
    • 申论
    • 面试
    • 真题大全
    • 公考心得
    • 公考辅导
    • 招警
    • 更多>>
  • 外贸类
    • 外贸类
    • 报关员
    • 报检员
    • 国际商务师
    • 单证员
    • 货运代理
    • 外销员
    • 更多>>
  • 医药类
    • 医药类
    • 执业护士
    • 中药师
    • 西药师
    • 临床医师
    • 临床助理
    • 中医医师
    • 口腔医师
    • 公共卫生
    • 更多>>
  • 外语类
    • 外语类
    • CET4
    • CET6
    • 职称英语
    • 托福
    • 雅思
    • BEC
    • 金融英语
    • 小语种
    • 更多>>
  • 学历考试
    • 学历考试
    • 高考
    • 成考
    • 考研
    • 自考
    • 中考
    • 考博
    • 在职硕士
    • 更多>>
  • 计算机类
    • 计算机类
    • 计算机二级
    • 计算机等级
    • 软件水平
    • 微软认证
    • 思科认证
    • 更多>>
  • 全部分类
    • 全部分类
    • 所有考试
    • 更多>>

 下载|书店 | 论坛|(QQ群:32090693)
  • 优易学品牌推荐:
  • 软件资料下载
  • 软件图书购买
软考首页
考试书店 | 资讯 | 报考指南 | 初级 | 中级 | 高级 | 备考辅导 | 历年真题 | 模拟题 | IT技术 | 专业英语 | 心得 | 资料中心 | 论坛交流
您现在的位置: 优易学 >> 计算机 >> 软件水平考试 >> 历年真题 >> 初级真题 >> 程序员 >> 正文
 
站内搜索:
2006年下半年软件水平考试程序员考试下午试题
来源:优易学  2011-1-7 15:17:12   【优易学:中国教育考试门户网】   资料下载   IT书店

试题一至试题三是必答题

试题一(共 15 分)
  阅读以下说明和算法,完善算法并回答问题,将解答写在答题纸的对应栏内。
[说明]
  假设以二维数组 G[1..m,1..n]表示一幅图像各像素的颜色,则 G[i,j]表示区域中 点(i,j)处的颜色,颜色值为 0 到 k 的整数。
  下面的算法将指定点(i0,j0)所在的同色邻接区域的颜色置换为给定的颜色值。约定 所有与点(i0,j0)同色的上、下、左、右可连通的点组成同色邻接区域。
  例如,一幅 8×9 像素的图像如图 1-1 所示。设用户指定点(3,5),其颜色值为 0,此时其上方 (2,5)、下方 (4,5)、右方 (3,6)邻接点的颜色值都为 0,因此这些点属于 点(3,5)所在的同色邻接区域,再从上、下、左、右四个方向进行扩展,可得出该同色 邻接区域的其他点(见图 1-1 中的阴影部分)。将上述同色区域的颜色替换为颜色值 7 所得的新图像如图 1-2 所示。

[算法]
  输入:矩阵 G,点的坐标(i0,j0),新颜色值 newcolor。
  输出:点(i0,j0)所在同色邻接区域的颜色置换为 newcolor 之后的矩阵 G。
  算法步骤(为规范算法,规定该算法只在第七步后结束):
  第一步:若点(i0,j0)的颜色值与新颜色值 newcolor 相同,则 (1) ;
  第二步:点(i0,j0)的颜色值→oldcolor;创建栈 S,并将点坐标(i0,j0)入栈;
  第三步:若 (2) ,则转第七步;
  第四步:栈顶元素出栈→(x,y),并 (3) ;
  第五步:1) 若点(x,y-1)在图像中且 G[x,y-1]等于 oldcolor,则(x,y-1)入栈 S;
      2) 若点(x,y+1)在图像中且 G[x,y+1]等于 oldcolor,则(x,y+1)入栈 S;
      3) 若点(x-1,y)在图像中且 G[x-1,y]等于 oldcolor,则(x-1,y)入栈 S;
      4) 若点(x+1,y)在图像中且 G[x+1,y]等于 oldcolor,则(x+1,y)入栈 S;
  第六步:转 (4) ;
  第七步:算法结束。
[问题]
  是否可以将算法中的栈换成队列?回答: (5) 。

试题二(共 15 分)
  阅读以下说明和 C 函数,将应填入 (n) 处的字句写在答题纸的对应栏内。
[说明]
  某单位准备进行一次选举,对指定的 n 名(n<80)候选人进行投票。为了简化选举工 作,事先印制了写有这 n 名候选人姓名的选票,投票者只需将选中者名下的圆圈涂黑即可。规定每张选票上被涂黑的圆圈数不得超过 3 个,也不得少于 1 个,否则视为无效选票。投票结束后,所有选票经计算机扫描处理,形成了描述选票状态的文本文件。例如,n=8 时所形成的文件如下:
  01011000
  10010100
  10011000
  11111111
  00000000
  00111000
    …
  其中,每行表示一张选票的数据,每列代表一位候选者的得票情况。第 i 行第 j 列 为 1,表示第 i 张选票上投了第 j 名候选人 1 票。
  函数 statistic( )的功能是读入选票数据,并统计每位候选者的得票数,函数返回 有效选票数。
[C 函数]
  int statistic(FILE *fp,int candidate[],int n)
  { /* 从文件中读入选票数据,n 为候选人数量(n<80),从有效选票中统计每位候选者的得票数并存入 candidate[],函数返回有效选票数*/
   char str[80];   /* str 保存读入的一张选票数据 */
   int i,tag = 0;  /* tag 用于判断每张选票是否有效 */
   int q = 0; /* q 用于计算有效选票数 */
   for(i = 0; i < n; i++)
   candidate[i] = 0;
   while ( (1) ) {
    fgets(str,80,fp); /* 读入一张选票数据 */
    for(tag = 0,i = 0; (2) ; i++)
     if (str[i] == '1') tag++;
     if ( (3) ){  /* 若是有效选票,则进行统计 */
       (4) ;
      for (i = 0; i < n; i++)
       if (str[i] == '1')  (5) ;
     }
   }
   return q;
  }  /* statistic */

试题三(共 15 分)
  阅读以下说明和 C 函数,将应填入 (n) 处的字句写在答题纸的对应栏内。
[说明]
  若一个矩阵中的非零元素数目很少且分布没有规律,则称之为稀疏矩阵。对于 m 行n 列的稀疏矩阵 M,进行转置运算后得到 n 行 m 列的矩阵 MT,如图 3-1 所示。

  为了压缩稀疏矩阵的存储空间,用三元组(即元素所在的行号、列号和元素值)表示稀疏矩阵中的一个非零元,再用一维数组逐行存储稀疏矩阵中的所有非零元素(也称为三元组顺序表)。例如,图 3-1 所示的矩阵 M 相应的三元组顺序表如表 3-1 所示,其转置矩阵 MT 的三元组顺序表如表 3-2 所示。

表3-1 矩阵M

行号 列号 元素值
0 1 -3
0 4 5
1 3 10
2 0 12
3 1 14
3 4 -7

表3-2 M的转置矩阵MT

行号 列号 元素值
0 2 12
1 0 -3
1 3 14
3 1 10
4 0 5
4 3 -7

  函数 TransposeMatrix(Matrix M)的功能是对用三元组顺序表表示的稀疏矩阵 M 进行转置运算。
  对 M 实施转置运算时,为了将 M 中的每个非零元素直接存入其转置矩阵 MT 三元组顺序表的相应位置,需先计算 M 中每一列非零元素的数目(即 MT 中每一行非零元素的 数目),并记录在向量 num 中;然后根据以下关系,计算出矩阵 M 中每列的第一个非零元素在转置矩阵 MT 三元组顺序表中的位置:
  cpot[0] = 0
  cpot[j] = cpot[j-1] + num[j-1]  /* j 为列号 */
  类型 ElemType、Triple 和 Matrix 定义如下:
  typedef int ElemType;
  typedef struct { /* 三元组类型 */
  int r,c; /* 矩阵元素的行号、列号 */
  ElemType e; /* 矩阵元素的值*/
  }Triple;
  typedef struct { /* 矩阵的三元组顺序表存储结构 */
  int rows,cols,elements; /* 矩阵的行数、列数和非零元素数目 */
  Triple data[MAXSIZE];
  } Matrix;
[C 函数]
  int TransposeMatrix(Matrix M)
  {
   int j,q,t;
   int *num, *cpot;
   Matrix MT;  /* MT 是 M 的转置矩阵 */
   num = (int *)malloc(M.cols*sizeof(int));
   cpot = (int *)malloc(M.cols*sizeof(int));
   if (!num || !cpot)
    return ERROR;
   MT.rows =  (1) ;  /* 设置转置矩阵 MT 行数、列数和非零元数目 */
   MT.cols =   (2) ;
   MT.elements = M.elements;
   if (M.elements > 0) {
    for(q = 0; q < M.cols; q++)
     num[q] = 0;
    for(t = 0; t < M.elements; ++t)  /* 计算矩阵 M 中每一列非零元素数目 */
     num[M.data[t].c]++;
     /* 计算矩阵 M 中每列第一个非零元素在其转置矩阵三元组顺序表中的位置 */
     (3) ;
    for(j = 1;j < M.cols; j++)
     cpot[j] =   (4) ;
     /* 以下代码完成转置矩阵 MT 三元组顺序表元素的设置 */
    for(t = 0; t < M.elements;t++){
     j =  (5) ; /* 取矩阵 M 的一个非零元素的列号存入 j */
     /* q 为该非零元素在转置矩阵 MT 三元组顺序表中的位置(下标)*/
     q = cpot[j];
     MT.data[q].r = M.data[t].c;
     MT.data[q].c = M.data[t].r;
     MT.data[q].e = M.data[t].e;
     ++cpot[j]; /* 计算 M 中第 j 列的下一个非零元素的目的位置 */
    } /* for */
   } /* if */
   free(num); free(cpot);
   /*此处输出矩阵元素,代码省略*/
   return OK;
  } /* TransposeMatrix */

[1] [2] [3] 下一页

责任编辑:小草

  • 上一个文章: 2006年下半年软件水平考试程序员考试上午试题
  • 下一个文章: 2006年下半年软件水平考试程序员考试上午试题参考答案
文章搜索:
 相关文章
程控交换机防雷问题
让Trunk成为VLAN之间的"守护神"
Cisco交换机常见问题
第三层交换机处理器收发包问题讲解
核心交换机设计技术未来走向
网络故障难排除五招
山东威海2010年计算机软件水平考试报名通知
资讯推荐
热点资讯
考试资讯
初级辅导
  • 全国各省软考办的地址及联系方式
  • 江西2007年11月软件水平考试成绩公布查询开始
  • 山东2007年11月软件水平考试成绩公布查询开始
  • 新疆2007年11月软件水平考试成绩公布查询开始
  • 湖北省2008年软件水平考试报名预计2月下旬开始
  • 软考、职称、职称资格的解读与三者之间的联系
  • 2009年下半年软件水平考试各科目考试时间表
  • 2009年上半年软件水平考试各科目考试时间表
  • 上海市2010年计算机软件水平考试报名通知
  • 浙江省2009年下半年计算机软件水平考试成绩查询
  • 广域网加速,如何选择网络产品
  • 应对年底网络运维危机
  • ip地址和MAC地址在三层交换机上的绑定
  • VLAN间的单向通信established命令
  • 发现和调用Dll里的函数
  • 递推关系算法
  • 稳步实施IPv6七大原则
  • 中小企业应该如何选型IP电话交换系统
  • 教你揪出伪装木马并清除
  • AES算法的数学基础
辅导专区
中级辅导
模拟试题
历年真题
  • [网络工程]AAA的概念和思科IOS对其配置的简要分析
  • [电子商务]选购防火墙当心5大误区
  • [软件设计]通用权限实现的核心设计思想
  • [网络工程]VPN内无法访问某些WEB站点故障
  • [网络工程]路由技术IP路由选择协议
  • [电子商务]PS高手秘技:如何在设计中出类拔萃
  • [电子商务]CIO选信息化合作伙伴的三个关键条件
  • [电子商务]经济危机中最受CIO青睐的五种技术
  • [软件设计]SharePoint工作流开发的一些概念
  • [软件设计]SharePoint工作流开发:HelloWorldSeque
  • 2009年5月份软考网络管理员每日一练试题 (12月31日
  • 2009年5月份软考网络管理员每日一练试题 (12月30日
  • 2009年上半年软考网络管理员每日一练试题 (12月29
  • 2009年上半年软考网络管理员每日一练试题 (12月28
  • 2009年上半年软考网络管理员每日一练试题 (12月27
  • 2009年上半年软考网络管理员每日一练试题 (12月26
  • 2009年上半年软考网络管理员每日一练试题 (12月25
  • 2009年上半年软考网络管理员每日一练试题 (12月23
  • 2009年上半年软考网络管理员每日一练试题 (12月22
  • 2008年12月软考软件设计师每日一练(12月20日)答
  • 2008年下半年软考信息处理技术员考试上午试题答案
  • 2008年下半年软考网络管理员考试上午试题评析(专家
  • 2008年下半年软考网络工程师考试上午试题评析(专家
  • 2007年上半年软考网络工程师考试下午试题
  • 2007年上半年软考网络工程师考试上午试题
  • 2008年下半年软考软件设计师上午试题参考答案(完整
  • 2008年下半年软考软件设计师下午试题参考答案(完整
  • 2008年下半年软考信息处理技术员真题上午试题专家
  • 2008年下半年软考网络工程师上午试题专家解读
  • 2008年下半年软考网络管理员真题下午试题专家版答
热门课程培训
更多
论坛新帖

关于我们 ┊ 合作加盟 ┊ 广告联系 ┊ 联系我们 ┊ 网站地图 ┊ 网站声明 ┊ 友情链接 ┊ 优易学QQ群联盟 ┊ 最新更新 ┊ 团队博客
热线:010-52880094  传真:010-52880094
投诉意见,请点这里在线提交或24小时QQ热线:53882478
Copyright © 2005-2012 YouYiXue.com All Rights Reserved 京ICP备09036865号-3