版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言复习第十节C语言复习第十节假设定义数组:int a108; 问数组共有多少元素?在内存中存储时占多少字节?如何在内存中存放?最后一个单元的元素下标是多少?27.3 字符数组 字符数组是用来存放字符数据的数组,数组中的每个元素只能存放一个字符。一、定义形式:char c5包含5个元素:c0、c1.c4c0 c1 c2 c3 c4 C h i n a 说明:由于机器内实际存放的是字符的ASCII码值整型数,故上面的定义也可以是: int c5;3二、赋初值同一维数组类似。1。定义时赋初值如: char c5=C,h,i,n,a; 不能超过5个字符,假设少于5个,后面的赋给空字符“0。 说明:
2、1假设字符个数与数组长度一样时,可以不指定数组长度。如: char c =H,o,w, ,a,r,e, ,y,o,u; 系统可以自动定义c数组的长度为11,即c112。用赋值语句-必逐个赋值. 如:chr c3; c0=A;c1=B; c2=C;4三、字符串和字符串完毕标志 C语言中将字符串用字符数组来表示。1。用“0作为字符串的完毕标志。“0是ASCII码值为“0的空操作,在此表示字符串完毕。2。字符串常量的初始化 前面讲初始化时,一个一个字符写,也可简单。如:char c =“How are you;或: char c =“How are you ;系统可以自动识别c数组的长度为12,相当
3、于:char c =H,o,w, ,a,r,e, ,y,o,u,0; H o w a r e y o u 05四、字符数组的输入输出一字符数组的输入1。用scanf函数1用格式符%c: 一次输入一个单字符。 如: char str6; int i; for (i=0;iy?x:y; return(z)14C语言复习第十节一、一般形式:类型标识符 函数名(形式参数列表)变量说明 语句如:int max(int x,int y) int z; z=xy?x:y; return(z)定义一个求绝对值函数abs?float abs(float x) float y; y=(x=0)?x:-x; ret
4、urn(y)说明:1.类型标识符为函数的数据类型,表示了该函数返回值的数据类型. 假设不加类型说明按整型.2.无参函数无形参列表,也可无类型(因无返回值)。153.形参类型说明既可在参数列表中,也可在函数体外给出。如:形式参数说明的传统方式int max(x,y)int x,y;.4 .变量说明不能写在函数体外,如:int z .5 .空函数 形式: 类型说明符 函数名( ) 如:dummy( ) 表示该函数什么也不作.通常程序中将一些要调用的函数处,加一空函数。将后来编好的函数可以加在此处。16C语言复习第十节一、形参与实参: 形参:函数定义中的参数在被调函数中。 实参:调用函数时,给出的参
5、数,在主调函数中 调用函数时,大都有值传递关系,即将主调函数实参送到被调函数的形参。调用后,被调函数将函数值再传回主调函数int max(int x,int y) int z; z=xy?x:y; return(z)如: d=max(a,b); m=max(c,d); a,b x,y; zd c,d x,y; z m每次把最大值返给主调函数17 例1 :求a,b,c三个数中的最大值。 main int a,b,c,d,m ; scanf(“%d,%d,%d, &a,&b,&c) ; _ _ printf(“max is %dn , m); /*输出结果*/ d=max( a,b ); m=ma
6、x(c,d);m=max(max(a,b),c);主函数:定义;输入;调用函数计算或处理;输出;子函数:处理:实现函数功能 int max( int x, int y) ; int z ; if (xy) z=x; else z=y; return (z); /*将z值返回*/ 总结规律?两步合一用if语句写函数18C语言复习第十节1.定义函数时,形参必指定类型int x, int y)。2 .实参与形参类型应一致。字符型和整型可通用。3。实参可以是常量,变量或表达式。但变量和表达式要有确定 的值。如:a=1, b=2; max(a*b, a+b);4. 参数的传递是“值传递, 即单向传递。数
7、据只能由“实参“形参,不能由“形参 “实参19如:将上例改动一下:a=1,b=2; d=max(a+2,b);参数传递:int max(int x,int y)a 1 b 2 a 1 b 2x 3 y 2 x 3 y 2完毕后,x的3并不送回a.5. 值传递前,形参x,y并未分配内存单元。调用完毕后,形参所占内存空间即可释放。20请说出该程序的输出结果:main() int a=5,b=10; asd(a,b); printf(a=%d,b=%dn,a,b); getch();asd(int x,int y)x=x+3;y=y+5;21作用:将一个确定的返回值送给调用函数。说明:1函数中可以没
8、有返回值。 函数中也可以有多个return.2返回值可以是表达式:如: max(int x,int y) return(xy?x:y);(3)可以不写。如: return z 与return (z)一样。二、函数的返回值返回值语句的格式:return( )返回一个确定的值224。返回值的类型一般应与函数的类型一致。如:int max(int x,int y); max为整型,z也应为整型。5。假设函数类型与返回值类型不同,由函数类型决定返回值类型。返回值类型自动转换成函数类型。6。为了明确函数“不带回值,可用关键字“void 定义“无类型函数。 23C语言复习第十节有以下程序 #define
9、P 3 void F(int x) return(P*x*x); main() printf(%dn,F(3+5); 程序运行后的输出结果是 A)192B)29C)25D)编译出错24一、函数调用的一般形式:函数名实参列表;如:a=5;b=8;c=max(a,b);说明:1假设为无参函数调用,可以无实参列表。2各参数间用“,号分开。3实参与形参个数应相等,类型应一致。C语言复习第十节25C语言复习第十节1。作为函数语句:把函数调用作为一个语句 swap(*p1,*p2); 交换数据函数,如: short(a,10);2。作为函数表达式main( )int a,b,s;scanf(“%d,%d,
10、&a,&b);s=sum(a+b,b*2); printf(“sum=%dn,s);sum (int x,int y)int z;z=x+y; 运行:10,15 return(z) 问:sum 函数为何类型?sum=55默认-int26如:c=5*max(a,b)-2; 这种情况函数应有返回值。3。作为函数参数将函数调用作为一个函数的实参。如:m=max(max(a,b),c);又如:求:s=a+b+cprintf(“s=%d,sum(a,sum(b,c);实质也是函数表达式调用的一种。27*三、对被调函数的说明 用户定义的函数,假设与主函数在同一文件中,应在主函数中对被调函数返回值类型进展说
11、明。例3。求:y=x2+x3+x5分析:编一求xn的函数-power(x,n),调用3次。函数形参:x,n;用t=t*x, 开场t=1循环n次,t为xn。主函数:(1)定义,a(x的实参,y. (2)输入a. (3) 3次调用power(x,n) (4) 输出y的值。一般主函数中:定义、输入、调子函数处理、输出; 子函数中:处理或计算数据。28 main( ) long power(int x, int n); /*声明被调函数*/ int a ; long y ;scanf (%d, &a);y=power( a,2) +power(a,3)+power(a,5);printf(y= %ld
12、n, y); long power( int x, int n) /*函数首部*/ int i; /*函数体*/ long t =1; for (i=1; i=n; i+) t=t*x; return t; t=1;for (i=1; i1)例4(例87)。有五人,第5人比第4人大2岁,第4人比第3人大2岁,第3人比第2人大2岁,第2人比第1人大2岁。第1人10岁,问第5人多少岁?33n=1 时,c=10 ,否那么c=age(n-1)+2 age(int n) 求age(5)的过程:int c; age(5)=age(4)+2 age(3)+2 age(2)+2 return(c); age(
13、1)+2 10 main( )int nl; nl=age(5); printf(“第5人的年龄为:%d, nl);if (n=1) c=10;else c=age(n-1)+2;运行:第5人的年龄为:18回推递推age(n)= 10 (n=1) age(n-1) +2 (n1)34例5 用递归调用法求n!.分析:6!=6*5!, 5!=5*4! , 2!=2*1!,1!=1 公式:主函数:1输入任一整数n,(2) fac(n)函数-y. (3) 输出值y 。float fac(int n) float f; if (n=0|n=1) f=1;else f=n*fac(n-1);return(f); main( ) int n; float y;scanf(%d,&n);y=fac(n); printf(“%d!=%f,n,y); n!= 1 (n=0,1) n*(n-1)! (n1)假设要编一将一组数排序的函数,传递的是什么?35main()int y=10; while(y-); printf(y=%dn,y);程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建漳州市经济发展集团有限公司招聘劳务派遣人员10人笔试参考题库附带答案详解
- 2025福建五建集团第一批招聘52人笔试参考题库附带答案详解
- 2025湖北恩施市福牛物业有限公司招聘湖北凯万项目管理有限公司工作人员1人笔试参考题库附带答案详解
- 2025浙江缙云县保安服务有限公司招聘国有企业项目用工10人笔试参考题库附带答案详解
- 2025浙江建德市数字信息有限责任公司招聘5人笔试参考题库附带答案详解
- 2026广东广州花都城投产融商业投资有限公司招聘项目用工人员4人笔试历年常考点试题专练附带答案详解
- 殡仪馆服务流程与规范化管理
- 中国电子科技集团公司第八研究所2026届校园招聘笔试历年常考点试题专练附带答案详解
- 长沙市2025湖南省社会科学院(省人民政府发展研究中心)招聘12人笔试历年参考题库典型考点附带答案详解
- 苏州市2025年江苏苏州昆山市事业单位公开招聘紧缺人才84人笔试历年参考题库典型考点附带答案详解
- 100MW200MWh锂电池储能电站安装施工技术方案
- 2026广东珠海市斗门区建设工程质量监督检测站招聘普通雇员3人备考题库及答案详解(网校专用)
- 2026年安检员(民航安全检查员)题库综合试卷附完整答案详解【有一套】
- 湖南省株洲市第十九中学2026届中考数学模拟预测题含解析
- 海信电视质量管理
- 2026年济南历城区九年级中考数学一模考试试题(含答案)
- 校服采购评价反馈制度
- 欧美影视赏析-星际穿越
- 2025年电工考试试题及答案详解
- 【初中历史】2025-2026学年统编版八年级下册历史新教材课本习题与答案
- 2025-2026统编版二年级语文下册第四单元素养达标(A卷)(含答案)
评论
0/150
提交评论