内蒙古科技大学 教 案 课程名称:C语言程序设计 编写时间:2014年2月16日 授课章节 第七章指针(四) 目的要求 熟悉用指针编写各类程序 重点难点 教学内容 1、通过函数计算圆的面积和体积。 double area(float r,double *p) f1 oat pi=3.1415926 double s,v; s=pi*r*r: v=4.0/3*Di*r*r*r *D=V: return s; main() float r; double y.s: scanf("%f”,&r) s=area(r,&v); printf("s=%f,v=%f",s,v): 由于C语言中的函数只能返回一个值,所以也可以通过传递一个变量的地址来获得其 它的返回值。 2、用指针变量法改写改进的选择排序程序(从小到大)。 main() inti,a[10]=(23,34,45,56,67,78,89,76,43,32: p=pl; for(p2=pl+1:p2<a+10:p2+) if(*p>*p2)p=p2: if(p!=pl) t=抑l;pl=*:p=t:
内 蒙 古 科 技 大 学 教 案 课程名称: C 语言程序设计 编写时间:2014 年 2 月 16 日 授课章节 第七章 指针(四) 目的要求 熟悉用指针编写各类程序 重点难点 教学内容 1、通过函数计算圆的面积和体积。 double area(float r,double *p) { float pi=3.1415926; double s,v; s=pi*r*r; v=4.0/3*pi*r*r*r; *p=v; return s; } main() { float r; double v,s; scanf("%f",&r); s=area(r,&v); printf("s=%f,v=%f",s,v); } 由于 C 语言中的函数只能返回一个值,所以也可以通过传递一个变量的地址来获得其 它的返回值。 2、用指针变量法改写改进的选择排序程序(从小到大)。 main() { int i,a[10]={23,34,45,56,67,78,89,76,43,32}; int *p1, *p2, *p,t; for(p1=a;p1<a+9;p1++) { p=p1; for(p2=p1+1;p2<a+10;p2++) if(*p>*p2)p=p2; if(p!=p1) { t=*p1; *p1=*p; *p=t;
入 1 for(i=0:i<l0:i++) printf("a[%d]=%d\n",i,a[i]); 将排序部分写成独立的函数。 3、将字符数组a中的“*”号删除。 试题分析:这一类试题,需要两个指针,一个指针负责取,一个负责存。开始时两个指 针均指向字符串首地址 检测取回的 数值是否为“*”,若不是则存到负责存的指针所 指向的存储单元,否则直接取下一个元素 main() char a[40]="*I*love*my Mothland!****"*pl,*p2 while(p1!='\0') if(*和l!=’*)*知2+*和l+; else pl++; *p2='\0 printf("%s”,a): 1 将复制部分写成独立的函数
} } for(i=0;i<10;i++) printf("a[%d]=%d\n",i,a[i]); } 将排序部分写成独立的函数。 3、将字符数组a中的“*”号删除。 试题分析:这一类试题,需要两个指针,一个指针负责取,一个负责存。开始时两个指 针均指向字符串首地址。在检测取回的数值是否为“*”,若不是则存到负责存的指针所 指向的存储单元,否则直接取下一个元素。 main() { char a[40]= "*I* love* my Mothland! **** ",*p1, *p2; p1=p2=a; while (*p1!= '\0') { if(*p1!= '*') *p2++= *p1++; else p1++; } *p2='\0'; printf("%s",a); } 将复制部分写成独立的函数
课堂教学小结: 通过本讲,提高学生使用指针编写各类程序的技巧和能力
课堂教学小结: 通过本讲,提高学生使用指针编写各类程序的技巧和能力