C语言设计pta程序设计,

君,已阅读到文档的结尾了呢~~
C语言程序设计100个经典例子程序,C,帮助,C语言编程,100个,C语言,经典例题,编程语言,c语言吧
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
C语言程序设计100个经典例子
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口C语言程序设计(谭浩强).chm
扫描二维码,下载文件到手机
相关文档推荐
当前文件信息
浏览:1694次
保存:49次
下载:593次
您的VIP会员已过期,是否续费?
用户应遵守著作权法,尊重著作权人合法权益,不违法上传、存储并分享他人作品。举报邮箱:
京网文[0号 京ICP证100780号您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
《C语言程序设计模板.ppt 41页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:200 &&
你可能关注的文档:
··········
··········
三、 函数的调用
(一)、函数调用可以有两种方式
(二)、函数的参数传递
(三)、函数调用的语法要求
(一)函数调用可以有两种方式
函数调用出现在表达式中
例:c = max(a,b)是一个赋值表达式
函数调用以语句的形式出现
例:若调用hello函数,可用以下语句:
hello(); (二)、函数的参数传递 计算实在参数的值,为形式参数分配存储单元,将实在参数的值传给对应的形式参数。 通过return语句将返回值返回到调用处,释放形式参数所分配的内存单元。因此,形参只在函数内部有效,函数调用结束返回主调函数后则不能再使用该形参变量。 函数之间还可以通过全局变量传递参数,将在本章后续内容中介绍。 在C语言中,数据只能从实参传给形式参数,而不能把形式参数的值传回给实在参数,称为“按值传递”,既单向传递。 (三)、函数调用的语法要求
函数调用的语法要求 函数调用时,函数名必须与定义的函数名完全一致。 实参可以是常量、变量、表达式、函数等,在进行函数调用时,它们都必须具有确定的值,实参的个数必须与形参的个数相等,顺序一致,类型匹配,否则会发生“类型不匹配”的错误。 被调函数类型是int或char以外的函数,应先定义或说明,后使用。
四、函数的说明 (一)、函数说明的形式
其一般形式如下:
函数名(类型名
形式参数1,类型名
形式参数2,……);
或者也可以省略形式参数的名字,写成下面形式:
数据类型 函数名(类型名1,类型名2……); 如果被调函数的返回值是整型或字符型时,可以不对被调函数作说明,而直接调用
当被调函数的定义出现在主调函数之前时,在主调函数中也可以不对被调函数再作说明而直接调用
(二)函数说明的位置
函数说明可以放在两个位置:
主调函数的说明部分
所有函数外部,被调用之前 六、变量的存储类别
变量定义的一般形式如下:
存储类型标识符
数据类型 变量名[,变量名,……]; (一) auto变量:局部变量可以定义为auto型,而全局变量不能被说
明成此类型对于局部变量,如果没有指定存储类型、或使用了 auto说明符,糸统就认为所定义的变量具有自动类别。因此,
x;等价于auto
auto变量的存储单元被分配在内存的动态存储区。每当进入函数体或复合语句时,糸统自动为auto变量分配存储单元;退出时自动释放这些存储单元另作它用。因此,这类局部变量的作用域是从定义的位置起,到函数体或复合语句结束为止。所有自动类存储单元都是在进入这些局部变量所在的函数体或复合语句时生成,退出其所在的函数体或复合语句时消失。这就是自动类局部变量的“生存期”。当再次进入函数体或复合语句时,系统将为它们另行分配存储单元;未赋初值的自动变量其值不确定。 自动变量的赋初值是在程序运行过程中进行的,每进入一次函数体或复合语句,就赋一次初值。 寄存器变量也是自动类变量。它与auto类变量的区别在于:用register定义的变量占CPU中的寄存器,而auto类的变量占用内存的动态存储区。程序运行时访问寄存器的速度要比访问内存的速度快得多。因此,当程序对运行速度有较高要求时,把那些频繁引用的少数变量定义为寄存器类型,可以显著地提高运行速度。 在使用寄存器类型的变量时需要注意:
(1)CPU中的寄存器是有限的,因此只能说明少量(两个左右)的寄存器变量。
(2) register型变量的值是存放在CPU中的寄存器中,而不是放在内存中,所以register型变量没有地址。也就不能对它们进行求地址运算。
(3)register型变量的说明应尽量放在靠近使用的地方,用完之后尽快释放,以提高寄存器的利用率。
(4)局部变量可以说明为register型,而全局变量不能被说明成此类
(三) static变量
static变量的存储单元被分配在内存的静态存储区中,它们在程序开始运行前就分配了固定的存储单元,在程序运行过程中占用的存储单元始终不变,只有在程序结束后,才释放所占用的内存单元。
对于局部变量和全局变量都可以说明成static类型。
静态局部变量如果进行初始化,只有第一次执行定义语句时随着定义而进行初始化。当退出所定义的函数或复合语句时,将保留当时值,再次进入所定义的函数或复合语句时,不重新定义,所以也不重新初始化,此时,该变量的值是上次离开时的值。静态局部变量如果不进行初始化,C语言编译系统将自动为其赋予零。 例:stati
正在加载中,请稍后...
84页216页33页617页72页30页22页25页102页48页& C语言程序设计基础视频教程(28集)
秒后自动跳转到登录页
快捷登录:
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。本专题为C语言程序设计基础教程,共28集。
相关视频教程
(共74课时)
(共31课时)
(共40课时)
(共83课时)
创建者其他专题
意见或建议:
联系方式:
您已提交成功!感谢您的宝贵意见,我们会尽快处理C语言程序设计---&21点游戏
#include &stdio.h&
#include &stdlib.h&
#include &time.h&
#define NULL 0
int compare(char sum1,char sum2)
&if(sum1&=sum2)
&&return 1;
&&return 0;
int breakal(int sum)
&if(sum&21)
&&return 0;
&&return 1;
char change(int card)
&char ch,n,m,x;
switch(card)
&case 1: ch='A';
&&&n=1+int(rand()/(RAND_MAX+1.0));
&&&if(n==1)
&&&&ch='K';
&&&&m=1+int(rand()/(RAND_MAX+1.0));
&&&&if(m==1)
&&&&&ch='Q';
&&&&&x=1+int(rand()/(RAND_MAX+1.0));
&&&&&if(x==1)
&&&&&&ch='J';
&} //以上switch语句用于将数字转换成字符
void game()
&int i,k,n;
host_ch,player_ch,host_card[15],player_card[15];
&int host_sum=0,player_sum=0;
&srand(time(NULL));
&for(i=0;i&2;i++)
(10.0*rand()/(RAND_MAX+1.0));
&&player_card[i]=1+int
(10.0*rand()/(RAND_MAX+1.0));&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&player_ch=change(player_card[i]);
&&if(player_card[i]&1
player_card[i]&10)&&
//输出玩家抽到的牌的点数
&&&printf("您抽到的第%d张牌是%d\n",i+1,player_card[i]);
if(player_card[i]==10)
&&&printf("您要到的第%d张牌是%c\n",i+1,player_ch);
&&&printf("您要到的第%d张牌是A\n",i+1);
&&&if(player_ch=='A')
//询问判断玩家的A的点值为1或11
&&&printf("
您有一张A,您想要A作1还是11?\n");
&&&printf("&
1. 1\n" );
&&&printf("&
2. 11\n");
&&&if(scanf("%d",&n)
&&&&player_card[i]=1;
&&&&player_card[i]=11;
&&host_card[i]=1+int
(10.0*rand()/(RAND_MAX+1.0));
&&host_ch=change(host_card[i]);
&&if(host_ch=='A')&&
//电脑自动判断庄家的A的点值为1或11
&&&k=1+int(rand()/(RAND_MAX+1.0));
&&&if(k==1)
&&&&host_card[i]=11;
&&&&host_card[i]=1;
player_sum+=player_card[i];& //分别对庄家和玩家的点数求和
&&host_sum+=host_card[i];
&printf("您现在的总面值为%d\n",player_sum);//输出玩家的总面值
&for(i=2;i&5;i++)
&&if(host_sum&18
host_sum&0)//电脑自动判断庄家是否要牌
&&&host_card[i]=1+int
(10.0*rand()/(RAND_MAX+1.0));
&&&host_ch=change(host_card[i]);
&&&if(host_ch=='A')&&
//电脑自动判断庄家的A的点值为1或11
&&&&k=1+int(rand()/(RAND_MAX+1.0));
&&&&if(k==1)
&&&&&host_card[i]=11;
&&&&&host_card[i]=1;
&&&host_sum+=host_card[i];
&&printf("您还要继续要牌吗?\n");
&&printf(" 1.要\n");
&&printf(" 2.不要\n");
&&scanf("%d",&k);
&&if(k==1)
&&&player_card[i]=1+int
(10.0*rand()/(RAND_MAX+1.0));
&&&player_ch=change(player_card[i]);
&&&if(player_ch=='A')
//询问判断玩家的A的点值为1或11
&&&&printf("您有一张A,您想要A作1还是11?\n");
&&&&printf("
1. 1\n" );
&&&&printf("
2. 11\n");
&&&&if(scanf("%d",&n)
&&&&&player_card[i]=1;
&&&&&player_card[i]=11;
&&&&printf("您要到的第%d张牌是A\n",i+1);
&&&&printf("您要到的第%d张牌是%d\n",i+1,player_card[i]);
&&&player_sum+=player_card[i];
&&&if(i==4)
&&&&printf("您手中已有5张牌,一决胜负的时刻到啦!\n");
&&&if(breakal(host_sum)==0)
&&&&if(breakal(player_sum)==0)
&&&&&printf("庄家爆牌了,您也爆牌了!庄家的牌面值是%d,您的牌面值是%d\n",host_sum,player_sum);
&&&&&printf("\nYou
lose..\n");
&&&&if(breakal(player_sum)==0)
&&&&&printf("您爆牌了!您的牌面值是%d\n
\nYou lose..\n",player_sum);
&&if(breakal(host_sum)==0)
&&&printf("庄家爆牌了!庄家的牌面值是%d\n",host_sum);
&&&printf("\nCongratulations!
YOu win!\n");
&&&printf("庄家的牌面值是%d,您的牌面值是%d\n",host_sum,player_sum);
&&&if(compare(host_sum,player_sum)==1)
&&&&printf("\nYou
lose..\n");
&&&&printf("\nCongratulations!
You win!\n");
int main()
&printf("&&&&&&&&&&&&&&&&
欢迎进入21点游戏!\n");
&printf("&&&&&&&
************************************\n");
&printf("&&&&&&&&&&&&&&&&&&
1.开始游戏\n");
&printf("&&&&&&&&&&&&&&&&&&
2.退出游戏\n");
printf("&&&&&&&
************************************\n");
&if(scanf("%d",&n)&&n==1)
&else if(n==2)
&&printf("&&&&&
******************************\n");
&&printf("&&&&&&&&&&&
游戏结束!祝您愉快!\n");
&&printf("\n\n");
&&printf("&&&&&&&&&&&&&&&&&&
再见!\n");
&&printf("&&&&&
******************************\n");
&&return 0;
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 pta程序设计 的文章

 

随机推荐