- 博客(25)
- 问答 (1)
- 收藏
- 关注
原创 在线OJ项目测试报告
用户通过点击题库选择题目进行编写,前端通过Ajax把用户写的代码通过Json序列化发送给后端oj_server服务器,后端服务器进行解包把对应的code发送给compiler_server进行编译运行,compile_server编译运行后生成对应的状态码和运行结果返回给oj_server,oj_server在返回给前端页面,前端页面得到运行结果。点击题目,可以跳转至代码输入页面,用户输入代码完毕,点击网页“运行”按钮,代码会交由后端云服务器,负载均衡地挑选主机进行编译运行代码,并将结果返回前端页面。
2025-02-18 11:51:49
1018
原创 Linux:信号
2.CPU中有状态寄存器,保存当前的运算状态,一旦发生了除零错误,寄存器中的某一位标识溢出问题的标记位会被标记为1,OS立即找到当前哪个进程在运行,当前运算的进程的上下文数据保存在寄存器中,所以OS也很容易找到,提取他的PID,OS向该进程发信号,进程在合适的时候处理。也不一定,但是不退出也做不了什么,因为该进程的上下文数据会一直保存,进而使得该进程再次被切回时,状态寄存器还是被标记溢出,就会不断的向该进程发送信号,只能选择终止掉该进程,让它被OS回收。// 判断信号是否存在在该信号集中。
2023-05-04 21:46:11
219
原创 数据结构之栈和队列
栈存储数据的特点是先入后出,它是一种特殊的线性表只允许在一端插入删除数据,进行这些操作的那一端称为栈顶,另一端称为栈底。 入栈:数据压入栈中。 出栈:从栈中删除数据。 栈的C语言实现 typedef char STDataType; typedef struct Stack { STDataType* data; int top; long capacity; }Stack; void StackInit(Stack* ps); // 入栈 void StackPush(Stack* ps,
2022-05-21 20:04:04
244
原创 动态内存管理
目录 动态内存函数的介绍 malloc free calloc realloc 在没学习动态内存开辟的时候,我们最常用的开辟内存方法应该是如下吧。 int arr1[20]; char arr2[20]; 但是以上方法有一些缺点,比如说: 1.它的大小是固定的,不能随着需求的变化而变化 2.它需要在程序运行起来的时候才知道内存空间是浪费了还是缺少了。 所以就引进了动态内存管理的概念。 动态内存函数的介绍 在c语言中为我们提供了两个函数 malloc和free malloc .
2022-04-16 20:00:22
441
原创 结构体、枚举、联合
结构体 结构体类型的声明 结构的自引用 结构体变量的定义和初始化 结构体内存对齐 结构体传参 结构体实现位段(位段的填充&可移植性) 枚举 枚举类型的定义 枚举的优点 枚举的使用 联合 联合类型的定义 联合的特点 联合大小的计算 目录 结构体 枚举 联合 结构体 结构体类型的声明 结构的自引用 结构体变量的定义和初始化 结构体内存对齐 结构体传参 结构体实现位段(位段的填充&可移植性) 结构体类型的声明 .
2022-04-03 09:57:33
258
原创 字符和内存函数的介绍
目录 求字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数介绍 strncpy strncat strncmp 字符串查找 strstr strtok 错误信息报告 strerror 字符操作 内存操作函数 memcpy memmove memset memcmp strlen size_t strlen (const char * dest) 字符串的结束标志是/0,strlen可以
2022-03-26 21:19:48
163
原创 指针的进阶
目录 1. 字符指针 2. 数组指针 3. 指针数组 4. 数组传参和指针传参 5. 函数指针 6. 函数指针数组 7. 指向函数指针数组的指针 8. 回调函数 1. 字符指针 在指针类型中有一种字符指针,一般的使用方法是这样的。 char a='w'; char *=&a; 还有另一种用法 char b=''abcdef''; char *a==&b; 这种用法中a存放的地址是字符串中第一个字符的地址,是常量a的地址,在内存中存放在常量区。 2. 指针数
2022-03-13 21:11:45
353
原创 -深度剖析数据在内存中的存储
在此之前我们学习过很多的数据类型例如: char//大小为1个字节 short//大小为两个字节 int//大小为四个字节 long//大小为四个字节 long long//大小为八个字节 float//大小为四个字节 double//大小为八个字节 整形家族 char unsigned char signed char short unsigned short [int] signed short [int] int unsigned int signed
2022-03-02 11:06:21
203
原创 调整数组使奇数全部都位于偶数前面
题目: 输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。 /* 思路: 1. 给定两个下标left和right,left放在数组的起始位置,right放在数组中最后一个元素的位置 2. 循环进行一下操作 a. 如果left和right表示的区间[left, right]有效,进行b,否则结束循环 b. left从前往后找,找到一个偶数后停止 c. right从后往前找,找到一个奇数后停止 d. 如果left和r
2022-02-18 17:43:50
462
原创 扫雷C语言实现
#include<stdio.h> #include<stdlib.h> #include<time.h> #define ROW 9 #define COL 9 #define ROWS ROW+2//*要比扫雷显示的界面大一圈,因为我们判断边界坐标周围有几个雷的时候有奇效 #define COLS COL+2 void game(); void init_board(char board[ROWS][COLS], int row, int col,char n);/.
2022-01-24 09:53:04
2377
原创 C语言实现三子棋
本次程序涉及到的函数声明 #define _CRT_SECURE_NO_WARNINGS #pragma once #include<stdio.h> #include<stdlib.h> #include<time.h> #define COL 3 #define ROW 3 void game();//游戏函数 void Initboard(char board[ROW][COL], int x, int y);//格式化棋盘 将每个位置初始化成“空格” ...
2022-01-22 18:49:19
2772
原创 大小写的转换、素数筛选、筛选数字
一、大小写的转换 在计算机中存储字符使用ascll码存储,putchar()函数可以接受ascll码转换为字符打印出来; 我们来写一下代码: int main() { int ch; while ((ch = getchar()) != EOF)//当我们输入A在按下回车后 缓冲区中存放了 A和\n //ch只读取一个字符A缓冲区中有一个\n { getchar();//清除\n,以免下次循环后ch直接读取了上一个留下的\n if (ch >= 'A' &&
2022-01-17 18:38:50
411
原创 折半查找、猜数字游戏、关机程序
一、折半查找 题目:在数组{1.2.3.4.5.6.7.8.9.10}中找到7的位置 代码: int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; int k = 7; int left = 0; int right = (sizeof(arr) / sizeof(arr[0])) - 1; while (left <= right) { int mid = left + ((right - left) / 2); i
2022-01-16 21:02:46
2288
原创 分支与循环语句
在我们的生活中一切的事情都可以被拆分成:顺序,分支,循环三种结构,C语言中也离不开这三种结构 一、分支结构 1、分支语句 if语句 if语句的结构: 【单分支】 if(表达式) 语句块 if(表达式) 语句块 else 语句块 【多分支】 if(表达式) 语句块1 else if(表达式) 语句块2 else 语句块3 例子讲解 现在要求输入一个年龄,输出对应的年龄段(青少年<18,<=18青年<30,30<..
2022-01-15 20:47:19
324
空空如也
学完计算机导论需要掌握哪些知识
2021-10-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