小学生c教学教案

2024-04-29

小学生c教学教案(共6篇)

篇1:小学生c教学教案

25 动物过冬

教学目标:

1.学会本课10个生字。

2.能正确读写要求学会的词语,会用“一边……一边……”写句子。

3.能分角色朗读课文。

4.通过学习课文,了解一些动物过冬的情况,激发学生进一步学习自然科学知识的兴趣。

教学重点:课文第二、三自然段。

教学难点:比较青蛙、蚂蚁过冬方式的相同与不同。

教学过程:

第一课时

一、揭示课题,激发兴趣

1.谁知道“过冬”是什么意思?

2.出示图片或幻灯片、标本。问:你们认识这些动物吗?谁能说说它们的名称?

3.教师讲述:今天学习的课文,为我们介绍了燕子、杜鹃、黄鹂、喜鹊、青蛙、蚂蚁过冬的一些知识。它们到底是怎样过冬的,学了课文就知道了。请大家翻开课文。

板书 30.动物过冬

同学们齐读课题。

二、利用拼音和字典,初读感知,自学课文

1.练习朗读全文。遇到生字,借助拼音把字音读准,多读几遍,读准记牢。还要注意轻声和儿化韵的朗读。

2.再读课文,把句子读通顺,课文读流利。读后划出不懂的词,查查字典,在小组内和同学们交流。(这步活动应留给学生充裕的时间,让其动脑、动手、动口,不流于形式。教师巡视,有重点地指导。)

3.指名学生朗读全文。思考:本文是写这些动物在过冬,还是准备过冬?分几个自然段写的?(因有图画穿插,分段易混,要适当指导。)

4.指名分自然段朗读课文。(看看课文中有几幅图,哪几种动物?想一想,为什么没画出燕子、杜鹃和黄鹂?)

5.用一句话说说,课文写了什么事。(课文写了燕子、杜鹃、黄鹂、喜鹊、青蛙、蚂蚁准备过冬的事。)板书:燕子、杜鹃、黄鹂喜鹊、青蛙、蚂蚁

三、分段读、想、批划,再自学

1.自由轻声分段读课文,边读边批划:

①表明天气变化的词句。(或是季节变化)

②表明燕子、杜鹃、黄鹂、喜鹊各在哪儿准备过冬的词句。

③表明青蛙在哪儿准备过冬的词句。

④表明蚂蚁在哪儿准备过冬的词句。

2.把找出的词句读几遍。

四、分段学习课文

1.学习第一段。

①指名朗读本段。

②理解:早晨,小蚂蚁来到树林里,它发现树林里有什么变化?(满地是落叶,感到有点儿冷,周围静极了。)从这些变化中你感觉到了什么?(秋天过去了,冬天来到了,朋友不见了。)

③谁能说说这段告诉了我们什么?(冬天来到时,树林里的变化)

④指导读本段。(注意引导学生从“有点儿冷、静极了”等词和后一问句中体会语气)

2.学习第二段。

①指名朗读本段。

②理解:这一段告诉了我们哪些动物准备过冬的情景?从哪里知道的?(燕子、杜鹃、黄鹂、喜鹊准备过冬的情景,从蚂蚁和喜鹊的对话中知道的。)

③读议小蚂蚁和喜鹊的对话。(从它们的对话中,大家知道了这几种动物是怎样过冬的吗?”)

结合课文理解“暖暖和和”是什么意思?为什么不就用“暖和”?“这儿”指哪儿?(当地,现在生活的地方)。

④指导读本段。(联系插图,边看边体会,注意小蚂蚁仔细访问的样子和语气,喜鹊热心并高声回答的样子与语气。)

3.学生自学第三段,教师引导归纳整理。

①出示小黑板,交代学习方法与要求。

a自由轻声朗读课文。

b看看这段写谁准备过冬,用一个词说一说。

②学生自学。

③讨论。

你知道青蛙是怎样过冬的?冬眠是什么意思?

从青蛙的话中,你知道它是怎样冬眠的?(整个冬天,睡在洞里,不吃不动)

哪些词句写出了青蛙在洞里冬眠的好处?

④回读本段。(注意文中的问号、感叹号,体会对话的语气,先试读,再指名读。)

4.自读第四段,看小蚂蚁怎样准备过冬。

①自学思考:小蚂蚁准备怎样过冬?

②联系比较:蚂蚁、青蛙在洞里过冬有什么不同?(蚂蚁在洞里过冬,但不是冬眠,要活动还要吃的,所以要准备过冬的粮食。)

五、回读全文,总结课文内容

1.自由朗读全文。

2.说说课文中6种小动物,共有几种过冬的方法。

3.教师总结。本文告诉我们,冬天到了,各种动物都用不同的方法准备过冬。如燕子、杜鹃、黄鹂飞到南方过冬。喜鹊就在当地把窝垫得暖暖和和地过冬。青蛙和蚂蚁都在洞里过冬,但青蛙是冬眠,蚂蚁在洞里不冬眠,还要准备虫子当粮食,好在洞中生活。

六、完成练习

1.分角色朗读课文。(小蚂蚁:天真好奇;青蛙:自信且答问耐心;喜鹊:平静和气)

2.说说还知道哪些动物是怎样过冬的。教师也可简略介绍几种动物过冬的知识。

3.介绍有关课外读物,要求课外阅读,以扩大视野,丰富知识。

板书

第二课时

一、复习导入:

认读词句:

词:周围 树梢 暖暖和和 告别 冬眠 舒服 刨土

句:我要冬眠了。整个冬天,我们青蛙都睡在洞里,不吃也不动,到明年春天再出来。

二、学习生字:

(一)读准字音:

1.教师出示下面生字:周 静 忽 喊 燕 睡 眠 舒 粮 食

2.学生自读、同桌互读。

3.指名读,大家纠正读音。

注意:“周、静、眠、食”几个字是翘舌音,“食”的本音是二声,在“粮食”一词中读轻声。

(二)记住字形。

1.学生用自己的方法自学生字。

2.小组讨论,交流识字方法。

3.自学汇报,教师重点指导:

喊:右边是“咸”,不是“成”。

舒:左边是“舍”,右边是“予”不是“矛”,不要多写一撇。

“周、静、眠、粮、食”几个字可以用熟字加偏旁和部件分析等方法识记。

(三)指导书写。

睡:右边的“垂”笔顺是:  。注意最后一笔是短横。

粮:第六画是“点”,不要写成“捺”。

食:上半部的“人”要盖住下面的“良”。最后一笔是“点”,不是“捺”。

着重指导“燕”:“廿字头,黑字尾,北字中间夹个口”。

三、完成课后练习 。

板书:

25 动物过冬

[小学二年级语文上册第八单元教案C.doc 教案教学设计]

篇2:小学生c教学教案

1.1 C语言发展概述

C语言是在1972年至1973年间由美国的贝尔实验室的M.D.Ritchie和K.Thompson以及英国剑桥大学的M.Richards等为描述和实现UNIX操作系统而设计的。

最初的C语言是附属于UNIX的操作系统环境,而它的产生却可以更好地描述UNIX操作系统。时至今日,C语言已独立于UNIX操作系统。它已成为微型、小型、中型、大型和超大型(巨型)计算机通用的一种程序设计语言。

随着C语言的不断发展、应用和普及,目前,C语言已经能够在多种操作系统下运行,实用的C语言编译系统种类繁多,如Microsoft C、Turbo C等。1.2 C语言的特点

C语言能够成为目前广泛的高级设计语言之一,完全是由其语言特点决定的。

(1)语言基本组成部分紧凑简洁。(2)C语言运算符丰富,表达能力强。(3)C语言数据结构丰富,结构化好。(4)具有结构化的控制语句。

(5)C语言提供了某些接近汇编语言的功能。(6)C语言程序所生成的目标代码质量高。(7)C语言程序可移植性好。C语言的弱点:

(1)运算符的优先级较复杂,不容易记忆

(2)C语言的语法限制不太严格,一定程度上降低了某些安全性。1.3 简单的C语言程序。1.3.1 C语言程序的构成 1.3.2 C语言程序的特点

(1)C程序是由函数构成的,其中至少包括一个函数main()。(2)函数体是由左右花括号{ }括起来的部分。(3)C语言中的每个基本语句都以“;”结束。

(4)C语言书写格式自由,一行内可以写一个语句,也可以写多个语句。

(5)#include语句是编译预处理语句,其作用是将由双引号或尖括号括起来的文件内容读入该语句位置处。对程序说明:

(1)可用/*„*/对C程序中的任何部分作注释。

(2)C语言中所有变量都必须先定义类型,然后再使用。(3)一个C语言程序通过函数之间的相互调用来实现相应的功能。即可以是系统提供的库函数,也可以是根据需要自己定义的函数。1.4 C语言上机步骤

