自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Electronic_rest的博客

电子寄余生

  • 博客(74)
  • 收藏
  • 关注

原创 测试策略详解

测试分类按测试技术划分黑盒测试(功能测试):不关心软件内部实现,只关心输入输出,主要测试依据是需求文档 --测试人员白盒测试:关心软件内部设计和程序实现,主要依据是设计文档 --开发人员灰盒测试:不仅关注对于输入的正确性,同时也关注内部表现,但这种关注不像白盒测试那样详细完整,只是通过一些表征性的现象,标志来判断内部的运行状态。按测试阶段划分单元测试:是开发者编写的一小段代码,用于检验北侧代码的一个很小的,很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个

2021-07-12 15:17:58 2712

原创 软件开发测试模型

常见开发-测试模型软件开发模型:是指软件开发全部过程,活动和任务的结构框架。瀑布模型(鼻祖):从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,如果发现问题,可以返回上个阶段进行适当修改。优点:1)为项目提供按阶段划分的检查点2)当前阶段完成后,只需要关注后一阶段3)可在迭代模型中应用瀑布模型4)提供一个模板,这个模板使得分析,设计,编码,测试和支持的方法可以在该模板下有一个共同的指导。缺点:1)各个阶段划分完全固定,阶段之间产生了大量的文档,极大的增加了工作量2)由于开

2021-07-12 00:26:56 625 2

原创 软件生命周期介绍

什么是软件生命周期:是指软件从开始研制到最终被废弃不用这整个过程。软件生命周期包括:1问题定义及规划a 就软件开发需求共同讨论,主要确定软件的开发目标和其可行性。b 输出可执行研究报告和项目开发计划文档(通过市场调研)2需求分析:a 在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。b输出软件需求规格说明书(或者原型图),数据要求说明书。3系统设计a 根据需求分析的结果,对整个软件系统进行设计。如系统框架设计,数据库设计等。b 输出总体设计说明书和详细设计说明书,数

2021-07-12 00:16:03 2492

原创 测试职业发展概述

软件测试的定义:软件测试就是在软件投入运行前,对软件需求分析,设计规格说明和编码(白盒测试)进行最终复审的活动。软件测试目的:1.测试完善程序的过程,使系统符合用户的使用习惯2.发现迄今为止未发现的错误3.检测暴露软件中隐藏的错误和缺陷,减少软件上线后的问题4. 已经正确实现用户需求的过程软件测试的对象:1.程序:功能正确,性能良好(需求一一对应)2.文档:包括用户手册和运维手册,内容完整正确。3.数据:系统配置文件,符合国家规范。(接口测试,数据库)软件测试的原则:1.测试证明软件

2021-07-10 18:52:10 170 5

原创 结构体传参方法

#include<stdio.h>#include<stdlib.h>typedef struct test//定义一个结构体{ int arr[100]; int a;}test;void print1(test s)//定义一个函数,将结构体变量作为参数传入函数{ for (int i = 0; i < 7; ++i) { printf("...

2020-02-26 18:16:28 4354 1

原创 结构体对齐规则及示例

为什么要进行内存对齐(以空间换时间)为了有助于加快计算机的取数速度,编译器默认会对结构体进行处理(实际上其它地方的数据变量也是如此),让宽度为2的基本数据类型(short等)都位于能被2整除的地址上,让宽度为4的基数据类型(int等)都位于能被4整除的地址上,能整除的话一次就读完了,会节省很多时间,这样两个数中间就可能需要加入填充字节,所以整个结构体的sizeof值就增长了。结构体对齐...

2020-02-26 14:48:46 226

原创 结构体的写法及赋值

结构体的写法–>推荐写法一1 typedef struct Student // typedef struct Student S{ char name[100]; int age; char tel[20];}S; // S是结构体类型 //结构体类型就是以struct关键字定义的数据类型2 struct Student{ char name[100...

2020-02-26 13:59:04 1227

原创 模拟实现memmove

