- 博客(54)
- 收藏
- 关注
原创 HTML基础使用
HTML基础使用一入后端深似海,后端还未学成又来霍霍前端啦~下面是简单的HTML入门级用法。一、HTML语法规范1.基本语法概述1.HTML标签是由<>包围的关键词,例如。2.HTML标签通常是成对出现的,例如,我们称为双标签,标签中的第一个标签是开始标签,第二个是结束标签。3.有些特殊的标签必须是单个标签,例如,我们称之为单标签。2.标签关系双标签关系可以分为包含关系和并列关系。包含关系类似父子关系,例如:<head> <title></ti
2021-03-12 15:55:00
550
1
原创 排序算法的实现
//冒泡排序void BobbleSort(int a[], int len){ int i, j,tmp; int flag = 0; for (i = 0; i < len-1; i++) { for (j = 0; j < len - 1 - i; j++) { if (a[j] > a[j + 1]) .
2020-11-09 15:00:28
257
原创 Linux基本操作命令
linux 基本操作命令(一切皆文件)一、对目录进行的操作命令(目录大小一般都是4096)命令的使用格式:命令名 [选项] [源操作对象] [目标操作对象]ls----列出目录下的内容(默认是当前目录)ls-a查看所有文件(包含隐藏文件)(linux下以.开头的文件是隐藏文件,默认不显示). 代表当前目录.. 代表当前目录的上一层目录ls -l查看当前目录下文件的详细信息-普通文件 d目录文件 $链接数(目录项个数)ls -t(-lt) 按时间进行排序ls -r(
2020-09-21 19:00:56
227
原创 shell
shell----命令行解释器:dash bash(软件,是shell的一种)root 超级用户,不受限制linux是一个多任务,多用户操作系统。linux权限管理:linux对每一个文件都进行权限管理1.文件权限管理:u 文件的权限是针对用户的权限,用户分了三类g 文件所有者:这个文件属于谁o 文件所属者:这个文件属于哪个用户组(组内成员的权限)其他用户:出来上边两类用户之外的用户2.用户应该对文件具备的权限也分三类:r 可读权限:用户是否可以读取这个内容w 可
2020-09-21 18:58:59
177
原创 网络基础
一、网络的发展背景 网络的使用:数据传输(不同主机上的进程间通信) 协议:网络中主机之间进行通信必须使用相同的协议(相同的一个光电信号格式)。协议就是一个相互都能识别的约定。 计算机如何传输数据——光电波信号。 在网络中因为主机设备的生产厂商很多,每个厂商如果都使用自己的协议进行通信,那么将导致网络上主机间无法正常通信,这时候一个大型组织设计一个标准的协议,各厂商都使用这个协议进行通信,这时候就能实现网络全覆盖通信了。 网络间的数据传输必须使用同一个标准协议...
2020-09-21 18:51:54
222
原创 多线程
一、线程概念 在一个程序里的一个执行路线就叫做线程。线程是“一个进程内部的控制序列”。 linux下没有真正的线程,linux下的线程是用进程pcb来模拟的,linux下的线程也叫轻量级进程。既然pcb成为了线程,则进程变为线程组(进程id=线程id)。 linux下的pcb是线程,所以线程是cpu调度的基本单位。 进程是操作系统资源分配的基本单位:运行一个程序时,资源就会完全分配,并且这些资源是分配给线程组中的所有线程(因为他们共用这些资源),资源是以进程分配的,进...
2020-09-21 18:46:21
148
原创 排序
一.排序的概念1.排序的概念排序:排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次 序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间
2020-09-21 18:37:03
164
原创 栈和队列
一. 栈1.栈的概念及结构栈是一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端,称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。2.栈的实现栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的 代价比较小。//静态栈typedef int STDataType;#define N 1.
2020-09-02 18:24:26
165
原创 二叉树
一. 树的概念及结构1.树的概念树是一种非线性的数据结构,它是由n个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树。2.树的结构节点的度:一个节点含有的子树的个数称为该节点的度;叶节点或终端节点:度为0的节点称为叶节点;非终端节点或分支节点:度不..
2020-09-02 18:22:57
343
原创 顺序表和链表
一.线性表 线性表是n个具有相同特性的数据元素的有限序列。线性表是一种广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...... 线性表在逻辑上是线性结构,但是在物理结构上并不一定是连续的,线性表在物理存储时,通常以数组和链式结构的形式存储。二.顺序表1.顺序表的概念及结构 顺序表时用一段物理地址连续存储的存储单元依次存储数据元素的线性结构,一般采用数组存储,在数组上完成数据的增删查改。 顺序表可分为静态顺序表(使用定长数组存储)和动态顺序表...
2020-09-02 18:14:36
353
原创 时间复杂度和空间复杂度
一.时间复杂度1.时间复杂度的概念 算法的时间复杂度是一个函数。它定量描述了一个算法的运行时间。一个算法所花费的时间与其语句的执行次数成正比,算法中的基本操作的执行次数,为算法的时间复杂度。2.大O的渐进表示法 O:用于描述函数渐进行为的数学符号。 大O方法: a.用常数1取代运行时间中的所有加法常数; b.在修改后的运行次数函数中,只保留最高阶项; c.如果最高阶项存在且不是1,则去除与这个项目相乘的常数,得到的结...
2020-09-02 18:10:01
283
原创 动态内存管理
一. 存在动态内存分配的原因int val = 20;//在栈空间上开辟四个字节 char arr[10] = {0};//在栈空间上开辟10个字节的连续空间上面的开辟空间的方式有两个特点:空间开辟大小是固定的。数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是有时我们需要的空间大小在程序运行的时候才能知道,这时候就要用动态内存开辟了。二. 动态内存函数(1)malloc和freevoid* malloc (size_t size);这个函数向内
2020-09-02 18:05:18
294
原创 自定义类型
一. 结构体1.结构体类型的声明(1)结构体的定义结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。(2)结构体的声明struct Stu{ char name[20]; int age; char sex[5]; char id[20];};//分号不能丢2.结构体的自引用struct Node{ int data; struct Node next;};
2020-09-02 17:59:10
300
原创 函数进阶
一. 函数的调用过程函数的调用过程要为函数开辟栈空间,用于本次函数的调用中临时变量的保存、现场保护。这块栈空间称之为函数栈帧。在函数调用的过程中ebp和esp这两个寄存器存放了维护这个栈的栈底和栈顶指针。ebp存放指向函数栈帧栈底的地址。 esp存放指向函数栈帧栈顶的地址。eg:#include <stdio.h>int Add(int x, int y){ int z = 0; z = x + y; return z
2020-07-22 21:37:47
276
原创 指针
一. 指针的概念 指针是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。指针就是用来存放地址的变量。指针的大小在32位平台是4个字节,在64位平台是8个字节。二. 指针和指针类型char *pc = NULL; int *pi = NULL; short *ps = NULL; long *pl = NULL;...
2020-07-22 21:10:17
240
原创 数据在内存中的存储
一. 数据类型//整型:char unsigned char signed charshort unsigned short [int] signed short [int]int unsigned int signed intlong unsigned long [int] signed long [int]//浮点型:floatdoublelong double//构造类型:数组类型 int [10]结构体
2020-07-22 20:54:48
300
原创 程序环境和预处理
一. 编译与链接1.组成程序的每个源文件通过编译过程分别转换成目标代码。2.每个目标文件由链接器捆绑在一起,形成一个单一而完整的可执行程序 。3.链接器同时也会引入标准C函数库中任何被该程序用到的函数,而且它可以搜索程序员个人的程序库,将其需要的函数也链接到程序中。(隔离编译,一起链接)4.编译过程分为预处理、编译、汇编预处理:gcc -E 文本操作(#include,#define,删除注释行)编译:gcc -S 把C语言转化成汇编代码(语法、词法、语义分析,符号汇总)汇编:g
2020-06-07 22:53:44
241
原创 简单扫雷游戏(C)
game.h#ifndef __GAME_H__#define __GAME_H__#include<stdio.h>#include<stdlib.h>#include<time.h>#define ROW 9#define COL 9#define ROWS ROW+2#define COLS COL+2#define EASY_COUNT 10void InitBoard(char arr[ROWS][COLS], int rows, in
2020-06-06 21:58:30
734
原创 简单三子棋(C语言)
game.h#ifndef __GAME_H__#define __GAME_H__#include<stdio.h>#include<time.h>#include<stdlib.h>#define ROW 3#define COL 3void InitBoard(char arr[ROW][COL], int row, int col);void DisplayBoard(char arr[ROW][COL], int row, int col)
2020-06-05 17:38:31
200
原创 数组
1.一维数组的创建和初始化(1)数组的创建数组是一组相同类型元素的集合。创建方式:type arr_name [const];//type:数组的元素类型//const:常量表达式,指定数组的大小不能分配大小为0的数组。(2)数组的初始化int arr1[3] = {1, 2, 3};char arr2[] = {'a','b','c'};//三个元素char arr2[] = "abc";//四个元素(\0)char *p = "abc";//把a的地址放入到p
2020-06-05 17:35:14
301
原创 简单函数
1.函数的概念函数的定义:子程序(子程序是一个大型程序的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相对其他代码,具有相对的独立性。一般有输入参数和返回值,提供对过程的封装和对细节的隐藏。这些代码通常被集成为软件库)。C语言中函数的分类:库函数,自定义函数。2.库函数使用库函数,必须包含#include对应的头文件。库函数包括: IO函数 字符串操作函数 字符操作函数 内存操作函数 时间/日期函数 数学函数...
2020-06-04 22:42:19
2452
原创 操作符和表达式
(1)算术操作符+ - * / %除了%操作符外,其他算术操作符可以作用于整形和浮点数;对于/操作符,如果两个操作数都为整数,执行整数除法。操作数只要有浮点数,执行浮点数除法;%操作符的两个操作数必须是整数,返回的是整除后的余数。(2)移位操作符<<左移操作数 >>右移操作数a.左移操作符移位规则:向左移一位,右边补0;...
2020-02-15 09:17:17
446
原创 编写程序,数一下1到100的所有整数中出现多少个数字9
#include<stdio.h>#include<stdlib.h>int main(){ int i = 0; int count = 0; for (i = 0; i < 100; i++) { if (i % 10 == 9) { count++; ...
2020-02-12 21:32:21
358
原创 计算1/1-1/2+1/3+…+1/99-1/100
#include<stdio.h>int main(){ int i = 0; int flag = 1; double sum = 0.0; for (i = 1; i <= 100; i++) { sum = sum + flag * 1.0 / i; flag = -flag; ...
2020-02-12 21:31:41
1837
原创 将数组A中的内容与数组B中的内容交换(数组一样大)
#include<stdio.h>int main(){ int arr1[] = { 1, 2, 3, 4, 5, 6, 7 }; int arr2[]= { 5, 6, 1, 11, 76, 8, 0 }; int num = sizeof(arr1) / sizeof(arr1[0]); int i; for (i = 0;...
2020-02-12 21:30:20
177
原创 求两个数的最大公约数
#include<stdio.h>int main(){ int a = 24; int b = 18; int tmp; while(tmp = a % b) { a = b; b = tmp; } pr...
2020-02-12 21:29:36
222
原创 将三个数按从小到大输出
#include<stdio.h>void Swap(int * px, int * py){ int tmp = 0; tmp = *px; *px = *py; *py = tmp;}int main(){ int a = 1; int b = 2; int c = 3; if(a < b) ...
2020-02-12 21:29:08
618
原创 给定两个整形变量的值,将两个值的内容进行交换
法一:#include<stdio.h>int main(){ int a = 21; int b = 13; int tmp = a; a = b; b = tmp; return 0;}法二:#include<stdio.h>void Swap(int * px, int * py){...
2020-02-12 21:24:51
159
原创 猜数字游戏
#include<stdio.h>#include<stdlib.h>#include<time.h>void menu(){ printf("---------------------------------------------------------------\n"); printf("-----------...
2020-02-07 16:06:24
149
原创 在一个有序数组中查找具体的某个数字x
(1)二分查找算法: 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。(2)实现二分查找,须满足: 必须采...
2020-02-07 16:04:38
1842
原创 计算1!+2!+3!+…+10!
非递归方式:#include<stdio.h>int factorial(int n){ int i; int count = 1; for(i = 1; i <= n; i++) { count = count * i; } return c...
2020-02-07 15:58:45
1876
原创 计算n的阶乘
递归方式:#include<stdio.h>int factorial(int n){ if(n == 1) return 1; else return n * factorial(n-1);}int main(){ int n = 10; ...
2020-02-03 15:37:20
605
原创 编写代码,模拟用户登陆情景,并且只能登陆三次
#include <stdio.h>int main(){ char arr1[10]={0}; int i; for(i = 0; i < 3; i++) { printf("please enter your password:\n"); sc...
2020-02-03 15:36:24
234
原创 编写代码,演示多个字符从两端移动,向中间汇聚。
#include <stdio.h>#include<string.h>int main(){ char arr1[]={"Cherry is a beauty"}; char arr2[]={"******************"}; int left = 0; int right = strlen...
2020-02-03 15:35:46
204
原创 关机程序
电脑在1分钟后开始关机。若输入“Cherry is the most beautiful”,则取消关机。#include<stdio.h>int main(){ char input[50] = {0}; system("shutdown -s -t 60"); while(1) { ...
2020-02-03 15:34:48
184
原创 求解一元二次方程组
首先判断是否满足构成一元二次方程组的条件,其次判断是实根还是虚根,最后求出根的大小。#include<stdio.h>#include<math.h>int main(){ float a, b, c; float i, j; float root1, root2; float t; ...
2020-02-03 15:33:01
460
原创 判断两个数组中是否有相同的元素,有就输出“有”,没有就输出“没有”
//建立两个数组,让第一个数组的内容以此与第二个数组的内容比较。#include<stdio.h>int main(){ int arr1[]={1,2,3,4,5,6,7,8}; int arr2[]={9,10,11,26}; int count = 0; int i; for(i=0; i &...
2020-02-03 15:32:07
790
原创 输出1-100之间的奇数
#include<stdio.h>int main(){ int i; for(i = 1; i <= 100 ;i++) { if (i % 2 != 0) printf("%d ", i); } printf...
2020-02-03 15:31:28
2034
原创 当x大于时,y等于1;当x等于0时,y等于0;当x小于0时,y等于-1。
#include<stdio.h>int main(){ int x,y; scanf("%d",&x); if(x > 0) y = 1; else if(x == 0) y = 0; else ...
2020-02-03 15:30:35
7420
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人