ImageVerifierCode 换一换
格式:DOCX , 页数:48 ,大小:159.46KB ,
资源ID:7566803      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7566803.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c语言小游戏.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c语言小游戏.docx

1、c语言小游戏2345678#includemain()inta=0,b=0,c=0;if(a+0&b+0)/此处先判断a0为假,执行a+1,与运算,第一个判断为假,其值肯定为假,后面的都不执行了,而且跳出if语句体,也就是b+没有执行,+c也没有执行+c;printf(na=%d,b=%d,c=%d,a,b,c);C语言实现的猜拳游戏(剪子锤子布),让你与电脑对决这是一个简单的猜拳游戏(剪子包子锤),让你与电脑对决。你出的拳头由你自己决定,电脑则随机出拳,最后判断胜负。下面的代码会实现一个猜拳游戏,让你与电脑对决。你出的拳头由你自己决定,电脑则随机出拳,最后判断胜负。启动程序后,让用户出拳,截

2、图:用户出拳,显示对决结果:截图:代码实现: #include #include #include int main() char gamer; / 玩家出拳 int computer; / 电脑出拳 int result; / 比赛结果 / 为了避免玩一次游戏就退出程序,可以将代码放在循环中 while (1) printf(这是一个猜拳的小游戏,请输入你要出的拳头:n); printf(A:剪刀nB:石头nC:布nD:不玩了n); scanf(%c%*c,&gamer); switch (gamer) case 65 | 97: / A | a gamer=4; break; case 6

3、6 | 98: / B | b gamer=7; break; case 67 | 99: / C | c gamer=10; break; case 68 | 100: / D | d return 0; default: printf(你的选择为 %c 选择错误,退出.n,gamer); getchar(); system(cls); / 清屏 return 0; break; srand(unsigned)time(NULL); / 随机数种子 computer=rand()%3; / 产生随机数并取余,得到电脑出拳 result=(int)gamer+computer; / gamer

4、 为 char 类型,数学运算时要强制转换类型 printf(电脑出了); switch (computer) case 0:printf(剪刀n);break; /4 1 case 1:printf(石头n);break; /7 2 case 2:printf(布n);break; /10 3 printf(你出了); switch (gamer) case 4:printf(剪刀n);break; case 7:printf(石头n);break; case 10:printf(布n);break; if (result=6|result=7|result=11) printf(你赢了!)

5、; else if (result=5|result=9|result=10) printf(电脑赢了!); else printf(平手); system(pausenul&cls); / 暂停并清屏 return 0;代码分析1) 首先,我们需要定义3个变量来储存玩家出的拳头(gamer)、电脑出的拳头(computer)和最后的结果(result),然后给出文字提示,让玩家出拳。接下来接收玩家输入: scanf(%c%*c,&gamer);注意:由于每次输入以回车结束,缓冲区中除了玩家输入的字母,还有回车符。回车符要跳过,以免影响下次输入。Scanf() 函数的格式控制字符串个数可以多于

6、参数个数,scanf(%c%*c,&gamer);的作用是从缓冲区多输出一个字符(回车符),却不赋给任何变量。玩家输入结束,使用 switch 语句判断输入内容,65(A)、97(a)、66(B)、98(b)、67(C)、99(c)、68(D)、100(d)为相应字符的ASCII码。注意:system(cls); 语句的作用是清屏。System() 函数用来执行 dos 命令,这里相当于在 dos 里输入 cls 命令。2) 玩家出拳结束,电脑开始出拳。电脑通过产生随机数来出拳: srand(unsigned)time(NULL); /为了避免多次运行结果相同,故在前面加入上(需要time.h

7、)computer=rand()%3; /获取02的随机数最后通过玩家和电脑出拳的和来判断输赢:result=(int)gamer+computer;/ .if (result=6|result=7|result=11) printf(你赢了!);else if (result=5|result=9|result=10) printf(电脑赢了!);else printf(平手);这是一个很巧妙的算法,玩家和电脑出拳不同,result 的值就不同,且不会重复,见下表:电脑 - 玩家石头(4)剪刀(7)布(10)石头(0)4710剪刀(1)5811布(2)69123) 每次猜拳结束,暂停并清屏,

8、进入下一次猜拳:system(pausenul&cls); /暂停运行和清屏C语言输出九九乘法表(5种解法)九九乘法表共9行9列,重点考察for循环的掌握情况。下面给出了输出完整乘法表、右上、右下、左上、左下乘法表的代码。【代码一】输出完整的三角形: #include int main() int i,j; / i, j控制行或列 for(i=1;i=9;i+) for(j=1;j=9;j+) / %2d 控制宽度为两个字符,且右对齐;如果改为 %-2d 则为左对齐 / t为tab缩进 printf(%d*%d=%2dt, i, j, i*j); printf(n); return 0;运行结

