《程序设计基础:c语言》7ppt

上传人:tia****nde 文档编号:70560764 上传时间:2019-01-17 格式:PPT 页数:45 大小:1,020.31KB
返回 下载 相关 举报
《程序设计基础:c语言》7ppt_第1页
第1页 / 共45页
《程序设计基础:c语言》7ppt_第2页
第2页 / 共45页
《程序设计基础:c语言》7ppt_第3页
第3页 / 共45页
《程序设计基础:c语言》7ppt_第4页
第4页 / 共45页
《程序设计基础:c语言》7ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《《程序设计基础:c语言》7ppt》由会员分享,可在线阅读,更多相关《《程序设计基础:c语言》7ppt(45页珍藏版)》请在金锄头文库上搜索。

1、程序设计基础:C语言,2009/2010第二学期 C语言课程组,版权所有,复制注明出处,上一章知识复习,讲述了指针声明符、指针变量的声明方法。 讲述了指针变量的两个关键点: 存放地址 “捆绑”一块内存空间 讲述了单重及多重指针的赋值。 讲述了指针访问所指内存空间中数据对象的方法 讲述const指针的用法。 简单阐述了空指针及通用指针的作用。 简单阐述了指针变量的运算。,本讲教学目标,掌握数组声明符、数组声明的方法。 掌握一维数组、二维数组在内存中的存储。 掌握通过下标方式访问数组中各元素的方法。 掌握通过指向数组的指针访问数组中各元素的方法。 掌握字符数组与其他内置类型数组之间的细微差别。 重

2、点掌握指向数组的指针及指针数组的声明、使用。,版权所有,复制注明出处,版权所有,复制注明出处,本章授课内容,数组指针与指针数组,一维数组与字符串,二维数组,一维数组,数组的声明,版权所有,复制注明出处,本章授课内容,数组指针与指针数组,一维数组与字符串,二维数组,一维数组,数组的声明,数组的声明,请编写程序接受1000个整数,并找出其中的最大数。,版权所有,复制注明出处,问题: 如何定义1000个变量?,int a,b,c,d,e,f ?,数组的声明,版权所有,复制注明出处,/*源文件:demo7_1.c*/ #include #include #include #define MAX_COU

3、NT 1000 int main(void) int numMAX_COUNT; /数组的定义方法 int i; int max = INT_MIN; printf(“请输入%d 个数,输完一个回车一次.n“, MAX_COUNT); for(i = 0; i max) max = numi; printf(“max = %dn“, max); system(“PAUSE“); return 0; ,数组的声明,数组声明符的一般语法: 直接声明符常表达式 直接声明符常表达式 (= 初值) 例7-1 分析下面语句,指出数组声明符的各元素 int p10; int *p5; int *const

4、p20; double p3=2.2, 3, 4; double p34; double *const*const p45; float *p45;,版权所有,复制注明出处,数组的声明,注意: 数组中必须存放同类型的对象 数组中对象可以是数值、指针、字符、结构体等类型 数组中的元素还可以是另外一个数组 例如:请说明下列定义的含义 int p10; int *p5; int *const p20; double p34;,版权所有,复制注明出处,数组的声明,声明数组的方式: 不完整数组类型(方括号中是空的) 变长数组(限于C99) 数组声明符中使用类型限定符或static(限于C99),版权所有

5、,复制注明出处,版权所有,复制注明出处,本章授课内容,数组指针与指针数组,一维数组与字符串,二维数组,一维数组,数组的声明,一维数组的存储,在数组声明符中,当仅出现一个中括号时,所声明的数组为一维数组,版权所有,复制注明出处,int arr5 = 11, 12, 13, 14, 15;,Demo7_2,一维数组的存储,一维数组注意: 数组中每一个元素的类型必须相同。 数组名的命名规则与普通标识符的命名规则相同。 常表达式的值为数组的大小,它表示数组中最多允许存放的元素个数。 数组名代表整个数组在内存中存储的首地址。,版权所有,复制注明出处,Demo7_3,一维数组存储,版权所有,复制注明出处,

6、/*源文件:demo7_2.c*/ #include #include int main(void) int a10 = 11, 12, 13, 14, 15, 16, 17, 18, 19, 110; printf(“%dn“, sizeof(a); printf(“%dn“, sizeof( ,一维数组的初始化,一维数组的初始化形式: 可以在声明时初始化数组的全部元素 可以在声明时初始化部分元素 在声明数组时初始化可以省略数组长度 字符串数组初始化: 普通数组的初始化 实用字面值进行赋值 变长数组不可初始化,版权所有,复制注明出处,一维数组的初始化,版权所有,复制注明出处,注意: 1.数组

7、初始化,右边用 ,元素用,间隔. 2.字符数组赋值时在内容后面自动加0。,一维数组存取练习,总结: 对于大小为N的一维数组p,取得第i个元素的方法 Pi-1 *(&pi-1) *(&p+i-1) 例7-2 编写程序从键盘上接收10个整数到一个一维数组中,之后,在屏幕上逐行输出这10个数,版权所有,复制注明出处,一维数组存取练习,版权所有,复制注明出处,/*源文件:demo7_3.c*/ #include #include #define ARRAY_SIZE 10 int main(void) int aARRAY_SIZE; int i; for(i = 0; i ARRAY_SIZE ;

