专升本 C语言课件 C06(07) 数组

上传人:lcm****801 文档编号:88770633 上传时间:2019-05-09 格式:PPT 页数:25 大小:124.50KB
返回 下载 相关 举报
专升本 C语言课件 C06(07) 数组_第1页
第1页 / 共25页
专升本 C语言课件 C06(07) 数组_第2页
第2页 / 共25页
专升本 C语言课件 C06(07) 数组_第3页
第3页 / 共25页
专升本 C语言课件 C06(07) 数组_第4页
第4页 / 共25页
专升本 C语言课件 C06(07) 数组_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《专升本 C语言课件 C06(07) 数组》由会员分享,可在线阅读,更多相关《专升本 C语言课件 C06(07) 数组(25页珍藏版)》请在金锄头文库上搜索。

1、C程序设计 六、数组,六、数组 6.1 一维数组 数据类型 数组名常量; 数组下标从0开始 int a3; int a3=10,20,30; int a3=10,20; int a =10,20; char s =e,b,a; char s =“eba”;,六、数组 6.1 一维数组 数据类型 数组名常量; 数组下标从0开始,以下程序是否正确? A)int a10; a10=1; B)int a10; a =0,1,2,3,4,5,6,7,8,9; C)int a10=1,2,3,4,5; D)int a =1,2,3,4,5,6; E)int a5=1,2,3,4,5,6;,A) 语法上正确

2、,逻辑上错误 B) 错 C) 对 D) 对 E) 错,六、数组 6.1 一维数组 数据类型 数组名常量; 数组下标从0开始,以下程序运行后的输出结果是 _ main() int i,n=0,0,0,0,0; for(i=1;i=4;i+) ni=ni-1*2+1; printf(“%d “,ni); ,六、数组 6.1 一维数组 系统在定义数组时,是分配一段连续的内存给数组。 数组名表示数组空间的首地址。 int a4=10,20,30,40;,30,10,40,20,a0,a2,a3,a1,六、数组 6.1 一维数组 系统在定义数组时,是分配一段连续的内存给数组。 数组名表示数组空间的首地址

3、。,以下语句是否正确? float z10,*e; z=e; e=z z=5; z4=z; z20=65;,a)错,z是常量 b)对 c)错,z是常量 d)错,类型不符 e)错,越界,但语法上不报错,六、数组 6.1 一维数组 c语言中规定: 如果指针p指向u,则p+1指向内存中与u相邻的下一个同类型变量。 对于一个数组a,如果p指向ai,则p+1指向ai+1,30,10,40,20,a0,a2,a3,a1,六、数组 6.1 一维数组 对于 int a4=10,20,30,40; a表示首地址,即a0的地址 a+1就是a1的地址 a+i等同于&ai *(a+i)等同于ai,30,10,40,2

4、0,a0,a2,a3,a1,六、数组 6.1 一维数组,int z5=10,20,30,40,50; 求下列表达式的值: (A)z+2 (B)*z+2; (C)*(z+2);,(A)z2的地址 (B)12 (C)30,六、数组 6.1 一维数组,main() int a10=90,80,70,60,50,40,30, 20,10,0, *p=a+5; printf(“%dn“,+*p); printf(“%dn“,*-p); ,41,50,六、数组 6.1 一维数组,分析以下程序的输出结果: char z =“wenzhou“,*e; e=z+5; while(*e)*e+=2;e+; put

5、s(z);,wenzhqw,六、数组 6.1 一维数组,分析以下程序的输出结果: char z =“wenzhouchina“,*e=z; while(*e)e+; puts(e-3); puts(z+2);,ina nzhouchina,六、数组 6.1 一维数组,分析以下程序的输出结果: char z =“wenzhouchina“; int *e,i; char *x; e=(int *)(z+5); e+=2; x=(char *)e; putchar(*x); putchar(x1);,in,六、数组 6.1 一维数组 c语言把ai处理为*(a+i),分析以下程序的输出结果: cha

