C语言复习重点

上传人:yo****e 文档编号:59474553 上传时间:2022-03-03 格式:DOC 页数:30 大小:169KB
收藏 版权申诉 举报 下载
C语言复习重点_第1页
第1页 / 共30页
C语言复习重点_第2页
第2页 / 共30页
C语言复习重点_第3页
第3页 / 共30页
资源描述:

《C语言复习重点》由会员分享,可在线阅读,更多相关《C语言复习重点(30页珍藏版)》请在装配图网上搜索。

1、C语言程序设计复习重点第一章 C语言概述1、C语言的特点包括:结构化的程序设计语言、语句简洁、紧凑,功能强大、移植性好等等,重要的一点是它允许直接对硬件进行操作。2、C程序由函数组成,一个C程序必须包含一个main函数,也可包含一个main函数和若干个其他函数。main函数的位置可以任意,但C程序总是从main函数开始执行的。3、C程序的每个语句和数据声明的最后必须有一个分号。4、开发一个C程序,要经过编辑、编译、连接和运行四个步骤,形成.c和.obj以及.exe三个文件。5、可以使用VC+ 6.0编辑和运行C程序。习题1-1#include void main ( ) printf (*n)

2、; printf( Very Good!n); printf (*n);习题1-2#include void main()int a,b,c,max; printf(please input a,b,c:n); scanf(%d,%d,%d,&a,&b,&c); max=a; if (maxb) max=b; if (maxc) max=c; printf(The largest number is %dn,max);第二章 数据的存储与运算1、常量和变量(1)常量是在程序中不能被更改的值,包括直接常量和符号常量;(2)变量在程序中可以被更改,通过变量可以引用存储在内存中的数据。2、C语言提供

3、了四种数据类型:基本类型、构造类型、指针类型和空类型。3、基本数据类型又包括三类:整型、实型和字符型。4、整型数据的分类:整型分为短整型、整型、长整型,每种整型又可分为有符号型和无符号型。5、实型数据分类:单精度实型、双精度实型和长双精度实型。float型7位,double型15-16位,实型数据有舍入误差。6、字符型变量可以存储单个字符,并且只能存放一个字符。C语言中,字符型数据在内存中的存储形式是什么呢?字符型变量存放的是字符对应的ASCII码。7、算术运算符提供运算功能,包括+、-、*、/、%、+和- -。8、各类数值型数据间的混合运算,转换原则:字节少的数据转化成字节多的类型。9、强制

4、类型转换运算符: (类型名)(表达式)。10、!(非) 算术运算符 关系运算符 &和| 赋值运算符。习题2-3#include void main()char c1=C,c2=h,c3=i,c4=n,c5=a; c1=c1+4; c2=c2+4; c3=c3+4; c4=c4+4; c5=c5+4; printf(password is %c%c%c%c%cn,c1,c2,c3,c4,c5);习题2-4(1)可以。因为在可输出的字符范围内,用整型和字符型作用相同。运行结果为:a b97 98(2)c1和c2定义为int型时,输出:! B289 322c1和c2为int型时,可正常存放数据,输出

5、289和322;输出字符形式时,自动截取低8位二进制数,得出对应此值的ASCII码的字符。c1和c2为char型时,输出:! B33 66原因提示警告信息,多字节给字节少的变量赋值,int型4个字节给char型1个字节的变量赋值,自动截取int型数据的低8位二进制数赋值。第三章 最简单的C程序设计顺序程序结构1、算法就是解决问题的具体方法与步骤。算法的四种表示方法:自然语言、流程图、N-S流程图、伪代码。2、C程序的三种基本结构:顺序结构、选择结构、循环结构。3、C语言的5类语句:控制语句(9种),函数调用语句,表达式语句,空语句,复合语句。4、赋值表达式的一般形式(1)变量 赋值运算符 表达

6、式(2)加括号的赋值表达式可作为左值,其他表达式和常量都不能作为左值。例: (a=3*5)=4*35、数据的输入与输出(1)printf() 和 scanf() 函数属于格式输入输出函数;(2)getchar() 和 putchar() 函数用来输入输出单个字符的函数。习题3-5#include void main ()float h,r,l,s,sq,vq,vz; float pi=3.141526; printf(请输入圆半径r,圆柱高h:); scanf(%f,%f,&r,&h); /要求输入圆半径r和圆柱高h l=2*pi*r; /计算圆周长l s=r*r*pi; /计算圆面积s sq

