6.4 变量的作用域教学设计-2025-2026学年中职信息技术(信息科技)编程语言基础-C语言(第5版)高教版_第1页
6.4 变量的作用域教学设计-2025-2026学年中职信息技术(信息科技)编程语言基础-C语言(第5版)高教版_第2页
6.4 变量的作用域教学设计-2025-2026学年中职信息技术(信息科技)编程语言基础-C语言(第5版)高教版_第3页
6.4 变量的作用域教学设计-2025-2026学年中职信息技术(信息科技)编程语言基础-C语言(第5版)高教版_第4页
6.4 变量的作用域教学设计-2025-2026学年中职信息技术(信息科技)编程语言基础-C语言(第5版)高教版_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6.4变量的作用域教学设计-2025-2026学年中职信息技术(信息科技)编程语言基础——C语言(第5版)高教版学校授课教师课时授课班级授课地点教具设计思路一、设计思路以生活实例类比引入变量作用域概念,结合课本中局部变量与全局变量的定义、生命周期及作用范围,通过代码演示与分组调试,让学生在“发现问题—分析原因—解决问题”中理解作用域规则,强化“先定义后使用”的编程规范,注重实践操作与逻辑思维培养,贴合中职学生认知特点与编程基础。核心素养目标二、核心素养目标通过理解变量作用域的概念与规则,培养计算思维中的逻辑分析能力,能根据需求合理选择变量类型;提升信息意识,认识作用域对程序可读性和稳定性的影响;增强数字化学习与创新能力,通过调试实践掌握作用域问题的解决方法;树立规范编程意识,养成严谨的编程习惯,为后续复杂程序开发奠定基础。学习者分析三、学习者分析1.学生已掌握C语言基本语法、数据类型、运算符及简单程序结构,理解变量定义与赋值,能编写顺序和选择结构程序,接触过函数概念但对函数内部变量作用域认知模糊,课本前序章节的变量知识为学习奠定基础。2.学生动手操作兴趣浓厚,偏好通过代码实践学习,逻辑抽象能力较弱,依赖直观案例和可视化工具,学习风格以模仿练习和小组协作探究为主,对调试程序有较强参与意愿。3.可能混淆全局变量与局部变量的作用范围,难以理解函数调用时变量的生命周期,易出现“未定义标识符”或“变量值意外覆盖”等错误,调试时难以定位作用域问题根源,需强化规则应用与错误分析能力。教学资源四、教学资源软硬件资源:计算机教室(安装Dev-C++、VisualStudio编译环境)、课本配套示例代码、习题库;课程平台:学校教学管理系统(上传课件、作业);信息化资源:作用域概念微课视频、蓝墨云课堂编程练习模块、在线代码调试工具;教学手段:多媒体课件、分组讨论、代码错误案例演示、黑板板书关键规则。教学过程(一)情境导入(5分钟)

同学们,早上好!昨天我们学习了函数的定义和调用,现在请大家看一段代码(展示课本P98例6-1):

```c

#include<stdio.h>

inta=10;//全局变量

voidfun(){

inta=5;//局部变量

printf("fun中的a=%d\n",a);

}

intmain(){

fun();

printf("main中的a=%d\n",a);

return0;

}

```

你们猜猜运行结果会是什么?对,第一行输出5,第二行输出10。为什么同样是变量a,输出的值却不一样呢?这节课我们就来揭开这个秘密——变量的作用域。(板书课题:6.4变量的作用域)

(二)新知探究1:局部变量——函数里的“专属物品”(15分钟)

1.定义与作用域

同学们,我们先来看fun函数里的inta=5;这个变量。它只能在fun函数内部使用,就像你们书包里的文具,只有你自己能拿出来用。这种定义在函数内部的变量,我们称为“局部变量”(板书)。它的作用域仅限于定义它的函数内部,超出这个函数,变量就“失效”了。

2.生命周期

那局部变量什么时候“存在”,什么时候“消失”呢?我打个比方:你们上课时,老师发给你们每人一张练习纸(局部变量),下课后练习纸就被收走了(变量生命周期结束)。局部变量也是这样,从函数被调用时“诞生”,函数执行结束时“消失”。

3.实践操作

现在请大家打开Dev-C++,自己编写一个包含add函数的程序,在add函数里定义intx=3,y=4,计算x+y的值并输出,然后在main函数里也定义intx=1,y=2,输出x*y的值。运行一下,看看结果是不是add函数输出7,main函数输出2?(学生操作,教师巡视指导)

