ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:21.25KB ,
资源ID:29375297      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29375297.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(零基础学c语言c语言基础.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

零基础学c语言c语言基础.docx

1、零基础学c语言c语言基础【零基础学c语言】c语言基础c语言基础在一维数组中,存在p+i=a+i,*(p+i)=*(a+i)=*(&ai)=aip1+n=a+n=&an;代表第n行的首地址。二维数组:*(p1+n)+0=*(a+n)+0=*(&an)代表n行0列地址。(*p)4指向的是含有4个整型元素的一维数组,默认p=a,指向0行首地址;p指向的二维的0行,加1是指向下一行,不指向每一行元素,要想求行列交点值那就取摸*(*(p+i)+j)、p+i表示行号,从而转到对应的行列数例如:(*p)4用法,输出任意一行一列的值#includevoidmain()inta33=1,2,3,4,5,6,7,

2、8,9,(*p)3,i,j;p=&a0;scanf(%d%d,&i,&j);printf(a%d,%d=%dn,i,j,*(*(p+i)+j);#includevoidmain()inta33=1,2,3,4,5,6,7,8,9,*p,i;p=a0;for(i=0;iprintf(%dt,*(p+i);/a0+1到a0+9可以输出所有的值printf(n);最多在一维数组中用到:*p1=*p2是把p1指向的变量的值改变,但p1所指向的变量不变,p1=p2,则是p1指向变量改变了,即p1不再指向原变量的地址,改为指向p2所指向的地址.题目:把数组a复制到b数组上法1#include/voidma

3、in()int*p,*p1,a=1,2,3,4,5,i,b5;p=a;p1=b;for(i=0;i*p1=*p;/赋值给他,但他们所指的变量都不变for(i=0;iprintf(%dt,bi);printf(n);printf(%dt,b4);/这样可以的,因为它记录了这个数组的地址以及对应素质printf(n);法2不能用,#includevoidmain()int*p,*p1,a=1,2,3,4,5,i,b5;p=a;p1=b;for(i=0;ip1=p;/导致指向的变量变了printf(%dt,*p1);printf(n);以上几题就用到第一段的方法案例1数组名做实形参数法1:#incl

4、ude/1230456,前后调换,voids(inta,intn)inti,t,k=(n-1)/2;for(i=0;it=ai;ai=an-1-i;/以下三个数组交换值固定格式an-1-i=t;main()inti;inta=1,2,3,0,4,5,6;for(i=0;iprintf(%d,ai);printf(n);s(a,7);for(i=0;iprintf(%d,ai);printf(n);法2:#include/1230567,前后调换,用的指针法voids(int*p,intn)inti,t,k=(n-1)/2;/for(i=0;it=*(p+i);*(p+i)=*(p+n-1-i)

5、;*(p+n-1-i)=t;main()inti;inta=1,2,3,0,5,6,7;for(i=0;iprintf(%d,ai);printf(n);s(a,7);for(i=0;iprintf(%d,ai);printf(n);#include/一般方法,1230456从大到小输出,数组名做形参数voids(inta,intn)inti,j,t;for(j=0;jfor(i=0;iif(ait=ai;ai=ai+1;ai+1=t;main()inta7=1,2,3,0,4,5,6,i;for(i=0;iprintf(%d,ai);printf(n);s(a,7);for(i=0;ipri

6、ntf(%d,ai);printf(n);#include/一般方法,1230456从大到小输出,数组名做形参数voids(inta,intn)inti,j,t;for(j=0;jfor(i=0;iif(ait=ai;ai=ai+1;ai+1=t;main()inta10,i;printf(pleaseinput10numbers:);for(i=0;iscanf(%d,&ai);s(a,10);for(i=0;iprintf(%d,ai);printf(n);下页c语言基础案例2数组名作实参,指针做形参数,#include/1230456从大到小输出,voids(int*p,intn)/调用

7、函数后,就相当于定义指针变量一样,p=a,当做自己数组处理,在之前里面不能出现其他的数组inti,j,t;for(j=0;jfor(i=0;iif(*(p+i)t=*(p+i);*(p+i)=*(p+i+1);/这题你应该用指针的。*(p+i+1)=t;main()inta10,i;printf(pleaseinput10numbers:);for(i=0;iscanf(%d,&ai);s(a,10);for(i=0;iprintf(%d,ai);printf(n);案例3实参和形参都是指针变量就把实参指针变量指向的数组都付给形参指针变量,当做自己的数组案例4实参为指针变量,形参为数组名#in

8、clude/3行4列输出,二维数组指针voidmain()inta34=1,2,2,2,3,4,4,5,5,6,9,0,i,*p;for(p=a0,i=1;pprintf(%dt,*p);if(i%4=0)printf(n);上面2-底一样的题目#include/输入行列号,输出任意一行一列元素,二维数组指针voidmain()inta34=1,2,2,2,3,4,4,5,5,6,9,0,i,j;printf(pleaseinputiandj:);scanf(%d,%d,&i,&j);/不需要的p=a0;/&a00printf(a%d,%d=%dn,i,j,*(ai+j);这两个最特殊:p指向

9、由m个数组元素构成的一维数组#include/3行4列输出,二维数组指针voidmain()inta34=1,2,2,2,3,4,4,5,5,6,9,0,i,j;int(*p)4;/虽然是二维数组,但是他这意思是p指向含有4个整形元素的一维数组,p=a;/意思是指向0行a0,p+1为a1行printf(pleaseinputiandj:);scanf(%d,%d,&i,&j);printf(a%d,%d=%dn,i,j,*(*(p+i)+j);/这是二维数组取地址方式#include/3行4列输出,二维数组指针voidmain()inta3=1,2,2,i,j;int(*p)3;/虽然是二维数

10、组,但是他这意思是p指向含有4个整形元素的一维数组,/p=a;/意思是指向0行a0,p+1为a1行/printf(pleaseinputiandj:);/scanf(%d,%d,&i,&j);/printf(a%d,%d=%dn,i,j,*(*(p+i)+j);/这是二维数组取地址方式p=&a;printf(%dn,(*p)2);题目为:有一个班,3个学生,都学4门学科,求所有的平均成绩,可以查出n个学生的成绩,查找有一门以上课程不及格的学生,输出他们的全部课程的成绩.把*a数组元素首地址赋给指针p,p就代表指向主调函数,#include,voidf(int*p,intn)int*p1,s=0

11、,av;p1=p+n;for(;ps=s+(*p);()av=s/n;printf(%dn,av);/av=3main()inta34=2,4,2,2,2,6,2,8,2,4,4,8;f(*a,12);/a是首行的地址&ao,p=a;*a指的是数组首元素地址a0+0,或者&a00,p=a0,把*a数组元素首地址赋给指针p把a数组赋给指针p,p就代表指向主调函数,voidf2(int(*p2)4,intn)/p指向的是含有4位整形数组的一维数组,对二维讲,她也是从一维看,由上而下一行看,对一维来说p=&a,取摸(*p)4inti,j;for(n=0;nfor(i=0;iif(*(*(p2+n)+

12、i)for(j=0;jprintf(%dt,*(*(p2+n)+j);/这三个黄色是固定搭配,死记printf(n);break;main()inta34=4,4,4,4,2,6,2,8,2,4,4,8;f(*a,12);/*a指的是数组首元素地址a0+0,或者&a00,p=a0,把*a数组元素首地址赋给指针pf1(a,2);printf(nn);f2(a,3);printf(n);上页下页c语言基础用二维数组求平均数voidmain()/inta34=1,2,2,2,3,4,4,5,5,6,9,0,*p,s=0,av;for(p=a0;pav=s/12;printf(%dn,av);对于一位

13、数组:字符数组指针和字符数组的相互应用:#includemain()char*s=abc;/定义的字符指针s默认指向字符串a首地址doprintf(%dt,*s%10);/*s取摸后再取余+s;/s指向下一个元素地址while(*s);printf(n);题目:1,定义一个字符数组,存放“ilovechina”,输出该字符串和第8个字符数组includevoidmain()charstring=ilovechina;/或者string='i','l','o','v','e','','c

14、9;,'h','i','n','a'等价printf(%sn,string);/为%d求得就是0元素的地址,%s输出ilovechinaprintf(%c,string7);/为%d求得就是7元素的地址asciic=99,%c输出c,%s就有问题printf(n);2,通过字符指针变量输出一个字符串:法1:#includevoidmain()chars=ilovechina;printf(%c,s1);/为%d求得就是0元素的地址,%s输出ilovechinaprintf(n);法2:#includevoidmain()char*

15、p=ilovechina;/固定格式,定义字符指针变量s,并对s初始化printf(%cn,p0);/结果是ip=212;/也可以对s重新赋值printf(%cn,a、1);printf(%sn,p);/p指向的是字符串常量的第一个字符,会自动加1指向下一个字符地址/输出的结果是212,s指向2,输出自动加1或者#includevoidmain()char*s;/固定格式,定义字符指针变量s,并对s初始化s=ilovechina;把字符数组首元素i地址赋给了sprintf(%sn,s);/结果是ilovechinasizeof与strien的用法:第一:对于字符指针数组char*s=01234

16、56789;sizeof(s)结果4,因为s是指向字符串常量的字符指针,sizeof获得的是一个指针的之所占的空间,应该是长整型的,所以是4sizeof(*s)结果1,因为*s是第一个字符其实就是获得了字符串的第一位'0'所占的内存空间,是char类型的,占了1位strlen(s)=10如果要获得这个字符串的长度,则一定要使用strlen(是获得有效字符长度,无0)例如:#include#includemain()charstr20=one*world,one*dream!,*p=str1;printf(%d,strlen(p);printf(%sn,p);/p指向的是字符串常

17、量的第一个字符,会自动加1指向下一个字符地址/或者str也可以输出字符串字符串比较函数:一般形式:strcmp(字符串1,字符串2)说明:当s1当s1=s2时,返回值=0当s1s2时,返回值0即:两个字符串自左向右逐个字符相比(按aScii值大小相比较),直到出现不同的字符或遇'0'为止。如:aaacomputercompare特别注意:strcmp(constchar*s1,constchar*s2)这里面只能比较字符串,不能比较数字等其他形式的参数。charname20;scanf(%s,name);/这个可以输入字符串scanf(%s,&name);错误的字符串连接函数:

18、#include#includevoidmain()inti;chara=123,a1=asd;printf(%s,strcat(a,a1);/a与a1两个字符串连接在一起123asd,字符串连接函数printf(n);/strcpy(a,a1);/把a1复制覆盖到a1,asd字符串复制函数#includevoidmain()chara5;printf(请输入字符数组a:);/在输入时,辨别谁是谁输入的,以空格为界限分开scanf(%s,a);/必须是数组名,printf(%s,a);printf(n);题目:将数组字符串a复制到数组b上,并输出数组b法1:#includevoidmain()

19、chara=im,b5;/b在定义时候一定要知道大小inti;for(i=0;*(a+i)!='0'i+)/不定义p也能用指针,用*(a+i)代替,遇到0就跳出结束输出,表示已处理完*(b+i)=*(a+i);*(b+i)='0'/一定把0复制过去给他printf(stringais:%sn,a);/下面三句也可以用printf(stringbis:%sn,b);代替printf(stringbis:);/for(i=0;bi!='0'i+)printf(%c,bi);printf(n);法2:#include/voidmain()char*p,

20、*p1,a=ilove,b7;inti;p=a;p1=b;for(i=0;i*p1=*p;/赋值给他,但他们所指的变量都不变for(i=0;iprintf(%c,bi);printf(n);法3:#includevoidmain()chara=im,b5,*p,*p1;/b在定义时候一定要知道大小inti;p=a;p1=b;/可省略for(p=a,p1=b;*p!='0'p+,p1+)/不定义p也能用指针,用*(a+i)代替,遇到'0'就跳出结束输出*p1=*p;*p1='0'printf(stringais:%sn,a);()printf(st

21、ringbis:);/下面三句也可以用printf(stringbis:%sn,b);代替for(i=0;bi!='0'i+)printf(%c,bi);printf(n);题目:用函数调用实现字符串的复制法1:#includevoidcopy(chara,intn)/数组名inti=0;charb20,*p,*p1;/b数组长度一定要大于等于调用函数的数组长度p=a;p1=b;for(i=0;i*p1=*p;for(i=0;iprintf(%c,bi);main()chara=ilovechina;charc=youlovechina;copy(c,15);/数组名print

22、f(n);copy(a,13);printf(n);上页下页c语言基础#includevoidcopy(charc,chard)/定义的数组,传递数组名或者数组名也可以用声明的指针代替inti=0;for(i=0;*(c+i)!='0'i+)/字符复制给另一方那就用左面的方法*(d+i)=*(c+i);*(d+i)='0'printf(%sn,c);printf(%sn,d);main()chara=im,b=in,*p,*p1;/b在定义时候一定要知道大小inti;p=a;p1=b;printf(%sn,a);printf(%sn,b);printf(覆盖b数

23、组后:n);copy(p,p1);/或者copy(a,b);传递数组名和指针都可以printf(n);法3:#includevoidcopy(charc,chard)inti=0;while(ci!='0')di=ci;i+;printf(%sn,c);printf(%sn,d);main()chara=im,b=in,*p,*p1;/b在定义时候一定要知道大小inti;p=a;p1=b;printf(%sn,a);printf(%sn,b);printf(覆盖b数组后:n);copy(p,p1);printf(n);#includevoidc(char*p1,char*p2)

24、inti;for(i=0;*(p1+i)!='0'i+)*(p2+i)=*(p1+i);*(p2+i)='0'main()char*a=wiqo;/定义声明字符指针变量,a指向字符串常量的第一个字符wchar*p,b=1227;p=b;c(a,p);printf(%sn,a);printf(%sn,b);#includevoidcopy(char*p,char*p1)inti=0;for(i=0;*(p+i)!='0'i+,p+,p1+)/不定义p也能用指针,用*(a+i)代替,遇到'0'就跳出结束输出*p1=*p;*p1=

25、9;0'main()chara=im,b=in,*p,*p1;/b在定义时候一定要知道大小p=a;p1=b;printf(%sn,a);printf(%sn,b);printf(覆盖b数组后:n);copy(p,p1);/printf(%sn,a);printf(%sn,b);指向函数的指针变量题目:输出a,b两个最大值#includeintmax(inta,intb)intz;if(ab)z=a;elsez=b;return(z);main()int(*p)(int,int);/这些都是必须要有的inta=2,b=4,c;p=max;c=(*p)(2,4);printf(%dn,c)

26、;题目:输入1,2,3选择调用哪个程序#includeintfun(intx,inty,int(*p)(int,int)/学会用fun函数的功能intr;r=(*p)(x,y);return(r);intmax(inta,intb)intz;if(ab)z=a;elsez=b;return(z);intmin(inta,intb)intz;if(ab)z=b;elsez=a;return(z);intsum(inta,intb)intz;z=a+b;return(z);main()inta=2,b=4,c,n;printf(用户输入选择是:);scanf(%dn,&n);if(n=1)c=fun(2,4,sum);if(n=2)c=fun(2,4,max);/只要写函数名就可以了if(n=3)c=fun(2,4,min);printf(%dn,c);被调用的指针函数返回指针值如下:题目:有3个同学,每一个学生有3门成绩,任意输入一个学生序号(序号从0开始),输出该生的所有成绩#include/指针函数定义套用格式int*c(int(*p1)3,intn)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1