书签 分享 收藏 举报 版权申诉 / 22
上传文档赚钱

类型计算机二级C++-九二课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3391785
  • 上传时间:2022-08-26
  • 格式:PPT
  • 页数:22
  • 大小:243KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《计算机二级C++-九二课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    计算机 二级 课件
    资源描述:

    1、对于一维数组对于一维数组:(1)数组名)数组名array表示数组的首地址,即表示数组的首地址,即array0的地址;的地址;(2)数组名)数组名array是是可以看做一个指针变量,但值是不能变化可以看做一个指针变量,但值是不能变化 故又称为地址常量。故又称为地址常量。(3)array+i是元素是元素arrayi的地址的地址即即array+i=&arrayi(4)arrayi *(array+i)arrayint array10;回顾二维数组定义与元素引用datatype arrayNamerowsizecolsize;int num42;内存内存numnum00num01num10num11n

    2、um20num21num30num314 X 2=88*sizeof(int)字节num00num01num10num11num20num21num30num31num为了便于理解,二维数组一般理解为几行几列的矩阵二维数组初始化int books42=11,1294,22,450,33,4000,44,79;int arr43=1,2,4,5,7,10;int arr43=1,2,4,5;int arr43=1,2,4,5;没有花括号依次赋值,其余补零没有花括号依次赋值,其余补零通过赋初值定义二维数组的大小通过赋初值定义二维数组的大小int arr 3=1,2,3,4,5,6,8;由初值行数来

    3、确定第一维的大小由初值行数来确定第一维的大小int arr 3=1,2,3,4,5;第一第一维的大小为:维的大小为:1.数值数数值数%列数列数=0,维数,维数=商商2.数值数数值数%列数!列数!=0,维数,维数=商商+1故故:上述等价于:上述等价于:int arr 23=1,2,3,4,5;int arr2 =1,2,3,4,5,6,8;错误,可以省略行但不能省略错误,可以省略行但不能省略列列从终端设备二维数组赋值int i,j,num42;for(i=0;i=3;i+)for(j=0;j=1;j+)scanf(%d,&numij);ijnumij00100012001030011400205

    4、00216003070031800第一行第一行第二行第二行第三行第三行第四行第四行第一列第一列第二列第二列(3,1)800(3,0)700(2,1)600(1,1)400(0,1)200(2,0)500(1,0)300(0,0)100行下标行下标列下标列下标num0 0二维数组和指针 int a34;对于一个二维数组可以看成一个一维数组,这个一维数组的每个元素又是一个一维数组。如上:可以将二维数组a看成一个由a0,a1,a2三个元素组成的一维数组,而每个元素a0,a1,a2分别又是由四个元素组成的一维数组。如a0元素又可由a00,a01,a02,a03四个元素组成的一维数组。对于二维数组:对于

    5、二维数组:(1)a是是数组名,数组名,包含三个元素包含三个元素 a0,a1,a2(2)每个元素)每个元素ai 又是一个一维又是一个一维 数组,包含数组,包含4个个 元素元素int a34;a0a1a2200020082016200020022008201020162018a00a01a10a11a20a21a02a03a12a13a22a23前面对于一维数组学过int a3数组名a是一个地址常量,或可以看做一个指针变量,值为第一个元素的地址int a34;首先讨论二维数组中的一维数组名:首先讨论二维数组中的一维数组名:二维数组a34,包括a0,a1,a2三个元素,每个元素又是一个一维数组名。故

    6、a0,a1,a2三个一维数组名分别代表地址常量,或指针,值为每行第一个元素的地址。讨论二维数组名:讨论二维数组名:二维数组名a,包含着三个一维数组名(地址常量或指针)的指针,值为第一个元素的首地址。回顾二重指针:回顾二重指针:int *p,*a,k=10;a=&k;p=&a;pak&a&k10*p=a=&kp=&a*p=k 对二维数组 int a34,有 a-二维数组的首地址,即第0行的首地址 a+i-第i行的首地址 ai *(a+i)-第i行第0列的元素地址 ai+j *(a+i)+j-第i行第j列的元素地址*(ai+j)*(*(a+i)+j)aija+i=&ai=ai=*(a+i)=&ai

    7、0,值相等,含义不同a+i&ai,表示第i行首地址,指向行ai *(a+i)&ai0,表示第i行第0列元素地址,指向列int a34;a0a1a2200020082016200020022008201020162018a00a01a10a11a20a21a02a03a12a13a22a23aa+1a+2int a34;a00a01a10a11a20a21a02a03a12a13a22a23二维数组元素表示形式:(1)a12(2)*(a1+2)(3)*(*(a+1)+2)(4)*(&a00+1*4+2)(5)*(*(a+1)2地址表示:(1)a+1 (2)&a10(3)a1(4)*(a+1)行指

    8、针列指针地址表示:(1)&a12(2)a1+2(3)*(a+1)+2(4)&a00+1*4+2(5)a0+1*4+29.6.3建立指针数组引用二维数组元素 int*p3,a32 p首先与 结合,p是一个数组名是一个数组名,系统为它开辟3个连续存储单元;*说明数组p是指针类型,则每个单元存储的是一个地址。即pi与ai类型一致,所以合法赋值形式为:pi=ai;p0p1p2a00a01a10a11a20a21*(pi+j)*(*(p+i)+j)(*(p+i)jpij对应对应*(ai+j)*(*(a+i)+j)(*(a+i)j aij9.6.4建立一个行指针引用二维数组元素建立一个行指针引用二维数组元

    9、素定义形式:数据类型 (*指针名)一维数组维数;例 int (*p)4,a34;p先与*结合,说明p是一个指针变量 再与 结合,即p指向一个含有4个元 素的一维数组。在这里p的类型与二维的类型与二维 数组名数组名a相同相同,因此合法赋值语句:p=a;故p+1=a+1,p+i=a+1 则可用以下形式来表示aij *(pi+j)*(*(p+i)+j)(*(p+i)j pij1.()不能少,不能少,2.p是是行指针行指针,不是不是 数组名数组名3.一维数组指针变量一维数组指针变量 维数和二维数组维数和二维数组列列数数 必须必须相同相同1.若有以下定义 int x10,*pt=x;则对数组元素的正确引

    10、用是 A)*&x10 B)*(x+3)C)*(pt+10)D)pt+3 2.若有定义语句:int a410,(*prt)10,*q4;0=i4,则正确的赋值是()A prt=a B qi=ai C prt=ai 3.设int(*p)4;,则p的含义是()。A指向整型变量的指针数组 B指向4个整型变量的函数指针 C4个指向整型变量的指针变量 D指向具有4个整型元素的一维数组的指针 4.课后题9.12和9.139.7二维数组名和指针数组作为参数 1.二维数组名二维数组名作为实参时,形参必须是一个指针变量 main()double sMN f(s);则f子函数:f(double(*a)N)f(dou

    11、ble a N)f(double aMN)系统将a处理成行指针 2.指针数组名指针数组名作为实参时,形参必须是指向指针的数组 main()double sMN,*pM;for()pi=si;f(p);则f子函数可为如下之一:f(double*aM)f(double*a)f(double*a)9.8二维程序举例例题例题9.11 编写程序,通过调用随机函数给编写程序,通过调用随机函数给5*6的二维数组元素赋的二维数组元素赋10-40范围内的整数,求出二维数组每行元素的平均值范围内的整数,求出二维数组每行元素的平均值 思路:思路:#include#include#define M 6#define

    12、N 5 void getdata(int (*)M)void lineave(int M,float*)void outdata(int NM,float*)main 定义一个二维数组存放随机数;定义一个二维数组存放随机数;int rNM;定义一个一维数组存放每行元素的平均值;定义一个一维数组存放每行元素的平均值;inaveN;调用一个子函数获得随机数;调用一个子函数获得随机数;getdata(r);调用一个子函数求二维数组的行平均值;调用一个子函数求二维数组的行平均值;lineave(r,ave);调用一个子函数输出平均值:调用一个子函数输出平均值:outdata(r,data);注意格式:

    13、被调用函数的位置注意格式:被调用函数的位置函数原型:跟子函数函数一样但可省略参数名称获得随机数的子函数:获得随机数的子函数:void getdata(int (*sp)M)int i,j,x;for(i=0;iN;i+)/控制行数 j=0;while(j=10)/只有产生的随机数在=10至40之间才可放入数组 spij=x;j+;求二维数组的行平均值:求二维数组的行平均值:void lineave(int sp M,float*a)int i,j;float ave;for(i=0;iN;i+)ave=0.0;/每求完一行,重新将ave赋值为0.0 for(j=0;jM;j+)ave+=sij

    14、;/求每行的总和 ai=ave/M;/求行平均值存储于数组a中 输出平均值的子函数:输出平均值的子函数:void outdata(int spNM,float a)int i,j;printf(“输出二维数组元素:n”);for(i=0;iN;i+)for(j=0;jM;j+)printf(“%4d,spij);printf(“:%6.2fn,ai);例题例题9.12打印如下杨辉三角打印如下杨辉三角11 11 2 1 1 3 3 11 4 6 4 11 5 10 10 11 6 15 20 1思路:首先建立一个二维数组 根据规律给二维数组赋值 按照上述图形输出二维数组 规律:规律:1.第一列和

    15、斜对角线的元素为第一列和斜对角线的元素为1。2.其他元素其他元素=上一行的同列元素上一行的同列元素+前列元素前列元素for(i=0;in;i+)si0=1;sii=1;for(i=2;in;i+)for(j=1;jn;j+)sij=si-1j+si-1j-1;规律:列数=行数for(i=0;in;i+)for(j=0;j=i;j+)printf(“%6d”,sij);例题例题9.13找出方阵每列中的最小元素及所在行号找出方阵每列中的最小元素及所在行号 23 87 10 44 11 91 66 24 5 51 31 2 19 91 28 65 40 9 6 39 22 35 49 82 76思考:for(i=0;iN;i+)for(j=0;jN;j+)aij (位置是怎样变化的?若换成aji呢?)

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:计算机二级C++-九二课件.ppt
    链接地址:https://www.163wenku.com/p-3391785.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库