C语言指针 教学设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言指针教学设计
1.关于C语言程序设计中的指针
C语言程序设计是高校理工科专业的一门重要专业或公共基础课,不仅是计算机相关专业学生进一步学习汇编语言程序设计、数据结构计算机操作系统、硬件编程等课程的入门级课程,同时也是非计算机专业学生了解计算机软硬件基础知识和计算机底层原理的重要手段之一.在教学内容的组织上,强调和分析指针与基本数据类型、函数、数组的内在联系,灵活设计教学程序实例,为学习者掌握指针及c语言程序设计创造良好条件。指针是C语言的教学重点,程序使用指针可以带来很多方便,如:
1)灵活操作数组(含字符串);
2)动态分配内存;
3)表示复杂的数据结构;
是让程序更加简洁高效的重要手段。然而指针也是C语言学习的最大难点,学习者普遍感觉指针概念抽象,致使无法正确理解并使用指针,而指针的使用稍有不慎,往往会给c语言程序带来致命的错误。
2.学生分析
在讲指针内容之前,学习者经历了基本数据类型、运算符和表达式、输入输出函数、选择制语句、循环控制语句、函数、数组等内容的学习。而指针内容之后,一般还要讲授指针与字符串、指针与数组、结构体与共用体、文件操作等内容。其中指针起到了承前启后的作用,学习并掌握指针,对学习者获得程序设计技巧和能力、继续学习其它计算机专业课程至关重要。
3.教师自我思考
在课堂教学中起主导作用的教师,应根据指针教学所必需的基础知识,在授课过程中不断调各关键知识点的重要性,尽可能在指针内容的学习之前,使学习者具备理解指针概念的基础知识和基本能力。在教学内容的组织上,强调和分析指针与基本数据类型、函数、数组的内在联系,灵活设计教学程序实例,为学习者掌握指针及c语言程序设计创造良好条件。
4.学生学习方法建议
学习本章内容时,应重点掌握指针与指针的区别、指针的引用方法和运算,并在此基础上进一步理解指针作为函数参数和在数组当中的的应用,要求多读程序,理解编程的算法、编程的思路,并仿照例题多编程序、上机练习,真正掌握
指针的灵活应用。
5.教学目标
(1)知识层面:
a)使学生掌握指针和指针变量的概念、表达方式和区别;
b)使学生掌握指针作为函数参数的使用;
c)使学生初步了解指针在数组中的应用;
(2)能力层面:
在编程语言环境熟练应用指针编写一些简单程序、并且经过不断的锻炼深化能力、最终掌握指针的应用
(3)认知层面:
深刻理解指针的相关概念和指针做函数参数和在数组当中的应用
6.教学重点与难点
(1)教学重点:
指针做函数参数和在数组当中的应用
(2)教学难点:
如何让学生更好地明白指针的概念
处理方法:用图示和结合实列并尽力用通俗易懂的语言帮助学生理解指针和指针的应用
7.教学内容设计
printf("max=%d,min=%d\n",*p1,*p2);
return 0;
}
问题:请问横线处应该如何填写?才能从大到小输出a,b 两个数的值
指针变量作为函数参数的例子
输入84 63结果如例子:按输入a和b两个整数,按从大到小的顺序排列输
出a和b
程序编程:
#include
int main()
{
void swap(int *p_1,int *p_2);//对swap函数的声明
int a,b; //定义两个整型变量a
和b
int *p1,*p2; //定义两个int *型的指
针变量
printf("Please enter a and b:");
scanf("%d %d",&a,&b); //输入两个整数
p1=&a; //使p1指向a
p2=&b; //使p2指向b
if(a
函数
printf("max=%d,min=%d\n",a,b);//输出结果
return 0;
}
void swap(int *p_1,int *p_2) //定义swap函数
{
int temp; //定义一个整型的中间变量temp
temp=*p_1; //使*p_1和*p_2进行交换
*p_1=*p_2;
*p_2=temp;
}
两个数的交换,就如同有三个盒子temp,*p_1,*p_2,现
在*p_1和*p_2两个盒子都装满了东西,并且要把两个盒
子的进行交换,此时,必须借助三个盒子temp,才能使他
们进行交换。
让学生了解指
针变量形参和
实参的值得传
递
将输出结果展
示出来更易于
分析程序
通过指针应用
数组
指针表示数组的示意(1)数组元素的指针
既然指针变量可以指向变量,同样地也可以指向数组元
素。所谓数组元素的指针就是数组元素的地址,如:
int a[10]
a[10]={1,2,3,5,4,6,7,9,8,10};
int *p;
p=&a[0];
(2)在引用数组元素时指针的运算
1.指针指向数组元素时,可以对指针进行如下运
算:
2.加一个整数(用+或+=),如p+1;
3.减一个整数(用-或-= ),如p-1;
4.自加运算,如p++,++p;
5.自减运算,如p--,--p;
(3)指针表示数组:
6.p+i和a+i表示:a[i]的地址;
7.*(p+i)和*(a+i)表示:数组元素a[i]
让学生明白数
组指针的概念
和了解指针的
一些运算
示意图展示更
加直观形象容
易了解、模拟
数组在内存的
排列