自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学无止境

stay hungry stay foolish

  • 博客(86)
  • 收藏
  • 关注

原创 使用libnet构造ARP响应包

//编译方式gcc arp.c -lnet//arp.c#include stdio.h>#include libnet.h>#define MAC_ADDR_LEN 6#define IP_ADDR_LEN 4//向同一网络内所有机器发送ARP REPLY包,告诉他们,23.23.23.2Z在00:df:17:17:17:f2那里int main(int argc, char *argv

2013-10-31 11:54:56 1255

原创 UDP server

学习网络编程时所写的一些代码,由于工作较忙,没太多功夫整理,也基本没有注释,如有疑问希望自己去查手册。这些程序都在linux下写的。//使用recvmsg,和sendmsg进行收发//udp-server2.c#include stdio.h>#include stdlib.h>#include sys/types.h>#include netdb.h>#include sys/soc

2013-10-31 11:54:54 1205

原创 准备去深圳

明天早晨就要离开成都去实习了,所以这段时间恐怕没多少时间照顾博客了,希望各位支持我的朋友能够理解。不过我的博客不会消失的,什么时候我有时间上网,我会第一时间来博客看的。 管理员在2009年8月13日编辑了该文章文章。 --> -->

2013-10-31 11:54:49 665

原创 ubuntu pdf乱码、方块字

乱码:一般情况下,用自带的阅读器看PDF是有乱码的,也就有人提示安装sudo apt-get install xpdf-chinese-simplified来解决,但是偶尔也有人(跟我一样)安装了xpdf-chinese-simplified,还是有乱码。嘿嘿。那么就按照下面的办法来吧!1.在下载poppler-data,解压2.在终端执行:cd /解压路径/poppler-dat

2013-10-31 11:54:47 745

原创 深信服笔试题

题很多,共8页1.sort(int array[], int n);//排序,让小于等于0的数放在左边,大于0得数放在右边,要求时间复杂度为O(n);2.假设有1001个棋子,你和一个人拿这些棋子,谁拿到最后一个,算谁赢,每次只能拿1,2,4个棋子。你先出手,是否有把握必赢,如果没有,说明为什么。3.编写atoi,itoa程序。4.判断一个数是2的N次幂,要求用速度最快的方法。

2013-10-31 11:54:45 1347

原创 10个数选5个,打印所有组合情况

#include iostream>/*10个数,取5个,打印出所有可能的组合,假设不考虑重复数字*/const int L=10; //10个数字const int C=5;//选5个int *x;/*偏移数组,后一个数相对于前一个数偏移的距离,至少为1比如1,2,3选两个数可能的情况 对应的x数组1 2        0 11 3        0 22 3        1 1*/bool

2013-10-31 11:54:43 6095

原创 再说链表逆序

有时碰到一些刁难程序员的问题,今天就碰到了一个。用递归实现链表逆序,zuii同学提到这个问题,我研究了一下,发现没那么容易写,容易出现死循环。继续我C语言风格的代码: #include stdio.h>#include stdlib.h>#include time.h>const int M=10;typedef int Type;typedef struct Node

2013-10-31 11:54:40 577

原创 网龙面试后的思考----开始读C++ primer

面试时,所问到的东西。1.接口定义的规范是什么?2.stl中map的原理,和时间复杂度是什么?3.mfc中document类和view类联系4.函数重载5.函数覆盖,函数覆盖与虚函数之间的关系很久之前就听人建议C和C++精通一个就行,算法才是灵魂,而去网龙面试却问到这么多我不擅长的东西。直接出局了。由于个人原因,导致我丧失了一次一次机会,我也很是遗憾。其实里面有些公司,还是很对我的胃口

2013-10-31 11:54:38 680

原创 网龙笔试

1.“ABC DEF GH.\nabc def gh.”反序为“GH. DEF ABC\ngh. def abc”即,以单词为单位进行反序,按行进行。标点符合不反序2.a.写一链表类,具有添加元素,初始化功能  b.链表反序3.简答C++有哪些方式的继承,对各基类属性有什么影响?C++有哪些类型转换方式,各用在哪里?什么情况下能进行隐式数据类型转换?C++里面的内存

2013-10-31 11:54:36 957

原创 蓝港在线面试题