模拟实现memove–>解决内存重叠问题#include<stdio.h>#include<stdlib.h>#include<assert.h>void* my_memove(void* str, const void* dst, size_t num){ assert(str&&dst);//限制不能为空指针 int* s...

2020-02-25 19:46:17 138

原创 模拟实现memcpy

模拟实现my_memcpy函数#include<stdio.h>#include<stdlib.h>#include<assert.h>//assert函数的头文件void* my_memcpy(void* str, const void* dst, size_t num){ //void* str 传入要被赋值的数组的地址 //void* dst ...

2020-02-06 13:34:19 139

原创 模拟实现strstr函数

strstr函数功能是判断字符串str2是否是字符串str1的字串#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>#include<string.h>char* my_strstr(char* str1, char* str2){...

2019-11-30 00:21:05 132

原创 模拟实现strcmp函数

strcmp函数 比较两个字符串的大小#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>#include<string.h>int my_strcmp(const char* str1, const char* str2){ whi...

2019-11-28 23:27:32 214

原创 模拟实现strcat函数

strcat函数 实现字符串的追加#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>char* my_strcat(char* s, char* g)//实现字符串得追加{ assert(s&&g);//防止输入为空指针 whi...

2019-11-28 00:05:16 313

原创 模拟实现strcpy函数

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>char* my_strcpy(char* o, char* n)//定义两个指针数组{ assert(o&&n);//判断传进来的是否是空指针 while (*o != '\0'...

2019-11-27 23:16:05 128

原创 模拟实现strlen函数

字符串已经 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包含 ‘\0’ )。参数指向的字符串必须要以 ‘\0’ 结束。注意函数的返回值为size_t,是无符号的( 易错 )#include<stdio.h>#include<stdlib.h>#include<string.h>int my_strlen...

2019-11-27 21:41:51 218

原创 逗号表达式

逗号表达式,只会取后面的值#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ int a[3][2] = { (0, 1), (2, 3), (4, 5) }; //虽然是二维数组,但只初始化了一组值,等于int a[3][2]={1,2,3} int *p; p =...

2019-11-09 23:34:12 180

原创 指针和数组笔试题解析

一维数组#include<stdio.h>#include<stdlib.h>int main(){ int a[] = { 1, 2, 3, 4 }; printf("%d\n", sizeof(a)); //16 //对数组名求所占内存大小,就是求整个数组在内存中所占空间的大小 printf("%d\n", sizeof(a+0)); //4 /...

2019-11-09 20:43:29 243

原创 选择排序算法

#include<stdio.h>#include<stdlib.h>int FindMax(int arr[], int n)//将数组中最大值的下标返回{ int Max = arr[0];//假定最大值是arr[0] int pos = 0;//定义要返回的下标 for (int i = 0; i < n; i++)//遍历数组中的数 { if...

2019-11-07 00:04:36 122

原创 函数指针数组的应用实例

函数指针数组: 实际上是将多个函数的地址放到一个数组中,需要哪个函数用数组调用就行函数名就可以代表函数地址即: fun=&fun实现一个计算器#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int Add(int x, int y){ return x + y;}...

2019-11-05 23:54:42 249

转载 利用typedef定义函数指针

利用typedef定义函数指针进入正文: 代码简化, 促进跨平台开发的目的. typedef 行为有点像 #define 宏,用其实际类型替代同义字。 不同点:typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换。用法一:typedef int (*MYFUN)(int, int); 这种用法一般用在给函数定义别名的时候上面的例子定义MYFUN...

2019-11-05 18:10:02 806

原创 数组名和数组名地址意义的不同

数组名的值表面看起来和数组名地址的相等,但只是巧合,它们意义不同数组名的值确实是数组首元素的地址数组名的地址代表这个数组在内存中的地址数组名+1—>表示数组第1个元素的地址数组名地址+1—>表示跨过整个数组,即跨过整个数组的大小#include<stdio.h>#include<stdlib.h>int main(){ int arr[10]...

2019-11-04 01:13:37 340

原创 判断两个浮点数是否相等,并验证浮点数精度

