




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、关于C的iniineS字以下说法正觀的呈()傍用:咲址字的谿鱷译器在询用处展开舷件中可包魚2“曲彩的声明可以匹同一个项目的不同舷件商宦义因数名祝同1旦共现不同的15屈逬定义在I注声明内的成员困數黙认是亠工迪谢优先使用去实现的内诈1弟亟姻牍现答案:D联函数:Tip:只有当函数只有10行甚至更少时才将其定义为联函数.定义:当函数被声明为联函数之后,编译器会将其联展开,而不是按通常的函数调用机制 进行调用.优点:当函数体比较小的时候,联该函数可以令目标代码更加高效.对于存取函数以及其 它函数体比较短,性能关键的函数,鼓励使用联.缺点:滥用联将导致程序变慢.联可能使目标代码量或增或减,这取决于联函数的
2、大小. 联非常短小的存取函数通常会减少代码大小,但联一个相当大的函数将戏剧性的增加代码 大小.现代处理器由于更好的利用了指令缓存,小巧的代码往往执行更快。结论:一个较为合理的经验准则是,不要联超过10行的函数谨慎对待析构函数,析构 函数往往比其表面看起来要更长,因为有隐含的成员和基类析构函数被调用!另一个实用的经验准则:联那些包含循环或switch语句的函数常常是得不偿失(除非在 大多数情况下,这些循环或switch语句从不被执行).注意:有些函数即使声明为联的也不一定会被编译器联,这点很重要;比如虚函数和递归 函数就不会被正常联.通常,递归函数不应该声明成联函数(递归调用堆栈的展开并不像 循
3、环那么简单,比如递归层数在编译时可能是未知的,大多数编译器都不支持联递归函 数).虚函数联的主要原因则是想把它的函数体放在类定义,为了图个方便,抑或是当作文 档描述其行为,比如精短的存取函数.-ini. h 文件:Tip:复杂的联函数的定义,应敖在后缀名为-inl.h的头文件中.联函数的定义必须放在头文件中,编译器才能在调用点联展开定义.然而,实现代码理论 上应该放在.cc文件中,我们不希望.h文件中有太多实现代码,除非在可读性和性能上 有明显优势.如果联函数的定义比较短小,逻辑比较简单,实现代码放在.h文件里没有任何问题.比 如.存取函数的实现理所当然都应该放在类定义.出于编写者和调用者的方
4、便,较复杂的页脚 联函数也可以放到.h文件中,如果你觉得这样会使头文件显得笨重.也可以把它萃取到 单独的-inl.h中.这样把实现和类定义分离开来,当需要时包含对应的-inl.h即可。A项错误,因为使用inline关键字的函数只是用户希望它成为联函数,但编译器有权 忽略这个请求,比如:若此函数体太大,则不会把它作为联函数展开的。B项错误,头文件中不仅要包含inline函数的声明,而且必须包含定义,且在定义时 必须加上inline 。【关键字inline必须与函数定义体放在一起才能使函数成 为联,仅将inline放在函数声明前面不起任何作用】C项错误,inline函数可以定义在源文件中,但多个源
5、文件中的同名inline函数 的实现必须相同。一般把inline函数的定义放在头文件中更加合适。D项正确,类的成员函数,默认都是inline的。【定义在类声明之中的成员函数将自 动地成为联函数】EF项无意思,不管是class声明中定义的inline函数,还是class实现中定 义的inline函数,不存在优先不优先的问题,因为class的成员函数都 是inline的,加了关键字inline也没什么特殊的Q【单选圏对N个欽迸行排序.在各目址优鸟件下以下丹去9杂购星0答案:D插入排序改良的冒泡最优也是n页脚数组排序算法算法时间复杂度空间复杂度長佳平均罠差层差Quicksort0(n log(n)0
6、n log(n)0(nA2)O(log(n)Mergesort0(n log(n)OS log(n)0(n log(n)0(n)Timsort0(n)O(n log(n)O(n log(n)O(n)HeaosortO(n log(n)O(n log(n)O(n log(n)oBubble Sort0(n)0(rr2)0n2)0(1)Insertion Sort0(n)0(rr2)0(nA2)0(1)Selection Sort0(22)O(nA2)0(22)0(1)Shell Sort0(n)O(nlogn)A2)O(nlog(n)A2)0(1)Bucket SortO(n+k)O(n + k
7、)0(22)0(n)Radix SortO(nk)O(nk)O(nk)O(n + k)邑乙两个一祥大小的杯子其向分别装釜小于一半?S积的比年縊诵现胳申杯子虫的一分水侧入乙杯子NE挎乙怎子沖合液6!入一些到日杯子上:时 里杯子33液体仔爰到堀初殆状恋假走ZK和爾S衆呂之旨泊曲齊于局台之荊约体机之紅 那么以下说法正牡笳是0甲杯于里的劉引焙子于乙杯子里的水的体积田杯子里的唇Hi的住积茅于Z仟子里的酉楷的B决田杯于里的水的传积爭干乙杯子里航酉陌的坏枳甲杯于里的京的仿段爭干乙祎子里的水的it积甲杯于里的滿仿有干乙杯于里的敝臥上都不对答案:A页脚Q 单选粗1 rdin()2 (af让 sb;char,Bp
8、a=a;W;prT(W; a-a*alibahaoxkorkotaliboba运行淞workalibaba答案:AO闻嗣-4-=*7SRS干红珠闭羽fiMT蛮匕一个球殳红0的验足d观在从空宣子中土出夥囲I裁和曲洁8MS出一个球呈红球的IE舉mq如臬 pg 2 乂必不遊法正3的:0長衩虹球的个小于齧曲的1 呦氓梶1球的个数大于昭坊怖、数是咙球的个t姪扇殊的的2佶 是祖球的个数是黒球的*(疋驴撕品初红球和少答案:B页脚0 单彌(ABCOEcI() (FCEBA)(DEBFCA)(FBDCBA)(EBFZA)答案:D先序遍历中左右 中序遍历左中右 后序遍历左右中页脚Q 单选屈在TCRIP建立连接过程
9、牛客戶跻:編务為菇约决恋转移協去第喫的泵?经历SYKEC瞅态 经历SW_S曲濒态BESZA5LISHEDtt经彷FIKE_XM誹去關务器在收到8g包8寸倚加人半连接弘列腿貓檢受爭焙户溜山电百將从半连靠队列H!除答案:DTCP建立连接时首先客户端和服务器处于close状态。然后客户端发送SYN同步位,此时客户端处于SYN-SEND状态,服务器处于1ISTEN状态, 当服务器收到SYN以后,向客户端发送同步位SYN和确认码ACK,然后服务器变为SYN-RCVD,客户端收到服务器发来的S YN和ACK后,客户端的状态变成ESTABLI SHED (已建立连接), 客户端再向服务器发送ACK确认码,服
10、务器接收到以后也变成ESTABLISHED然后服务器客户端开始数据传输Q 单选圏假设在n进制下.T 如弍成立n怕星:)240 2=23801918答案:F假设为 n 进值则2*(n*2) +4*(n* 1) +0 * l*n+2=2* (n3) +8*(n*2) +8*(nl)页脚化简后居然为很等式,n为任意值Q 单选羁下面关于系统闹用的FS述牛IS误的足)系统调用把应刊站的iS耒陽讎系统内核执行系统诚用中祓讷用的过程运f亍在”用户态呻羽闻系蜕说用能够E到掾作系 軽也的梦种股芬罡操0E系统提倶给编俚人易的糕口系统调用给用户煤萌了设备访问的细节系姒9用尿护了一些只能在內核複式拉行能脸作捋令答案:
11、B用户空间与系统空间所在的存区间不一样,同样,对于这两种区间,CPU的运行状态也不一 样。在用户空间中,CPU处于用户态;在系统空间中,CPU处于系统态”。(单晦关于linux的2宴用渣dselect和epDll T列说法?Si艮的宗0select用时会进行线t遷历。】1采用刖鮒机制必;5妾线flil历乂 k的呆大连按矽为Q-SETSIZE处。冷适合于有犬曼并发连按,且活戏琏接转多的场杲昨O较适用于有丈蚤并冷銭,但活觀连接不冬的场黒epoll的妓率不阴F鴻目塔如而缄性下黴辱“逋过共享存赧现內垓和用户的逊搏交互答案:Cselectselect能监控的描述符个数由核中的FD_SETSIZE限制,仅
12、为1024,这也是select最大 的缺点,因为现在的服务器并发量远远不止1024。即使能重新编译核改变FD SETSIZE的值, 但这并不能提高select的性能。页脚每次调用select都会线性扫描所有描述符的状态,在select结束后,用户也要线性扫描 fd set数组才知道哪些描述符准备就绪,等于说每次调用复杂度都是0 (n)的,在并发量大 的情况下,每次扫描都是相当耗时的,很有可能有未处理的连接等待超时。每次调用select都要在用户空间和核空间里进行存复制fd描述符等信息。pollpoll使用pollfd结构来存储fd,突破了 select中描述符数目的限制。与select的后两点
13、类似,pol 1仍然需要将pollfd数组拷贝到核空间,之后依次扫描fd 的状态,整体复杂度依然是0(n)的,在并发量大的情况下服务器性能会快速下降。epollepoll维护的描述符数目不受到限制,而且性能不会随着描述符数目的增加而下降。服务器的特点是经常维护着大量连接,但其中某一时刻读写的操作符数量却不多。epoll 先通过epoll_ctl注册一个描述符到核中,并一直维护着而不像poll每次操作都将所有要监 控的描述符传递给核;在描述符读写就绪时,通过回掉函数将自己加入就绪队列中,之后 epoll wait返回该就绪队列。也就是说,epoll基本不做无用的操作,时间复杂度仅与活跃的 客户端
14、数有关,而不会随着描述符数目的增加而下降。epoll在传递核与用户空间的消息时使用了存共享,而不是存拷贝,这也使得epoll的效 率比poll和select更高。O 单画有无遷泊水源_个51_无刃度糊0个?L无刻反補殳炽利用这两个无刻良桶將不8法得:)0答案:F页脚答案:4单选題91121142答案:165在100-999这900个自然数中.若将组成这个数的三个数字认为是三条线段的长度.那么是三 条线段组成一个等腰三角形(包括等边)的共有()个.Jiinelude using namespace std;int main()inta = 0;intb = 0;intc = 0;inttime
15、= 0;for(int i = 100; i c)丨(b = c & (c + ba) i | (c = a & (a + cb)time+;cout time endl;return 0;Q imsajTSW个不盛循环谨宏服列(1)单循环链表在单链表中,将终端结点的指针域NULL改为指向表头结点或开始结 点即可。(2)多重链的循环链表将表中结点链在多个环上。2队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表;3. 栈(stack)在计算机科学中是限定仅在栈顶进行插入或删除操作的线性表。4. 关联数组”是一种具有特殊索引方式的数组。不仅可以通过整数来索引它,还可以
16、使用字符串或者其他类型的值(除了 NULL )来索引它。 关联数组和数组类似,由以名称作 为键的字段和方法组成。它包含标量数据,可用索引值来单独选择这些数据,和数组不同的是,关联数组的索引值不是非负的整数而是任意的标量。这些标量称为Keys,页脚 可以在以后用于检索数组中的数值。关联数组的元素没有特定的顺序,你可以把它们想 象为一组卡片。每卡片上半部分是索引而下半部分是数值。5. 链表(Linked list)是一种常见的基础数据结构,是一种线性表,是一种物理存储单元 上非连续、非顺序的存储结构。双向链表也叫双链表,是链表的一种,它的每个数据结 点中都有两个指针,分别指向直接后继和直接前驱。所
17、以,从双向链表中的任意一个 结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链 表。单下面的毙种排牙空壬在手均不昱O(nlogn)的乍二臾初川抑样序闵非序答案:B法 方 序 排性 定 稳入序|7(n20(一o(n)n2)0()0(1定 稳9o(n)n2)51/0(1定 稳 不o(n) n2 0(0(1定 稳 不序 ff 堆XV nlo 0(0(1换序n2)0(o(rl)n2)50(1II2)5J# ng (nl o一一cx)zrd) 如5桶排序的平均时间复杂度为线性的0(7+C),其中C=N*(logN-logM)o如果相对于同样的N, 桶数量M越大,其效率就高,最好
18、的时间复杂度达到0)。当然桶排序的空间复杂度为 0(N+M),如果输入数据非常庞大,而桶的数量也非常多,则空间代价无疑是昂贵的。此外, 桶排序是稳定的。页脚里创业团队的一个很大的办公却蛙跻(:;8档可以倉IS更有TSJV1F惊 祁个工位白于臣和3FI磁远而程收不1H5号为了歸5工位的联网15E . 隹备在工位和WIFIfS号溜之闻安叢一左SAP(柜当于中室的.可以中结谆工位上松;I机和别FI之间的信号.只老忌从V1FI友出划3号,红里AP姦 W1FI霸丈近.超不到中绝笛作用列昨两工垃太远则可PES不上训IFI因此APW个眼佳的妄会位吉那么关亍AP嚴住妄御2M的说罚E娩的品:)坤鬧皿海功率越大,
19、那么A陶住安装位刃4竝近豳F胡淅功率越丸那4农佳白期位蛊&6逅工位XI港力苹価麻住熬位呂无关.盟走住安装位3!在工位和肛韵5号源连2竝处APftti安装位蛊证工位和WIFT佶号源连披中点 以上说法和不对O (单选題宵100个免不.力给:0个人第一个空吊罅IS率地分给10个丿、之一之后的每一个仝甬分确策K个人的槪率正M;于这个人已经15有的仝甬SJW在这样 的分6帧制下,关于毎个人碗的全冷个数的分桁的i兑注無逞的(毎个人得到的金币的个逍哋是緒的甸个人的金币个矽按近场匀弁布第Y金币络朋、人朋个人的最络金币彳勸的朋里頼会更大玄中间的篥个阶畠金币彳対越的人,未来翊金市的可紇性越大答案:B页脚0 里逊左
20、目田奁蹄恬;兄下只君成悄肝小张用目己的小兀袒了小壬屯蘇 关于这个交绘人下诺去TS谟殆是小张鈕5橡皮比小刀更好小王詡汕刀比橡皮更好小锥和小王总的I佃里没育发生娈化小张和小王的汐用值動了:m把小王炭成小目那么这个交换可濒不会发生小刀和拔齢佰答案:F选项AB是对称的,所以肯定正确,由AB可以看出题目的意图是,这次交换靠的是物品的相 对价值相当(小觉得橡皮比小刀更好, 小王觉得小刀比橡皮更好),但明显最后一个选 项等值指的長他们的绝对价值structintintcharirt sized struct旳下c&?在64垃处刮a上运亍站泌fli逗什么乍2420U141312答案:161. struct的对
21、齐原则,注意不同的编译器有不同的效果。 2不同的数据类型在32位和64位下所占字节的区别32位编译器:页脚char : 1个字节char* (即指针变t) : 4个字节(32位的寻址空间是2,32即32个 bit,也就是4个字节。同理64位编译器)short int : 2 个字节int:4个字节unsigned int : 4 个字节 float: 4个字节 double: 8个字节 long: 4个字节 long long: 8 个字节 unsigned long: 4 个字节64位编译器:char : 1个字节char*(即指针变量):8个字节short int : 2 个字节int:
22、4个字节unsigned int : 4 个字节float: 4个字节double: 8个字节long: 8个字节long long: 8 个字节unsigned long: 8 个字节此处指针先占用8字节。int占用4字节,满足要求不用补齐,char占用一个字节, 同时总的字节数必须满足8的倍数即16Q 单泌1A10Include #include uing nanespcc &td; int ftain(vold) vectorarray; rray.push_back(100); array.push_back(390); jrray.puth_back(3G); array.pu5h_
23、back(30e);11rray.puih_back(390); array.push_back(50e);131415vector:iterator itor;for( i?or-a*Tay. begin(); iter!*ray. end (); itc-t-t) (iffitor390)17IB19292122232425( itor-ar-ay.erasefitcr); for( itor-array. begin (); ltor 1 -array .end(); Itxx ccutBitor: return 0;页脚下面这个代玛域出的超)100 300 3OD 330 300 50
24、0100 3OC 300 300 500100 300 300 500100 200 50010G 500答案:100 300 300 500vector:erase():从指定容器删除指定位置的元素或某段围的元素vector:: erase ()方法有两种重载形式如下:iterator erase( iterator Where):iterator erase( iterator First, iterator Last);如果是删除指定位置的元素时:返回值是一个迭代器,指向删除元素下一个元素;如果是删除某围的元素时:返回值也表示一个迭代器,指向最后一个删除元素的下一 个元素;本题中,当*itor=300成立时,删除第一个值为300的元素,同时itor指向下一个 元素(即是第二个值为300的元素)在for(; ; i tor+)执行ilor, ilor指向第三个值为300的元素,进入下一个循环 进入循环满足*itor=300,重复上面的过程,执行完循环,itor执行值为500的元 素。所有整个过程中,只删除了 2个值为300的元素。单翻下面关宁一欢吉成貝損述中不正號的是仆妊成员竝可襪i亥类的所言方注访问该冥的静态方注只能访冋该宾的邙态帧阳该类的漿渤 据腿芟蛋的信不可修左答案:c可以修改类的静态成员属于整个类而不是某个对象,可以被类的所有方法访问,子类当
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司保险面试题及答案
- T/CAFFCI 66-2023化妆品修护功效测试方法
- 大专重修考试题库及答案
- T/CAEPI 52-2022工业有机废气净化用蜂窝活性炭
- c语言课程设计心得体会模版
- 传统节日元宵节主题班会教案设计
- 企业办公服务合同范本
- 教师外出参观学校协议书
- 娱乐项目转让合同范本
- 厂房转租留下物品协议书
- 土地承包经营权证样式-1221
- 爆破作业的安全规定与操作程序
- 前庭大腺囊肿护理查房课件
- 国开《Windows网络操作系统管理》形考任务3-磁盘存储与文件服务实训
- 深圳中考自主招生简历
- 保险团队训练师落地授课法
- 有限空间作业管理台帐(参考模板)
- 埃克森美孚D40MSDS金盛昌化工
- 人口信息-中国生殖健康家庭保健培训中心
- 地区发展模式课件
- 火车过桥问题课件-002
评论
0/150
提交评论