因为小马的推荐,蓝港竟然给了我一次面试的机会。。。先让我做了个卷子,然后问了一些我的情况。下面把所问到的问题和做的卷子里的题,如下。竟然都记得还很清晰。笔试题逻辑题:1. 1+13X*X=Y*Y ,求X,Y整数值2.两个3,两个8,只许用+-*/()让他们一次等于243.12升水,有个9升,和5升的空桶,让你取出6升水4.13个球,有一质量不同,称三次,称出来5.M个人,有

2013-10-31 11:54:34 1721

原创 恒生笔试

觉得多参加些笔试,于是早早得就去参加恒生的笔试了。总得来说恒生的笔试题,除了数据库的其他的都太简单了。对于C/C++考查点1.知道先序,中序,求后序结果2.知道进栈序列,选不可能的出栈结果3.考查下列哪个排序属于稳定的:快排,归并,希尔,堆排4.考查程序的输出5.一些概念,比如数据结构是研究什么的,面向对象的三个特点是什么:封装、继承和多态。6.程序题N*N的棋

2013-10-31 11:54:31 1321

原创 第一个offer

还在焦急得等待tp-link,突然一个陌生的号码打了过了,很激动!!!    接了之后,竟然是网宿科技。。。一个只有一面,面了之后过了一个多星期才给通知的公司。效率如此之差,我就不说了。。。    然后电话的那边是个MM,声音很是甜美,很礼貌的问了我的邮箱,说是发一些有关offer 的事宜,等了1个多小时,终于看到QQ的邮件过来。令人气愤的是,竟然把我名字最后一个“方”字敲成“芳”字。。。

2013-10-31 11:54:29 562

原创 字符串查找与过滤

今天和一爱学习的技术MM聊天,关于怎样插入链表节点的,她把节点插在链表尾部,我给她提供了插入在首部的方法,更简洁,然后她回了句“我的是最笨的(附带大哭的QQ表情)”,突然想给她开个玩笑,于是回了句char tmp[10];char *test="我的是最最笨的";strcpy(tmp, strtok(test, "的"));strcat(tmp, strtok(NULL, "的"));程序员式的幽

2013-10-31 11:54:27 696

原创 面试题--找单数

面试时曾被问道,如果有一组数两两相同,而有一个落单,怎么求这个数。 一时没想到用异或,偶尔碰到一个同学聊了一会,恍然大悟。 然后又遇到一个题,如果有两个落单的呢,见一个高手的回复,对他真是赞不绝口啊,果然是人外有人,天外有天。不服都不得行了。。。 /*1.找单数(30%)    给定一个含有n个数的序列,这个序列中恰好有两个数出现一次,请你找出这两数。(假定

2013-10-31 11:54:25 617

原创 果然被BS了

果然不错我所料,迈普果然不敢要我!挺遗憾的,想想当时一起和我竞争职位的高手,虽是对手,彼此之间却如此友好。 有幸通过tp-link的笔试,其实tp的笔试题比迈普的简单多了,考得纯C的,如果仔细看过《深入理解计算机系统》这本书,基本可以拿到大部分题的分数。如果要通过还得熟悉数据结构,不过都挺简单,一个是树,给出一个n层的满二叉树,求叶节点之类的问题。另外是知道先序和中序遍历,求后序遍

2013-10-31 11:54:22 560

原创 笔经&&面经

找工作一段时间了,多少也有些经验,整理一下。一开始,是逢笔必挂,比如百度,竟然忘记看试卷后面有没有打题纸,无缘面试。二是腾讯,总算有所准备,结果偏偏遇到个背包问题的非递归实现,当时回溯算法没用熟,也挂了。然后是淘宝,考STL,我一直专注与C,结果也不用说了。然后是支付宝,考java,差点交个白卷。 每次挂了之后,也是相当郁闷,不过,我都努力弥补,努力复习数据结构,这些公司最

2013-10-31 11:54:20 1055

原创 链表逆序

假设链表为a->b->c->d逆序后为d->c->b->a  #include stdio.h>#include stdlib.h>typedef int Type;typedef struct Node{    Type data;    struct Node *next;}Node;void insert(Type data,Node **head){//插入

2013-10-31 11:54:18 504

原创 排序

/*快速排序*1.分解:将x[low:high]分为3段,x[low:pivotkey-1]*x[pivotkey],x[pivotkey+1:high]三段,使得*x[low:pivotkey-1]的所有元素小于等于x[pivotkey]*x[pivotkey+1,high]的所有元素大于等于x[pivotkey]*2.递归求解:分别对x[low:pivotkey-1],x[pivotkey+1

2013-10-31 11:54:16 464

原创 n皇后问题

在n行n列的棋盘上,如果两个皇后位于棋盘上的同一行或者同一列或者同一对角线上,则称他们为互相攻击。现要求找出使n元棋盘上的n个皇后互不攻击的所有布局。采用回溯算法,搜索整个解空间。求出所有解。递归回溯C语言风格#include iostream>using namespace std;long sum=0;bool Place(int k,int *p){//判断是

2013-10-31 11:54:13 563

原创 C++引用

引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名  说明:  (1)&在此不是求地址运算,而是起标识作用。  (2)类型标识符是指目标变量的类型。  (3)声明引用时,必须同时对其进行初始化。  (4)引用声明完毕后,相当于目标变量

2013-10-31 11:54:11 531

原创 ubuntu下使用bochs调试linux0.11

http://oldlinux.org/Linux.old/bochs/linux-0.11-devel-040329.zip用synaptic安装bochsbochsbiosbochs-xvgabios配置文件bochsrc-hd.bxrc修改如下,修改好后执行bochs -qf bochsrc-hd.bxrc# You many now use double quotes around pat

2013-10-31 11:54:09 817

原创 linux内核中ASCII字符判断函数

#define _U 0x01 /* upper */#define _L 0x02 /* lower */#define _D 0x04 /* digit */#define _C 0x08 /* cntrl */#define _P 0x10 /* punct */#define _S 0x20 /* white space (space/lf/tab) */#define _X 0x40 /