运行环境:DOC操作系统下的Turbo C 1.4.1 C程序上机步骤

1.编辑:在TurboC环境下。将C语言源程序通过键盘输入到计算机中,并以文件形式存盘,源程序都是以.C为扩展名。

2.编译:通过编辑程序将源程序输入到计算机后,需要经过C语言编译器将其生成目标程序。得到的目标文件都是以.OBJ为文件扩展名。3.连接:经过编译后生成的目标文件需经过连接后才能生成可执行代码。其扩展名是.EXE。

所谓连接,是将目标文件和库函数或其他目标程序连接成可执行的目标程序。

4.执行:连接后源程序的目标程序就是可执行文件了。在DOS系统下,只要键入可执行文件名,按回车键就可以了。1.4.2 Turbo C系统菜单 1.Turbo C的主屏幕和主菜单功能 2.文件菜单及功能 1.4.3 程序调试方法

一个计算机程序必须对其进行测试来确定其可以正确地工作,这一过程称为调试。程序错误

语法错误:通过编译和连接就会找到 运行错误:通过调试自己找出问题所在 1.设置和使用观察变量 2.单步执行程序 3.设置和使用断点

2.1 常量和变量 2.2 整型数据 2.3 字符型数据 2.4 浮点型数据 2.5 变量的初始化

第二章 数据类型与表达式 2.1 常量和变量

2.1.1 常量:在程序运行过程中其值不能被改变的量。2.1.2 变量:在程序运行过程中其值可以被改变的量。

标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。1.标识符的有关规定:

(1)由英文字母、数字、下划线组成,且第一个字符必须是字母或下划线,一般不超过8个字符;(2)大小写字母的含义不同。

(3)不能使用C语言中的关键字做标识符,(4)用户取名时,应当尽量遵循“简洁明了”和见名知意的原则。2.变量名的有关规定:

(1)使用变量名前,一定先定认,后使用,否则不能做为变量名。(2)每一个变量属于一种类型,便于在编译时据此检查该变量所进行的运算是否合法。(3)变量名的定义:存储属性、数据类型、变量名表 3.数据类型 2.2 整型数据 2.2.1整型常量

(1)十进制整数:数码直接开头的十进制数。如1234,-234。(2)八进制整数:以0开头的常量是八进制数。如011=(11)8(3)十六进制整数:以0x开头的数是十六进制。如0x123即(123)16 例2.1 三种进制表示方法的转换 源程序a1.c main(){ Int x=1246,y=01246,z=0x1246;Printf(“%d,%d,%dn”,x,y,z);Printf(“%o,%o,%on”,x,y,z);Printf(“%x,%x,%xn”,x,y,z);} C:>a1 1246,678,4678 2336,1246,11106 4de,2a6,1246 2.2.2整型变量 原则:使用变量前,先定义,后使用。(1)基本型:用int表示;

(2)短整型:用short int或short表示;(3)长整型:用long int或long表示;(4)无符号型:

无符号整型:用unsigned int或unsigned表示;

无符号短整型:用unsigned short int或unsigned short表示;无符号长整型:用unsigned long int或unsigned long表示;2.2.3 整型变量使用

不同的整型数据,应根据其特性和取值范围,将其定义成不同类型的整型变量。

例2.2不同类型的数据进行算术运算。源程序a2.c Main(){ Int a,b,s1,s2;Unsigned x;a=10;b=-30;x=20;S1=a+x;s2=b+x;Printf(“a+x=%d,b+x=%dn”,s1,s2);} C:>a2 运行结果为 a+x=30,b+x=-10 2.2.3 整型变量使用

不同的整型数据,应根据其特性和取值范围,将其定义成不同类型的整型变量。

例2.3 整型数据各类型所能表示的范围 源程序a3.c main(){int a,b;long c,d;unsigned e,f;a=32767;b=1;c=2147483647;d=1;e=65535;f=1;Printf(“int: %d,%d,n”,a,a+b);Printf(“long: %d,%ldn”,c,c+d);Printf(“unsigned: %u,%un”,e,e+f);} C:>a3 运行结果为 Int: 372767,-32768 Long: 2147483647,-2147483648 Unsigned:65535,0 2.3 字符型数据 2.3.1 字符型常量

字符常量是由一对单引号括起来的单个字符构成,例如:‘A’,‘b’,’2’,’%’’;’等。一个字符型常量是该字符集中对应的编码值:‘0’~‘9’的ASCⅡ编码值是48~57。显然‘0’与数字0是不同的。

2.3.2 字符型变量

字符型数据分为两类:一般字符类型(char)和无符号字符类型(unsigned char)。

例2.4 字符型数据与整型数据可以通用 源程序a3.c Main(){char c1,c2;Printf(“%c,%cn”,c1,c2);Printf(“%d,%dn”,c1,c2);} C:>a4 运行结果为 A,B 65,66

2.3.3 字符串常量

字符串常量是由一对双引号括起来的字符序列,例:“fsdf”,”A”等。字符串常量中不能直接包括单引号、双引号和反斜杠““。字符串常量与字符常量的区别:

(1)字符串常量是用双引号括起来的字符序列。(2)字符串常量有串尾标记””;(3)字符串常量允许扩展表示法;

(4)C语言中没有专门的字符串变量。字符串如果需要存放在变量中,需要用字符型数组来存放。

注意:不要将单个字符组成的字符串常量与字符常量混淆。‘a’为字符串常量,不能把一个字符串常量赋给一个字符变量。例如:下面的用法都是错误的: Char c1,c2;C1=“a” C2=“CHINA”;字符‘’由系统自动加入到每个字符串的结束处,不必由编程人员加入。

字符串“CHINA”在内存中的存放形式如下图,其长度是六个字节,而不是5个字节。字符‘’所对应的ASCⅡ值为0,即“空”字符。2.4 浮点型数据 2.4.1 浮点型常量

浮点型常量有两种表示形式。十进制数形式

它是由数字和小数组成,如:3.14159,-7.2,8.9 指数法形式

如:180000.0用指数法可表示为1.8e5,1.8称为尾数,5称为指数。

0.00123用指数法可表示为1.23e-3 注意:

(1)字母e 或E之前(即尾数部分)必须是有数字的。(2)e或E后面的指数部分必须是整数。如:e-3,9.8e3.1,e5都是不合法的。

2.4.2 浮点型变量(实型变量)

把带有小数点的数称为浮点数,或实型数。浮点型变量又称为实型变量,按能表示数的精度,分为:单精度浮点型变量和双精度浮点型变量,其定认方法如下:

float a,b;/*单精度变量的定义*/ double c,d;/*双精度变量的定义*/ 单精度:占4个字节,有效位为7位,数值范围为10-37~1038 双精度:占8个字节,有效位为15~16位,数值范围约为10-307~10308 浮点型常量不存在单精度型和双精度型之分。2.5 变量的初始化 变量的初始人化:在定义变量的同时给变量赋予初值。方法:

(1)先说明变量类型,然后再赋值。

(2)在对变量类型说明的同时,给变量赋初值。先定义后赋值 int a,b,c;char d;floatb f;a=2;b=5;c=10;d=‘a’;f=5.7;定义和赋值同时进行 int a=5;short b=10;char c=‘a’;float d=7.8;3.对几个变量同时赋一个初值 Int a1=10,a2=10,a3=10;

初始化不是在编译阶段完成的,而是在程序运行时执行本函数时赋以初值的。相当于一个赋值语句。例如: int a=10;相当于: int a;a=10;

又如: Int a;,b,c=20;相当于: Int a,b,c;C=20;第三讲 运算符以及数据类型 2.6 运算符及表达式 2.7 数据类型转换 2.8 类型定义 2.6 运算符及表达式

C语言运算符可以分为:算术运算符、逻辑运算符、关系运算符、位运算符、赋值运算符。2.6.1 算术运算符和算术表达式

1.算术运算符:加、减、乘、除及取模即:+,-,*,/,%来表示。C语言规定:

(1)模运算符%,仅用于整型变量或整型常量。

(2)优先级:一个表达式中如有多个运算符,则计算先后次序为相应运算符的优先级高的优先。乘、除、模优先级高于加、减的优先级。(3)结合方向:是一个运算对象两侧的运算符的优先级别相同时,应遵循的处理规则。

算术运算符的结合方向是从左至右; 赋值运算符的结合方向是从右至左。

算术表达式:由算术运算符、括号以及操作对象组成的符号C语言语法规则的表达式称为算术表达式。2.6.2 赋值语句 1.赋值运算符

语言的赋值运算符是“=”,它的作用是赋值运算符右边表达式的值赋给其左边的变量。

