自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zxn、Sirius荣耀之路

做技术的、请走上坡路!

  • 博客(33)
  • 资源 (2)
  • 收藏
  • 关注

原创 [C/C++笔面试]编程查找两个字符串中的最大公共子串

C/C++笔试面试题编程查找两个字符串中的最大的公共子串

2016-08-28 17:00:55 3925

原创 [C/C++笔面试]自己编程实现strcmp

原型:extern int strcmp(const char s1,const char s2);用法:#include < string.h >功能:比较字符串s1和s2。一般形式:strcmp(字符串1,字符串2)说明:当s1 < s2时,返回值<0当s1 = s2时,返回值=0当s1 > s2时,返回值>0/*********************************

2016-08-28 14:45:57 1151

原创 [C/C++笔面试]判断字符串是不是回文

C/C++笔面试判断字符串是不是回文

2016-08-28 11:30:01 1551

原创 [C/C++笔面试]编程实现字符串中各单词的翻转

C/C++笔面试编程实现字符串中各单词的翻转编写函数,将“I am from Shanghai”倒置为“Shanghai from am I”,即句子中的单词位置倒置,而不改变单词内部的结构

2016-08-28 11:06:56 1641

原创 [C/C++笔面试]自己实现strstr库函数

C/C++笔试面试题自己实现strstr库函数编程实现字符串中子串的查找

2016-08-28 10:22:56 976

原创 [C/C++笔面试]自己实现Strlen,my_strlen最优解

C/C++笔试面试题strlen的实现两种方法

2016-08-27 15:25:54 972

原创 [C/C++笔面试]自己实现memcpy,小结strcpy与memcpy区别

C/C++笔试面试题自己实现memcpy小结strcpy与memcpy的区别

2016-08-27 13:58:47 1129

原创 [C/C++笔面试]不用库函数自己实现strcpy和strncpy

C/C++笔试面试题自己实现strcpy和strncpy

2016-08-27 13:43:10 3072

原创 [C/C++笔面试]不使用库函数将字符串转换为整数

与数字转换为字符串类似,C/C++提供了几个标准的库函数,可以将字符串转换为任意类型(整型,长整型,浮点型)的数字。下面列举其函数 atof();将字符串转换为双精度浮点型值 atoi();将字符串转换为整型值 atol();将字符串转换为长整型 strtod();将字符串转换为双精度浮点型值,并报告不能被转换的所有剩下数字 strtol();将字符串转换为长整型值,并报

2016-08-27 12:59:47 2831

原创 [C/C++笔面试]不使用库函数将整数转换为字符串

C/C++笔试题面试题不适用库函数将整数转换为字符串

2016-08-27 12:20:30 2456 1

原创 指针与引用的区别

区别如下:初始化要求不同:引用在创建的同时必须初始化,就是它必须引用到一个有效的对象;而指针在定义的时候不必初始化,可以在定义后面的任何地方重新赋值。可修改性不同:引用一旦被初始化为指向一个对象,它就不能被改变为另一个对象的引用;而指针在任何时候都可以改变为指向另一个对象。给引用赋值并不是改变它和原始对象的绑定关系不存在NULL引用:引用不能使用指向空值的引用,它必须总是指向某个对象;而指针则

2016-08-26 21:39:42 746

原创 内联函数与宏的区别

内联函数在编译时期展开,而宏是在预处理时期展开在编译的时候,内联函数可以直接被镶嵌到目标代码中,而宏只是一个简单的文本替换内联函数可以完成诸如类型检测,语句是否正确等编译功能,而宏没有这样的功能。宏不是函数,而内联函数是函数宏在定义的时候要小心的处理宏参数,一般情况下要把参数用括号括起来,否则容易出现一些二义性,而内联函数定义不会出现二义性。

2016-08-26 21:24:38 663

原创 C++中static关键字的作用

在C语言中static的作用如下第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。 第二、static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。 第三、static修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。Static修饰的局部变量

2016-08-26 21:21:02 1428

原创 const与#define的特点与区别

const与#define的特点与区别 define 只能用来做文本替换,编译器会在预处理阶段完成所有的宏替换,然后进行编译,因此define的生命周期停止于编译期。它存在程序的代码段中,而实际程序中它只是一个常数,一个命令中的参数,并没有实际的存在。 而const常量存放在程序的数据段,并在堆栈上分配了空间,它在程序中确确实实的存在者并可以被调用传递,const常量有数据类型,而宏常量没

2016-08-26 19:11:58 520

原创 #include<head.h>与#include“head.h”的区别

#include <head.h>/* 尖括号<>表明这个文件是一个工程或标准的头文件,在预处理查找过程中会首先检查系统预定义的目录,如果没有找到就报错 */#include "head.h"/* 双引号括起来的文件表明这是一个用户自定义的头文件,查找文件的时候会先在当前文件目录中查找,如果没有找到再去系统预定义的目录中查找,如果没有找到再报错 */

