试题查看

首页 > 软件水平考试 > 试题查看
【分析解答题】

【说明】
【C程序1】用回溯算法来产生由0或1组成的2m个二进位串,使该串满足以下要求。
视串为首尾相连的环,则由m位二进制数字组成的2m个子序列,每个可能的子序列都互不相同。例如,如果m=3,在串11101000首尾相连构成的环中,由3位二进制数字组成的每个可能的子序列都在环中恰好出现一次,它们依次是111,110,101,010,100,000,001,011,如图2-14所示。

【C程序2】是求“背包问题”的一组解的递归算法程序。“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为s,设有n件物品,其重量分别为w1,w2,…,wn,希望从n件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于s。
【C程序1】
#DEFinE n 1024
#DEFinE m 10
int B [n+m-1]
int EquAl(int k, int j int m) {
int i;
For(i=0; i<m; i++
iF ( B[ k + i]{{u}} (1) {{/u}})
rEturn 0;
rEturn 1; }
int ExChAngE (int k, int m, int v){
whilE ( B[ k + m - 1 ) == v ) {
B[ knCm--i]=! v{{u}} (2) {{/u}};
}
{{u}} (3) {{/u}}=v;
rEturn k;
}
init ( iht v) {
int k
For( k = 0;k = n + m - 1;k++)
B[k] = v;
}
mAin ( ) {
int m, v, k, n, j;
printF (’EntEr m (l<m<10) , v v=0, v=1)\ n") ;
sCAnF (" %D%D , &m, &v);
n = 0x01 << m;
init (!v);
k=0;
whilE({{u}} (4) {{/u}}< n)
For (j=0;j<k;j++)
iF (EquAl (k, j, m)) {
k=ExChAngE (k, m, v)
j={{u}} (5) {{/u}};
}
For (k= 0 ;k<n ;k++ )
print{ (" %D\ n" , B[k]) ;
}
}
【C程序2】
#inCluDE<stDio. h>
#DEFinE n 7
#DEFinE s 15
int w[n+1] = {0, 1, 4, 3, 4, 5, 2, 7};
int knAp (int s, int n){
iF (s == 0)
rEturn 1;
iF (s<0 || (s>0 && n<1))
rEturn 0;
iF ({{u}} (6) {{/u}})) {
printF( "4D", w[n]);
rEturn 1;
}
rEturn{{u}} (7) {{/u}}
}
mAin ( ) {
iF (knAp (s, n)
printF("ok:\n");
ElsE
printF("no!\n")
}

查看答案解析

参考答案:

正在加载...

答案解析

正在加载...

根据网考网移动考试中心的统计,该试题:

0%的考友选择了A选项

0%的考友选择了B选项

0%的考友选择了C选项

0%的考友选择了D选项

你可能感兴趣的试题

【说明】设有一个带表头结点的双向循环链表L,每个结点有4个数据成员:指向前驱结点【说明】源程序文件vectorClass.cpp,其中定义了用于表示向量的类ve【说明】下面是一个Applet程序,其功能是输出已定义好的两个变量x和chr。请阅读以下某客房管理系统的算法说明和程序流程图,根据要求回答问题1至问题4。【算法【说明】以下【C程序】能将自然数1,2,…,N2按蛇形方式逐个存入N阶矩阵。换言【说明】某超市集团为发展业务向社会公开招聘N个工种的工作人员,每个工种各有不同的