阅读以下说明和流程图,回答问题,并将解答填入对应栏内。【说明】求解约瑟夫环问题。算法分析:n个士兵围成一圈,给他们依次编号,班长指定从第w个士兵开始报数,报到第s个士兵出列,依次重复下去,直至所有士兵都出列。【流

题目

阅读以下说明和流程图,回答问题,并将解答填入对应栏内。

【说明】

求解约瑟夫环问题。算法分析:n个士兵围成一圈,给他们依次编号,班长指定从第w个士兵开始报数,报到第s个士兵出列,依次重复下去,直至所有士兵都出列。

【流程图】

【问题】

将流程图中的(1)~(5)处补充完整。

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

【单选题】从问题解决角度理解“不想当将军的士兵不是好士兵”,如何思考?

A.要有更高职位的目标人才有动力

B.用将军的思维审视,用士兵的执行去落实

C.只有做好士兵才有可能当好将军

D.士兵与将军是一个连续体


A

第2题:

阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。
【说明】
某企业网络拓扑如图1-1所示,A~E是网络设备的编号。










答案:
解析:
【问题1】参考答案:1.B,2.A,3.C 4.D【问题2】5.ethernet 1 6、59.74.221.254【问题3】7) C.deny 8、A 9.F【问题4】10)192.168.4.1
11)192.168.100.0 12)设置接口的类型是trunk
【解析】
【问题1】试题分析:这是一道简单的概念题,考察我们对企业园区网络的基本拓扑结构的了解。通常的企业为了确保内部网络的安全,会设置防火墙,防火墙有3个区域,外网,内网和DMZ区。DMZ通常用于存放各种服务器。因此首先可以选出B这个位置是防火墙,A用于连接Internet,是路由器。DMZ区内部有多台服务器,需要使用交换机连接。【问题3】试题分析:这是网络工程师考试第一次考华为的设备配置,而我们考前准备的都是ios的命令。那这道题是不是很难呢,其实这道题非常简单,只要我们有IOS的命令经验,这道题完全可以自己凭经验做出来,题目出题也是以选择题的形式,因此更加容易,对于没有用过华为设备的考生来说,也是非常简单的。
【问题4】试题分析:这道题同样是基本的配置,掌握基本命令即可。

第3题:

阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
【说明】
n-皇后问题是在n行n列的棋盘上放置n个皇后,使得皇后彼此之间不受攻击,其规则是任意两个皇后不在同一行、同一列和相同的对角线上。
拟采用以下思路解决n-皇后问题:第i个皇后放在第i行。从第一个皇后开始,对每个皇后,从其对应行(第i个皇后对应第i行)的第一列开始尝试放置,若可以放置,确定该位置,考虑下一个皇后;若与之前的皇后冲突,则考虑下一列;若超出最后一列,则重新确定上一个皇后的位置。重复该过程,直到找到所有的放置方案。
【C代码】
下面是算法的C语言实现。
(1)常量和变量说明
pos:一维数组,pos[i]表示第i个皇后放置在第i行的具体位置
count:统计放置方案数
i,j,k:变量
N:皇后数



【问题1】(10分)

根据以上说明和C代码,填充C代码中的空(1)~(5)。

【问题2】(2分)

根据以上说明和C代码,算法采用了(6)设计策略。

【问题3】(3分)

上述C代码的输出为:(7)。


答案:
解析:
【问题1】(10分)
(1) pos[i]==pos[k]
(2) j=1
(3) isplace(pos,j)==0
(4) j(5) j=j-1|
【问题2】(2分)
回溯法
【问题3】(3分)
方案1:2 4 1 3
方案2:3 1 4 2

第4题:

500名士兵排成一列横队。第一次从左到右1、2.3、4、5(1至5)依次报数;第二次反过来从右到左1、2、3、4、5、6(1至6)依次报数,既报5又报6的士兵有多少名( )

A.16

B.17

C.15

D.18


正确答案:B
500+6=83……2,所以从右至左报数时,从左边第一个开始,报的数依次是2、1、6、5、4、3、2、1、6…5 4 3、2、1、6、…,可以看出从左至右,第15个人报的数是6(从左至右报数时,此人报5),每隔5x6=30人循环一次,由15+30(n一1)≤500解得n≤16,则n+1=17,故有17人既报5又报6。

第5题:

阅读以下说明,回答问题,将解答填入对应的解答栏内。

. [说明] 请完成流程图以描述在数据A(1)至A(10)中求最大数和次大数的程序的算法。并将此改成PAD图。该算法的流程图如下图:


正确答案:(1)max2 =A(1) mex1 =A(2) (2)i< =10 (3)max1 =A(i)1 max2 = max1 (4)i=i+1
(1)max2 =A(1) mex1 =A(2) (2)i< =10 (3)max1 =A(i)1 max2 = max1 (4)i=i+1 解析:本题的算法思想是:先输入A(1)到A(10)的值,然后判断前两个数的大小。用变量max1存储最大数,用变量max2.存储次大数。然后逐个读入数据,分别和max1,max2比较,保证最大的存入max1,次大的存入max2。