7、=4*pi*r*r; /计算圆球表面积sq vq=4.0/3.0*pi*r*r*r; /计算圆球体积vq vz=pi*r*r*h; /计算圆柱体积vz printf(圆周长为: l=%6.2fn,l); printf(圆面积为: s=%6.2fn,s); printf(圆球表面积为: sq=%6.2fn,sq); printf(圆球体积为: v=%6.2fn,vq); printf(圆柱体积为: vz=%6.2fn,vz); 习题3-6#include void main()float c,f; printf(请输入一个华氏温度:); scanf(%f,&f); c=(5.0/9.0)*(f-

8、32); /*注意5和9要用实型表示,否则5/9值为0*/ printf(摄氏温度为:%5.2fn,c);第四章 选择结构程序设计1、关系运算符(6种)运用测试两个操作数之间的关系。2、关系表达式计算出的值始终为逻辑真(非0)或逻辑假(0)。3、逻辑运算符用于组合多个条件(& 和 |)或者为某一条件取反,逻辑表达式的值始终为逻辑真1或逻辑假0。4、逻辑表达式求解中,所有逻辑运算符都要被执行吗?不是的,例如:1) a&b&c 2) a|b|c5、条件结构解决了程序中需要根据不同情形进行判断的情况。6、if语句的一般形式:简单if语句和if-else语句。7、条件运算符是 ifelse 语句的另一

9、种表现形式。8、多重if结构是if-else的另一种形式 ,也称为阶梯式if-else-if。退而求其次 9、嵌套if结构:逐层细化,逐层筛选,精益求精。 10、C语言规定,嵌套if结构中每个else部分总是属于前面最近的那个缺少对应的else部分的if语句。11、switch结构也可以用于多分支选择。用于分支条件的表达式可以是任意类型。通过判断该表达式的值是否等于某些值(case罗列的),然后根据不同的情况,执行不同的操作。习题4-5方法一:#include void main()int a,b,c,max; printf(please input a,b,c:n); scanf(%d,%d

10、,%d,&a,&b,&c); max=a; if (maxb) max=b; if (maxc) max=c; printf(The largest number is %dn,max);方法二:#include void main() int a,b,c,temp,max; printf(请输入三个整数:); scanf(%d,%d,%d,&a,&b,&c); temp=(ab)?a:b; /*将a和b中的大者存入temp中*/ max=(tempc)?temp:c; /*将a和b中的大者与c比较,取最大者*/ printf(三个整数的最大数是%dn,max);习题4-6方法一:#inclu

11、de void main() float score; char grade; printf(请输入学生成绩:); scanf(%f,&score); while (score100|score0)printf(n 输入有误,请重输);scanf(%f,&score); /*应用switch语句解决问题:*/ switch(int)(score/10) case 10:case 9: grade=A;break;case 8: grade=B;break;case 7: grade=C;break;case 6: grade=D;break;default: grade=E; printf(成

12、绩是 %5.1f,相应的等级是%c.n ,score,grade);方法二:#include void main() float score; printf(请输入学生成绩:); scanf(%f,&score); while (score100|score=90) printf(成绩是 %5.1f,相应的等级是A.n ,score); else if(score=80) printf(成绩是 %5.1f,相应的等级是B.n ,score); else if(score=70) printf(成绩是 %5.1f,相应的等级是C.n ,score); else if(score=60) prin

13、tf(成绩是 %5.1f,相应的等级是D.n ,score); else printf(成绩是 %5.1f,相应的等级是E.n ,score); 习题4-8方法一:#include void main() long i; double bonus,bon1,bon2,bon4,bon6,bon10; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+200000*0.05; bon6=bon4+200000*0.03; bon10=bon6+400000*0.015; printf(请输入利润i:); scanf(%ld,&i); if (i

14、=100000) bonus=i*0.1; else if (i=200000) bonus=bon1+(i-100000)*0.075; else if (i=400000) bonus=bon2+(i-200000)*0.05; else if (i=600000) bonus=bon4+(i-400000)*0.03; else if (i=1000000) bonus=bon6+(i-600000)*0.015; else bonus=bon10+(i-1000000)*0.01; printf(奖金是: %10.2fn,bonus); 方法二:#include void main()

15、 long i; double bonus,bon1,bon2,bon4,bon6,bon10; int branch; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+200000*0.05; bon6=bon4+200000*0.03; bon10=bon6+400000*0.015; printf(请输入利润i:); scanf(%ld,&i); branch=i/100000; if (branch10) branch=10; switch(branch) case 0:bonus=i*0.1;break; case1:bonus=

