首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。 【说明】 著名的四色定理指出任何平面区域均可以用4种颜色着色,使相邻区域着不同的颜色。本程序对给定的区域图找出所有可能的不超过4种颜色的着色方案。 【函数】 # in
阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。 【说明】 著名的四色定理指出任何平面区域均可以用4种颜色着色,使相邻区域着不同的颜色。本程序对给定的区域图找出所有可能的不超过4种颜色的着色方案。 【函数】 # in
admin
2012-12-10
46
问题
阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。
【说明】
著名的四色定理指出任何平面区域均可以用4种颜色着色,使相邻区域着不同的颜色。本程序对给定的区域图找出所有可能的不超过4种颜色的着色方案。
【函数】
# include <stdio.h>
#define N 10 /*要着色的N个区域*/
void output(int color[]) /*输出一种着色方案 color
的值为区域i所着颜色*/
{
int i;
for (i=0; i<N; i++)
printf("%4d", color
);
printf("\n");
}
int back(int *ip, int color[j] /*回溯*/
int c=4;
while (c==4)
{
if (*ip<=0)
return 0:
--(*ip);
c=(1);
color[*ip]=-1;
}
return c;
}
/*检查区域i,考查c种颜色的可能性 */
int colorOK(iht i, int c, int adj[][N], int color[])
{
int j;
for(j=0; j<i; j++)
if ((2))
return 0;
return 1;
}
/*为区域i选一种可着的颜色*/
int select(int i, int c, int adj[][N], int color[])
/*寻找各种着色方案 adj
[j]=1表示区域i与区域j不相邻*/
{
int k;
for (k=c; k<=4; k++) /*4种颜色*/
if (colorOK((3)))
return k;
return 0;
}
int coloring(int adj[][N])
{
int color[N], i, c, cnt;
for (i=0; i<N; i++) color
=-1:
i=c=0; cnt=0;
while (1)
[
if ((c=(4))==0)
{
c=back(&i, color);
if (c==0)
return cnt;
}
else
{
(5);
i++;
if(i==N)
{
output(color);
++cnt;
c=back(&i, color);
}
else
c=0;
}
}
}
void main()
{
int adj[N][N]={ {0, 1, 0, 1, 1, 1, 1, 1, 1, 1},
{1, 0, 1, 1, 0, 1, 1, 1, 1, 0},
{0, 1, 0, 1, 0, 1, 1, 0, 1, 1},
{1, 1, 1, 0, 1, 1, 0, 0, 1, 1},
{1, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{1, 1, 1, 1, 1, 0, 1, 0, 0, 1},
{1, 1, 1, 0, 0, 1, 0, 0, 1, 0},
{1, 1, 0, 0, 0, 0, 0, 0, 1, 1},
{1, 1, 1, 1, 0, 0, 1, 1, 0, 1},
{1, 0, 1, 1, 0, 1, 0, 1, 1, 0}
};
printf("共有%d 组解.\n", coloring(adj));
选项
答案
(1)color[*ip] (2)adj[i][j]==1&&color[j]==c (3)i,k,aaj,color (4)select(i,c+1,adj,color) (5)color[i]=c
解析
本题考查四色定理在C语言中的实现。
题目对四色定理做了解释,是指任何平面区域均可以用4种颜色着色,使相邻区域着不同的颜色。而题目中给定了区域图,要求找出所有可能的不超过4种颜色的着色方案。下面我们来分析程序。
第(1)空在函数back()中,这个函数的作用在注释中已经给出,是回溯,通过回溯,我们可以搜索出问题的所有解。此空是给变量c赋一个值,从程序中我们可以推断出变量c中存放的是区域中当前选中的颜色,而表示区域中当前选中的颜色的是数组color的当前值,因此,此空答案为“color[*ip]”。
第(2)空在函数colorOK()中,这个函数的作用在注释中也给出了,是检查区域i,考查c种颜色的可能性,这就要求判断每种颜色是否适合区域i,如果适合,则返回真。此空是函数体中一个条件判断语句的条件,如果条件不成立,则返回真,那么条件应该不能确定该颜色是否适合区域i。如果比较的是两个不相邻的位置,且两个位置的颜色都为当前色,那么肯定不能确定当前色是否适合区域i。因此,此空答案为“adj
[j]==1 &&color[j]==c”。
第(3)空在函数select()中,这个函数是为区域i选一种可着色,此空是函数colorOK()的参数,而这个函数有4个参数,分别是当前位置i、当前颜色和两个数组,因此,此空答案为“i,k,adj,color”。
第(4)空是给变量c赋值,变量c中存放的是当前要处理的颜色,而这条语句是条件判断执行语句,如果条件成立,则要回溯,那么说明不能确定当前区域的颜色,而为当前区域i选一种可着色是函数select()的功能,它返回0时,说明不能确定区域i的颜色。因此,此空答案为“select(i,c+1,adj,color)”。
第(5)空是在上空中条件不成立的情况下执行的语句,条件不成立说明确定了当前区域i的颜色,然后应该将该区域存为这种颜色,而变量c中存放的就是当前处理的颜色,因此,此空答案为“color
=c”。
转载请注明原文地址:https://kaotiyun.com/show/snjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
某企业去年四次核查的钢材库存量情况如下表:用加权平均法计算出该企业去年钢材平均库存量为()吨(中间各次核查数据的权都取1,首次与末次核查数据的权都取0.5)。
假设在Access中已经建立了“学生”表,表中包括“学号”、“姓名”、“性别”和“班级”等字段,如果要统计出每个班级的人数,那么在查询设计视图的“班级”的“总计”行和“学号”的“总计”行中应分别选择(65)。
人类传播信息的五大类媒体按其出现的先后顺序排列为________。
统计报表中常包括填表说明,以指导填表者填写。填表说明中一般不包括______。
某地区考试机构准备对信息处理技术员考试笔试成绩(BS)不低于45分,并且机考成绩(JK)为43~44分者进行重点复查。对考生成绩表进行筛选操作时,正确描述上述条件的表达式是(27)。
计算机受病毒感染主要是______。
删除Windows中某个应用程序的快捷方式,意味着(39)。
Windows系统的快捷方式确切的含义是______。
在Windows系统中,控制面板的功能不包括______。
以下(1)属于ASP.NET创建的网页程序文件。(1)A.index.aspB.index.htmC.index.aspx从以下备选答案内为程序中(3)~(7)处空缺选择正确答案。(3)A.requestB.res
随机试题
A、原发型肺结核B、血行播散型肺结核C、继发型肺结核D、结核性胸膜炎E、肺外结核60岁男性病人,既往有肺结核史及慢性咳嗽史,X线胸片发现左上肺大片密度增高影,内有透光区,左肺门上提,气管及纵隔左移,应诊断为
初生第一天的新生儿,血常规:血红蛋白160g/L,白细胞21×109/L,N0.60,L0.38,M0.02,HbF60%.,可见少量幼稚红细胞及幼稚中性粒细胞,血常规提示
某女,经来先期,量少或多,色红质稠,手足心热,舌红少苔,脉细数。首选方是
某女,30岁。因服用大量地西泮导致昏迷而入院。诊断为:地西泮急性中毒。此时除洗胃及其他支持疗法外,应给予特异性的解毒药是
甲公司获得了某医用镊子的实用新型专利,不久后乙公司自行研制出相同的镊子,并通过丙公司销售给丁医院使用。乙、丙、丁都不知道甲已经获得该专利。根据《专利法》的规定,下列选项中正确的是()。
适用于生态环境影响评价和预测的方法有()。
深基坑施工中,以提高土体的强度和土体的侧向抗力为主要目的的地基加固处理方法有()。
大面积烧伤病人由于严重脱水,使血钾升高,细胞外液渗透压升高,此时血液中()
在利用结构化开发生命周期法开发系统时,在整个开发过程中最重要的环节是()。
ThefloodinThailandresultedinthefollowingdamagesEXCEPT______.
最新回复
(
0
)