自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 收藏
  • 关注

原创 判断机器的大小端模式

大端: 数据的高字节在低地址 , 数据的低字节在高地址小端:数据的低字节在低地址,数据的高字节在高地址采用联合体的方法来确定大小端#include using namespace std;union A{ char c[2]; short s;};void main(){ union A a1; a1.s = 0x1234; printf("

2012-09-25 09:31:16 863

原创 一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5}是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数。

一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5}是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数。先将数组右移恢复为原来的递减数列,然后运用二分查找即可。 #include using namespace std; void zuoyi(int a[] ,int len){ int i , j, k, tmp; for(

2012-09-20 21:35:06 2505

原创 求出两个字符串的最大公共字符串

例如字符串 str1 = "abcdefg";str2="cdefbcderg";最长的公共字符串为 cdefvoid getcommon(const char *str1 ,const char *str2){      int i ,j ,len1 ,len2 ,count,max;      char *pa ,*pb;      max = 0;

2012-09-20 10:44:41 782

原创 华为上机试题

1. 从两个数组的最后一个元素比较两个数组中不同元素的个数,如有array1[5]={77,21,1,3,5}, array2[3]={1,3,5},从array1[4]与array2[2]比较开始,到array1[2]与array[0]比较结束。这样得出它们不同的元素个数为0,若array1[6]={77,21,1,3,5,7},那么他们不同的元素为3。   函数原型为 int compare_

2012-09-16 17:05:43 777

原创 输入N个数,从1开始数数到m就把这个数删去,从新从它的下一个从1开始数,直到把所有的都删除。

采用循环单链表的方法:每当遇到m的时候就把这个值从链表中删去,从新从它的下一个链表开始数数。#include using namespace std;typedef struct circleLink{ int data; struct circleLink *next;}node;node *create(int n){ node *head =

2012-09-16 10:22:07 1710

原创 将整数转化为二进制,采用递归方法

#include using namespace std;#define N 100char a[N];void convert(int n,int i){ if(n>0) { a[i] = n%2; n = n/2; i++; convert(n , i); }}void main(){ int i; for(i =

2012-09-09 20:46:21 828

原创 关于指针 与 字符数组

在我们写代码中使用到指针的字符串时,经常会出现运行错误,大部分出现的错误是试图去改变指针的字符串的内容。指针的字符串的内容是保存在静态数据区的,是不能够改变的。需要使用字符数组。例如改变char *p="abcdef";p[1]='d';这是错误的不能改变里面的内容,但是可以使用里面的数据char p[]="abcdef";p[1]='d';这是可以的,数组是临时变量,

2012-09-09 20:15:08 459

原创 n个人,两成一个圈,编号从0到n-1 .从0开始数,遇到3或者3的倍数,那么就删除这个数,从下一个从新开始数,最后剩下的数的编号。

我采用的是循环链表的方法,没遇到一个符合的数,则就删除这个数。继续读取下一个数。首先创建链表:给这个链表节点的赋值分别从0到n-1。由于是循环链表,最后的节点需要指向头结点。我这个头结点不仅仅是指针,还有数据。#include using namespace std;typedef struct LinkNode{ int data; struct Link

2012-09-09 19:54:35 2126

原创 实现双链表的排序

实现双链表的排序:方法一:就是不变动节点,只把节点中数据进行交换。采用选择排序法: #include using namespace std;typedef struct DouLinkNode{ int data ; struct DouLinkNode *pre ,*next;}node;node *create(int n)

2012-09-07 20:32:28 5731

原创 使用俩个栈实现一个队列的功能

使用两个栈实现一个队列的先进先出的功能。#include #include using namespace std;class CQueue{public: CQueue() {} ~CQueue() {} void appendTail(const int &element ); // append a element to

2012-09-02 20:56:06 595

原创 声明一个类MyString,定义它里面的各个函数

题目:类CMyString的声明如下:class CMyString{public: CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(void); CMyString& operator = (const CMyString& str);private: char* m_pData;};

2012-09-02 20:27:13 3019

原创 网络地址划分

目前的网络IP是32位的。属于IPV4 。IPV6是128位。目前的网络是32位,分为4段。每段8位。 A类地址是网络位有8位,主机位有24位,可以容纳很多的主机,一般是属于大型的网络。子网掩码是 255.0.0.0可用的网络地址范围是:0~1270XXXXXXX.00000000.00000000.00000000但是实际可以用时1~126因为127.X.X.X 0.

2012-09-02 19:42:46 1412

原创 将数组里面的奇数全部排在前面,偶数排在后面

方法一:声明一个数组,与原来的数组大小一样,遍历原来的数组,把找到的奇数放在前面,找到的偶数放在后面。#include using namespace std;void tiaozheng(int a[],int n){ int i,j,k,m; int b[100]; k =0; m =

2012-09-02 19:27:31 9700

原创 将给出的字符全排列

题目:输入一个字符串,打印出该字符串中字符的所有排列。 例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串 abc、acb、bac、bca、cab 和cba。 #include using namespace std;void f(char *str ,int start ,int end){ if(start == end) { cout<<str<

2012-09-02 18:59:20 856

原创 计算二叉树的任意两节点的最远距离。

利用计算二叉树高度的方法计算两个节点最远距离。计算出一个节点的深度,左右子树的深度,然后加起来,就是这个节点的最远的距离了。然后遍历二叉树的所以的节点,找出最大的节点即可。#include using namespace std;typedef struct BtreeNode{ int data; struct BtreeNode *left,*right;}no

2012-09-02 16:31:45 1904 1

原创 排序的时间复杂度为O(n),空间复杂度为O(1)

利用整数的范围一般是0~65535.我们就声明一个65535大小的数组exist[65535]然后,让待排序的数组a[]={1,2,3,4,5,1,6,3};让数组a[]的每个值作为数组exist[]的下标,例如exist[a[0]] = exist[1] ++。由于出现了两个1,所以exist[1] = 2;以此类推得到了exist[2] =1,exist[3] =2 ,exist[4]

2012-09-02 15:40:23 1847

原创 48.微软: 一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5} 是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数。

