
6 面试习题
文章平均质量分 53
jiyucn
这个作者很懒,什么都没留下…
展开
-
面试系列3--冒泡算法(优化)
冒泡是一个经典算法。本段代码增加了一些优化:增加 b_exchange ,若本轮冒泡没有交换数据,则表示排序成功,退出增加 n_exchange, n_head ,记录最近的交换位置,下轮冒泡只要冒到该位置即可 /******************************************************************** created: 200原创 2006-06-15 11:03:00 · 1407 阅读 · 0 评论 -
面试系列11--有符号与无符号的类型转换以及数位扩展问题
题目: int main() { unsigned int un; unsigned char uch; uch = (unsigned char) 128; un = uch; printf("un = %d/n", un); printf("un = %u/n", un); system("PAUSE");原创 2006-06-30 22:51:00 · 3093 阅读 · 1 评论 -
面试系列10--关于指针的加减操作的理解
原题: main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1)); } 程序输出是什么。解答: 程序输出: 2,5分析: 这里主要是考查关于指针加减操作的理解。 对指针进行加1操作,得到的是下一个元素的地址,而不是原有地址值直接加1。所以,一个原创 2006-06-22 11:22:00 · 10423 阅读 · 4 评论 -
面试系列8--返回整数中为1的位数(优化版)
原题: Write the function int bitCount(short input) that takes a short as input and returns an int. The function returns the number of bits set in the input variable. For instance: bitCount(7)原创 2006-06-19 11:32:00 · 1973 阅读 · 2 评论 -
面试系列7--用两个栈实现一个队列的功能
原题: 用两个栈实现一个队列的功能?思路: 假设两个栈 A 和B,且都为空。 可以认为栈 A 为提供入队列的功能,栈 B 提供出队列的功能。 入队列: 入栈 A 出队列: 1 如果栈B 不为空,直接弹出栈 B 的数据。 2 如果栈 B 为空,则依次弹出栈 A 的数据,放入栈 B 中,再弹出栈 B 的数据。原创 2006-06-17 14:35:00 · 2684 阅读 · 1 评论 -
面试系列6--TCP协议建立连接初期的“三次握手”
原题: TCP/IP通信建立的过程怎样?解答: TCP协议是面向连接的,两端主机需要同步双方的初始序号。同步需要双方都发送自己的初始序号,并且接收双方的确认(ACK)信息;同时接收对方的初始序号,并且发送确认的ACK。这个过程就是三次握手(Three-way handshake)。 A->B SYN:我的初始序号是X,ACK是0,设置SYN位,未设置ACK位。 B->A A原创 2006-06-17 14:33:00 · 2112 阅读 · 0 评论 -
面试系列1--返回整数中为1的位数
原题: Write the function int bitCount(short input) that takes a short as input and returns an int. The function returns the number of bits set in the input variable. For instance: bitCount(7原创 2006-06-13 20:15:00 · 1591 阅读 · 2 评论 -
面试系列5--以单词为最小单位翻转字符串(改进版)
原题: 以单词为最小单位翻转字符串 Write the function String reverseStringWordByWord(String input) that reverses a string word by word. For instance, reverseStringWordByWord("The house is blue") --> "blue is原创 2006-06-16 10:46:00 · 2303 阅读 · 1 评论 -
面试系列2--约瑟夫环问题(Josephus)
原题: 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。(约瑟夫环问题 Josephus)提示: 由于当某个人退出圆圈后,报数的工作要从下一个人开始继续,剩下的人仍然是围成一个圆圈的,可以使用循环表,由于退出圆圈的工作对应着表中结点的删除操作,对于这种删除操作频繁的情况,选用效率较高的链表结构,为了程序指针每一次都指向一个具体的代表一个人原创 2006-06-14 22:28:00 · 1760 阅读 · 0 评论 -
面试系列9--怎样才能检测到链表中存在循环
原题: 怎样才能检测到链表中存在循环 (from 《C专家编程》) 解答: 条件: 没有任何条件。 方法: 对访问过的每个元素作个标记,遍历整个链表,当第一次遇到作过标记的元素,则找到了环的开始节点。 条件: 链表存在于只读存储区,不可做标记。 方法: 把已检查过的节点指针放入一个数组中,每次检查新的节点指针的时候,就在表中查找,看是否存在相同的节点。如果存在,则表明该节点原创 2006-06-19 21:20:00 · 2081 阅读 · 1 评论 -
面试系列4--以单词为最小单位翻转字符串
原题: 以单词为最小单位翻转字符串 Write the function String reverseStringWordByWord(String input) that reverses a string word by word. For instance, reverseStringWordByWord("The house is blue") --> "blue is原创 2006-06-16 09:30:00 · 1491 阅读 · 1 评论 -
面试系列12--返回整数中1的位数(另外一种算法)
题目: Write the function int bitCount(short input) that takes a short as input and returns an int. The function returns the number of bits set in the input variable. For instance: bitCount(7)原创 2006-07-01 17:49:00 · 1812 阅读 · 2 评论