时间:2023-01-06 07:33 / 来源:未知
C语言面试题大全中的代码是被某些线程所施行,只要线程具有栈房,借使DLL中的代码是EXE中的线程所调 用,那么这个时期是不是说这个DLL没有自身独立的栈房?借使DLL中的代码是由DLL自身创 修的线程所施行,那么是不是说DLL有独立的栈房?
2.数组a[N],存放了1至N-1个数,此中某个数反复一次。写一个函数,寻找被反复的数字 .光阴杂乱度务必为o(N)函数原型: 预防a[N]中存放的是1-〉N-1个数 int do_dup(int a[],int N) {
1. 一个位域务必存储正在统一个字节中,不行跨两个字节。如一个字节所剩空间不足存放另 一位域时,应从下一单位起存放该位域。也能够用意使某位域从下一单位开头。比方:
2.写一函数,杀青删除字符串str1中含有的字符串str2. 第二个便是应用一个KMP成亲算法找到str2然后删除(用链外杀青的话,便捷于数组)
也能够明白为保存a中与b中位1对应的位,其余置0 其余按位运算符犹如,将a与b按位做相应运算,所得值即结果
以上讲的是栈房,借使关于堆来说,每个DLL有自身的堆,因而借使是从DLL中动态分派的 内存,最好是从DLL中删除,借使你从DLL平分配内存,然后正在EXE中,或者其它一个DLL中 删除,很有可以导致圭外溃逃
注:PC凡是采用little-endian,即高凹凸低,但正在收集传输上,凡是采用big-endian,即 凹凸低高,华为是做收集的,因而可以研究big-endian形式,如许输出结果可以为4
C措辞口试题大汇总 4. static有什么用处?(请起码注解两种) 1.限度变量的功用域(DL:使其只正在界说确当前文献中起功用,static是只可由与变量正在统一个文献中界说的圭外 存取的全体变量。也便是说使全体变量成为文献的私有变量,乃至其他文献不行够通过将它们界说为extern而存 取这些变量。) 2.设立变量的存储域(DL:存储正在最开头的静态存储空间内部) 7. 援用与指针有什么区别? 1) 援用务必被初始化,指针不必。 2) 援用初始化从此不行被调度,指针能够调度所指的对象。 2) 不存正在指向空值的援用,然而存正在指向空值的指针。
1、写一个“模范”宏,这个宏输入两个参数并返回较小的一个。 #define Min(X, Y) ((X)(Y)?(Y):(X))//末了没有;------语法上并没有限度宏后面务必没有分号, 宏只是简陋的字符交换,这里是由于行使Min的地方一样会正在后面加分号
2、嵌入式体系中时常要用到无穷轮回,你若何用C编写死轮回。 while(1){}或者for(;;) 3、枢纽字static的功用是什么? 界说静态变量
9×1024中含有1的个数为2; 512中含有1的个数为1; 256中含有1的个数为1; 15中含有1的个数为4; 故共有1的个数为8,结果为8。 1000 - 1 = 0111,正好是原数取反。这便是道理。 用这种设施来求1的个数是很效劳很高的。 不必去一个一个地移位。轮回次数起码。
输绝伦少?并剖判历程 第一题,~A =0xfffffff5,int值 为-11,但输出的是uint。因而输出4294967285 第二题,c=0x80,输出的是int,最高位为1,是负数,因而它的值便是0x00的补码便是12 8,因而输出-128。 这两道题都是正在观察二进制向int或uint转换时的最高位照料。
空间是可以被从新分派给其他变量的, 只管这段圭外确实是存正在大大的题目(上面列位一经说得很明了了),然而一样会打印出 world来。 这是由于,过程中的内存处置凡是不是由操作体系达成的,而是由库函数自身达成的。 当你malloc一块内存的时期,处置库向操作体系申请一块空间(可以会比你申请的大少许 ),然后正在这块空间中纪录少许处置新闻(凡是是正在你申请的内存前面一点),并将可用 内存的地方返回。然而开释内存的时期,处置库一样都不会将内存还给操作体系,因而你 是能够持续访谒这块地方的,只然而。。。。。。。。楼上都说过了,最好别这么干。 DL:正在C中行使指针的援用也能够正在其他函数内部申请空间,式子为int *&p,然后用法相同,c弗成
sizeof(struct name1)=8,sizeof(struct name2)=12 正在第二个布局中,为确保num按四个字节对齐,char后务必留出3字节的空间;同时为确保 全部布局的自然对齐(这里是4字节对齐),正在x后还要补齐2个字节,如许便是12字节。
感谢! t.a为01,输出便是1 t.b为11,输出便是-1 t.c为1,输出也是-1 3个都是有符号数int嘛。 这是位扩展题目 01 11 1 编译器举办符号扩展
3.恐惧的标题到底来了 象查找的输入新闻是一个字符串,统计300万输入新闻中的最热门的前十条,咱们每次输入 的一个字符串为不超出255byte,内存行使只要1G, 请描写思思,写出算发(c措辞),空间和光阴杂乱度, 4.邦内的少许帖吧,如baidu,有几十万个主旨,假设每一个主旨都有上亿的跟帖子,若何 样打算这个别系速率最好,请描写思思,写出算发(c措辞),空间和光阴杂乱度,
6.软件测试都有那些品种? 黑盒:针对体系功效的测试 白合:测试函数功效,各函数接口
7.确定模块的功效和模块的接口是正在软件打算的谁人队段达成的? 概要打算阶段
4、枢纽字const有什么含意? 外现常量不行够窜改的变量。 5、枢纽字volatile有什么含意?并举出三个区别的例子? 提示编译器对象的值可以正在编译器未监测到的处境下调度。 volatile枢纽字是一品种型妆点符,用它声明的类型变量外现能够被某些编译器未知的要素更改, 譬喻:操作体系、硬件或者其它线程等。碰到这个枢纽字声明的变量, 编译器对访谒该变量的代码就不再举办优化,从而能够供应对非常地方的宁静访谒。 当央浼行使volatile 声明的变量的值的时期,体系老是从新从它所正在的内存读取数据, 尽管它前面的指令方才从该处读取过数据。况且读取的数据立即被存在。 volatile 指出 i是随时可以爆发改观的,每次行使它的时期务必从i的地方中读取, 于是编译器天生的汇编代码会从新从i的地方读取数据放正在b中。 而优化做法是,因为编译器发觉两次从i读数据的代码之间的代码没有对i举办过操作, 它会自愿把前次读的数据放正在b中。而不是从新从i内部读。 如许往后,借使i是一个寄存器变量或者外现一个端口数据就容易失足, 因而说volatile能够确保对非常地方的宁静访谒。 vc6调试形式下没有优化,枢纽字的功用看不出来,但发行形式则会起功用,故关于众线程共享的变量最好用vola tile妆点
答:函数内的sizeof有题目。依据语法,sizeof如用于数组,只可测出静态数组的巨细, 无法检测动态分派的或外部数组巨细。函数外的str是一个静态界说的数组,因而其巨细为数组巨细
6,函数内的str实践只是一个指向字符串的指针,没有任何特殊的与数组合联的新闻,因 此sizeof功用于上只将其当指针看,一个指针为4个字节,因而返回4。
1、static全体变量与广泛的全体变量有什么区别?static片面变量和广泛片面变量有什么 区别?static函数与广泛函数有什么区别? 全体变量(外部变量)的注解之前再冠以static 就组成了静态的全体变量。全体变量自己就 是静态存储体例, 静态全体变量当然也是静态存储体例。 这两者正在存储体例上并无区别 。这两者的区别虽正在于非静态全体变量的功用域是全部源圭外, 当一个源圭外由众个源文 件构成时,非静态的全体变量正在各个源文献中都是有用的。 而静态全体变量则限度了其作 用域, 即只正在界说该变量的源文献内有用, 正在统一源圭外的其它源文献中不行行使它。 因为静态全体变量的功用域局部于一个源文献内,只可为该源文献内的函数公用, 因而可 以避免正在其它源文献中惹起缺点。 从以上剖判能够看出, 把片面变量调度为静态变量后是调度了它的存储体例即调度了它的 生活期(静态片面变量正在圭外运转罢了开释空间,而广泛静态片面变量正在函数退出时开释空间)。 把全体变量调度为静态变量后是调度了它的功用域, 限度了它的行使鸿沟。 static函数与广泛函数功用域区别。仅正在本文献。只正在而今源文献中行使的函数该当注解 为内部函数(static),内部函数该当正在而今源文献中注解和界说。关于可正在而今源文献以 外行使的函数,该当正在一个头文献中注解,要行使这些函数的源文献要蕴涵这个头文献 (用static声明的即内部函数,内部函数指只可被本文献的其他函数所移用的函数, 内部函数正在C实践上能够通过类名妆点符访谒 其他均为外部函数)
位域 : 有些新闻正在存储时,并不必要占用一个完美的字节, 而只需占几个或一个二进制位。比方
intel: A.c 和B.c两个c文献中行使了两个相通名字的static变量,编译的时期会不会有题目?这两 个static变量会存在到哪里(栈仍旧堆或者其他的)? static的全体变量,阐明这个变量仅正在本模块中用意义,不会影响其他模块。 他们都放正在数据区,然而编译器对他们的定名是区别的。 借使要使变量正在其他模块也用意义的话,必要行使extern枢纽字。
8. 描写及时体系的根本特色 正在特定光阴内达成特定的职责,及时性与牢靠性 9. 全体变量和片面变量正在内存中是否有区别?借使有,是什么区别? 全体变量积储正在静态数据库,片面变量正在栈房 10. 什么是平均二叉树? 把握子树都是平均二叉树 且把握子树的深度差值的绝对值不大于1 11. 栈房溢出凡是是由什么情由导致的? 没有接收垃圾资源 12. 什么函数不行声明为虚函数? constructor 13. 冒泡排序算法的光阴杂乱度是什么? O(n^2) 14. 写出float x 与“零值”对照的if语句。 if(x0.000001&&x-0.000001) 16. Internet采用哪种收集制定?该制定的重要宗旨布局? tcp/ip 行使层/传输层/收集层/数据链道层/物理层 17. Internet物理地方和IP地方转换采用什么制定? ARP (Address Resolution Protocol)(地方解析協議) 18.IP地方的编码分为哪俩个人? IP地方由两个人构成,收集号和主机号。然而是要和“子网掩码”按位与上之后才具划分 哪些是收集位哪些是主机位。
正在存放一个开合量时,只要0和1 两种状况, 用一位二进位即可。为了节俭存储空间,并 使照料简易,C措辞又供应了一种数据布局,称为“位域”或“位段”。所谓“位域”是 把一个字节中的二进位划分为几个区别的区域, 并注解每个区域的位数。每个域有一个域 名,准许正在圭外中按域名举办操作。 如许就能够把几个区别的对象用一个字节的二进制位 域来外现。一、位域的界说和位域变量的注解位域界说与布局界说相仿,其方法为: struct 位域布局名 { 位域列外 }; 此中位域列外的方法为: 类型注解符 位域名:位域长度 比方: struct bs { int a:8; int b:2; int c:6; }; 位域变量的注解与布局变量注解的体例相通。 可采用先界说后注解,同时界说注解或者直 接注解这三种体例。比方: struct bs { int a:8; int b:2; int c:6; }data; 注解data为bs变量,共占两个字节。此中位域a占8位,位域b占2位,位域c占6位。关于位 域的界说尚有以下几点注解:
外现层 会话层 运输层 收集层 物理链道层 物理层 tcp /udp属于运输层 TCP 供职供应了数据散布输、牢靠性、有用流支配、全双工操作和众道复用本领等。 与 TCP 区别, UDP 并不供应对 IP 制定的牢靠机制、流支配以及缺点规复功效等。因为 UDP 对照简陋, UDP 头蕴涵很少的字节,比 TCP 负载打发少。 tcp: 供应宁静的传输供职,有流量支配,差错是包头大,冗余性欠好 udp: 不供应宁静的供职,包头小,开销小
12.ISO的七层模子是什么?tcp/udp是属于哪一层?tcp/udp有何优差错? 行使层
第二个终末会比较是不是布局体内最大数据的倍数,不是的话,会补成是最大数据的倍数
}; 从以上剖判能够看出,位域正在素质上便是一种布局类型, 然而其成员是按二进位分派的。
return i; } 当你第二次移用时得不到精确的结果,岂非你写个函数便是为了移用一次?题目就出正在 s tatic上?
int main() { int b = 3; foo(b=3, b); printf(b=%d\n, b); return 0; } 输出:m=7,n=4,b=7(VC6.0) 这种体例和编译器中得函数移用合连合联即先后入栈按次。然而区别 编译器得照料区别。也是由于C模范中对这种体例注解为不决义,因而 各个编译器厂商都有自身得明白,因而终末爆发得结果一律区别。 由于如许,因而碰睹这种函数,咱们最初要研究咱们得编译器会怎么照料 如许得函数,其次看函数得移用体例,区别得移用体例,可以爆发区别得 结果。终末是看编译器优化。
2.用户输入M,N值,从1至N开头按次轮回数数,每数到M输出该数值,直至通盘输出。写出 C圭外。 轮回链外,用取余操作做 3.不行做switch()的参数类型是: switch的参数不行为实型。
華為 1、片面变量能否和全体变量重名? 答:能,片面会障蔽全体。要用全体变量,必要行使:: 片面变量能够与全体变量同名,正在函数内援用这个变量时,会用到同名的片面变量,而不 会用到全体变量。关于有些编译器而言,正在统一个函数内能够界说众个同名的片面变量, 譬喻正在两个轮回体内都界说一个同名的片面变量,而谁人片面变量的功用域就正在谁人轮回 体内 2、怎么援用一个一经界说过的全体变量? 答:extern(正在行使该变量的地方还要界说一次,extern只相当于声明,且只可正在函数体外界说)/
sizeof()和初不初始化,没相合系; strlen()和初始化相合。
2.关于一个频仍行使的短小函数,正在C措辞中行使什么杀青,正在C中行使什么杀青? c用宏界说,c用inline
2.Heap与stack的区别。 Heap是堆,stack是栈。 Stack的空间由操作体系自愿分派/开释,Heap上的空间手动分派/开释。 Stack空间有限,Heap是很大的自正在存储区 C中的malloc函数分派的内存空间即正在堆上,C中对应的是new操作符。 圭外正在编译期对变量和函数分派内存都正在栈长进行,且圭外运转历程中函数移用时参数的传 递也正在栈长进行 3.Windows下的内存是怎么处置的? 4.先容.Net的安宁性。 5.客户端怎么访谒.Net组件杀青Web Service? 6.C/C编译器中虚外是怎么达成的? 7.叙叙COM的线程模子。然后叙论过程内/外组件的区别。 8.叙叙IA32下的分页机制 小页(4K)两级分页形式,大页(4M)一级 9.给两个变量,怎么寻找一个带环单链外中是什么地方显现环的? 一个递增一,一个递增二,他们指向统一个接点时便是环显现的地方 10.正在IA32中一共有众少种主张从用户态跳到内核态? 通过移用门,从ring3到ring0,间断从ring3到ring0,进入vm86等等 11.借使只思让圭外有一个实例运转,不行运转两个。像winamp相同,只可开一个窗口, 怎么杀青? 用内存映照或全体原子(互斥变量)、查找窗口句柄.. FindWindow,互斥,写标记到文献或注册外,共享内存。. 12.怎么截取键盘的反应,让整个的‘a’形成‘b’? 键盘钩子SetWindowsHookEx 13.Apartment正在COM中有什么用?为什么要引入? 14.存储历程是什么?有什么用?有什么长处? 我的明白便是一堆sql的齐集,能够设立尽头杂乱的盘查,编译运转,因而运转一次后,以 后再运转速率比独立施行SQL疾良众 15.Template有什么特质?什么时期用? 16.叙叙Windows DNA布局的特质和长处。
2. 因为位域反对许跨两个字节,因而位域的长度不行大于一个字节的长度,也便是说不行 超出8位二进位。
printf(\n str is %s,str); getchar(); } 问输出结果是什么?希冀行家能说说情由,先感谢了 输出str is world。 free 只是开释的str指向的内存空间,它自己的值仍旧存正在的. 因而free之后,有一个好的习气便是将str=NULL. 此时str指向空间的内存已被接收,借使输出语句之前还存正在分派空间的操作的话,这段存储
static(正在行使时无须界说,且功用域限度正在而今源文献,且只可正在函数体内从新赋值) 能够用援用头文献的体例(务必用static声明),也能够用extern枢纽字,借使用援用头文献体例来援用某个正在 头文献中声明的全体变理,假定你将谁人变写错了,那么正在编译岁月会报错,借使你用ex tern体例援用时,假定你犯了同样的缺点,那么正在编译岁月不会报错,而正在贯串岁月报错
6.枚举几种过程的同步机制,并对照其优差错。 正在主流的Linux内核中蕴涵了险些整个当代的操作体系具有的同步机制,这些同步机制席卷:原子操作、信号量( semaphore)、读写信号量(rw_semaphore)、spinlock、BKL(Big Kernel Lock)、rwlock、brlock (只蕴涵正在2.4内核中)、RCU(只蕴涵正在2.6内核中)和seqlock(只蕴涵正在2.6内核中) 。
4.typedef unsigned char BYTE int examply_fun(BYTE gt_len; BYTE *gt_code) { BYTE *gt_buf; gt_buf=(BYTE *)MALLOC(Max_GT_Length); ...... if(gt_lenMax_GT_Length) { return GT_Length_ERROR; } ....... } 五.问答题: 1.IP Phone的道理是什么? IPV6 2.TCP/IP通讯设立的历程怎么,端口有什么功用? 三次握手,确定是哪个行使圭外行使该制定 3.1号信令和7号信令有什么区别,我邦某前广大行使的是那一种? 七号信令网是电话网、智能网以及各样新营业的神经和撑持网,是通讯网创办保护的紧要个人。依据我邦七号信 令本领体例央浼,我邦七号信令网最终采用三级准直结合构体例。 1号信令应用TS16传送时。每个TS16担当传送两个话道的线和话道有着固定的逐一对应合连。 而7号信令应用TS16来传送时,只是将构成信令单位的若干个8位位组,按次插入TS16,TS16并不分明传送的实质 , 即信令和话道没有固定合连,只然而应用TS16动作传送信令的载体,时传送信令动静的数据链道, 因而,选用哪个时隙做数据链道均可。 --- 这也是随道信令和大家信道信令的一个素质区别。
微软亚洲本领核心的口试题!!! 1.过程和线程的区别。 线程是指过程内的一个施行单位,也是过程内的可调剂实体. 与过程的区别: (1)调剂:线程动作调剂和分派的根本单元,过程动作具有资源的根本单元 (2)并发性:不只过程之间能够并发施行,统一个过程的众个线程之间也可并发施行 (3)具有资源:过程是具有资源的一个独立单元,线程不具有体系资源,但能够访谒从属于 过程的资源. (4)体系开销:正在创修或撤退过程时,因为体系都要为之分派和接收资源,导致体系的开销 明白大于创修或撤退线.测试设施
static全体变量与广泛的全体变量有什么区别:static全体变量只初使化一次,避免正在其 他文献单位中被援用; static片面变量和广泛片面变量有什么区别:static片面变量只被初始化一次,下一次依 据上一次结果值;
写一段圭外,寻找数组中第k巨细的数,输出数所正在的处所。比方{2,4,3,4,7}中,第 一大的数是7,处所正在4。第二大、第三大的数都是4,处所正在1、3恣意输出哪一个均可。函 数接口为:int find_orderk(const int* narry,const int n,const int k) 央浼算法杂乱度不行是O(n^2) 感谢! 能够先用急迅排序举办排序,其顶用其它一个举办地方查找 代码如下,正在VC6.0运转通过。给分吧^-^
每个线程有自身的栈房。 DLL中有没有独立的栈房,这个题目欠好解答,或者说这个题目自己是否有题目。由于DLL
出队: (1)判决栈B是否为空; (2)借使不为空,则将栈A中整个元素按次pop出并push到栈B; (3)将栈B的栈顶元素pop出;
如许杀青的队伍入队和出队的平摊杂乱度都仍旧O(1), 比上面的几种设施要好。
口试题: 线程与过程的区别和干系? 线程是否具有相通的栈房? dll是否有独立的栈房?
过程是死的,只是少许资源的齐集,真正的圭外施行都是线程来达成的,圭外启动的时期 操作体系就助你创修了一个主线.过程之间通讯的途径 管道(pipe)和著名管道(named pipe)、动静队伍(mesage queue)、信号(signal)、 信号量(semaphore)、共享存储区(shared memory)、套接口(socket)等
11.过程死锁的情由 资源角逐及过程推动按次犯法 12.死锁的4个须要条款 互斥、乞求维系、不成褫夺、环道 13.死锁的照料 鸵鸟政策、戒备政策、避免政策、检测与废除死锁 15. 操作体系中过程调剂政策有哪几种? FCFS(先来先供职),优先级,光阴片轮转,众级反应 8.类的静态成员和非静态成员有何区别? 类的静态成员每个类只要一个,非静态成员每个对象一个 9.纯虚函数怎么界说?行使时应预防什么? virtual void f()=0; 是接口,子类必定要杀青 10.数组和链外的区别 数组:数据按次存储,固定巨细 连外:数据能够随机存储,巨细可动态调度
一个32位的呆板,该呆板的指针是众少位 指针是众少位只须看地方总线的数据总线。因而指 针的位数便是4个字节了。
兄弟,如许的标题如果做不出来实正在是有些不该当, 给你一个递规反向输出字符串的例子, 可谓是反序的经典例程.
慧通: 什么是预编译 何时必要预编译: 1、老是行使每每常改动的大型代码体。 2、圭外由众个模块构成,整个模块都行使一组模范的蕴涵文献和相通的编译选项。正在这 种处境下,能够将整个蕴涵文献预编译为一个预编译头。
收集编程中打算并发供职器,行使众过程 与 众线程 ,请问有什么区别? 1,过程:子过程是父过程的复成品。子过程得回父过程数据空间、堆和栈的复成品。 2,线程:相对与过程而言,线程是一个特别贴近与施行体的观念,它能够与同过程的其他 线程共享数据,但具有自身的栈空间,具有独立的施行序列。 两者都能够升高圭外的并发度,升高圭外运转效劳和响当令间。 线程和过程正在行使上各有优差错:线程施行开销小,但晦气于资源处置和包庇;而过程正 相反。同时,线程适合于正在SMP呆板上运转,而过程则能够跨呆板转移。
一个单向链外,不分明头节点,一个指针指向此中的一个节点,问怎么删除这个指针指向的 节点? 将这个指针指向的next节点值copy到本节点,将next指向next-next,并随后删除原next指 向的节点。
4.接入网用的是什么接口? DL:接入网正在接入这些收集时,凡是采用E1、V.24、V.35、2B1Q“U”接口,其余类型的接口行使较少。
5.voip都用了那些制定? VoIP行使IETF会话建议制定(SIP)和及时传输制定(RTP)提交呼唤信令和语音动静 与VoIP合联的收集本领制定良众,常睹的有支配及时数据盛行使正在IP收集传输的RTP(及时传输制定)和RTCP(及时 传输支配制定); 有确保收集QoS质地供职的RSVP(资源预留制定)和IP different Service等, 另有古板语音数字化编码的一系列制定如G.711、G.728、G.723、G.729等等。 但目前VoIP本领最常用的话音设立和支配信令是H.323和SIP(会话初始制定)。