一般来说,如果两个浮点数之差小于1X10-6次方我们就说这两个浮点数相等#include<stdio.h>#include<stdlib.h>#define E 1e-6int main(){ double a = 7 / 2; double b = a * 2; if (a - b < E || b - a < E) { printf...

2019-11-04 00:56:59 866

原创 指针数组和数组指针

数组指针数组指针,指的是数组名的指针,即数组首元素地址的指针。即是指向数组的指针。例:int (*p)[10]; p即为指向数组的指针,又称数组指针示范: void (*arr)[]#include<stdio.h>#include<stdlib.h>int main(){ int(*arr)[4];//定义一个数组指针 int a[][4] = { { 1...

2019-11-03 23:19:10 236

原创 指针函数和函数指针

指针函数#include<stdio.h>#include<stdlib.h>int* FindNum(int arr[], int count, int num){for (int i = 0; i < count; ++i){if (arr[i] == num){return &arr[i];}}return NULL;}int...

2019-11-03 14:53:14 178

原创 指针传参

一级指针传参传一维数组#include<stdio.h>#include<stdlib.h>int point(int* arr){ for (int i = 0; i <= 3; ++i) { printf("%d\t", arr[i]); }}int main(){ int arr[] = { 1, 2, 3, 3 }; poin...

2019-11-01 20:43:17 562

原创 整型截断经典实例

很多人看到这个题目第一眼,可能认为输出一次hh但结果是for循环是死循环,会一直打印为什么呢?原因包含了整型的截断当char i=256时256的二进制是0000 0001 0000 0000当将这个值赋给char时,会发生截断得到0000 0000,截断这样一个字节将其打印出来#include<stdio.h>#include<stdlib.h>int...

2019-10-31 23:13:42 848

原创 整型的提升和截断详解(看完包会)