48.微软: 一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5} 是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数。#include using namespace std;int findx(int a[] , int k ,int start ,int end){ int i; int m =end ; int mid;

2012-09-02 14:58:19 1165

原创 求一个矩阵中最大的二维矩阵(元素和最大).

1 2 0 3 4 2 3 4 5 1 1 1 5 3 0 中最大的是: 4 5 5 3 要求:(1)写出算法;(2)分析时间复杂度;(3)用C 写出关键代码#include using namespace std;void findx(int a[][5] , int m ,int n){ int i ,j ,tmp ,count[100], k,x,y; k = 0;

2012-09-01 19:40:27 987

原创 实现一个挺高级的字符匹配算法: 给一串很长字符串,要求找到符合要求的字符串,例如目的串:123 1******3***2 ,12*****3 这些都要找出来

实现一个挺高级的字符匹配算法: 给一串很长字符串,要求找到符合要求的字符串,例如目的串:123 1******3***2 ,12*****3 这些都要找出来方法一:#include using namespace std;bool is_baohan(char *str1 ,char *str2){ int i , j ,k ,len1 ,len2; bool is_b

2012-09-01 19:01:59 4590

原创 在从1 到n 的正数中1 出现的次数

题目:输入一个整数n,求从1 到n 这n 个整数的十进制表示中1 出现的次数。 例如输入12,从1 到12 这些整数中包含1 的数字有1,10,11 和12,1 一共出现了5 次。 分析:这是一道广为流传的google 面试题。采用的方法是把整数转化为字符,然后统计‘1’的个数#include using namespace std;int findx(int num){

2012-09-01 16:46:11 1323

原创 跳台阶问题

题目:一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级。 求总共有多少总跳法,并分析算法的时间复杂度。 这道题最近经常出现,包括MicroStrategy 等比较重视算法的公司 都曾先后选用过个这道题作为面试题或者笔试题。 #include using namespace std;int f(int n){ if(n==0) { return 1;

2012-09-01 15:24:31 549

原创 将字符串进行左右移动

将字符串abcdefg 左移变为 efgabcd先把字符串整体的逆置,然后,在单独的拟制#include #include using namespace std;char *xuanzhuan(char str[], int m){ int i,len; char tmp; char *p = str; len = strlen(str); for(i

2012-09-01 15:06:32 1254

原创 单链表合并

将两个单链表合并,一般前提是两个单链表是已经排好序的,默认是按升序排列的。#include using namespace std;typedef struct LinkNode{ int data; struct LinkNode *next;}node;node *merg(node *head1,node *head2){ node *pa=head1

2012-09-01 14:06:24 497

原创 中兴通讯2012笔试题删除双向循环链表中相同的数值

双向循环链表pHeadA ,pHeadB,例如 pHeadA 数据为 1,2,3,4,5,7 pHeadB数据为 1,2,6,2,1,7,3删除相同数值后为  pHeadA 4,5  pHeadB 6#include using namespace std;typedef struct DoubleLinkNode{ int data; struct Doub

2012-08-31 17:32:52 2251

原创 全局变量,局部变量,静态变量,const

全局变量:全局作用域,只需在一个源文件里定义,就可以作用于所有的源文件了,如果没有包含这个变量的其他文件可以用extern关键字,进行声明,扩大了作用域范围。                 它的数据存储在静态数据区。局部变量:局部作用域,只能在局部函数中使用,调用函数是分配栈内存,函数使用完成后,释放内存。数据存储在栈中。静态全局变量:作用于定义它的文件里面,其他的文件不能使用,不能

2012-08-31 15:24:11 717

转载 2012年腾讯校园招聘笔试

腾讯的笔试题目比较基础具体的题目记不清除了,设计到的知识点:1.c语言基础:sizeof,strlen的用法。2.linux基本命令umask3.SQL语言4.数据结构的知识,建立二叉树,顺序表操作的复杂度5.操作系统的知识:通过页表确定物理地址,死锁(说有6个进程,每个进程需要5个同样资源才能运行,问系统中至少要几个资源才能保证不出现死锁?),页换出次数(使用LRU),文

