欢迎来到天天文库
浏览记录
ID:51485552
大小:336.50 KB
页数:7页
时间:2020-03-25
《桂-林-电-子-科-技-大-学-试-卷B答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、桂林电子科技大学试卷2016-2017学年第1学期课号课程名称网络与信息安全实验(B卷,开卷)适用班级(或年级、专业)13、14考试时间120分钟班级学号姓名题号一二三四五六七八九十成绩满分20303020100得分评卷人第一题、(20分)请编写一个函数fun(char*str ),其功能是:判别字符串str是否是回文,若是,返回1;否则返回0。例如:“12321”,“adcdcba”;而“hello”,“123”就不是回文。部分源程序如下:#include#include#includeint fun(char*str){
2、 int k; char *head,*rear; ...... return!(*head-*rear);} main( ){char s[100]; int flag; clrscr(); printf("pleaseenterstring"); gets(s); flag=fun(s); printf("%d",flag);}#include #include #include int fun(char *str){ int k; char *head,*rear; k=0; for(h
3、ead=str;*head!=' ';head++) k++; for(head=str,rear=head+k-1;head4、别用动态规划法、递归算法法设计0-1背包问题。要求:说明所使用的算法策略;写出算法实现的主要步骤;分析算法的时间。动态规划法:#includeintV[200][200];//前i个物品装入容量为j的背包中获得的最大价值intmax(inta,intb){if(a>=b)returna;elsereturnb;}intKnapSack(intn,intw[],intv[],intx[],intC){inti,j;for(i=0;i<=n;i++)V[i][0]=0;for(j=0;j<=C;j++)V[0][j]=0;for(i=0;i<=n-1;i++)for5、(j=0;j<=C;j++)for(intk=1;k<=j/w[i];k++)if(j=0;i--){if(V[i][j]>V[i-1][j]){x[i]=1;j=j-w[i];}elsex[i]=0;}printf("选中的物品是:");for(i=0;i6、//获得的最大价值intw[15];//物品的重量intv[15];//物品的价值intx[15];//物品的选取状态intn,i;intC;//背包最大容量n=5;printf("请输入背包的最大容量:");scanf("%d",&C);printf("输入物品数:");scanf("%d",&n);printf("请分别输入物品的重量:");for(i=0;i7、;printf("最大物品价值为:");printf("%d",s);}时间复杂度为O(n^3)递归算法:#includeusingnamespacestd;constintW=150;constintnumber=5;constintVALUE[]={60,20,10,60,100};constintWEIGHT[]={20,30,50,60,80};//functionMake(i{处理到第i件物品},j{剩余的空间为j}):integer;int
4、别用动态规划法、递归算法法设计0-1背包问题。要求:说明所使用的算法策略;写出算法实现的主要步骤;分析算法的时间。动态规划法:#includeintV[200][200];//前i个物品装入容量为j的背包中获得的最大价值intmax(inta,intb){if(a>=b)returna;elsereturnb;}intKnapSack(intn,intw[],intv[],intx[],intC){inti,j;for(i=0;i<=n;i++)V[i][0]=0;for(j=0;j<=C;j++)V[0][j]=0;for(i=0;i<=n-1;i++)for
5、(j=0;j<=C;j++)for(intk=1;k<=j/w[i];k++)if(j=0;i--){if(V[i][j]>V[i-1][j]){x[i]=1;j=j-w[i];}elsex[i]=0;}printf("选中的物品是:");for(i=0;i6、//获得的最大价值intw[15];//物品的重量intv[15];//物品的价值intx[15];//物品的选取状态intn,i;intC;//背包最大容量n=5;printf("请输入背包的最大容量:");scanf("%d",&C);printf("输入物品数:");scanf("%d",&n);printf("请分别输入物品的重量:");for(i=0;i7、;printf("最大物品价值为:");printf("%d",s);}时间复杂度为O(n^3)递归算法:#includeusingnamespacestd;constintW=150;constintnumber=5;constintVALUE[]={60,20,10,60,100};constintWEIGHT[]={20,30,50,60,80};//functionMake(i{处理到第i件物品},j{剩余的空间为j}):integer;int
6、//获得的最大价值intw[15];//物品的重量intv[15];//物品的价值intx[15];//物品的选取状态intn,i;intC;//背包最大容量n=5;printf("请输入背包的最大容量:");scanf("%d",&C);printf("输入物品数:");scanf("%d",&n);printf("请分别输入物品的重量:");for(i=0;i7、;printf("最大物品价值为:");printf("%d",s);}时间复杂度为O(n^3)递归算法:#includeusingnamespacestd;constintW=150;constintnumber=5;constintVALUE[]={60,20,10,60,100};constintWEIGHT[]={20,30,50,60,80};//functionMake(i{处理到第i件物品},j{剩余的空间为j}):integer;int
7、;printf("最大物品价值为:");printf("%d",s);}时间复杂度为O(n^3)递归算法:#includeusingnamespacestd;constintW=150;constintnumber=5;constintVALUE[]={60,20,10,60,100};constintWEIGHT[]={20,30,50,60,80};//functionMake(i{处理到第i件物品},j{剩余的空间为j}):integer;int
此文档下载收益归作者所有