第6题:

阅读下面的说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。

[说明]

阅读以下说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。

windows Server 2003是一个多任务多用户的操作系统,能够以集中或分布的方式实现各种应用服务器角色,是目前应用比较广的操作系统之一。

Windows内置许多应用服务功能,将下表中(1)~(5)处空缺的服务器名称填写在答题纸对应的解答栏内。

(1)


正确答案:域名(DNS)服务器
域名(DNS)服务器

第7题:

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

【说明】

设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,则此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去,直到所有的人都出圈为止。

现要求按出圈次序,每10人一组,给出这n个人的顺序表。

设n=100,s=1,m=10。

(1)将1到n个人的序号存入一维数组p中;

(2)若第i个人报数后出圈,则将p置于数组的倒数第i个位置上,而原来第i+1个至倒数第i个元素依次向前移动一个位置:

(3)重复第(2)步,直至圈中只剩下p[1]为止。

include<stdio.h>

define N 100

define S 1

define M 10

void main()

{

int p[100],n,s,m;

m=M;

n=N;

s=S;

int i,j,s1,w;

s1=s;

for(i=1;(1);i++)

(2)=i;

for(i=n;i>=2;i--)

{

s1=(3);

if(s1==0)s1=i;

w=(4);

for(j=s1;j<i;j++)

p[j-1]=p[j];

p[i-1]=(5);

printf("%4d",p[i])}

}


正确答案:(1)i=n (2)p[i-1] (3)(s1+m-1)%i (4)p[s1-1] (5)w
(1)i=n (2)p[i-1] (3)(s1+m-1)%i (4)p[s1-1] (5)w 解析:题目中给出了n个人出圈问题的具体实现方法,要求用C语言来实现,结合题目中给出的方法,我们来具体分析程序。
第(1)空是循环的判断条件,根据题目的要求和程序来看,这个循环应该用来把n个人的编号存放到数组p中,总共是n个人,那么循环上界应该是n,从程序中可以知道循环变量是i,因此此空答案为i=n。
第(2)空在循环体中,从上面的分析已经知道,这个循环实现将n个人的编号存放到数组p中,第一个人的编号应该存放到数组下标为0的位置,而第二个人的编号就存放到数组下标为1的位置,依此类推。因此此空答案为p[i-1]。
第(3)空在另一个循环体中,结合整个程序来看,不难推断出此循环体应该用来实现题目中的第二个与第三个要求。此空是用来给变量s1赋一个值,从后面的程序中可以推断出,变量s1中存放的是判断当前报数的人是否该出圈,如果为0,则出圈,因此此空答案为(s1+m-1)%i。
第(4)空是给一个变量w赋一个值,从此空上面的程序我们知道找到了要出圈的人,根据题目要求,应将出圈人的编号置于数组的倒数第i个位置上,在将其存放到倒数第i个位置时肯定要移动数组中的元素,而元素的移动是以当前位置为前提的,那么需要将当前位置人的编号先保存到变量w中,而当前位置人的编号存放在数组,p[s1-1]中,因此此空答案为p[s1-1]。
第(5)空很明显是给p[i-1]赋一个值,而p[i-1]正好是数组的倒数第i个位置,应该用来存放当前出圈人的编号,而编号在变量w中,因此此空答案为w。

第8题:

阅读以下说明,回答问题1~4,将解答填入对应的解答栏内。

[说明] 输入1个长整型,求各位数字的平方和。

例如:输入-123,输出14。

include <stdio. h>

void main( )

{ int digit;

long in , s;

seanf(" % Id", &in );

(1);

(2);

while(in >0) {

(3);

s = s + digit* digit;

(4);

}

pfinff( "sum = % 1dn", s );

}


正确答案:1.if(in 2.s=0 3.digit=in%10 4.in=in/10
1.if(in 2.s=0 3.digit=in%10 4.in=in/10 解析:本题的关键一是要考虑负数,还要将各个位数用模10的方法单独取出来。

第9题:

500名士兵排成一列横队。第一次从左到右1、2、3、4、5(1至5)依次报数;第二次反过来从右到左1、2、3、4、5、6(1至6)依次报数,既报5又报6的士兵有多少名?

A.16

B.17

C.15

D.18


正确答案:B
500÷6=83……2,所以从右至左报数时,从左边第一个开始,报的数依次是2、1、6、5、4、3、2、1、6、5、4、3、2、1、6、…,可以看出从左至右,第15个人报的数是6(从左至右报数时,此人报5),每隔5×6=30人循环一次,由15+30(n-1)≤500解得n≤16,则n+1=17,故由17人既报5又报6。