版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言教材源代码第一章例1.1ttinclude<stdio.h>/・文件包含命令・/voidmain()Iprintf(wWelcometoCworld!\nn);/・输出语句・/}例1.2^include<stdio.h>/・文件包含命令・/intadd(intx,inty)/・求两数的和・/ireturnx+y;)intmul(intx,inty)/・求两数的积・/(intt;t=x*y;returnt;)voidmain()inta,b,c,d,e;/・定义变量・/scanf("<%d%d%d%d,,,&a,&b,&c,&d);/*键盘输入*/e=add(a,b)+mul(c,d);/・函数调用・/printf(a%d\n",e);/・输出语句・/}1第二章例2.1ttinclude<stdio.h>ttdefinePI3.14voidmainO{floatr,s=0;r-3;s=PI*r*r;printf( ,s);}例2.2#include<stdio.h>voidmain()(inta,b,c,d;unsignedu;a=12;b=-24;u=10;c=a-u;d=b*u;printf(4<a-u=%d,b*u=%d\n”,c,d);}例2.3ftinclude<stdio.h>voidmainO{printf(a%f\nw,35);printf("%f\n",35.6);}ttinclude<stdio.h>例2.4voidmain(){floata,b;a=123456.789e5;b=a+30;printf("%f\n",a);printf( ,b);}例2.5#include<stdio.h>voidmain()Ifloata;doubleb;a=33333.33333;b=33333.33333333333333:2printf(<<%f\n%f\n>,,a,b);}例2.6#include<stdio.h>voidmain()iprintf(uabc\tde\rf\nw);printf(whijk\tL\bM\nw);)例2.7ftinclude<stdio.h>voidmain()(chara,b;a=120;b=121;printf(a%c,%c\nn,a,b);printf("%d,%d\n”,a,b);)例2.8ttinclude<stdio.h>inta=98,b=69;printf(u%d%d\nw,a,b);printf("%c,%c\n”,a,b);printf("a二%d,b二%d”,a,b);}例2.9#include<stdio.h>voidmainO(inta=115;floatb=23.1234567;doublec=1235678.1234567;chard=’ポ;printf("a=%d,%5d,%o,%x\n”,a,a,a,a);printf(rtb=%f,%lf,%5.41f,%e\n>,,b,b,b,b);printf(“c二%lf,%f,%8.41f\n",らc,c);printf(rtd=%c,%8c\nw,d,d);}例2.103#include<stdio.h>voidmain()inta,b,c;printf(apleaseEnput3number:\nw;scanf("%d%d%d",&a,&b,&c);printf("a二%d,b二%d,c二%d\n”,a,b,c);}例2.11ttinclude<stdio.h>voidmain(){chara,b;printf("Entercharactera,b\n");scanf("%c%cw,&a,&b);printf("%c%c\nw,a,b);}例2.12ttinclude<stdio.h>voidmain(){chara,b;printf("Entercharactera,b'n");scanf("%c%c”,&a,&b);printf("\n%c%c\nw,a,b);)例2.13^include<stdio.h>inta;printf(aEnteranumber\nff);scanf( ,&a);printf(a%ldw,a);)例2.14^include<stdio.h>voidmain()ichara='C',b='A',c='T';putchar(a);putchar(b);putchar(b);putchar(c);putchar(,\t');putchar(a);putchar(b);putchar('\n');putchar(b);putchar(c);putchar(ヽn);}例2.154#include<stdio.h>voidmainO{charc;printf(ainputacharacter'n");c=getchar();putchar(c);例2.16ftinclude<stdio.h>voidmainO{printf(a%d,%d,%d\nw,20/7,-20/7,20/(-7));printf("%f,%f\n”,20.0/7,一20.0/7);)例2.17ttinclude<stdio.h>voidmainO(printf(u%d%d\n",100%3,10%5);}例2.18ttinclude<stdio.h>voidmain(){inti=8;printf("%d\n”,++i);printf(u%d\nv,―i);printf("%d\n”,i++);printf("%d\n”,i--);printf("%d\n”,-i++);printf("%d\n",-i—);例2.19ttinclude<stdio.h>voidmain()(inta,b=322;floatx,y=8.88;charcl='k',c2;a=y;x=b;a=cl;c2=b;printf(a%d,%f,%d,%c”,a,x,a,c2);}例2.205ftinclude<stdio.h>voidmain()(floatPI=3.14159;ints,r=5;s=r*r*PI;printf("s二%d\n",s);例2.21#include<stdio.h>voidmainO{floatf=5.75;printf(a(int)f=%d,f=%f\nw,(int)f,f);)例2.22ttinclude<stdio.h>voidmainOicharc二'k';inti=l,j=2,k=3;floatx=3e+5,y=0.85;printf("%d,%d\nw,'a'+5<c,-i_2*j>=k+l);printf("%d,%d\nw,l<j<5,x-5.25<=x+y);printf(a%d,%d\nw,i+j+k==-2*j,k=j==i+5);}例2.23ttinclude<stdio.h>voidmainO(charc二'k';inti=l,j=2,k=3;floatx=3e+5,y=0.85;printf("%d,%d\n”,x|i&&j-3,iくj&&xくy);printf("%d,%d\n",i==5&&c&&(j=8),x+y||i+j+k);}例2.24#include<stdio.h>voidmain()iinta=2,b=4,c=6,x,y;y=(x=a+b),(b*c);printf("y=%d,x=%d\nw,y,x);6}例2.25ftinclude<stdio.h>voidmain(){inta=3,m,n,t,h;floatb=3;doublec=4;chard二'w';m=sizeof(a);n=sizeof(b);t=sizeof(c);h=sizeof(d);printf(a%d%d%d%d\nw,m,n,t,h);}例2.26ftinclude<stdio.h>voidmainO{inta,b;int*pl=&a,*p2=&b;a=20;b=10;printf(w%d,%d\nw,a,b);printf(a%d,%d\nw,*pl,*p2);}例2.27ttinclude<stdio.h>voidmain()(int*pl,*p2,p,a,b,t;scanf(a%d,%dw,&a,&b);pl=&a;p2=&b;t=*p1,*pl=*p2;*p2=t;printf(a\nbeforeswap:a=%d,b=%d\n,a,b);printf("\nafterswap:a二%d,b二%d\n",a,b);}7第三章例3.6#include<stdio.h>voidmain(){intnuml,num2,num3,sum;floataver;printf(Pleaseinputthreenumbers:n;scanf("%d,%d,%d”,&numl,&num2,&num3);sum=numl+num2+num3;aver=sum/3.0;printf("num1趣d,num2=%d,num3=%d\n”,numl,num2,num3);printf("sum=%d,aver二%7.2f\n",sum,aver);}例3.7ttinclude<math.h>voidmain()(floata,b,c,disc,xl,x2;printf("Inputa,b,c:");scanf("%f,%f,%f",&a,&b,&c);disc=b*b-4*a*c;xl=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf("\nxl=%6.2f\nx2=%6.2f\n”,xl,x2);例3.8#include<stdio.h>voidmainO{charcl,c2;printf(uInputalowercaseletter:");cl=getchar();putchar(cl);printf(a,%d\nw,cl);c2二cl-32;printf(<<%c,%d\n,>,c2,c2);}8第四章例4.1ftinclude<stdio.h>voidmain()(inta,b,max;printf("inputtwonumbers:");scanf("%d%dw,&a,&b);max=a;if(max<b)max=b;printf("max=%d\n>>,max);}例4.2#include<stdio.h>voidmainOinta,b;printf("inputtwonumbers:");scanf("%d%d",&a,&b);if(a>b)printf("max=%d\n>,,a);elseprintf("max=%d\nw,b);}例4.3ttinclude<stdio.h>voidmain()(charc;printf("Enteracharacter:M;c=getchar();if(c<0x20)printf("Thecharacterisacontrolcharacter'n");elseif(c>=’〇’&&cく='9')printf("Thecharacterisadigit\n");elseif(c>='A'&&cく=’Z')printf("Thecharacterisacapitalletter\n");elseif(c>='a'&&c<='z')printf("Thecharacterisalowerletter\n");elseprintf("Thecharacterisothercharacter\nw);}例4.4#include<stdio.h>intx,y;printf(aEnterintegerx,y:");scanf(w%d,%dw,&x,&y);if(x!=y)if(x>y)printf("x>y\n”);9elseprintf(“xく八n”);elseprintf("xニニy\n");}例4.6ttinclude<stdio.h>voidmain()(charch;scanf("%c”,&ch);ch=(ch>='A'&&chく二Z)?(ch+32):ch;printf("%c\n",ch);}例4.7^include<stdio.h>voidmain()(intscore;scanf(“%d",&score);switch(score){case5:printf("Verygood!\nw);case4:printf("Good!\n");case3:printf("Pass!\nw);case2:printf("Fail!\n");default:printf("dataerror!\nw);})^include<stdio.h>voidmainO!intscore;scanf("%d”,&score);switch(score){case5:printf("Verygood!\nM);break;case4:printf("Good!\n");break;case3:printf("Pass!\n");break;case2:printf("Fail!\n");break;default:printf("dataerror!\n);}}例4.8ffinclude<stdio.h>voidmain()iintscore,grade;10printf("Inputascore(〇〜100):");scanf("%d",ftscore);grade=score/10;/・将成绩整除10»得一整型值作为switch的表达式值・/switch(grade){case10:case9:printf("grade;A\n");break;case8:printf("grade二B\n");break;case7:printf("grade=C\n");break;case6:printf("grade=D\n");break;case5:case4:case3:case2:case1:case0:printf("grade=E\n");break;default:printf("Thescoreisoutofrange!\nw);))例4.9ttinclude<math.h>#include<stdio.h>voidmainOifloata,b,c,d,xl,x2,p,q;scanf("%f,%f,%fw,&a,&b,&c);printf("Theequation");if(fabs(a)<=le-6)printf("isnotquadratic.\n9f);elsed=b*b-4*a*c;if(fabs(d)<=le-6)printf("hastwoequalroots:%8.4f\nn,-b/(2*a));elseif(d>le-6)xl=(-b+sqrt(d)/(2*a));x2=(-b-sqrt(d)/(2*a));printf("hasdistinctrealroots:%8.4fand%8.4f\n",xl,x2);}else(p=-b/(2*a);q=sqrt(-d)/(2*a);printf("hascomplexroots:\nw);printf("%8.4f+%8.4fi\n”,p,q);printf("%8.4f-%8.4fi\n",p,q);}}例4.10#include<stdio.h>voidmainO11(doublex,y;printf("Enterx:");scanf("%lf",&x);y=0;elseif(x<=15){y=4*x/3;}else{y=2.5*x-10.5;}printf(4<f(%.2f)=%.2f\nw,x,y);}例4.11ftinclude<stdio.h>voidmain()(charoperator;doublevaluel,value2;printf("Typeinanexpression:");switch(operator){scanf("%lf%c%lfw,&valuel,&operator,&value2);switch(operator){case'+':printf("=%.2f\n",valuel+value2);break;case'-':printf("=%.2f\n",vaiuel-value2);break;case:printf("=%.2f\n”,valuel*value2);break;case:printf(a=%.2f\nw,valuel/value2);break;default:printf("Unknownoperator'n");break;)}例4.12#include<stdio.h>voidmain()12(intnuml,num2,num3,max;printf("Pleaseinputthreenumbers:99);scanf("%d,%d,%d”,&numl,&num2,&num3);max=numl;if(num2>max)max二num2;if(num3>max)max=num3;printf("Thethreenumbersare:%d,%d,%d\nM,numl,num2,num3);printf("max=%d\n>,,max);113第五章例5.1#include<stdio.h>voidmainOinti=l,sum=0;while(i<=100){sum=sum+i;i++;}printf("%d\n",sum);}例5.2ttinclude<stdio.h>voidmain()(inti,sum=0;i=l;do{sum=sum+i;i++;}while(i<=100);printf("%d\n",sum);}例5.3(1)do-while语句实现:#include<stdio.h>voidmainO{intcount,number;count=0;printf("Enteranumber:");scanf("%d”,&number);if(number<0)number二一number;do{number=number/10;count++;}while(number!=0);printf("Itcontains%ddigits.\nw,count);}(2)while语句实现:14ttinclude<stdio.h>voidmain(){intcount,number;count=0;printf("Enteranumber:");scanf("%d”,&number);if(number<0)number=-number;while(number!=0){number=number/10;count++;}printf(uItcontains%ddigits.\nw,count);}例5.4#include<stdio.h>voidmainO!inti,sum=0;for(i=l;i<=100;i++)sunFsum+i;printf("%d\n",sum);}例5.5(l)while语句构成的循环:ttinclude<stdio.h>voidmainO(inti=l,item=l,n;scanf("%d",&n);whiledく二n)item=item*i;i++;}printf(“%d\n”,item);}(2)do-while语句构成的循环:15ttinclude<stdio.h>voidmain()iinti=l,item=l,n;scanf("%d",&n);do{item=item*i;i++;}while(i<=n);printf("%d\n",item);}(3)for语句构成的循环:ttinclude<stdio.h>voidmain()inti,item=l,n;scanf("%d”,&n);for(i=l;iく=n;i++)item=item*i;printf("%d\n",item);}例5.6ttinclude<stdio.h>voidmainO!intn;for(n=100;n<=200;n++){if(n%3=0)continue;printf("%d",n);}printf("\n");}例5.7ftinclude<stdio.h>ttinclude<math.h>voidmainOscanf(w%dwk=sqrt(m);for(i=2;i<=k;i++)if(m%i=O)break;if(i>k)printf(w%disaprimenumber'n”,m);elseprintf("%disnotaprimenumber'n”,m);}例5.8^include<stdio.h>voidmain()(intn;for(n=100;n<=200;n++){if(n%3==0)break;printf("%d",n);}printf(“\n”);}例5.9ftinclude<stdio.h>voidmain()inti,j;doubleitem,sum;/*item存放阶乘・/sumニ〇;for(i=l;i<=100;i++)(item=l;/*每次求阶乘都从1开始・/for(j=l;j<=i;j++)/・内层循环算出item=i!*/item=item*j;sum二sum+item;}printf(4<1!+2!+3!+„+100!=%e\n",sum);}例5.10ftinclude<stdio.h>voidmain()(inti,j,result;printf("\n");for(i=l;i<10;i++){for(j=l;j<=i;j++){result=i*j;printf("%d*%d=%-3d”,i,j,result);/*-3d表示左对齐,占3位・/}17printf(“\n”);/・每一行后换行・/例5.11ttinclude<stdio.h>voidmain()(intp,r,n,m,temp;printf(“请输入两个正整数:");scanf(M%d,%dw,&n,&m);if(n<m){temp=n;n=m;m=temp;/*把最大数放在n中,小数放在m中・/}p=n*m;while(m!=0){r二n%m;n=m;m=r;}printf(“它们的最大公约数是:%d\n",n);printf(“它们的最小公倍数是:%d\n",p/n);#include<stdio.h>voidmain(void)[inti,fl,f2,f;/*fl、f2及f为迭代变量,fl和f2依次代表前两项,f表示其后ー项・/fl=l;/*第1、2项都是1,特殊值,无需迭代・/f2=l:printf("%-6d%-6d”,fl,f2);/・先输出1,2两项・/for(i=l;i<=18;i++){/・用i的值来限制迭代的次数,循环输出后18项・/f=fl+f2;/・迭代关系式,计算新项・/printf(w%-6dM,f);fl=f2;/*f!和f2迭代前进,其中f2在fl的前面*/f2=f;if((i+2)%5==0)printf(a\nn);/*每输出5个数换行・/))例5.1318Sinclude<stdio.h>voidmain()iinti,j,k;for(i=l;i<=19;i++)for(j=l:j<=33:j++)for(k=3;k<=99:k=k+3){if((i+j+k==100)&&(i*5+j*3+k/3==100))printf(“i=%d,j=%d,k=%d\n”,i,j,k);})19弟八草例6.2#include<stdio.h>#defineNUM5voidmain()iinti,a[NUM];printf(“请输入%d个数字",NUM);for(i=0;i<NUM;i++)scanf("%d”,&a[i]);for(i=NUM-l;i>=0;i—)printf("%d",a[i]);printf(u\n");}例6.3ttinclude<stdio.h>#defineNUM10voidmain()Iinti,max,a[NUM];printf(“请输入%d个数:'n",NUM);for(i=0;i<NUM;i++)scanf(i(%d",&a[i]);max=a[〇];for(i=l;i<NUM;i++)if(a[i]>max)max=a[i];printf("max成d\n",max);}例6.4ttinclude<stdio.h>^defineNUM5voidmain()(inti,j,tmp,a[NUM];printf("Pleaseinput%dintegerNUM:\n",NUM);for(i=0;i<NUM;i++)scanf("%d",&a[i]);for(i=l;i<NUM-l;i++)for(j=0;j<=NUM-l-i;j++)if(a[j]>a[j+l]){tmp=a[j];a[j]=a[j+l];a[j+l]=tmp;20printf("Aftersorting,theresultare:\nv);for(i=0;i<NUM;i++)printf("%6d",a[i]);printf("\n");}例6.5#include<stdio.h>ttdefineNUM5voidmain()(inti,j,m,tmp,x,a[NUM+l];printf("input%dnumber:\n",NUM);for(i=0;i<NUM;i++)scanf("%d”,&a[i]);ford二〇;iくNUM;i++)(m=i;for(j=i+l;j<NUM;j++)if(a[m]<a[j])m=j;if(m!=i)Itmp=a[i];a[i]=a[m];a[m]=tmp;for(i=0;i<NUM;i++)printf(*%d”,a[i]);printf("\ninputnumber:\n");scanf("%d",&x);for(i=0;i<NUM;i++)if(x>a[i])break;for(j=NUM-l;j>=i;j—)a[j+l]=a[j];a[i]=x;for(i=0;iく=NUM;i++)printf("%d",a[i]);)例6.6找出错误。voidmain(){int*p,i,a[10];21P=a;for(i=0;i<10;i++)*p++=i;for(i=0;iく10;i++)printf(二%d\n”,i,*p++);}voidmainO(int*p,i,a[10];p二a;for(i=0;i<10;i++)*p++=i;P=a;for(i=0;i<10;i++)printf(wa[%d]=%d\nw,i,*p++);}例6.8^include<stdio.h>voidmain(){char*ps="thisisabook”;intn=10;ps=ps+n;printf("%s\n",ps);}例6.9#include<stdio.h>voidmainO(chars[15];printf("inputstring:\n");scanf("%s",s);printf("%s\n",s);例6.10ttinclude<stdio.h>voidmain()(charstr[15];printf(uPleaseinputstring:\nM);gets(str);puts(str);}例6.11^include<string.h>22voidmain(){intk;staticcharstlL15],st2[]=aCLanguage;printf(ainputastring:\nw);gets(stl);k=strcmp(stl,st2);if(k==0)printf("stl二st2\n”);if(k>0)printf("stl>st2\n>,);if(k<0)printf("stlくst2\n");)例6.12#includeくstdio.h>char*pa="CHINA”,b[10],*pb;pb=b;while((*pb=*pa)!=‘、〇’){/・把pa指向的源字符串复制到pb所指向的目标字符串中*/pa++;pb++;}printf("stringa=%s\nstringb=%s\n",pa-5,pb-5);}例6.13^include<stdio.h>voidmain()(inta[][4]={3,16,87,65,4,32,11,108,10,25,12,27);intb[3],i,j,m;for(i=0;i<=2;i++){m=a[i][0];for(j=l;j<=3;j++)if(a[i][j]>m)m=a[i][j];b[i]=m;}printf("\narraya:\n");for(i=0;i<=2;i++){for(j=0;j<=3;j++)printf("%5d",a[i][j]);printf("\n");)printf("\narrayb:\n");for(i=0;i<=2;i++)printf("%5d",b[i]);printf(“\n”);}例6.1423ttinclude<stdio.h>voidmain()(inti,j,s=0,average,v[3],a[4][3];printf(ainputscore\nw);for(i=0;i<3;i++)(for(j=0;j<4;j++){scanf("%d”,&a[j][i]);s=s+a[j][i];}v[i]=s/4;s=0;}average=(v[0]+v[l]+v[2])/3;printf(umath:%d\nclanguag:%d\ndbase:%d\n",v[〇],v[l],v[2]);printf("total:%d\n”,average);例6.15#include<stdio.h>voidmainO(inta[3][4]={0,1,2,3,4,5,6,7,8,9,10,11);int(*p)[4];inti,j;P=a;for(i=0;i<3;i++)}{for(j=0;jく4;j++)printf("%2d”,*(*(p+i)+j));printf(a\nf);)例6.16^include<stdio.h>voidmain()(inta[3][3]={1,2,3,4,5,6,7,8,9};int*pa[3]={a[0],a[l],a[2]};int*p=a[0];inti;for(i=0;i<3;i++)printf("%d,%d,%d\nw,a[i][2-i],*a[i],*(*(a+i)+i));for(i=0;iく3;i++)printf(w%d,%d,%d\nw,*pa[i],p[i],*(p+i));)例6.17ttinclude<string.h>#include<stdio.h>24#defineNUM5voidmainO{staticchar*name[]={“CHINA”,“AMERICA”,“AUSTRALIA”,“FRANCE”,“GERMAN”},*pt;inti,j,k;for(i=0;i<NUM-l;i++)ik=i;for(j=i+l;j<NUM;j++)if(strcmp(name[k],name[j])>0)k=j;if(k!=i){pt=name[i];name[i]=name[k];name[k]=pt;}}for(i二〇;iくNUM;i++)printf(“%s\n”,name[i]);)例6.18#include<stdio.h>“Computer}char*nameロ={“Database”,“BASIC”,“JSP”,“FORTRAN”,desighn"};char**p;inti;for(i二〇;iく5;i++){}p=name+i;printf("%s\n",*p);25“Computer第七章例7.1#include<stdio.h>voidprintstar()/・自定义函数・/{printf("***********************\n");}voidmainO/*调用自定义函数语句・/{printstar();}例7.2^include<stdio.h>printf("\tHello\n");printstar();intmax(intx,inty)/・定义max函数・/{intz;}voidmainO{inta,b,c;}例7.3^include<stdio.h>intleap(intyear)lp=(year%4==0&&year%100!=01|year%400==0)?1:0;/・判断是否是闰年・/a=10;b=12;c=max(a,b);/・调用max函数,并将返回的结果赋值给变量c*/if(x>y)z=x;elsez=y;returnz;printf("max二%d\n”,c);26}returnIp;intmonthdays(intyear,intmonth){intd;switch(month)/・根据月份确定当月有多少天・/{case1:case3:case5:case7:case10:case12:d=31;break;case2:d=leap(year)?29:28;break;default:d=30;/・调用leap函数・/}}returnd;intdays(intyear,intmonth,intday){inti,ds=0;voidmain(){intleap(intyear);}例7.427/・判断该日期是当年第几天・/for(i=l;i<month;i++)ds=ds+month_days(year,i);ds=ds+day;returnds;intmonth_days(intyear,intmonth);/*函数声明语句*/intdays(intyear,intmonth,intday);intyear,month,day,t_day;printf(“请输入年一月一日:“);scanf("%d-%d-%d”,ftyear,&month,&day);t_day=days(year,month,day);/・调用days函数・/printf("%d-%d-%d是该年的第%d天\n”,year,month,day,t_day);#include<stdio.h>voidmain(){longsum(intm);{longs=l;longsum(intm){longt=0;)例7.5ttinclude<stdio.h>longfact(long);voidmain(){longnumber;/・函数声明语句・/longfact(intn);longresult,number;printf(“请输入ー个数字:");scanf("%ld”,&number);result=sum(number);printf(“结果为:%ld\n”,result);/・求阶乘・/inti;for(i=l;i<=n;i++)s=s*i;returns;/・求和・/inti;for(i=l;i<=m;i++)t=t+fact(i);/・调用fact函数・/returnt;printf(“请输入一个正整数:“);28}scanf("%ld”,&number);printf("数字%Id的阶乘为:%ld\n”,number,fact(number));longfact(longnum){if(num<2)}例7.6^include<stdio.h>voidswap(intx,inty){inttemp;voidmainO{inta,b;例7.7#include<stdio.h>voidmain(){intnum[10],i,sum=0;/・递归出口・/returnnum;elsereturnnum*fact(num-1);/・直接递归,调用fact函数本身*/temp=x;x=y;y=temp;printf(“请输入两个数字:");scanf("%d%d”,&a,&b);swap(a,b);printf("这两个数字为:%d%d\n”,a,b);intprime(intn);printf(“请输入10个整数:");for(i=0;i<10;i++){scanf("%d”,&num[i]);if(prime(num[i]))/・将数组的某个元素作为参数,调用prime函数・/29}}sum=sum+num[i];printf(“结果为:%d\n",sum);intprime(intn){intk,flag=l;例7.8^include<stdio.h>voidfun(intx[],intn){inttemp,i,j,m=(n-l)/2;voidmain(){inti,a[10];for(k=2;k<=n/2;k++)if(!(n%k)){flag=0;}/*如果是素数返回L否则返回〇・/break;returnflag;for(i=0;i<=m;i++){j=n-l_i;}temp=x[i];x[i]=x[j];x[j]=temp;printf("请输入十个整数:");for(i二〇;iく10;i++)scanf("%d”,&a[i]);fun(a,10);printf("对换后数组的内容为:");for(i=0;i<10;i++)printf("%d",a[i]);printf(“\n");30}例7.9^include<stdio.h>voidfun(int(*a)[4],int*b){inti,j;for(i=0;i<4;i++){b[i]=a[0][i];for(j=l;j<4;j++)/・将b[i]与该列中的每个数进行比较,并把最大的那个数赋值给b[i]*/}voidmain(){intnum[4][4]={{9,5,13,6},{4,7,12,1},{3,8,4,7},{9,2,4,3}},n[4],i,j;)例7.10ttinclude<stdio.h>intfun(){autointx=l;}voidmain()31/・将每列的第一个数赋值给b[i]*/}if(b[i]<=a[j][i])b[i]=a[j][i];printf(“数组:\n");for(i=0;i<4;i++){for(j=0;j<4;j++)}fun(num,n);printf(“数组中每列最大值为:\n");for(i=0;iく4;i++)printf(a%5dw,n[i]);printf("%5d”,num[i][j]);printf(“\n");printf(“\n");x*=2;returnx;{inti,s=l;)例7.11#include<stdio.h>{intk;doubleodd(intn){intk;}voidmain(){intn;/・定义指向返回值为double类型的函数指针变量p,声明even、odd函数・/for(i=l;i<=2;i++)printf("%d\n”,fun());/・分母为偶数・/doublesum=1.0;for(k=2;k<=n;k++)sum=sum+l.0/k;returnsum;/・分母为奇数・/doublesum=l.0;for(k=3;k<=n;k++)sum=sum+l.0/k;returnsum;double(*p)0,even(int),odd(int);printf(“请输入ー个正整数:");scanf("%d",&n);if(n>l){}else32if(n%2==0)p=even;elsep=odd;printf("sum=%f\n",(*p)(n));/・使用指针变量p调用函数。*/}printf(“输入有误”);例7.12#include<stdio.h>#include<stdlib.h>ttinclude<string.h>voidcheck(char*x,char*y,int(*comp)(char*,char*))/・第三个参数为函数指针变量・/{if(!(*comp)(x,y))}intcompvalues(char*x,char*y){if(atoi(x)=atoi(y)){chara[80],b[80];例7.13#include<stdio.h>voidmain(){int*max(int*x,int*y);strcpy(a,“0123");strcpy(b,"123");printf("比较数值是否相等:、n%s与%s”,a,b);check(a,b,compvalues);printf(“相等、n”);elseprintf(“不相等、n");/*atoi〇将字符串类型转换为整型,需要包含头文件stdlib.h*/return0;elsereturn1;printf("比较字符串中是否相等:'n%s与%s",a,b);check(a,b,strcmp);33voidpl();inta=10,b=20,*p;p=max(&a,&b);pl();printf("max=%d\n",*p);plO;}int*max(int*x,int*y){return*x>*y?x:y;}voidpl(){printf("****************\n");}例7.14#include<stdio.h>voidmainO{char*week_name(int);intx;printf(“请输入ー个数字(1-7之间):”);scanf("%d",&x);if(x>=l&&x<7)printf("星期%d是%s\n”,x,weekname(x));elseif(x==7)printf("星期日是%s\n",week_name(x));elseprintf(“输入有误!”レ}char*week_name(intn){statica[][10]={wMondayw,nTuesdaywnWednesdaywwThursdayw,99Fridayv,34char“Saturday",”Sunday”};}例7.15^include<stdio.h>intfun();voidmain(){inti,s=l;intfun(){staticintx=l;}例7.16#include<stdio.h>inta=l;intfunc(intx,inty){returnx*y;}intb;voidmain(){intc;}例7.17ttinclude<stdio.h>inta=5;b=2;c=func(a,b);printf("a二%d,b二%d,c二%d\n”,a,b,c);x*=2;returnx;/*定义静态局部变量・/for(i=l;i<=2;i++)s二fun();returna[n];printf("%d\n",s);voidfun(intb)35{inta=10;}voidmain()(intc=20;例7.18^include<stdio.h>voidnum()(externintx,y;}intx,y;voidmain(){inta=16,b=8;}例7.19#include<math.h>ttinclude<stdio.h>x=a+b;y=a-b;num();inta=25,b=15;x=a-b;y=a+b;fun(c);a+=c;a+=b;/・局部变量与全局变量同名,局部有效*/printf("%d\n",a);printf("%d\n",a);printf("猊,%d\n",x,y);floatfun(floatnum){ints;/*函数fun求n的近似值,num指定精度・/floatn,t,pi;t=l;pi=O;n=l;s=l;36while(fabs(t)>=num){pi=pi+t;n=n+2;s=-s;t=s/n;voidmain(){floatnl,n2;例7.20#include<stdio.h>#include<math.h>voidmain()i}floatiteration(floata,floatb,floatc,floatd)/"iteration函数求1附近的根*/{}pi=pi*4;returnpi;printf(MEnterafloatnumber:");scanf("/f”,&nl);n2=fun(nl);printf("%6.4f\n”,n2);floatiteration(floata,floatb,floatc,floatd);floata,b,c,d;printf("请输入a,b,c,d的值:(以逗号区分)'n”);scanf(a%f,%f,%f,%fw,&a,&b,&c,&d);printf("x二%10.7f\n",iteration(a,b,c,d));floatx=l,xO,f,fl;do{37}xO=x;f=((a*x0+b)*x0+c)*x0+d;fl=(3柚・x0+2*b)*x0+c;x=x0-f/fl;/・迭代到|x-x0|く0.000001*/}while(fabs(x-x0)>=le-6);returnx;例7.21^include<stdio.h>ftinclude<stdlib.h>ttinclude<string.h>voidinput(intnum[],charname[][8],intn);voidsort(intnum[],charname[][8],intn);intsearch(intid,intnum[],charname[][8],intn);voidmain()iintnum[10],number,c,no;charname[10][8];system(wclsw);/*调用sort函数,按升序排序・/input(num,name,10);sort(num,name,10);while(l){printf(u\n请输入要查找的职エ号:");scanf(u%d",&number);no=search(number,num,name,10);if(no!=-l)printf("职エ号:%d,姓名:%s.、n",num[no],name[no]);elseprintf("不能找到!'n");printf("是否继续?(Y/N)”);fflush(stdin);c=getchar();/・清除键盘缓冲区的全部内容・/if(c=='N'I|c== )38break;}}voidinput(intnum[],charname[][8],intn){inti;for(i=0;i〈n;i++)(printf("\n请输入职エ号:");scanf("%d",&num[i]);fflush(stdin);printf(”请输入姓名:");gets(name[i]);)}voidsort(intnum[],charname[][8],intn){inti,j,min,tempi;chartemp2[8];for(i=0;iくn-1;i++)min=i;for(j=i;j<n;j++)if(num[min]>num[j])min=j;if(min!=i)(tempi=num[i];num[i]=num[min];num[min]=tempi;strcpy(temp2,name[i]);strcpy(name[i],name[min]);strcpy(name[min],temp2);}39/・使用选择法排序・/}}printf(“用排序后的结果为:\n");for(i=0;i<n;i++)printf("\n%5d%10s”,num[i],name[i]);intsearch(intid,intnum[],charname[][8],intn)/・用折半法査找职エ信息・/(}intlow,high,mid;low二〇;high=nT;while(lowく=high){}return-1;/・未找到返回ー1*/mid=(low+high)/2;if(id>num[mid])low=mid+l;elseif(id<num[mid])high=mid-l;elsereturnmid;/・返回要找的数所在的位置*/40第八章例8.1intx;^defineM(x*x+3*x)ints,t;scanf(“%d",&x);t=5*M+4*M;printf("t二%d\n",t);}例8.2ttdefineKV100voidmainO!printf(“KV”);printf("\n");}例8.3#definePprintfttdefineD"%d\n”#defineFvoidmain(){inta=5;floatb=l.08;P(D,a);P(F,b);例8.4ttdefineMAX(a,b)(a>b)?a:bvoidmain(){intx,y,max;printf(ainputtwonumbers:り;scanf("%d%d”,&x,&y);max=MAX(x,y);printf("max=%d\n",max);}例8.5ttdefineSQ(y)(y)*(y)voidmain(){inta,sq;printf(ainputanumber:");scanf("%d",&a);41sq=SQ(a+l);printf("sq二%d\n",sq);}例8.6#defineSQ(y)y*yvoidmain(){inta,sq;printf("Enteranumber:");scanf("%d",&a);printf("sq二%d\n",sq);例8.7ftdefineSQ(y)(y)*(y)voidmain(){inta,sq;printf(uEnteranumber:");scanf(“%d",&a);sq=160/SQ(a+l);printf(usq=%d\nn,sq);}例8.8#defineNUMokvoidmain(){structstu(intnum;char*name;charsex;floatscore;}*ps;ps=(structstu*)malloc(sizeof(structstu));psー〉name="Zhangping”;ps->sex='M';ps->score=85;#ifdefNUMprintf("Number=%d\nScore=%f\n",ps->num,ps->score);#elseprintf("Name=%s\nSex=%c\n",ps->name,ps->sex);ttendiffree(ps);}例8.942#defineR1voidmain(){floatc,r,s;printf("inputanumber:");scanf("%f",&c);#ifRr=3.14159*c*c;printf("areaofroundis:%f\n",r);#elses=c*c;printf("areaofsquareis:%f\n",s);ttendif例8.10voidmainO(enumweekday{sun,mon,tue,wed,thu,fri,sat}a,b,c;a=sun;b=mon;c=tue;printf(a%d,%d,%dw,a,b,c);)例8.11voidmainO(enumbody{a,b,c,d}month[31],j;inti;j=a;for(i=l;i<=30;i++){month[i]=j;j++;if(j>d)j=a;}for(i=l;i<=30;i++){switch(month[i])(casea:printf(u%2d%c\t”,i,'a');break;caseb:printf(a%2d%c\t",i,'b');break;casec:printf(a%2d%c\t”,i,'c');break;cased:printf(a%2d%c\t”,i,'d');break;default:break;printf(“\n”);}43第九章例9.1ttinclude<stdio.h>#defineSCOREstructscore#defineSTUDENTstructstudentstructscore{ints[5];doubleaverage;);structstudent{intnum;charname[10];charsex;char*addr;SCOREsco;};voidprint(STUDENTstu);voidmain(){inti,sum=0;STUDENTs={l,“陈宏宇”,,“上海”,{95,86,82,60,77}};for(i二〇;iく=4;i++)sum+=s.sco.s[i];s.sco.average=sum/5.0;print(s);printf("\n平均成绩为:%.21f\nv,s.sco.average);}voidprint(STUDENTstu){inti;printf("学号:%d\n姓名:%s\n性别址:%s\n”,stu.num,,stu.sex,stu.addr);44%c\n地:}例9.2printf(“各科成绩为:“);for(i二〇;iく=4;i++)printf(“%-5d”,stu.sco.s[i]);^include<stdio.h>structperson{charname[10];};voidmainO{intnum;)例9.345intcount;structpersonperson_leader[2]={{"袁子涵",〇},{"陈ー萱",〇}};printf(“请输入您的选票号、nl:袁子涵2:陈ー萱、n");do{scanf(u%d",&num);if(num=l)person_leader[0].count++;elseif(num=2)person_leader[l].count++;elseif(num=="l)break;elsecontinue;}while(l);for(num=0;numく2;num++)printf("%s:%d、n”,person_leader[num],name,person_leader[num],count);#include<stdio.h>structstu{intnum;char*name;charsex;floatscore;}boy1={102,“王晓惠”,,78.5},*pstu;voidmain(){pstu=&boyl;printf("学号:%d\n姓名:%s\nJ,,boyl.num,);printf("性别:%c\n成绩:%.lf\n\nM,boyl.sex,boyl.score);printf("学号:%d\n姓名:%s\nw,(*pstu).num,(*pstu).name);printf(“性别:%c\n成绩:%.lf\n\nw,(*pstu).sex,(*pstu).score);printf(“学号:%d\n姓名:%s\n”,pstuー)num,pstu->name);printf(“性别:%c\n成绩:%.lf\n\nw,pstu->sex,pstuー〉score);}例9.4#include<stdio.h>structstu{intnum;char*name;charsex;floatscore;}boy[5]={{101,“赵楠",'M',45},{102,“何书恒",'M',62.5},{103,“商静",'F',92.5},{104,“鲍琳琳",'F',87},{105,“陈国斌”,,M',58}};voidmain(){structstu*ps;printf(“学号、t姓名、t\t性别、t成绩、t、n”);for(ps=boy;ps<boy+5;ps++)printf(u%d\t%s\t%c\t%.lf\t\nw,ps->num,ps->name,psー)sex,ps->score);46}例9.5ttinclude<stdio.h>structstu{intnum;char*name;charsex;floatscore;}boy[5]={{101,“赵楠”,M,45},{102,“何书恒",'M',62.5},{103,“商静”,'F',92.5},{104,“鲍琳琳”,'F',87},{105,“陈国斌”,'M',58}};voidmain(){structstu*ps;voidave(structstu*ps);ps=boy;ave(ps);)voidave(structstu*ps){intc=0,i;floatave,s=0;for(i=0;i<5;i++,ps++)(s+=ps-〉score;if(psー〉scoreく60)c+=l;ave=s/5;printf(“平均成绩:%.2f\n不及格人数:%d\n,>,ave,c);}例9.6#include<st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国指纹防盗锁数据监测研究报告
- 2025年二级建造师机电工程模拟题及答案
- 宠物医疗技术题目及答案
- 湖州市2025年浙江湖州市南太湖事业单位招聘湖州市南太湖新区招聘编外工作人员40笔试历年参考题库典型考点附带答案详解
- 湖北省2025年湖北天门市事业单位引进73人笔试历年参考题库典型考点附带答案详解
- 2026黑龙江哈尔滨兰兴资产运营管理有限公司招聘16人笔试历年参考题库附带答案详解
- 2026陕西西安镐睿置业有限公司招聘笔试历年参考题库附带答案详解
- 2026铜陵创邑传媒有限公司招聘及环节人员笔试历年参考题库附带答案详解
- 2026重庆四联特种装备材料有限公司招聘3人笔试历年参考题库附带答案详解
- 2026辽宁沈阳盛京资产管理集团有限公司所属子公司沈阳众盈科技有限公司拟聘用人员笔试历年参考题库附带答案详解
- 2026年安全生产月活动启动部署和主题宣贯课件附讲义教案和案例
- 2026年公务员遴选笔试真题及答案
- JJG 1078-2026医用数字摄影系统(DR)X射线辐射源检定规程
- 印刷工艺与质量标准手册
- 2026广东惠州市交通投资集团有限公司社会招聘22人备考题库及答案详解(考点梳理)
- 2026年二级建造师《建设工程施工管理》必刷200题及完整答案详解【各地真题】
- 煤矿排矸场、矸石山生态环境治理工程施工组织设计
- 新里程大学英语听说教程谭思坦课后部分参考答案
- 开放系统11849《公共部门人力资源管理》期末机考真题(第14套)
- YS/T 269-2008丁基钠(钾)黄药
- GB/T 6643-1986通用硬同轴传输线及其法兰连接器总规范
评论
0/150
提交评论