C语言复习材料doc.docx
- 文档编号:12527614
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:26
- 大小:21.22KB
C语言复习材料doc.docx
《C语言复习材料doc.docx》由会员分享,可在线阅读,更多相关《C语言复习材料doc.docx(26页珍藏版)》请在冰点文库上搜索。
C语言复习材料doc
scanf(n%d\&x);
y二x;
if(y<0)
y=-y;
printf(n\ninteger:
%d>absolutevalue:
%d\nH,x,y);
I
4.输入两个数并判断两数相等否
#include
voidmain()
{inta,b;
printf("Enterintegera:
");
scanf(”%d”,&a);
printf("Enterintegerb:
");
scanf(”%d”,&b);
if(a==b)
printf("a==b\n");
else
printf("a!
=b\n");
I
5.输入两数并判断其大小关系
#include
voidmain()
{intx,y;
printf(HEnterintegerx,y:
n);scanf(”%d,%d”,&x,&y);
if(x!
=y)
if(x>y)printf(,,X>Y\nH);elseprintf(,,X else printf("X==Y\n"); I 6.显示1-10的平方 编程题: 1.求两数之和 #includc voidmain()/*求两数之和*/ { inta,b,sum;/*声明,定义变量为整型*/ /*以下3行为C语句*/ a二123: b二456; sum=a+b; printf(,zsumis%d\nr,,sum); } 2.输入三角形边长,求面积 #includc #include main() {floata,b,c,s,area; scanf(,,%f,%f,%f,,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(,,a=%7.2f,b=%7.2f,c=%7.2f, s=%7.2f\n,\a,b,c,s); printf(Harea=%7.2f\n,\area); ) 输入: 3,4,6」 输出: a=3.00,b=4.00,c= 6.00s=6.50 area=5.33 3.求一个数的绝对值 #inclucle voidmain() {intx,y; printf(HEntcraninteger: '1); #include voidmain() {inti=l; while(i<=10) {printf(”%d*%d=%d\n“,i,i,i*i); i++; 1 ) 7.用do-while循环求1到100的和 #include voidmain() {inti,sum=(); i=1; do {sum+=i; i++; )while(i<=100); printf("%d",suni); ) 另两种方法如下: 体会几种循环的不同 一・#includc voidmain() (inti,sum=0; i=l; while(i<=IOO) {sum=sum+i; i++; ) printf("%d",sum); ) 二.#includc voidinain() {inti,sum=0; for(i=l;i<=l(X);i++) sum+=i; printf("%d'\sum); )S.break举例: 输岀圆面积,面积大于100时停止 #dcfincPI3.14159 voidmain() { intr; floatarea; for(r=l;r<=10;r++) {area=PI*r*r; if(area>100)break; printf(nr=%d,area=%.2f\n,\r,area); I ) 9•把100-200之间的不能被3整除的数输出 #inelude voidmain() { intn; for(n=I00;n<=200;n++){if(n%3==0) continue; printf(“%d';n); ) ) 10.读十个整数存入数组,找出其中的最大值与最小值 #include #defineSIZE1() voidmain() {intx[SIZE],i,maximin; printf(MEnter10integers: \nH); for(i=0;i {printf(”%d: ”,i+l); scanf(”%d”,&x[i]); } max=min=x[0]; for(i=l;i {if(max if(min>x[i])min=x[i]; } printfC'Maximumvalueis%d\n",max);printf("Minimumvalueis%d\n",min); } 11.用数组求Fibonacci数列前20个数 Fibonacci数列: Fl=l(n=l)F2=l(n=2)Fn=Fn-1+Fn-2(n>=3) #include voidmain() {inti; intf[20]={l,l}; for(i=2;i<20;i++) f[i]=f[i-2]+f[i-l]; for(i=0;i<20;i++) {if(i%5==0)printf(”\n”); printfC'%l2d",f[i]); ) } 12•用冒泡法对十个数排序 #include voidmain() {inta[ll],i,j,t; printf("Inpiit1()numbers: \n"); for(i=l;i scanf(”%d”,&a[i]); printf(,,\nH);for(j=ly<=9J++) for(i=l;i<=l()-j;i++) if(a[i]>a[i+l]) {t=a[i];a[i]=a[i+l];a[i+l]=t;} printf("Thesortednumbers: \n");for(i=l;i I 13•将二维数组行列元素互换,存到另一个数组中 #include voidmain() {inta[2][3]={{1,2,3)44,5,6}); intb⑶⑵,i,j; printf("arraya: \n"); for(i=0;i<=l;i++) {for(j=0;j<=2;j++) {printf(”%5d“,a[i][j]); brjiril=a[i][j]; I prinlf(”\n”); I printf("arrayb: \n"); for(i=0;i<=2;i++) {for(j=0;jv=l;j++) primf(”%5d”,b[i]|j]); printf("\nM); 14•求二维数组中最大元素值及其行列号 #includc voidinain() {inta[3][4]={{! 2,3,4}, {9,8,7,6), {-10,10,-5,2}}; inti、jjow二0,colum二0,max;max=af01(0]; for(i=0;i<=2;i++) for(j=0;j<=3y++)if(a[i][j]>max){max=a[i]|j]; row=i; colum=j; ) printf("max=%d,row=%d>\colum=%d\n,\max,row,colum); ) 15•有三个字符串,找出其中最大者 #include #include voidmain() {charstring[20],str[3][20]; inti; for(i=0;i<3;i++) gets(str[i]); if(strcmp(str[O],str[1])>0)strcpy(string,str(OD; else strcpy(string,str[l]); if(strcmp(str[2],string)>0) strcpy(string,str[2]); printf(M\nThelargeststring is: \n%s\nH,string); I 16.有十个学生的成绩,求平均分 92856875548898 456179 #include main() {intk,a|I0J; for(k=0;k<10;k++) scanf(“%d”,&a[k]); for(k=0;k sum+=a[k]; printf(4*Averageis%d\n”,sum/10); ) 17.参数求值顺序 #include intf(inta,intb) {intc; if(a>b)c=l; elseif(a==b)c=0; elsec=-l; retum(c); ) voidmain() {inti=2,p; p二f(i,++i); printf(“%d”,p); ) 运算结呆是0 #include intf(inta,intb) {intc; if(a>b)c=l; elseif(a==b)c=0; elsec二 return(c); } voidmain() {inti=2,p; P二f(i,i++);printf("%d",p); } 运算结果是1 1&计算x的立方 #includc floatcube(floatx) {retum(x*x*x); } voidmain() {floata,product; printf(HPleaseinputvalueofa: H);scanf("%f',&a); product=cube(a); printfC^Cubeof%.4fis%.4f\n",a,product); ) 19.交换两个数 #inclucle voidswap(inta,intb) {inttemp; temp二a;a二b;b二temp; ) voidmain() {intx=7,y=l1; printf("x=%d,\ty=%d\n",x,y);pnntf(Mswappcd: \nH); swap(x,y);printf("x=%d,\ty=%d\n",x,y); } 与下边程序对比: #include voidswap(int*pl,int*p2) {intp; p=*pi; *pl=*p2; *p2=p; ) voidmain() {inta,b: scanf(”%d,%d”,&a,&b);printfCa=%d,b=%d\n,\a,b);prini『(“swapped: \n'');swap(&a、&b);printf(”a=%d,b=%d\n",a,b); I 20.求三个数中最大数和最小数的差值 #include intdif(intx,inty,intz); intmax(intx,intyjntz); intmin(intx,intyjntz); voidmain() {inta,b,c,d; scanf(”%d%d%d”,&a,&b,&c);d=dif(a,b,c); printf("Max-Min=%d\n",d); I int.dif(intxJnly,intz) {returnmax(x,y,z)-min(x,y,z);} intmax(intx,intyjntz) scanf(,,%d,\&score|i|); av=average(score,10); printf(nAverageis: %.2f\av); ) floataverage(intstuflO],intn) {inti; floatav,total=(); for(i=0;i total+=stu|i|; av=total/n; returnav; } 23.求二维数组中最大元素值 itmax_value(intarray[3][4]) {inti,j,k,max; max=array[0J[0J; for(i=0;i<3;i++) for(j=0;j<4;j++) if(array|il|j|>max) max=array[i][j]; retum(max); } voidmain() {inta[3](4]={{1,3,57}, {2,4,6,8},{15,17,34,12}}; printf(Hmaxvalueis%d\n,\max_value(a)); } 24.求二维数组中各行元素之和 voidgct_sum_row(intx[][3],intrcsultl]Jntrow,intcol){inti,j; for(i=();i {result[i]=0; {intr; r=x>y? x: y;rcturn(r>z? r: z); ) intmin(intxjnty,intz) {intr; r=x x: y;rcturn(r r: z); ) 21.求n的阶乘 #include intfac(intn) {intf; if(n<0)printf(Hn ”);elseif(n==0||n==1)f=l; elsef=fac(n-l)*n; return(f); } voidmain() {intn,y; printf(nInputaintegernumber: ");scanf(”%d”,&n); y=fac(n); printf("%d! =%15d",n,y); ) 22•求学生的平均成绩 #include floataverage(intstu[10],intn); voidmain() {intscore[10],i; floatav; printfC'Input10scores: \nH); for(i=0;i<10;i++) for(j=0;j result[i]+=x[i][j]; ) ) voidmain() {inta[2][3]={3,6,9,l,4,7); intsum_row[2],row=2,col=3,i;gct_sum_row(a,suni_row,row,col); for(i=0;i printf(HThesum row[%d]=%d\n",i+1,sum_row|i|); I 25.voidmain() {inta,b; voidsub(); a=3; b=4; printf(Mmain: a=%d,b=%d\n,\a,b); sub(); printf(,'main: a=%d,b=%d\n",a,b);} voidsub() {inta,b; a=6; b=7; printf(1fsub: a=%d,b=%d\n11,a^b); } 该程序的运行结果是运行结果: main: a=3,b=4 sub: a=6^b=7 main: a=3,b=4 26.外部变最与局部变最 nita=3,b=5; max(intintb) {intc; c=a>b? a: b;return(c); } voidmain() {inta=8;printf(ttmax=%dt\max(a,b)); }运行结果: max=8 of27•外部变量定义与说明 nitmax(intx,inty) {intz; z=x>y? x: y; return(z); } voidmain() {externinta9b;printf(ttmax=%dt\max(a,b)); } inta=13,b=-8; externinta9b; intmax() {intz; z=a>b? a: b; return(z); } voidmain() {printf(ttmax=%dl\max()); } inta=13,b=-8; 运行结果: max=13 2&auto变量的作用域 voidmain() {intx=l; voidprt(); {intx=3; prt(); printf(u2ndx=%d\n”,x); } printf(ulstx=%d\n^\x); } voidprt() {intx=5; printf(u3thx=%d\nn,x); } 运行结果: 3thx=5 2ndx=3 1stx=l 29.局部静态变量值具有可继承性 voidmain() {voidincrement(void); increment(); increment(); increment(); } voidincrement() {intx=0; x++; printf(“%d\n",x); } 运行结果: 1 1 1 voidmain() {voidincrement(); increment(); increment(); increment(); } voidincrement() {staticintx=0; x++; printf(“%d\n”,x); } 运行结果: 1 2 3 30.例用extern扩展外部变量作用域 voidmain() {voidgx(),gy(); externintx,y; printf(“l: x=%d\ty=%d\n,,,x,y);y=246; gx(); gy(); } voidgx() {externintx,y; x=135; printf(^2: x=%d\ty=%d\n”,x,y); } intx.y; voidgy() {printf(u3: x=%d\ty=%d\n,,,x,y); } 运行结果: 1: x=0y=0 2: x=135y=246 3: x=135y=246 31・输入两个数,并使其从大到小输出 voidmain() {int*pl,*p2,*p,a,b; scanf(''%d,%d",&a,&b); pl=&a;p2=&b; if(a {P=P1;P1=P2;p2=p;}printf(,'a=%d,b=%d\n",a,b); printf(Hmax=%d,min=%d\nf\*pl^*p2);} 运行结果: a=5,b=9 max=9,min=5 32.対比下列两种传递方式 voidswap(intxjnty) {inttemp; temp=x; x=y; y=temp; } voidmain() {inta,b; scanf(”%d,%d",&a,&b); if(a } 运行结果: 5,9为值传递 voidswap(int*pl,int*p2) {intp; p=*pl; *pl=*p2; *p2=p; } voidmain() {inta,b; int*pointer_l,*pointer_2;scanfC'%d,%d”,&a,&b); pointer_l=&a;pointer_2=&b;if(a } 运行结果: 9,5为地址传递 33.比较以下四个程序,它们都将数组a中的n个整数按相反顺序存放 voidinv(intx[],intn) {intt,ij,m=(n-l)/2; for(i=0;i<=m;i++) {j=n-l-i; t=x[i];x[i]=x[j];xU]=t; } } voidmain() {inti,a[10]={3,7,9,ll,0,6,7,5,4,2}; inv(a,10); for(i=0;i<10;i++) printf(n%d,n,a|i]); printf(,,\nM); } 该程序实参和形参均用数组 voidinv(int*x,intn) {intt,*p,*t*j,m=(n-l)/2; i=x;j=x+n-l;p=x+m;for(;i<=p;i++,j-) {t=*i;*i=*j;*j=t;} voidmain() {inti,a[10]={3,7,9,11,0,6,7,5,4,2};inv(a,10); for(i=0;i<10;i++) printf("%d,",a[i]);printf(n\n"); } 该程序实参用数组,形参用指针变量 voidinv(int*x,intn) {intt^*i,*j,*p,m=(n-l)/2;i=x;j=x+n・l;p=x+m;for(;i<=p;i++J-) {t=*i;*i=*j;*j=t;) } voidmain() {inti,a[10],*p=a; for(i=0;i<10;i++,p++) scanf(,,%dM,p); p=a;inv(p,10);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习 材料 doc