例如:a=10,x=a+5,前者是把常量10赋给变量a,后者是将表达式a+5的值赋给变量x.注意:如果“=”两侧的类型不一致,在赋值时要进行类型转换。例如a=b,执行该语句时,b的结果转换为a的类型后才能进行赋值运算。2.复合赋值运算符

C语言允许在赋值运算符“=“之前加上其它运算符,以构成其复合运算符。复合运算符多数为双目。复合运算符有:

+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|= 例:

a+=2

等价于 a=a+2 x*=y+5 等价于 x=x*(y+5)x%=8

等价于 x=x%8 赋值运算符都是自右向左执行。3.赋值语句与赋值表达式 赋值语句最简单的形式是: <变量>= <表达式>;

功能:是赋值运算符右边的“表达式”的值赋给左边的变量。

赋值表达式也可以包含复合的赋值运算符,例: 如果a=10,表达式a+=a-=a*a的值为-180。其步骤为:(1)先进行a-=a*a的计算,它相当于a=a-a*a=10-10*10=-90.(2)再进行a+=-90的计算,它相当于a=a+(-90)=-90-90=-180.4.自增自减运算符

i++(或i--)表示在使用该表达式值之后将i值加1(或减1)。++i(或--i)表示在使用该表达式值之前将i值加1(或减1)。

说明:

(1)++和--仅适用于变量,不能用于常量或表达式。(2)++和--运算符的结合方向是“至右向左”。Main(){int a=100;printf(“a++=%dn”,a++);printf(“++a=%dn”,++a);printf(“a--=%dn”,a--);printf(“--a=%dn”,--a);} 输出结果: a++=100 ++a=102 a--=102--a=100

2.6.3 关系运算符和关系表达式 1.关系运算符

关系运算符均为两目运算符。共有六种: >

大于

<

小于 >=

大于等于 <=

小于等于 ==

等于

!=

不等于

关系运算符要求两个操作数是同一种数据类型,其结果为一逻辑值,即关系成立时,其值为真(true),用非0值表示;关系不成立时,其值为假(false),用0表示。

关系运算符的优先级借低于算术运算符,关系运算符==和!=低于前四种运算符,并且结合方向均为自左至右。2.关系表达式

由关系运算符将两个表达式连接起来的有意义的式子称为关系表达式。如:a+b

关系表达式的值是一个逻辑值,即“真”或“假”。用1表示“真”,用0表示“假”。如:

a=4,b=1,C=a>b;c的值为1,若a=1,b=8,x=a>b;x的值为0。2.6.4 逻辑运算符和逻辑表达式 1.逻辑运算符

逻辑运算符有“&&“(逻辑与)、”||“(逻辑或)和”!“(逻辑非)三种。

逻辑运算符的操作对象为零或非零整数值,见表2.4.表2.4

逻辑运算规则 逻辑表达式

由逻辑运算符和其操作对象组成表达式称为逻辑表达式。2.6.5 位运算符

位(bit)运算是C语言的一大特色,可直接对构成内存的基本单位 “字节”(byte)进行按位操作。按位与(&)操作规则:参加运算的两个运算量,如果两个相应的位均为1,则该 位的结果为1,否则为0,见表2.5

表2.5

接位与 例如:(1)清零。

(2)取一个数中的某些位。高位清零:

00101101 10011100 & 00000000 11111111

00000000 10011100 低位清零:

00101101 10011100

& 11111111 00000000

00101101 00000000 按位或(|)

操作规则:参加运算的两个运算量,其相应的位中只有一个为1,则该位的结果为1,否则为0。

表2.6

按位或 例如:

(1)01000001

| 00101001

01101001(2)01000001

| 00000000

01000001(3)01000011

| 11111111

11111111(4)01000001

| 10111110

11111111 例如:将某一个数的某些位置为1。一个整数a,要将其低字节全置为1,即低字节为11111111,可将该数与255(十六进制为FF,二进制为11111111)按按位或即可。按位异或(^)

操作规则:参加运算的两个运算量,当相应位相同时,其结果在该位为0,相应位不同时,其结果在该位为1,即按位相加,但不进位。

表2.7

按位异或(1)使指定位翻转。即由1变为0,由0变为1。例:

01100110 ^ 00001111 01101001(2)不使用临时变量,交换两个值。方法为:若有两个数a和b,通过

下面的赋值语言可将 a和b的值互换: a=a^b;b=b^a;b=a^b;4.按位求反(~)

操作规则:运算符~是一个单目运算符,用来对一个数二进制表示按位求反,即瘵0变成1,将1变成0。

表2.8

按位求反 例: ~01101001

10010110 将一个数的某些位变为0。方法是:瘵该数a与~b按位求与,此处的b为这样的一个数,即要求a 中变为0的那些位均为1,其余位均为0。如要将a的最低位变为0,则可使用下述表达式实现。A=a&~1 5.左移(<<)

操作规则:将一个数的各二进制位全部左移若干位,左移后,右边的这些位用0填补,左边移出的位舍弃不用。例:a=a<<2;若a=15,即二进制00001111,左移两位后变为00111100。若再向左移4位,则变为11000000。

将一个数左移1位,相当于该数乘以2,左移2位相当于该数乘以4。如上例中a=15,则a=a<<2,此时a=15*4=60。但是这种情况仅指左移时没有1被移出去的情况,左移运算要比乘法运算快得多。

6.右移(>>)

操作规则:将一个数的各二进制位全部右移若干位,右移后,右边移出的位被舍弃,而左边的填补分两种情况:(1)该数为无符号数,则高位补0。例:a=a>>2;右a=15,二进制为00001111,右移两位后为00000011。

(2)该数为有符号数,若原来的符号位为0(最高位为0,即正数)则高位补0,若原来的符号位为1(即表示该数为负数),高位补0或1,取决于所使用的计算机系统。有的系统补0,称为逻辑右移,有的系统补1,称为算术右移。例:a:***1 a>>1:***1(逻辑右移)a>>1:***1(算术右移)2.6.6 其他运算符 逗号运算符

逗号运算符为“,“。逗号表达式是用逗号运算符把两个表达式组合成的一个表达式。其一般形式为 〈表达 式1〉,〈表达式2〉 说明:(1)逗号表达式的执行过程是:先求表达式1的值,再求表达式2的值,表达式2的值就是整个逗号表达式的值。

(2)一个逗号表达式可以与另一个表达式构成一个新逗号表达式。(3)逗号运算符是所有运算符中级别最低的。

(4)逗号表达式常用于for语句中,它可以表达多个初值或多个步长增量。

逗号表达式的一般形式可以扩展为

〈表达式1〉,〈表达式2〉,〈表达式3〉,„„〈表达式N〉 表达式n的值是整个表达式的值。

条件运算符

条件运算符是一个三目运算符,把三表达式组合成一个表达式。其一般形式为

〈表达式1〉?〈表达式2〉:〈表达式3〉;

功能:计算〈表达式1〉的值,如果该值为真(非0值),则计算〈表达式2〉的值,并且该值即为条件表达式值。若〈表达式1〉的值为假(0),则计算〈表达式3〉的值,并将该值作为条件表达式的值。说明:

(1)条件运算符优先级别高于赋值运算符,低于关系运算符和算术运算符。

(2)条件运算符结合方向是“自右至左”。

(3)〈表达式1〉与〈表达式2〉、〈表达式3〉类型可以不同。3.Sizeof运算符

sizeof运算符是测试变量、表达式或类型名所占用的字节 数。有两种用法。

sizeof〈表达式〉:测试表达式所占用的字节数。sizeof〈表达式〉:测试类型名所占用的字节数。例如: sizeof(float)其值为4。sizeof运算符可以出现的表达式中。main(){ int a=4;fload b=5.6;printf(“%d,%dn”, sizeof(a), sizeof(b));} 输出结果: 2,4 2.7 数据类型转换

在内存中,字符是以系统中所使用字符的编码值形式存储的,C语言允许字符型数据和整型数据之间通用一个字符型数据,即可以以字符形式输出,也可以以整型形式输出,同时,字符型数据可能赋给整型变量,整型数据也可以赋给字符型变量,只是当整型变量数据的大小超过字符型变量的表示范围时,需要截取相应的有效位。

除字符型数据和整型数据之间可以通用之外,不同类型的数据在进行混合运算时,往往需要进行强制类型转换。因此类型转换有两种方式:一种是自动类型转换;另一种是强制类型转换。2.7.1 自动类型转换

在进行计算时,首先将不同类型的数据转换成同一类型,然 后进行计算

不同类型数值转换规则: Double float

Long

Unsigned

Int

char ,short 2.7.2 强制类型转化