8、i+) printf(“请输入第%d 个数:“, i+1); scanf(“%d”, ,一维数组存取练习,例7-2 假设数组中元素为:10292, 23223, 99923,22,4234,348092,942,9934,请编程求出所有元素的和及平均值,版权所有,复制注明出处,一维数组存取练习,版权所有,复制注明出处,/*源文件:demo7_4.c*/ #include #include int main(void) int a =10292, 23223, 99923, 22, 4234, 348092, 942, 9934; int sum = 0; double average = 0;

9、 for(int i = 0; i 8; i+) sum += ai; average = sum*1.0 / 8; /*计算平均值*/ printf(“数组中元素的和为:%dn“, sum); printf(“数组中元素的平均值为: %fn“, average); system(“PAUSE“); return 0; ,累加器 初值为0,数组本身没有检查越界的功能,程序员需要自己控制上界和下界,数组练一练,练习1:输入10个整数。找出数组的最大值。 练习2:输入10个整数。对数组排序。 练习3:输入10个整数。将数组逆制。 练习4:输入10个整数。添加删除元素。,版权所有,复制注明出处,版权

10、所有,复制注明出处,本章授课内容,数组指针与指针数组,一维数组与字符串,二维数组,一维数组,数组的声明,二维数组的存储,在数组声明符中,当仅出现两个中括号时,所声明的数组为二维数组,版权所有,复制注明出处,int a23;,二维数组的存储,版权所有,复制注明出处,int a23 =1,2,3,4,5,6;,二维数组的存储,版权所有,复制注明出处,demo7_4,a,&a,a0,&a0, a00,&a00各表示什么含义呢?,int a23;,二维数组的存储,&a 表示数组地址。 a 表示首行地址。 &a0 表示首行地址。 a0 表示行首元素地址。 a00 表示首元素。 &a00 表示首元素地址。

11、,版权所有,复制注明出处,二维数组的存储,总结: 二维数组在内存中仍然是按一维数组的方式存储的 pij在内存中是数组的第i*M+j+1个元素 二维数组在内存中是按行存储的 二维数组的第x个元素,是px/Mx%M 二维数组中的元素的类型必须相同 数组名的命名规则与普通标识符的命名规则相同 pij是数组中第i+1行第j+1列的元素 数组名代表整个数组在内存中存储的首地址,版权所有,复制注明出处,二维数组的初始化,二维数组的初始化形式: 声明数组的时候可以同时对数组进行初始化,即指定数组中的若干或全部元素 在初始化时,可以省略二维数组声明符中第一个中括号的常表达式 字符串数组初始化: 普通数组的初始

12、化 实用字面值进行赋值 变长数组不可初始化,版权所有,复制注明出处,二维数组初始化,例7-4 请观察下面的声明语句。 int a134 = 1,2,3,4, 5,6,7,8, 9, 10, 11, 12; int a234 = 1,2,3,4,5,6,7,8,9,10,11, 12; int a333 = 1, 2, 3; int a433 = 1, 2, 0, 3; int a53 = 1, 2, 3, 4, 5; int a63 = 1, 2, 3, 4, 5, 0; char a735 =a,b,c,d, 0, e,f,g,h,0, i,j,k,l, 0; char a835 =“abc

13、e”, “efgh”, “ijkl”;,版权所有,复制注明出处,二维数组的存储练习,总结: 对于pNM: pij的等价形式为: *(&pij)、*(pi +j)、*(&p00+i*N +j) &pij的等价形式为: pi + j、&p00+i*N +j,版权所有,复制注明出处,二维数组的存储练习,例7-8 声明一个4 行3 列的二维数组,从键盘上依次接收12 个数到该数组中。 此后,以二维的方式在屏幕上显示出二维数组中的各元素,版权所有,复制注明出处,二维数组的存储练习,版权所有,复制注明出处,/*源文件:demo7_5.c*/ #include #include #define ROW_CO

14、UNT 4 /*ROW_COUNT 代表二维数组的行大小*/ #define COL_COUNT 3 /*COL_COUNT 代表二维数组的列大小*/ int main(void) int aROW_COUNTCOL_COUNT; for(int i = 0; i ROW_COUNT * COL_COUNT ; i+) printf(“%d 行,%d 列:“, i/COL_COUNT + 1, i%COL_COUNT + 1); scanf(“%d“, ,二维数组的存储,版权所有,复制注明出处,注意: 1.如何在一重循环体内存取二维数组 2.如何在二重循环体内存取二维数组,问题: 如何将二维数

15、组P34转变成一维数组Q12?,版权所有,复制注明出处,本章授课内容,数组指针与指针数组,一维数组与字符串,二维数组,一维数组,数组的声明,一维数组与字符串,用于存放字符的一维数组称为一维字符数组 字符数组的初始化: 传统的字符集合方式 字符串字面值方式,版权所有,复制注明出处,/*源文件:demo7_7.c*/ #include #include /为使用system函数 #define ARRAY_SIZE 100 /*一维字符数组a 的长度*/ int main(void) char aARRAY_SIZE; printf(“输入字符串(不能含有空格,长度不超过%d):“, ARRAY_SIZE); scanf(“%s“, a); printf(“你刚才输入的字符串为:%sn“, a); system(“PAUSE“); return 0; ,版权所有,复制注明出处,本章授课内容,数组指针与指针数组,一维数组与字符串,二维数组,一维数组,数组的声明,指针数组与数组指针,int *p10; int

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

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

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