![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
zqt520
这个作者很懒,什么都没留下…
展开
-
shell脚本是防止多次运行
#!/bin/bash## file locking using bash.# ver 0.1.6## author : malundao ( malundao@sina.com )# date : 2011-08-31 # ref : http://unix.derkeiler.com/Newsgroups/comp.unix.shell/2005-09/0472.h原创 2013-12-06 10:43:06 · 721 阅读 · 0 评论 -
排序之逆序数
求数组A[1:n]的逆序对数, 如果iA[j]则(i,j)则称为一个逆序对。数组的逆序对数就是5.求逆序对数最简单的算法就是把数组的元素两两比较下,判断是否逆序对,复杂度为O(n^2).有没有复杂度更低的算法呢?是否可以从排序算法的角度去思考逆序数?排序的过程就是要把逆序的数的次序进行纠正的过程,复杂程度很有可能与逆序对的数量是有关的。1. 逆序对的数量与数组中原创 2012-09-19 22:42:21 · 835 阅读 · 0 评论 -
中兴软件研发面试
1. 下面这段代码的输出是多少(在32位机上). char *p; char *q[20]; char *m[20][20]; int (*n)[10]; struct MyStruct{char dda;double dda1;int type ;};MyStruct k;转载 2012-10-09 20:35:37 · 866 阅读 · 0 评论 -
关于union
先从两个例子讲起:例一:union u{ int i; char x[2];}a; int main(){ a.x[0] = '1'; a.x[1] = '2'; printf("%d\n", a.i); return 0;}结果打印出一个地址原创 2012-10-08 23:21:48 · 591 阅读 · 0 评论 -
一些C++ 面试的题目收藏
1 #i nclude “filename.h”和#i nclude 的区别?#i nclude “filename.h”表明该文件是用户提供的头文件,查找该文件时从当前文件目录开始;#i nclude 表明这个文件是一个工程或标准头文件,查找过程会检查预定义的目录。2 头文件的作用是什么?答:一、通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要转载 2012-10-08 23:34:04 · 1219 阅读 · 0 评论 -
二叉树
#include "iostream"#include "stdlib.h"#include "stdio.h"#include "malloc.h"#define STACK_INIT_SIZE 5#define STACKINCREMENT 1#define OK 1#define NULL 0using namespace std; typedef str原创 2012-09-17 22:48:59 · 385 阅读 · 0 评论 -
360 12年笔试题!
题目比较基础,考察的面也比较广,主要是操作系统和编程细节10个行测性质的题目;35道选择题;三道大题(其中编程题目两道,英译汉一道)重点指出错误之处:1.逗号表达式取最后的值 int c=1,b=3; int a; a=(c+1,b); printf("%d",a); 结果为32.char a[3],b="china";a=b; printf("%s",a);结果原创 2012-10-08 23:17:54 · 1304 阅读 · 0 评论 -
c++100题
用C++写个程序,如何判断一个操作系统是16位还是32位的?不能用sizeof()函数。 【参考答案】 int a = ~0;if( a>65536 ){ cout<<"32 bit"<<endl;}else{ cout 多态类中的虚函数表是Compile-Time,还是Run-Time时建立的? 【标准答案】虚拟函数表是在编译期就原创 2012-10-08 00:07:15 · 1029 阅读 · 1 评论 -
inline 函数和宏的比较
#define TABLE_COMP(x) ((x)>0?(x):0) 就定义了一个宏。 为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放 在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地 方。这种转移操作要求在转去执行前要保存现场并记忆执行的地址,转回后要恢复现 场,并按原来保存地址继续执行。因此,函数调用要有一定的转载 2012-10-07 23:57:14 · 810 阅读 · 0 评论 -
gprof介绍
gprof介绍gprof是GNU profiler工具。可以显示程序运行的“flat profile”,包括每个函数的调用次数,每个函数消耗的处理器时间。也可以显示“调用图”,包括函数的调用关系,每个函数调用花费了多少时间。还可以显示“注释的源代码”,是程序源代码的一个复本,标记有程序中每行代码的执行次数。为gprof编译程序在编译或链接源程序的时候在编译器的命令行参数原创 2012-10-04 23:55:02 · 478 阅读 · 0 评论 -
Linux中的clone()函数
int clone(int (*fn)(void *), void *child_stack, int flags, void *arg);这里fn是函数指针,我们知道进程的4要素,这个就是指向程序的指针,就是所谓的“剧本", child_stack明显是为子进程分配系统堆栈空间(在linux下系统堆栈空间是2页面,就是8K的内存,其中在这块内存中,低地址上放入了值,这个值就是进程控制块t原创 2012-10-04 23:27:45 · 751 阅读 · 0 评论 -
Linux下实现多线程的生产者消费者问题
Linux下实现多线程的生产者消费者问题一、原理的理解生产者-消费者问题是一个经典的线程同步问题,该问题最早由Dijkstra提出,用以演示他提出的信号量机制。在同一个线程地址空间内执行的两个线程。生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。消费者线程从缓冲区中获得物品,然后释放缓冲区。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释转载 2012-10-04 23:10:33 · 5762 阅读 · 1 评论 -
Linux 多线程通信
摘自资料(linux 与Windows不同) 线程间无需特别的手段进行通信,因为线程间可以共享数据结构,也就是一个全局变量可以被两个线程同时使用。不过要注意的是线程间需要做好同步,一般用mutex。可以参考一些比较新的UNIX/Linux编程的书,都会提到Posix线程编程,比如《UNIX环境高级编程(第二版)》、《UNIX系统编程》等等。 linux的消息属于IPC,也就是进程间原创 2012-10-04 22:55:40 · 887 阅读 · 0 评论 -
进程,轻量级进程,内核线程,用户线程的区别关系
进程,轻量级进程,内核线程,用户线程的区别关系在现代操作系统中,进程支持多线程。进程是资源管理的最小单元;而线程是程序执行的最小单元。一个进程的组成实体可以分为两大部分:线程集合资源集。进程中的线程是动态的对象;代表了进程指令的执行。资源,包括地址空间、打开的文件、用户信息等等,由进程内的线程共享。线程有自己的私有数据:程序计数器,栈空间以及寄存器。Why Thread?(传统单线程进原创 2012-10-04 22:37:41 · 580 阅读 · 0 评论 -
百度笔试2011
第一题(30分)1.定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素,push和pop的时间复杂度都是O(1),请简要叙述你的思想#include "stdafx.h"#include "stdio.h"#define MAX_SIZE 100class Stack{private: int data[MAX_SIZE ]; int minData[原创 2012-09-21 18:42:14 · 513 阅读 · 0 评论 -
Bloom filter:大数据快速排除算法
Bloom filter是由 Howard Bloom在 1970 年提出的一种多哈希函数映射的快速查找算法,该算法能够在非常快速的判定某个元素是否在一个集合之外。这种检测只会对在集合内的数据错判,而不会对不是集合内的数据进行错判,这样每个检测请求返回有“在集合内(可能错误)”和“不在集合内(绝对不在集合内)”两种情况。目前Bloom filter在分布式系统中有着广泛的使用,比如说GFS转载 2012-09-21 20:53:07 · 747 阅读 · 0 评论 -
Linux下nm和ldd 命令
1. Linux nm 命令nm [‘-a’|‘--debug-syms’] [‘-g’|‘--extern-only’][‘-B’] [‘-C’|‘--demangle’[=style]] [‘-D’|‘--dynamic’][‘-S’|‘--print-size’] [‘-s’|‘--print-armap’][‘-A’|‘-o’|‘--print-file-name’][‘-转载 2013-09-30 16:40:57 · 543 阅读 · 0 评论 -
进/线程间同步 通讯的方法
linux进程通讯的方法: 管道/FIFO/共享内存/消息队列/信号/ 以上几种方式的比较: 1.管道:速度慢,容量有限,只有父子进程能通讯。 常见的单向进程间通信机制,发送信息的为发送进程,接受信息的为接受进程。管道通信的中间介质为文件,这样的文件为管道文件 2.FIFO:任何进程间都能通讯,但速度慢 3.消息队列:容量受到系统限制,且要注意第一次读的转载 2012-10-25 12:51:12 · 645 阅读 · 0 评论 -
关於SQL一些常用语句
1) 数据记录筛选: sql="select * from 数据表 where 字段名=字段值 order by 字段名 " sql="select * from 数据表 where 字段名 like ‘%字段值%‘ order by 字段名 " sql="select top 10 * from 数据表 where 字段名 order by 字段名 " sql="select * fr原创 2012-10-19 21:50:40 · 408 阅读 · 0 评论 -
SAN和NAS的区别
SAN是Storage Area Network的缩写,也就是说SAN是一个网络;NAS是Network Attached Storage的缩写,也就是说NAS是一个存储设备;因此SAN和NAS根本不是同一类东西,因此根本无法将它们进行比较。为什么有许多人要比较SAN和NAS,有以下两种情况:一,他们比较的是服务器是连接到Fabric网络(SAN)还是通过IP(转载 2012-10-19 20:57:29 · 615 阅读 · 0 评论 -
CMPI中的内存管理及在Open Pegasus 中的实现
本文首先简单介绍了 CMPI(Common Manageability Programming Interface) 规范与 Open Pegasus, 说明了 CMPI 规范中对多线程及内存管理方面的要求,然后以 Open Pegasus 中的实现为例,分析了为实现上述要求所需要的关键数据结构,最后全文进行了总结。CMPI(Common Manageability Programming原创 2012-10-19 22:14:42 · 694 阅读 · 0 评论 -
Linux进程间的同步方法的优缺点比较
Linux进程间通讯(IPC)方法主要有以下几种:管道/FIFO/共享内存/消息队列/信号1.管道中还有命名管道和非命名管道(即匿名管道)之分,非命名管道(即匿名管道)只能用于父子进程通讯,命名管道可用于非父子进程,命名管道就是FIFO,管道是先进先出的通讯方式2.消息队列是用于两个进程之间的通讯,首先在一个进程中创建一个消息队列,然后再往消息队列中写数据,而另一个进程则从那个消息队列转载 2012-10-16 22:19:11 · 939 阅读 · 0 评论 -
面试题
1.链表和数组的区别在哪里? 2.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法? 3.编写实现数组排序的一种算法。说明为什么你会选择用这样的方法? 4.请编写能直接实现strstr()函数功能的代码。 5.编写反转字符串的程序,要求优化速度、优化空间。 6.在链表里如何发现循环链接? 7.给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里。 因为一共有N原创 2012-09-25 10:39:24 · 463 阅读 · 0 评论 -
KMP
KMP算法详解我们从一个普通的串的模式匹配算法开始讲起,这样你才能更深入的了解KMP算法及其优点。咱们先来看看普通的串的模式匹配算法是怎么进行比较的主串 (S) a b a b c a b c a c b a b子串 (T)a b c a c (子串又被称为模式串)红色表示当前这趟比较指针所在位置,兰色表示当前这趟比较中匹配的部分第一趟(详细过程)a转载 2012-09-23 23:44:24 · 380 阅读 · 0 评论 -
快速匹配算法(KMP)
快速匹配算法(KMP) ,核心之处在于:主串指针不用回溯,直接前进!!!关键之处在于: NEXT[i]的值的求法,KMP算法其实很简洁的!!!==================================================================/* KMP algorithms for string comparse...*原创 2012-09-23 22:55:16 · 816 阅读 · 0 评论 -
出栈次序问题
编号为 1 到 n 的 n 个元素,顺序的进入一个栈,则可能的出栈序列有多少种?有关堆栈和Catalan数的思考** ** * ** * * ** * * * * 形如这样的直角三角形网格,从左上角开始,只能向右走和向下走,问总共有多少种走法?问题的由来:编号为 1 到 n 的 n 个元素,顺序的进入一个栈,则可能的出栈序列有转载 2012-09-23 19:49:00 · 6061 阅读 · 5 评论 -
C语言运算符优先级 详细列表
文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。恩,问这个问题的人太多了,懒得继续回答,直接贴上来自己看。。。优先级运算符名称或含义使用形式结合方向说明1[]数转载 2012-09-22 23:36:14 · 717 阅读 · 0 评论 -
static
C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。 3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。 4)栈——增长方向:自顶向下增长;自动变量以原创 2012-09-22 20:58:35 · 402 阅读 · 0 评论 -
Linux--Linux进程编程小结
进程是正运行于自己的虚拟地址空间的一个具有独立功能的程序,简单地说,进程是程序的一次运行。进程有一定的映像(代码段、数据段和堆栈段),进程是资源的分配单元,进程具有一定的环境。1、进程的结构进程上下文描述进程及其运行环境,它由用户级环境(用户栈的内容、用户地址空间的正文段、数据段)、寄存器环境(硬件寄存器的内容)以及系统级环境(PCB、核心栈的内容、区表和页表)等组成。PCB由两部分数据结原创 2012-09-21 21:27:15 · 460 阅读 · 0 评论 -
strstr
char *strstr(const char *s1, const char *s2) { int n; if (*s2) { while (*s1) { for (n = 0; *(s1 + n) == *(s2 + n); n++) { if (!*(s2 + n + 1)) return (char *) s1;原创 2012-10-04 22:05:59 · 377 阅读 · 0 评论 -
经典算法题--求对策字符串的最大长度
方法一:思路很中规中矩,遍历这个字符串,若有发现相邻的两个字符相等,就循环判断与这两个字符相邻的两个字符是否相等, 直到不等,记下字符符合条件的字符个数。最大的个数即为所求。(此方法适合如google这样的字符串)int counterplan1(const string str) { int strlen=str.length(); int maxlen=0转载 2012-10-02 21:41:27 · 593 阅读 · 1 评论 -
交换两序列a,b中的元素,使序列a的和与序列b的和之间的差值最小
题目: 有两个序列a,b,大小都为n,序列元素的值任意整数,无序;要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。例如: var a=[100,99,98,1,2, 3];var b=[1, 2, 3, 4,5,40];求解思路: 当前数组a和数组b的和之差为 A = sum(a) - sum(b)转载 2012-10-01 15:18:47 · 2732 阅读 · 0 评论 -
从1到N正数中1出现的次数
一问题描述:求1到n中,十进制数中,1出现的次数总和 方法1 对每一个数x,x先与10取余,然后判断x/10之后,是否为0,不为0则继续上述操作 复杂度为o(n) 方法2: 此题不要以为是重复计数,必须要重复计数,,因为100001 ,这个数字,需要记两次,一次首位为1,另一次不计首位,后几位为1. 这样的话,就有重复计转载 2012-10-01 12:56:58 · 1487 阅读 · 0 评论 -
栈的push、pop序列
题目:输入两个整数序列。其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序。为了简单起见,我们假设push序列的任意两个整数都是不相等的。 比如输入的push序列是1、2、3、4、5,那么4、5、3、2、1就有可能是一个pop系列。因为可以有如下的push和pop序列:push 1,push 2,push 3,push 4,pop,push 5,pop,pop,p转载 2012-10-01 11:52:54 · 451 阅读 · 0 评论 -
双引号、单引号、反斜杠的区别
来自:http://www.opsers.org/linux-home/base/shell-in-single-quotes-double-quotes-backticks-use-a-backslash.htmlshell可以识别4种不同类型的引字符号: 单引号字符(”) 双引号字符(“”) 反斜杠字符(\) 反引号字符也就是ESC下方的键(`)1. 单转载 2012-09-30 22:15:27 · 1199 阅读 · 0 评论 -
内联函数与宏的区别
内联函数与宏的区别 浅谈了内联函数,似乎也该对宏重新认识下了,然后再总结下宏和内联函数的区别。毫无疑问,平时使用宏要比使用内联函数多得多,但是自己却没有去总结过这个再也熟悉不过的宏。很多时候,我们使用一样东西,往往因为它给你带来了方便而一味的使用它,但是却没有去想过它有什么缺陷,什么时候不能用它。下面引用杨凡的论文《浅析C++中内联函数与宏的区别》来说明。 1.宏转载 2012-09-29 13:13:01 · 581 阅读 · 0 评论 -
2012年华为杯校园编程大赛决赛 类别:软件C/C++语言
2012年华为杯校园编程大赛决赛类别:软件C/C++语言 编程题(共1题,100分。请上机编写程序,按题目要求提交文件。测试用例不对考生公开,凡不满足提交要求导致不能运行或用例不通过,不予评分。)1. 俄罗斯方块之棋盘覆盖俄罗斯方块是一款风靡全球的益智类游戏。由俄罗斯人阿列克谢·帕基特诺夫发明,故得此名。俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输原创 2012-09-13 12:03:46 · 1131 阅读 · 0 评论 -
poll 的例子
server:/* * Pollserver.c * * Created on: 2012-9-9 * Author: sangerhoo */#include#include#include#include#include#include#include#include#include#include#include#include#i原创 2012-09-09 00:43:28 · 2773 阅读 · 0 评论 -
阿里一面、二面路过,,口水都说干了。
阿里一面、二面路过,,口水都说干了。。。 抱着打酱油的心态参加了阿里的沙龙。。或许是第二题我给了个思路,简短自我介绍之后就是各种算法,记忆如下:1、数据挖掘有什么算法,你熟悉什么算法2、SVM有哪些优势,(x,y,z)三个特征如何用径向基核函数抽取第四维特征,这题想了好久。。好难啊。。3,推荐有什么算法,,你项目中用到什么算法。。4,转载 2012-09-07 12:35:02 · 5951 阅读 · 1 评论 -
深入解析序列点
int i = 3;i = i++;cout 结果是什么?有人可能会说是3,也有人可能会说是4,更多的人在骂出题的人白痴,但这语句究竟有何问题呢?未必每个人都清楚。有些人也许马上会说,这是“未定义行为”。没错,这是一个典型的未定义行为。i = i++这个表达式合乎C++语法,能够顺利编译通过,但是执行的结果,标准说“未定义”。为什么是“未定义”,深究起来,要从序列点说起。序列点转载 2012-08-22 22:23:30 · 349 阅读 · 0 评论