16、bon1+(i-100000)*0.075;break;case 2:case3: bonus=bon2+(i-200000)*0.05;break;case 4:case5: bonus=bon4+(i-400000)*0.03;break;case 6:case 7:case 8:case9:bonus=bon6+(i-600000)*0.015;break;case10: bonus=bon10+(i-1000000)*0.01; printf(奖金是 %10.2fn,bonus); 习题4-9#include void main() int t,a,b,c,d; printf(请输入四

17、个数:); scanf(%d,%d,%d,%d,&a,&b,&c,&d); if (ab) t=a;a=b;b=t; if (ac) t=a;a=c;c=t; if (ad) t=a;a=d;d=t; if (bc) t=b;b=c;c=t; if (bd) t=b;b=d;d=t; if (cd) t=c;c=d;d=t; printf(排序结果如下: n); printf(%d %d %d %d n ,a,b,c,d); 第五章 循环结构程序设计1、循环结构的特点是:在给定条件成立时,重复执行某程序段,直到条件不成立为止。2、设计循环结构要考虑两个问题:一是循环体,二是循环结束条件。3、w

18、hile 循环用于在给定条件为真的情况下重复执行一组操作(1)while循环的一般形式及其执行过程:一般形式:while (表达式) 语句(注意后面没有分号)(2)while循环先判断后执行4、do-while循环先执行后判断,因此循环将至少执行一次。 do-while循环的一般形式及其执行过程:一般形式:do循环体语句while (表达式); (注意后面有分号)5、在循环中,需要修改循环变量的值以改变循环条件,使循环趋于结束,否则有可能形成死循环。6、for 循环与 while 循环类似,属于先判断后执行,既可用于循环次数确定的情况,也可用于次数不确定,仅给出循环结束条件的情况。7、for

19、语句的一般形式及其执行过程:一般形式:for(表达式1;表达式2;表达式3)语句 (注意后面没有分号)8、for语句的最简单应用形式:for(循环变量赋初值;循环条件;循环变量增值) 语句9、break 语句用在循环中时,可以直接终止循环,将控制流转向循环后面的语句。10、continue 语句的作用是跳过循环体中剩余的语句而执行下一次循环。 11、嵌套循环时,必须将被嵌套的循环语句完整地包含在外层循环的循环体内。习题5-1#include # include void main() int m,k,i,n=0; for(m=101;m=200;m=m+2) k=sqrt(m); for (i

20、=2;i=k+1) printf(%d ,m); n=n+1; if(n%10=0) printf(n); printf (n);习题5-3#include void main() int i,j,k,n; printf(parcissus numbers are ); for (n=100;n1000;n+) i=n/100; j=n/10-i*10; k=n%10; if (n=i*i*i + j*j*j + k*k*k) printf(%d ,n); printf(n);习题5-4#include void main() int day,x1,x2; day=9; x2=1; while

21、(day0) x1=(x2+1)*2; /*第1天的桃子数是第2天桃子数加1后的2倍.*/ x2=x1; day-; printf(total=%dn,x1); 习题5-5#include void main() double sn=100,hn=sn/2; int n; for (n=2;n=10;n+) sn=sn+2*hn; /*第n次落地时共经过的米数*/ hn=hn/2; /*第n次反跳高度*/ printf(第10次落地时共经过%f米n,sn); printf(第10次反弹%f米n,hn);习题5-7#include void main() char i,j,k; /*i是a的对手

22、;j是b的对手;k是c的对手*/ for (i=x;i=z;i+) /*不考虑已设置的比赛名单问题,则a的对手可以是XY*/ for (j=x;j=z;j+) /*不考虑已设置的比赛名单问题,则b的对手可以是XY*/ if (i!=j) /*不考虑已设置的比赛名单问题,a和b的对手不能是同一人,所以i!=j*/ for (k=x;k=z;k+)if (i!=k & j!=k) /*不考虑已设置的比赛名单问题,c和a和b的对手不能是同一人*/ if (i!=x & k!=x & k!=z) /*在c和a和b的对手不是同一人的基础上,再满足a不和x比,c不和x、z比*/ printf(A-%cnB

23、-%cnC-%cn,i,j,k);第六章 利用数组处理批量数据1、数组是可以在内存中连续存储多个元素的结构,数组中的所有元素必须属于相同的数据类型。2、数组必须先声明,然后才能使用。声明一个数组只是为该数组留出内存空间,并不会为其赋任何值。3、一维数组的定义方式:类型说明符 数组名 整型常量表达式4、数组的元素通过数组下标访问。5、一维数组可用一个循环动态赋值,而二维数组可用嵌套循环动态赋值。6、二维数组可以看作是由一维数组的嵌套而构成的。例6.2例6.3例6.5习题6-1#include void main() int a10,i,sum=0; float aver; for(i=0;i10

