题目详情
当前位置:首页 > 计算机考试 > 初级程序员
题目详情:
发布时间:2023-10-28 02:43:24

[简答题][说明]
“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1,W2,…,Wn,希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于s。
如下程序均能求得“背包问题”的一组解,其中,程序1—8是“背包问题”的递归解法,而程序1-9是“背包问题”的非递归解法。
[程序1—8]
#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((1))) /*考虑物品n被选择的情况*/
printf("4d"w[n]);return 1;
return(2); /*考虑不选择物品n的情况*/

main( )
if(knap(S,N))printf("OK!\n");
else printf("N0!/n");

[程序1-9]
#include<stdio.h>
#define N 7
#define S 15
typedef struct
int s;
int n;
int job;
KNAPTP;
int w[N+1]=0,1,4,3,4,5,2,7);
int knap(int S,int n);
main( )
if(knap(S,N))printf("OK!/n");
else printf("NO!/n");

int knap(int s,int n)
KNAPTP stack[100],x;
int top,k,rep;
x.s=s;x.n=n;
x.job=0:
top=1;stack[top]=x;<

更多"[说明] “背包问题”的基本描述是:有一个背包,能盛放的物品总重量为"的相关试题:

[简答题]【说明】
“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1;w2,……,wn,希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。
如下程序均能求得“背包问题”的一组解,其中程序4.1是“背包问题”的递归解法,而程序4.2是“背包问题”的非递归解法。
【程序4.1】
#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( (1) ))|
printf("%4d",w[n]);return 1;
return (2)

main( )
if(knap(S,N))printf("OK!/n");
else printf("NO!/n");

【程序4.2】
#include<stdio.h>
#define N 7
#define S 15
typedef struct
int s;
int n:
int job;
KNAPTP;
int w[N+1]=0,1,4,3,4,5,2,7;
int knap(int s,int n);
main( )
if(knap(S,N))printf("OK!/n");
else printf("NO!/n");
int knap(int s,int n)
KNAPTP stack[100],x;
int top,k,rep;
x.s=s;x.n=n;
x.job=0;
top=|;Stack[top]=x;<
[简答题]【说明】
“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1;w2,……,wn,希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。
如下程序均能求得“背包问题”的一组解,其中程序4.1是“背包问题”的递归解法,而程序4.2是“背包问题”的非递归解法。
【程序4.1】
#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( (1) ))|
printf("%4d",w[n]);return 1;
} return (2)
}
main( ){
if(knap(S,N))printf("OK!/n");
else printf("NO!/n");
}
【程序4.2】
#include<stdio.h>
#define N 7
#define S 15
typedef struct{
int s;
int n:
int job;
} KNAPTP;
int w[N+1]={0,1,4,3,4,5,2,7};
int knap(int s,int n);
main( ){
if(knap(S,N))printf("OK!/n");
else printf("NO!/n");}
int knap(int s,int n)
{ KNAPTP stack[100],x;
int top,k,rep;
x.s=s;x.n=n;
x.job=0;
top=|;Stack[top]=x;
k=0;
while(
[填空题][说明2]
[C程序代码2]是能求得“背包问题”的一组解的递归算法程序。“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有Ⅳ件物品,其重量分别为W1,W2,…,Wn,希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包中,即所选物品的重量之和等于S。
[C程序代码2]
BTREE;
#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 ( (1) ) )
printf( "4d",w[n] );
return 1 ;

return (2) ;
main ( )
if (knap(S,N) )
printf( "OK!/n" );
else
printf ( "N0 ! /n" ) ;

请将[C程序代码2]中空缺处的内容填补完整。
[简答题]
阅读以下技术说明和C语言代码,根据要求回答问题1至问题6。
【说明】
有两个进程(编号分别为0和1)需要访问同一个共享资源。为了解决竞争条件(race condition)的问题,需要实现一种互斥机制,使得在任何时刻只能有一个进程访问该共享资源。以下【C代码1】给出了一种实现方法。
【C代码1】
int flag[2]; /+flag数组,初始化为FALSE*/
Enter_Critical_Section(int my_task_id, int other_task_id)
{ while (flag[other_task_id]==TRUE); /*空循环语句*/
flag[my_task_id]=TRUE;
}
Exit_Critical_Section(int my_task_id, int other_task_id)
{ flag[my_task_id]=FALSE;
}
当一个进程要访问临界资源时,就可以调用【C代码1】给出的这两个函数。【C代码2】给出了进程0的一个例子。
【C代码2】
Enter_Critical_Section(0,1);
……使用这个资源……
Exit_Critical_Section(0,1);
……做其他的事情……
【问题1】
什么是临界资源(critical resource)请用100字以内的文字简要说明。

[单项选择]

利用贪心法求解0/1背包问题时, (26) 能够确保获得最优解。用动态规划方求解O/1背包问题时,将“用前i个物品来装容量是x的背包”的0/1背包问题记为KNAP(1,i,X)设fi(X)是KNAP(1,i,X)最优解的效益值,第j个物品的重量和放入背包后取得效益值分别为W和p(j=1~n),则依次求解f0(X),f1(X),…,fn(X)的过程中使用的递推关系式为 (27)

(26)处填()。
A. 优先选取重量最小的物品
B. 优先选取效益最大的物品
C. 优先选取单位重量效益最大的物品
D. 没有任何准则
[单项选择]某项目进行到第70天,挣值的三个基本参数分别为:BCWS为800万,BCWP为750万,ACWP为780万,下列说法中正确的是()。
A. 该项目进度滞后且费用超支
B. 该项目进度提前且费用节约
C. 该项目进度滞后但费用节约
D. 该项目进度提前但费用超支
[单项选择]《中国药典》2010版规定平均重量在1.0-3.0g的栓剂,其重量差异限度为()
A. ±5.0%
B. ±7.5%
C. ±10%
D. ±12.5%
E. ±15%
[判断题]如买卖合同中未具体约定货物重量以何种方式计量,依据国际贸易惯例,应以货物毛重计算其重量。()

我来回答:

购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
推荐91天
¥36.8
¥80元
31天
¥20.8
¥40元
365天
¥88.8
¥188元
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《购买须知》
立即支付 系统将自动为您注册账号
请使用微信扫码支付

订单号:

请不要关闭本页面,支付完成后请点击【支付完成】按钮
  • 支付完成
  • 取消支付
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码