9、果: 1*1= 1 1*2= 2 1*3= 3 1*4= 4 1*5= 5 1*6= 6 1*7= 7 1*8= 8 1*9= 92*1= 2 2*2= 4 2*3= 6 2*4= 8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=183*1= 3 3*2= 6 3*3= 9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=274*1= 4 4*2= 8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=365*1= 5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35

10、5*8=40 5*9=456*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=547*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=638*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=729*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81【代码二】输出右上三角形和左上三角形: #include int main()

11、 int i,j; for(i=1;i=9;i+) for(j=1;j=9;j+) if(ji) /打印八个空格,去掉空格就是左上三角形 printf( ); else printf(%d*%d=%2d ,i,j,i*j); printf(n); return 0;运行结果: 1*1= 1 1*2= 2 1*3= 3 1*4= 4 1*5= 5 1*6= 6 1*7= 7 1*8= 8 1*9= 9 2*2= 4 2*3= 6 2*4= 8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18 3*3= 9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24

12、3*9=27 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45 6*6=36 6*7=42 6*8=48 6*9=54 7*7=49 7*8=56 7*9=63 8*8=64 8*9=72 9*9=81去掉八个空格后的运行结果: 1*1= 1 1*2= 2 1*3= 3 1*4= 4 1*5= 5 1*6= 6 1*7= 7 1*8= 8 1*9= 92*2= 4 2*3= 6 2*4= 8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=183*3= 9 3*4=12 3*

13、5=15 3*6=18 3*7=21 3*8=24 3*9=274*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=365*5=25 5*6=30 5*7=35 5*8=40 5*9=456*6=36 6*7=42 6*8=48 6*9=547*7=49 7*8=56 7*9=638*8=64 8*9=729*9=81【代码三】输出右下和左下三角形: #include int main() int i,j,n; for(i=1;i=9;i+) / 将下面的for循环注释掉,就输出左下三角形 for(n=1; n=9-i; n+) printf( ); for(j=1;

14、j=i;j+) printf(%d*%d=%2d ,i,j,i*j); printf(n); return 0;运行结果: 1*1= 1 2*1= 2 2*2= 4 3*1= 3 3*2= 6 3*3= 9 4*1= 4 4*2= 8 4*3=12 4*4=16 5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25 6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48

15、8*7=56 8*8=649*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81去掉循环后的运行结果: 1*1= 12*1= 2 2*2= 43*1= 3 3*2= 6 3*3= 94*1= 4 4*2= 8 4*3=12 4*4=165*1= 5 5*2=10 5*3=15 5*4=20 5*5=256*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=367*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=498*1= 8 8*2=16 8*3=24 8*4

16、=32 8*5=40 8*6=48 8*7=56 8*8=649*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81C语言文件加密解密软件文件加密解密是常用的一个功能,可以很好的保护你的隐私内容;本软件简单的实现了文件加密解密的功能。为了防止别人随意使用软件,软件本身也有一个密码,必须输入密码才能使用软件。软件的功能有: 加密文件:打开需要加密的文件,输入密钥,将加密的文件保存; 解密文件:打开需要解密的文件,输入密钥,将解密的文件保存; 修改密码:可以临时修改软件的使用密码,但是软件重启后会被重置; 退出程序:完成工作后退

17、出。软件使用流程1) 启动软件,输入密码软件启动后,必须输入密码才能使用(默认密码为 123456)。用户有3次输入密码的机会,连续3次输入错误软件将自动退出。截图如下:图1 软件启动时校验密码2) 密码校验正确,显示功能菜单密码校验完成后,会显示功能菜单,让用户选择要进行的操作,如下图所示:图2 软件菜单3) 用户选择要进行的操作文件加密:输入1并回车,进入文件加密功能,要求用户输入要加密的文件名、密钥、保存加密内容的文件。在D盘下创建文件demo.txt,输入一些文本,对该文件进行加密。加密成功后,用记事本打开加密的文件,看到的全部是乱码,截图如下:图3 加密成功如果输入的文件路径错误,或

18、者打开/创建文件失败,将导致加密失败,截图如下:图4 加密失败注意:文件名要包含路径,只有文件名表示当前程序所在文件夹下的文件。文件解密:回到主菜单,输入2并回车,进入文件解密功能,同样要求用户输入要解密的文件、密钥和保存解密内容的文件。输入上次加密的文件,将解密后的文件保存到demo2.txt,解密成功后打开demo2.txt,可以看到被还原的具有可读性的内容。截图如下:图5 解密文件成功修改密码:回到主菜单,输入3并回车,进入密码修改功能。修改密码前要求用户输入原来的密码,并两次输入新密码,保证不会误输入。截图如下:图6 修改密码成功退出系统:回到主菜单,输入0退出软件。对于该软件,我们提

