欢迎来到天天文库
浏览记录
ID:50320984
大小:869.00 KB
页数:23页
时间:2020-03-08
《C语言项目实训教程 教学课件 作者 侯小毛 马凌 项目 6 指针.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言程序设计项目六指针项目目标目标二初步掌握数组的指针和指针数组目标一掌握指针和指针变量的含义目标三能编写程序模拟逢3退出小游戏目标二掌握指针的简单应用任务分解了解指针1了解指针与数组、函数的应用2实例体验3算法归纳4绘制流程图5项目实现6项目要求有n个小朋友围成一圈做游戏,按照顺序排号。从第一个小朋友开始报数(从1到3报数),凡报到3的小朋友退出圈子,最后留下的小朋友奖励一个苹果,问最后留下的是原来第几号小朋友?任务一了解指针1.概述在程序中定义了变量,编译时系统会根据变量的类型给变了分配一定长度
2、的字节数。内存中每个字节都有一个编码,这个编码就是该字节的地址。通常情况下,这个地址就叫指针。变量的声明有如下变量声明及初始化:inta=10;变量名是?变量值是?变量地址是?200020012002200320042005a102002指针与指针变量指针:地址。通过地址能找到所需的变量单元,因此可以说地址“指向”该变量单元,从而在C语言中,将地址形象化地称为“指针”。指针变量:如果有一个变量专门来存放指针(地址),则称它为指针变量。2.指针定义的一般形式类型名*指针变量名;*:表示该变量的类型为指针
3、型变量类型名:指针指向的变量的类型,也叫指针的基类型。inti,j,*p1,*p2;指针运算符1)&:取地址运算符-----可以求得变量的地址2)*:指针运算符,也叫“间接访问运算符”-----可以引用地址中的内容,即指针所指变量的值代码分析一:inti,j,*p1,*p2,*p3;i=3,j=4;p1=&i;p2=&j;*p1=5;p2=p1;p3*=*p2;代码分析二main(){inta,b;int*p1,*p2;a=10;b=20;p1=&a;p2=&b;printf(“%d%d”,*p1
4、,*p2);p1=p2;*p2=5;printf(“%d%d”,*p1,*p2);}代码分析三voidswap(int*p1,int*p2){inttemp;temp=*p1;*p1=*p2;*p2=temp;return;}main(){inta,b;scanf("%d%d",&a,&b);swap(&a,&b);printf("a=%d,b=%d",a,b);getch();}3.指针变量的运算指针可以与整型数据相加减。案例:若指针变量p当前指向2000单元,其基类型是整型。分析:p=p+
5、1;p=p+2;p=p–1;任务二了解指针与数组、函数的应用1.指针和数组的定义数组名代表了数组的起始地址(即第一个元素的地址)。数组的起始地址称为数组的指针,数组各元素的地址称为数组元素的指针。通过指针引用数组元素1)通过指针引用数组,必须使指针指向数组2)对数组元素的引用inta[10];int*p;p=a;第一个元素:a[0]*a*p第二个元素:a[1]*(a+1)*(p+1)for(i=0;i<10;i++)printf(“%d”,a[i]);int*p;p=a;for(i=0;i<10;i+
6、+)printf(“%d”,*(p+i));int*p;for(p=a;p7、,ch);printf(“%s”,ch);charch[10];for(i=0;i<10;i++)scanf(“%c”,&ch[i]);for(i=0;i<10;i++)printf(“%c”,ch[i]);1)回顾:字符串的基本操作2)字符串指针char*s;s=“happy”;或scanf(“%s”,s);printf(“%s”,s);charch[10];scanf(“%s”,ch);printf(“%s”,ch);任务三实例体验假设我们总共有20个小朋友。(1)根据项目的要求,逢3退出的规则,8、第一轮退出的是:3,6,9,12,15,18。(2)第二轮退出的是:1,5,10,14,19。(3)第三轮退出的是:4,11,17。(4)第四轮退出的是:7,16(5)第五轮退出的是:8。(6)第六轮退出的是:2。(7)第七轮退出的是:13。最后一个小朋友是20号,程序结束。任务四算法归纳逢3退出的算法如下。(1)先规定有多少小朋友参加这个小游戏。(2)给每个小朋友编号。(3)围成一个圈,从第一个开始报数,逢3,这个小朋友就退出。(4)离他最近的小朋友,
7、,ch);printf(“%s”,ch);charch[10];for(i=0;i<10;i++)scanf(“%c”,&ch[i]);for(i=0;i<10;i++)printf(“%c”,ch[i]);1)回顾:字符串的基本操作2)字符串指针char*s;s=“happy”;或scanf(“%s”,s);printf(“%s”,s);charch[10];scanf(“%s”,ch);printf(“%s”,ch);任务三实例体验假设我们总共有20个小朋友。(1)根据项目的要求,逢3退出的规则,
8、第一轮退出的是:3,6,9,12,15,18。(2)第二轮退出的是:1,5,10,14,19。(3)第三轮退出的是:4,11,17。(4)第四轮退出的是:7,16(5)第五轮退出的是:8。(6)第六轮退出的是:2。(7)第七轮退出的是:13。最后一个小朋友是20号,程序结束。任务四算法归纳逢3退出的算法如下。(1)先规定有多少小朋友参加这个小游戏。(2)给每个小朋友编号。(3)围成一个圈,从第一个开始报数,逢3,这个小朋友就退出。(4)离他最近的小朋友,
此文档下载收益归作者所有