您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计综合编程应用
C语言程序编程综合应用1指针和变量2数组3指针和数组4指针和字符串5函数与模块化编程C语言程序设计教程C语言程序设计教程2020/1/2921C语言的指针和变量一、指针变量概念及作用◆指针变量:用于存放地址的特殊变量◆指针变量作用:实现对其指向地址空间的间接访问二、指针变量及间接访问的应用◆指针变量定义:数据类型符*指针变量名;int*p;◆指针变量初始化:1)定义同时初始化:inta,*p=&a;2)先定义后初始化:inta,*p;p=&a;C语言程序设计教程2020/1/293◆指针变量应用:间接访问运算符(*):运算规则:1)对指针变量做直接访问找到其指向的内存空间地址;2)根据地址再对该地址空间进行访问。程序示例:main(){inta,*p=&a;scanf(“%d”,p);*p++;printf(“%d%d\n”,*p,a);}C语言程序设计教程2020/1/2942、数组一、数组概念及作用◆概念:具有相同数据类型的数据的有序集合◆数组作用:实现对其存储的批量数据的集中处理二、数组及其应用◆数组定义:数据类型符数组名[数组长度];inta[10];◆数组初始化:1)定义同时初始化:inta[]={1,2,3,4,5};2)先定义后初始化:inta[5],i;for(i=0;i5;i++)scanf(“%d”,&a[i]);C语言程序设计教程2020/1/295◆数组的访问:对于数值型数组只能对每个数组元素进行访问下标法:利用数组元素的下标(0~n-1)进行对各个数组元素的访问。访问规则:根据每个数组元素的下标直接对该下标所对应的数组元素空间进行访问操作。1、对单个数组元素的访问main(){inta[]={1,2,3,4,5};a[1]=a[2];printf(“%d\n”,a[1]);}C语言程序设计教程2020/1/2962、对整个数组的访问main(){inta[]={1,2,3,4,5},i;for(i=0;i5,i++)a[i]++;for(i=0;i5,i++)printf(“%d\n”,a[i]);}C语言程序设计教程2020/1/297字符数组一、字符数组的作用◆字符数组作用:实现对字符串的处理◆字符串概念:若干有效字符的序列;可包含转义字符、ASCⅡ码表中的字符;形式为:用双引号括起来的字符序列;例:Iamastudent.,Helloa[5]=;%f\n。字符串的结束标志:‘\0’。注:C语言无字符串类型,字符串是存放在字符数组中的。C语言程序设计教程2020/1/298二、字符数组及其应用◆数组定义:char数组名[数组长度];chara[10];◆数组初始化:1)定义同时初始化:chara[]={“student”};2)先定义后初始化:chara[30];scanf(“%s”,a);◆字符数组的访问:字符数组可以对每个数组元素进行访问也可以利用字符数组名对字符数组进行整体访问。下标法:利用数组元素的下标(0~n-1)进行对各个数组元素的访问。访问规则:根据每个数组元素的下标直接对该下标所对应的数组元素空间进行访问操作。C语言程序设计教程2020/1/299字符数组应用示例:main(){chara[30],b[30];inti,j;gets(a);for(i=0;a[i]!=‘\0’;i++)if(a[i]=‘0’&&a[i]=‘9’)b[j++]=a[i];b[j]=‘\0’;puts(b);}输入:a1b2c3d4输出:1234C语言程序设计教程2020/1/29103、指针与数组一、指针对数组的作用数组各个元素在内存中的有序存储为利用指针实现对其的访问提供了便利的条件,我们可利用指针的前后移动使用间接访问实现对数组各个元素的操作。二、指针对数组的操作◆定义指向数组的指针:inta[10],*p;◆指针初始化:1)定义同时初始化:inta[10],*p=a(或*p=&a[0]);2)先定义后初始化:inta[10],*p;p=a;(或p=&a[0];)C语言程序设计教程2020/1/2911指针法:利用指针和数组的指向关系间接地访问对各个数组元素。访问规则:建立指针和数组的指向关系后,利用指针的移动和间接访问符访问其指向的各个数组元素空间。1、对单个数组元素的访问main(){inta[]={1,2,3,4,5},*p=&[1];*p=a[2];p++printf(“%d%d\n”,a[1],*p);}C语言程序设计教程2020/1/29122、对整个数组的访问main(){inta[]={1,2,3,4,5},*p=a;for(;pa+5,p++)if(*p%2==0&&*p=0)*p=-*p;for(p=a;pa+5,p++)printf(“%d\n”,*p);}C语言程序设计教程2020/1/29134、指针与字符串一、指针对字符串的作用字符串各个字符在内存中的有序存储为利用指针实现对其的访问提供了便利的条件,我们可利用指针的前后移动使用间接访问实现对字符串的操作。二、指针对字符串的操作◆定义指向字符串的指针:char*p;◆字符指针初始化:1)定义同时初始化:char*p=“abcd”;2)先定义后初始化:char*p;p=“abcd”;C语言程序设计教程2020/1/2914程序示例1main(){chars[]=“aBcD”,*p=s;for(;*p!=‘\0’;p++)if(*p=‘A’&&*p=‘Z’)*p+=32;p=s;printf(“%s\n”,p);}C语言程序设计教程2020/1/2915程序示例2:main(){chara[30],b[30],*p,*q;p=a;q=b;gets(p);for(;*p!=‘\0’;p++)if(*p=‘0’&&*p=‘9’)*q++=*p;*q=‘\0’;puts(b);}输入:a1b2c3d4输出:1234C语言程序设计教程2020/1/29165函数与模块化编程一、模块化概念及作用◆模块化;在设计较复杂的程序时,我们一般采用的方法是:把问题分成几个部分,每部分又可分成更细的若干小部分,逐步细化,直至分解成很容易求解的小问题。◆模块化的作用:便于实现大型软件的并行开发、软件的调试及维护、软件的更新和升级。C语言程序设计教程2020/1/2917模块化编程在C语言中的应用;1、概述:C语言是以函数为驱动的语言,其模块化的应用就是将各个功能用函数加以实现,然后利用函数之间的调用和被调用的关系将各个独立的函数整合成一个完整的程序。2、函数的分类:1)根据返回值的有无可分为有返回值函数和无返回值函数;2)根据函数调用参数的有无可分为有参函数和无参函数;C语言程序设计教程2020/1/29183、函数的定义:返回值类型函数名(形参列表)例如:intfun(inta,intb)4、函数的结构:函数定义和函数体例如:intmax(inta,intb)/*定义函数max*/{inty;y=(ab)?a:b;/*条件表达式*/returny;/*函数结果的返回*/}C语言程序设计教程2020/1/29195、函数调用及参数传递:1)调用格式:函数名(实参列表)2)参数传递:◆实参和形参的匹配规则:●形式参数在函数中是变量名,在函数调用时,形参被分配相应的内存;●实际参数是表达式负责向对应的形参标识的内存单元传递数据;●实参与形参必须个数相同;●对应的形参和实参的类型必须一致;●实参和形参在各自列表中的次序要一致。C语言程序设计教程2020/1/2920◆参数传递的方法:●传值:将实参列表中各个实参的值依次复制到形参列表各个形参的内存空间中去。注:采用传值的方法只能从被调函数利用renturn语句返回一个值。main(){inta=2,b=5,c;intmax(int,int);c=max(a,b);printf(“max=%d”,c);}intmax(intx,inty){intz;if(x=y)z=x;elsez=y;returny;}C语言程序设计教程2020/1/2921●传地址:将实参列表中各个实参的地址依次复制到形参列表各个形参的内存空间中去。注:采用传地址的方法可以从被调函数隐形地返回多个值。main(){inta=2,b=5;voidswap(int*x,int*y);swap(&a,&b);printf(“%d,%d”,a,b);}voidswap(int*x,int*y){intz;z=*x;*x=*y;*y=z;}C语言程序设计教程2020/1/2922模块化编程程序示例程序示例1:按从小到大顺序输出2个整数及它们的乘积。
本文标题:C语言程序设计综合编程应用
链接地址:https://www.777doc.com/doc-3364281 .html