c语言程序设计17(中)

上传人:宝路 文档编号:48094835 上传时间:2018-07-09 格式:PPT 页数:52 大小:467.46KB
返回 下载 相关 举报
c语言程序设计17(中)_第1页
第1页 / 共52页
c语言程序设计17(中)_第2页
第2页 / 共52页
c语言程序设计17(中)_第3页
第3页 / 共52页
c语言程序设计17(中)_第4页
第4页 / 共52页
c语言程序设计17(中)_第5页
第5页 / 共52页
点击查看更多>>
资源描述

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

1、 当我们开始编程时,就惊奇的发现要让 程序正确运转比想象的要难。我们不得不使 用调试技术。我还清楚地记得那一刻,从那 时开始我就领悟到,从我自己的程序里寻找 错误将成为我生活中的一个重要组成部分。Maurice Wilkes1高级语言程序设计主讲教师:贾彩燕 计算机与信息技术学院 计算机科学与技术系 2课程内容第一章 程序设计和C语言 第二章 数据对象与计算 第三章 变量、函数和控制结构 第四章 基本程序设计技术 第五章 C程序结构(函数) 第六章 数组 第七章 指针 第八章 文件和输入输出 第九章 结构和其它数据机制 第十章 程序开发技术 第十一章 标准库3n数组的概念、定义和使用n数组程序

2、实例n数组作为函数参数n字符数组和字符串n两维和多维数组n编程实例第六章:数组一维数值型数组的重要应用4作业提示nSqueeze(char s1, char s2),从字符串s1中删除所有出现在串 s2中的字符。n自学6.6.4节(P208)统计C程序里的关键字,完成实现相关程序q如何得到输入?q如何取到关键字?q取到关键字后如何与关键字表进行对比统计?n魔幻方阵算法(从左下向右上放数)q先把1放在第一行的中间位置。q下一个数放在上一个数的右上方q若右上方已超出方阵的第一行,则下一个数放在该列的最后一行上。q若右上方已超出方阵的最后一列,则下一个数放在该行的第一列上。q若右上方已有数或右上方已

3、超出方阵的第一行和最后一列,则下一个数 放在上一个数的正下方。5for(i=0;i(n-1)i=i+2;j=j-1;else if(i(n-1)j=0;/判断右上方是否有元素if(aij=0)aij=k;else i=i+2;j=j-1; aij=k; for(i=0;i p2) .当p3所指的元素在p2所指的元素之后时条件成立(值为1),否 则不成立(值为0)。两个指针不指在同一数组里时,比较大小 没有意义。其他常用指针运算:14两个同类型指针可用 = 和 != 比较相等或不等;任何指针都能与通用指针比较相等或不等; 任何指针可与空指针值(0或NULL)比较相等或不等两指针指向同一数据元素,

4、或同为空值时它们相等。当一个指针指向数组时的数组写法与指针写法:指 针的两种用法设p1 = 相当于*(p1+3)=5;或 a3=5; p32 = 8; 相当于*(p3+2)=8;或 a7=8; p13称为数组写法,*(p1+3)称为指针写法两类写法有等价效力,可以自由选用。15a0 a1 a2 a3a9.aa+9a+1 a+2地址元素下标法a0 a1 a2a9a0 a1 a2 a3a9.pp+9p+1 p+2地址元素指针法*p *(p+1) *(p+2)*(p+9) 变址运算符 ai *(a+i)ai pi *(p+i) *(a+i)*a *(a+1) *(a+2)*(a+9)p0 p1 p2

5、p916对数组名求值得到指向数组首元素的指针值数组名可以“看作”常量指针,可参与一些指针运算,与其他 指针比大小,比较相等与不相等。通过数组名的元素访问也可以采用指针写法。a3可写为*(a+3)。注意:数组名不是指针变量,特别是不能赋值,不能更改。若a为数组,下面操作都是错误的:a+; a += 3; a = p;有些运算虽不赋值但也可能没意义。如 a3 不可能得到合 法指针值,因其结果超出数组界限17a0 a1 a2 a3 a4int main() int a5, *pa, i;for (i = 0; i int a = 2,4,7,8,9; int main() int i,*p = a;

6、for (i = 0; i #define MAX 5 void fun1(); void fun2(int ); int aMAX;int main() fun1();fun2(a);printf(“n“);return 0; void fun1() int k, t = 0;for (k = 0; k void fun(int *s) static int j = 0;dosj += sj+1; while(+j int main() char arr = “ABCDE“;char *ptr;for(ptr = arr; ptr int main() char *p1 = “program

7、ming“, *p2 = “language“; int i; for (i = 0; i #include void fun(char *); int main() char str = “abcdefghi“; char *a = str; fun(a); puts(a); return 0; void fun(char *s) int x, y;char c;for (x = 0, y = strlen(s)-1; x y; x+, y-)c = sy; sy = sx; sx = c; 运行结果:ihgfedcba例3 分析以下程序的运行结果 49qchar *cp; 与 char s

8、tr20;qstr由若干元素组成,每个元素放一个字符;而cp中 存放字符串首地址q char str20; str=“I love China!”; ()char *cp; cp=“I love China!”; ()qstr是地址常量;cp是地址变量qcp接受键入字符串时,必须先开辟存储空间例 char str10;scanf(“%s”, str); ()而 char *cp;scanf(“%s”, cp); ()改为: char *cp, str10;cp = str;scanf(“%s”, cp); () 或为:char *cp;cp = (char *)calloc(10, sizeo

9、f(char);scanf(“%s”, cp); ()字符指针变量与字符数组50作业(要求用指针方式处理)n输入3个字符串,按由小到大的顺序输出。n输入10个整数,将其中最小的数与第一个数对换,把最大的数与 最后一个数对换。要求写三个函数q输入10个数(用指针法)q进行处理(用指针操作)q输出10个数(用指针法)n从键盘输入若干(如10)个数,写一个函数对这组数从第begin (如3)个数到第end(如7)个数之间的数进行排序,要求形参 用指针,实参用指针或数组。n有一个包含n个字符的字符串,写一个函数将这个字符串中从第 m个字符开始的全部字符复制成为另一个特定的字符。并在主程 序中调用该函数进行测试。nP261页第4题51Q & A!今天晚上:19:0021:00上机52

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件

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