24、;i+) printf(“请输入一个整数成绩:n”); scanf(“%d”,&ai); for(i=0;i10;i+) sum+=ai; aver=sum/10.0;printf(“10个学生的平均成绩为 aver=%5.2fn”,aver);习题6-2#include void main() int a10,i,max,k; for(i=0;i10;i+) printf(“请输入一个整数成绩:n”); scanf(“%d”,&ai); max=a0; k=0; for(i=0;imax) max=ai; k=i; printf(“最高分max=%d,序号k=%dn”,max,k);习题6-

25、3# include void main() int i,j; float a44=0,sum; for(i=0;i3;i+) /控制行 for(j=0;j4;j+) /控制列变化 scanf(“%f”,&aij); for(j=0;j4;j+) /控制列变化 sum=0; for(i=0;i3;i+) /控制行 sum+=aij; /求每列的和 a3j=sum/3.0; /求每列平均值放在第4行 for(j=0;j4;j+) /控制列 printf(“%5.2f”,a3j); /输出第4行各列的值习题6-4方法一:# include void main() int temp,i,j,m,n,

26、k,flag5; /flag数组存放学生学号 float a55,sum,t; for(i=0;i5;i+) /控制行,学生 printf(请输入第%d个学生四门课成绩n,i+1); for(j=0;j4;j+) /控制列变化,科目成绩 scanf(%f,&aij); printf(学号 语文 数学 物理 英语n); for(i=0;i5;i+) /控制行,学生 printf(%3d ,i+1);/输出学生序号 for(j=0;j4;j+) /控制列变化,科目成绩 printf(%6.1f,aij); /输出学生未操作成绩表 flagi=i+1; printf(n);/换行,输出下一个学生成绩

27、 for(i=0;i5;i+) /控制行变化,学生 sum=0; for(j=0;j4;j+) /控制列,科目成绩 sum+=aij; /对每列成绩求和 ai4=sum/4; /以下for循环给5个学生的平均成绩排序 for(m=0;m4;m+) /进行4次循环,实现4趟比较for(n=0;n4-m;n+) /每趟4-m次比较 if(an4an+14) for(k=0;k5;k+) /完成学生的四门成绩与平均成绩5个数的交换 t=ank; ank=an+1k; an+1k=t; temp=flagn; flagn=flagn+1; flagn+1=temp; printf(名次 学号 语文 数

28、学 物理 英语 平均n); for(i=0;i5;i+) /控制行,学生 printf(%3d %3d,i+1,flagi);/输出学生名次和学号 for(j=0;j5;j+) /控制列 printf(%7.1f,aij); printf(n); /换行,输出下一个学生成绩 方法二:# include void main() int i,j,m,n,k; float a55,sum,t; for(i=0;i5;i+) /控制行,学生 printf(请输入第%d个学生四门课成绩n,i+1); for(j=0;j4;j+) /控制列变化,科目成绩 scanf(%f,&aij); printf(学号

29、 语文 数学 物理 英语n); for(i=0;i5;i+) /控制行,学生 printf(%3d ,i+1);/输出学生序号 for(j=0;j4;j+) /控制列变化,科目成绩 printf(%6.1f,aij); /输出学生未操作成绩表 printf(n);/换行,输出下一个学生成绩 for(i=0;i5;i+) /控制行变化,学生 sum=0; for(j=0;j4;j+) /控制列,科目成绩 sum+=aij; /对每列成绩求和 ai4=sum/4; /以下for循环给5个学生的平均成绩排序 for(m=0;m4;m+) /进行4次循环,实现4趟比较for(n=0;n4-m;n+)

30、/每趟4-m次比较 if(an4an+14) for(k=0;k5;k+) /完成学生的四门成绩与平均成绩5个数的交换 t=ank; ank=an+1k; an+1k=t; printf(学号 语文 数学 物理 英语 平均n); for(i=0;i5;i+) /控制行,学生 printf(%3d ,i+1);/输出学生序号 for(j=0;j5;j+) /控制列 printf(%6.1f,aij); printf(n); /换行,输出下一个学生成绩 习题6-5方法一:#include #define N 5void main() int aN,i,temp; printf(enter arra

