自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PCB铺铜以及设计规则检查

PCB铺铜步骤:1.打开没有铺铜的PCB;2. 在工具栏里选择铺铜图样,或使用快捷键“P G”都可打开铺铜对话框3. 在对话框里,选择填充模式,“孤岛“和铜的移除值,连接到何种网络,是否移除死铜。设置好之后,选中”OK”退出,4. 沿着禁止布线层画一个矩形框,只需确定四个点即可,右击退出。系统会自动生成一个闭合的框,完成铺铜。注:一般铺铜在顶层Top layer 和底层Bo

2018-01-27 17:03:49 7256 1

原创 写一个函数,判断单链表是否存在环,要求时间复杂度为O(n)

此题由于单链表,可采用类似“龟兔赛跑”的方法,两个指针,一个快,一个慢,若两个指针的值相等且不为空,说明存在环以下是链表的初始化:typedef int ElemType;struct node{ElemType data;struct node *next;};typedef struct node Node;typedef Node* LinkLis

2018-01-27 09:07:19 1483

原创 一个数组中除了两个数字之外,其余数字均出现了两次,如{1,2,3,4,5,3,2,1}.查找出这两个只出现一次的数字。要求时间复杂度为O(n),空间复杂度为O(1)。

两个相同的数异或结果是0,两个不同的数异或,最后结果一定不会是0,这个结果的二进制表示中至少有一位为1,我们找到这个1的位置,记为一个标记,当作分割的标准,第一类元素的标记位都是1,第二类都是0。 每一类中只有一个数出现了一次,把数组中的数进行异或,出现两次的数异或结果是0,最终异或的结果就是出现了一次的一个数。int Search(int num[],int n) //num为数组,n为

2018-01-27 09:02:17 358

原创 有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下来的是原来第几号的那位?

这是公司笔试经常会遇到的题目int flag[n]={0};    //n为最初围成一圈的人数int i=0,j=0,k=0,end=0;while(end == 0){ j=j%n; if(flag[j++] == 0) i++; if((i%3)==0)  //判断是否报到3,若是,将对应的元素标记为1,象征退出 flag[j-1]=1;

2018-01-27 08:57:00 517

原创 PCB板的绘制

