一、选择题(1)在C语言的if语句中,用作判断的表达式为( )。A. 关系表达式 B. 逻辑表达式 C. 算术表达式 D. 任意表达式 E. (2)该程序的运行结果是( )。 F. in() G. (,b,c;=2;b=7;c=5;>0){se 1:h(b<10){se 1:printf("^");break;se 0:printf("!");break;)se 0:h(c==5)(se 0: printf("*");break;se 1: printf("#");break;ult:printf("%%");break;)ult:printf("");}n");}^#^ C. D. ^!*#%语言规定else总是( )。和之前与其具有相同缩进位置的if配对和之前与其最近的if配对和之前与其最近不带else的if配对和之前的第一个if配对不等于0的关系,则能正确表示这一关系的表达式为( )。C. a=0!aa=0a(5) 以下程序运行后的输出结果是( )。in()=2,b=-1,c=2;<b)if(b<0) c=0;lse c++;n",c);}123(6) 若k是int型变量,下面的程序段[1]的输出结果是( ) 。k=-3;if (k<=0) printf("####")lse printf("");########有语法错误[2],无输(7) 以下程序运行后的输出结果是( )。in()=0,b=0,c=0,d=0;=1)=1;c=2;lse d=3;n",a,b,c,d);}0,1,2,00,0,0,31,1,2,0编译有错(8) 以下程序运行后的输出结果是( )。in()( int x1=1,x2=0,x3=0;if(x1=x2+x3) printf("****");lse printf("####");)****有语法错误.####无输出结果=1,b=3,c=5,d=4时,执行下面一行程序后,x的值是( )。<b)if(c<d) x=1;<c)if(b<d) x=2;lse x=3;lse x=6;lse x=7;1236(10)下列叙述中正确的是( )。break语句只能用于switch语句在switch语句中必须使用defaultbreak语句必须与switch语句中的case配对使用在switch语句中不一定使用break语句t x=1.5; int a=1,b=3,c=2; 则正确的switch语句是( )。switch(x)switch((int)x)se 1.0:printf("*n"); ( case 1:printf("*n");se 2.0:printf("**n"); ) case 2:printf("**n"); }switch (a+b)switch(a+b)se 1:printf("*n"); ( case 1:printf("*n");se 2+1:printf("**n"); ) case 2:printf("**n"); }(12) 以下程序运行后的输出结果是( )。h>in()=0,b=0;h(x)se 1:h(y)se 0:a++;break;se 1:b++;break;}se 2:a++;b++;break;}=%d,b=%dn",a,b);}a=2,b=1a=1,b=1a=1,b=0a=2,b=2(13) 以下程序输出结果是( )。in()( int m=5;n",m);n",m--);)7654(14) 以下程序的输出结果为( )。h>in ( )=6;++;;}i=0, j=0, a=6i=1, j=1, a=7i=1, j=0, a=7i=0, j=1, a=7(15) 有如下程序in()=2,b=-1,c=2;<b)if(b<0) c=0;lse c++;n",c);}该程序的输出结果是( )123(16) 若i为int型,且有程序如下,则输出结果是( )。i=111;if(i%3==0)printf("####");printf("****");####****####****无输出结果(17) 若运行时x=12,则运行结果为( )(int x, y;nf("%d", x);y=x>12 ? x+10:x-12;n", y);)221210(18) 以下程序的输出结果是( )in()( int i=0, j=0, k=6;if ((++i>0)||(++j>0)) k++;n", i, j, k);)0, 0, 61, 0, 71, 1, 70, 1, 7(19) 若变量都已正确说明,则以下程序段输出为( )=1,b=2,c=3;>b)=b;=c;;=%d=%d=%dn",a,b,c);必须在程序的开头必须在系统调用[3]的库函数的后面可以在程序的任意位置必须在程序的最后语言程序是由( )。一个主程序和若干个子程序[4]组成函数组成若干过程组成若干子程序组成(19) 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是( )。有零个或多个输入有零个或多个输出有穷性可行性(20) 以下叙述正确的是( )。C语言的源程序[5]不必通过编译就可以直接运行。C语言中的每条可执行语句最终都将被转换成二进制[6]的机器指令[7]。C语言源程序经编译形成的二进制代码可以直接运行。C语言中的函数不可以单独进行编译。(21) 为解决某一特定问题而设计的指令序列称为( )。文档语言程序系统(22) 用高级程序设计语言[8]编写的程序称为( )。目标程序[9]可执行程序[10]源程序伪代码(23) 能将高级语言[11]编写的源程序转换成目标程序的是( )。编辑程序编译程序[12]驱动程序链接程序(24) 下列叙述中正确的一条是( )。计算机语言[13]中,只有机器语言[14]属于低级语言[15]。高级语言源程序可以被计算机直接执行。C语言属于高级语言。机器语言与所用机器无关的。(25)设有以下定义:=0; double=1.25;ouble b=1.25; char c=’A’;#define d 2 则下面语句中,错误是( )。a++;b++; C. c++; D. d++;语言的描述中正确是( )。a=1 b=2 c=1a=1 b=2 c=3a=1 b=3 c=1a=2 b=3 c=2=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( )<b)if(c<d)x=1;lse<c)if(b<d)x=2;lse x=3;lse x=6;lse x=7;1236(21) 以下不正确的语句为( )if(x>y);if(x==y)(x!=0)x+=y;if(x!=y)scanf("%d",x);else scanf("%d",y);if(x<y)(x++;y++;)(22) 有以下程序:h"in( )r i;r ())!='n';)')se 0: putchar (i);se 1: putchar (i+1);break;se 2: putchar (i+2);se 3:reak;ult: putchar (i);break;}}n");}输入下列数据后,程序的输出结果是( )bcde<CR>abcdeabceeabbdeabccddc1、c2、x、y、均是整型变量,正确的switch语句是( )switch (a+b);switch(a*a+b*b)se 1:y=a+b;reak;ase 1:y=a+b; break; (case 3:se 0:y=a-b;reak;ase 1:y=a+b;break;se 3:y=b-a,break;)switch aswitch(a-b)se 1 :y=a-b;rease 1 :y=a-b; break (se 2: x=a*d;reakase c1:case 4:x=a+b;break;ult:x=a+b; case c2:case 11:y=a-b;break;ult:y=a*b;break;)(24) 写出下面程序输出结果( )。=0,=0;h(x)se 1:h(y)se 0: a++;se 1:++; }se 2: a++;++;}=%d, b=%dn", a,;}a=2, b=1a=1, b=1a=1, b=0a=2, b=2(25) 以下程序的输出结果是( )。in( )=-1,b=1,k;<0)!(b--<=0))n",a,b);lsen",b,a);}-1 10 11 00 0(26) 与y=(x>0?1:x<0?-1:0);的功能相同的if语句是( )。if (x>0) y=1;if(x)lse if(x<0) y=-1; if(x>0) y=1;lse y=0; else if (x<0) y=-1;lse y=0;y=-1y=0;If (x) if (x>=0)If (x>0) y=1; if (x>0) y=1;lse if(x==0) y=0; else y=-1;lse y=-1;(27)若执行以下程序时从键盘上输入9,则输出结果是( )in()( int n;nf("%d",n);n",n);n",n--);)111098(28) 若i为int型,且有程序如下,则输出结果是( )。i=111;if(i%3==0);printf("####");printf("****");####****####****无输出结果(29) 请读下面程序:in()(int x=1, y=2, z=3;x+=y+=z;t", x<y ? y : x);t", x<y ? x++:y++);)程序输出结果为( )。5 44 55 66 5(30) 若变量都已正确说明,则以下程序段输出为( )。=1,b=2,c,d;=b) c=d=a;lse c=b;d=b;printf("%d,%d",c,d);c=1,d=1c=1,d=2c=2,d=1c=2,d=2(31) 以下程序的输出结果是( )。in()=100,x=10,y=20,a1=5,a2=0if(x<y)if(y !=10)1) a=1;lse2) a=10;=-1;n",a)}110-1(32) 若w、x、y、z、m均为int型变量,则执行下面语句后的m值是( )。w=1;x=2;y=3; z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;1 B.2 C.3 D.4,以下程序的运行结果为 ( )。in()r grade;nf("%c", grade);de)se 'A': printf(">=85");se '':se 'C': printf(">=60");se 'D': printf("<60");ult: printf("error.");}>=85>=60>=60rror.<60rror.(34) 选择出i的正确结果( )。int i=10;h(i)(se 9: i++;se 10: i+=1;se 11:i++;ult: i+=1;)10111213(35) 若 w = 1, x = 2, y=3, z=4, 则条件表达式 w>x? w : y<z? y:z的结果是( ).4321(36) 有如下程序in()t x=2.0,y;if(x<0.0) y=0.0;lse if(x<5.0) y=1.0/x;lse y=1.0;n",y);}该程序的输出结果是( )0.0000000.2500000.5000001.000000(37) 若i为int型,且有程序如下,则输出结果是( )i=322;if(i%2==0) printf("####");lse printf("****");. ####****####****有语法错误, 无输出结果(38) 有程序如下,若由键盘输入70,则输出结果是( )(int n;nf("%d", n);n");n");n");n");)B.C.D(39) 以下程序段输出为( )。=1,b=2,c=3;>b)a=b,=c;;=%d=%d=%dn",a,b,c);a=1 b=2 c=1a=1 b=2 c=3a=1 b=3 c=1a=2 b=3 c=2(40) 请问读以下程序:in()=5,b=0,c=0;=b+c)printf("");lse printf("###");}以上程序( )。有语法错不能通过编译可以通过编译但不能连接输出###(41) 以下程序的输出结果是( )in()( int x=2,y=-1,z=2;if(x<y)if(y<0) z=0;lse z+=1;n",z);)123(42) 以下程序的运行结果是( )in()(int x,y,z;x=0;y=1;z=3;x=++y<=x||x+y!=z;printf("%d,%d",x,y);)0,11,20,21,1(43) 以下程序的运行结果是( )。in()(if(2*1==2<2*2==4)printf("##");lseprintf("**");)##**##**都不对(44)以下程序的运行结果是( )。in(),b;int i=5,j=7,k=0;=!k;=i!=j;=%d,b=%dn",a,b);}a=1,b=1a=1,b=2a=2,b=1a=1,b=3(45) 以下程序的运行结果是( )。in(),b,c,d;=c=0;=1;=20;d=d-10;lse if(!b)if(! c)d=15;lse d=25;printf("%d",d);}22192021(46) 若运行时输入:3 5 /<回车>,则以下程序的运行结果是( )。in()t x,y;r o;ouble r;nf("%f%f%c",x,y,o);h(o)se '+':r=x+y;break;se '-':r=x-y;break;se '*':r=x*y;break;se '/':r=x/y;break;}printf("%f",r);}0.60.600000158(47)以下程序的运行结果是( )。in()(int x,y,z;x=1;y=1;z=0;x=x||yz;printf("%d,%d",x,x!y||z);)1,00,11,10,0(48)以下程序的运行结果是( )。in(),b,c;int s,w=0,t=0;=-1;b=3;c=3;+b;<=0)if(b>0)-b;;lse t=c;n",s,w,t);}2,-4,02,0,05,0,0都不对(49)下列程序段的运行结果是( )int n=0;if (n++<3);printf("%d",n)234以上都不对(50)选择运行结果为4的表达式( )int i=0, j=0,t;t=(i=3,(++j)+i);printf(“%d”,t);int i=1, j=0;j=i=((i=3)*2);int i=0, j=1;i=(j==1)?(i=1):(i=3);int i=1,j=1;i+=j=2;
Access是__公司的产品。A. MicrosoftB. IBMC. IntelD. Sony
设SS:SP=2000:0300H,则堆栈在内存中的物理地址范围是___ (1) __~ ___ (2) ___ .执行两条PUSH指令后,SS:SP= ___ (3) ____,再执行一条POP指令后,SS:SP= ___ (4) ___ 。
802.11标准规定无线局域网[1]的最小构件是()。A. 基本服务集[2]BSSB. 服务集SSC. 扩展服务集[3]ESSD. 基本服务区[4]BSA
一个自治系统有5个局域网,其连接图如图4-55示。LAN2至LAN5上的主机数分别为:91,150,3和15。该自治系统分配到的IP地址块为30.138.118/23。试给出每一个局域网的地址块(包括前缀)。 LAN291个主机 LAN3150个主机 LAN43个主机 30.138.118/23-|||-LAN515个主机-|||-LAN1-|||-图 4-55
如图4-70所示,某单位有两个局域网[1](各有120台计算机),通过路由器R,连接到互联网,现获得地址块108.112.1.0/24,为这两个局域网分配CIDR地址块,并为路由器R2的接口1、接口2分配地址(分配最小地址)。配置R2的路由表(目的地址,子网掩码[2],下一跳),在R,的路由表中增加一条项目使该单位的网络获得正确路由。192.168.10.1/30 LAN1-|||-接口1-|||-互联网-|||-R R2-|||-接口2-|||-192.168.10.2/30 LAN2
现 有 ( DS=2000H ) ,( BX=0100H ),( SI=0002H ),( 20100 ) =12H,( 20101 ) =34H,( 20102 ) =56H,( 20103 ) =78H,( 21200 ) =2AH,( 21201 ) =4CH,( 21202 ) =B7H,( 21203 ) =65H,填入下列指令执行后AX寄存器[1]的内容。MOV AX, 1200H; AX=__ MOV AX, BX; AX=__ MOV AX, [1200]; AX=__ MOV AX, [BX]; AX=__
56. 某编码方案用 8 位二进制数对颜色进行编码,最多可表示()种颜色。A. 1000B. 10C. 1024D. 256
数据库中事务的特点数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使________更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性[1]、一致性、隔离性[2]和持久性)属性。原子性(atomic)(atomicity)事务必须是原子工作单元;对于其________,要么全都执行,要么全都不执行。通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的。如果系统只执行这些操作的一个子集,则可能会破坏事务的总体目标。原子性消除了系统处理操作子集的可能性。一致性(consistent)(consistency)事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部________(如B树[3]索引或双向链表[4])都必须是正确的。某些维护一致性的责任由________开发人员承担,他们必须确保应用程序已强制所有已知的完整性约束[5]。例如,当开发用于转帐的应用程序时,应避免在转帐过程中任意移动小数点。隔离性(insulation)(isolation)由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为隔离性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。当事务可序列化[6]时将获得最高的________。在此级别上,从一组可并行执行的事务获得的结果与通过连续运行每个事务所获得的结果相同。由于高度隔离会限制可并行执行的事务数,所以一些应用程序降低隔离级别以换取更大的吞吐量。防止数据丢失C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQL Server。客户端需要安装专用的客户端软件。B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或SQL Server等数据库。浏览器通过Web Server同数据库进行数据交互。C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。缺点主要有以下几个:只适用于局域网[7]。而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问[8]需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。对客户端的操作系统一般也会有限制。可能适应于Win98,但不能用于win2000或Windows XP。或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。18:莱布尼茨公式19:洛必达法则20:C语言里面为什么要有Main函数?C程序最大的特点就是所有的程序都是用函数来装配的。main()称之为________,是所有程序运行的入口。其余函数分为有参或无参两种,均由main()函数或其它一般________21:数据结构中最小生成树[9]的应用网络G表示n个________的________网线路22:TCP的拥塞控制[10]通过限制拥塞扩散和持续时间来减轻拥塞的一组操作拥塞现象是指到达________中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致________业务陷入停顿,即出现________现象。缓冲区预分配[11]法该法用于________________网中。在建立________时,让呼叫请求分组[12]途经的________为虚电路[13]预先分配一个或多个________。若某个________缓冲器已被占满,则呼叫请求分组另择________,或者返回一个"忙"信号给呼叫者。这样,通过途经的各________为每条________开设的永久性________(直到虚电路拆除),就总能有空间来接纳并转送经过的分组。此时的________跟电路[14]交换很相似。当________收到一个分组并将它转发出去之后,该节点向发送节点返回一个确认信息。该确认一方面表示接收________已正确收到分组,另一方面告诉发送节点,该节点已空出________以备接收下一个分组。上面是"停一等"协议下的情况,若________之间的协议允许多个未处理的分组存在,则为了完全消除拥塞的可能性,每个节点要为每条________保留等价于窗口大小数量的________。这种方法不管有没有通信量,都有可观的资源(线路________或________)被某个连接占有,因此________的有效利用率不高。这种控制方法主要用于要求高带宽和低延迟的场合,例如传送________语音信息的________。分组丢弃法该法不必预先保留________,当________占满时,将到来的分组丢弃。若________提供的是________,则用分组丢弃法来防止拥塞发生不会引起大的影响。但若________提供的是________,则必须在某处保存被丢弃分组的备份,以便拥塞解决后能重新传送。有两种解决被丢弃分组重发的方法,一种是让发送被丢弃分组的________超时,并重新发送分组直至分组被收到;另一种是让发送被丢弃分组的节点在尝试一定次数后放弃发送,并迫使数据源节点超时而重新开始发送。但是不加分辨地随意丢弃分组也不妥,因为一个包含确认信息的分组可以释放________的缓冲区,若因节点元空余缓冲区来接收含确认信息的分组,这便使节点缓冲区失去了一次释放的机会。解决这个问题的方法可以为每条输入链路[15]永久地保留一块________,以用于接纳并检测所有进入的分组,对于________信息的分组,在利用了所捎带的确认释放缓冲区后,再将该分组丢弃或将该捎带好消息的分组保存在刚空出的缓冲区中。定额控制法这种方法在________中设置适当数量的称做"许可证"的特殊信息,一部分许可证在通信子网[16]开始工作前预先以某种策略分配给各个源________,另一部分则在子网开始工作后在网中四处环游。当源________要发送来自源________的分组时,它必须首先拥有许可证,并且每发送一个分组注销一张许可证。目的________方则每收到一个分组并将其递交给目的________后,便生成一张许可证。这样便可确保________中分组数不会超过许可证的数量,从而防止了拥塞的发生。23:面向对象的特点面向对象主要特征:封装性:封装是一种________技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的________)对用户是隐蔽的。封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。继承性:继承性是子类[17]自动共享父类之间数据和方法的机制。它由类的派生功能体现。一个类直接继承其它类的全部描述,同时可修改和扩充。继承具有传递性。继承分为单继承[18](一个子类只有一父类)和多重继承(一个类有多个父类)。类的对象是各自封闭的,如果没继承性机制,则类对象________、方法就会出现大量重复。继承不仅支持系统[19]的可重用性,而且还促进系统的可扩充性。多态性[20]:对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。例如:Print消息被发送给一图或表时调用的打印方法与将同样的Print消息发送给一正文文件而调用的打印方法会完全不同。多态性的实现受到继承性的支持,利用类继承的层次关系,把具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低层次,这样,在这些低层次上生成的对象就能给通用消息以不同的响应。在OOPL中可通过在________中重定义基类函数(定义为________或虚函数)来实现多态性。24:VC中多态是怎么实现的?我们知道多态性实现的关键是晚绑定(或者称为后期绑定),其实质就是编译器并没有在编译期间指定调用函数的绝对地址[21],而是指定了某个类内部该函数的偏移地址。为了实现上面的功能,编译器为我们作了手脚
将另一序列剩下的所有元素直接复制到原始数组末尾________________(1)在数据集之中,选择一个元素作为”基准”(pivot)。(2)所有小于”基准”的元素,都移到"基准”的左边;所有大于"基准”的元素,都移到"基准”的右边。(3)对”基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。(1)快速排序问题设a[0:n-1]是一个未排序的数组,如{0,12,45,3,6,29,4,16,77}.实现快速排序算法对该数组进行排序.(2)步骤对于输入的子序列L[p..r]分三步处理:第一步:分解(Divide)先从数据序列中选一个元素,称为基准元素。将序列中所有比基准元素小的元素都放到它的左边,比基准元素大的元素都放到它的右边。在序列L[p..r]中选择基准元素L[q],经比较和移动后,L[q]将处于L[p.。r]中间的适当位置,使得基准元素L[q]的值大于L[p.。q—1]中任一元素的值,基准元素L[q]的值小于L[q+1。。r]中任一元素的值。第二步:递归求解(Conquer)再对左右两边分别用同样的方法处理,直到每一个待处理的序列的长度为1。通过递归调用快速排序算法,分别对L[p。。q—1]和L[q+1.。r]进行排序.第三步:合并(Merge)由于对分解出的两个子序列的排序是就地进行的,所以在L[p。。q-1]和L[q+1。。r]都排好序后不需要执行任何计算L[p..r]就已排好序,即自然合并.这个解决流程是符合分治法的基本步骤的。贪心算法贪心算法(又称贪婪算法)是指,在对______时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部______。(2)特性:贪心算法采用自顶向下,以迭代的方法做出相继的贪心选择,每做一次贪心选择就将所求问题简化为一个规模更小的子问题,通过每一步贪心选择,可得到问题的一个最优解,虽然每一步上都要保证能获得局部最优解,但由此产生的全局解有时不一定是最优的,所以贪婪法不要回溯。能够用贪心算法求解的问题一般具有两个重要特性:贪心选择性质和最优子结构性质(3)贪心算法与动态规划算法的差异:动态规划和贪心算法都是一种递推算法,均有最优子结构性质,通过局部最优解来推导全局最优解.两者之间的区别在于:贪心算法中作出的每步贪心决策都无法改变,因为贪心策略是由上一步的最优解推导下一步的最优解,而上一部之前的最优解则不作保留,贪心算法每一步的最优解一定包含上一步的最优解。动态规划算法中全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有最优解。活动安排问题由于输入的活动以其完成时间的非减序排列,所以算法greedySelector每次总是选择具有最早完成时间的相容活动加入集合A中.直观上,按这种方法选择相容活动为未安排活动留下尽可能多的时间。也就是说,该算法的贪心选择的意义是使剩余的可安排时间段极大化,以便安排尽可能多的相容活动。最小生成树Prim算法设G = (V,E)是连通带权图,V ={1,2,…,n}.构造G的最小生成树Prim算法的基本思想是:首先置S ={1},然后,只要S是V的真子集,就进行如下的贪心选择:选取满足条件i ∈S,j ∈V – S,且c[i][j]最小的边,将顶点j添加到S中。这个过程一直进行到S = V时为止.在这个过程中选取到的所有边恰好构成G的一棵最小生成树.Kruskal算法给定无向连同带权图G =(V,E),V ={1,2,。.。,n}。Kruskal算法构造G的最小生成树的基本思想是:(1)首先将G的n个顶点看成n个孤立的连通分支。将所有的边按权从小大排序。(2)从第一条边开始,依边权递增的顺序检查每一条边.并按照下述方法连接两个不同的连通分支:当查看到第k条边(v,w)时,如果端点v和w分别是当前两个不同的连通分支T1和T2的端点是,就用边(v,w)将T1和T2连接成一个连通分支,然后继续查看第k+1条边;如果端点v和w在当前的同一个连通分支中,就直接再查看k+1条边。这个过程一个进行到只剩下一个连通分支时为止。动态规划基本思想:基本思想动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解.每一个解都对应于一个值,我们希望找到具有______的解。动态规划算法与______类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从______问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间.我们可以用一个表来记录所有已解的子问题的答案。不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中.这就是动态规划法的基本思路。具体的动态规划算法多种多样,但它们具有相同的填表格式。基本步骤(1)划分阶段:按照问题的时间或空间特征,把问题分为若干个阶段。注意这若干个阶段一定要是有序的或者是可排序的(即无后向性),否则问题就无法用动态规划求解.(2)选择状态:将问题发展到各个阶段时所处于的各种客观情况用不同的状态表示出来。当然,状态的选择要满足无后效性。(3)确定决策并写出状态转移方程:之所以把这两步放在一起,是因为决策和状态转移有着天然的联系,状态转移就是根据上一阶段的状态和决策来导出本阶段的状态.所以,如果我们确定了决策,状态转移方程也就写出来了。但事实上,我们常常是反过来做,根据相邻两段的各状态之间的关系来确定决策。动态规划算法分以下4个步骤:1.描述最优解的结构2.递归定义最优解的值3.按自底向上的方式计算最优解的值/此3步构成动态规划解的基础。4.由计算出的结果构造一个最优解。/此步如果只要求计算最优解的值时,可省略.好,接下来,咱们讨论适合采用动态规划方法的最优化问题的俩个要素:最优子结构性质,和子问题重叠性质.1·最优子结构性简而言之,一个最优化策略的子策略总是最优的。一个问题满足最优化原理又称其具有最优子结构性质。2·重叠子问题在递归算法自顶向下解决问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算了多次。动态规划正是利用这种重叠子问题性质,对每一子问题直解一次,而后将其解保存在一个表格中,当每次需要时,只简单用常数时间查看一下结果。3·备忘录方法备忘录方法是动态规划算法的变形。与动态规划算法一样,备忘录方法用表格保存已解决的子问题的答案,在下次需要解此子问题时,只要简单查看该问题的解答,而不必重新计算。与动态规划算法不同的是,备忘录方法的递归方式是自顶向下,而动态规划算法是自底向上递归。矩阵连乘.
热门问题
2.单选题 讯飞星火可以实现多种文案类型和语言风格的文本写作。讯飞星火(网页版)“内容写作”功能可选的“语言风格”不包括( )。A. 口语化B. 高情商C. 专业D. 热情
下列哪项属于因果推理模型()A. 因果图B. 神经符号推理C. 符号推理模型D. 结构因果模型
下列哪项关于监督学习算法的描述正确()A. 强化学习的训练效果一定优于监督学习B. 主要的监督学习方法包括生成方法和判别方法C. 广度优先搜索算法是一种监督学习算法
7、 加强电脑安全防护,及时升级病 毒库,安装防火墙,及时查杀病毒和木马,是防范 电信网络诈骗的有效做法。A. 正确B. 错误
在决策树建立过程中,使用一个属性对某个结点对应的数集合进行划分后,结果具有高信息熵(highentropy),对结果的描述,最贴切的是()。A. 纯度高B. 纯度低C. 有用D. 无用E. 以上描述都不贴切
路径排序算法的工作流程主要有三步()A. 特征计算B. 特征抽取C. 分类器训练D. 因果推断
下列哪项贪婪最佳优先搜索算法的描述正确()A. 贪婪最佳优先搜索不属于启发式搜索算法B. 贪婪最佳优先搜索是一种A*搜索算法C. 贪婪最佳优先搜索是一种广度优先搜索算法D. 贪婪最佳优先搜索属于有信息搜索算法
下列哪个方法属于知识图谱推理方法()A. 路径排序算法B. 深度学习推断C. 广度优先搜索D. 归纳逻辑程序设计
下列哪项关于广度优先搜索的描述正确()A. 每次扩展时,该算法从边缘集合中取出最下层(最深)的节点B. 广度优先搜索算法是深度优先搜索算法的特例C. 每次扩展时,该算法从边缘集合中取出最上层(最浅)的节点D. 深度优先搜索是广度优先搜索的特例
3.判断题K-means聚类算法对数据的尺寸敏感。()A. 对B. 错
网络安全包括物理安全[1]、逻辑安全、操作系统安全及联网安全,其中逻辑安全包括访问控制[2]、加密、安全管理及用户身份认证。A. 正确B. 错误
AdaBoosting采用多个单一分类器组成一个强分类器()A. 错误B. 正确
以下哪种方法属于卷积神经网络的基本组件()。A. 卷积层B. 池化层C. 激活函数D. 复制层
下列不属于量子机器学习算法的是()A. 量子支持向量机B. 量子主成分分析C. 薛定谔方程求解D. 深度量子学习
下列哪个方法属于知识图谱推理方法()A. 广度优先搜索B. 深度学习推断C. 路径排序算法D. 归纳逻辑程序设计
下列哪项不是求解对抗搜索问题的基本算法( ) A.反向传播算法 B.广度优先排序算法 C.Alpha-Beta剪枝算法D.最小最大搜索算法
网络安全包括物理安全[1]、逻辑安全、操作系统安全及联网安全,其中逻辑安全包括访问控制[2]、加密、安全管理及用户身份认证。A. 正确B. 错误
Windows中“复制”操作的快捷键是Ctrl+V。
由脸书(Facebook)公司开发的深度学习编程框架是()A. TensorFlowB. PaddlePaddleC. PyTorchD. Mindspore
路径排序算法的工作流程主要有三步()A. 特征抽取B. 特征计算C. 分类器训练D. 因果推断