强制类型转化的一般形式如下所示:

(强制的类型名)〈变量〉

例如:(int)(a+b),将a+b的结果强制转换成int型;

(float)a/b,将a的结果强制转换成float型后,再进行计算。注意:经强制类型转换后,得到的是一个所需类型的中间变量,原来变量的类型并没有发生任何变化。2.8 类型定义

C语言允许使用typedef语句定义新类型名,以取代已有类型名,如: typedef int counter;作用是定义counter等价于基本数据类型名int,以后就可以利用counter来定义int型变量了。如: counter I,n;

等价于int I, n;类型定义的优点是:能够提高程序可读性。注意:

(1)typedef语句不能创造新的类型,只能为已有的类型增加一个类型名。(2)typedef语句只能用来定义类型名,而不能用来定义变量。例如:分析下例程序。# include “stdio.h” typeref int integer;typedef float real;Main(){ integer i=5;real f;f=real(i)/10;printf(%f”,f);} 第四讲 数据的输入输出 3.1 数据的输入 3.2 数据的输出 3.3 应用举例 3.1 数据的输入

3.1.1 字符输入函数getchar 格式: getchar()

功能:从键盘上接收输入的一个字符。例如:

char c;

┆ c= getchar()其中c是字符型或整型变量。

例1:从键盘输入一个字符,并将其存入字符型变量c 中。#include”stdio.h” Main(){char c;C= getchar();} 3.1.2 格式输入函数scanf 格式:scanf(格式控制,地址表);

功能:用来输入任何类型数据,可同时输入多个类型或不同类型数据。格式控制:是由双括号括起来字符串,主要是由“%”和格式符组成 2.地址表

Scanf函数中的“地址表”部分是由变量的地址组成的,如果有多个变量,则各变量之间用逗号隔开。地址运算符为“&“,如变量a的地址可以写为&a。

例3.2用scanf函数,从键盘 上输入一个整型数、一个浮 点数和一个字符,分别存入 变量i、f和c中。

#include”stdio.h” main(){ int i;float f;char c;scanf(“%d,%f,%c”,&I,&f,&c);printf(“i=%d,f=%f,c=%c”,i,f,c);} 说明:

(1)在scanf函数“格式控制”部分中的每个格式说明符都必须在“地址表列”中有一个变量与之对应格式说明符必须要与相应变量的类型一致。

(2)当格式说明符之间没有任何字符时,在输入数据时,两个数据之间要使用“空格”、“Tab”或“回车”键做间隔;如果格式说明符之间包含其它字符,则输入数据时,应输入与这些字符相同的字符做间隔,如:

Scanf(“%d,%f,%c”,&i,&f,&c);

在输入数据时,应采用如下形式:20,7.8,a(3)可以在格式说明符的前面指定输入数据所占的列数,系统将自动按此列数来截取所需的数据,如:

scanf(%2d%3d”,&x,&y);当用户输入78985时,系统将自动地将78赋给变量x,将985赋给变量y。这种方式也可用于字符型数据的输入。

(4)应该特别注意的是,scanf函数中的“地址表列”部分应当中变量的地址,而不是变量名。.2 数据的输出

3.2.1 字符输出函数putchar 数据的输出一般是以终端显示器(屏幕)为处理对象。格式:向终端输出一个字符。

说明:变量c可以是字符型,也可以是整型。例3.3 从键盘输入一个字符,在屏幕上显示出来。#include”stdio.h” main(){ char c;c=getchar();

/*从键盘输入一个字符*/ putchar(c);

/*在屏幕上显示一个字符*/ } putchar函数也可以输出一些特殊字符(控制字符),如:putchar(‘n’)作用是输出一个“换行”字符。3.2.2 格式控制函数printf 格式: printf(格式控制,输出表); 功能:输出任何类型的数据。1.格式控制

“格式控制”部分与scanf函数的相似,也是由双引号括起来的字符串,主要包括格式说明和需要原样输出的字符。

“格式说明”:由“%”和格式符组成,如%c和%f等,作用是将要输出的数据转换为指定格式后输出。printf函数中使用的格式字符见表3.2。

表3.2

printf函数格式字符 注意:格式字符必须小写 输出表

printf函数中的“输出表”部分由表达式组成,这些表达式应与“格式控制”字符串中的格式说明符的类型一一对应,若“输出表”中有多个表达式,则每个表达式之间应由逗号隔开。

例3.4 从键盘输入一个整数和一个浮点数,并在屏幕上显示出来。#include”stdio.h” main(){ int i;float f;scanf(“%d,%f”,&i,&f);printf(“i=%d,f=%f”,I,f);} 执行此程序,按格式输入数据: 50,8,9 i=50,f=8.900000 说明:

(1)printf函数中的“格式控制”字符串中的每一个格式说明符,都必须与“输出表”中的某一个变量相对应,如上述程序中的“%”与i对应;“%f”与f对应,而且格式说明符应当与其所对应变量的类型一致。

若要显示“%”字符,则应在“格式控制”字符串中连写两个“%”,如:

Printf(“x=%d%%”,100/4);将显示:x=25%。

(2)对格式说明符c、d、s和f等,可以指定输出字段的宽度。%md:m为指定的输出字段的宽度。如果数据的位数大于m,则按实际位数输出,否则输出时向右对齐,左端补以“空格”符。%mc:m为指定的输出字段的宽度。若m大于一个字符的宽度,则输出时向右对齐,左端补以“空格”符。

%mc:m为输出时字符串所占的列数。如果字符串的长度(字符个数)大于m,则按字符串的本身长度输出,否则,输出时字符串向右对齐,左端补以“空格”符。

%-ms:mr的意义同上。如果字符串的长度小于m,则输出时字符串向左对齐,右端补以“空格”符。

%m.nf:m为浮点数据所占的总列数(包括小数点),n为小数点后面的位数。如果数据的长度小于m,则输出时向右对齐,左端补以“空格”符。

%-m.nf:m、n的意义同上。如果数据的长度小于m,则输出向左对齐,右端补以“空格”符。

(3)除了格式说明符及其输出字段的宽度外,在“格式控制”字符中的其他字符,将按原样输出。

(4)在显示数据时,可以不指定输出字段的宽度,而直接利用系统隐含的输出宽度。3.3 应用举例

例3.5 分析下列程序,观察运行结果。main(){ char ch=‘a’;int a=98;unsigned b=1000;long c=123456789;float x=3.14;double y=1.2345678;pPrintf(“(1)a=%d,a=%c,ch=%d,ch=%cn”,a,a,ch,ch);printf(“(2)b=%un”,b);printf(“(3)c=%ldn”,c);printf(“(4)x=%f,y=%fn”,x,y);printf(“(5)x=%e,y=%en”,x,y);printf(“(6)y=%e10.2fn”,y);} 运行的结果为

(1)a=98,a=b,ch=97,ch=a b=1000 C=123456789 X=3.140000,y=1.234567 x=3.14000e+00,y=1.23456e+00 Y=1.23 例3.6 从键盘上输入一个大写字母,把它转换面小 写字母,然后显示出来。#include”stdio.h” main(){ char x1,x2;printf(“x1=?n”);scanf(“%c”,&x1);x2=x1+32;printf(“%c,%cn”,x1,x2);} 运行结果 x1=? A A,a 例3.7 分别输入一个浮点数,一个整数,一个字符型数。#include “stdio.h” main(){ float f;int I;char c;scanf(“%f%d%c”,&f,&I,&c);printf(“%f%d%c”,f,I,c);}

例3.8 从键盘输入一个字符并鸣笛输出。#include “stdio.h” Main(){ Char c;C=getchar();Putchar(‘07’);Putchar(c);} 第五讲 条件语句 4.1 语句和复合语句 4.2 if语句 4.3 switch语句 4.4 应用举例 第四章 条件语句

结构化程序的三种基本结构:顺序结构、选择分支结构和循环结构。顺序结构:是指每个程序都是按照语句的书写顺序依次执行的。选择分支结构:是指通过对特定条件的判断,来选择一个分支执行。循环结构:循环是指在给定条件下,重复执行某段程序,直到不满足条件为止。4.1 语句和复合语句

表达式语句:一个表达式的后面跟随一个分号构成的语句。如:x=x+a;说明:分号“;”是语句的终结符,而不是语句的分隔符即分号是语句的最末组成部分。

复合语句:由左右花括号括起来的语句;

形式:{说明部分;语句部分} 一个复合语句在语法上等同于一个语句,在程序中,凡是单个语句能够出现的地方,都可以出现复合语句。一个复合语句又可以出现在其他复合语句内部。

在复合语句的后面必须有一个分号,做为该语句的终结符。4.2 if语句