2016-08-26 19:06:54 1540

原创 C与C++有什么区别?

C与C++的区别简答 C是一个结构化的语言,它是面向过程的。它的重点在于算法与数据结构,对于语言本身C是C++的一个子集,C程序的设计首要考虑的是如何通过一个过程对输入进行运算处理得到输出。而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够配合对应的问题,这样就可以通过获取对象的状态信息得到输出或实现过程控制。 所以C与C++的最大的区别在于他们用于解决问题的思想方法不一样

2016-08-26 19:02:31 835

原创 Linux内核的五大组件

一个完整的Linux内核一般由5部分组成,它们分别是内存管理、进程管理、进程间通信、虚拟文件系统和网络接口。 1、内存管理 内存管理主要完成的是如何合理有效地管理整个系统的物理内存,同时快速响应内核各个子系统对内存分配的请求。Linux内存管理支持虚拟内存,而多余出的这部分内存就是通过磁盘申请得到的,平时系统只把当前运行的程序块保留在内存中,其他程序块则保留在磁盘中。在内存紧

2016-08-23 16:16:12 3689

原创 七层网络模型与四层网络模型以及每层网络协议

OSI七层网络模型 第一层 物理层   第一层负责最后将信息编码成电流脉冲或其它信号用于网上传输。它由计算机和网络介质之间的实际界面组成,可定义电气信号、符号、线的状态和时钟要求、数据编码和数据传输用的连接器。如最常用的RS-232规范、10BASE-T的曼彻斯特编码以及RJ-45就属于第一层。所有比物理层高的层都通过事先定义好的接口而与它通话。如以太网的附属单元接口(AUI),一个DB-

2016-08-22 22:36:08 1152

原创 U-Boot的启动流程

U-Boot的启动流程图示

2016-08-09 21:55:00 535

原创 Bootloader的作用、为什么需要Bootloader?

简单的说,BootLoader就是在操作系统运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统做好准备。对于Bootloader的启动过程又分为两个阶段stage1和stage2。stage1全部由汇编编写,它的主要工作是(1)初始化硬件设备、(2)为加载Bootlodader的stage2准备RAM空间(3)拷贝Bootl

2016-08-09 21:51:20 19410 4

原创 那些交叉编译问题总结

交叉编译的作用? 为什么需要交叉编译器? 交叉编译器的版本? 如何获取交叉编译器?面试回答:我们知道不同的平台CPU体系结构不同,所使用的汇编也不相同。比如Windows下是X86汇编生成的可执行文件,而ARM中需要ARM汇编生成的可执行文件。如果我们直接将x86平台下生成的可执行文件放入ARM中是不能执行的。因此嵌入式软件开发采用交叉编译方式,通过交叉编译器在宿主机上生成能够

2016-08-09 21:49:25 1092

原创 【面试】静态库与动态库的区别?

静态库与动态库的区别?静态库: 之所以成为【静态库】,是因为在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。因此对应的链接方式称为静态链接。 (1)静态库对函数库的链接是放在编译时期完成的。程序在运行时与函数库再无瓜葛,移植方便。 (2)它比较浪费空间和资源,因为所有相关的目标文件与牵涉到的函数库被链接合成一个可执行文件。 (3)另一个问题是静态库对程序的更新和

2016-08-09 21:43:45 843

原创 【面试】嵌入式软件与非嵌入式软件、设备驱动与裸机驱动开发区别

嵌入式软件开发与非嵌入式软件开发区别? 设备驱动开发与裸机驱动开发区别? 嵌入式开发与传统单片机开发区别?如果面试遇到这样的问题: 三个问题的答案一致。 答:我认为嵌入式软件与非嵌入式软件(设备驱动开发与裸机驱动开发/嵌入式开发与传统单片机开发)的最大的区别就是有无操作系统。对于无操作系统的开发:应用软件与驱动的耦合度过高,一旦硬件发生变化那么相对应的驱动也会发生变化,紧接着应用程序也需要

2016-08-09 21:41:10 3958

原创 判断二叉查找树是否是平衡二叉树(代码)