31、y a:n); for (i=0;iN;i+) scanf(%d,&ai); printf(array a:n); for (i=0;iN;i+) printf(%4d,ai); for (i=0;iN/2;i+) /循环的作用是将对称的元素的值互换 temp=ai; ai=aN-i-1; aN-i-1=temp; printf(nNow,array a:n); for (i=0;iN;i+) printf(%4d,ai); printf(n); 方法二:#include #define N 5void main() int aN,bN,i; printf(enter array a:n);

32、for (i=0;iN;i+) scanf(%d,&ai); printf(array a:n); for (i=0;iN;i+) bN-1-i=ai; /*将数组a中的元素在数组b中逆序存放,即将a0放在b4中,将a1放在b3中,依次类推*/ printf(%4d,ai); for (i=0;iN;i+) /循环的作用是将b数组中的元素赋给a数组对应元素 ai=bi; printf(nNow,array a:n); for (i=0;iN;i+) printf(%4d,ai); printf(n); 第七章 用函数实现模块化程序设计1、函数是C语言的基本单位,是程序中的一个相对独立的单元或模

33、块,程序在需要时可以任意多次地调用函数来完成特定功能。2、函数的分类:从用户使用的角度,分为标准函数和自定义函数;从函数形式看,分为无参函数和有参函数。3、函数定义的结构包括:函数首部(函数类型、函数名、参数列表)和函数体。4、函数声明的结构包括:函数类型、函数名、形参的类型加分号,即函数首部加分号,它不包含函数体。 同时,在函数声明中也可以不写形参名,而只写形参的类型。因为编译系统只检查参数个数和参数类型及顺序。5、函数“定义”和“声明”的区别:函数的定义是指对函数功能的确立,函数的声明的作用则是把函数的相关属性通知编译系统,以便在调用该函数时系统进行对照检查。6、函数调用时程序控制流将转向

34、被调函数,被调函数执行结束时,控制流返回主调函数。函数调用共有三种形式,函数调用时,实参和形参在类型、顺序和数量上要一致。7、return 语句用于向调用函数返回值。当函数值的类型和return语句中表达式的值不一致时,以函数类型为准,即函数类型决定返回值类型。8、函数实参、形参及其之间的关系。9、C语言中的函数不可以嵌套定义,但可嵌套调用。 10、递归调用是指在调用一个函数的过程中又出现直接或间接地调用该函数本身。11、数组元素作函数实参与用普通变量作实参的作用是一样的,是单向的值传递。12、用数组名作函数实参,此时形参要用数组名或者用指针变量,传递的是数组的首地址,是数组在内存中存储的起始

35、地址。13、不能被其他源文件调用,只能被本文件调用的函数,称为内部函数,关键字是static。14、能被其他源文件调用的函数,称为外部函数,关键字是extern,可省略不写。例7.3例7.5例7.6例7.9习题7-1#include void main() int hcf(int,int); int lcd(int,int,int); int u,v,h,l; scanf(%d,%d,&u,&v); h=hcf(u,v); printf(H.C.F=%dn,h); l=lcd(u,v,h); printf(L.C.D=%dn,l); int hcf(int u,int v)int t,r; i

36、f (vu) t=u;u=v;v=t; while (r=u%v)!=0) u=v; v=r; return(v);int lcd(int u,int v,int h) return(u*v/h); 习题7-2#include void main() int prime(int); int n; printf(ninput an integer:); scanf(%d,&n); if (prime(n) printf(n %d is a prime.n,n); else printf(n %d is not a prime.n,n); int prime(int n) int flag=1,i

37、; for (i=2;in/2 & flag=1;i+) if (n%i=0) flag=0; return(flag); 习题7-3#include #define N 3int arrayNN;void main() void convert(int array3);int i,j; printf(input array:n); for (i=0;iN;i+) for (j=0;jN;j+) scanf(%d,&arrayij); printf(noriginal array :n); for (i=0;iN;i+) for (j=0;jN;j+) printf(%5d,arrayij);

38、 printf(n); convert(array); printf(convert array:n); for (i=0;iN;i+) for (j=0;jN;j+) printf(%5d,arrayij); printf(n); void convert(int array3)int i,j,t; for (i=0;iN;i+) for (j=i+1;jN;j+) t=arrayij; arrayij=arrayji; arrayji=t; 习题7-7方法一:#include void main() void insert(int); int n; printf(n请输入一个四位数:);

