《c语言复习第十节》ppt课件

上传人:tia****nde 文档编号:70678358 上传时间:2019-01-17 格式:PPT 页数:38 大小:588.31KB
返回 下载 相关 举报
《c语言复习第十节》ppt课件_第1页
第1页 / 共38页
《c语言复习第十节》ppt课件_第2页
第2页 / 共38页
《c语言复习第十节》ppt课件_第3页
第3页 / 共38页
《c语言复习第十节》ppt课件_第4页
第4页 / 共38页
《c语言复习第十节》ppt课件_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《《c语言复习第十节》ppt课件》由会员分享,可在线阅读,更多相关《《c语言复习第十节》ppt课件(38页珍藏版)》请在金锄头文库上搜索。

1、若int a34=0; 则下面正确的叙述是: A )只有元素 a00 可得到初值 0。 B )此说明语句不正确 。 C )数组 a 中各元素都可得到初值,但其值不一定为 0 。 D )数组 a 中每个元素均可得到初值 0 。,复习,若定义数组:int a108; 问数组共有多少元素?在内存中存储时占多少字节?如何在内存中存放?最后一个单元的元素下标是多少?,7.3 字符数组 字符数组是用来存放字符数据的数组,数组中的每个元素只能存放一个字符。 一、定义 形式:char c5 包含5个元素:c0、c1.c4 c0 c1 c2 c3 c4 C h i n a 说明:由于机器内实际存放的是字符的AS

2、CII码值(整型数),故上面的定义也可以是: int c5;,二、赋初值 同一维数组类似。 1。定义时赋初值 如: char c5=C,h,i,n,a; 不能超过5个字符,若少于5个,后面的赋给空字符“0”。,说明:(1)若字符个数与数组长度相同时,可以不指定数组长度。如: char c =H,o,w, ,a,r,e, ,y,o,u; 系统可以自动定义c数组的长度为11,即c11 2。用赋值语句-必逐个赋值. 如:chr c3; c0=A;c1=B; c2=C;,三、字符串和字符串结束标志 C语言中将字符串用字符数组来表示。 1。用“0”作为字符串的结束标志。“0”是ASCII码值为“0”的空

3、操作,在此表示字符串结束。 2。字符串常量的初始化 前面讲初始化时,一个一个字符写,也可简单。,如:char c =“How are you”; 或: char c =“How are you” ; 系统可以自动识别c数组的长度为12, 相当于:char c =H,o,w, ,a,r,e, ,y,o,u,0; H o w a r e y o u 0,四、字符数组的输入输出 (一)字符数组的输入 1。用scanf函数 (1)用格式符%c: 一次输入一个单字符。 如: char str6; int i; for (i=0;i6;i+) scanf(“%c”, 输入: abc123 循环依次给:st

4、r0、str1 str5赋值。,(2)用%s将整个字符串一次输入 如: char str6; scanf(“%s”,str); /*不是&str*/ 输入:China 系统自动在字符串末尾加结束标志“0”。 注意:(1)命令中是str 不是&str 和str6,str是数组名。数组名代表数组的首地址,相当于把首地址的内容送数组。,(2) 输入多个字符串时, 用空格分隔。 如:How are you! 要当成三个字符串输入。 char c15,c25,c35; H o w 0 0 scanf(“%s%s%s”,c1,c2,c3); a r e 0 0 printf(“%s %s %s”,c1,c

5、2,c3); y o u ! 0 输入: How are you! 输出: How are you!,若: char c13; scanf(“%s”,c); printf(“%s ”,c); 输入: How are you! 只将H o w 0放数组 输出: How H o w 0 0 0 .,2. 用gets 函数输入一个字符串 用getchar一次只能输入一个字符,而用gets 函数一次可以输入一个字符串。 形式: gets(字符数组名) 如: char str13; gets(str) 运行时输入: How are you! 将“How are you!”放入字符串数组中,若定义小了,可

6、以自动扩展。,注意: 用scanf(“%s”,a)与用gets(a)的区别: scanf: 遇到空格结束; gets : 一直读到回车,中间可有空格。 (二)字符数组的输出 1。用printf输出: (1)用%c一次输出一个字符。 (2)用%s一次输出一个字符串。,2. 用puts 函数输出一个字符串 形式: puts(字符数组名) 功能:将指定的字符数组中的字符串输出,遇到“0”停止。 说明:字符数组输出后,自动换行。 如: char str =“How are you!”; puts(str); printf(“%s”,str) ; /*不要写成str13*/,运行: How are yo

7、u! How are you!(puts输出后回车,printf无) 注意: gets( )和puts( ) 函数,一次不能写多个字符串。 如: gets(c1,c2), puts(c1,c2)都是错的。gets( )和puts( )放在标准输入输出函数库中 练习:用两种方法输入和输出“I love China”. 方法1. 方法2。,char a =“I love China “; printf(“%s”,a);,char c15; printf(”请输入字符串:”); gets( c) ; puts( c) ;,有两个字符数组 a,b, 以下正确的输入语句是: A ) gets(a,b);

