第8-2课 指针
- 格式:doc
- 大小:68.00 KB
- 文档页数:6
第四单元 可能性第2课时 可能性的大小一、填空。
1.如图圆盘中有红色、黄色、蓝色,指针指着( )色的可能性最大,指针指着( )色的可能性最小。
2.下面是李强同学摸球游戏记录。
(共摸了20次,每摸出一个球再放回)下次再摸,摸出( )球的可能性大。
3.如下图,小明闭着眼睛从( )箱中更容易摸到○球,从( )箱中摸到○球的可能性小。
二、选一选。
1.往下面的靶子上投石子,最容易投中黑色区域的靶子是( )。
A B C2.下面是从纸袋中摸30次跳棋的结果(摸出一个棋子后,再放回去摇匀)。
纸袋中再摸一次,摸出( )的可能性大。
记录 次数 白棋正一6红球 正一 6次 绿球正正正14次黑棋正正正正正24A.白棋B.黑棋C.红棋三、在转盘上按要求涂色。
1.转盘①中指针一定停在红色区域。
2.转盘②中指针可能停在红色、蓝色或绿色区域。
3.转盘③中指针可能停在红色、蓝色或绿色区域,并且停在绿色区域的可能性最大,停在蓝色区域的可能性最小。
4.转盘④中指针不可能停在红色区域。
(涂色合理即可)四、商店进行有奖销售,要让顾客都能获奖,至少是三等奖,也可能是二等奖或一等奖。
请设计一个转盘,要求是:得到三等奖的人很多,得到二等奖的人不多,得到一等奖的人很少。
五、把8张数字卡片装入袋中,随意摸出一张,要使摸出数字4的可能性最大,数字6的可能性最小,卡片上的数字可能是什么数字?请你填一填。
第四单元 可能性第2课时 可能性的大小一、填空。
1.如图圆盘中有红色、黄色、蓝色,指针指着( 红 )色的可能性最大,指针指着( 黄 )色的可能性最小。
2.下面是李强同学摸球游戏记录。
(共摸了20次,每摸出一个球再放回)下次再摸,摸出( 绿 )球的可能性大。
3.如下图,小明闭着眼睛从( 乙 )箱中更容易摸到○球,从( 甲 )箱中摸到○球的可能性小。
二、选一选。
1.往下面的靶子上投石子,最容易投中黑色区域的靶子是( B )。
A B C2.下面是从纸袋中摸30次跳棋的结果(摸出一个棋子后,再放回去摇匀)。
C语言指针教课方案1.关于 C 语言程序设计中的指针C语言程序设计是高校理工科专业的一门重要专业或公共基础课,不但是计算机相关专业学生进一步学习汇编语言程序设计、数据结构计算机操作系统、硬件编程等课程的入门级课程,同时也是非计算机专业学生认识计算机软硬件基础知识和计算机基层原理的重要手段之一.在教课内容的组织上,重申停解析指针与基本数据种类、函数、数组的内在联系,灵巧设计教课程序实例,为学习者掌握指针及 c语言程序设计创建优异条件。
指针是 C语言的教课要点,程序使用指针可以带来很多方便,如:1)灵巧操作数组 (含字符串 );2)动向分配内存;3)表示复杂的数据结构;是让程序更加简洁高效的重要手段。
可是指针也是 C 语言学习的最大难点,学习者广泛感觉指针看法抽象,以致没法正确理解并使用指针,而指针的使用稍有不慎,常常会给 c 语言程序带来致命的错误。
2.学生解析在讲指针内容以前,学习者经历了基本数据种类、运算符和表达式、输入输出函数、选择制语句、循环控制语句、函数、数组等内容的学习。
而指针内容之后,一般还要讲解指针与字符串、指针与数组、结构体与共用体、文件操作等内容。
此中指针起到了承前启后的作用,学习并掌握指针,对学习者获取程序设计技巧和能力、连续学习其他计算机专业课程至关重要。
3.教师自我思虑在课堂教课中起主导作用的教师,应依据指针教课所必要的基础知识,在讲课过程中不停调各要点知识点的重要性,尽可能在指针内容的学习以前,使学习者具备理解指针看法的基础知识和基本能力。
在教课内容的组织上,重申停解析指针与基本数据种类、函数、数组的内在联系,灵巧设计教课程序实例,为学习者掌握指针及 c 语言程序设计创建优异条件。
4.学生学习方法建议学习本章内容时,应要点掌握指针与指针的差别、指针的引用方法和运算,并在此基础长进一步理解指针作为函数参数和在数组中间的的应用,要求多读程序,理解编程的算法、编程的思路,并模拟例题多编程序、上机练习,真切掌握指针的灵巧应用。
第2课 弹力(解析版)课程标准课标解读 1.了解弹性与塑性的概念;2.知道什么是弹力及弹力产生的原因;3.了解弹性形变概念;4.了解弹簧测力计的工作原理;5.能正确使用弹簧测力计。
1.知道什么是弹性和塑性; 2.知道弹力是由于物体发生弹性形变而产生的; 3.理解发生形变的物体,能自己回复原状叫弹性形变;弹力的大小与物体发生弹性形变的量有关; 4.知道弹簧测力计是根据弹力与弹性形变量有关而制成的;5.熟悉弹簧测力计、会使用弹簧测力计测量力。
知识点01 弹力1.弹性:物体受力发生形变,失去力又恢复到原来的形状的性质叫弹性。
2.塑性:物体受力时发生形变,失去力后不能恢复原来形状的性质叫塑性。
3.弹力:物体由于发生弹性形变而受到的力叫弹力;弹力的大小与弹性形变的大小有关;在弹性限度内,弹性形变越大,弹力越大。
【知识拓展一】弹力产生的条件1.两物体互相接触;2.物体发生弹性形变(包括人眼不能观察到的微小形变)需要注意的是:任何物体只要发生了弹性形变,就一定会对与它接触的物体产生弹力。
一旦超出弹性形变范围,就会彻底失去弹力。
(即是超过了弹性限度,塑性物体除外)。
举例:木块A 靠在墙壁上,若作用一个推力,在木块A 上,则木块对墙壁有挤压,发生形变,此时A 与墙壁间有弹力作用。
【知识拓展二】弹力的大小和方向1.发生弹性形变的物体,由于要恢复原状,所以要对跟它接触的物体产生力的作用,这种作用就是弹力。
即在弹性限度范围内,物体对使物体发生形变的施力物体产生的力叫弹力。
如放在桌面上的手机,手机(施力物体)使桌面产生形变,桌面就会对使它形变的手机产生弹力,这个弹力一般称为支持力。
2.日常生活中观察到的相互作用,无论是推、拉、提、举,还是牵引列车、锻打工件、击球、弯弓射箭等,都是在物体与物体接触时才会发生的,这种相互作用都有弹力。
所以,弹力只能存在于物体的相互接触处,但相互接触的物体之间,并不一定有弹力的作用。
因为弹力的产生不仅要接触,还要有相互作用。
《C语言程序设计II》期末复习一、复习内容:⏹第1~4讲指针●指针的概念:内存单元的排列方式、地址的概念、不同数据类型内存单元的个数、存储方式不同,两种变量的存取方式,指针即是地址,NULL;●指针变量:概念和定义方法(空悬指针、空类型与空指针),指针的两个特殊运算符(*与&),指针变量作为函数参数(通过函数调用得到n个要改变的值);●指针运算:指针与整数的运算、++(--)、比较、相减;●指针与一维数组:对数组名的理解,指针与一维数组(指向数组元素的指针、引用数组元素时的指针运算、通过指针引用数组元素的几种方法、用数组名作函数参数);●指针与二维数组:理解二维数组中行指针、列指针的类型,加减1所移动的字节数,如何利用它们访问二维数组元素,用作函数参数参数时在主调函数中如何给出实参。
●通过指针引用字符串:字符串的引用方式,字符指针作函数参数,使用字符指针变量和字符数组的比较;●指向函数的指针:什么是函数指针,怎样定义和使用指向函数的指针变量,用指向函数的指针作函数参数;●返回指针值的函数:函数的返回值是一个地址,定义格式,使用;●指针数组和多重指针:什么是指针数组,指向指针数组的指针,指针数组作main函数的形参;●动态内存分配:动态内存分配的概念、必要性,与动态内存分配相关的4个函数,动态数组的建立;●有关指针的小结:指针、指向、指针变量,void *类型与NULL的比较,指针与数组的关系,各类指针类型的比较,指针的几类运算;●结构体指针:什么是结构体指针,用结构体指针访问成员的简便写法,指向结构体数组的指针,结构体变量与结构体指针作函数参数;●用指针处理链表:什么是链表,建立静态链表,建立动态链表,输出链表。
(理解链表的概念,本次考试不包含这一部分内容)。
⏹第5讲位运算和预处理指令●位运算与位运算符:位运算概念,6种基本的位运算符(&、|、^、~、<<、>>),&和^运算符的一些用法,位运算的复合赋值运算符;●位段:问题的提出,位段的概念与定义,位段的使用,注意事项;(这一部分内容不考)●预处理:概念,主要工作,功能类型,书写要求;●宏定义:不带参数的宏定义,带参数的宏定义;●“文件包含”处理:格式,作用,带<>与””的差别;●条件编译:概念,好处,几种基本格式。
第8-2课指针一、教学目标1、二维数组与指针2、函数与指针3、指向指针的指针二、教学过程1、二维数组元素的地址若有以定义:Int c[3][4],*p;c是该二维数组的数组名,代表整个数组首地址,表示第0行的首地址,c+1表示第1行的首地址,即c+1是c[1]的地址;c[0],c[1],c[2]既然是一维数组名,而C语言又规定数组名为首地址,因此c[0]代表第0行的一维数组中第0列元素的地址,即&c[0][0],同样地,以c[1]的值是&c[1][0]c[i]和*(c+i)等价,因此c[0]+1和*(c+0)+1的值都是&c[0][1],都是用来表示第0行第1列的元素地址。
【例】二维数组指针main(){int c[3][4],*p;int a,b,x=1;for(a=0;a<3;a++){for(b=0;b<4;b++){c[a][b]=x++;printf("c[%d][%d]=%d ",a,b,c[a][b]);}printf("\n\n");}p=c;printf("%d\n",*p);}2、二维数组指针应用main(){int i,j;int s1=0;int s2=0;int a[3][3]={1,3,5,6,7,8,9,11,5},(*p)[3];p=a;for(i=0;i<3;i++){for(j=0;j<3;j++){if(i==j)s1=s1+*(*(p+i)+j);if(i+j==2)s2=s2+*(*(p+i)+j);}}printf("s1=%d\n",s1);printf("s2=%d\n",s2);getch();}3、指针赋空值Null是stdio.h头文件中定义的预定义符。
Null的代码值为0。
可以给指针变量赋null值。
例如p=null;赋值语句,称p为空指针。
这条语句等价于p=’\0’;或p=0;这时,指针并不是指向地址为0的存储单元。
main(){printf("%d\n",NULL);}4、函数指针变量类型说明符 (*指针变量名)();其中“类型说明符”表示被指函数的返回值的类型。
“(* 指针变量名)”表示“*”后面的变量是定义的指针变量。
最后的空括号表示指针变量所指的是一个函数。
例如:int (*pf)();表示pf是一个指向函数入口的指针变量,该函数的返回值(函数值)是整型。
【例】本例用来说明用指针形式实现对函数调用的方法。
int max(int a,int b){if(a>b)return a;elsereturn b;}main(){int max(int a,int b);int(*pmax)();int x,y,z;pmax=max;printf("input two numbers:\n");scanf("%d%d",&x,&y);z=(*pmax)(x,y);printf("maxmum=%d",z);}从上述程序可以看出用,函数指针变量形式调用函数的步骤如下:1) 先定义函数指针变量,如后一程序中第9行int (*pmax)();定义pmax为函数指针变量。
2) 把被调函数的入口地址(函数名)赋予该函数指针变量,如程序中第11行pmax=max;3) 用函数指针变量形式调用函数,如程序第14行z=(*pmax)(x,y);4) 调用函数的一般形式为:语法:(*指针变量名) (实参表)使用函数指针变量还应注意以下两点:a) 函数指针变量不能进行算术运算,这是与数组指针变量不同的。
数组指针变量加减一个整数可使指针移动指向后面或前面的数组元素,而函数指针的移动是毫无意义的。
b) 函数调用中"(*指针变量名)"的两边的括号不可少,其中的*不应该理解为求值运算,在此处它只是一种表示符号。
5、返回指针值的函数一个函数的返回值可以是一个整形值、字符型值、实型值等,同样地,函数的返回值也可以是指针类型的数据。
这种返回值的函数,一般定义形式为:语法:类型名*函数名(参数表)例:int *fun(int a,int b)说明:fun是函数名括号()优先级高于*,因此fun先与()结合。
显然这是函数形式。
这个函数前面有一个* ,表示此函数是指针型函数6、指向指针的指针【例】使用指向指针的指针。
main(){char *name[]={"Follow me","BASIC","Great Wall","FORTRAN","Computer desighn"};char **p;int i;for(i=0;i<5;i++){p=name+i;printf("%s\n",*p);}}说明:p是指向指针的指针变量。
【例】一个指针数组的元素指向数据的简单例子。
main(){static int a[5]={1,3,5,7,9};int *num[5]={&a[0],&a[1],&a[2],&a[3],&a[4]};int **p,i;p=num;for(i=0;i<5;i++){printf("%d\t",**p);p++;}}说明:指针数组的元素只能存放地址。
三、历年试题1、有以下程序,输入1,2,则下面程序的运行结果为()main(){int a[2][3]={2,4,6,8,10,12};int (*p)[3],i,j;p=a;scanf("%d,%d",&i,&j);printf("a[%d][%d]=%d\n",i,j,*(*(p+i)+j));getch();}2、若有以下定义,则以a数组元素的正确引用是()Int a[5],*p=a;A) *&a[5] B) a+2 C) *(p+5) D) *(a+2)3、分析以下程序的结果main(){char *st[]={"sum","moon","star","xyz"};printf("%s",*(st+1)+1);getch();}4、分析以下程序的结果main(){char *a[]={"abcd","ef","gh","ijk"};int i;for(i=0;i<4;i++)printf("%c",*a[i]);getch();}5、有以下程序:程序运行后的输出结果是()(指针函数参数,字符数组)#include "stdio.h"#include "string.h"void f(char *s,char *t){char k;k=*s;*s=*t;*t=k;s++;t--;if(*s)f(s,t);}main(){char str[10]="abcdefg",*p;p=str+strlen(str)/2+1;f(p,p-2);printf("%s\n",str);}A) abcdefg B) gfedcba C) gbcdefa D) abedcfg6、进行如下定义,则以下叙述中正确的是()int (*ptr)();A) ptr是指向一维数组的指针变量B) ptr是指向int型数据的指针变量C) ptr是指向函数的指针,该函数返回一个int型数据D) ptr是一个函数名,该函数的返回值是指int型数据的指针7、有以下程序:程序的输出结果为()(函数指针数组)#include "stdio.h"void swap(char *x,char *y){char t;t=*x; *x=*y; *y=t;}main(){char s1[]="abc",s2[]="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}A) 123,abc B) abc,123 C) 1bc,a23 D) 321,cba8、下面程序的输出结果是()(函数,数组与指针)#include "stdio.h"#include "conio.h"void sub(int *s,int *y){static int m=4;*y=s[0];m++;}main(){int a[]={1,2,3,4,5},k;int x;printf("\n");for(k=0;k<=4;k++){sub(a,&x);printf("%d,",x);}}A) 1,1,1,1,1, B) 12,3,4,5, C) 0,0,0,0,0, D) 4,4,4,4,4,9、以下程序的输出结果是()(函数递归,指针,数组s)#include "stdio.h"#include "conio.h"void fun(int *a,int i,int j){int t;if(i<j){t=a[i];a[i]=a[j];a[j]=t;i++;j--;fun(a,i,j);}}main(){int x[]={2,6,1,8},i;fun(x,0,3);for(i=0;i<4;i++)printf("%2d",x[i]);printf("\n");}A)1,2,6,8 B)8,6,2,1 C)8,1,6,2 D)8,6,1,2 10、下列程序的输出结果是()(函数,指针,数组)#include "stdio.h"void point(char *pt);main(){char b[4]={'m','n','o','p'},*pt=b;point(pt);printf("%c\n",*pt);getch();}void point(char *p){p+=3;}A)p B)o C)n D)m11、下列程序中的输出结果是()(数组,指向指针的指针)#include "stdio.h"#include "string.h"void main(){int b[6]={2,4,6,8,10,12};int *p=b,**q=&p;printf("%d",*(p++));printf("%d",**q);getch();}A)4,4 B)2,2 C)4,5 D)2,412、下列程序的输出结果为()(字符指针,函数)void fun(char *c,int d){*c=*c+1;d+=1;printf("%c,%c",*c,d);}main(){char a='F',b='f';fun(&b,a);printf("%c,%c\n",a,b);}A)g,GF,g B)g,FF,g C)G,fF,G D)f,gf,g13、求以下程序的运行结果main(){int **k,*a,b=100;a=&b;k=&a;printf("%d\n",**k);getch();}。