19、供了详细的说明文档,包括软件的使用、设计思路、重要知识点以及常用的编程技巧,并且在代码中做了详细的注释。软件、说明文档及源码下载地址: 提取密码:l2awC语言写的简单的定时关机程序写一个定时关机的小程序,可以立即关闭计算机,也可以一段时间后关闭计算机。这里主要考察system()命令。代码实现: #include#include#includeint main() char cmd20=shutdown -s -t ; char t5=0; int c; system(title C语言关机程序); /设置cmd窗口标题 system(mode con cols=48 lines=25);

20、/窗口宽度高度 system(color f0); /可以写成 red 调出颜色组 system(date /T); system(TIME /T); printf(- C语言关机程序 -n); printf(1.实现10分钟内的定时关闭计算机n); printf(2.立即关闭计算机n); printf(3.注销计算机n); printf(0.退出系统n); printf(-n); scanf(%d,&c); switch(c) case 1: printf(您想在多少秒后自动关闭计算机?(0600)n); scanf(%s,t); system(strcat(cmd,t); break; c

21、ase 2: system(shutdown -p); break; case 3: system(shutdown -l); break; case 0: break; default: printf(Error!n); system(pause); return 0;这个程序虽然实用价值不大,但是可以让我们了解 system() 函数。在Windows下,system() 函数可以执行 dos 命令;在 Unix/Linux 中,可以执行Shell。请在Windows下运行上面的程序。程序中对dos界面的设置和关机功能都是通过dos命令实现的。你肯定听过内存溢出吧?通俗地理解就是内存不够。

22、在运行某些比较吃内存的程序的时候,他们所需要的内存超出了你的电脑能承受的大小,系统会提示内存不足,有时候程序会自动退出。请用C语言写一个简单的内存溢出的例子。#include #include int main() while(1) /死循环 malloc(1); /分配一个字节长度的内存 return 0;不要害怕,编译试试,打开任务管理器,可以看到你的内存占用直飚上去,再等等,程序会出错。这时候windows的内存管理机制发现了问题,把这个程序给终结了,防止系统奔溃(其他的系统也有相应的措施)。C语言动态数组的实现:数组长度随数组元素改变,不会溢出,不会浪费资源我们知道,C语言中的数组大小

23、是固定的,定义的时候必须要给一个常量值,不能是变量。这带来了很大的不便,如果数组过小,不能容下所有数组,如果过大,浪费资源。请实现一个简单的动态数组,能够随时改变大小,不会溢出,也不会浪费内存空间。下面的代码实现了简单的动态数组: #include #include int main() /从控制台获取初始数组大小 int N; int *a; int i; printf(Input array length:); scanf(%dn,&N); /分配空间 a=(int *)calloc(N,sizeof(int); /填充数据 for(i=0;iN;i+) ai=i+1; printf(%-

24、5d,ai); if(i+1)%10=0) printf(n); /释放内存 free(a); a=NULL; printf(n); return 0;运行结果: Input array length:201 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 20一道题目,玩转C语言指针数组和指向指针的指针请先看下面的代码: #include #include int main() char *lines5 = COSC1283/1284, Programming, Techniques, is, great fun ; char *str1 = lin

25、es1; char *str2 = *(lines + 3); char c1 = *(*(lines + 4) + 6); char c2 = (*lines + 5)5; char c3 = *lines0 + 2; printf(str1 = %sn, str1); printf(str2 = %sn, str2); printf( c1 = %cn, c1); printf( c2 = %cn, c2); printf( c3 = %cn, c3); return EXIT_SUCCESS;运行结果: str1 = Programmingstr2 = is c1 = f c2 = 2

26、c3 = E看下面的分析之前,请先了解指针数组和指向指针的指针的基本概念,如果你不了解,先看下面的文章: 指针数组: 指向指针的指针:为了更加直观,把上面的数组改成下面的形式: #include #include int main() char *string0 = COSC1283/1284; char *string1 = Programming; char *string2 = Techniques; char *string3 = is; char *string4 = great fun; char *lines5; lines0 = string0; lines1 = string

27、1; lines2 = string2; lines3 = string3; lines4 = string4; char *str1 = lines1; char *str2 = *(lines + 3); char c1 = *(*(lines + 4) + 6); char c2 = (*lines + 5)5; char c3 = *lines0 + 2; printf(str1 = %sn, str1); printf(str2 = %sn, str2); printf( c1 = %cn, c1); printf( c2 = %cn, c2); printf( c3 = %cn, c3); return EXIT_SUCCESS;这样,或许会清晰很多,char *lines5; 定义了一个指针数组,数组的每一个元素都是指向char类型的指针。最后5行,为数组的每一个元素赋值,都是直接赋给指针。而lines,是一个指向指针的指针,它的类型为 char *,所以 *lines 是一个指向字符的指针,*lines是一个具体的字符。这一点很重要,一定要明白。指针是可以进行运算的,lines 为lines5数组的首地址,即第0个元素的地址;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1