欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    计算机二级C语言考试C语言学习第5讲.ppt

    • 资源ID:6606180       资源大小:778.50KB        全文页数:38页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机二级C语言考试C语言学习第5讲.ppt

    C语言程序设计,第五讲,第八章 数 组,构造数据类型之一数组:有序数据的集合,用数组名标识元素:属同一数据类型,用数组名和下标确定8.1 一维数组一维数组的定义定义方式:数据类型 数组名常量表达式;,合法标识符,表示元素个数下标从0开始,:数组运算符单目运算符优先级(1)左结合不能用(),例 int a6;,编译时分配连续内存内存字节数=数组维数*sizeof(元素数据类型),数组名表示内存首地址,是地址常量,一维数组的引用数组必须先定义,后使用只能逐个引用数组元素,不能一次引用整个数组数组元素表示形式:数组名下标其中:下标可以是常量或整型表达式,例 int i=15;int datai;(不能用变量定义数组维数),例 int a10;printf(“%d”,a);()必须 for(j=0;j10;j+)printf(“%dt”,aj);(),例 int data5;data5=10;/C语言对数组不作越界检查,使用时要 注意,一维数组的初始化初始化方式,在定义数组时,为数组元素赋初值(在编译阶段使之得到初值),int a5=1,2,3,4,5;等价于:a0=1;a1=2;a2=3;a3=4;a4=5;,说明:数组不初始化,其元素值为随机数对static数组元素不赋初值,系统会自动赋以0值,当全部数组元素赋初值时,可不指定数组长度,如 int a5=6,2,3;等价于:a0=6;a1=2;a2=3;a3=0;a4=0;如 int a3=6,2,3,5,1;(),static int a5;等价于:a0=0;a1=0;a2=0;a3=0;a4=0;,只给部分数组元素赋初值,int a=1,2,3,4,5,6;编译系统根据初值个数确定数组维数,程序举例,例1若要求定义具有10个int 型的元素一维数组a,则以下定义错误的是:A)#define N 10 int aN;B)#define n 5 int a2*n;C)int a5+5;D)int n=10,an;例2(08/9 21)若有定义语句:int m=5,4,3,2,1,i=4;则下面对m数组元素的引用中错误的是()A)m-i B)m2*2 C)mm0 D)mmi例3(08/9)32)有如下程序:#include void fun(int a,int b)int t;t=a;a=b;b=t;main()int c10=1,2,3,4,5,6,7,8,9,0,i;for(i=0;k10;i+=2)fun(ci,ci+1);for(i=0;k10;i+)printf(%d,ci);printf(n);程序的运行结果是 A)1,2,3,4,5,6,7,8,9,0,B)2,1,4,3,6,5,8,7,0,9,C)0,9,8,7,6,5,4,3,2,1,D)0,1,2,3,4,5,6,7,8,9,例4 08/4(31)有以下程序#include main()int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i;for(i=0;i12;i+)csi+;for(i=1;i5;i+)printf(%d,ci);printf(n);程序的运行结果是()。A)1 2 3 4 B)2 3 4 4C)4 3 3 2 D)1 1 2 3,8.2 二维数组及多维数组二维数组的定义定义方式:数据类型数组名常量表达式常量表达式;,数组元素的存放顺序原因:内存是一维的二维数组:按行序优先,例 int a34;float b25;int c234;int a3,4;(),行数,列数,元素个数=行数*列数,二维数组理解,每个元素ai由包含4个元素的一维数组组成,二维数组a是由3个元素组成,二维数组元素的引用形式:数组名下标下标二维数组元素的初始化分行初始化:,按元素排列顺序初始化,例1则以下数组定义错误的是:_ A)int x3=0;B)int x23=1,2,3,4,5,6;C)int x3=1,2,3,4,5,6;D)int x23=1,2,3,4,5,6;,例2以下程序:main()int i,t3=9,8,7,6,5,4,3,2,1;for(i=0;i3;i+)printf(“%d”,t2-ii;程序执行后的输出结果是:_ A)7 5 3 B)3 5 7 C)3 6 9 D)7 5 1,例3 08/4(26)若有定义:int a23;,以下选项中对a 数组元素正确引用的是()。A)a2!1 B)a23 C)a 03 D)a12!1例4 08/9 12以下程序按下面指定的数据给x数组的下三角置数,并按如下形式输出,请填空。4 3 7 2 6 9 1 5 8 10#include main()int x44,n=0,i,j;for(j=0;j=j;【12】)n+;xij=【13】;for(i=0;i4;i+)for(j=0;j=i;j+)printf(%3d,xij);printf(n);,(29)有以下程序#includemain()int a5=1,2,3,4,5,b5=0,2,1,3,0,i,s=0 for(i=0;i main()int b3 3=0,1,2,0,1,2,0,1,2,i,j,t=1;for(i=0;i3;i+)for(j=i;j=i;j+)t+=bibji;Printf(%dn,t);程序运行后的输出结果是A)1 B)3 C)4 D)9,2010年3月试题,第七章 指 针,C程序设计中使用指针可以:(了解)使程序简洁、紧凑、高效有效地表示复杂的数据结构动态分配内存得到多于一个的函数返回值,7.1 指针类型和指针变量,程序中:int i;float k;,内存中每个字节有一个编号-地址,i,k,编译或函数调用时为其分配内存单元,变量是对程序中数据存储空间的抽象,7.1.1 地址和指针的概念,1、地址的概念,2、3、指针类型与指针变量指针类型:地址也是数,这类数据就是指针变量:专门存放地址的变量叫,2000,指针,指针变量,变量的内容,变量的地址,&与*运算符含义,含义:取变量的地址单目运算符优先级:2结合性:自右向左,含义:取指针所指向变量的内容单目运算符优先级:2结合性:自右向左,两者关系:互为逆运算理解,i_pointer-指针变量,它的内容是地址量*i_pointer-指针的目标变量,它的内容是数据&i_pointer-指针变量占用内存的地址,i_pointer&i&(*i_pointer)i*i_pointer*(&i),i_pointer=&i=&(*i_pointer)i=*i_pointer=*(&i),直接访问与间接访问直接访问:按变量地址存取变量值间接访问:通过存放变量地址的变量去访问变量,例 i=3;-直接访问,3,例*i_pointer=20;-间接访问,20,例 k=i;-直接访问 k=*i_pointer;-间接访问,例 k=i;k=*i_pointer;,7.2 指针变量的定义一般形式:存储类型 数据类型*指针名;,合法标识符,指针变量本身的存储类型,指针的目标变量的数据类型,表示定义指针变量不是*运算符,例 int*p1,*p2;float*q;static char*name;,注意:1、int*p1,*p2;与 int*p1,p2;2、指针变量名是p1,p2,不是*p1,*p23、指针变量只能指向定义时所规定类型的变量4、指针变量定义后,变量值不确定,应用前必须先赋值,指针变量的初始化和指针所指的变量一般形式:存储类型 数据类型*指针名=初始地址值;,赋给指针变量,不是赋给目标变量,例 int i;int*p=,变量必须已说明过类型应一致,例 int i;int*p=,用已初始化指针变量作初值,例 main()int i;static int*p=.(),不能用auto变量的地址去初始化static型指针,7.3 指针变量的使用,例 main()int i=10;int*p;*p=i;printf(“%d”,*p);,危险!,注意:1、指针变量必须先赋值,再使用(没赋初值时为随机地址)2、不允许将地址赋给一般变量,也不许将数值赋给指针变量;3、级别相同才可相互赋值。,零指针与空类型指针零指针:(空指针)定义:指针变量值为零表示:int*p=0;,p指向地址为0的单元,系统保证该单元不作它用表示指针变量值没有意义,#define NULL 0int*p=NULL:,p=NULL与未对p赋值不同用途:避免指针变量的非法引用在程序中常作为状态比较,例 int*p;.while(p!=NULL).,void*类型指针表示:void*p;使用时要进行强制类型转换,例 char*p1;void*p2;p1=(char*)p2;p2=(void*)p1;,表示不指定p是指向哪一种类型数据的指针变量,main()int a=7,b=8,*p,*q,*r;p=,例1、以下程序的运行结果是:_,考学结合例题:,2、设已有定义:float x;则以下对指针变量p进行定义且赋初值的语句中正确的是()A)float*p=1024;B)int*p=(float x);C)float p=,4、(05/9 28)设有定义:int n1=0,n2,*p=的输出结果是()。A)随机值 B)0 C)x的地址 D)p的地址,7.4 指针和函数 7.4.1 指针变量作函数参数7.4.2 返回指针值的函数7.4.3 指向函数的指针变量,swap(int*p1,int*p2)int p;p=*p1;*p1=*p2;*p2=p;main()int a,b;int*pointer_1,*pointer_2;scanf(%d,%d,5,9,2000,2002,5,9,COPY,5,例 将数从大到小输出,7.4.1 指针变量作为函数参数,swap(int*p1,int*p2)int p;p=*p1;*p1=*p2;*p2=p;main()int a,b;int*pointer_1,*pointer_2;scanf(%d,%d,5,9,2000,2002,5,9,例 将数从大到小输出,运行结果:9,5,地址传递,swap(int*p1,int*p2)int*p;*p=*p1;*p1=*p2;*p2=*p;main()int a,b;int*pointer_1,*pointer_2;scanf(%d,%d,运行结果:9,9,编译警告!结果不对!,int x;int*p=,5,9,2000,2002,9,9,COPY,假设2000,例 将数从大到小输出,swap(int x,int y)int t;t=x;x=y;y=t;main()int a,b;int*pointer_1,*pointer_2;scanf(%d,%d,运行结果:5,9,值传递,5,9,2000,2002,COPY,5,5,9,例 将数从大到小输出,运行结果:5,9,swap(int*p1,int*p2)int*p;p=p1;p1=p2;p2=p;main()int a,b;int*pointer_1,*pointer_2;scanf(%d,%d,5,9,2000,2002,COPY,2000,地址传递,2000,2002,例 将数从大到小输出,Void f(int y,int*x)y=y+*x;*x=*x+y;main()int x=2,y=4;f(y,),例:以下程序的运行结果是:_,考学结合例题:,7.4.2 返回指针的函数(返回值为某指针类型的函数)函数定义形式:类型标识符*函数名(参数表);例 int*f(int x,int y),例 写一个函数,求两个int型变量中居于较大值的变量的地址,2,3,2002,2000,*,例 写一个函数,求两个int型变量中居于较大值的变量的地址,2,3,3,2,*,例 写一个函数,求两个int型变量中居于较大值的变量的地址,不能返回形参或局部变量的地址,思考为什么?,200A,7.4.3 指向函数的指针 函数在编译时被分配的入口地址(程序段的存储地址)称为函数指针,用函数名表示。我们将这一地址存到一个指针变量里去,这个变量就是指向函数的指针变量。,函数指针变量赋值:如p=max;,函数返回值的数据类型,专门存放函数入口地址可指向返回值类型相同的不同函数,指向函数的指针变量定义形式:数据类型(*指针变量名)();如 int(*p)();,函数指针变量指向的函数必须有函数说明,函数调用形式:c=max(a,b);c=(*p)(a,b);c=p(a,b);对函数指针变量pn,p+,p-无意义,()不能省int(*p)()与 int*p()不同,用函数指针变量作函数参数,例:用函数指针变量作参数,求最大值、最小值和两数之和,08/4(40)设有定义语句int(*f)(int);,则以下叙述正确的是()。A)f 是基类型为int 的指针变量B)f 是指向函数的指针变量,该函数具有一个int 类型的形态C)f 是指向int 类型一维数组的指针变量D)f 是函数名,该函数的返回值是其类型为int 类型的地址09/9(33)设有以下函数:void fun(int n,char*s)则下面对函数指针的定义和赋值均正确的是A)void(*pf)();pf=fun;B)void*pf();pf=fun;C)void*pf();*pf=fun;D)void(*pf)(int,char);pf=&fun;,考学结合例题:,1、有以下程序 main()int a=1,b=3,c=5;int*p1=,考学结合例题:,

    注意事项

    本文(计算机二级C语言考试C语言学习第5讲.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开