If语句是条件选择语句,它是通过对给定条件的判断,来决定所要执行的操作。

4.2.1 if语句的三种形式 If语句的第一种形式 格式:if(表达式)〈语句〉

功能:首先计算表达式的值,若表达式的值

为“真”(为非0),则执行语句,若表达

式的值为“假”(为0),不执行语句。例如:

If(x>y)printf(“%d”,x);2.If语句的第二种形式 格式:if(表达式)〈语句1〉

else

〈语句2〉 功能:首先计算表达式的值,若表达式的值为“真”(为非0)。则执行语句1,若表达式的值为 “假”(为0),则执行语句2。例如:

if(x>y)printf(“%d”,x);else printf(“%d”,y);3.If语句的第三种形式 格式:

if(表达式1)〈语句1〉 else if(表达式2)

〈语句2〉 else if(表达式3)

〈语句3〉

else if(表达式n)

〈语句n〉 else 〈语句n+1〉

功能:首先计算表达式的值,若第n个表达式的值为“真”(为非0),则执行语句n,若所有的表达式的值都为“假”(为0),则执行语句n+1。其流程图如下: 例如:

if(score>89)

grade=‘5’;else if(score>74)grade=‘4’;else if(score>59)grade=‘3’;else

grade=‘2’;说明:

(1)if语句中的表达式可以是C语言的合法表达式。

(2)第二种、第三种格式的if语句中,在每个else前面有一个分号,整个语句结束处也有一个分号。这是由于分号是C语句中不可缺少的部分,这个分号是if语句中的内嵌语句所要求的。

(3)在if和else后面可以只含有一个内嵌的操作语句,也可以含有多个操作语句,此时应用花括号“{ }“将几个语句括起来,构成一个复合语句。

例4.1 将两个数中较大者赋给 s。main(){ int a,b,s;a=10;b=20;if(a>b)s=a;else s=b;printf(“s=%dn”,s);} 执行结果: s=20 例4.2 比较两个数,按由大到小输出。main(){ int a,b,x,y;a = 10;b = 20;if(a>b){x=a;y=b;} else {x=b;y=a;} printf(“x=%d,y=%dn”,x,y);} 执行结果: x=20,y=10 4.2.2 if语句的嵌套

在if 语句中又包含一个或多个if语句,称为if语句的嵌套。一般形式如下: if()

if()

〈语句1〉

else

〈语句2〉 else

if()

〈语句3〉

else

〈语句4〉 if()

if()

〈语句1〉 else

if()〈语句2〉

else

〈语句3〉 说明:

(1)if与else的配对关系,从最内层开始,else总是与离它最近的未曾配对的if配对。

(2)if与else的个数最好相同,从内层到外层一一对应,以避免出错。

(3)如果if与else的个数不相同,可以用花括号来确定配对关系。例如: If()

{if()〈语句1〉} else

〈语句2〉

这时{ }限定了内嵌if 语句的范围,因此else与第一个if配对。例4.3 有一函数

编一程序,输入一个x值,输出y 值。main(){ int x,y;scanf(“%d”,&x);if(x<0)y=-1;else if(x==0)y=0;

else y=1;printf(“x=%d,y=%dn”,x,y);} 4.2.3 条件运算符

如果if语句的形式如下所示: if(表达式1)

x=〈表达式2〉; else

x=〈表达式2〉;

无论表达式1为“真”还是为“假”,都只执行一个赋值语句且给同一个变量赋值。

可以利用条件运算符,将这种语句简单地用如下语句来表示。

x=〈表达式1〉?〈表达式2〉:〈表达式3〉;

说明:即当表达式1的值为“真”时,将表达式2的值赋给变量x;当表达式1的值为“假”时,将表达式3的值赋给变量x。如:

a=5,b=10,c=20;x=a>b? c*b:c/b;因为a>b为假,则x=c/b=2。

例4.4 输入两个数,并将其中较大者显示出来。#include “stdio.h” main(){ int a,b,max;scanf(“%d%d”,&a,&b);max=(a>b)? a:b;printf(“max=%d”,max);} 条件运算符也可以嵌套使用,如:

Grade=(score>=90)?’A’:(score<=70)?’C’:’B’当score>=90时,将字符‘A’赋给变量grade;当score<=70时,将字符‘C’赋给变量grade;否则将字符‘B’赋给变量grade.4.3 switch语句

Switch语句是多分支选择语句,其一般形式如下:Switch(表达式)

{

case 〈常量表达式1〉:〈语句1〉

case 〈常量表达式2〉:〈语句2〉

case 〈常量表达式n〉:〈语句n〉

default:〈语句n+1〉

}

;可同时省略

switch语句的执行过程是:首先计算switch后面圆括号内表达式的值,若此值等于某个case后面的常量表达式的值,则转向该case后面的语句去执行;若表达式的值不等于任何case后面的常量表达式的值,则转向default后面的语句去执行,如果没有default部分,则将不执行switch语句中的任何语句,而直接转到switch语句后面的语句去执行。说明:

(1)switch后面圆括号内的表达式的值和case后面的常量表达式的值,都必须是整型的或字符型的,不允许是浮点型的。

(2)同一个switch语句中 的所有case后面的常量表达式的值都必须互不相同。

(3)switch语句中的case和default的出现次序是任意的,也就是说default也可以位于case的前面,且case的次序也不要求按常量表达式的大小顺序排列。

(4)由于switch语句中的“case常量表达式”部分只起标号的作用,而不进行条件判断,所以,在执行完某个case后的语句后,将自动转到该语句后面的语句去执行,直到遇到switch语句的右花括号或“break”语句为此,而不再进行条件判断。

所以在执行完一个case分支后,一般应跳出switch语句,转到下一条语句执行,这样可在一个case的结束后,下一个case开始前,插入一个break语句,一但执行到braek语句,将立即跳出switch语句,如: 如: Switch(n){

case 1:

x=1;

case 2:

x=2;} 当n=1时,将连续执行下面两个语句 : X=1;X=2;如: Switch(n){ case 1;

x=1;Braek;Case 2;X=2 Braek }(5)每个case的后面即可以是一个句号,也可以是多个语句,当是多个语句的时候,也不需要用花括号括起来。(6)多个case的后面可以共用一组执行语句,如: Switch(n);{

Case 1:

Case 2:

x=10;

braet

} 它表示当n=1或n=2时,都执行下列两个语句: X=10;Braek;

例4.5 从键盘输入一个月份(1~12),并显示该月份的英文名称

#include”stdio.h” Main(){ int month;scanf(“%d”,&month);switch(month){ case 1:printf(“January”);

braek;case 2:printf(“February”);

braek;case 3:printf(“March”);

braek;case 4:printf(“April”);

braek;case 5:printf(“May”);

braek;case 6:printf(“June”);

braek;case 7:printf(“July”);

braek;case 8:printf(“August”);

braek;case 9:printf(“September”);

braek;case 10:printf(“October”);

braek;case 11:printf(“November”);

braek;case 12:printf(“Decmeber”);

braek;Default:printf(“Data Error!”);Break;} }

4.4 应用举例

例4.6 输入一个数值,求出它的平方根,若为负数时,求出它的复数平方根。#include “stdio.h” #include “math.h” main(){ int n;float root;printf(“enter a number:t”);scanf(“%d”,&n);if(n>=0);{ root=sqrt(n);printf(“sqrt(%d)=%f”,n,root);} else { root=sqrt(abs(n));

printf(“sqrt(%d)=%fi”,n,root);} }

例4.7求两个数中最小值。#include “stdio.h” main(){int x,y,min;printf(“enter two integers:n”);acanf(“%d,%d,&x,&y);min=x

例4.8 从键盘输入一个操作符并进行相应和操作。#include “stdio.h” main(){ int x=10,y=5,z;char op;scanf(“%c”,&op);switch(op){

case ’+’:z=x+y;braek;

case ’-’:z=x-y;braek;

case ’*’:z=x*y;braek;

case ’/’:z=x/y;braek;

default :printf(“Operater Error!”);} printf(%d%c%d=%d”,x,op,y,z);} 例4.9 输入三个数,按由小到大的顺序输出。#include “stdio.h” main(){ int a,b,c,temp;printf(“enter three integers:t”);scanf(“%d,%d,%d”,&a,&b.&c);if(a>c){temp=a;a=b;b=temp;} If(a>c){temp=a;a=c;c=temp;} if(b>c){temp=b;b=c;c=temp;} printf(“%d<%d,%d”,a,b,c);}

第六讲 循环控制 5.1 goto语句 5.2 while循环语句 5.3 do-while循环语句 5.4 for循环语句 5.2 while循环语句

用while语句来实现“当型”循环结构。格式:while(表达式)