2013-10-31 11:54:06 941

原创 linux下使用汇编语言

intel语AT&T语法前缀AT&T语法寄存器前要加%,立即数前要加$。intel语法的16进制数和2进制数后加'h'和'b'。16进制数第一个如果为字母,在需要加前缀0。Intex Syntaxmov eax,1mov ebx,0ffhint 80hAT&T Syntaxmovl $1,%eaxmovl $0xff,%ebxint $0x80指令的方向,intel从右往左,AT&T从左

2013-10-31 11:54:04 969

原创 unix 汇编程序入门

有两种方式执行系统调用:使用c库,或者直接系统调用。c库的函数并不全部是系统调用外包,例如printf,malloc。直接的内核调用,更快速的获得内核服务。linux下的使用方法,eax中放调用号,可以在asm/unistd.h中查到。可传递6个参数,ebx,ecx,edx,esi,edi,ebp。如果还有更多的参数,他们将被简单的传成结构体作为第一个参数。返回值放在eax中。没有使用到栈。

2013-10-31 11:54:02 1237

原创 中断

中断是一种使CPU中止正在执行的程序而转去处理特殊事件的操作。这些引起中断的事件称为中断源,它们可能是来自外部设备的输入/输出请求,也可能是计算机的一些异常事故或其它内部原因。由外设控制器或协处理器(8087/80287)引起的中断一般称为硬件中断或外中断,由程序中安排的中断指令INT产生的中断,或由CPU的某些错误结果产生的中断称为软件中断或内中断。

2013-10-31 11:54:00 4183 2

原创 ubuntu下使用VirtualBox

感觉virtualbox这个虚拟机比较不错,界面比vmware舒服多了,而且提供了一个无缝模式。ubuntu下安装virtualbox输入synaptic查找virtualbox-osevirtualbox-ose-guest-modules-xxxvirtualbox-ose-modules-xxxxxx为你当前的内核,uname -r查看然后,你可以在里面安装个

2013-10-31 11:53:57 703

原创 启动linux

>http://www.kerneltravel.net/kernel-book/%E6%B7%B1%E5%85%A5%E5%88%86%E6%9E%90Linux%E5%86%85%E6%A0%B8%E6%BA%90%E7%A0%81.html13.1 初始化流程 加电或复位->bios启动->bootloader->操作系统初始化13.1.1系统加电或复位 将内存清零,校验内存,

2013-10-31 11:53:55 501

原创 linux内核特征

