首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
[说明] “背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1、w2、…、wn,希望从N件物品中选出若干件物品,并使所选物品的重量之和恰能放入该背包,即所选物...
查看本题答案
包含此试题的试卷
初级程序员《填空集》真题及答案
点击查看
你可能感兴趣的试题
阅读下列说明回答问题1和问题2将解答填入对应栏内 [说明] 0-1背包问题可以描述为有
试题四 阅读下列说明回答问题1至问题2将解答填入答题纸的对应栏内 【说明】 0-1
阅读下列说明回答问题1和问题2将解答填入对应栏内 [说明] 0-1背包问题可以描述为有
阅读下列说明回答问题1和问题2将解答填入对应栏内 [说明] 0-1背包问题可以描述为有
考虑下述背包问题的实例有5件物品背包容量为100每件物品的价值和重量如下所示并已经按照物品的单
605和630
605和605
430和630
630和430
阅读下列说明回答问题1和问题2将解答填入对应栏内 [说明] 0-1背包问题可以描述为有
试题四 阅读下列说明回答问题1至问题2将解答填入答题纸的对应栏内 【说明】 0-1
阅读下列说明回答问题1和问题2将解答填入对应栏内 [说明] 0-1背包问题可以描述为有
关于背包加密算法的描述中正确的是
保证绝对安全
物品总重量公开
背包问题属于NP问题
属于对称加密算法
一次背包已不安全
考虑下述背包问题的实例有5件物品背包容量为100每件物品的价值和重量如下所示并已经按照物品的单位重量
分治
贪心
动态规划
回溯
背着背包长途自助旅行的人被称为背包客backpacker江西省就有一位小背包客虽然只是一个4岁的小女
阅读下列说明回答问题1和问题2将解答填入对应栏内 [说明] 0-1背包问题可以描述为有
【说明】 背包问题的基本描述是有一个背包能盛放的物品总重量为S设有N件物品其重量分别为w1w2wn
[说明2][C程序代码2]是能求得背包问题的一组解的递归算法程序背包问题的基本描述是有一个背包能盛放
阅读下列说明回答问题1和问题2将解答填入对应栏内 [说明] 0-1背包问题可以描述为有
阅读下列说明回答问题1和问题2将解答填入对应栏内 [说明] 0-1背包问题可以描述为有
阅读下列说明回答问题1和问题2将解答填入对应栏内 [说明] 0-1背包问题可以描述为有
阅读下列说明回答问题1和问题2将解答填入对应栏内 [说明] 0-1背包问题可以描述为有
阅读下列说明回答问题1和问题2将解答填入对应栏内 [说明] 0-1背包问题可以描述为有
阅读下列说明回答问题1和问题2将解答填入对应栏内 [说明] 0-1背包问题可以描述为有
热门试题
更多
[说明]函数Node*differenceAB用于求两个集合之差C=A-B即当且仅当e是A中的一个元素但不是B中的元素时e是C中的元素集合用有序链表实现用一个空链表表示一个空集合表示非空集合的链表根据元素之值按递增排列执行C=A-B之后表示集合A和B的链表不变若结果集合C非空则表示其链表根据元素之值按递增排列函数append用于在链表中添加结点[函数]typedefstructnodeintelement;structnode*link;Node;Node*A*B*C;Node*appendlasteNode*last;inte;last->link=Node*mallocsizeofNode;last->link->element=e;returnlast->link;Node*differenceABNode*A*B;Node*c*last;C=last=Node*mallocsizeofNode;while1ifA->element<B->elementlast=appendlastA->element;A=A->link;elseif2A=A->link;B=B->link;else3;while4last=appendlastA->element;A=A->link;5;last=C;C=C->link;freelast;returnC;
[说明]设计一程序输入16个整数到一个数组中将数组位序颠倒重新排序使每个数字不再按原j的顺序排列而是按j的二进制数颠倒后得出的数排列例如将第1个0001数与第8个1000数交换将第3个数0011与第12个数1100交换[C++程序]#include<iostream.h>#defineSIZE16#defineSWAPabtemper=a;a=b;b=temper;voidmalnintdata[SIZE];intncout<<请输入<<SIZE<<个整数;forn=0;n<SIZE;n++1;intj=0m;forinti=0;i<n;i++ifj>i2;3;while4&&j>=mj-=m;m>>=15;cout<<endl<<排序后;forn=0;n<SIZE;n++cout<<data[n];<<;
[说明]八皇后问题是指求解如何在国际象棋8*8棋盘上无冲突地放置八枚皇后棋子因为在国际象棋里皇后的移动方式是横竖交叉所以在任意一个皇后所在位置的水平竖赢和斜45线上都不能有其他皇后棋子的存在一个完整无冲突的八皇后棋子分布称为八皇后问题的一个解本程序实现了八枚皇后棋子在8*8棋盘上无冲突的放置[函数]#include<math.h>#include<stdio.h>#defineMAX8/*棋子数及棋盘大小MAX*MAX*/intboard[MAX];/*印出结果*/voidshow_resultinti;fori=0;i<MAX;i++printf%d%diboard[i];printf/n;/*检查是否在同一直横斜线上有其他棋子*/intcheck_crossintninti;fori=0;i<n;i++if1return1;return0;/*放棋子到棋盘上*/voidput_chessintninti;fori=0;i<MAX;i++board[n]=i;if2if3show_result;/*找到其中一种放法了印出结果*/else4;voidmainclrscr;putsThepossibleplacementsare:;5;puts/nPressanykeytoquit;getch;return
[说明]设有一个带头结点的双向循环链表L每个结点有4个数据成员指向前驱结点的指针prior指向后继结点的指针next存放数据的成员data和访问频度freq所有结点的freq初始时都为0每当在链表上进行一次L.Locatex操作时令元素值x的结点的访问频度freq加1并将该结点前移链接到现在它的访问频度相等的结点后面使得链表中所有结点保持按访问频度递减的顺序排列以使频繁访问的结点总是靠近表头[函数]voidLocateint&x<结点类型说明>*p=first->next;whilep!=first&&1p=p->next;ifp!=first2;<结点类型说明>*current=p;current->prior->next=current->next;current->next->prior=current->prior;p=current->prior;whilep!=first&&3p=p->prior;current->next=4;curren->prior=p;p->next->prior=current;p->next=5;elseprintfsorry.Notfind!/n;
[函数2.1说明]编制一个字符替换函数repchar*schar*s1char*s2实现将已知字符串s中所有属于字符串s1中的字符都用字符串s2中的对应字符代替[函数21]#include<stdio.h>#defineMAX50repchar*schar*s1char*s2char*p;for;*s;s++forp=s1;*p&&1;p++;/*检查当前字符是否在字符串s1中出现*/if*p2;/*当前字符在字符串s1中出现用字符串s2中的对应字符代替s中的字符*/[函数2.2说明]函数Insert_Sortintn是一个直接插入排序的程序其基本思想是假设待排序的记录存放在数组R[1n]中初始时R[1]自成一个有序区无序区为R[2n]从i=2起直至i=n为止依次将R[i]插入当前的有序区R[1i-1]中生成含n个记录的有序区[函数2.2]#defineMAX255intR[MAX];voidInsert_Sortintnintij;fori=2;i<=n;i++if3R[0]=R[i];j=i-1;/*R[0]是哨兵且是R[i]的副本*/do/*从右向左在有序区R[1i-1]中查找R[i]的插入位置*/4;/*将关键字大于R[i]的记录后移*/j--;while5;/*当R[i]≥R[j]时终止*/R[j+1]=R[0]j/*R[i]插入到正确的位置上*/
[说明]下面程序定义了一个类Point及其成员函数然后从类Point派生出类Circle及其成员函数[Java程序]classMainjavapublicstaticvoidmainStringarg[]Circlec=newCircle2.53.74.3;System.out.printlnXcoordinateis+c.getX+/nRadiusis:+c.getRadius;1;//设置新的圆心22PointpRef=c;System.out.println/nCircleprintedasapointis:+[+2+.+3+]:classPointprotecteddoublexy;publicPointdoubleadoublebx=a;y=b;voidsetPointdoubleadoublebx=a;y=b;finaldoublegetXreturnx;finaldoublegetYreturny;classCircle4protecteddoubleradius;publicCircledoublerdoubleadoubleb5;radius=r;voidsetRadiusdoublerradius=r;finaldoublegetRadiusreturnradius;finaldoubleareareturn3.14159*radius*radius;
[说明]假设银行整存整取存款不同期限的月息利率分别为0.63%1年0.66%2年0.69%3年0.75%5年0.84%8年其中利息=本金*月息利率*12*存款年限现在某人手中有2000元钱请通过计算选择一种存钱方案使得钱存入银行20年后得到的利息最多假定银行对超过存款期限的那一部分时间不付利息设2000元存20年其中1年存i1次2年存i2次以此类推则到期时存款人应得到的本利合计为2000*1+rate1i1*1+rate2i2*l+rate3i3*l+rate5i5*l+rate8i8其中rateN为对应存款年限的利率年限还有如下限制条件0≤i8≤20≤i5≤20-8*i8/50≤13≤20-8*i8-5*i5/30≤i2≤20-8*i8-5*i5-3*i3/20≤i1=20-8*i8-5*i5-3*i3-2*i2用穷举法穷举出所有的i8i5i3i2i1代入求本利的公式计算出最大值[函数]#include<stdio.h>#include<math.h>voidmaininti8i5i3i2i1n8n5n3n2n1;floatmax=0term;clrscr;fori8=0;i8<3;i8++/*穷举所有可能的存款方式*/fori5=0;i5<=20-8*i8/5;i5++fori3=0;1;i3++fori2=0;2;i2++i1=20-8*18-5*i5-3*i3-2*12:3;/*计算到期时的本利合计*/if45;n1=i1;n2=i2;n3=i3;n5=i5;n8=i8;printfFormaxinumprofitheshouldsosavehismoneyinabank:/n;printfmadefixeddepositfor8year:%dtimes/nn8;printfmadefixeddepositfor5year:%dtimes/nn5;printfmadefixeddepositfor3year:%dtimes/nn3;printfmadefixeddepositfor2year:%dtimes/nn2;printfmadefixeddepositfor1year:%dtimesYnn1;printfToa1:%.2f/nmax;/*输出存款方式*/puts/nPressanykeytoquit...;getch;
[说明]下面程序计算正方体球体和圆柱体的表面积和体积[C++程序]#include<iostream.h>classcontainerprotected:doubleradius;publiccontainerdoubleradiuscontainer::radius=radius;1;2;;classcube:3publiccubedoubleradius::containerradius;doublesurface_areareturnradius*radius*6;doublevolumereturnradius*radius*radius;;classsphere:publiccontainer4;doublesurface_areareturn4*3.1416*radius*radius;doublevolumereturn3.1416*radius*radius*radius*4/3;;classcylinder:publiccontainerdoubleheight;publiccylinderdoubleradiusdoubleheight:containerradius5;doublesurface_areareturn2*3.1416*radius*height+radius;doublevolumereturn3.1416*radius*radius*height;;voidmaincontainer*p;cubeobj15;sphereobj25;cylinderobj355;p=&obj1;cout<<正方体表面积<<p->surface_area<<endl;cout<<正方体体积<<p->volume<<endl;p=&obj2;cout<<球体表面积<<p->surface_area<<endl;cout<<球体体积<<p->volume<<endl;p=&obj3;cout<<圆柱体表面积<<p->surface_area<<endl;cout<<圆柱体体积<<p->volume<<endl;
[函数2.1说明]编制一个字符替换函数repchar*schar*s1char*s2实现将已知字符串s中所有属于字符串s1中的字符都用字符串s2中的对应字符代替[函数21]#include<stdio.h>#defineMAX50repchar*schar*s1char*s2char*p;for;*s;s++forp=s1;*p&&1;p++;/*检查当前字符是否在字符串s1中出现*/if*p2;/*当前字符在字符串s1中出现用字符串s2中的对应字符代替s中的字符*/[函数2.2说明]函数Insert_Sortintn是一个直接插入排序的程序其基本思想是假设待排序的记录存放在数组R[1n]中初始时R[1]自成一个有序区无序区为R[2n]从i=2起直至i=n为止依次将R[i]插入当前的有序区R[1i-1]中生成含n个记录的有序区[函数2.2]#defineMAX255intR[MAX];voidInsert_Sortintnintij;fori=2;i<=n;i++if3R[0]=R[i];j=i-1;/*R[0]是哨兵且是R[i]的副本*/do/*从右向左在有序区R[1i-1]中查找R[i]的插入位置*/4;/*将关键字大于R[i]的记录后移*/j--;while5;/*当R[i]≥R[j]时终止*/R[j+1]=R[0]j/*R[i]插入到正确的位置上*/
[说明]下面流程图完成快速排序算法快速排序法通过分割的方法来进行排序其本质是把数组分成左右两个部分在左边部分只保存数组中小于某个特定数值的那些数据而在右边的部分保存数组中大于这个特定数值的那些数据在两个部分之间插入这个特定的数值当快速排序算法对数组的分割完成后这个数值就在正确的排序位置了这时它就没有必要继续和后面的数据比较了于是快速排序法产生了两个单独的数组如果这两个数组不相关单独排序于是又产生了两个排序的单独数组对这两个单独的表进行快速排序重复上述步骤直到所有的数据都处在各自适当的位置注快排函数定义为rundataleftrightleft和right分别为数组上下界[问题]将流程图的1~5处补充完整
[说明]八皇后问题是指求解如何在国际象棋8*8棋盘上无冲突地放置八枚皇后棋子因为在国际象棋里皇后的移动方式是横竖交叉所以在任意一个皇后所在位置的水平竖赢和斜45线上都不能有其他皇后棋子的存在一个完整无冲突的八皇后棋子分布称为八皇后问题的一个解本程序实现了八枚皇后棋子在8*8棋盘上无冲突的放置[函数]#include<math.h>#include<stdio.h>#defineMAX8/*棋子数及棋盘大小MAX*MAX*/intboard[MAX];/*印出结果*/voidshow_resultinti;fori=0;i<MAX;i++printf%d%diboard[i];printf/n;/*检查是否在同一直横斜线上有其他棋子*/intcheck_crossintninti;fori=0;i<n;i++if1return1;return0;/*放棋子到棋盘上*/voidput_chessintninti;fori=0;i<MAX;i++board[n]=i;if2if3show_result;/*找到其中一种放法了印出结果*/else4;voidmainclrscr;putsThepossibleplacementsare:;5;puts/nPressanykeytoquit;getch;return
[说明]下面程序定义了一个类Point及其成员函数然后从类Point派生出类Circle及其成员函数[Java程序]classMainjavapublicstaticvoidmainStringarg[]Circlec=newCircle2.53.74.3;System.out.printlnXcoordinateis+c.getX+/nRadiusis:+c.getRadius;1;//设置新的圆心22PointpRef=c;System.out.println/nCircleprintedasapointis:+[+2+.+3+]:classPointprotecteddoublexy;publicPointdoubleadoublebx=a;y=b;voidsetPointdoubleadoublebx=a;y=b;finaldoublegetXreturnx;finaldoublegetYreturny;classCircle4protecteddoubleradius;publicCircledoublerdoubleadoubleb5;radius=r;voidsetRadiusdoublerradius=r;finaldoublegetRadiusreturnradius;finaldoubleareareturn3.14159*radius*radius;
[说明]函数diff的功能是根据两个由整数都大于-32768按升序构成的单链表L1和L2分别由AB指向构造一个单链表L3由*r指向要求L3中的所有整数都是L1并且不是L2中的整数还要求L3中的所有整数都两两不等[函数]#include<malloc.h>typedefstructnodeintd;structnode*nextNode;voiddiffNode*ANode*BNode**rintlastnum;Node*p;*r=NULL;if!Areturn;while1ifA->d
[函数2.1说明]编制一个字符替换函数repchar*schar*s1char*s2实现将已知字符串s中所有属于字符串s1中的字符都用字符串s2中的对应字符代替[函数21]#include<stdio.h>#defineMAX50repchar*schar*s1char*s2char*p;for;*s;s++forp=s1;*p&&1;p++;/*检查当前字符是否在字符串s1中出现*/if*p2;/*当前字符在字符串s1中出现用字符串s2中的对应字符代替s中的字符*/[函数2.2说明]函数Insert_Sortintn是一个直接插入排序的程序其基本思想是假设待排序的记录存放在数组R[1n]中初始时R[1]自成一个有序区无序区为R[2n]从i=2起直至i=n为止依次将R[i]插入当前的有序区R[1i-1]中生成含n个记录的有序区[函数2.2]#defineMAX255intR[MAX];voidInsert_Sortintnintij;fori=2;i<=n;i++if3R[0]=R[i];j=i-1;/*R[0]是哨兵且是R[i]的副本*/do/*从右向左在有序区R[1i-1]中查找R[i]的插入位置*/4;/*将关键字大于R[i]的记录后移*/j--;while5;/*当R[i]≥R[j]时终止*/R[j+1]=R[0]j/*R[i]插入到正确的位置上*/
[说明]函数diff的功能是根据两个由整数都大于-32768按升序构成的单链表L1和L2分别由AB指向构造一个单链表L3由*r指向要求L3中的所有整数都是L1并且不是L2中的整数还要求L3中的所有整数都两两不等[函数]#include<malloc.h>typedefstructnodeintd;structnode*nextNode;voiddiffNode*ANode*BNode**rintlastnum;Node*p;*r=NULL;if!Areturn;while1ifA->d
[函数2.1说明]L为一个带头结点的循环链表函数deletenodeLinkListLintc的功能是删除L中数据域data的值大于c的所有结点并由这些结点组建成一个新的带头结点的循环链表其头指针作为函数的返回值[函数2.1]LinkListdeletenodeLinkListLintcLinkListLcppre;pre=L;p=1;Lc=LinkListmallocsizeofListNode;Lc->next=Lc;whilep!=Lifp->data>c2;3;Lc->next=p;p=pre->next;elsepre=p;p=pre->next;returnLc;[函数2.2说明]递归函数dec_to_k_2intnintk的功能是将十进制正整数n转换成k2≤k≤9进制数并打印[函数2.2]dec_to_k_2intnintk//将十进制正整数n转换成k2≤k≤9进制数ifn!=0dec_to_k_24k;printf%d5;
[说明]假设银行整存整取存款不同期限的月息利率分别为0.63%1年0.66%2年0.69%3年0.75%5年0.84%8年其中利息=本金*月息利率*12*存款年限现在某人手中有2000元钱请通过计算选择一种存钱方案使得钱存入银行20年后得到的利息最多假定银行对超过存款期限的那一部分时间不付利息设2000元存20年其中1年存i1次2年存i2次以此类推则到期时存款人应得到的本利合计为2000*1+rate1i1*1+rate2i2*l+rate3i3*l+rate5i5*l+rate8i8其中rateN为对应存款年限的利率年限还有如下限制条件0≤i8≤20≤i5≤20-8*i8/50≤13≤20-8*i8-5*i5/30≤i2≤20-8*i8-5*i5-3*i3/20≤i1=20-8*i8-5*i5-3*i3-2*i2用穷举法穷举出所有的i8i5i3i2i1代入求本利的公式计算出最大值[函数]#include<stdio.h>#include<math.h>voidmaininti8i5i3i2i1n8n5n3n2n1;floatmax=0term;clrscr;fori8=0;i8<3;i8++/*穷举所有可能的存款方式*/fori5=0;i5<=20-8*i8/5;i5++fori3=0;1;i3++fori2=0;2;i2++i1=20-8*18-5*i5-3*i3-2*12:3;/*计算到期时的本利合计*/if45;n1=i1;n2=i2;n3=i3;n5=i5;n8=i8;printfFormaxinumprofitheshouldsosavehismoneyinabank:/n;printfmadefixeddepositfor8year:%dtimes/nn8;printfmadefixeddepositfor5year:%dtimes/nn5;printfmadefixeddepositfor3year:%dtimes/nn3;printfmadefixeddepositfor2year:%dtimes/nn2;printfmadefixeddepositfor1year:%dtimesYnn1;printfToa1:%.2f/nmax;/*输出存款方式*/puts/nPressanykeytoquit...;getch;
[说明]设计一程序输入16个整数到一个数组中将数组位序颠倒重新排序使每个数字不再按原j的顺序排列而是按j的二进制数颠倒后得出的数排列例如将第1个0001数与第8个1000数交换将第3个数0011与第12个数1100交换[C++程序]#include<iostream.h>#defineSIZE16#defineSWAPabtemper=a;a=b;b=temper;voidmalnintdata[SIZE];intncout<<请输入<<SIZE<<个整数;forn=0;n<SIZE;n++1;intj=0m;forinti=0;i<n;i++ifj>i2;3;while4&&j>=mj-=m;m>>=15;cout<<endl<<排序后;forn=0;n<SIZE;n++cout<<data[n];<<;
[说明]下面的流程图用来完成计算一组数组中的中值其方法是将数组中的一个值与其他值比较并计算大于等于被比较数的数值的个数以及小于等于被比较数的数值的个数如果两数都大于n/2则已经找到了中值否则继续之前的步骤注流程中循环开始的说明按照循环变量循环初值循环终值增量格式描述[问题]将流程图的1~5处补充完整
[说明]下面程序计算正方体球体和圆柱体的表面积和体积[C++程序]#include<iostream.h>classcontainerprotected:doubleradius;publiccontainerdoubleradiuscontainer::radius=radius;1;2;;classcube:3publiccubedoubleradius::containerradius;doublesurface_areareturnradius*radius*6;doublevolumereturnradius*radius*radius;;classsphere:publiccontainer4;doublesurface_areareturn4*3.1416*radius*radius;doublevolumereturn3.1416*radius*radius*radius*4/3;;classcylinder:publiccontainerdoubleheight;publiccylinderdoubleradiusdoubleheight:containerradius5;doublesurface_areareturn2*3.1416*radius*height+radius;doublevolumereturn3.1416*radius*radius*height;;voidmaincontainer*p;cubeobj15;sphereobj25;cylinderobj355;p=&obj1;cout<<正方体表面积<<p->surface_area<<endl;cout<<正方体体积<<p->volume<<endl;p=&obj2;cout<<球体表面积<<p->surface_area<<endl;cout<<球体体积<<p->volume<<endl;p=&obj3;cout<<圆柱体表面积<<p->surface_area<<endl;cout<<圆柱体体积<<p->volume<<endl;
[说明]下面流程图完成快速排序算法快速排序法通过分割的方法来进行排序其本质是把数组分成左右两个部分在左边部分只保存数组中小于某个特定数值的那些数据而在右边的部分保存数组中大于这个特定数值的那些数据在两个部分之间插入这个特定的数值当快速排序算法对数组的分割完成后这个数值就在正确的排序位置了这时它就没有必要继续和后面的数据比较了于是快速排序法产生了两个单独的数组如果这两个数组不相关单独排序于是又产生了两个排序的单独数组对这两个单独的表进行快速排序重复上述步骤直到所有的数据都处在各自适当的位置注快排函数定义为rundataleftrightleft和right分别为数组上下界[问题]将流程图的1~5处补充完整
[说明]八皇后问题是指求解如何在国际象棋8*8棋盘上无冲突地放置八枚皇后棋子因为在国际象棋里皇后的移动方式是横竖交叉所以在任意一个皇后所在位置的水平竖赢和斜45线上都不能有其他皇后棋子的存在一个完整无冲突的八皇后棋子分布称为八皇后问题的一个解本程序实现了八枚皇后棋子在8*8棋盘上无冲突的放置[函数]#include<math.h>#include<stdio.h>#defineMAX8/*棋子数及棋盘大小MAX*MAX*/intboard[MAX];/*印出结果*/voidshow_resultinti;fori=0;i<MAX;i++printf%d%diboard[i];printf/n;/*检查是否在同一直横斜线上有其他棋子*/intcheck_crossintninti;fori=0;i<n;i++if1return1;return0;/*放棋子到棋盘上*/voidput_chessintninti;fori=0;i<MAX;i++board[n]=i;if2if3show_result;/*找到其中一种放法了印出结果*/else4;voidmainclrscr;putsThepossibleplacementsare:;5;puts/nPressanykeytoquit;getch;return
[说明]下面的流程图用来说明如何利用数组求前n个质数要确定一个数m是否是质数可以用已知求出的质数对m的整除性来确定对于任意整数m如果它不能被小于它的质数整除则m也是质数注primes[]是质数表已经求得的质数的个数为pc[问题]将流程图的1~5处补充完整
[说明]设有一个带头结点的双向循环链表L每个结点有4个数据成员指向前驱结点的指针prior指向后继结点的指针next存放数据的成员data和访问频度freq所有结点的freq初始时都为0每当在链表上进行一次L.Locatex操作时令元素值x的结点的访问频度freq加1并将该结点前移链接到现在它的访问频度相等的结点后面使得链表中所有结点保持按访问频度递减的顺序排列以使频繁访问的结点总是靠近表头[函数]voidLocateint&x<结点类型说明>*p=first->next;whilep!=first&&1p=p->next;ifp!=first2;<结点类型说明>*current=p;current->prior->next=current->next;current->next->prior=current->prior;p=current->prior;whilep!=first&&3p=p->prior;current->next=4;curren->prior=p;p->next->prior=current;p->next=5;elseprintfsorry.Notfind!/n;
[说明]下面的流程图用来说明如何利用数组求前n个质数要确定一个数m是否是质数可以用已知求出的质数对m的整除性来确定对于任意整数m如果它不能被小于它的质数整除则m也是质数注primes[]是质数表已经求得的质数的个数为pc[问题]将流程图的1~5处补充完整
[说明]下面程序定义了一个类Point及其成员函数然后从类Point派生出类Circle及其成员函数[Java程序]classMainjavapublicstaticvoidmainStringarg[]Circlec=newCircle2.53.74.3;System.out.printlnXcoordinateis+c.getX+/nRadiusis:+c.getRadius;1;//设置新的圆心22PointpRef=c;System.out.println/nCircleprintedasapointis:+[+2+.+3+]:classPointprotecteddoublexy;publicPointdoubleadoublebx=a;y=b;voidsetPointdoubleadoublebx=a;y=b;finaldoublegetXreturnx;finaldoublegetYreturny;classCircle4protecteddoubleradius;publicCircledoublerdoubleadoubleb5;radius=r;voidsetRadiusdoublerradius=r;finaldoublegetRadiusreturnradius;finaldoubleareareturn3.14159*radius*radius;
[说明]函数Node*differenceAB用于求两个集合之差C=A-B即当且仅当e是A中的一个元素但不是B中的元素时e是C中的元素集合用有序链表实现用一个空链表表示一个空集合表示非空集合的链表根据元素之值按递增排列执行C=A-B之后表示集合A和B的链表不变若结果集合C非空则表示其链表根据元素之值按递增排列函数append用于在链表中添加结点[函数]typedefstructnodeintelement;structnode*link;Node;Node*A*B*C;Node*appendlasteNode*last;inte;last->link=Node*mallocsizeofNode;last->link->element=e;returnlast->link;Node*differenceABNode*A*B;Node*c*last;C=last=Node*mallocsizeofNode;while1ifA->element<B->elementlast=appendlastA->element;A=A->link;elseif2A=A->link;B=B->link;else3;while4last=appendlastA->element;A=A->link;5;last=C;C=C->link;freelast;returnC;
[说明]已知类SubClass的getSum方法返回其父类成员i与类SubClass成员j的和类SuperClass中的getSum为抽象函数程序中的第14行有错误请修改该错误并给出修改后的完整结果然后完善程序中的空缺当程序运行到第22行且尚未执行第22行语句时成员变量i的值最后给出程序运行后的输出结果[Java代码]行号代码01publicclassMainjava02publicstaticvoidmainString[]args03SuperClasss=newSubClass;04System.out.printlns.getValue;05System.out.printlns.getSum;060708abstractclassSuperClass09privateinti;10publicSuperClassi=5;11publicintgetValue12returni;1314publicfinalabstractintgetSum;1516classSubClassextendsSuperClass17intj;18publicSubClass19this-3;2021publicSubClassintj221.j=j;2324publicintgetValuereturnj;25publicintgetSum26return2.getValue+j;2728
[说明]假设银行整存整取存款不同期限的月息利率分别为0.63%1年0.66%2年0.69%3年0.75%5年0.84%8年其中利息=本金*月息利率*12*存款年限现在某人手中有2000元钱请通过计算选择一种存钱方案使得钱存入银行20年后得到的利息最多假定银行对超过存款期限的那一部分时间不付利息设2000元存20年其中1年存i1次2年存i2次以此类推则到期时存款人应得到的本利合计为2000*1+rate1i1*1+rate2i2*l+rate3i3*l+rate5i5*l+rate8i8其中rateN为对应存款年限的利率年限还有如下限制条件0≤i8≤20≤i5≤20-8*i8/50≤13≤20-8*i8-5*i5/30≤i2≤20-8*i8-5*i5-3*i3/20≤i1=20-8*i8-5*i5-3*i3-2*i2用穷举法穷举出所有的i8i5i3i2i1代入求本利的公式计算出最大值[函数]#include<stdio.h>#include<math.h>voidmaininti8i5i3i2i1n8n5n3n2n1;floatmax=0term;clrscr;fori8=0;i8<3;i8++/*穷举所有可能的存款方式*/fori5=0;i5<=20-8*i8/5;i5++fori3=0;1;i3++fori2=0;2;i2++i1=20-8*18-5*i5-3*i3-2*12:3;/*计算到期时的本利合计*/if45;n1=i1;n2=i2;n3=i3;n5=i5;n8=i8;printfFormaxinumprofitheshouldsosavehismoneyinabank:/n;printfmadefixeddepositfor8year:%dtimes/nn8;printfmadefixeddepositfor5year:%dtimes/nn5;printfmadefixeddepositfor3year:%dtimes/nn3;printfmadefixeddepositfor2year:%dtimes/nn2;printfmadefixeddepositfor1year:%dtimesYnn1;printfToa1:%.2f/nmax;/*输出存款方式*/puts/nPressanykeytoquit...;getch;
[说明]函数diff的功能是根据两个由整数都大于-32768按升序构成的单链表L1和L2分别由AB指向构造一个单链表L3由*r指向要求L3中的所有整数都是L1并且不是L2中的整数还要求L3中的所有整数都两两不等[函数]#include<malloc.h>typedefstructnodeintd;structnode*nextNode;voiddiffNode*ANode*BNode**rintlastnum;Node*p;*r=NULL;if!Areturn;while1ifA->d
热门题库
更多
中级系统集成项目管理工程师
中级网络工程师
中级信息系统管理工程师
初级程序员
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识