(三)新知探究2:全局变量——程序里的“公共资源”(15分钟)

1.定义与作用域

同学们,刚才代码里的inta=10;这个变量定义在所有函数外面,就像教室里的黑板,全班同学都能用。这种变量称为“全局变量”(板书)。它的作用域是整个程序文件,从程序运行开始“存在”,直到程序结束才“消失”。

2.优缺点

全局变量虽然方便,但也要小心使用。比如,如果多个函数都修改全局变量,很容易出错。就像教室里的黑板擦,如果大家都去擦,可能会擦错地方。课本P99也提醒我们:“全局变量会降低程序的可读性和可靠性,应尽量少用。”

3.案例对比

现在我们修改一下刚才的代码,把add函数里的a去掉,直接使用全局变量a(展示代码):

```c

#include<stdio.h>

inta=10;

voidfun(){

a=a+5;//修改全局变量a

printf("fun修改后的a=%d\n",a);

}

intmain(){

fun();

printf("main中的a=%d\n",a);

return0;

}

```

大家运行看看,结果是不是第一行输出15,第二行也输出15?(学生操作)对,因为fun函数修改的是全局变量a,所以main函数里输出的a也被修改了。

(四)新知探究3:作用域规则——“谁优先听谁的”(15分钟)

1.同名变量的优先级

同学们,如果全局变量和局部变量同名,会怎么样呢?我们来看课本P100例6-3(展示代码):

```c

#include<stdio.h>

inta=10;//全局变量

voidfun(){

inta=5;//局部变量

printf("fun中的a=%d\n",a);

}

intmain(){

fun();

printf("main中的a=%d\n",a);

return0;

}

```

运行结果是fun输出5,main输出10。这说明:在同一个函数里,局部变量优先于全局变量(板书:局部优先原则)。就像你们班有两个同学叫“小明”,一个是本班的(局部),一个是全校的(全局),喊“小明”时,本班的先答应。

2.函数参数的作用域

函数的参数也是局部变量,比如add(intx,inty),x和y只能在add函数里使用。你们之前写函数时肯定用过,比如课本P92的例5-5,参数x,y就是局部变量。

3.总结规则

我给大家总结一下作用域的三大规则(板书):

(1)局部变量:函数内定义,作用域函数内,生命周期函数调用期间;

(2)全局变量:函数外定义,作用域整个程序,生命周期程序运行期间;

(3)同名变量:局部优先,就近原则。

(五)练习巩固(20分钟)

1.基础练习:判断变量类型

请大家打开课本P101“练一练”,第1题,判断下列变量哪些是局部变量,哪些是全局变量:

(1)inta;(在函数外)——全局变量;

(2)intb;(在函数内)——局部变量;

(3)intc;(在函数内)——局部变量。

(学生回答,教师点评)

2.进阶练习:修改错误代码

第2题,下面代码有错误,请修改使其输出正确结果(展示代码):

```c

#include<stdio.h>

intx=5;

intmain(){

intx=10;

printf("%d\n",x);

return0;

}

```

题目要求输出5,现在输出10。怎么改?(学生讨论)对,去掉main函数里的intx=10;,直接使用全局变量x。

3.拓展练习:编写程序

第3题,编写一个程序,计算1到100的和,用全局变量记录总和,用函数实现累加(提示:定义全局变量intsum=0;,函数内sum+=n;)。

(学生编写代码,教师巡视指导,展示优秀作品)

(六)总结提升(5分钟)

同学们,今天我们学习了变量的作用域,谁能说说局部变量和全局变量的区别?(学生回答)对,局部变量像“专属物品”,只能在函数里用;全局变量像“公共资源”,整个程序都能用。记住“局部优先”的规则,还有全局变量要少用,避免混乱。作用域是C语言的基础,后续学函数、指针都会用到,一定要掌握。

(七)作业布置(5分钟)

1.基础作业:课本P102习题6.4,第1、2题,巩固作用域概念;

2.拓展作业:第3题,编写一个程序,用函数实现两个数的交换,思考:交换时用局部变量还是全局变量更合适?为什么?(下节课讨论)教学资源拓展1.拓展资源

(1)静态局部变量深化:教材中提及局部变量生命周期随函数调用结束而结束,可补充静态局部变量(static)的特性,其定义在函数内部,生命周期贯穿整个程序运行期间,值在多次调用间保留。结合课本P103“知识拓展”栏目,分析静态局部变量与普通局部变量的内存分配差异,通过代码对比(如计数器案例)理解其应用场景。