1.3.1 Linux内核的特征Linux是个人计算机和工作站上的Unix类操作系统。但是,它绝不是简化的Unix。相反,Linux是强有力和具有创新意义的Unix类操作系统。它不仅继承了Unix的特征,而且在许多方面超过了Unix。作为Unix类操作系统,Linux内核具有下列基本特征: 1. Linux内核的组织形式为整体式结构。也就是说整个Linux内 核由很多过程组

2013-10-31 11:53:53 700

原创 windows,哎

我只想说,我很恨windows,windows,虽然很多时候会给我带来便利,但是它的存在,只能让我把大量时间浪费在打游戏上,个人自制力差,没办法啊。    曾经一度想把windows卸载的干干静静,但是这个社会,大部分人都在用windows,不论是作业,还是娱乐,windows都必不可少,装在虚拟机里的windows要人感觉恨恼火。    暑假,打了近一个假期的游戏,本来来打算学习的,哎,

2013-10-31 11:53:48 413

原创 嵌入式实训归来

迪实训了12天,终于回来了。    安排的实训还是相当垃圾的,没有工钱的,自然不用说。实训其实感觉只是换个地方上课而已,只不过实训动手要多一些。    实训结束了,进入大四了,该为工作做准备了,大学的幸福生活也到此为止了。该去面对社会了。    其实实训也像我想象中的那样,其实也学不到多少东西,那里的老师的知识量也有限,可能是我接触过linux一段时间吧,对我来说,跟本不能算学习,只能

2013-10-31 11:53:46 719

原创 晦涩的语法

1. C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么? Int a = 5, b = 7, c; c = a+++b;这个问题将做为这个测验的一个愉快的结尾。不管你相不相信,上面的例子是完全合乎语法的。问题是编译器如何处理它?水平不高的编译作者实际上会争论这个问题,根据最左处理原则,编译器应当能处理尽可能所有合法的用法。因此,上面的代码被处理成: C++编译器在处理时尽可

2013-10-31 11:53:42 536

原创 typedef

1. typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。例如,思考一下下面的例子: #define dPS struct s * typedef struct s * tPS; 以上两种情况的意图都是要定义dPS 和 tPS 作为一个指向结构s指针。哪种方法更好呢?(如果有的话)为什么? 这是一个非常微妙的问题,任何人答对这个问题(正当的原因)是应当

2013-10-31 11:53:40 764

原创 字长

1. 评价下面的代码片断:unsigned int zero = 0; unsigned int compzero = 0xFFFF; /*1's complement of zero */对于一个int型不是16位的处理器为说,上面的代码是不正确的。应编写如下:unsigned int compzero = ~0;这一问题真正能揭露出应试者是否懂得处理器字长的重要性。在我的经验里,好的嵌入式程序

2013-10-31 11:53:37 502

原创 中断

1. 中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。具代表事实是,产生了一个新的关键字__interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。__interrupt double compute_area (double radius) { double area = PI * ra

2013-10-31 11:53:35 513

原创 类型转换

1.嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa55。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。这一问题测试你是否知道为了访问一绝对地址把一个整型数强制转换(typecast)为一指针是合法的。这一问题的实现方式随着个人风格不同而不同。典型的类似代码如下: int *ptr; ptr = (int *)

2013-10-31 11:53:33 489

原创 位操作

1. 嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。对这个问题有三种基本的反应 1). 不知道如何下手。该被面者从没做过任何嵌入式系统的工作。 2). 用bit fields。Bit fields是被扔到C语言死角的东西,它保证你的代码在不同编译器之间是不可移植的,同时也保证了

2013-10-31 11:53:31 485

原创 volatile

1. 关键字volatile有什么含意 并给出三个不同的例子。一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的

2013-10-31 11:53:29 420

原创 static

1. 关键字static的作用是什么?这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函

2013-10-31 11:53:26 419

原创 变量声明

用变量a给出下面的定义 a) 一个整型数(An integer) b) 一个指向整型数的指针(A pointer to an integer) c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer) d) 一个有10个整型数的数组(An array of 10 integers) e) 一个有10个指针的数组,该指针是指

2013-10-31 11:53:24 479

原创 嵌入式死循环

1. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?这个问题用几个解决方案。我首选的方案是: while(1) { } 一些程序员更喜欢如下方案: for(;;) { } 这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这个作为方案,我将用这个作为一个机会去探究他们这样做的 基本原理。如果他们的基本答案是:“我被教着这样做,但从没有想到过为什么。”这会给我

2013-10-31 11:53:22 1724

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除