〈语句〉

/*循环体部分*/ 功能:当表达式的值为非0时,执行while语句中的循环体。结构流程图如图所示。说明:

(1)循环体如果包含一个以上语句,应该用花括弧括起来,以复合语句的形式出现,否则while语句范围只到while后面第一个分号处。(2)在循环体中应有使循环趋向于结束的语句,即设置修改循环条件的语句。

(3)while语句的特点是先判断表达式的值,然后执行循环体中的语句,如果表达式的值一开始为假(值为0),退出循环,并转入下一语句去执行。

例5.2 求s=1+2+3+„100的值。结构流程图如右图。main(){ int i,s=0;i=1;While(i<=100);{s=s+1;i++;} printf(“s=%d”,s);} 运行结果 s=5050 5.3 do-while循环语句

do-while循环语句,用来实现“直到型”循环结构。格式:do

<语句>

while(表达式)功能:先执行〈语句〉,后判断表达式的值。它的执行过程是:先执行一次指定的语句,然后判断表达式的值,当表达式的值为非零(”真“)时,返回重新执行该语句,如此反复,直到表达式的值等于0为此止,此时循环结束。0(假)说明:

(1)用while语句和用do-while语句处理同一问题时,若二者的循环体部分一样,其结果也一样。但在while后面的表达式一开始就为假(0值)时,两种循环的结果是不同的。

(2)如果do-while语句的循环体部分是多个语句组成的话,则必须用左右花括号括起来,使其形成复合语句。

篇3:小学生c教学教案

21世纪最重要的是人才, 人才最重要的是要有思维, 思维是在表象、概念的基础上进行分析、综合、判断、推理等认识活动的过程, 它是人类在社会实践中产生的特有的一种精神活动。通常, 只有具备较高的思维能力的人才有可能在事业上有所成就[1]。大学生是21世纪重要的建设者, 在我国从人力资源大国迈向人力资源强国的过程中, 唯有正向思维的人, 唯有善于分析问题、解决问题的人, 才能成就大业, 并对祖国做出更大的贡献。可以肯定的说, 在现代社会, 良好的思维无论是对大学生个体的成长还是对中国的发展都有非常重要的作用。

大学生通过学习C语言, 可以逐步培养分析与综合、分类与比较、抽象与概括、归纳与演绎等逻辑思维能力, 可以逐步培养分析问题和解决问题的能力以及初步征服自然界的能力。可以这么认为, C语言学习过程其实就是快速培养逻辑思维能力的过程, 对理工科学生而言, 学好了C语言, 再学其他应用课程相对就比较容易了, 对文科生而言, 大学学好C语言, 个人的思维就会得到拓展, 个人分析问题、解决问题的能力就会得到较大提升。因此, 从某种程度上而言, C语言是21世纪想具备良好思维的大学生必修课程之一。

然而, 如此好的课程目前在大学的开课效果却并不理想, 甚至有理工科学生发出"C语言难, 难于上青天"的感慨, 更有为数不少的大学生考前"死背程序", 造成"哑巴英语式"学习C语言的尴尬现状 (会看简单程序, 但基本一点都不会写程序) 。以下是笔者在教学一线所了解到的C语言教学存在的一些问题, 以及笔者在上这门课时所积累的一些经验和体会。

2、当前C语言教学面临的问题

首先, 大多数授课教师授课方式仍较为保守, 基本仍按传统模式进行授课, 授课过程过于重视语法细节, 而未从更高的宏观层面同学生讲清楚C语言学习与逻辑思维培养的关系, 同学生讲清楚C语言中各个概念出现的背景以及出现后能解决的问题, 造成大多数同学不知道为什么学C语言, 学习C语言提不起动力, 好像学习C语言只是为了应付期末考试, 造成大多数同学不知道C语言中为什么要有不同的数据类型、为什么要出现指针、数组、结构体、文件等, 只是一味的抱怨这些东西的深奥难懂, 而未能深入体会应用这些东西所带来的解决问题的简洁与奇妙。

其次, 当前的C语言教学仍过于重视理论教学, 实践教学较少, 造成学生"知行脱节", 学生无法独立写程序, 众所周之, C语言的逻辑是很严谨的, 多或少一个符号都不行, 更不用说其它的语法细节, 而初学者又不可避免的会犯各种低级错误, 如格式化输入时, 变量前少加了取地址符号&等, 这种低级错误, 唯有不断的通过实践, 唯有不断地通过老师指点, 才有可能通过"入门关"。反之, 如果这种低级错误老师没有给予及时指正, 按学生当时的水平, 估计很难调出正确结果, 这就会严重挫伤学生学习C语言的积极性, 甚至导致一个很有潜质的青年学生因此而泯灭了上进之心, 这是件很令人惋惜的事情。

3、系统切实加强C语言教学的几点探索

3.1 苦口婆心激斗志

现在的大学生的主流是积极向上的, 众多大学生都有学好的愿望, 都有追求成功和实现自我价值的需要。因此, 笔者在第一堂课时就引导学生探讨"为什么要读大学"、"为什么要学习C语言"、"21世纪走上社会要想成功的要素是什么"等话题, 通过探讨, 让学生明白学习C语言, 不仅仅是为了程序设计, 更关键的是在于培养逻辑思维能力和分析问题解决问题的能力, 而这种能力, 决定了学生在竞争日益激烈的社会中能否出人头地。因为学生无论是参加公务员考试, 还是求职面试, 还是学生今后走上社会后进行自主创业, 逻辑思维能力和分析问题解决问题的能力都必不可少。通过探讨, 让学生从心底深处明白了这门课的重要性, 就能以较高的斗志投身到这门课程的学习中, 而且在学习过程中遇到挫折时也不会轻易放弃, 而是把它当做培养思维的一次良好机会。"心态决定状态", 受激发的学生所变现出来的个体的强烈的求知欲与上进心是学生学好C语言的"法宝"。

3.2 手把手教引入门

俗话说"师傅领进门, 修行靠个人", 毋需置疑, C语言在入门阶段是有一定难度的, 而作为授课老师的关键就是要让学生打好基础, 顺利"引导入门"。能否让学生顺利通过C语言学习这个"入门关", 关键是要加强实践教育。笔者认为, 有条件的学校, 应全程机房授课, 让学生从"做中学", 授课教师每讲一个重要的知识点, 要能现场写一个程序来说明, 写程序的过程还要重视思维的引导和互动, 让老师和学生思路上一起参与来写, 教师写完程序后, 学生恍然大悟"哦, 原来这个原理就这样", 一下子就消除了对程序的陌生感及恐惧感。课堂上, 单单老师写还不够, 教师写好后应趁热打铁, 引导学生现场模仿老师的程序用自己的思路也独立写一遍, 千万不要认为这是浪费时间, 其实, 有认真带实验的老师都知道, 学生写一遍后会出现许多我们始料不及的错误, 这时教师应现场巡视一遍, 和学生一起调程序, 调好程序后再把共性的问题拿出来探讨, 探讨后在继续下一个知识点的讲授, 如此教学, 刚开始的时候教师会比较累, 但一但学生过了"入门关", 教师后续授课就比较轻松了, 可谓"磨刀不误砍柴工"。如果授课教师有一定的功底, 建议可以用屏幕录像专家把上课的屏幕录下来, 课后把录像、现场演示的源程序等一起拷贝给同学, 让基础较差或上课仍消化不全的同学, 课后还可继续巩固学习, 经笔试尝试, 这个方法非常有效。

3.3 授课过程重启发

C语言教学的核心任务其实是要能培养学生良好的思维, 因此授课过程中要能不断激发学生对本质问题的认识, 所谓"思源于疑", 授课过程中不妨多探讨几个为什么, 其实本质的东西大体都是比较简单的, 而本质的道理搞明白了, 使用起C语言来就比较容易了, 千万不要为了教学而教学。比如授课过程中学生对数据类型弄不大清楚, 笔者就激发他们思考为什么要有这么多的数据类型, 难道都用int或double型就不行吗?而后笔者比喻, 假如只有一吨的货物用载货10吨的卡车来运行不行, 当然行, 但会产生什么问题?资源浪费嘛!这可是节约型社会, 我们要强调节约, 够用就行, 通过如此比喻再引入数据在内存中的分配, 学生就很容易明白了。再比如学生对指针变量搞不明白, 笔者就引导他, 顾名思义, 指针变量首先是变量, 就如同信箱能放信件一样, 但它放的是地址, 就如同信箱里本来要放邮件, 但它放的是一个纸条, 告诉某某信箱里存有某某邮件一样, 通过如此类比, 学生就好理解的多了。其他的如输入输出、数组、结构体、文件等等, 教师授课过程中都可以引导学生思考为什么要有这些定义, 再探讨如何使用就简单多了。"所谓不仅要让学生知道怎么用, 还要让其明白为什么要这样用", 道理讲明白了, 使用就简单了。