8、 B ) scanf(“%s%s”,a,b); C ) scanf(“%s%s”,函数引例:组合数公式,给定m和n,求:,分析:要计算m!、n!、(m-n)!,即需要编写三个求阶乘的程序段来实现上述组合数的求解。 方法:编写一个求阶乘的函数,在主函数中通过三次调用就可以实现上述组合数的求解。,的值,第8章 函数 重点:函数的形式、返回值及函数的调用方法 难点:函数的调用及其应用 8.1 概 述 一.函数简介 1.C中,函数是程序的基本构件,函数是有独立功能的一个程序模块。(子程序) 2.C程序由一个主函数和若干函数组成。程序从main()函数开始,在该函数中结束。 3.各函数相互独立,是平行的

9、,可以互相调用,但不能调main()函数,一函数不能从属于另一函数,即不能嵌套定义(在一个函数内定义另一函数)。,二.函数分类,1.从使用角度分: 标准函数(库函数)-系统提供的如stdio.h, math.h, 注意:各系统提供的库函数的数量和功能不同。P371 用户定义函数-用户为解决专门问题建立的。如求最大值函数,求阶乘函数、排序函数等等。 2.从形式分: 无参函数:不传递参数,无返回值。 有参函数:传递参数,也可有返回值.如:求最大值函数 a x. b y.返回值 z c c=max(a,b) int max(intx,inty) int z; z=xy?x:y; return(z),

10、8.2 函数定义,一、一般形式: 类型标识符 函数名(形式参数列表) 变量说明 语句 如: 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; return(y),说明:1.类型标识符为函数的数据类型,表示了该函数返回值的数据类型. 若不加类型说明按整型. 2.无参函数无形参列表,也可无类型(因无返回值)。,3.形参类型说明既可在参数列表中,也可在函数体外给出。如:形式参数说明的传统方式 int max(x,y) int x,y; . 4

11、 .变量说明不能写在函数体外,如:int z . 5 .空函数 形式: 类型说明符 函数名( ) 如:dummy( ) 表示该函数什么也不作.通常程序中将一些要调用的函数处,加一空函数。将后来编好的函数可以加在此处。,8.3 函数参数及函数的值,一、形参与实参: 形参:函数定义中的参数(在被调函数中)。 实参:调用函数时,给出的参数,(在主调函数中) 调用函数时,大都有值传递关系,即将主调函数实参送到被调函数的形参。调用后,被调函数将函数值再传回主调函数,int max(int x,int y) int z; z=xy?x:y; return(z),如: d=max(a,b); m=max(c

12、,d); a,b x,y; zd c,d x,y; z m 每次把最大值返给主调函数,例1 :求a,b,c三个数中的最大值。 main( ) int a,b,c,d,m ; scanf(“%d,%d,%d”, /*输出结果*/ ,d=max( a,b ); m=max(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语句写函数

13、,说明:,1.定义函数时,形参必指定类型(int x, int y)。 2 .实参与形参类型应一致。(字符型和整型可通用)。 3。实参可以是常量,变量或表达式。但变量和表达式要有确定 的值。 如:a=1, b=2; max(a*b, a+b); 4. 参数的传递是“值传递”, 即单向传递。 数据只能由“实参”“形参”,不能由“形参” “实参”,如:将上例改动一下:a=1,b=2; d=max(a+2,b); 参数传递:int max(int x,int y) a 1 b 2 a 1 b 2 x 3 y 2 x 3 y 2 结束后,x的3并不送回a.,5. 值传递前,形参x,y并未分配内存单元。

14、 调用结束后,形参所占内存空间即可释放。,请说出该程序的输出结果: 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;,作用:将一个确定的返回值送给调用函数。 说明:(1)函数中可以没有返回值。 函数中也可以有多个return. (2)返回值可以是表达式: 如: max(int x,int y) return(xy?x:y); (3)可以不写()。 如: return z 与return (z)相同。,二、函数的返回值 返回值语句的格式:return( ),返回一个确定的值,4。返回值的类型一般应与函数的类型一致。 如:int max(int x,int y); max为整型,z也应为整型。 5。若函数类型与返回值类型不同,由函数类型决定返回值类型。返回值类型自动转换成函数类型。 6。为了明确函数“不带回值”,可用关键字“void” 定义“无类型”函数。,单选题,有以下程序 #define P 3 void F(int x) return(P*x*x); main() printf(“%dn“,F(3+5); 程序运行后的输出结果是 A)192 B)29 C)25 D)编译出错,一、函数调用的一般形式: 函数名(实参列表); 如:a=5;b

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号