(2)跨文件作用域:教材涉及单文件程序变量作用域,可拓展多文件编程中的extern关键字,说明全局变量在多文件间的共享方法。参考课本P105“项目实践”中多文件结构示例,分析extern声明与全局变量定义的区别,理解“声明”与“定义”在作用域中的不同作用。

(3)作用域与内存管理:结合教材P98“变量存储类别”内容,深化栈内存(局部变量)与静态内存(全局变量、静态局部变量)的分配机制,通过内存示意图(可板书或课件展示)解释变量地址、生命周期与作用域的关联,强化“内存布局决定作用域规则”的认知。

(4)典型错误案例库:整理教材P101“常见错误”栏目外的典型作用域问题,如“未定义标识符”(使用未声明变量)、“变量重定义”(同一作用域同名变量)、“全局变量意外覆盖”(多函数修改全局变量导致逻辑错误)。每个案例配错误代码、报错信息及修正方案,帮助学生建立“错误-原因-解决”的调试思维。

(5)实际应用案例:引用教材P106“综合实例”——学生成绩管理系统,分析系统中全局变量(如学生总数)、局部变量(如函数内临时存储的成绩数据)的作用域设计逻辑,讨论为何用全局变量存储总数、局部变量处理单科成绩,理解作用域选择对程序可维护性的影响。

2.拓展建议

(1)教材案例深度分析:重学课本P98例6-1、P100例6-3,绘制变量作用域图(用不同颜色标注局部/全局变量),标注每个变量的生命周期节点,提交“作用域分析报告”,对比不同代码段中变量访问的合法性。

(2)多函数程序设计:编写包含3个以上函数的程序(如计算圆的周长、面积、体积),要求:用局部变量存储半径、周长等临时数据;用全局变量统计函数调用次数;观察全局变量被多函数修改时的值变化,记录“函数调用次数-全局变量值”对应表,分析全局变量的使用风险。

(3)错误调试专项练习:从教材P102习题6.4第4题(作用域错误判断)中选取2道题,手动修改错误代码并调试,记录每次修改的报错信息及解决思路,形成“作用域错误调试日志”,重点标注“同名变量优先级”“变量未定义”等高频错误类型。

(4)阅读与拓展:阅读教材附录B“C语言关键字说明”中static、extern的详细定义,结合课堂笔记整理“作用域相关关键字对比表”(包括作用范围、生命周期、存储位置、使用场景),下节课小组内分享交流。

(5)小组项目实践:以“简易图书管理系统”为项目(参考教材P107项目框架),分组讨论:哪些数据适合用全局变量(如图书总数)?哪些必须用局部变量(如函数内临时查询结果)?编写《变量作用域设计说明书》,说明每个变量的选择依据,培养规范编程意识。课后作业七、课后作业

1.题目:分析以下代码,指出哪些变量是局部变量,哪些是全局变量,并预测运行结果。

```c

#include<stdio.h>

intx=3;

voidfun(){

inty=4;

x=x+y;

printf("fun:x=%d,y=%d\n",x,y);

}

intmain(){

fun();

printf("main:x=%d\n",x);

return0;

}

```

答案:全局变量x,局部变量y;运行结果:fun:x=7,y=4;main:x=7。

2.题目:以下代码存在错误,请修改使其正确输出“sum=15”。

```c

#include<stdio.h>

intsum=0;

voidadd(inta){

sum+=a;

}

intmain(){

add(5);

add(10);

printf("sum=%d\n",sum);

return0;

}

```

答案:正确代码如上,运行结果sum=15。

3.题目:判断以下代码的输出结果,并说明原因。

```c

#include<stdio.h>

inta=10;

voidfun(){

inta=5;

printf("%d\n",a);

}

intmain(){

fun();

printf("%d\n",a);

return0;

}

```

答案:第一行输出5(局部变量优先),第二行输出10(全局变量);局部变量与全局变量同名时,局部变量优先。

4.题目:编写程序,用函数计算1到10的和,使用全局变量存储结果,并在main函数中输出。

答案:

```c

#include<stdio.h>

intsum=0;

voidcalc(){

for(inti=1;i<=10;i++)sum+=i;

}

intmain(){

calc();

printf("sum=%d\n",sum);

re

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论