怎样通过p1将php 数组添加元素元素5改写成11

1079人阅读
C语言学习(9)
数组与指针
1.定义指向数组元素的指针变量:
把a[0]元素的地址赋给指针变量p。也就是使p指向a数组的第0个元素。
C语言规定,数组名代表该数组中首元素的地址。因此,下面两个语句等价:
在定义指针变量时可以对它赋予初值:例:
int* p = &a[0];
它等效于下面两句:
也可以在定义时写成:
int* p = (将a数组首元素阿地址赋值给指针变量p)
2. C语言规定: 如果指针变量已指向数组中的一个元素,则指针变量+1指向同一数组中的下一个元素,而不是将p的值(地址)简单的+1例如:
voidmain() {
inta[] = {1,2,3,4,5,6};
printf(&%d\n&, *p1);
p1= p1 + 1; /*也可以写成:p1= a + 1;*/
printf(&%d\n&,*p1);
如果p1的初值为&a[0],则:
a)p1 + i或者a+ i,就是a[i]的地址。
b)*(p+i)或*(a+i)表示p+i或a+i所指向的数组元素,即a[i]。
3.引用一个数组元素:
a)下标法,如a[i]形式
b)指针法,如*(a+i)或*(p+i)。其中a是数组名,p是指向数组元素的指针变量。
4.用3中方法输出数组中的全部元素。
b) *(p+i)方式
voidmain() {
inta[] = {0,1,2,3,4,5,6,7,8,9};
for(i= 0; i & 10; i++) {
printf(&%d&,*(p+i));
voidmain() {
inta[] = {0,1,2,3,4,5,6,7,8,9};
for(p= p & (a+10); p++) {
printf(&%d&,*p);
5.使用指针变量指向数组元素时,需要注意:
a)可以通过改变指针变量的值指向不同的元素。例如,上面3种遍历数组方法中的第三种c)*
p方式就是用指针变量p来指向元素,用p++使p的值不断改变从而指向不同的元素。如果不用p而使数组名a变化是不行的。例如:
for(p= a & (p + 10); a++) {
printf(“%d”,*a);
因为数组名a代表数组首元素的地址,是一个指针常量,它的值在程序运行期间是不变的。因此a++无法实现。
b)要注意指针变量的当前值。
c)在定义数组时,虽然指定了数组的长度,但是实际上指针变量可以指向数组长度后面的元素,例如:
voidmain() {
inta[] = {0,1,2,3,4,5,6,7,8,9};
printf(&%d&,*(p + 10)); /*指向数组的第11个元素,但是a数组只有10个元素*/
编译运行并不出错,输出:-
应该避免出现这样的情况。在使用指针变量指向数组元素时,应该保证指针指向数组中有效的元素。
d)注意指针变量的运算。 如果p指向数组a的首元素(p=
1)p++ (或p+=1).使p指向下一个元素,即a[1]。若再执行*p,则得到下一个元素a[1]的值。
2)* p ++,由于++和*同优先级,所以结合方向自右而左,因此它等价于*(p++)。作用是先输出*p的值,然后再p+1,例如:
voidmain() {
inta[] = {0,1,2,3,4,5,6,7,8,9};
printf(&%d&,*p++);
voidmain() {
inta[] = {0,1,2,3,4,5,6,7,8,9};
printf(&%d&,*++p);
3)*p++和*++p作用不同。前者是先取得*p的值,再加1,后者是先加1,再取得*p的值。如果p初值为a(即p=&a[0]),则*p++为a[0],*++p为a[1]。
6.当用数组名作为参数时,如果形参数组中各元素的值发生变化,实参数组元素的值也会改变。
7.实参数组名代表该数组的首元素。而形参用来接受从实参传递过来的首元素地址。因此,形参一个是一个指针变量(只有指针变量才能存放地址)。实际上C编译都是将形参数组名作为指针变量来处理的。例如:
swap(intarr[],int n)
在编译时将arr作为指针变量处理,相当于:
swap(int* arr,int n)
8.多维数组与指针
a)多维数组元素的地址
int a[][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
从二维数组的角度看,a代表二维数组首元素的地址,现在首元素是一个由4个整形元素的组成的一维数组,因此a代表的是第0行的首地址。a+1代表第1行首地址,a+1的含义是a[1]的地址。
a[0],a[1],a[2]是一维数组名,在C语言中规定数组名代表数组首元素地址,因此a[0]代表一维数组a[0]中第0列元素的地址,即&a[0][0]。a[1]的值是&a[1][0],a[2]的值是&a[2][0]。
a[0]为一维数组,应该用a[0]+1来表示0行1列元素的地址。正如有一个一维数组x,x+1是其第一个元素x[1]的地址一样。a[0]+0,a[0]+a分别是a[0][0]和a[0][a]元素的地址。
a[0]和*(a+0)等价(因为a是一个二维数组,所以*(a+0)内容是一个一维数组的地址),a[1]和*(a+1)等价,a[i]和*(a+i)等价。因此a[0]+1,和*(a+0)+1都是&a[0][1]。a[1][2]和*(a+1)+2的值都是&a[1][2]。
既然a[0]+1和*(a+0)+1是a[0][1]的地址,那么*(a[0]+1)就是a[0][1]的值了。同理*(*(a+0)+1)或者*(*a+1)也是a[0][1]的值。
对a[i]的性质作进一步说明:a[i]从形式上看是a数组中的第i个元素。
如果a是一维数组名,则a[i]代表a数组序列号为i的元素所占内存的内容。a[i]是有物理地址的,是占内存的。
但是如果a是二维数组名,则a[i]代表一维数组名。它只是一个地址,并不代表某一元素的值(如同一维数组名只是一个指针)。a,a+i,a[i],*(a+i),*(a+i)+j,a[i]+j都是地址。而*(a[i]+j)或者*(*(a+i)+j)是二维数组元素a[i][j]的值。
9.例,输出二维数组有关的值。
#include&stdio.h&
#defineFORMAT &%d,%d \n&
voidmain() {
inta[][3] = {{1,2,3},{4,5,6},{7,8,9}};
printf(FORMAT,a,*a);//0行首地址和0行0列元素地址
printf(FORMAT,a[0],*(a+0));//0行0列元素地址
printf(FORMAT,&a[0],&a[0][0]);//0行首地址和0行0列元素地址
printf(FORMAT,a[1],a+1);//1行0列元素地址和1行首地址
printf(FORMAT,&a[1][0],*(a+1)+0);//1行0列元素地址
printf(FORMAT,a[2],*(a+2));//2行0列元素地址
printf(FORMAT,&a[2],a+2);//2行首地址
printf(FORMAT,a[1][0],*(*(a+1)+0));//1行0列元素的值
9.用指针变量输出二维数组元素的值
#include&stdio.h&
void main() {
int a[][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,11}};
for(p= a[0]; p & a[0] + 12; p++) {
if((p- a[0]) % 4 == 0) {
printf(&\n&);
printf(&%4d&,*p);
printf(&\n&);
10.如果要输出某个指定的数值元素(例如a[1][2]),则应事先计算该元素在数组中的相对位置(即相对于数组起始位置的相对位移量)。计算a[i][j]在数组中的相对位置的计算公式为:
i* m + j
其中m为二维元素的列数。例如,3x4的二维数组,它的2行3列元素a[2][3]对a[0][0]的相对位移量为2*4+3=11字节。如果开始时使用指针变量p指向a[0][0],为了得到a[2][3]的值,可以用*(p+2*4+3)表示,(p+11)是a[2][3]的地址。a[i][j]的地址为&a[0][0]+i*m+j。
例子:输出二维数组任意一行任意一列元素的值。
#include&stdio.h&
void main() {
int a [][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,11}};
int num1,num2;
int (*p)[4];
printf(&%d\n&,*(*(p+num1)+num2));
int(*p)[4];
表示p是一个指针变量,指向包含4个整形元素的一维数组。
1)int a[4]; a有4个元素,每个元素为整形
2)int (*p)[4]; *p有4个元素,每个元素是整形。p是指向一维数组的指针。
11.用指向数组的指针作函数参数。用指针变量做形参有两种方法:a)用指向变量的指针变量
b)用指向一维数组的指针变量.
例子:有3个学生,4门成绩,计算宗总平均分和第n个学生的成绩。
#include&stdio.h&
voidmain() {
int a [][4] = {{76,76,58,67},{88,79,87,69},{98,78,78,97}};
void average(int * p,int n);
void search(int (*p)[4],int n);
average(a[0],12);
search(a,2);
void average(int * p,int n) {
int sum = 0,
p_end= p + n - 1;
for(;p &= p_ p++) {
sum= sum + (*p);
aver= sum /
printf(&average= %d \n&,aver);
voidsearch(int (*p)[4], int n) {
// p指向一个具有4个元素的一维数组
for(i= 0; i & 4; i++) {
printf(&%d&,*(*(p+n)+i));
printf(&\n&);
average= 79
例子:在上例基础上,找到一门课程不及格的学生,输出他的全部成绩。
#include&stdio.h&
voidmain() {
int a[][4] = {{76,76,58,67},{88,79,87,69},{98,78,78,97}};
void search(int (*p)[4],int n);
search(a,3);
void search(int (*p)[4], int n) {
for(j= 0; j & j++) {
for(i= 0; i & 4; i++) {
if(*(*(p+j)+i)& 60)
if(flag== 1) {
printf(&No:%dstudent \n&,j+1);
for(i= 0; i & 4; i++) {
printf(&%d&,*(*(p+j)+i));
printf(&\n&);
No:1student
文章链接:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:91423次
积分:1056
积分:1056
排名:千里之外
原创:19篇
评论:18条
(6)(4)(2)(2)(4)(4)(3)第五章 VB中的数组
  100mark1mary2mark100mark1
 A1 To 100100A
&&&&&&&&&  (P1P2
&&&&&&&&&&&&
   P1P2
&&&&&&&&&  A32A32
&&&&&&&&&&  
      To
&&       Variant
&&   ReDim
    2-32768327670-+1
1 Dim& A10 As Integer
      A11010
   2 Dim& B-3 To 5 As String*3
      B9-353
&   Dim&
数组名1[2] [As& ]
      2=-+1=
  Dim& C-1 To 5 4 As& Long
    C-15047x 5
  1VBOption
Base n Option
  DimPrivatePublicReDim
数组名1[2] [As& ]
   Dim D As Single
     Sub Form_Load
     ReDim D46
     End Sub
  1ReDim2ReDim3ReDimReDimPreservePreserve
      
 (1)InputBox
      
      
       
       
&   split()\join()
&&  VB6.0 b=a
     2ReDim
     3
  ForNext
  Index0 Text1(0)Text1(1)Text1(2)Text1(3)
      2
      3
  1Index02LoadUnload3Left
TopVisibleTrue
  Type 自定义类型名
     
     & As 类型名
  Type studtype
      No&& As& Integer&&&&& &&'
Name& As& String*10&&&
'   Sex& As& String*2&&&&&&
'   Mark(1 TO 4) As Single&&
' 4Total As Single&&&&&&&&&&
' End Type
  1.basPublic
As& 自定义类型名
As studtype,& mystud
&As studtype
     Mystud=student&&&&& '当前位置: >>
C 语言教案课 课 题 函数的调用 型 新 授 编写时间 2014 年 11 月 3 日 第 51、52 课时 执行时间 总序第 51、52 个教案 2014 年 11 月 3 日 教学目标 函数的声明和使用 教学重点 函数的调用 教学难点 函数的调用 教学用具 多媒体教学函数的调用 一、问题的提出 输出 n 的阶乘值。n 由键盘输入。 main( ) {
float fac(int ); scanf(″%d″,&n); f=fac(n); printf(″%d!=%f\n″,n,f);} float fac(int s) {float fa=1; for(i=1;i&s;i++) fa=fa*i; return(fa); } 二、函数调用的一般形式 函数调用的一般形式为 函数名(实参表列) ; 如果是调用无参函数,则实参表列可以没有,但括弧不能省略,如 printstar( ); 三、函数调用的方式 按函数在程序中出现的位置来分,可以有以下三种函数调用方式: 1. 函数语句。把函数调用作为一个语句。如 printstar() ; 这时不要求函数带回值,只要求函数完成一定的操作。 2.函数表达式。函数出现在一个表达式中,这种表达式称为函数表达 式。这时要求函数带回一个确定的值以参加表达式的运算。例如 c=2*max(a,b) 函数 max 是表达式的一部分,它的值乘 2 再赋给 c。 3、函数参数。函数调用作为一个函数的实参。 例如 m=max(a,max(b,c) ) ; 四、对被调用函数的说明 在一个函数中调用另一函数(即被调用函数)需要具备哪些条件呢? 1.首先被调用的函数必须是已经存在的函数 。执教者雷祥芳 2.如果使用库函数,一般还应该在本文件开头用#include 命令将调用有 关库函数时所用到的信息包含到本文件来。 3.如果使用用户自己定义的函数,而且该函数与调用它的函数(即主调 函数)在同一个文件中,一般还应该在主调函数中对被调用函数的返回值的类型 作说明。这种类型说明的一般形式为 类型标识符 被调用函数的函数名() C 语言规定,在以下几种情况下可以不在调用函数前对被调用函数作类型说 明: 1.如果函数的值(函数的返回值)是整型或字符型,可以不必进行说 明,系统对它们自动按整型说明。 2.如果被调用函数的定义出现在主调函数之前,可以不必加以说明。因为 编译系统已经先知道了已定义的函数类型,会自动处理的。 3.如果已在所有函数定义之前,在文件的开头,在函数的外部说明了函数 类型,则在各个函数中不必对所调用的函数再作类型说明。小 教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操 结 作中的普遍错误. 教 学 本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。 反 思 C 语言教案课 课 题 函数的调用 型 新 授 编写时间 2014 年 11 月 4 日 第 53、54 课时 执行时间 总序第 53、54 个教案 2014 年 11 月 4 日 教学目标 函数的声明和使用 教学重点 函数的嵌套调用 教学难点 函数的递归调用 教学用具 多媒体教学6.5 函数的嵌套调用 例 6.5 函数的嵌套调用。 main( ) a2( ) {a1( ); { a3( ); printf(″\n″); printf(″\n″); } } a3( ) a1( ) { { printf( ″\n″); printf(″\n″); } a2( ); } 运行结果: 33
C 语言不能嵌套定义函数,但可以嵌套调用函数。 6.6 函数的递归调用 例 6.6 用递归方法求 n! float fac (n) { if(n&0) printf(″n&0,data error!″); else if(n==0‖n==1) f=1; else f=fac(n-1)*n; return(f);} main( ) { printf(″input a integer number: ″); scanf(″%d″,&n); y=fac(n);执教者雷祥芳 printf(″%d! =%15.0f″,n,y);} 运行情况如下: input an integer number:10L 10!= 3628800 在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的 递归调用。 例 6.7 有 5 个人坐在一起,问第 5 个人多少岁?他说比第 4 个人大 2 岁。问 第 4 个人年龄,他说比第 3 个人大 2 岁。问第 3 个人,又说比第 2 个人大 2 岁。 问第 2 个人,说比第 1 个人大 2 岁。最后问第 1 个人,他说是 10 岁。请问第 5 个人多大。 age(5)=age(4)+2 age(4)=age(3)+2 age(3)=age(2)+2 age(2)=age(1)+2 age(1)=10 可以用式子表述如下: 10 (n=1) age(n)= age(n-1)+2 (n&1) 可以用一个函数来描述上述递归过程: age(int n) /*求年龄的递归函数*/ { /*c 用作存放函数的返回值的变量*/ if(n= =1) c=10; else c=age(n-1)+2; return(c);} main( ) {printf(″%d″,age(5));} 运行结果如下: 18小 教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操 结 作中的普遍错误. 教 学 本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。 反 思 C 语言教案课 课 题 数组作为函数参数 型 新 授 编写时间 2014 年 11 月 5 日 第 55、56 课时 执行时间 总序第 55、56 个教案 2014 年 11 月 6 日 教学目标 数组元素做实参 教学重点 数组元素做实参 教学难点 数组元素做实参 教学用具 多媒体教学一、数组元素做实参 例 6.8 有两个数组 a、b。各有 10 个元素,将它们对应地逐个相比(即 a[0] 与 b[0]比,a[1]与 b[1]比,??) 。如果 a 数组中的元素大于 b 数组中相应元素的 数目多于 b 数组中元素大于 a 数组中相应元素的数目 (例如, a[i]&b[i]6 次, b[i]&a[i]3 次,其中 i 每次为不同的值, )则认为 a 数组大于 b 数组,并分别统计出两个数组 相应元素大于、等于、小于的次数。 main() {int a[10],b[10],i,n=0,m=0,k=0; printf(″enter array a:\n″); for(i=0;i&10;i++) scanf(″%d″,&a[i]); printf(″\n″); printf(″enter array b:\n″); for(i=0;i&10;i++) scanf(″%d″,&b[i]); printf(″\n″); for(i=0;i&10;i++) {if (large(a[i],b[i])= =1) n=n+1; else if (large (a[i],b[i])= =0) m=m+1; else k=k+1;} printf(″a[i]&b[i]%d times \na[i]=b[i]%d times\na[i]&b[i] %d times\n″,n,m,k ); if(n&k) printf(″array a is large than array b\n″); else if(n&k) printf(″array a is smaller than array b\n″); else printf(″array a is equal to array b\n″);} large(int x,int y) { if(x&y) flag=1; else if(x&y) flag=-1; else flag=0; return(flag);} 运行情况如下: enter array a: 1 3 5 7 9 8 6 4 2 0L enter array b:执教者雷祥芳 5 3 8 9 C1 C3 5 6 0 4L a[i]&b[i] 4 times a[i]=b[i] 1 times a[i]&b[i] 5 times array a is smaller than array b 二、数组名作函数参数 例 6.9 有一个一维数组 score,内放 10 个学生成绩,求平均成绩。 float average(float array[10]) { float aver,sum=array[0]; for(i=1;i&10;i++) sum=sum+array[i]; aver=sum/10; return(aver);} main( ) {float score[10], printf(″input 10 scores:\n″); for(i=0;i&10;i++) scanf(″%f″,&score[i]); printf(″\n″); aver=average(score); printf(″average score is %5.2f″,aver);} 运行情况如下: input 10 scores 100 56 78 98.5 76 87 99 67.5 75 97L average score is 83.40 [说明] 1.用数组名作函数参数,应该在主调函数和被调用函数中分别定义数组, 上例中 array 是形参数组名,score 是实参数组名,分别在其所在函数中定义,不 能只在一方定义。 2.实参数组与形参数组类型应一致,如不一致,结果将出错。 3.实参数组和形参数组大小可以一致也可以不一致,C 编译对形参数组大 小不做检查,只是将实参数组的首地址传给形参数组。 4. 形参数组也可以不指定大小,在定义数组时在数组名后面跟一个空 的方括弧,为了在被调用函数中处理数组元素的需要,可以另设一个参数, 传递数组元素的个数,例 6.9 可以改写为例 6.10 形式。小 教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操 结 作中的普遍错误. 教 学 本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。 反 思C 语言教案课 课 题 局部变量和全局变量 型 新 授 编写时间 第 57、58 课时 2014 年 11 月 10 日 执行时间 总序第 57、58 个教案 2014 年 11 月 10 日 教学目标 局部变量和全局变量的声明和使用 教学重点 局部变量 教学难点 全局变量 教学用具 多媒体教学局部变量 在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是 说只有在本函数内才能使用它们,在此函数以外是不能使用这些变量的。这样得 变量称为“局部变量” 。 说明: 1.主函数 main 中定义的变量也只在主函数中有效,不因为在主函数中定义 而在整个文件或程序中有效。主函数也不能使用其它函数中定义的变量。 2.不同函数中可以使用相同名字的变量,它们代表不同的对象,互不干扰。 3.形式参数也是局部变量。例如 f1 函数中的形参 a,也只在 f1 函数中有效。 其它函数不能调用。 4.在一个函数的内部,可以在复合语句中定义变量,这些变量只在本复合 语句中有效,这种复合语句也可称为“分程序”或“程序块” 。 二、全局变量 在函数内定义的变量是局部变量,而在函数之外定义的变量称为外部变量, 外部变量是全局变量。全局变量可以为本文件中其它函数所共用。它的有效范围 为:从定义变量的位置开始到本源文件的结束。 说明: 1.设全局变量的作用:增加了函数间数据联系的渠道。由于函数的调用只 能带回一个返回值,因此有时可以利用全局变量增加与函数联系的渠道,从函数 得到一个以上的返回值。 有一个一维数组,内放 10 个学生成绩,写一个函数,求出平均分,最高分 和最低分。 float max=0,min=0; /*全局变量*/ float average(float array[ ],int n) /*定义函数,形参为数组*/ { float aver,sum=array[0]; max=min=array[0];执教者雷祥芳 for(i=1;i&n;i++) {if(array[i]&max) max=array[i]; else if(array[i]&min) min=array[i]; sum=sum+array[i]; } aver=sum/n; return(aver);} main( ) {float ave,score[10]; for(i=0;i&10;i++) scanf(″%f″,&score[i]); ave=average(score,10); printf( ″ max = %6.2f\nmin =%6.2f\n″,max,min,ave); } 运行情况如下 99 45 78 97 100 67.5 89 92 66 43L max=100.00 min= 43.00 average= 77.65=%6.2f\naverage小 教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操 结 作中的普遍错误. 教 学 本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。 反 思 C 语言教案课 课 题 局部变量和全局变量 型 新 授 编写时间 第 59、60 课时 2014 年 11 月 10 日 执行时间 总序第 59、60 个教案 2014 年 11 月 11 日 教学目标 局部变量和全局变量的声明和使用 教学重点 局部变量 教学难点 全局变量 教学用具 多媒体教学如果外部变量在文件开头定义,则在整个文件范围内都可以使用该外部变 量,如果不在文件开头定义,按上面规定作用范围只限于定义点到文件终了。如 果在定义点之前的函数想引用该外部变量,则应该在该函数中用关键字 extern 作 “外部变量说明” 。表示该变量在函数的外部定义,在函数内部可以使用它们。 外部变量定义和外部变量说明的区别: (1) 、外部变量的定义只能有一次,它的位置在所有函数之外,而同一文件 中的外部变量的说明可以有多次,它的位置在函数之内(哪个函数要用就在哪个 函数中说明) 。 (2) 、系统根据外部变量的定义(而不是根据外部变量的说明)分配存储单 元。对外部变量的初始化只能在“定义”时进行,而不能在“说明”中进行。 (3) 、所谓“说明” ,其作用是:申明该变量是一个已在外部定义过的变量, 仅仅是为了引用该变量而作的“申明” 。原则上,所有函数都应当对所有的外部 变量作说明(用 extern) ,只是为了简化起见,允许在外部变量的定义点之后的函 数可以省略这个“说明” 。 3.如果在同一个源文件中,外部变量与局部变量同名,则在局部变量的作 用范围内,外部变量不起作用。 6.9 动态存储变量与静态存储变量 一、变量的存储类别 从变量值存在的时间(即生存期)角度来分,可以分为静态存储变量和动态 存储变量。 所谓静态存储方式是指在程序运行期间分配固定的存储空间的方式。而动态 存储方式则是在程序运行期间根据需要进行动态的分配空间的方式。 先看一下内存中供用户使用的存储空间的情况。这个存储空间可分为三部 分: 1. 程序区 2. 静态存储区 3. 动态存储区 数据分别存放在静态存储区和动态存储区中。全局变量存放在静态存 储区中,在程序开始执行时给全局变量分配存储区,程序执行完毕就释放。 在程序执行过程中它们占据固定的存储单元,而不是动态地分配和释放的。 在动态存储区中存放以下数据: (1)函数形参变量。在调用函数时给形参变量分配存储空间。 (2)局部变量(未加上 static 说明的局部变量,既自动变量) (3)函数调用时的现场保护和返回地址等。执教者雷祥芳 二、局部变量的存储方式 一、函数中的局部变量,如不做专门的说明,都是动态的分配存储空间的, 存储在动态存储区中。对它们分配和释放存储空间的工作是由编译 系统自动处理的,因此这类局部变量称为自动变量。自动变量用关键字 auto 作存储类型的说明。 二、有时希望函数中的局部变量的值在函数调用结束后不消失而保留原值, 即其占用的存储单元不释放,在下一次该函数调用时,该变量已有值,就是上一 次函数调用结束时的值。 这时就可以指定该局部变量为 “局部静态变量” , 用 static 加以说明。 对局部静态变量的说明: 1.局部静态变量属于静态存储类别,在静态存储区内分配存储单元。在程 序整个运行期间都不释放。而自动变量(即局部动态变量)属于动态存储类别, 占动态存储区空间而不占固定空间,函数调用结束后即释放。 2.局部静态变量是在编译时赋初值的,即只赋初值一次,在程序运行时它 已有初值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时 的值。而对自动变量赋初值,不是在编译时进行的,而是在函数调用时进行,每 调用一次函数重新赋给一次初值,相当于执行一次赋值语句。 3.如果在定义局部变量时不赋初值的话,则对静态变量来说编译时自动赋 初值为 0(对数值型变量)或空字符(对字符型变量) ,如果不赋初值则它的值是 一个不确定的值。 4.虽然局部静态变量在函数调用结束后仍然存在,但其它函数是不能 引用它的。 三、如果有一些变量使用频繁,为提高执行效率,C 语言允许将局部变量的 值放在运算器中的寄存器中,需要时直接从寄存器取出参加运算,不必再到内存 中去存储, 这样就可以提高执行效率。 这种变量叫 “寄存器变量” , 用关键字 register 作说明。 四、全局变量的存储方式 全局变量可以使用 extern 和 static 存储类别, 当未对全局变量指定存储类别 时,隐含为 extern 类别。 1.外部存储类别 2.静态存储类别 五、存储类别小结 对一个数据的定义,需要指定两种属性:数据类型和存储类别,分别用两个 关键字进行定义,如: static int a; (静态内部变量或静态外部变量) auto char c; (自动变量,在函数内定义) register int d; (寄存器变量,在函数内部定义) extern int b; (定义外部变量) 从不同角度作以下归纳 1、从作用范围角度分:有局部变量和全局变量。 2、从变量存在的时间来区分,有动态存储和静态存储两种类型。 3、从变量值存放的位置来区分: 静态局部变量 内存中静态存储区 静态外部变量(函数外部静态变量) 外部变量(可为其他文件引用) 内存中动态存储区:自动变量和形式参数 CPU 中的寄存器:寄存器变量 六、内部函数和外部函数 1. 内部函数 内部函数又称静态函数。定义时被说明成 static 类别,静态函数只局限 于所在文件,其他文件不能调用。 2. 外部函数 定义时被说明成 extern 类别的函数为外部函数。函数的隐含类别为 extern 类别,外部函数可以被其他文件调用。小 教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操 结 作中的普遍错误. 教 学 本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。 反 思C 语言教案课 课 题 函 数 型 新 授 编写时间 第 61、62 课时 2014 年 11 月 12 日 执行时间 总序第 61、62 个教案 2014 年 11 月 13 日1、掌握函数定义方法及调用规则。 2、掌握实参与形参的对应关系,及“值传递”的方法。 3、掌握函数“地址传递”的方法。教学目标教学重点 函数的调用 教学难点 函数的调用 教学用具 实验1.找出下面程序的错误,请改正并上机调试出正确结果。 (1) main( ) { int x,y; printf(“%d\n”, sum( x+y ) ) ; int sum( a , b ) { int a , b } return( a + b ) ;} } (2) main( ) {int a , b , c , int max( int , int ) scanf( “%d%d%d”, a , b , c ) ; x=max( int a , int b ) ; x=max( int x , int c ) ;执教者雷祥芳 printf( “%d”, x ) ;} int max( x , y ) { z=x&y? x: return(z);} 2.在程序的空白填入适当内容使程序完整。 计算 10 个学生 1 门功课的平均成绩。 float average( float array[10] ) { float aver , sum=array[0] ; for( i=1 ; ; i++ ) sum= ; aver=sum/10 ; return( aver ) ;} main( ) { float score[10] , for( i=0 ; i&10 ; i++ ) scanf( “%f”, & score[i] ) ; aver= ; printf( “%f” , aver ) ;} 3.阅读下面程序说明功能,写出运行结果并上机调试。 main( ) { int a[5]={5, 10, -7, 3, 7}, i , t , sort(a); for( i=0 ; i&=4 ; i++ ) printf( “%d”,a[i] ) ;} sort( int a[ ] ) { int i , j , for( i=0 ; i&4 ; i++ ) for( j=0 ; j&4-1 ; j++ ) if( a[j]&a[j+1] ) { t=a[j] ; a[j]=a[j+1] ; a[j+1]=} } 4.编程题: (1) 编写通过调用函数,找出任意三数最小值程序 (2) 编写函数判断某数是否素数,是返回 1,否则返回 0,在 main 函数中调用该函数。小 教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操 结 作中的普遍错误. 教 学 本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。 反 思 C 语言教案课 课 题 指 针 型 新 授 编写时间 第 63、64 课时 2014 年 11 月 17 日 执行时间 总序第 63、64 个教案 2014 年 11 月 17 日 教学目标 指针变量的定义 教学重点 指针变量的定义 教学难点 定义指针的一般形式为 教学用具 多媒体教学指针是 C 语言的一种数据类型,在 C 语言中处于重要的地位。正确、灵活地 应用指针可以有效地表示复杂的数据结构;能动态分配内存;能方便地使用字符 串;方便高效地使用数组。熟练地应用指针可以使 C 程序简洁、紧凑、应用效果 好。 指针的概念 一个变量的地址称为该变量的指针。 一、指针变量的定义 定义指针的一般形式为 基类型 *指针变量名 例如: int *p1; (定义 p1 为指向整型变量的指针变量) char *p2; (定义 p2 为指向字符型变量的指针变量) float *p3; (定义 p3 为指向实型变量的指针变量) int、char、float 分别称为指针变量 p1、p2、p3 的“基类型” , “基类型”意为指针变量所指变量的类型,不是指针变量的类型。 二、指针变量的赋值 可以使用不同的方法给一个指针变量赋值。 1.通过取地址运算符(&)获得地址值 单目运算符(&)用来求出运算对象的地址,利用它可以把一个变量的地 址赋给指针变量。 例如有如下定义和赋值: int a=5, *p, *q; p=&a; 它建立了如图所示的逻辑关系 p →a &a 5 因此当有语句:p=&a; 时, scanf((″%d″,&a);和 scanf(″%d″,p)是等价的。 2.通过指针变量获得地址值 可以通过赋值运算,把一个指针变量中的地址值赋给另一个指针变量,从执教者雷祥芳 而使这两个指针变量指向同一地址。例如,若有上面的定义,则语句: q=p; 使指针变量 q 中也存放了变量 a 的地址,也就是说指针变量 p 和 q 都指向了 整型变量 a。使用时应注意:赋值号两边指针变量的基类型必须相同。 p a q &a &a5 3.给指针变量赋“空”值 p=NULL; NULL 是在 stdio.h 头文件中定义的预定义符, 因此在使用 NULL 时, 应该在 程序的前面出现预定义行:# include ″stdio.h″。NULL 的代码值为 0, 三、指针变量的引用 1.&:取地址运算符 2.* :间接访问运算符(指针运算符) 例 8.1 通过指针变量访问指针变量 main( ) {int a, b, *p1, *p2; a=10; b=20; p1=&a; /*把变量 a 的地址赋给指针变量 p1*/ p2=&b; /*把变量 b 的地址赋给指针变量 p2*/ printf(″%d, %d\n″, a, b); printf(″%d, %d\n″, *p1, *p2); } 程序的运行结果为: 10,20 10,20 [说明]小 教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操 结 作中的普遍错误. 教 学 本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。 反 思C 语言教案课 课 题 指针 型 新 授 编写时间 第 65、66 课时 2014 年 11 月 17 日 执行时间 总序第 65、66 个教案 2014 年 11 月 18 日 教学目标 指针变量的定义 教学重点 指针变量的定义 教学难点 定义指针的一般形式为 教学用具 多媒体教学1. 在程序的第二行定义了两个指针变量 p1 和 p2, 但它们并未指向任何整型 变量。在程序的第 4、5 两行将两个整型变量 a 和 b 的地址分别赋给了指针变量 p1 和 p2,使 p1 和 p2 分别指向了 a 和 b,如图所示。 p1 a p2 b &a 10 &b 20 *p1 *p2 2.程序的第 7 行输出的是*p1 和*p2,即指针变量 p1、p2 所指变量,也 就是变量 a 和 b。因此,程序中的两个 printf 函数的功能是相同的。 3.在程序中两次出现*p1 和*p2,它们的意义是不同的。第 2 行出现的 *p1 和*p2 表示定义了两个指针变量,它们前面的星号表示 p1 和 p2 是两个指针 变量。而第 7 行出现的*p1 和*p2 表示的是 p1 和 p2 所指向的变量,即 a 和 b。 4.注意不要将程序的第 4、5 行写成 *p1=&a; *p2=&b; 因为是将 a 和 b 的地址赋给指针变量 p1 和 p2。 例 8.2 输入两个整数,按大小顺序输出。 main( ) {int a, b, *p1, *p2, *p; scanf(″%d,%d″, &a, &b); p1=&a; p2=&b; if (a&b) {p=p1; p1=p2; p2=p;} printf (″\na=%d,b=%d\n″, a, b); printf (″max=%d, min=%d\n″, *p1, *p2); } 程序运行时输入:5,9L 运行结果为: a=5, b=9 max=9, min=5 指针变量作为函数参数 函数的参数不仅可以是整型、 实型、 字符型等数据, 还可以是指针类型。 它的作用是将指针变量的值 (该指针变量所指变量的地址) 传送到另一个函数中。 例 8.3 用函数来实现两个变量值的交换。 void swap(int *q1, int *q2) { t=*q1; *q1=*q2; *q2=t; } main( )执教者雷祥芳 {int a, b, *p1, *p2; scanf(″%d,%d″, &a, &b); p1=&a; p2=&b; if (a&b) swap(p1, p2); printf (″%d, %d\n″,a,b); } 程序运行情况如下: 10,20L 20,10 [说明] 1、如果将 swap 函数写成以下形式就会出问题: void swap(int *q1, int *q2) {int *t; *t=*q1; /*此语句有问题*/ *q1=*q2; *q2=*t; } 注意:当一个指针变量没有具体指向时,不能给该指针变量所指单元赋 值。 3.调用函数时,不能企图通过改变形参指针变量的值而使实参指针变 量的值发生变化。小 教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操 结 作中的普遍错误. 教 学 本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。 反 思 C 语言教案课 课 题 变量与指针 型 新 授 编写时间 第 67、68 课时 2014 年 11 月 18 日 执行时间 总序第 67、68 个教案 2014 年 11 月 20 日 教学目标 指针变量的定义、赋值、引用 教学重点 指针变量的定义 教学难点 指针变量的赋值引用 教学用具 多媒体教学一、指针变量的定义 定义指针的一般形式为 基类型 *指针变量名 例如: int *p1; (定义 p1 为指向整型变量的指针变量) char *p2; (定义 p2 为指向字符型变量的指针变量) float *p3; (定义 p3 为指向实型变量的指针变量) int、char、float 分别称为指针变量 p1、p2、p3 的“基类型” , “基类型”意为指针变量所指变量的类型,不是指针变量的类型。 二、指针变量的赋值 可以使用不同的方法给一个指针变量赋值。 1.通过取地址运算符(&)获得地址值 单目运算符(&)用来求出运算对象的地址,利用它可以把一个变量的地 址赋给指针变量。 例如有如下定义和赋值: int a=5, *p, *q; p=&a; 它建立了如图所示的逻辑关系 p →a &a 5 因此当有语句:p=&a; 时, scanf((″%d″,&a);和 scanf(″%d″,p)是等价的。 2.通过指针变量获得地址值 可以通过赋值运算,把一个指针变量中的地址值赋给另一个指针变量,从 而使这两个指针变量指向同一地址。例如,若有上面的定义,则语句: q=p; 使指针变量 q 中也存放了变量 a 的地址,也就是说指针变量 p 和 q 都指向了 整型变量 a。使用时应注意:赋值号两边指针变量的基类型必须相同。 p a q &a &a5 3.给指针变量赋“空”值执教者雷祥芳 p=NULL; NULL 是在 stdio.h 头文件中定义的预定义符, 因此在使用 NULL 时, 应该在 程序的前面出现预定义行:# include ″stdio.h″。NULL 的代码值为 0, 三、指针变量的引用 1.&:取地址运算符 2.* :间接访问运算符(指针运算符) 例 8.1 通过指针变量访问指针变量 main( ) {int a, b, *p1, *p2; a=10; b=20; p1=&a; /*把变量 a 的地址赋给指针变量 p1*/ p2=&b; /*把变量 b 的地址赋给指针变量 p2*/ printf(″%d, %d\n″, a, b); printf(″%d, %d\n″, *p1, *p2); } 程序的运行结果为: 10,20 10,20 [说明] 1. 在程序的第二行定义了两个指针变量 p1 和 p2, 但它们并未指向任何整型 变量。在程序的第 4、5 两行将两个整型变量 a 和 b 的地址分别赋给了指针变量 p1 和 p2,使 p1 和 p2 分别指向了 a 和 b,如图所示。 p1 a p2 b &a 10 &b 20 *p1 *p2 2.程序的第 7 行输出的是*p1 和*p2,即指针变量 p1、p2 所指变量,也 就是变量 a 和 b。因此,程序中的两个 printf 函数的功能是相同的。 3.在程序中两次出现*p1 和*p2,它们的意义是不同的。第 2 行出现的 *p1 和*p2 表示定义了两个指针变量,它们前面的星号表示 p1 和 p2 是两个指针 变量。而第 7 行出现的*p1 和*p2 表示的是 p1 和 p2 所指向的变量,即 a 和 b。 4.注意不要将程序的第 4、5 行写成 *p1=&a; *p2=&b; 因为是将 a 和 b 的地址赋给指针变量 p1 和 p2。 例 8.2 输入两个整数,按大小顺序输出。 main( ) {int a, b, *p1, *p2, *p; scanf(″%d,%d″, &a, &b); p1=&a; p2=&b; if (a&b) {p=p1; p1=p2; p2=p;} printf (″\na=%d,b=%d\n″, a, b); printf (″max=%d, min=%d\n″, *p1, *p2); 程序运行时输入:5,9L 运行结果为: a=5, b=9 max=9, min=5}小 教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操 结 作中的普遍错误. 教 学 本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。 反 思C 语言教案课 课 题 指针变量作为函数参数 型 新 授 编写时间 第 69、70 课时 2014 年 11 月 24 日 执行时间 总序第 69、70 个教案 2014 年 11 月 24 日 教学目标 教学重点 教学难点 教学用具 多媒体教学指针变量作为函数参数 函数的参数不仅可以是整型、 实型、 字符型等数据, 还可以是指针类型。 它的作用是将指针变量的值 (该指针变量所指变量的地址) 传送到另一个函数中。 例 8.3 用函数来实现两个变量值的交换。 void swap(int *q1, int *q2) { t=*q1; *q1=*q2; *q2=t; } main( ) {int a, b, *p1, *p2; scanf(″%d,%d″, &a, &b); p1=&a; p2=&b; if (a&b) swap(p1, p2); printf (″%d, %d\n″,a,b); } 程序运行情况如下: 10,20L 20,10执教者雷祥芳 [说明] 1、如果将 swap 函数写成以下形式就会出问题: void swap(int *q1, int *q2) {int *t; *t=*q1; /*此语句有问题*/ *q1=*q2; *q2=*t; } 注意:当一个指针变量没有具体指向时,不能给该指针变量所指单元赋 值。 3.调用函数时,不能企图通过改变形参指针变量的值而使实参指针变 量的值发生变化。小 教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操 结 作中的普遍错误. 教 学 本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。 反 思C 语言教案课 课 题 数组与指针 型 新 授 编写时间 第 71、72 课时 2014 年 11 月 24 日 执行时间 总序第 71、72 个教案 2014 年 11 月 25 日 教学目标 指向数组的指针,通过指针引用数组元素 教学重点 指向数组的指针 教学难点 通过指针引用数组元素 教学用具 多媒体教学一、问题的提出 用指针法对数组进行输入和输出 main( ) {int a[10], *p; p=&a[0]; for( ; p&=&a[9]; p++) scanf (″%d″, p); for(p=&a[0]; p&=&a[9]; p++) printf (″%d ″, *p); printf(″\n″); } [说明] 1. 程序的第 3 行将数组元素 a[0]的地址赋给指针变量 p, 使指针 p 指向了 a[0]执教者雷祥芳 这个元素。C 语言规定:数组名代表数组的首地址(起始地址) 因此下列两条语句等价: p=&a[0]; p=a; 2.程序中的第一个循环是将 10 个数读入数组 a 中。第二个循环将数组 a 中的元素输出。请注意两个循环中 p++的作用,它每次自加后都指向了下一个 元素。以上程序也可以写成下面的形式: main( ) {int a[10], *p; for(p=a; p&=a+9;p++) scanf(″%d″,p); for(p=a; p&=a+9; p++) printf(″%d ″, *p); printf(″\n″); } 程序中 a+9 的值是数组最后一个元素(a[9])的地址。 二、指向数组的指针 定义指向数组的指针与定义指向变量的指针类似,其格式为: 基类型 *指针变量名 其中基类型是数组的基类型。例如: int a[10], *p1, *p2, *p3, *p4; 要使指针指向数组,可以使用如下语句: p1=&a[0]; /*p1 指向数组元素 a[0] */ p2=a; /*p2 指向数组元素的首地址,也是指向数组元素 a[0] */ p3=&a[4]; /*p3 指向数组元素 a[4] */ p4=a+4; /*p4 指向数组元素 a[4] */ 三、通过指针引用数组元素 如果定义了一个指向数组 a 的指针 p,则引用数组元素的方法有两种: 1.下标法,如我们以前经常使用的 a[i]等形式。 2.指针法(地址法) ,如* (a+i)或* (p+i)等形式,这种方法是一种通过 地址的计算,从而求出数组元素值的方法。 [说明] 1. 在用下标法引用数组元素 a[i]时,C 编译系统对程序编译时将 a[i]处理 成*(a+i)的形式,即按数组的首地址加上相对偏移量得到要找的元素的地址, 然后取出该地址单元中的内容。 2. 在用指针法*(p+i)引用数组元素时,应注意当前指针 p 所处的位置,不 要使 p+i 的值超越了数组的地址范围。 3.如果有以下定义与语句: int *p, a[10]; p=a; 4.指针变量的运算比较复杂,下面我们简要介绍一下。 有定义和语句: int *p, a[10]; p=a; ①p++(或 p=p+1) ;p 指向下一个元素,即 a[1]。如果再执行*p,则取出 a[1] 单元中的值。 ②*p++,由于++和*优先级相同,其结合方向是自右至左,因此它等价于 * (p++) 。其作用是先得到 p 指向变量的值(即*p) ,然后再 p 自加。 ③*(p++)与*(++p)作用不同。前者是先取*p 的值,后使 p 加 1。后者是 先使 p 加 1,再取*p。 ④(*p)++表示 p 所指向的元素值加 1,而不是指针 p 自加。 ⑤如果 p 当前指向 a 数组第 i 个元素,则: *(p--)相当于 a[i--],先对 p 进行“*”运算,再使自减。 *(++p)相当于 a[++i],先使 p 自加,再作“*”运算。 *(--p)相当于 a[i--],先使 p 自减,再作“*”运算。 将++和―运算符用于指针变量十分有效, 可以使指针变量自动向后或向前移 动,指向下一个或上一个元素。 例 8.4 阅读程序,写出程序的运行结果。 main( ) {int *p1, *p2, a[5]={1, 3, 5, 7, 9}; for(p1=a; p1&=a+4; p1++) printf (″%d ″, *p1++); printf(″\n″); for(p2=a; p2&=a+4; p2++) printf (″%d ″, ++(*p2)); printf(″\n″);} 程序的运行结果为: 1 5 9 2 4 6 8 10小 教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操 结 作中的普遍错误. 教 学 本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。 反 思C 语言教案课 课 题 型 新数组名作函数参数第 73、74 课时 2014 年 11 月 26 日 执行时间总序第 73、74 个教案 2014 年 11 月 27 日授编写时间教学目标 教学重点 教学难点数组名作函数参数 数组名作函数参数 数组名作函数参数 教学用具 多媒体教学数组名作函数参数 在 C 程序中,可以用数组名作函数的实参和形参。 例 8.5 将数组 a 中 n 个整数按相反顺序存放。 void inv(int x[ ], int n) {int i, j, t, m=(n-1)/2; for (i=0; i&=m; i++) {j=n-1-i; t=x[i]; x[i]=x[j];x[j]=t; } } main( ) { int a[10]={5,3,8,7,2,6,0,9,1,4}; printf(″The original array:\n″); for (i=0; i&10; i++) printf(″%d ″, a[i]); printf(″\n″); inv(a, 10); printf(“″The array has been inverted:\n″); for (i=0; i&10; i++) printf(″%d ″, a[i]); printf(″\n″);} 程序运行结果如下: The original array: 5 3 8 7 2 6 0 9 1 4 The array has been inverted: 4 1 9 0 6 2 7 8 3 5 [说明] 1 在本程序的 main 函数中定义了一个一维数组 a 并赋以初值, 在调用函数时 使用了语句 inv (a, 10); 表示将数组名(即数组的首地址)和数组元素的个数作为实参传递给形参变 量 x 和 n.。 2.在被调函数 inv 中定义 x 为形参数组名,它得到的是实参数组的首地址, 本 例 中 的 inv 函 数 的 首 部 也 可 以 写 成 void inv(int *x, int n) 是相同的。 3.在用数组名作为函数的实参时,形参可以是数组名,也可以是指针变量; 在用指向数组的指针作为函数的实参时, 形参可以是数组名,也可以是指针变 量。 例 8.6 将例 8.5 的程序的 inv 函数用指针的方法改写。 void inv(int *x, int n) {int *p, t, *i, *j, m=(n-1)/2; i=x; j=x+n-1; p=x+m; for( ; i&=p; i++, j--)执教者雷祥芳 {t=*i; *i=*j; *j=t;} } 例 8.7 用选择法对 10 个整数排序。 void sort(int x[ ], int n) {int i, j, k, for(i=0; i&n-1; i++) {k=i; for(j=i+1; j&n; j++) if (x[j]&x[k]) k=j; if (k!=i) {t=x[i]; x[i]=x[k]; x[k]=t;} } } main( ) {int *p, i, a[10]; p=a; for(i=0; i&10; i++) scanf(″%d″, p++) /*将 10 个整数读入 a 数组中*/ p=a; sort(p, 10); /*调用 sort 函数对数组进行排序*/ for(p=a, i=0; i&10; i++) {printf(″%d″, *p); p++;} } /*输出排序后的数组*/小 教师综合学生完成)实例的情况,对本节课的教学过程进行小结,强调重点、难点和学生操 结 作中的普遍错误. 教 学 本课内容比较吸引学生,所有学生学习较有兴趣,上手较快。达到教学目的。 反 思
11月教案_初一英语_英语_初中教育_教育专区。Unit 5 Do you have a baseball? 第一课时 Section A(1a1c) 1. 重点单词: do, does, have, tennis, ball, ...幼儿园小班11月教案_育儿理论经验_幼儿教育_教育专区。幼儿园小班11月教案科学:秋天来了活动名称: 《秋天来了》 活动目标: (1)通过有目的地观察、思考,发现周围...11月教案_少儿英语_幼儿教育_教育专区。C 语言教案课 课题 函数的调用 型新授 编写时间 2014 年 11 月 3 日第 51、52 课时 执行时间 总序第 51、52 个教...2016年秋季11月教学设计_教学案例/设计_教学研究_教育专区。教学设计 2016 年春季启智三班十一月份劳动技能教学设计韶关市曲江区启智学校基本信息 课题 作者 包饺子 ...11月教案_其它课程_初中教育_教育专区。九年级上册新标准mdule 7教案Module 7 Great books Unit 1 We’re still influenced by Confucius’s ideas. [教学目标]...教学后记 课 题 识字 3 认识 2 种基本笔画, “日、月、水、火”的音、形及正确规范 地书写。 新授 代玉芳 2013-11-5 总序第 63 个教案 朱灵芝 2013-...社会11月教案_育儿知识_幼儿教育_教育专区。第6周 2014年 月 日 星期 午 社会活动:做个笑娃娃(自我成长)一、活动目标 1、能高高兴兴上幼儿园。 2、能保持情...免费 11月1周教案 暂无评价 18页 免费 小班 教案11月16日 2页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 ...11月份教案_少儿英语_幼儿教育_教育专区。17.《长城》 教学目标 1. 通过看图...二、日积月累 1.生自读对联。 2.指名学生读对联,师范读、纠正字音,指导...效果评析过程调整及原因重难点分析 领域 数学 执教 二次备课 材料调整 教育活动计划时间 11 月日 课程教案 名 说唱陶俑 称 1.学习从整体到局部欣赏陶俑的造型, ...
All rights reserved Powered by
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。}

我要回帖

更多关于 js删除数组指定元素 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信