C语言项目开发基础与实战-教案 第30讲.docx

C语言项目开发基础与实战-教案 第30讲.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第PAGE1页

学院

教师课时授课教案

编号:30

授课日期

授课班级

授课学时

2

课型

理实

课题:

§5.4传值调用与传址调用

教学目标:

本讲通过将对指针与函数调用格式的结合讲解,使学生能够熟练掌握

自定义函数地址的传递方法,具体目标包括:1.巩固指针的定义与使用格式;2.巩

固函数的定义与调用格式;3.熟练掌握传值调用与传址调用的联系与区别;4.熟

练掌握地址的传递的功能、用途及使用方法。

重点与难点:

在不同的函数之间传递地址的方法。

解决措施:

使用多媒体教学工具,在电子课件的帮助下,结合提问、讨论及互动

等多种教学方法,再辅以综合示例予以解决。

教学方法设计:

讲授,讨论,演示

教学资源:

PPT,DEV-C编译器,多媒体教学工具

学院教案用纸

第30讲

教学环节

教学内容

教学组织与教学方法

组织

教学:

引入:

新课:

重点

难点

重点

难点

难点

分析

讲解

难点

重点

难点

总结

1.考勤;

2.对上讲课及作业批改情况进行总结;

3.介绍本讲课内容及相关重难点。

主函数与子函数之间的参数传递是单向的,但经常有将子函数中的数据传递到主函数中的需要,这时可以通过全局变量实现,可存在安全问题。

§5.4传值调用与传址调用

一、传值调用

1.任务描述

输入两个直角边的长度,利用勾股定理求斜边的长度。

2.任务分析

⑴自定义函数的返回值类型:float

⑵参数数目:2个(2个直角边长)

⑶参数类型:float,float

⑷涉及到的运算:求平方,开平方根

⑸需要引入:math.h

3.自定义函数参考程序

floatgetHypotenuse(floatleg1,floatleg2)

{

returnsqrt(leg1*leg1+leg2*leg2);

}

4.主函数参考程序

voidmain()

{

floatleg1,leg2;

printf(“Pleaseinputthetwolegs:”);

scanf(“%f,%f”,leg1,leg2);

printf(“Thehypotenuseis:%f\n”,

getHypotenuse(leg1,leg2));

}

二、传址调用

1.任务描述

利用自定义函数,交换两个变量的值。

2.任务分析

⑴返回两个值:目前的知识无法实现

⑵直接在自定义函数中交换主函数中的两个变量值

3.主函数

voidmain()

{

inta=3,b=4;

swap(a,b);

printf(“a=%d,b=%d\n”,a,b);

}

4.错误的自定义函数参考程序

voidswap(inta,intb)

{

intc;

c=a;

a=b;

b=c;

}

分析:

子函数中的a,b两个变量与主函数中的a,b两个变量没有关系,主函数只是将值传给了子函数,子函数的处理结果不会影响到主函数。

5.正确的主函数与子函数

⑴主函数:

swap(a,b);

⑵子函数:

voidswap(int*pa,int*pb)

{

int*pc;

pc=pa,pa=pb,pb=pc;

}

三、指针与数组名的关系

1.数组名是指针常量

intnum[100],*pNum=num;

pNum++;

num++;

2.一维数组名的应用

intnum[100];

for(inti=0;i100;i++)

{

num[i]=I;

}

printf(“num[68]=%d\n”,*(num+68));

3.二维数组名的应用

intnum[3][4]=

{{1,2,3,4},{5,6,7,8},{9,10,11,12}};

printf(“num[1][2]=%d\n”,*(num+1*4+2));

4.多维数组名的应用

传值调用与传址调用

数组名作为指针常量的应用

一维数组与多维数组的运用

就上讲课的主要内容及相关重难点作简要回顾与总结。

示例:主函数与子函数之间的参数传递。

强调:利用自定义函数。

讨论

结构较为简单,可不提供流程图,教师给出总体思路,由学生自行完成。

强调:参数的值为单向传递,子

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档