PCB( Printed Circuit Board),中文名称为印制电路板,又称印刷线路板PCB分层:Solder 层 露铜层,即铺绿油的层;Paste层 钢网层,工厂加工时需要,自己做PCB不需要;Silkscreen层 丝印层,用来标示元器件的标号;Keep-Out Layer层 分割层,禁止布线层,规定PCB外形;注:样板最好还是过孔开窗 符号(Symbol

2018-01-26 08:29:47 2167

原创 操作系统基础训练

1、简述Linux进程内存空间分为哪几个段?作用分别是什么?数据段:存放程序的全局变量,常数,堆栈段:存放子程序的返回地址,子程序的参数,以及程序的局部变量,动态数据分配的数据空间;代码段:存放了程序代码的数据,假如机器中有数个进程运行同一个程序,那么它们就可以使用同一个代码段。 2、如何查看进程的信息(线程数):使用ps即可查看进程信息,同时使用grep就可以准确

2017-12-07 15:53:31 210

原创 网络编程(二)

1. Socket有哪些分类流式Socket:用于TCP通信;数据报Socket:用于UDP通信;原始Socket:用于新的网络协议实现的测试等 2. 主机名和地址之间转化的函数有哪些?名字和数值地址间的转换:gethostbyname,gethostbyaddr;它们都可以实现IPv4和IPv6的地址和主机名之间的转化,其中gethostbyname()是将主机名转化

2017-12-07 00:12:22 138

原创 网络编程(一)

1.TCP/IP作用于OSI模型的哪几层?TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7曾抽象的参考模型,其中每一场执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。而TCP/IP通信协议采用了4层层级结构,没一场都呼叫它的下一层所提供的网络来完成自己的需求

2017-12-07 00:11:26 154

原创 多线程编程

进程:资源分配的最小单元,担当分配系统资源的最小单元 Linux系统:多进程系统,并行性,互不干扰 线程:CPU调度和分派的基本单位,程序执行的最小单位。比进程更小的能独立运行的基本单位一个进程由几个线程组成,线程与同属一个进程的其他线程共享进程拥有的全部资源 一个进程崩溃,不会对其他进程产生影响一个线程死掉等于整个进程死掉,所以多进程比多线程健壮但进行切换时,

2017-12-07 00:09:52 117

原创 进程间通信方式

管道:有名管道和无名管道单向的,先进先出。写进程在管道尾部写入,读进程在管道头部读出数据当数据被一个进程读出后,将被从队列中删除 若进程试图读空管道时,进程将堵塞 无名管道:只能由父子进程使用创建:int pipe(int fd[2])fd[1]用于写管道,fd[0]用于读管道 注:必须在调用fork()之前调用pipe(),否则子进程将不会继承文件描述

2017-12-07 00:08:16 118

原创 C与指针 13-15章

第10章  高级指针话题 只有当确实需要时,才应该使用多层间接访问13.2 高级声明int f()[] 这个声明是非法的,函数只能返回标量值,不能返回数组int f[]() 这个声明也是非法的,因为数组元素必须具有相同的长度,但不同的函数可能具有不同的长度int (*f[])()  f肯定是一个数组,数组元素的类型是函数指针,它所指向的函数的返回值是一个整型值int  

2017-12-02 17:03:56 172

原创 C与指针 10-12章

第10章 结构和联合10.1 结构声明 Struct {int a;Char b;Float c;}x; Struct {int a;Char b;Float c;}y[20],*z;警告:这两个声明被编译器当成两个截然不同的类型,即使它们的成员列表完全相同。因此,y和z的类型和x的类型不同,所以下面的语句:z=&x是非法的 如果想在

2017-12-02 17:00:15 157

原创 进程编程控制

进程是动态的,程序是静态的进程是暂时的,程序是永久的 进程生命周期创建:每个进程都是由其父进程创建运行:多个进程可以同时存在,进程间可以通信撤销 进程状态:执行,就绪,等待 Linux进程之间具有并行性,互不干扰等特点进程ID:标识进程的唯一数字父进程的ID:(PPID)启动进程的用户ID:(UID)死锁:多个进程竞争资源形成僵局,若无外力,

2017-12-02 16:56:55 119

原创 文件操作

Linux文件编程Linux系统调用及用户编程接口(API)系统调用:操作系统提供给用户的一组“特殊”接口,用户程序通过这组“特殊”接口来获得操作系统内核提供的服务 为什么用户进程不能直接访问操作系统内核提供的服务?  为了保护内核        用户进程在通常情况下不允许访问内核数据,也无法使用内核数据系统调用仅是一个软中断机制向内核提供请求,以获取内核服务的接口,在

2017-12-02 16:53:49 118

原创 多线程编程

1. 最小的能独立运行的基本单位是什么线程是进程的一个实体,是CPU调度和分配的基本单位,它是比进程更小的能独立运行的基本单位,一个进程可以包含多个线程 2. 线程与进程的区别是什么地址空间和其他资源:进程间相互独立,同一进程的各线程相互之间共享,某进程内的线程在其他进程不可见;通信:进程间通信IPC,线程间可以直接读写进程数据段来进行通信。调度和切换:线程上下文切换比进程

2017-11-30 13:11:25 182

原创 进程间通信方式(二)

1. 互斥锁与二值信号灯的区别在哪里信号灯强调共享资源,只要共享资源可用,其他进程同样可以修改信号灯的值,互斥锁更强调进程,占用资源的进程使用完资源后,必须由进程本身来解锁 2. 信号灯的竞争问题该怎么解决第一个创建信号灯的进程在初始化信号灯时,第二个进程又调用semget,并且发现信号灯已经存在,此时,第二个进程必须具有判断是否有进程正在对信号灯进行初始化的能力。绕过这种竞争状态

2017-11-30 13:08:23 149

原创 进程间通信方式二十问(一)

1. 为什么进程会共享内存进程的用户空间是独立的,一般而言是不能互相访问的,唯一的例外是共享内存区 2. 进程间通信有什么不常用的方式普通PIPE,流PIPE,命名PIPE,消息队列,信号量,共享存储,UNIX流SOCKET,UNIX数据包SOCKET 3. 无名管道与有名管道的优缺点管道用于具有亲缘关系的进程间通信,用户自己创建管道,并完成读写操作FIFO可以说是

2017-11-30 13:03:14 136

原创 C与指针 7-9章

第7章 函数7.1 函数定义函数体就是一个代码块,它在函数被调用时执行return语句允许你从函数体的任何位置返回 子程序不论是否存在返回值,均被称为函数。调用一个真函数(即返回一个值的函数)但不在任何表达式中使用这个返回值是完全可能的。在这种情况下,返回值被丢弃。但是从表达式内部调用一个过程类型的函数(无返回值)是一个严重的错误。 7.2函数原型在函数原型中加入描

2017-11-25 23:02:34 162

原创 进程控制编程

1. 多进程与并发的关系当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能同时真正进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再把时间段分配给各个线程执行,在一个时间段的线程代码执行时,其他线程处于挂起状态。这种方式我们成为并发。 2. Kill,pkill,xkill的区别Kill是和ps,pgrep命令结合在一起使用的Pkill和killall应

2017-11-21 08:11:14 132

原创 文件操作十问

1. Linux下文件系统的特点1.Linux系统中一切皆文件Linux系统把设备都看作文件,文件夹也看作文件2. Linux文件类型普通文件,目录文件,链接文件,块设备,字符设备,Socket,管道文件3. Linux文件属性蓝色:目录 绿色:可执行浅蓝色:链接 红色:压缩 灰色:其他 2. Linux下Shell和C的关系C Shell是一种脚本语言

2017-11-21 08:08:34 168

原创 C与指针 4-6章

第四章  语句 由于C不具备布尔类型,所以语句在测试值时用的都是整型表达式 4.2  表达式语句像下面的语句就是完全合法的y+3;getchar();当这些语句被执行时,表达式被求值。但它们的结果不被保存在任何地方,因为它们没有使用赋值标识符,第一条不具备任何效果,第二条则读取输入中的下一个字符,接着就将其丢弃  4.6 for语句  For循环有一

2017-11-13 21:12:57 153

原创 C与指针 1-3章

第一章1.1简介从逻辑上删除一段代码,可以用注释( /*  */)更好的方法是使用#if语句,例如:#if 0statements#endif 函数声明中,函数原型中形参的名字并非必须,如:void lan(int,int) NULL指一个其值为0的指针,在头文件中“stdio.h”中定义 int read_number(int column[],i

2017-11-09 22:03:40 126

原创 栈和队列

1.  栈和普通线性表的不同在哪里栈是特殊的线性表,是只允许在一端进行插入和删除操作的线性表。允许插入和删除的叫栈顶,反之则是栈底。栈的特点是:后进先出。普通的线性表可以在头节点出进行插入删除操作。也能在线性表末端进行插入删除。         2. 两栈共享空间在实际中应用在哪里         使用过程中给每个栈分配足够的空间是不太现实的,使用栈的时候,我们也不能保证栈有足

2017-11-01 22:02:15 175

原创 预处理和结构体的问题

1. 文件包含中重复包含,编译是否会显示出错? 当重复包含头文件,有可能会出现重复定义变量,编译器在进行编译的时候对于重复定义的变量不知道调用哪一个。比如定义了int a=0;又重复定义了int a=1;如果使用这个a,编译器就不知道使用的a等于0还是1,所以编译器不允许出现重复定义,也就不允许重复包含头文件。上面的问题无法通过边缘,容易解决。如果写法不好,造成不被编译发现的问题才是头大,

2017-10-26 16:20:19 314

原创 线性表的问题

1. 为什么说顺序存储结构会造成存储空间的“碎片化”? 顺序存储结构的缺点:插入和删除需要移动大量的对象;存储设备的碎片化;当线性表过大时,很难确定长度。 2. 为什么链表最后一个节点指针可以用‘^’表示?对于空指针值,一般的文档中倾向于用NULL表示,而没有直接说成是0 3.  插入,删除操作同样要遍历链表,为什么说链表比顺序存储方便?数组遍历,除了i++

2017-10-26 16:19:34 272

原创 第8章函数十个问题

1. 函数调用中,地址传递为什么说形参与实参占用同样的存储单元?  因为实参传的是那段地址,形参接受的也是这段地址,相同的地址,当然就是相同的存储单元,存储单元就是地址的意思 2. 如果C++程序要调用已编译后的C函数,该怎么办?   假如一个C函数的声明如下  void foo(int x,int y);该函数被C编译器编译后再库中的名字为_foo,而C++编译器则会产生

2017-10-19 09:52:31 180

原创 第5章数组与指针十个问题

1. *(int *)&p =(int) function这是什么?&p是求指针变量p本身的地址,这是一个32位的二进制常数。(int *)&p表示将地址强制转换为指向int类型数据的指针。(int)function表示将函数的入口地址强制转换成int类型的数据。*(int *)&p=(int)function;表示将函数的入口地址赋值给指针变量p。 2. 使用函数指针有什

2017-10-19 09:50:30 284

原创 shell与C语言

Shell 命令解析器首行 #! /bin/bash或#! /bin/sh首行告知用什么解析,是固定用法echo 是输出命令$#   参数个数#*   所有参数值$0   命令本身$1   第一个参数 echo  $?  查退出码tree.   从当前目录展开  fg  把后台进程切到前台Ctrl+C  切到后台 Int 不一

2017-10-13 23:09:08 1548

原创 第三章运算符,表达式十个问题

1.  i+1;这类的函数式在哪种情况下正确   在括号表达式里,例如:int x; int i=3; x=(++i,i++,i+10)逗号表达式里,i在遇到每个逗号后,认为本计算单位已经结束,i这时自加。例子i与10进行比较后,认为本计算单位已经结束,i这时候自加。 2. 条件表达式能否取代条件语句   不是所有的if条件语句都可以写成条件表达式。其实它们的实现方式很相似,但

2017-10-07 22:40:52 242

原创 第四章语句十个问题

1  什么是布尔变量   布尔型变量是有两种逻辑状态的变量,它包含两个值:真和假。如果在表达式中使用了布尔型变量,那么将根据变量型的真假而赋予整型值1或0.要把一个整型变量转换成布尔型变量,如果整型值为0,则其布尔型值为假,反之如果整型值为非0,则其布尔型值为真 2浮点变量与零值比较,如果用x==0格式,会产生什么错误  类似float,double类型的数据在内存中可能并不是你输

2017-10-07 22:11:41 252

原创 第二章数据类型十个问题

1. 变量的值被覆盖后如何恢复不能恢复,以最后一次赋值的值为准。 2. 宏定义与const常量定义之间有什么区别   define是宏定义,程序在预处理阶段将用define定义的内容进行了替换,因此程序运行时,常量表中没有用define定义的常量,系统不为它分配内存;const定义的常量,在程序运行时在常量表中,系统为它分配内存。define定义的常量,预处理时直接进行了替换,

2017-10-07 07:30:40 180

原创 系统管理与系统安全命令

系统管理命令 Df检查文件系统的磁盘占用情况格式 df [options]参数:-s 对每个names参数只给出占用的数据块总数-l 计算所有文件大小-T 显示文件系统类型-h 以容易理解的格式输出文件系统大小-k 以1024字节为单位列出磁盘空间使用情况-i 显示inode信息而非块使用量 Top用来显示执行中的程序进程

2017-10-06 07:56:42 196

原创 文件处理命令

常用的文件处理命令 File判断文件类型,使用权限是所有用户  格式  file【options】文件名options主要参数:-v 在标准输出后显示版本信息,并且退出-z 探测压缩过的文件类型-L 允许符合连接-f name从文件namefile中读取要分析的文件名列表 Mkdir建立名为dirname的子目录Mkdir [

2017-10-05 09:46:08 151

原创 工程管理器与GDB调试器

工程管理器点击“make”按钮对整个程序进行自动编译 make工程管理器完全根据makefile文件中编译规则命令进行工作Makefile 由以下三项基本内容组成:目标文件(target file)依赖文件(dependency file)编译规则命令行(command)Target file  :  dependency file   command 

2017-10-04 07:57:18 188

原创 gcc

gcc可以编译C,C++等高级语言 Gcc [选项] [文件名][选项][文件名]总体选项的常用选项:-E对源文件进行预处理-S对源文件进行编译-c对源文件进行编译或汇编-o file:输出目标文件file-v显示编译阶段的命令 调试选项常用选项:-g产生调试信息 语言选项常用选项:-ansi支持符合ANSI标准的C程

2017-10-02 19:48:07 115

空空如也

空空如也

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

TA关注的人

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