自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一个简单登陆页面的测试

今天面试的时候,面试官问了一个事后看起来特别简单的问题,但是当时由于紧张答得是乱七八糟的,接下来我就来总结一下。给你一个简单的登陆页面进行测试测试:      一个页面有两个输入框(一个输用户名,一个输入密码),一个登陆框,如果让你负责这个模块的测试,你会从哪些方面来入手。你看到这个题,你会想到测试哪些方面?功能测试?兼容性测试?这就完了?好了接下来我就系统的说一下。    首先,...

2018-09-07 23:29:59 5829 1

原创 剑指offer之替换空格

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。当看到这个题时,我的第一个反应就是创建一个新的数组,大小刚好是原来数组的长度加上空格数*3。先创建新数组 然后将字符串一个字符一个字符拷贝 当遇到空格则添加为%20,然后继续拷贝 重复以上过程,直到字符串结束但是,...

2018-08-29 14:09:34 208

原创 剑指offer之数组查找

题目描述    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。完成本题的思路就是:既然已经知道每一行的最后一个数为该行的最大数,那就用每一行的最大数与目标数进行比较,当目标数大于本行最大数时,说明在这一行都不可能找到目标数,即让行数自增,用下一行...

2018-08-29 10:21:17 299

原创 单链表的实现

带头和不带头的单链表的区别就在于带头节点的单链表的头插头删鼻尖方便

2018-07-15 18:38:00 272

原创 shell脚本之工具

        在学习了shell脚本的基本语法,命令,符号之后,接下来要看的就是shell脚本使用的所有工具了。        在shell脚本中,工具的使用简化了所要编写的代码。接下来就介绍几个shell下经常使用的工具。     1、sort    sort工具的常用语法就是将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,默认是升序。    sor...

2018-07-12 16:10:02 26454 3

原创 shell脚本

        Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。        Shell 是指一种应用程序,一种和内核沟通的外壳应用程序的统称。这个应用程序有时提供了一个界面,用户通过这个界面访问操作系统内核的服务。          bash是shell中的佼佼者。我们一般说的shell是指shell脚本。1、sh...

2018-07-09 16:49:29 285

原创 shell之正则表达式

        学习过编程语言的应该都听说过正则表达式这个词,那么正则表达式到底是什么呢?接下来就让我们来了解一下。       1、正则表达式简介         正则表达式是用于描述一组字符串特征的模式,用来匹配特定的字符串。通过特殊字符+普通字符来进行模式描述,从而达到文本匹配目的。     我们一般使用正则表达式是来进行模糊匹配。1、grep     相信看到grep工具,我们应该不会很陌...

2018-07-06 22:57:50 7802

原创 C语言之静态,动态顺序表的实现

 在学习了C语言之后,我们知道了数组。那今天我们就用C语言来实现一下顺序表。顺序表是什么呢?顺序表是一种简单的数据结构,他的底层结构就用的数组,他的空间是一段地址连续的空间。SeqList.h#ifndef __SQLLIST_H__ #define __SQLLIST_H__ #include<stdio.h>#include<assert.h>#include&...

2018-05-28 17:53:32 252

原创 static、consts使用场景和条件

  在生活中,有些值是不发生变化的。比如一个人的身份证号码,血型,性别等等。  在计算机中要描述这些信息就需要有一个不变的量来表示。这种值我们就叫做常量。 在C语言中   1、常量的分类:    字面常量          1,3.14.‘q’,‘\n’,      const定义的常量       当const 修饰一个标识符的时候,这个标识符依然是一个变量,但是它具有常属性,不能被直接改变。 ...

2018-05-26 21:13:04 2050