6、r z =“wenzhou china“,*p; p=z+3; putchar(p2); putchar(*(z+1); putchar(*p+); putchar(p2);,oezu,六、数组 6.1 一维数组 指针数组 int *a20; 指针数组中的每一个元素都是指针,int a6=10,20,30,40,50,60; int *b3,i; b0=a+1;b1=a+4;b2=a+5; *b2是什么? (*b)2是什么?,答案: *b2 *(b2) *(a+5) 60 (*b)2 (b0)2 (a+1)2 40,六、数组 6.1 一维数组 指针数组 int *a20; 指针数组中的每一个元

7、素都是指针,char *u3; u0=“how”; u2=u0+1; u1=“what”; u0=u1+2; printf(“%s %s %s”,u0,u1,u2);,答案: at what ow,六、数组 6.2 二维数组 数据类型 数组名常量常量; int a57; int a 7; 不能 int a5 ; int a ;,初始化 int x45=10,20,30, 40,50,60,70; int x45=10,20,30,40,50,60; 没有初始化的元素为0 注意不能放不下。,六、数组 6.2 二维数组 数据类型 数组名常量常量;,判断以下初始化,哪些是错误的。 (1)int a2

8、3=1,2,3,4,5,6; (2)int a23=1,2,3,4,5,6; (3)int a23=1,2,3,4,5,6; (4)int a23=1,2,3; (5)int a23=1,2,3,4,5,6; (6)int a23=1,2,3,4,5; (7)int a23=4,1,2; (8)int a 3=1,2,3,4; (9)int a3 =1,2,3; (10)int a =1;,(1)wrong (2)right (3)right (4)right (5)wrong (6)right (7)right (8)right (9)wrong (10)wrong,六、数组 6.2 二维数

9、组,以下程序输出结果是_。 main() int a44=1,2,-3,-4,0,-12,-13,14 , -21,23,0,-24,-31,32,-33,0; int i,j,s=0; for(i=0;i4;i+) for(j=0;j4;j+) if(aij0) continue; if(aij=0) break; s+=aij; printf(“%dn“,s); ,58,六、数组 6.2 二维数组 数据类型 数组名常量常量; 二维数组可以看成元素是一维数组的一维数组 如a23,可以看成是一维数组a2,其中的每一个元素又都是一个具有3个元素的一维数组 a1是一个具有3个元素的一维数组,因此a

10、1是该一维数组的首地址。 *a1表示a10 a1表示为*(a+1),int a43,b3; a0 10 20 30 a1 40 50 60 a2 70 80 90 a3 100 110 120 a1+2 表示什么? a3 表示什么? *(a0+1) 表示什么? a+2 表示什么? *a 表示什么? *(a+1) 表示什么? *(*(a+1) 表示什么? *(*(a+2)+1) 表示什么? *(a3+2) 表示什么? *a+1 表示什么?,&a12 &a30 20 &a2 a0 a1 a10 a21 a32 a00+1,六、数组 6.2 二维数组 数据类型 数组名常量常量; 二维数组可以看成元素

11、是一维数组的一维数组 如a23,可以看成是一维数组a2,其中的每一个元素又都是一个具有3个元素的一维数组 a1是一个具有3个元素的一维数组,因此a1是该一维数组的首地址。 *a1表示a10 a1表示为*(a+1),int a43; a0 10 20 30 a1 40 50 60 a2 70 80 90 a3 100 110 120 假定a00的地址是1000 a 的值是多少? a+2的值是多少? a3的值是多少? a3+2的值是多少?,1000 1012 1018 1022,六、数组 6.2 二维数组 int (*p)4; 这里定义了一个指针变量p, 它指向包含4个元素的一维数组。 p+1将一

12、下子跳过4个元素。 可以将p看成是首地址会变的二维数组,int a43,(*b)3; a0 10 20 30 a1 40 50 60 a2 70 80 90 a3 100 110 120 b=a; 这时b21等同于a21 b+; 这时b21等同于a31 因此 *(*(b+2)+1 即 b21,六、数组 6.2 二维数组 int (*p)4; 这里定义了一个指针变量p, 它指向包含4个元素的一维数组。 p+1将一下子跳过4个元素。 可以将p看成是首地址会变的二维数组,int a43,(*b)3; a0 10 20 30 a1 40 50 60 a2 70 80 90 a3 100 110 120

13、 b=a; printf(“%d“,b01); b+; printf(“%d“,b11); 输出什么?,20 80,六、数组 6.2 二维数组 int (*p)4; 这里定义了一个指针变量p, 它指向包含4个元素的一维数组。 p+1将一下子跳过4个元素。 可以将p看成是首地址会变的二维数组,int a43,(*b)3=a; a0 10 20 30 a1 40 50 60 a2 70 80 90 a3 100 110 120 *b *b2 (*b)2 各是多少?,同*a, &a00 70 30,六、数组 6.2 二维数组,main() int a33=1,2,3,4,5,6 int i,j,s=0; for(i=1;i3;i+) for(j=0;j=i;j+)s+=aij; printf(“%dn“,s); ,18,

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

当前位置:首页 > 大杂烩/其它

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