3.4 强化阶段重实践

C语言编程, 其实是个技能活, "孰能生巧", 没有写过一定量的程序, 肯定是写不好程序的, 就如同开车, 没开个几千公里, 开车水平肯定是有限的。因此, 当学生初步入门后, 要引导学生多写程序, 有人说, "没写过10万行的程序不叫会写程序"。从人性的弱点来看, "人都是有惰性的", 没有一定条件的激发, 大多数学生是不大可能长期坚持写程序的。在实践过程中, 笔者发现, 鼓励学生报考教育部考试中心组织的全国计算机等级考试, 是一个有效的激发方案, 该考试全国统考, 含金量较高, 该考试分理论和技能两门考试, 理论部分还有30分的公共基础题, 正常学生如果能通过这个考试, 那么C语言入门应该是没有问题的。南开大学出版社出版了与此配套的全国计算机等级考试历届上机真题详解 (有配套模拟盘) , 共100套题, 每套题里含填空题、改错题和编程题各一道, 配套的模拟盘是个非常好的学生强化实践材料, 俗话说"熟读唐诗三百首, 不会作诗也会吟", 经笔者实践, 学生如果能深入掌握这300道题的编程技巧, 那么基本运用C语言是没有问题的。

4、结语

通过苦口婆心激斗志、手把手教引入门、授课过程重启发、强化阶段重实践等方面入手切实加强大学生C语言教学, 从而去大力培养学生的逻辑思维能力、分析能力和解决问题的能力, 这就让《C语言程序设计》这么课程有了更深的内涵与意义, 无论学生将来从事什么工作, 通过学习C语言教学而形成的严谨思维及分析问题、解决问题的能力, 都将使学生受益终生。

摘要:从C语言教学现状出发, 提出从苦口婆心激斗志、手把手教引入门、授课过程重启发、强化阶段重实践等方面入手切实加强大学生C语言教学, 从而有效提升大学生逻辑思维、分析问题和解决问题的能力, 为我国现代化建设提供更多具有良好思维的人才。

关键词:C语言,大学生,思维

参考文献

篇4:职业技校学生的C语言教学探究

关键词:C语言程序 教学方法 职业技校学生

时代的飞速发展促使我国科技力量不断同步提升。计算机技术的普及及向其他学科的快速渗透让计算机知识的重要性日益凸显。职业技校的计算机专业学生将来想要有很好的就业渠道和就业选择,就必须对计算机工作原理有正确的理解,同时需具备熟练操作和使用的能力。

C语言程序设计作为计算机专业课程中的基础内容,可以说是一名计算机从业者的必备基本技能,属于进行计算机软件开发所用的入门语言,为后续的其他计算机专业课程的学习打下坚实基础,将计算机解决实际问题由可能变成了现实。

经过该课程的多年教学,笔者发现虽然C语言属于概念简单、类型丰富、表达能力强的短小精悍型计算机程序设计语言,但因为它的灵活性和多样性,学生掌握的情况皆不太理想,当然这和学生自身情况也有密不可分的关系。如何将这门基础课程讲好,让学生在学习的过程中主动提高自学能力和应用能力,让枯燥的理论知识变得实用好理解,下面就谈谈笔者的一些感悟与探究。

一、实际教学中存在的问题

1.学生的计算机水平参差不齐

职业技校学生的招生范围比较广泛,对于计算机的掌握水平也是参差不齐,有的学生甚至都没有接触过计算机。此外,部分学生的数学功底薄弱,逻辑分析能力不强,在学习的过程中又缺乏积极性和主动性。这给后续的教学带来了很大的困难。

巨大的水平差异使得在教学过程中,有点基础的学生满足于一知半解,掌握了书本上的基本概念或是常见例题就自我满足,学习的内容不踏实稳固,独立解题时就会错误百出;而基础较差的学生跟不上普通教学进度,日积月累问题增多,丧失了学习的信心,失去了学习热情。

2.教师的课堂教学方式单一

课堂教学是目前主要的教学手段,通过增加了多媒体演示等方式来帮助学生更快更好地掌握C语言的实际应用,但若仅仅依靠课堂例题的讲解和示范操作,忽视基础语法等知识点的重要性,同样会出现很多问题。对于很多刚刚接触编程语言的学生来讲,最大的问题就是觉得入门难,上课按照老师的讲解依样画葫芦可以听懂学会,但是课后一旦遇到新的程序就又不理解程序的实际功能了,如果要用程序来实际解决问题就更加有难度,根本不知道如何下手也没有具体的思路,从而产生了畏惧感。

如若过重地强调语法细节,大量在课堂讲解基础理论知识,甚至以计算机考级真题和模拟题作为讲解和练习的重点,又会使得课程的实用性大大降低,学生也会感觉到枯燥无味,丧失学习兴趣。长此以往,学生们仅仅注重了语法的学习,没有真正领悟程序语言设计的基本思想和方法,更不可能独立编写出有实用价值的程序。

3.上机实践的局限性

作为一门计算机课程,C语言课程的学习必不可少的就是学生上机操作训练。该过程既需要学生掌握概念,又需要动手操作,还需要调试运行出结果。但目前学生在实际上机时,往往对布置的任务敷衍了事,有的甚至直接抄袭其他学生的程序。同时,上机操作的指导老师往往只有一位,而学生编写程序的方法却不会相同,于是出现的问题既有共性的也有个性的。这样就导致不能及时解答每位学生的问题,使部分学生的程序不能继续调试,白白浪费课堂上宝贵的上机实践时间。

二、问题解决方案探究

1.激发和培养学生的学习兴趣

任何学科的学习与学生的学习兴趣是息息相关的,C语言的学习也不例外。针对目前职业技校学生没有过多接触过计算机语言,其他基础知识比较欠缺,本课程的理论知识枯燥深奥的特点,不仅仅要采取多媒体演示的方案进行教学,还要穿插一些既具有趣味性又具有实用性的程序进行讲解展示,例如“猴子吃桃”“鸡兔同笼”“水仙花数”等问题,吸引学生的注意力,通过简单模仿和后期深入练习,体验到编程后的成就感,促使学生激发起自身学习的动力。

2.合理设置教学目标,调整教学方式

教师在课前要对学生进行充分的熟悉和了解,针对学生的实际情况和教学大纲的要求,合理设置教学目标,调整教学方式。

在实际教学中笔者发现,学生对于基本的概念理解记忆往往没有在实际应用中发现问题后强调概念的重要性效果好。于是在平时的课堂教学中,笔者往往弱化基本格式的死记硬背,强化各种形式的实际应用,选择性地挑选例题讲解,将原本晦涩难懂的语法知识通过例题引出,让学生更快地掌握程序编写的实际应用,培养解题的正确思维模式,让教学效果变得既有广度又有深度。

学生在实际解题操作时,特别是遇到条件语句、循环语句和数组这部分有难度的内容时,容易产生畏难情绪。这就要求教师合理设置教学目标,设置一些难度适宜的分解目标,深入浅出,缩小问题台阶,让学生有能力逐步解决问题,激发学生自己动脑筋想方法,从而达到掌握教学重难点的要求。要知道学校中编程语言的学习只是一个基础,学好C语言是程序设计的一个良好开端,切忌设计好高骛远的目标,让学生永远失去了继续主动学习的热情。

教学过程中,不光采用多媒体演示的方法,还可以采用其他多种手段促进学生对内容理解。例如在讲解交换两个数的位置的教学过程中,笔者引入了现场模拟,课堂上携带了一杯可乐、一杯雪碧和一个空杯,让同学现场表演,要交换就必须将其中一种饮料腾入到另一个空杯中,即需要增加的另一个变量,这样另一种饮料才能换到前面的饮料杯中,然后腾出来的饮料倒入另一个饮料的杯子,从而实现了交换操作。在教学中引入了现场模拟,使学生更容易对这些抽象的内容加深理解,更重要的是碰到类似的问题他们会触类旁通,从而慢慢培养出编程的兴趣。

3.教学形式多样,注重团队精神

由于职业院校学生的基础薄弱,学习自制力较差,上课易走神分心,甚至有的会开小差,利用上机实践的机会玩电脑游戏,大大影响了课堂的教学效果。学生的学习能力也有高低,要完成相同的学习任务就会出现时间和掌握程度上的差异。

在实际教学中,笔者会根据各个学生不同的情况进行分组,让每组学生的综合水平基本持平,将能力较强的学生设为组长,通过任务布置和团队分工的合理安排,让每个学生都在课堂上积极行动起来,并且在相互讨论和分析优劣利弊中取长补短,起到了提优补差的效果,培养了学生的团队协作能力,这在今后计算机编程的工作中也是十分重要的能力。