原创 网络协议初识、传输流程

    在学习网络之前,我们先来了解一下计算机网络的背景。1、计算机网络背景     首先我们要提一个问题,网络是什么?接下来,我们就来谈谈网络。     我们知道,我们的电脑硬件之间都是由线连接的,而正是由这些线和硬件软件构成电脑,现在我们来举个例子,当我们把电脑拆开,然后把每个硬件都分在不同的区域,但是之间依旧用先连接,这样还是一台电脑,不过就是硬件之间的线变得长了一点而已。这就叫做网络。(1...

2018-05-07 22:14:07 1599

原创 死锁、读写者模型实现

        在学习了线程之后,在上一博客中我模拟实现了生产者消费者模型,再模拟实现生产者消费者模型的时候我们都知道,若不加制约,可能生产者还没生产完消费者就来消费了,所以我们就需要互斥量和条件变量来进行制约。       而如何制约呢?莫非就是加个锁,当生产者要生产时先去申请这个锁,当申请到锁时,就去进行生产,当生产完了之后就去释放锁,然后消费者再去申请锁,然后再进行消费。接下来我们就来聊聊这...

2018-04-24 17:12:53 539

原创 进程间关系与守护进程

       在我们学习完进程和线程之后,我们知道进程与进程之间是相互独立的,而线程与线程之间是有一定的联系的。那么进程与进程之间就真的没有关系吗?接下来就来学习一下进程间关系以及一个新的名词守护进程。       在学习进程间关系之前,我们来学习几个名词:1、进程组/作业/会话(1)进程组       我们在学习进程的时候就知道,每一个进程都有自己唯一的进程ID,那么今天我就要说,每一个进程除了...

2018-04-17 20:54:16 297

原创 线程的概念、控制、以及同步与互斥

      在学习了进程过进程之后,我们就该来学习一下线程了,什么是线程呢?接下来我们就来学习一下。1、线程的概念         我们都知道,进程就是程序运行起来的实体,包括一大堆的数据结构,而线程是什么呢?我们应该听过一句话“线程是在进程内部运行的”,如何理解这句话呢?接下来带着问题我们来学习。(1)线程的概念          什么是线程?简单来说,线程就是一个程序里的执行流,更准确的说:线...

2018-04-10 20:48:35 251

原创 进程信号

        在学习进程间通信时,我们曾经学过一种方式叫信号量,它就相当于一个计数器,而当时我还在想信号量与信号有什么关系呢?其实信号量与信号是两件截然不同的事物。接下来我们就来学习一下信号,然后就会发现信号和信号量到底有什么不同?       在我们生活中,关于信号的例子特别多,比如红绿灯啊,手机、闹钟铃声啊,十二点的下课铃声啊等等都是一种信号。1、信号的基本概念(1)信号的引入       ...

2018-04-03 14:39:07 253

原创 进程替换以及简单实现简易shell

       在前面学习了进程的创建、等待、退出之后,我们知道了在有些时候子进程和父进程会共享地址空间,比如在Vfork()函数调用的时候,所以,今天我们来学习一下进程替换和一个简单的小程序。1、进程程序替换  (1)替换原理        用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数来以执行另一个程序。当进程调用一种exec函数...

2018-03-29 19:01:09 323

原创 进程的创建、等待以及退出

           学习了进程的进步概念之后,接下来我们就来学习一下进程的创建、等待以及终止等。1、进程的创建       在Linux中,fork()函数是非常重要的函数,它从已存在的进程中再创建一个新进程。新进程为子进程,而原进程为父进程。(1) pid_t fork(void);        返回值:子进程返回0,父进程返回子进程id,出错返回-1;       进程调用fork(),当...

2018-03-29 16:47:44 1050

原创 进程概念之孤儿与僵尸

      在了解了进程是什么后,接下来我们来了解一下进程的其他相关。      进程可以使用命令来进行查看  进程的信息可以通过/proc系统文件夹查看;(如要查看PID为1 的进程信息,需要查看/proc/1这个文件夹)大多数进程信息同样也可以用top和ps这些用户级工具来获取     通过系统调用获取进程标识符的方法:     进程ID(PID):调用函数getpid();     父进程I...

2018-03-27 18:01:27 138

原创 进程的概念之PCB

        学习过操作系统的人应该都对于进程这两个不会陌生,当然没学过操作系统的人应该也听过进程这个词,但是进程是什么呢?接下来,就来学习一下进程的相关信息。从用户角度看:进程是程序的一次动态执行过程,也就是说,只有当一段程序执行起来,它才能称为进程。从操作系统角度看:进程是操作系统分配系统资源(CPU时间,内存)的基本单元,也是最小单元。       进程需要相关的数据结构管理,PCB进程控...

2018-03-26 22:17:02 2128

原创 进程间通信之信号量

             在学习了进程间通信的前几种方式管道,消息队列、共享内存之后,进程间通信的另一种方式——信号量。            在学习信号量之前,需要先理解几个名词。            互斥:由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间需要竞争使用这些资源,这种关系为进程的互斥。            同步:多个进程需要相互配合共同完成一项任务。        ...

2018-03-24 19:24:47 1687

原创 进程间通信之共享内存

        继学习过进程间通信的两种方式管道和消息队列之后,接下来就要学习一个速度最快的进程间通信的方式——共享内存。        为什么说共享内存是最快的IPC形式呢?因为它省掉了两次数据拷贝的过程。一旦这样的内存映射到共享他的进程的地址空间,这些进程间数据传递不在涉及到内核(就是进程不在通过执行进入内核的系统调用来传递数据)。       1、共享内存的示意图             2...

2018-03-24 13:43:16 208

原创 进程间通信之消息队列

在简单了解了进程间通信之后,我们知道进程间通信的方式不止有管道,还有其他的system V IPC资源。其中就有消息队列。

2018-03-23 10:01:26 231

原创 进程间通信之管道

     在谈到进程的概念时,大多数人的第一反应可能就是PCB(就是进程控制块), 当然这是对的,因为PCB是进程存在的唯一标示,但与此同时我们还要想到虚拟地址空间、页表、物理地址以及三者之间的映射关系。             在学习了进程后,接下来就要进行深入的理解有关进程的内容。             我们都知道,进程具有独立性,进程之间一般不会相互影响。但也有特殊情况,比如说进程间通信。...

2018-03-21 22:54:46 251

原创 循环语句结构的应用(二)猜数字游戏

在学习了循环语句结构之后,我们来做一个简单的猜数字游戏。 在很受欢迎的综艺快乐大本营中,有一个很好玩的游戏叫做深水炸弹,也就是 今天我们要实现的猜数字游戏。原理就是由电脑随机产生一个数字,然后由你 诉你猜大了,然后你就可以找到一个区间继续猜,以此循环,直到猜正确。 接下来就对理论进行实践。#define _CRT_SECU...

2018-03-15 21:16:49 898

原创 关于if..else..及for循环的简单小练习(一)

作为程序化结构设计语言,C语言的三种语句结构:循环结构,顺序结构,选择结构 就显得尤其的重要。 在简单的学习过循环结构后,我们应该对几种循环语句有了简单的了解和运用了,接下来,我们就做几道简单编程题练习一下。 1、写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1 程序原型: int coun...

2018-03-14 23:41:16 3208 1

原创 初级语言之C语言:初级了解常量、变量

在对于语言的学习有了一段时间后,我对C语言中所学知识进行一下总结。今天先来回顾一下常量和变量。 在C语言中最简单的程序就是输出一个“Hello world!”。而要输出这句话,首先要有一个函数入口,接下来就先来看一下函数入口main函数。 main函数的书写一般为#include<stdio.h>int main(){ //函数体...

2018-02-09 20:29:31 168

原创 关于Linux的简单操作命令

关于Linux的简单操作命令

2017-11-18 19:52:50 238

原创 关于多态的简单阐述

在上篇博客中,简单提了一下C++的第一个特点继承,今天就来聊聊第二个特点:多态一、多态的概念1、什么是多态呢?简单来说,多态就是面向对象的重要特性,也可以说是同一种事物的不同体现,或者是同一事物表现出得多种形态。2、多态的分类   静态多态:编译器在编译期间完成,编译器根据函数实参的类型(可能会进行隐式转换)。动态多态:在程序运行期间(非编译期间)判断所引用对象的实际类型,根据其实际类型调用相应的...

2017-10-14 16:08:26 515

原创 继承那些事儿

继承的那些事儿简单聊聊

2017-10-09 17:36:25 243

原创 关于string类中的一些小问题的总结

在学习了深拷贝&浅拷贝&引用计数后,我简单的对本节课做了一个小总结:1.什么是浅拷贝,里面存在什么问题?      简单来说,浅拷贝就是对象的数据成员之间的简单赋值。    在浅拷贝中,若在string类中没有给出拷贝构造函数和赋值运算符重载函数,则系统会默认生成如下拷贝构造和赋值运算符重载函数。//拷贝构造函数string(const string&s):_pstr(

2017-09-29 16:54:40 243

原创 用C语言实现从C到C++的注释转换

在C语言的学习过程中,在平时的程序编写过程中,注释这两个字估计大家都不陌生。今天,我就用C语言简单的实现一下从C到C++的注释转换。

2017-07-30 14:12:36 347

原创 用C语言进行顺序表的实现

数据结构在编程语言的学习中相当重要,而顺序表作为线性数据结构的代表,也就比较重要了。所以还是要好好理解和掌握。

2017-07-27 20:48:14 1766

原创 解析结构体和位段

在C语言中,结构体是一种比较重要的结构,因此,对所学结构体知识做一总结和整理。  C语言提供了两种数据类型,数组和结构,今天,就简单的整理一下结构相关的。

2017-07-24 12:47:28 548

原创 三子棋小游戏

用C实现三子棋小游戏

2017-05-22 22:07:49 194

原创 二分查找法(即折半查找法)

用C实现折半查找代码的编写和探索。

2017-05-22 21:38:57 1244

空空如也

空空如也

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

TA关注的人

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