**所有常量值**,在没有后缀得情况下,**默认是4个字节(int型)**将一个int型值赋给char型变量时,会发生**整形截断**(按存储顺序截断,先到先截,一个char截断一个字节即8个bit位)将char类型值按有常量值,在没有后缀得情况下,默认是4个字节(int型)将一个int型值赋给char型变量时,会发生**整形截断**(按存储顺序截断,先到先截,一个char截断一个字节...

2019-10-28 20:02:46 1417 1

原创 指针

int a=100;//有了一个房间,房间号(地址)还不知道,里面住的人(存的值)是100------->int* p=100;int* p=&a;//知道这个房间的房间号// int 类型的指针表示这个房间里住的是一个int类型的变量// p这个变量是一个指针,p里面包含的内容就是房间号// int* 也是类似一种数据类型,和int ,float等都差不多...

2019-10-27 15:09:43 133

原创 字节序/整形在内存中的存储

字节序对于一个整形变量来说如果高位是存在低字节的内存上,小端序如果高位是存在高字节的内存上,大端序结果证明int char都是小端序32位操作系统16进制数8位 4*8=32个bit位同类型会直接赋值#include<stdio.h>#include<stdlib.h>int main(){ int num = 0x11223344;//16进制...

2019-10-27 14:08:56 271

原创 位运算总结详解

位运算按位与运算 0&1=0 0&0=0 1&1=1也就是两个1才是1按位与的应用–>看一个数中有多少个1一#include<stdio.h>#include<stdlib.h>int u(int b){ int count = 0; while (b)//条件为非0(包括负数)才能进入循环 { b =b&a...

2019-10-21 23:09:56 181

原创 交换两个整数的值

1 用全局变量交换两个整数#include<stdio.h>#include<stdlib.h>int x = 0;int y = 0;int swap(a, b){ x = b; y = a; return (x, y); }int main(){ printf("请输入两个数\n"); int c; int d; scanf_...

2019-10-21 11:33:06 575

原创 c语言三子棋详解

思路:1. 定义并初始化二维数组(初始化数组一定要用{})2. 打印棋盘3. 玩家落子判断游戏是否达到结束条件提示玩家输入落子坐标判断玩家落子是否合法给二维数组赋值,即落子4. 电脑落子判断是否到达结束条件用随机数给电脑赋值坐标判断电脑落子是否合法给二维数组赋值,即落子5. 执行步骤3#define _CRT_SECURE_NO_WARNINGS//宏定义#inclu...

2019-10-18 23:07:45 464

原创 数组在函数中为参数

将数组作为函数的参数数组会隐退成指针—>int arr[]<=>int* arr以冒泡法为例:数组的大小本可以通过sizeof(arr)/sizeof[]求得但此时数组退化成指针sizeof(arr)所求的值就是一个指针的大小,32为系统中占4个字节(此时为32位)而此时的数组为int型占4个字节 所以相除就为1,不等于数组元素数量如果此时为char类型的数组...

2019-10-17 21:45:00 219

原创 (二维)数组在在内存中开辟连续空间

#include<stdio.h>#include<stdlib.h>int main(){ //数组的第一个空间大小可以省略,系统会根据里面的值自动分配 char arr[][4] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; for (int row = 0; row <= 2; ++...

2019-10-17 21:13:11 668

原创 求第n个斐波那契数的值(递归)

#include<stdio.h>#include<stdlib.h>int Fib(int n){ if (n == 1 || n == 2)//return当n为1,2的值 { return 1; } return Fib(n - 1) + Fib(n - 2);//递归调用}int main(){ int n = 5; printf("第%...

2019-10-17 01:59:16 215

原创 求第n个斐波那契数的值(非递归)

#include<stdio.h>#include<stdlib.h>int Fib(int n){ int num1 = 1; int num2 = 1; if (n ==1 || n ==2)//返回n为1,2的值 { return 1; } int sum = 0;//存储前两个数字的和 for (int i = 3; i <= n; +...

2019-10-17 01:52:45 165

原创 求字符串长度(定义临时变量)

实现求一个字符串的长度c语言中字符串是通过字符数组的形式来模拟的字符数组本质上就是一个普通的数组,只不过存储的使char类型的元素可以用char*表示字符数组的第一个元素,然后用这个指针来表示字符串#include<stdio.h>#include<stdlib.h>int strlen(char* str)//定义一个指针类型的字符数组{ //cha...

2019-10-17 01:14:00 339

原创 在其他.c文件中使用一个函数

在其他.c文件中使用一个函数一 使用extern关键字extern 是计算机语言中的一个关键字,可置于变量或者函数前,以表示变量或者函数的定义在别的文件中。提示编译器遇到此变量或函数时,在其它模块中寻找其定义1.表示函数定义在别的文件中,但在此文件要用这个函数eg: test1.c中定义了一个int ADD(int x,int y)函数//目的是声明test2.c中想用这个函数计...

2019-10-17 00:26:56 941

原创 输入:1234 输出:1 2 3 4

输入:1234 输出:1 2 3 4用递归实现划重点!!!----圈起来,考试要考if条件语句(不是循环语句)进入条件后,执行完就会立马退出来,执行下一步int/int=int---->整数相除截断eg: 5/2=2;123/10=12;#include<stdio.h>#include<stdlib.h>void RecNum(int num)/...

2019-10-15 02:21:34 2757 1

原创 调用函数,使得num每次都加1

话不多说,直接上代码#include<stdio.h>#include<stdlib.h>void ADD(int* n)//定义一个指针变量n,接受num的地址{ *n=*n+1;//++*n 对num地址里面的值加一}int main(){ int num = 0; ADD(&num);//传输num的地址 printf("num的值是...

2019-10-15 01:49:30 851

原创 将指针作为输出型参数查看函数内部执行情况

将指针作为输出型参数,通过指针修改形参的值,查看函数内部执行情况.#include<stdio.h>#include<stdlib.h>int Div(int x, int y,int* success)//定义两个形参和一个指针{ if (y == 0)//如果分母为0 { *success = 3;//将指针指向内存地址中success的值,进行赋值...

2019-10-15 01:32:54 126

空空如也

空空如也

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

TA关注的人

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