39、scanf(%d,&n); insert(n); void insert(int m) int a,b,c,d; a=m/1000; b=m%1000/100; c=m%100/10; d=m%10; printf(%d %d %d %dn,a,b,c,d);方法二:#include #include void main()char str80; void insert(char ); printf(input four digits:); scanf(%s,str); insert(str);void insert(char str)int i; for (i=strlen(str);i0;

40、i-) str2*i=stri; str2*i-1= ; printf(output:n%sn,str);习题7-11#include #define N 10#define M 5float scoreNM;float a_stuN,a_courM;int r,c;void main() int i,j; float h; float s_var(void); float highest(); void input_stu(void); void aver_stu(void); void aver_cour(void); input_stu(); aver_stu(); aver_cour(

41、); printf(n NO. cour1 cour2 cour3 cour4 cour5 avern); for(i=0;iN;i+) printf(n NO %2d ,i+1); for(j=0;jM;j+) printf(%8.2f,scoreij); printf(%8.2fn,a_stui); printf(naverage:); for (j=0;jM;j+) printf(%8.2f,a_courj); printf(n); h=highest(); printf(highest:%7.2f NO. %2d course %2dn,h,r,c); printf(variance

42、%8.2fn,s_var();void input_stu(void) int i,j; for (i=0;iN;i+) printf(ninput score of student%2d:n,i+1); for (j=0;jM;j+) scanf(%f,&scoreij); void aver_stu(void) int i,j; float s; for (i=0;iN;i+) for (j=0,s=0;jM;j+) s+=scoreij; a_stui=s/5.0; void aver_cour(void) int i,j; float s; for (j=0;jM;j+) s=0; f

43、or (i=0;iN;i+) s+=scoreij; a_courj=s/(float)N; float highest() float high; int i,j; high=score00; for (i=0;iN;i+) for (j=0;jhigh)high=scoreij; r=i+1; c=j+1; return(high); float s_var(void) int i; float sumx,sumxn; sumx=0.0; sumxn=0.0; for (i=0;iN;i+) sumx+=a_stui*a_stui; sumxn+=a_stui; return(sumx/N

44、-(sumxn/N)*(sumxn/N); 习题7-13方法一:#include void main() int max_4(int a,int b,int c,int d); int a,b,c,d,max; printf(Please enter 4 interger numbers:); scanf(%d %d %d %d,&a,&b,&c,&d); max=max_4(a,b,c,d); printf(max=%d n,max); int max_4(int a,int b,int c,int d) int max_2(int a,int b); int m; m=max_2(max_

45、2(max_2(a,b),c),d); return(m);int max_2(int a,int b) return(ab?a:b);方法二:#include void main() int max_4(int a,int b,int c,int d); int a,b,c,d,max; printf(Please enter 4 interger numbers:); scanf(%d %d %d %d,&a,&b,&c,&d); max=max_4(a,b,c,d); printf(max=%d n,max); int max_4(int a,int b,int c,int d) int

46、 max_2(int a,int b); return(max_2(max_2(max_2(a,b),c),d);int max_2(int a,int b) return(ab?a:b);第八章 善于使用指针1、指针就是地址,存放变量的地址的变量称为指针变量。2、定义指针变量,例:int *p;3、与指针相关的运算符:&和*4、数组元素的指针就是数组元素的地址。5、数组的指针是指数组的起始地址。6、指针指向数组时的加、减、自加、自减运算。7、引用数组元素的方法:下标法、指针法。8、指针变量可以实现本身的值的改变。如p+是合法的;而数组名是数组的首地址,是常量,所以a+是错误的。9、指向函数的

47、指针变量称为函数的指针, 例: int (*pf)( );表示pf是一个指向函数入口的指针变量,该函数的返回值(函数值)是整型。10、一个数组,若其元素均为指针类型数据,称为指针数组。例:int*;11、定义一个指向指针的指针变量: char*;(可理解为“指针的指针”)例8.3习题8-1#include void main() void swap(int *p1,int *p2); int n1,n2,n3; int *p1,*p2,*p3; printf(input three integer n1,n2,n3:); scanf(%d,%d,%d,&n1,&n2,&n3); p1=&n1;

48、 p2=&n2; p3=&n3; if(n1n2) swap(p1,p2); if(n1n3) swap(p1,p3); if(n2n3) swap(p2,p3); printf(Now,the order is:%d,%d,%dn,n1,n2,n3); void swap(int *p1,int *p2) int p; p=*p1; *p1=*p2; *p2=p; 习题8-3#include void main() void input(int *); void max_min_value(int *); void output(int *); int number10; input(num

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!