递归解法: (1)如果二叉树为空,返回真 (2)如果二叉树不为空,如果左子树和右子树都是AVL树并且左子树和右子树高度相差不大于1,返回真,其他返回假参考代码:/*********************************************************- Copyright (C): 2016- File name : isavl.cpp- Autho

2016-08-08 13:40:01 1179

原创 平衡二叉树(AVL树)深入解读

平衡二叉树又称AVL树性质:它或者是颗空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。若将二叉树节点的平衡因子BF定义为该节点的左子树的深度减去它的右子树的深度,则平衡二叉树上所有节点的平衡因子只可能为-1,0,1. 只要二叉树上有一个节点的平衡因子的绝对值大于1,那么这颗平衡二叉树就失去了平衡。 根据上述性质我们可以发现图(

2016-08-06 18:10:33 10261 4

原创 将树转化为二叉树表示

二叉树在数据结构的重要性是因为所有的树都可以通过简单的转换,而称为一棵二叉树。一般的树,每个结点都会有n个分支,这样处理起不同的分支的树都需要重新设计一套操作方案,而且空指针的问题会比二叉树更加的严重。来看一个例子,如下一颗树 如果需要将上图的树转换为二叉树,也就是由N个分支转换为2个分支。我们可以把每一个拥有同一父节点的子节点,也就是兄弟结点向右连接起来。保留最左边的父子连接,将其他的父子连接都

2016-08-05 20:14:45 4345 3

原创 二叉树的复制

复制二叉树在二叉树的使用上常常需要备份原来的二叉树。如何复制直接看代码/*********************************************************- Copyright (C): 2016- File name : copytree.c- Author : - Zhaoxinan -- Date : 2016年

2016-08-05 19:30:43 9058

原创 二叉树(BST树)内结点的删除(3种情况全解)

现在有一棵二叉树查找树如下: 如果我们需要删除一个结点,而且在删除之后,依然满足二叉查找树的数据排序策略。此时删除操作可分为一下三种情况。如下情况1:结点没有左子树 如图:一棵没有左子树的二叉树 如果在此情况下删除结点,按照结点的位置又可以分为三种处理方式。如下删除根结点:删除根结点也就是删除结点 5,此时只需将根结点指针指向其右子树结点。如下图 删除叶子结点:如果删除的结点是叶子结

2016-08-05 17:59:24 34716 8

原创 二叉树(BST树)的查找

如图:一棵二叉树我们把这样的二叉树称为二叉查找树或二叉排序树(也叫BST树Binary Search Trees) 其特性如下:每一个结点的值都不同,也就是整棵树中的每一个结点都拥有不同的值每一个结点的数据大于左子树结点(如果有的话)的数据,但是小于右子树的结点(如果有的话)的数据。左右两部分的子树,也是一课二叉查找树。如果二叉树的结点数据已经按照上述规则进行排序,二叉树的查找就十分简单。

2016-08-05 14:20:23 618

原创 按键监听实现Fragment跳转

/** * Created by 赵溪楠 on 2016/7/31. * 说明:主界面下方有四个Button,上方为Fragment,点击四个Button会跳转相应的Fragment。Demo */public class FarmMainActivity extends Activity implements View.OnClickListener{ //这里有四个Fragme

2016-08-03 22:54:41 1051

原创 Android从Fragment中跳转到Activity

/** * Created by zxn on 2016/8/2. * 说明:首先在Fragment的布局中设置监听,这里我监听的是Fragment中的 * 一个LinearLayout,实现点击该LinearLayout跳转到另一个Activity */public class Fragment_A_activity extends Fragment{ LinearLayout

2016-08-03 22:34:18 12873 5

原创 如何使用Android studio生成APK

首先在标题栏找到Build,点击里面的Generate Signed APK 第一次生成APK我们点击Create new创建密钥库及密钥,创建后会自动选择刚创建的密钥库和密钥(已拥有密钥库跳过) key store path:密匙存放的位置,这个路径要保管好,以便APP更新再次使用该密匙Key store path:密钥库文件的地址 Password|Confirm:密匙密码,要牢记

2016-08-03 21:59:56 988

原创 二叉树(BST树)的插入

要进行插入,首先要在BST中进行查找,若key值已经存在,则应返回ERROR;不存在时,由于第一步的search操作已经返回了查找路径上的最后一个结点,只需要把key值与最后一个节点的值进行比较,比它小则为左子树,反之为右子树,代码如下:/* 二叉树(BST树)的插入 */#include <stdio.h>#include <stdlib.h>struct tree

2016-08-02 02:35:41 2024

Python全套收发邮件处理带附件等处理模块代码直接可用

xxx@FDK24 邮件处理模块 [main] $ tree . ├── ReadMe.txt ├── 发送邮件 │   ├── 发送带附件的邮件 │   │   ├── dailylog.txt │   │   └── sendemailattach.py │   └── 发送普通邮件 │   ├── dailylog.txt │   └── sendemail.py └── 接收邮件 ├── 接收任意标题邮件并检测特定正文内容 │   └── ReceiveEmailtext.py ├── 接收过滤特定标题邮件并下载附件 │   └── ReceiveEmailAttach.py └── 接收过滤特定标题邮件并解析内容 └── ReceiveEmailSPTitletext.py

2022-03-03

空空如也

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

TA关注的人

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