欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    新编C语言程序设计教程PPT第7章函数.ppt

    • 资源ID:5988111       资源大小:329.50KB        全文页数:28页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    新编C语言程序设计教程PPT第7章函数.ppt

    新编C语言程序设计教程 清华大学出版社,周二强 软件学院 计算机科学与工程系配套视频:博客:,第7章函数,7.6 库函数简介7.6.1 getchar函数、getch函数和getche函数7.6.2 rand函数、srand函数和time函数 7.6.3 字符串处理函数7.7 综合实例,函数库,函数库是C语言必不可少的补充,常用的有标准输入输出库(stdio.h)、数学函数库(math.h)、标准库(stdlib.h)、日期时间库(time.h)、字符函数库(ctype.h)和字符串处理库(string.h)等。使用库函数,既可以提高编程效率,又可以提高程序的可靠性。函数库的详细介绍可参考有关资料,本节仅介绍几个常用的库函数。,7.6.1 getchar函数、getch函数和getche函数,getchar函数在stdio.h中声明,getch函数和getche函数在conio.h(控制台输入输出)中声明。getchar函数与getch函数及getche函数功能相似,它们可简单地理解为返回用户输入字符的ASCII码。不同之处在于:getchar函数使用输入缓冲区,而getch函数和getche函数不使用。使用缓冲区时?不使用时?,例7-28 getch函数、getche函数和getchar函数的区别,例7-29回车键的返回值,键盘上的回车键相当于两个字符,把当前位置移到本行开头的回车符(r)和新起一行并把当前位置移到新行开头的换行符(n)。输入回车键时,getchar函数和getch函数会返回什么字符呢?例7-29可以提供一个参考答案。,return,7.6.2 rand函数、srand函数和time函数,rand函数和srand函数在stdlib.h中声明。rand函数的功能是返回一个0到RANDMAX之间的随机数。RANDMAX为stdlib.h中定义的符号常量,VC6.0中它的值为32767。VC6.0中rand函数所用的算法与例7-16相同。rand函数在使用时有何问题?,函数rand的问题?,问题的解决?,srand函数的头部为void srand(unsigned int seed)。调用srand函数可以改变rand函数的种子,从而使rand函数可以产生不同的随机序列。由rand函数的算法可知,在多次调用rand函数产生随机序列之前,仅需调用srand函数几次?,“真正”的随机序列,一次。虽然srand函数可以使rand函数产生不同的随机序列,但是希望每次执行程序都会得不同的随机序列还并非易事,如何用同一条函数调用语句给rand函数设置不同的种子?srand(?);,“真正”的随机序列,time函数可以解决这个问题。time函数在time.h中声明,它返回从公元1970年1月1日0时0分0秒起到现在(计算机当前的系统时间)所经过的秒数。它常用的调用形式为time(NULL),其中NULL为stdio.h中定义的一个值为0的符号常量。程序总是在不同的时刻运行,因此,time(NULL)的返回值在每次程序运行时都不相同,把它作为rand函数的种子,就可以保证rand函数在每次程序运行时产生不同的随机序列。srand(time(NULL);,例7-30 不重复的随机序列,return,7.6.3 字符串处理函数,字符串处理函数用来处理字符串,常用的有strcat函数、strcpy函数、strncpy函数、strcmp函数和strlen函数等,它们都在 string.h中声明。字符串常存储于字符数组中,因此下面在分析字符串处理函数时用字符数组代替字符串,这里的字符数组实际上为存储在其中的字符串。如:strcat(字符数组1,字符数组2),strcat函数,的一般形式为:strcat(字符数组1,字符数组2)strcat(string catenate 字符串连接)函数的作用是把字符数组2中的字符串2复制并连接到字符数组1中字符串1的后面,最终,字符数组1中的字符串由字符串1和字符串2连接而成,而字符数组2中的字符串不变。注意:字符数组1必须能容纳新的字符串,否则使用该函数的程序将出现问题。,例7-31 strcat函数的使用,strcpy,函数的一般形式为:strcpy(字符数组1,字符数组2)strcpy(string copy 字符串拷贝)函数的功能是将字符数组2中的字符串2拷贝到字符数组1中,最终,两个数组中的字符串均为字符串2。此函数同样要求字符数组1能容纳新的字符串。如有char str111=I love C!,str2=Hehe;,当执行完strcpy(str1,str2)后,字符数组str1的变化如图7-9所示。,注意,不能用字符串常量给字符数组赋值,也不能用一个字符数组给另一个字符数组赋值,如语句str1=come on!;或str1=str2;都是错误的。字符串的赋值操作需用strcpy函数,正确的作法为:strcpy(str1,come on!);或strcpy(str1,str2);。可以用字符串常量初始化字符数组,如语句char str1=come on!;,strncpy函数,的一般形式为:strncpy(字符数组1,字符数组2,n)strncpy函数的功能是把字符数组2中所含字符串2的前n个字符复制到字符数组1的起始部分。特别注意:该函数不会在复制的字符后加0字符,但是字符串2的长度小于n时,会以0 字符填充字符数组1直到复制完n个字符。此函数要求字符数组1的长度至少为n。如有char str111=I love C!,str2=Hehe;,则执行完语句strncpy(str1,str2,2);后,字符数组str1中的字符串为Helove C!。,strncpy函数,如果执行了语句strncpy(str1,str2,7);则字符数组str2中的字符串为Hehe,其状态如图7-11所示。,strcmp函数,的一般形式为:strcmp(字符数组1,字符数组2)strcmp(string compare 字符串比较)函数的功能为比较两个字符数组中所含字符串的大小,如果字符数组1中的字符串大于字符数组2中的字符串则返回一个正整数;如果等于,则返回0;如果小于,则返回一个负整数,具体的返回值可参考例6-13。该函数常用的方式为;if(strcmp(str1,str2)0)printf(%s大于%sn,str1,str2);,strlen函数,的一般形式为:strlen(字符数组)strlen(string length字符串长度)函数的功能是测试字符数组中字符串的长度,它返回有效长度而非实际长度,即不计算末尾字符0。如strlen(China)的值为5,而sizeof(China)的值为6。,return,7.7 综合实例,例7-32 确定公元y年m月d日是星期几。分析:已知公元1年1月1日是星期一,则再过7天、14天7*n天后仍是星期一,因此只要求出公元1年1月1日到公元y年m月d日有多少天,设有x天,再计算x%7的值,若结果是0,则公元y年m月d日为星期天,否则结果为几,公元y年m月d日就是星期几。如公元1年1月1日到公元1年1月20日有20天,则1年1月20日为星期(20%7=)6。,例7-32确定公元y年m月d日是星期几,算法如下:第一步,请用户输入年(year),月(month),日(day);第二步,判断year年month月day日的合法性;第三步,求出从1年1月1日到(year-1)年12月31日有多少天;第四步,求出从year年1月1日到year年month月day日有多少天;第五步,把第三步和第四步求出的天数累加起来,累加和与7进行模运算,并根据运算结果判断出year年month月day日为星期几。,设首部为int check(int y,int m,int d)的check函数可以检测出日期数据的合法性,如果y年m月d日是合法的日期check函数返回1,否则返回0。设首部为int daysOfYears(int year)的daysOfYears函数可以返回1年1月1日至year年12月31日有多少天。设首部为int daysOfThisYear(int y,int m,int d)的daysOfThisYear函数可以返回y年1月1日至y年m月d日有多少天。,例7-32确定公元y年m月d日是星期几,check函数,日期合法性的检查内容主要是月份值应在1到12之间,每月的天数应不超过该月的最大天数。在工程7_32中加入名为7_3202.c的源文件,其内容如下:,daysOfYears函数,天数需从1年累加到year年,平年为365天,闰年为366天,但是考虑到最终的天数要与7进行模运算,余数才是关键,因此没有必要累加出实际天数,只需累加实际天数除以7所得的余数即可,也就是平年按(365%7)1天计算,闰年按2天计算。在工程7_32中加入名为7_3203.c的源文件,其内容如下:,daysOfThisYear函数,计算天数时先把1月至(m-1)月的天数累加起来,再加上d的值即可。在工程7_32中加入名为7_3204.c的源文件,其内容如下:,return,

    注意事项

    本文(新编C语言程序设计教程PPT第7章函数.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开