c语言
雨后初霁&
逆向深度学习中
展开
-
Wust2022RE题解
无语的招新赛。原创 2023-01-08 15:05:22 · 414 阅读 · 0 评论 -
贪吃蛇小项目
贪吃蛇原创 2022-11-29 23:14:27 · 392 阅读 · 0 评论 -
快速求N!
求n的阶乘原创 2022-11-29 23:08:37 · 228 阅读 · 0 评论 -
网络安全空间导论密码学作业实现
好久之前写的,不过我这代码也确实没啥长进凯撒加密#include<stdio.h>#include<string.h>void m();//菜单void getinput(char input[]);//获得字符串void encrypt(char eninput[],char input[],char map[]);//加密void decode(char deinput[],char input[],char map[]);//解密int main(){原创 2022-04-18 23:59:16 · 4513 阅读 · 0 评论 -
汇编1 c中汇编
汇编函数调用push 参数1push 参数2call 内存地址或者mov ecx,参数1mov edx,参数2call 内存地址2 ,c语言中的函数调用函数名(参数1,参数2)总结:函数名就是编译器给起的内存地址的别名全局变量1,编译的适合就已经确定了内存地址和宽度,变量名就是内存地址的别名。2,如果不重新编译,全局变量的内存地址不变。游戏外挂中找的基址,其实就是找全局变量3,全局变量任何程序可以改,是公用的。(CE)局部变量1,其函数内部申请原创 2022-02-20 21:57:01 · 3250 阅读 · 0 评论 -
硬件hook
硬件hook的技术1,用来脱壳。2,游戏辅助。3,反调试。什么是线程?什么是EIP?EIP是指向下一个执行的代码,是寄存器进程是不能执行的,不能跑起来。我们的进程能执行是线程来进行辅助。宿主(进程)和寄宿者(线程)二者关系。cpu存在线程,在操作系统,线程是全局概念。线程上下文。即时不时运行。#include < iostream > #include <windows.h> using namespace std;int main() { C原创 2022-02-20 21:54:20 · 1077 阅读 · 0 评论 -
逆向疑问解集
逆向疑问解集1,为什么OD不能搜到字符串,而IDA能搜到?(干死只会搜字符串的小白)OD搜索字符串功能的实现是一个插件(本身不具备),我用的吾爱破解的大佬写的。大佬的插件功能是findascll函数中,它会取得反汇编中内存的模块的地址。判断push,lea,mov;例如找到push了,push ebp它会判断ebp里面是不是字符串。而判断字符串的标准是是否以\0结束,是的话则是字符串。如果是个结构体,里面有字符串则无法读取,例如01 00 00 00 d7 a2 b2 e1 ca原创 2022-02-20 21:52:29 · 1045 阅读 · 0 评论 -
c语言数组篇之按因子和排序
我们定义正整数的因子和是不包括自己的其它所有因子之和。例如,4的因子和是1+2=3,6的因子和是1+2+3=6,7的因子和是1,8的因子和是1+2+4=7,9的因子和是1+3=4。我们约定1的因子和是0。原创 2021-11-29 17:04:21 · 2306 阅读 · 0 评论 -
c语言数组篇之寻找缺失编号
有若干个编号(编号是从0开始的连续整数,数量不超过100个)通过键盘输入,以-1表示结束。输入过程中可能发生漏输入现象,请找出缺失的编号并按照指定格式打印出来,其中最大的编号肯定不会漏输入原创 2021-11-29 16:50:28 · 2049 阅读 · 0 评论 -
c语言字符数组篇之6翻了
描述“666”是一种网络用语,大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”,意思是“6翻了”,实在太厉害的意思。如果你以为这就是厉害的最高境界,那就错啦 —— 目前的最高境界是数字“27”,因为这是 3 个 “9”!编写程序,将那些过时的、只会用一连串“6666……6”表达仰慕的句子,翻译成最新的高级表达。输入在一行中给出一句话,即一个非空字符串,由不超过 1000 个英文字母、数字和空格组成,以回车结束。输出从左到右扫描输入的句子:如果句原创 2021-11-25 19:54:26 · 1242 阅读 · 0 评论 -
c语言之蛇形方阵2
描述编写程序,将1到n*n之间的每个整数,从1开始,按照顺序依次填入到n阶蛇形方阵(具体见样例)。输入在一行中给出一个正整数N(<100)。输出输出N×N的蛇形方阵。每行N个数字,每个数字占5位。输入样例 15输出样例 1 1 2 6 7 15 3 5 8 14 16 4 9 13 17 22 10 12 18 21 23 11 19 .原创 2021-11-18 16:04:56 · 1236 阅读 · 0 评论 -
c语言之数组篇蛇形矩阵
描述编写程序,将1到n*n之间的每个整数,从1开始,按照顺序依次填入到n阶蛇形方阵(具体见样例)。输入在一行中给出一个正整数N(<100)。输出输出N×N的蛇形方阵。每行N个数字,每个数字占5位。输入样例 15输出样例 1 1 3 6 10 15 2 5 9 14 19 4 8 13 18 22 7 12 17 21 24 11 16 .原创 2021-11-17 22:23:57 · 1653 阅读 · 0 评论 -
c语言数组篇之细菌的繁殖与扩散
一个细菌繁殖问题,数组题目慢慢做也就不难了原创 2021-11-17 21:50:19 · 1333 阅读 · 0 评论 -
c语言数组之字母方阵
字母方阵描述从右上角开始按字母表顺序S型打印由小写字母组成的字母方阵。输入一个正整数n (1=<n<=1000)。输出按字母表顺序输出n行n列的小写字母组成的方阵,从右上角开始S型循环打印,字母之间用一个空格分割,每行最后一个字母后面没有空格。输入样例 16输出样例 1j y x m l ai z w n k bh a v o j cg b u p i df c t q h ee d s r g f#incl.原创 2021-11-17 11:01:17 · 2089 阅读 · 1 评论 -
c语言数组篇之斜三角填数
斜三角填数描述输入正数N(N<=100),输出下列形状的三角形。例如:当N=5时输出: 11 7 12 4 8 13 2 5 9 14 1 3 6 10 15输入一个自然数N(N<=100)输出按要求输出n个斜行,每个整数按照宽度为5的格式输出。输入样例 15输出样例 1 11 7 12 4 8 13 .原创 2021-11-17 10:43:51 · 1699 阅读 · 4 评论 -
c语言二维数组之拉丁方阵
拉丁方阵描述一个N×N的拉丁方阵中含有整数1-N,且在任意的行或列中都不出现重复数据。该拉丁方阵的产生方法是:当给出第一行含有整数1-N的N个数据序列后,就决定了各数在以下各行的位置,即第一行数为各数在每行中列数的索引表。首先找到某个数在N个数据序列中的位置(下标),然后以此数在序列中的位置为起始,按照数据序列的顺序可以得到该数在后面N-1行中的位置。比如输入序列为:6 3 1 4 2 5在这个序列中,整数1所在的下标为3,在上述序列中从3开始,序列循环依次为3,1,4,2,5,6,原创 2021-11-16 21:50:22 · 1936 阅读 · 0 评论 -
c语言数组篇之1234方阵
描述编程打印如下规律的n*n方阵。输入n,按规律输出方阵。方阵规律如下图:使主对角线和副对角线上的元素为0,它们上方的元素为1,左方的元素为2,下方元素为3,右方元素为4。下图是一个符合条件的5阶矩阵。0 1 1 1 02 0 1 0 42 2 0 4 42 0 3 0 40 3 3 3 0输入正整数n(3 <= n <=100)。输出输出所需的方阵。整数之间用空格隔开。输入样例 1...原创 2021-11-15 22:20:02 · 3291 阅读 · 0 评论 -
c语言之对方阵做统计处理
描述输入一个N*N的一个方阵,依次做如下处理:(1)求两条对角线上各元素之和S1并输出;(2)求两条对角线上行列下标均为偶数的各元素的乘积S2并输出;(3)将该方阵中心位置固定,将方阵顺时针反向旋转90度得到新的方阵,然后输出。输入第一行,1个正整数n,n大于1但不超过30;接下来n行,每行n个整数,整数间用空格隔开。输出第一行输出三个整数S1和S2。接下来的N行输出旋转后得到的新方阵。所有数据之间用1个空格隔开,每行的行首行末均无空格。输入样例原创 2021-11-14 22:13:29 · 871 阅读 · 1 评论 -
c语言之兔子和狐狸
描述山顶有n个洞围成一圈(编号按顺序依次编号1到n),一只兔子和一只狐狸分别住在洞里,狐狸总想吃掉兔子。一天兔子对狐狸说:你想吃掉我有一个条件,你从第一个洞出发(编号为1),第一次先到第一个洞找我,第二次隔一个洞找我,第三次隔二个洞找我,第四次隔三个洞找我,…,依此规律类推,寻找次数不限。我躲在一个洞里不动,只要你能找到我,你就可以吃我饱餐一顿,在找到我之前你不能停。狐狸一想,只有n个洞,次数又不限,哪有找不到的道理。狐狸马上就答应了兔子的条件,结果狐狸围着山顶跑了m圈,跑断了腿也没找到兔子。请问兔原创 2021-11-13 07:40:43 · 1991 阅读 · 0 评论 -
c语言之点赞
描述微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。编写程序,通过统计一个人点赞的纪录,分析这个人的特性。输入在第一行给出一个正整数N(≤1000 ),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“K F_1 ⋯ F_KKF1⋯FK,其中 1≤K≤10 ,F_iFi(i=1 , ⋯ , K )是特性标签的编号,我们将所有特性标签从1到100.原创 2021-11-13 07:36:42 · 1980 阅读 · 1 评论 -
c语言之数组元素循环右移问题
描述一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A_0A_1\cdots A_{N-1})变换为(A_{N-M}\cdots A_{N-1}A_0A_1\cdots A_{N-M-1})(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入第1行输入N(1≤N≤100原创 2021-11-12 10:31:51 · 581 阅读 · 0 评论 -
c语言之求n以内最大的k个素数以及它们的和
描述编写程序,计算并输出不超过n的最大的k个素数以及它们的和。输入在一行中给出n(10≤n≤10000)和k(1≤k≤10)的值。输出在一行中按下列格式输出:素数1+素数2+…+素数k=总和值其中素数按递减顺序输出。若n以内不够k个素数,则按实际个数输出。输入样例 11000 10输出样例 1997+991+983+977+971+967+953+947+941+937=9664输入样例 212 6输出样例 211+7+5..原创 2021-11-11 18:22:58 · 7834 阅读 · 0 评论 -
c语言之心情查询
心情查询描述小明学习C语言写程序完全靠心情(心情指数从0到100),当心情指数超过50时,就会写程序,否则拒绝写程序。已知小明一天24小时的心情指数,需要知道小明在指定的时间点是否有心情写程序。输入在一行中给出 24 个 [0, 100] 区间内的整数,依次代表小明在一天 24 小时中,每个小时的心情指数。随后若干行,每行给出一个 [0, 23] 之间的整数,代表需要询问小明这个时间点的心情。当出现非法的时间点时,表示输入结束。题目保证至少有 1 次询问。输出原创 2021-11-11 16:19:43 · 708 阅读 · 0 评论 -
c语言之奇偶数分开排序
描述将一整数数列按奇数在前,偶数在后的顺序重新排放,并要求奇偶两部份分别按照从小到大有序。输入第1行一个正整数n,n不超过100。第2行包括n个正整数,整数间用空格隔开。输出输出排序后的结果,整数间用1个空格隔开,行首行末均无空格。输入样例 1104 7 2 1 0 3 6 9 5 8输出样例 11 3 5 7 9 0 2 4 6 8#include <stdio.h>int main(int argc,char const *a.原创 2021-11-11 08:44:56 · 3959 阅读 · 0 评论 -
c语言在有序数组中插入一个数
描述输入n个从小到大有序的整数存入一维数组a[0]~a[n-1]中,将x插入数组中使得数组a[0]~a[n]仍然有序。输入第一行1个正整数n,n不超过100。第二行包括n的整数,从小到大有序,相互间用空格隔开。第三行1个整数,为待插入的整数x。输出将数组a[0]~a[n]中的n+1个有序整数依次输出,相互之间用1个空格隔开,行首行末均没有空格。输入样例 151 3 5 7 94输出样例 11 3 4 5 7 9#include <s.原创 2021-11-10 22:21:09 · 6966 阅读 · 0 评论 -
c语言之筛法求素数
描述用筛法输出N以内的所有素数。筛法是求不超过自然数N(N>1)的所有素数的一种方法。据说是古希腊数学家埃拉托斯特尼(约公元前274~194年)发明的,又称埃拉托斯特尼筛法。具体做法是:先把N个自然数依次排列起来。1不是素数,也不是合数,要划去。第二个数2是素数留下来,而把2后面所有能被2整除的数划去。2后面第一个没有划去的数是3,把3留下,再把3后面所有能被3整除的数划去。3后面第一个没有划去的数是5,把5留下,再把5后面所有能被5整除的数划去。\cdots⋯,这样一直做下去,就会把原创 2021-11-10 21:50:55 · 2602 阅读 · 0 评论 -
字符串首尾相连
描述编程实现将字符串1和字符串2首尾连接起来,不要用strcat函数。目标是把字符串2放到字符串1的后面,连接后的新字符串是字符串1。输入第一行,字符串1;第二行,字符串2;两字符串的长度之和不超过100。输出输出首尾相连后得到的新字符串1。输入样例 1abcdef输出样例 1abcdef#include<stdio.h>#include<string.h>int main(int argc,char const .原创 2021-11-09 18:08:49 · 2195 阅读 · 0 评论 -
找出二维数组中的最小元素
描述找出m×n的二维数组中的最小元素,把该元素所在行的各个元素(假设只有一个最小元素)与二维数组的末行元素互换。输入第一行包含2个正整数m和n,分别表示二维数组的行数和列数,其中m和n均不超过30。接下来包含m行,每行n个整数,表示二维数组各位置上的元素。整数之间用空格隔开。保证二维数组中最小元素只有1个。输出参照样例输出格式,分别输出处理前和处理后的二维数组。每个整数按照%4d的格式输出。输入样例 14 49 3 5 74 1 3 82 4 5 6.原创 2021-11-09 16:56:45 · 3283 阅读 · 0 评论 -
c语言之矩阵转置
描述从键盘输入一个n行m列的矩阵,要求输出其转置矩阵(n和m均不超过10)。输入第一行包含2个正整数n和m(均不超过10)。接下来的n行,每行m个整数,表示矩阵数据。输出首先输出转置前矩阵的数据,共n行,每行m个数据;接着输出转置后矩阵的数据,共m行,每行n个数据。整数之间用1个空格隔开,行首行末均无空格。输入样例 13 21 23 45 6输出样例 11 23 45 61 3 52 4 6#include<stdio.原创 2021-11-09 16:30:12 · 7590 阅读 · 0 评论 -
2021-11-09二分查找
描述从键盘输入n个(n不超过100)从小到大已排好序的整数存入数组,然后在数组中采用二分法查找整数x。如果找到,则输出x在数组中的下标;如果没有找到,则输出“Not found”。输入第1行1个正整数n(不超过100);第2行共n个整数,从小到大排列;第3行1个待查找整数x。输出如果找到,输出x在数组中的下标,否则输出字符串“Not found”。输入样例 1102 3 5 7 8 11 14 35 68 7035输出样例 17.原创 2021-11-09 16:19:09 · 1060 阅读 · 0 评论 -
c语言之冒泡排序
描述从键盘输入n个整数(n不超过100),将他们从小到大排序后按顺序输出。输入包含2行,第1行包含一个正整数n(不超过100),第2行包括n个整数,整数之间用1个空格隔开。输出输出排序后的整数序列,整数间用1个空格隔开,行首行末均无空格。输入样例 1103 2 8 5 9 7 4 1 0 6输出样例 10 1 2 3 4 5 6 7 8 9#include<stdio.h>int main(int argc,char *argv[]).原创 2021-11-09 15:59:04 · 827 阅读 · 0 评论 -
2021-11-09输出斐波那契数列的前n项
描述输出斐波那契数列的前n项(n由键盘输入),要求每行输出5个。输出斐波那契数列的第1和2项均为1,从第3项开始,每项都是前2项的和。输入一个正整数n,不超过40。输出每行输出5个整数,每个整数采用%10d的格式输出。输入样例 120输出样例 1 1 1 2 3 5 8 13 21 34 55...原创 2021-11-09 15:29:56 · 2767 阅读 · 0 评论 -
2021-11-07 c语言之不变初心数
描述不变初心数是指这样一种特别的数,它分别乘 2、3、4、5、6、7、8、9 时,所得乘积各位数之和却不变。例如 18 就是这样的数:18 的 2 倍是 36,3+6=9;18 的 3 倍是 54,5+4=9;…… 18 的 9 倍是 162,1+6+2=9。对于 18 而言,9 就是它的初心。编写程序,输出指定范围内[ a, b ] 的所有不变初心数。输入一行中给出2个正整数a和b,且a \leq b \leq10^5a≤b≤105。输出按照从小到大的顺序输..原创 2021-11-07 11:57:09 · 5224 阅读 · 1 评论 -
杨辉三角形
描述编写程序,输出n行杨辉三角形。输入一个正整数n,不超过32。输出输出n行杨辉三角形,每个数字输出宽度为10。输入样例 15输出样例 1 1 1 1 1 2 1 1 3 3 1 .原创 2021-11-06 13:03:11 · 941 阅读 · 0 评论 -
求满足条件的数(数字和)
描述编写程序,输入N(n<=32767),输出N以内的正整数(包括N),使其数字之和为15,每行输出8个数。输入一个正整数N(n<=32767)输出递增的顺序输出所有满足条件的正整数,每行输出8个数,每个整数输出宽度为6。如果满足条件的数一个都没有,则输出“None”。#include <stdio.h>int main(int argc,char *argv[]){ int a,b,i,n,count=0,z=0; scanf...原创 2021-11-06 12:24:13 · 1600 阅读 · 0 评论 -
A类数统计
描述一个二进制数,如果1的个数多于0的个数 ,则称A类数,否则称非A类数。例如:1001,1000为非A类数,1101和1111000为A类数。16之内对应的二进制数是A类数的为:1,3,5,6,7,11,13,14,15。所以16之内有9个A类数。编写程序,统计小于给定整数的A类数有多少个。输入正整数N(N<=400000)。输出输出对应整数范围内A类数的个数。输入样例 116输出样例 19#include <stdio.h.原创 2021-11-06 11:59:33 · 1249 阅读 · 0 评论 -
2021-11-06 编程打印空心菱形
编程打印空心菱形描述所谓“空心菱形”是指:每行由两端为*、中间为空格的字符串构成,每行的字符串中心对齐;上半部分相邻两行字符串长度差2;下半部分与上半部分对称。编写程序,输出n行“空心菱形”。输入空心菱形的高度n(n为奇数,且5 \leq n \leq 9995≤n≤999)。输出输出n行空心菱形。输入样例 17输出样例 1 * * * * ** * * * * * *#include <st...原创 2021-11-06 10:34:53 · 2923 阅读 · 0 评论 -
输出三角形字符阵列
描述编写程序,输出n行由大写字母A开始构成的三角形字符阵列。输入一个正整数n(1≤n≤10)。输出输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,各字符间用1个空格隔开。输入样例 14输出样例 1A B C DE F GH IJ#include <stdio.h>int main(){ int a,i,j,z=0; char ch='A'; scanf("%d",&a); for(i...原创 2021-11-06 09:09:01 · 485 阅读 · 2 评论 -
c语言之整除光棍
不知道作为程序员的你是否找到了另一半呢?不妨做一做光棍题吧!描述这里所谓的“光棍”,是指全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。请编写程序读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止原创 2021-11-05 18:50:53 · 3942 阅读 · 0 评论 -
神奇的数学之回文数
描述回文数是一种数字。如:8008, 这个数字正读是8008,倒读也是8008,正读倒读一样,所以这个数字就是回文数。任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其和不是回文数,则重复上述步骤,一直到获得回文数为止。例如:68变成154(68+86),再变成605(154+451),最后变成1111(605+506),而1111是回文数。于是有数学家提出一个猜想:不论开始是什么正整数,在经过有限次正序数和倒序数相加的步骤后,都会得到一个回文数。编写程序,验证上述猜想。原创 2021-11-05 18:32:11 · 1715 阅读 · 0 评论