
面试
wynter_
做一个对得起自己的人。
展开
-
几种进程间通信方式
1.管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系;2.有名管道(fifo):有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信;3.信号(signal):信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生;4.信号量(semophore):信号箱是一个计数器,可以用来控制多原创 2016-09-09 09:13:23 · 380 阅读 · 0 评论 -
面试:线程与进程的区别
1.进程是资源分配的基本单位,线程是cpu调度或者是程序执行的最小单位;2.进程有独立的地址空间,线程共享进程的地址空间。因此启动或切换一个线程远比进程操作要快的多,当然,线程拥有自己的局部变量和堆栈;3.线程之间通信比较方便,因为在统一进程下的线程共享数据。而进程之间通信只能使用进程通信的方式进行;原创 2016-09-08 16:34:05 · 320 阅读 · 0 评论 -
排序算法:归并排序
#include #include void Merge(int sourceArr[], int tempArr[], int startIndex, int midIndex, int endIndex) { int i = startIndex, j = midIndex + 1, k = startIndex; while(i != midIndex + 1 &&原创 2016-09-07 11:31:07 · 279 阅读 · 0 评论 -
C语言:单链表的反转
步骤一:从首节点开始为Back节点、Back节点的下一个节点为pointer节点,若Back节点是首节点,则将Back节点的指针设为NULL;Back = head;pointer = back->next;Back->next = NULL;从下一个节点(Next节点)设为pointer节点的指针,将pointer节点的指针指向上一个节点(Back节点),Back节点设为原创 2016-09-19 19:39:18 · 1406 阅读 · 0 评论 -
C语言:单链表内节点的插入
1.插在链表开头新的节点插入到链表的开头,需要将新节点的指针指向链表的首节点,并将链表的首节点设为新节点。New->next = Pointer;Head = New;2.插在链表中间新的节点插入到链表的中间,如果我们找到Pointer节点,则需要将新节点的指针指向Pointer节点的指针(即下一个节点),但不能让链表断裂。所以第一步必须将新节点原创 2016-09-14 10:02:19 · 9526 阅读 · 0 评论 -
C语言:单链表内节点删除
#include #include #define MAX 10struct List{ int number; int total; struct List *next;};typedef struct List Node;typedef Node *Link;int data[2][MAX] = {1, 3, 5, 7, 2, 4, 6, 8, 9, 0, 15,原创 2016-09-13 13:38:25 · 793 阅读 · 0 评论 -
TCP/IP协议三次握手
一、三次握手所谓三次握手(Three-Way Handshake),即建立TCP连接,就是指在建立一个TCP连接时,需要客户端和服务端总共发三个包来确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发,流如下图所示: (1)第一次握手:原创 2016-09-01 10:12:56 · 631 阅读 · 0 评论 -
指针与数组的区别
C++/C程序中,指针和数组在不少地方都是可以相互替换使用的,这就让人产生一种错觉,以为两者是等价的。数组或是在静态存储区被创建(全局数组),或是在栈上被创建。数组名对应着,注意不是指向,一块内存,其地址与容量在生命期内保持不变(当然,使用了realloc()的不算),只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组原创 2016-08-31 21:43:24 · 275 阅读 · 0 评论 -
排序算法:插入排序
插入排序是排序算法的一种,它不改变原有的序列(数组),而是创建一个新的序列,在新序列上进行操作。这里以从小到大排序为例进行讲解。基本思想及举例说明插入排序的基本思想是,将元素逐个添加到已经排序好的数组中去,同时要求,插入的元素必须在正确的位置,这样原来排序好的数组是仍然有序的。在实际使用中,通常是排序整个无序数组,所以把这个无序数组分为两部分排序好的子数组和待插入的元素转载 2016-08-31 23:36:41 · 434 阅读 · 0 评论 -
排序算法:冒泡排序
#include void swap(int *a, int *b){ int temp; temp = *a; *a = *b; *b = temp;}int main(){ int array[10] = {10, 22, 12, 11, 23, 44, 32, 54, 9, 40}; int i, j; int flag = 1; for(i = 0; i <原创 2016-08-31 16:22:55 · 285 阅读 · 0 评论 -
排序算法:快速排序
快速排序是实际应用中比较常用的一种排序方法,具有速度快,效率高的优点。思想:快速排序采用的思想是分治思想。快速排序找出一个元素(理论上可以找任何一个元素)作为基准(key),然后对数组进行分区操作,使基准元素左边元素的值不大于基准值,基准元素右边元素的值不小于基准值。递归快速排序,将其他n-1个元素也调整到排序后的正确位置。即:如何调整基准 的位置以及调整返回基原创 2016-08-31 21:30:41 · 368 阅读 · 0 评论 -
将一句话中的单词倒置,标点符号不倒置。例如:I am from China! 倒置后变为:China! from am I
这道题可分为两步:第一步将整个字符串全部倒置:!anihC morf ma I 第二步部分倒置,如果不是空格,则倒置单词#include #include int main(){ int i = 0, j = 0; int begin = 0, end = 0; char str[] = "I am from China!", tmp; //char tmp;原创 2016-09-10 13:19:43 · 5755 阅读 · 0 评论 -
面试:字符串移动
编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来的是"abcdefg",如果n=2,移位后应该是"fgabcde"。主要考察的就是标准库函数的熟练程度。#include #include #include void LoopMove1(char *pstr, int steps){ int n = strlen(pstr) - steps; char原创 2016-09-10 10:47:24 · 308 阅读 · 0 评论 -
TCP/IP协议四次挥手
四次挥手:即连接终止协议。1.TCP客户端发送一个FIN报文,用来关闭客户端到服务器的数据传输;2.服务器收到这个FIN报文,它发回一个ACK报文,确认序号为收到的序号加一;3.服务器关闭与客户端的连接,发送一个FIN给客户端;4.客户端发回ACK报文确认,并将确认序号设置为收到序号加一。原创 2016-09-09 11:19:02 · 333 阅读 · 0 评论 -
C语言:字符串的逆转
#include #include #include int main(){ char *strSrc = "abcdefg"; char *strDst = NULL; char t; char *d, *s; //定义两个临时指针 int i = 0; int len = 0; len = strlen(strSrc); //计算原字符串的长度 strDst原创 2016-09-01 16:50:12 · 904 阅读 · 0 评论 -
C语言:回文数
回文数指的是正反序读起来都是一样的数字,比如121, 1234321, 2345432等等!那么,怎么用程序来判断一个数是不是回文数呢?最简单的一个办法就是将该数逆序,然后与其原数进行比较,相等则是回文数,反之,不是回文数;程序如下:#include int main(){ long int num = 123454321; int n = 0; n = huiwen(原创 2016-10-14 10:24:52 · 1466 阅读 · 1 评论