




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
桂 林 电 子 科 技 大 学 试 卷 20162017 学年第 1 学期 课号 课程名称 网络与信息安全实验( B 卷 ,开卷)适用班级(或年级、专业) 13、14 考试时间 120 分钟 班级 学号 姓名 题 号一二三四五六七八九十成绩满 分20303020100得 分评卷人第一题、(20分)请编写一个函数fun(char *str),其功能是:判别字符串str是否是回文,若是,返回;否则返回。例如:“12321”,“adcdcba”;而“hello”,“123”就不是回文。部分源程序如下:#include #include #include intfun(char *str)intk;char*head,*rear;return!(*head-*rear);main() chars100;intflag;clrscr();printf(n please enter stringn);gets(s);flag=fun(s);printf(%d,flag);#include#include#includeintfun(char*str)intk;char*head,*rear;k=0;for(head=str;*head!=0;head+)k+;for(head=str,rear=head+k-1;headrear;head+,rear-)if(head=rear)continue;elsebreak;return!(*head-*rear);voidmain()chars100;intflag;/clrscr();printf(npleaseenterstringn);gets(s);flag=fun(s);printf(%d,flag);第二题、(30分)分别用动态规划法、递归算法法设计0-1背包问题。要求:说明所使用的算法策略;写出算法实现的主要步骤;分析算法的时间。动态规划法:#includeint V200200;/前i个物品装入容量为j的背包中获得的最大价值int max(int a,int b) if(a=b) return a; else return b;int KnapSack(int n,int w,int v,int x,int C) int i,j; for(i=0;i=n;i+) Vi0=0; for(j=0;j=C;j+) V0j=0; for(i=0;i=n-1;i+) for(j=0;j=C;j+)for(int k=1;k=j/wi;k+) if(j=0;i-) if(VijVi-1j) xi=1; j=j-wi; else xi=0; printf(选中的物品是:n); for(i=0;in;i+) printf(%d ,xi); printf(n); return Vn-1C; void main() int s;/获得的最大价值 int w15;/物品的重量 int v15;/物品的价值 int x15;/物品的选取状态 int n,i; int C;/背包最大容量 n=5; printf(请输入背包的最大容量:n); scanf(%d,&C); printf(输入物品数:n); scanf(%d,&n); printf(请分别输入物品的重量:n); for(i=0;in;i+) scanf(%d,&wi); printf(请分别输入物品的价值:n); for(i=0;in;i+) scanf(%d,&vi); s=KnapSack(n,w,v,x,C); printf(最大物品价值为:n); printf(%dn,s); 时间复杂度为O(n3)递归算法:#include using namespace std; const int W = 150; const int number = 5; const int VALUE = 60, 20, 10, 60, 100; const int WEIGHT = 20, 30, 50, 60, 80; /function Make( i 处理到第i件物品 , j剩余的空间为j) :integer; int Make(int i, int j) int r1 = 0; int r2 = 0; int r = 0; if (i = -1) return 0; if(j = WEIGHTi) /背包剩余空间可以放下物品 i r1 = Make(i-1,j - WEIGHTi) + VALUEi; /第i件物品放入所能得到的价值 r2 = Make(i-1,j); /第i件物品不放所能得到的价值 r = (r1r2)?r1:r2; return r; void main() int maxValue = Make(number-1, W); coutmaxValue: maxValueendl; 第三题、(30分)通过键盘输入一个高精度的正整数n(n的有效位数240),去掉其中任意s个数字后,剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。【样例输入】178543S=4【样例输出】13#includeint maxNum(char num240) int i,max=0,k; for(i=0;numi!=0;i+) if(max(int)numi) max=(int)numi; k=i; return k;void move(char num240,int n) int i;for(i=n;numi+1!=0;i+) numi=numi+1;numi=0;void fun(int s,char num240)while(s-)move(num,maxNum(num);void main() char num240; int s,i;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025第十三届贵州人才博览会黔南州事业单位引才181人考前自测高频考点模拟试题及答案详解(全优)
- 2025上海市绿化和市容管理局部分直属事业单位招聘17人考试参考试题及答案解析
- 2025安徽池州市贵池区招聘教师24人模拟试卷及答案详解1套
- 小学资产移交方案范本
- 知识产权保护法规在地板行业应用-洞察及研究
- 2025年潍坊护理职业学院公开招聘高层次(高技能)人才(10人)模拟试卷及完整答案详解一套
- 2025年渭南光明电力集团有限公司招聘(3人)模拟试卷附答案详解(突破训练)
- 人工智能伦理的探讨-洞察及研究
- 2025内蒙古能源集团有限公司法律合规与企业管理部副经理岗位招聘1人考前自测高频考点模拟试题及答案详解(夺冠系列)
- 2025年安康市市本级就业见习岗位(458人)考前自测高频考点模拟试题有完整答案详解
- 窗帘采购项目方案投标文件(技术方案)
- 2025年高考真题-化学(湖南卷) 含答案
- 学堂在线 唐宋词鉴赏 期末考试答案
- 果树认领活动方案
- 第9课《天上有颗“南仁东星”》教学设计 2025-2026学年统编版八年级语文上册
- 2025年全球肿瘤发病率排名分析
- 心脑血管健康知识讲座
- 麻醉复苏室病人的护理查房
- 小学python竞赛试题及答案
- 下浮率合同协议
- 2025年自考《艺术概论》考试复习题库(含答案)
评论
0/150
提交评论