2012-08-19 18:19:18 592

原创 strcmp() , strncmp();

int strncmp(const char *str1 , const char *str2 , int n);比较 字符串的前n个字符,相等则返回 0;如果不相等那么返回 str1[i] - str2[i];int my_strncmp(const char *str1 , const char *str2 ,int n){ int i = 0; int k; for(

2012-08-19 17:34:14 512

原创 C++中将短数据类型扩展为长类型

首先:任何数据在计算机内都是以二进制的补码形式存储的。对数据的处理是对这个二进制的补码进行的操作。 void main() { cout<<"将有符号的数转换为无符号的数:"<<endl; cout<<"将short int 装换为 int 类型:"<<endl; short int a = 0x7000; // 28672 unsigned in

2012-08-18 19:36:52 612

原创 堆排序

堆排序 是利用堆的性质进行的一种选择排序,她是不稳定的一种排序方法。堆排序将元素看做为一颗完全的二叉树。例如对于数组 a[]={51,38 ,49 , 27,62,5,16,38};                       51                     /   \                   38   49                 /

2012-08-18 16:25:33 326

原创 微策略笔试试题

1 。奇数个整数,其中只有一个整数重复奇数次,其他的重复偶数次。找出奇数次的整数肯定是要求了时间复杂度了的,如果按照普通的算法,时间复杂度为 n^2 ;异或运算 可以用来进行数据交换: 交换两个数字的大小  a=9;  b=10;  a=a^b;  b=b^a;  a=a^b;  结果是a为10,b为9. 采用位运算的方法,利用异或运算,两个相同的数

2012-08-17 16:43:01 2487

原创 C,C++运算符优先级

优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右 ()圆括号(表达式)/函数名(形参表) .成员选择(对象)对象.成员名

2012-08-16 20:19:26 949

原创 关于 字符串的赋值 char *strcpy(char *dest ,char *src) 中越界问题

char *strcpy(char *dest ,char *src){  assert(dest != NULL && src != NULL);  char *address = dest;  while((*address++  = *src++) != '\0')  {       NULL;  }  return dest;} Void tes

2012-08-16 18:27:24 1883

原创 编写实现 函数char *strcat(char *dest ,char *src)

实现函数char *my_strcat(char *dest ,char *src);将字符串src中的字符添加到字符串dest的结尾处。char *my_strcat(char *dest ,char *src){        char *p;        p = dest;        while(*p != '\0')       {

2012-08-16 16:05:22 2505

原创 一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生信息。

一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起,给出一个age,在些链表中删除学生年龄等于age的学生信息。typedef struct stu{    char name[20];    char sex;    int no;    int age;    struct stu * next;}node;node *c

2012-08-16 15:19:07 3565

原创 将字符串的小写字母转换为大写字母

void fun( char *str ){       int len ;  len = strlen(str);  char *p = str;  //char *dest=(char*)malloc(len);   while(*p != '\0')  {            if( *p>='a'&&*p      {

2012-08-16 11:33:04 1257

原创 编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入2004年12月31日23时59分59秒,则输出2005年1月1日0时0分0秒。

编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入2004年12月31日23时59分59秒,则输出2005年1月1日0时0分0秒。 void time_next(int y ,int mo ,int d ,int h ,int mi , int s){            int  s_1  = 0;        int  mi_1 = 0;

2012-08-16 10:21:45 8168

转载 2012淘宝校园招聘试题

9月23号进行的,我在成都参见的。一天都搞完了,三次面试。一面很过瘾啊。拿到了淘宝的offer。希望给大家有些帮助吧。1. 淘宝的笔试题目:http://blog.csdn.net/randyjiawenjie/article/details/67962752. c/c++操作访问数据,是堆中的数据快还是栈中的数据快?3. 红黑树的查询时间复杂度是多少?4. 旋转数组问题,

2012-08-13 17:00:13 1237

转载 2012网易校园招聘笔试试题

1.长度为M字符串匹配与长度为N的字符串匹配的时间复杂度?我查了查,O(M + N)。KMP能做到。这里:http://blog.csdn.net/meixr/article/details/64568962.排序的稳定性:选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法3.二叉平衡树的插入问题。此时,插入

2012-08-13 16:58:44 1202

原创 2012百度校园招聘笔试试题

1.字符串倒转(优化空间时间)2.层次遍历,按层次输出二叉树节点3.最多32000个数,最大为32000,对其查找不重复的数字(使用位图),当然内存有限制,但是位图可以装得下。4.手机输入法,通讯录查找优化。 使用字典树来解决。

2012-08-13 16:57:30 662

原创 2012联发科校园招聘手机软件部门试题详解

2012联发科校园招聘 手机软件部门笔试&第一轮面试 试题详解 选择题我有印象的:1.int p = (short)0x8000,问打印p是多少?-32678将16 位short扩展为   32位int ,把符号位一起扩展 oxffff8000,最高位为 1是负数,取反加1 得到-32768 2.##的使用(连接):define call(x,y) x##y3.

2012-08-13 16:56:20 3538

空空如也

空空如也

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

TA关注的人

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