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

    1 一笔画问题

    2 迷宫问题

    3 最短路径问题(就是给出一个交通示意图,边上的数字为路的长度,求每个结点到某个固定点的最短路程)

    4 N个球称重问题吧

    荷兰国旗问题????四色定理

    3种颜色(0,1,2)在一个数组里,每次只可交换一次,扫描一边后,三种颜色自然分开,应为颜色为:红,白,蓝,(荷兰国旗的颜色)所以叫它荷兰国旗问题(也是他老人家的国籍)!

#include "stdio.h"
#include "stdlib.h"
#include "time.h"

#define N 15

int main(int argc, char* argv[])
{
char array[N];
char t,*p_red_end,*p_write_end,*p_blue_head; //分别为红色的尾指针、白色的尾指针、蓝色的首指针

int i;

srand( (unsigned)time( NULL ) );
for(i=0;i<N;i++)
{
switch (rand()%3)
{
case 0:
array='r';
break;
case 1:
array='w';
break;
default:
array='b';
}
printf("%c ",array);
}
printf("\n";

for(p_red_end=p_write_end=array,p_blue_head=array+14;p_write_end<=p_blue_head
switch (*p_write_end)
{
case 'r':
t=*p_red_end;
*p_red_end=*p_write_end;
*p_write_end=t;
p_red_end++;
p_write_end++;
break;
case 'b':
t=*p_write_end;
*p_write_end=*p_blue_head;
*p_blue_head=t;
p_blue_head--;
break;
default:
p_write_end++;
}
for(i=0;i<N;i++)
printf("%c ",array);
}
运行结果是:
rrrwwrwwrwbbbbb

    这个结果是荷兰国旗算法的结果吗?(我不清楚荷兰国旗算法)

    题目最终要求的结果应该是:红,白,兰,红,白,兰,红,白,兰……还是:红,红,红,红,红,白,白,白,白,蓝,蓝,蓝,蓝,蓝……?

#include "stdio.h"
#define k 15 /*假定数组有15个数*/
char a[k]={'r','w','b','r','r','b','w','w','b','b','b','w','r','r','w'}; /*r,b,w代表红,蓝,白*/

main()
{int i,ii;
char t;
int m,n,p;
m=0; /*m为红色末尾指针*/
n=0; /*n为白色末尾指针*/
p=14;/*p为蓝红色头指针*/
for (ii=0;ii<15;ii++)
printf("%c",a[ii]);
while(n<=p)
{
if (a[n]=='r') {t=a[n];a[n]=a[m];a[m]=t;m++;n++;}
else if (a[n]=='w') n++;
else {
t=a[n];a[n]=a[p];a[p]=t;p--;n++;
if (a[n-1]=='r') {t=a[n-1];a[n-1]=a[m];a[m]=t;m++;}
}

for (i=0;i<15;i++)
prinrf("%s",a[n]);

}

 

[1] [2] 下一页

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