很多同学都想得到淘宝的实习或者校招机会。那从过来人的角度谈谈,要通过淘宝的实习、校招面试,都有哪些经验和注意事项呢?今天就跟大家分享一下。
1、指针和数组的区别?
数组时连续分配一串单元,数目开始定义的时候就必须固定下来,看起来整洁,但是写的程序是死程序, 容易浪费内存 指针存放一个地址值,表示指向某一个单元,可以用指针来索引单元。数组可以完成栈,堆,树等等的操作,它 在编程时候的好处是非常的灵活,在构建思路的时候有很大的灵活性。
2、TCP 和 UDP 的区别以及应用有什么不同?
【TCP 与 UDP 的区别】
TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之 间建立一个 TCP 连接,之后才能传输数据。TCP 提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保 证数据能从一端传到另一端。 UDP--- 用户数据报协议,是一个简单的面向数据报的运输层协议。UDP 不提供可靠性,它只是把应用程序传给 IP 层的数据报发送出去,但是并不能保证它们能到达目的 地。由于 UDP 在传输数据报前不用在客户和服务器之 间建立一个连接,且没有超时重发等机制,故而传输速度很快。 应用: HTTP 协议在运输层采用的就是 TCP 协议,在浏览器中输入 IP 地址后,与服务器建立连接,采用的就是 TCP 协议,是一种面向连接、可靠的字节流服务。 当强调传输性能而不是传输的完整性时,如:音频、多媒体应用和视频会议时,UDP 是最好的选择。另外,腾讯 QQ 采用也是 UDP 协议。
3、进程和线程的区别?
线程是指进程内的一个执行单元,也是进程内的可调度实体.
【线程和进程的区别】
(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空 间
(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源
(3)线程是处理器调度的基本单位,但进程不是.
(4)二者均可并发执行. 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。
简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。 但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个 线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独 立单位. 线程是进程的一个实体,是 CPU 调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上 不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程 的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.
4、判断字符串是否为 IP 地址。
答案:输入字符串的时候,把分隔符“.”读取出来,然后判断分隔符旁边的数字是否在 0~~255 之间,然后判断是 否合法。 #include #include int main(void) { char str[31],temp[31]; int a,b,c,d; while(gets(str)!=NULL) { if(sscanf(str, "%d.%d.%d.%d ",&a,&b,&c,&d)==4 && a>=0 && a<=255 && b>=0 && b<=255 && c>=0 && c<=255 && d>=0 && d<=255) { sprintf(temp, "%d.%d.%d.%d",a,b,c,d); //把格式化的数据写入字符串 temp if(strcmp(temp,str)==0) { printf("YESn"); } else { printf("NOn"); } } else { printf("NOn"); } } return 0; }
想要更多阿里巴巴实习、校招的机会。请点击这里