4.改革考核方式,优化评价机制

C语言的学习内容和其他课程有些异同,不能片面强调考试试卷答题的正确率。在平时教学中,笔者以考核为手段,重在激励和鼓舞学生将知识内容掌握牢固。平时的每次上机实践都是一次考核,配套的实验报告中必须要包含流程图、调试过程和问题分析,在规定时间内完成后根据质量评分,计入最后的学期成绩评分,这样使每位学生对每次上机实践课程都非常重视,最大限度地激励学生的学习潜能。

C语言的教学重点是培养学生分析问题与解决问题的能力,而这种能力的培养是与学生的刻苦学习分不开的。如何通过这门课的教学来提高职业技校学生分析问题、解决问题的能力和编程的能力,让其具备更强的就业能力,还需要进行不断的探讨和实践。笔者会在今后的教学过程中细心观察,不断地去探索研究,不断丰富教学经验,找到一条能获得理想教学效果的途径,为中职教育事业贡献一份力量。

篇5:小学生c教学教案

一、导语:有一句话说得好:

父母的恩情似海深。父母给予了我生命,给予了我生活,给予了我无微不至的爱,我应该感恩父母。所以,今天我们活动的主题是——感恩父母

二、母亲节是哪天? 每年5月的第二个星期日

三、父亲节是哪天? 每年6月的第三个星期日

四、小结升华:

中华文明古国,感恩父母千古流传,古话说得好:

“百行孝为先。” 1.“孝”是什么意思?

“孝”就是:我们怀着一颗感恩的心来对待父母,以实际行动来为父母分担些忧愁,增加些快乐。

2.小结 也就是说,感恩并不一定是那惊天动地的壮举,感恩的行动也可隐藏于小事之中。今天老师讲一个故事给你们听。

五、讲故事

小故事 :

剥桔子

过年了,我和爸妈到亲朋好友家串串门,坐坐,聊聊。一次,我们在一个朋友家中玩。坐在沙发上时,我随意地拿起了茶几上果盘中的桔子。那桔子亮澄澄的,鲜艳的色泽令我三下五除二便剥掉了它的皮。不知想起了什么,我呆了一呆,接着便将剥好的桔子一分为二,一半递给了母亲,一半递给了父亲。没有过多的言语,可是母亲却高兴得立即绽放出如花的笑靥。而父亲则开心地大声说:“谢谢!我女儿剥桔子给我吃了!”望着爸妈那令我难以置信的幸福模样,我突然发现:原来父母是那么容易感到满足,原来我做的还是那么的少。

以后,在平凡的生活中,我要做一些小事感恩父母,让父母笑口常开!比如:做完作业后,我可以顺便扫一扫地呀;吃完饭后,我可以洗碗呀;父母看报时,我可以为他们倒一杯热茶递过去呀……

六、联系实际谈感想。

1.以前,你有感恩行动吗?说说你的故事。2.以后,你准备怎样感恩父母?

篇6:小学生c教学教案

文 章来 源

..m stle=ARGIN: 0m 0m 0pt;TEXT-ALIGN: left align=left>《z s》教学设计三

一、教材分析

本包括4部分内容。第一部分是三个声母z、、s和三个整体认读音节zi、i、si及他们的四声,并配有三幅提示音形的图画。第二部分是声母z、、s和单韵母a、e、u的拼音练习以及三拼音练习。第三部分是z、、s的书写范例。第四部分是复习巩固,包括两大块内容。第一块内容是一张全家人在劳动的画,以及三个标有拼音的词语。第二块内容是一首标有拼音的儿童诗。诗歌中有许多三拼音,如”qiá、suàn、liǎ、xiǎng、uài”有一定难度。教师可充分利用小组合作的优势,鼓励孩子们之间互相帮助,如小组内还有困难,可让小组之间互相帮助,这样不仅可以让孩子感受到学以致用的快乐,还能培养他们的合作意识。正确认读整体认读音节zi、i、si是本教学的重点,声母z、、s和整体认读音节zi、i、si发音时的区别和三拼音是本教学的难点。

二、预设目标:

能正确认读、书写声母z、、s。

能正确认读整体认读音节zi、i、si及其四声。能正确拼读z、、s与其他韵母组成的音节。

能熟练地拼读儿歌,并正确认读”做、过、了、不、乐”个生字。

三、教学时间: 2时

四、前准备: 拼音卡片、第一时

教学要求 能正确认读、书写声母z、、s。能正确认读整体认读音节zi、i、si及其四声。

教学过程

(一)复习旧知

认读韵母a e i u及其四声。

(二)学习新教学“zi”

(1)出示图片,小姑娘在干什么?(小姑娘在黑板上写字。)

(2)用粉笔写的字叫(生:粉笔字)。用钢笔写的字叫(生:钢笔字)。用铅笔写的字叫(生:铅笔字)。用毛笔写的字叫(生:毛笔字)。你会写哪种字?

(3)字的拼音就是”zì”(出示)试读,引导观察形:像小姑娘写的字,加上ì。去掉小帽子,谁会读?(正音)

(4)练读四声。

()儿歌巩固:老鼠出洞,zī zī zī。我爱紫色,zǐ zǐ zǐ。我会写字,zì zì zì。

教学“i”

(1)出示图片,图上画的是什么动物?(小刺猬)

(2)为什么叫它刺猬?(身上有刺)

(3)还有哪些动物身上也有刺?(豪猪……)植物呢?(茄子、黄瓜、月季、玫瑰……)

(4)刺的拼音就是”ì”,引导记形。去声调认读”i”,正音。

()练读四声。

教学“si”

(1)出示图,蚕宝宝在干什么?(吐丝)

(2)谁还能给丝组个词?(头发丝、钢丝、铁丝、萝卜丝……)

(3)丝的拼音就是”sī”,引导记形。去声调认读”si”,正音。

(4)练读四声。

(三)巩固练习

快速认读整体认读音节:zi、i、si。

(四)比较认读

出示zi—z i— si—s

师带读。说说每对拼音有什么相同、不同的地方?(明确前面的都是整体认读音节,后面都是声母,发音相似,但声母的发音要更轻、更短一些。)打乱顺序认读。

(五)书写练习

师范写,生书空。(强调z、、s都是小个子,都住在二楼,都是一笔写成的。)

生在书上临摹,速度快的在范字旁可多写几个。教师提醒学生写字要注意保持正确姿势。交流展览。

第二时

教学要求

能正确拼读z、、s与其他韵母组成的音节。

能熟练地拼读儿歌,并正确认读”做、过、了、不、乐”个生字。

教学过程

(一)猜谜巩固

猜谜:像个2字(打一声母)。半个8字(打一声母)。4 半个圆圈(打一声母)。组内(举拼音卡片)比赛

(二)复习认读

卡片认读zi、i、si、z、、s。

(三)拼读练习

出示:za ze zu

(1)学生试读。

(2)指名拼读。

(3)小老师领读。(4)各种方式练读。

同样方法学习a e u sa se su。比较认读:za—a—sa ze—e—se zu—u—su

三拼音练习出示”zu u su”。

(1)回忆三拼音的拼法:可先把后面两个音拼起来,再和声母相拼。或快速连读三个音进行拼读。

(2)学生试读。

(3)小老师领读。

(4)各种形式巩固读。

(四)巩固练习出示图:

(1)请学生仔细观察图,小组合作并将带有拼音的卡片贴到适当的位置。bà bà:(tuō dì)mā mā:(ā bō li)xiǎ míng:(zuò hè ǎ)

(2)集体拼读。

出示儿歌

(1)自己试着拼拼读读,将有困难的拼音用铅笔在书上做上记号。

(2)小组合作互相请教不会读的拼音。如仍有困难可将拼音写到黑板上。

(3)共同解决黑板上的拼音,并各种形式进行拼读训练。

(预设:suàn xiǎng uài liǎ qiá)

(4)小组成员再次合作,用喜欢的方式练读儿歌,也可背出来。

()汇报表演。

(6)齐读儿歌。

(7)出示生字:做过了不乐

(8)回想它们读什么,想不起来的的可以去找找它们的拼音。

(生可能会提出:”了”和”一”有不同的发音,教师随机渗透多音字教育,但不强求人人掌握。)

(9)认读生字。

〖感谢您浏览!请输入题关键字搜索更多资料!本站网址是..m】

文 章来 源

上一篇:艾瑞咨询:09Q3中国网络广告市场规模再创新高 品牌图形市场份额止跌企稳网络广告下一篇:未来的地球小学作文400字