[软件设计师考试冲刺]2005年软件设计师考试题目预测
【shitiku.jxxyjl.com--计算机技术】
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]);
}
货郎问题????
一笔画问题
const max=6;{顶点数为6}
type shuzu=array[1..max,1..max]of 0..max;
const a:shuzu {图的描述与定义 1:连通;0:不通}
=((0,1,0,1,1,1),
(1,0,1,0,1,0),
(0,1,0,1,1,1),
(1,0,1,0,1,1),
(1,1,1,1,0,0),
(1,0,1,1,0,0));
var
bianshu:array[1..max]of 0..max; {与每一条边相连的边数}
path:array[0..1000]of integer; {记录画法,只记录顶点}
zongbianshu,ii,first,i,total:integer;
procedure output(dep:integer); {输出各个顶点的画法顺序}
var sum,i,j:integer;
begin
inc(total);
writeln("total:",total);
for i:=0 to dep do write(Path);writeln;
end;
function ok(now,i:integer;var next:integer):boolean;{判断第I条连接边是否已行过}
var j,jj:integer;
begin
j:=0; jj:=0;
while jj<>i do begin inc(j);if a[now,j]<>0 then inc(jj);end;
next:=j;
{判断当前顶点的第I条连接边的另一端是哪个顶点,找出后赋给NEXT传回}
ok:=true;
if (a[now,j]<>1) then ok:=false; {A[I,J]=0:原本不通}
end; { =2:曾走过}
procedure init; {初始化}
var i,j :integer;
begin
total:=0; {方案总数}
zongbianshu:=0; {总边数}
for i:=1 to max do
for j:=1 to max do
if a[i,j]<>0 then begin inc(bianshu);inc(zongbianshu);end;
{求与每一边连接的边数bianshu}
zongbianshu:=zongbianshu div 2; {图中的总边数}
end;
procedure find(dep,nowpoint:integer); {dep:画第几条边;nowpoint:现在所处的顶点}
var i,next,j:integer;
begin
for i:=1 to bianshu[nowpoint] do {与当前顶点有多少条相接,则有多少种走法}
if ok(nowpoint,i,next) then begin {与当前顶点相接的第I条边可行吗?}
{如果可行,其求出另一端点是NEXT}
a[nowpoint,next]:=2; a[next,nowpoint]:=2; {置成已走过标志}
path[dep]:=next; {记录顶点,方便输出}
if dep < zongbianshu then find(dep+1,next) {未搜索完每一条边}
else output(dep);
path[dep]:=0; {回溯}
a[nowpoint,next]:=1; a[next,nowpoint]:=1;
end;
begin
init; {初始化,求边数等}
for first:=1 to max do {分别从各个顶点出发,尝试一笔画}
fillchar(path,sizeof(path),0);
path[0]:=first; {记录其起始的顶点}
writeln("from point ",first,":");readln;
find(1,first); {从起始点first,一条边一条边地画下去}
end.
银行家算法其实是很普通的但是比较经典的算法,每本OS的书上都讲的,主要用来防止产生死锁的,
形象的讲:银行发放贷款(对不同的客户,有分期贷的)不能使有限可用资金匮乏而导致整个银行无法运转,也就是说每次请求贷款时,银行要考虑他能否凭着贷款完成项目还清贷款使银行运转正常,
(借用flyingcoolhwak写的步骤)
令Request(i)是进程P(i)请求向量,如果Request(i)[j]=k,则进程P(i)希望请求j类资源k个。
算法步骤如下:
1、如果Request(i)>Need(i)则出错(请求量超过申报的最大量),否则转2、
2、如果Requdst(i)>Available则P(i)等待,否则转3、
3、系统对P(i)所请求的资源实施试探分配,更改数据结构中的数值
4、Available<-Available-Request(i)
Allocation(i)<-Allocation(i)+Request(i)
Need(i)<-Need(i)-Request(i)
5、执行安全性算法(如下),如果是安全的则承认试分配,否则废除试分配,让进程P(i)等待
货郎担问题
问题描述
欧几里德货郎担问题是对平面给定的n个点确定一条连结各点的、闭合的游历路线问题。图1(a)给出了七个点问题的解。Bitonic旅行路线问题是欧几里德货郎担问题的简化,这种旅行路线先从最左边开始,严格地由左至右到最右边的点,然后再严格地由右至左到出发点,求路程最短的路径长度。图1(b)给出了七个点问题的解。
请设计一种多项式时间的算法,解决Bitonic旅行路线问题
-
【2020年下半年网络工程师答案】2005年下半年网络工程师填空题总结详细阅读
第二章 1、 数据可定义为有意义的实体,它涉及到事物的存在形式,数据可分为______和_______两大类。 2、 信号是数据的电子或电磁编码。对应于模拟数据和数字数据,信号也可分为______和______两大类。 3、 通信过程中产生和发送信息的设备或计算机...
-
【微波网络基础试题】网络基础试题100例(附答案)详细阅读
1 “令牌环环存在冲突检测问题”的说法(B)A 正确 B 错误 2 网络中PC机与集线器相联所使用的网线接头类型为?AA RJ-45 B RJ-11 3 100BaseT中的“Base”的意义是?BA 基础传输 B 基带传输 4 下面哪种网络类型适合对网络进行集中管理?BA Peer-to-Peer...
-
[软考网络工程师真题]软考网络工程师模拟试题及答案(三)详细阅读
试题1从选择的答案中,选出应填入下面的叙述中_?_内的最确切的解答,把相应的编号写在答卷的对应栏内。在网络中使用的5类UTP作为传输介质,单段UTP的最长长度为_(1)_米,采用EIA568A布线标准时,可以达到的最高数据率是_(2)_Mbps STP与UTP的主要区别是_(3)_。一般而言,单模光...
-
【软考网络工程师中级】软考网络工程师复习资料及练习题(六)详细阅读
·多路复用技术能够提高传输系统利用率。常用的多路复用技术有_(1)_。将一条物理信道分成若干时间片,轮换的给多个信号使用,实现一条物理信道传输多个数字信号,这是_(2)_。将物理信道的总频带宽分割成若干个子信道,每个信道传输一路信号,这是_(3)_。在光纤中采用的多路复用技术是_(4)_,多路复用技...
-
[软考网络工程师模拟卷]2005软考网络工程师模拟试题及答案(二)详细阅读
数据通信中采取的纠错方式通常有两种,即丢弃重发和(1),丢弃重发方式中,当线路出错率较高时,其效率较高的控制协议时(2)。海明码的是属于(3)纠错方式中常用到的措施,这种方式一般适合于(4) 情况。在Go Back N ARQ协议中,若窗口大小用K位二进制表示,且分别WT和WR表示发送窗口大小和...
-
【软考网络工程师中级】软考网络工程师复习资料及练习题(五)详细阅读
第2章 计算机硬件基础知识复习题1单项选择题(1)中央处理器包括( )。A 运算器和控制器 B 累加器和控制器C 运算器和寄存器组 D 运算和控制系统答案:A。分析:中央处理器简称CPU,由运算器和控制器组成。(2)运算器的作用是( )。A 计算...
-
[软考网络工程师模拟卷]2005软考网络工程师模拟试题及答案(一)详细阅读
网络工程师模拟试题上(1) 若卫星信道的数据传输率为1Mbps,帧长为1000bit,利用卫星信道的两个站点从一方到另一方的传播时延为250ms。忽略确认帧长和处理时间则若帧的出错概率为0 1, 而假设应答帧不出现错误,当采用停等协议时,其协议效率是(1)。若采用连续ARQ协议,发送窗口Wt=7,接...
-
专升本模拟试题app_专升本微机原理模拟试题详细阅读
一、填空题(每空0 5分,共15分) 1 8086 CPU通过______________寄存器和______________寄存器能准确找到指令代码。 2 8086中地址 数据线分时复用,为保证总线周期内地址稳定,应配置___________,为提高总线驱动能力,应配置_____________。...
-
【软考网络工程师中级】软考网络工程师复习资料及练习题(四)详细阅读
试题一 阅读以下说明,回答问题1、问题2、问题3。[说明]随着网络应用的日益广泛,接入网络和边缘网络的需求也更加复杂多样,企业为了开展电子商务,必须实现与Internet的互联,路由器是实现这一互联网的关键设备,路由器可以位企业提供越来越多的智能化服务,包括安全性、可用性和服务质量(QoS)等。...
-
网络管理员面试试题及答案_2005年5月网络管理员试题及答案详细阅读
1.在答题卡的指定位置上正确写入你的姓名和准考证号,并用正规2B铅笔在你写入的准考证号下填涂准考证号。2.本试卷的试题中共有75个空格,需要全部解答,每个空格1分,满分75分。3.每个空格对应一个序号,有A、B、C、D四个选项,请选择一个最恰当的选项作为解答,在答题卡相应序号下填涂该选项。4.解答前...