重庆大学C程序课后答案_第1页
重庆大学C程序课后答案_第2页
重庆大学C程序课后答案_第3页
重庆大学C程序课后答案_第4页
重庆大学C程序课后答案_第5页
已阅读5页,还剩124页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《程序设计技术》(第三版)习题参考答案习题1ー、单项选择题DADDDBCCD(注:第フ小题无正确选项,正确答案为ー12)二、填空题①主mainx=x*(x+b)④普通、格式、分隔和转义⑤指定输出数据格式voidmain()⑦"howareyou!"三、阅读程序题9,11,9,102,-1,-1aabbccabc2,2575767.5864000,-789.12402367.5864000,-7.89e+00267,86, -789.12,67.5864000, -789.124023, 67.5864000,-789.1240236.758640e+001,-7.89e+002A,65,101,411234567,4553207,12d68765535,177777,ffff,65535COMPUTER,COM.6.a+c=102a+c=ff+m=17.950000a+m=17.650000c+f=102.300000double=1746.150019四、程序设计题//xt010401.cpp#include<stdio.h>#definePI3.1415926voidmain(){doubler,h;printf("请输入半径r和高h:");scanf("%lf,%lf",&r,&h);printf("圆半径:%lf\n",2*PI*r);printf("圆面积:%lf\n",PI*r*r);printf("圆球表面积:4*PI*r*r);printf("圆球体积:%lf\n",4.0/3*PI*r*r);printf("圆柱体积:%lf\n",PI*r*r*h);}//xt010402.cpp#include<stdio.h>voidmain(){intc;printf("Inputacharacter:");c=getchar();printf("%c\t%d\n",c,c);}//xt010403.cpp#include<stdio.h>voidmain(){intx,y,h=30,f=90;x=(4*h-f)/2;y=(f-2*h)/2;printf("鸡:%d,兔:%d\n",x,y);//xt010404.cpp#include<stdio.h>#include<math.h>voidmain(){doublea,b,c,s,area;printf("请输入三角形的三条边长(注意三条边长应能够构成三角形):");scanf &b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("三角形的面积是:area);}//xt010405.cpp#include<stdio.h>voidmain(){doublef,c;printf("请输入华氏温度:“);scanf("%lf",&f);c=5.0/9.0*(f-32);printf("与华氏温度%.2If对应的摄氏温度是:%.21f\n",f,c);}//xt010406.cpp#include<stdio.h>voidmain(){charcl,c2,c3,c4,c5;printf("请输入需加密的字符串(5个字符):");cl=getchar();c2=getchar();c3=getchar();c4=getchar();c5=getchar();printf("加密后的字符串是:り;putchar(cl+5);putchar(c2+5);putchar(c3+5);putchar(c4+5);putchar(c5+5);printf("\n");)习题2ー、单项选择题CBADCCCAAC二、填空题

①a+b==O&&a*b!=O②逻辑与③逻辑或④continue⑤(c=getchar())!='\n‘⑥%c三、阅读程序题答案:x=ll,y=20r1=1,z2=l答案:-1 (x<0)sign(x)=<0 (x=0)[1 (x>0)该程序所完成功能的函数关系为:答案:D

CDE

BCDED

BCDEDC

BCDED

CDEDa=2,b=lD

CDE

BCDED

BCDEDC

BCDED

CDED答案:答案:答案:2*1*0$4*3*2$四、程序设计题/*xt020401.cpp*/#include<stdio.h>voidmain(){intnum;printf("****Inputnum:****\n");scanf("%d",&num);if(num%3==0&&num%5==0&&num%7==0)printf("**YES!**\n");elseprintf("**NO!**\n");)/*xt020402.cpp*/#include<stdio.h>voidmain(){inth=0;floatx,y,x0=2,y0=2,dl,d2,d3,d4;printf("***input:x,y***\n");scanf("%f,%f",&x,&y);dl=(x-xO)*(x-xO)+(y-yO)*(y-yO);/・点(x,y)到各中心点的距离・/d2=(x-xO)*(x-xO)+(y+yO)*(y+yO);d3=(x+xO)*(x+xO)+(y-yO)*(y-yO);d4=(x+xO)*(x+xO)+(y+yO)*(y+yO);if(dl<=l||d2<=l||d3<=l||d4<=l)h=15;printf("x=%f,y=%f\n",x,y);printf("h=%d\n",h);}/*xt020403.cpp*/#include<stdio.h>voidmain(){inti,j,k,n;for(n=l00;n<=999;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",n);/*xt020404.cpp*/#include<stdio.h>#include<math.h>#defineEPS1.Oe-6voidmain()(floate=l,t;longintj=l,n=l;do{j=j*n;t=l.O/j;e=e+t;n++;}while(fabs(t)>=EPS);printf("e=%f\n",e);)/*xt020405.cpp*/#include<stdio.h>voidmain(){intnum=l;do{if((num+3)%5==0&&(num-3)%6==0)break;num+=l;}whi1e(1);printf("num=%d\n",num);}/*xt020406.cpp*/#include<stdio.h>voidmain(){intnum;for(num=l;num<=99;num++)if(num*num%10==num||num*num%100==num)printf("%4d,%5d",num,num*num);printf("\n");}/*xt020407.cpp*/#include<stdio.h>voidmain(){intn,k=l;floats=0;for(n=l;n<=10000;n++){s=s+l.0/(2.0*n-l)*k;k=-k;printf("PI=%f\n",4*s);/*xt020408.cpp*/#include<stdio.h>voidmain(){intnlO,n5,n2,nl;for(nlO=l;nl0<=9;nlO++)for(n5=l;n5<=17;n5++)for(n2=l;n2く=37;n2++){ nl=40-nl0-n5-n2;if(nl>=l&&nl0*10+n5*5+n2*2+nl==100)printf("nl0=%d,n5=%d,n2=%d,nl=%d\n",nlO,n5,n2,nl);}}/*xt020409.cpp*/#include<stdio.h>voidmain(){floatsn=100,hn=sn/2;intn=2;while(n<=10){sn+=2*hn;hn=hn/2;n++;)printf("%f,%f\n",sn,hn);}/*xt020410.cpp*/#include<stdio.h>voidmain(){intday,xl,x2=l;for(day=9;day>0;day一){xl=(x2+l)*2;x2=xl;)printf("Total=%d\n",xl);)习题3单项选择题BBCACDDABB填空题②〇③10④x⑤一致⑥n/2sum+asum/n三、阅读程序题246s=305945842lanugeTOC\o"1-5"\h\z8 1 63 5 74 9 2max=10,row=2,colum=l四、程序设计题//xt030401.cpp#include<stdio.h>#include<stdlib.h>#include<time.h>voidmain(void)intnum[10],a;;srand((unsigned)time(NULL));printf("请输入ー个2位数,试试您是否能中奖:り;scanf("%d",&a);for(inti=0;i<10;i++){num[i]=(rand0+10)%100;if(a==num[i])printf("猜中一个数%d下标是%d",a,i);))printf(" \n");for(i=0;i<10;i++)printf("%d\t",num[i]);}//xt030402.cpp#include<stdio.h>#include<stdlib.h>#include<time.h>voidmain(void){inta[5]={23,45,60,67,88},x,i,j,yes=0;for(i=0;i<5;i++)printf("%d,",a[i]);printf("\nwhichnumberdoyouwanttodelete?\n");scanf("%d",&x);for(i=0;i<5;i++)if(a[i]==x){yes=l;for(j=i;j<5;j++)a[j]=a[j+1];}if(yes==l)for(i=0;i<4;i++)printf("%d,",a[i]);elseprintf("Thenumberyouwantdoesn,texist");}//xt030403.cpp#include<stdio.h>#include<stdlib.h>#include<time.h>#defineSIZE1000voidmain()(intx,a[SIZE],size,sum=0;srand((unsigned)time(NULL));while((size=rand0%1000)>200);printf("\nRandomizlistsize(<1000):%d",size);printf("\nAutomakea%dsizeoflist:\n",size);for(x=0;x<size;x++){a[x]=rand()%1000;printf("%d\t",a[x]);sum+=arr[x];)printf("\nThesumofarrayelementsis%d",sum);}//xt030404.cpp#include<stdio.h>#include<stdlib.h>#include<time.h>#defineSIZE100voidmain()(intx,a[SIZE],max=0,min=1000,bl,b2;srand((unsigned)time(NULL));printf("\nAutomakea%dsizeoflist:\n",size);for(x=0;x<SIZE;x++){a[x]=rand()%1000;printf("%d\t",a[x]);for(x=0;x<SIZE;x++)if(a[x]>max) max=a[x],bl=x;if(a[x]<min) min=a[x],b2=x;)printf("\nThearrayelementsmax=%din%d\nmin=%din%d\n",max,bl,min,b2);}//xt030405.cpp#include<stdio.h>#defineSIZE100#defineKIND5voidmain()(intx,y,len,total[KIND+1];inta[]={1,1,1,1,2,2,2,3,5,5,5,5,1,1,3,3,3,3,3,2,2,2,5,5,5};len=sizeof(a)/sizeof(a[0]);for(x=0;x<KIND+l;x++){total[x]=0;for(y=l;y<KIND+l;y++)for(x=0;x<len;x++)(if(a[x]==y)tota1[y]++;})printf("\nThelistkinded:\n");for(x=0;x<len;x++)printf("%d",a[x]);printf("\nThetotalresult:");for(x=l;x<KIND+l;x++)printf("%d-%d, ",x,tota1[x]);}//xt030406.cpp#defineN26#include<stdio.h>intmain(void){staticinta[N+1],b[N+1];inti,j,s,m,p;scanf("%d%d",&s,&m);for(i=l;i<=N;i++)a[i]=i;i=s-l;j=0;p=0;while(p<N){i++;bh:if(i>N)i-=N;if(a[i]==0){i++;gotobh;}j++;if(j%m==0){p++;b[p]=a[i];a[i]=0;j=0;})for(i=l;i<=N;i++)printf("%3d",b[i]);printf("\n");}//xt030407.cpp#include<stdio.h>voidmain()(inti,j,s=0,ave,v[3];staticinta[5][3]={{80,75,92},{61,65,71},(59,63,70},{85,87,90},{76,77,85}};for(i=0;i<3;i++){for(j=0;j<5;j++){s=s+a[j][i];=s/5;s=0;}ave=(v[0]+v[1]+v[2])/3;printf("math:%d\nclanguag:%d\ndbase:%d\n",v[0],v[1],v⑵);printf("totalave:%d\n",ave1);}//xt030408.cpp#include<stdio.h>voidmain()(inti,j,a[10][10],b[]={l,2,3,4,5,6,7,8,9,10);for(i=0;i<10;i++)a[0][i]=b[i];for(i=l;i<10;i++)for(j=0;j<10;j++)if(i>j)a[i][j]=a[j][i];elsea[i][j]=a[i-l][j-1];for(i=0;i<10;i++){for(j=0;j<10;j++)printf("%d\t",a[i][j]);printf("\n");//xt030409.cpp#include<stdio.h>#include<stdlib.h>#include<time.h>#defineSIZE5000#defineN7voidmain()(intx,y,a[N]={0,0,0,0,0,0,0},s;srand((unsigned)time(NULL));x=0;while(x<SIZE){s=rand0%6+l;if(s>0&&s<7){a[s]++;x++;})printf("\nRandomiz1-6list\n");for(x=l;x<N;x++)(s=a[x]*0.07;for(y=0;y<s;y++)printf("%d",x);printf("\t%d\t%2. a[x],(float)a[x]*100/SIZE);)}//xt030410.cpp#include<stdio.h>#defineN20intmain()(intx,s,tag;chara[N];printf("Pleaseinputnumbersanditzslengthlessthen%d:",N-D;s=l;while(s<N){scanf("%c",&a[s]);if(a[s]==10)break;s++;)printf("\nThenumbersis:\n");for(x=l;x<s;x++)printf("%c",a[x]);}tag=O;for(x=l;x<s/2;x++)(if(a[x]!=a[s-x]){tag=l;break;})if(tag==0)printf("\nThenumberispalindrome!");elseprintf("\nThenumberisn'tpa1indrome!");}习题4ー、单项选择题ABACABCBDD二、填空题①主②main函数③main函数④个数⑤类型⑥顺序⑦函数类型float(floatx,intn)f(x,n)x*f(x,n-1)三、阅读程序题x=5,y=25y=170.0sl=3.14,s2=5.1450025,33.00,1.00,0.25四、程序设计题//xt040401.cpp^include<stdio.h>voidmain(){voiddis(intn);intn;scanf("%d",&n);voiddis(intn){intkO,k,sum,i;kO=l;do{k=kO;sum=0;for(i=l;i<=n;i++){sum=sum+k;k=k+2;)if(sum==n*n*n)break;elsek0=k0+2;}while(l);for(i=l;i<=n;i++){printf("%5d",k0);k0=k0+2;//xt040402.cpp#include<stdio.h>voidmain(){floath(intn,floatx);intn;floatx;scanf("%d,%f",&n,&x);printf("h(%d,%f)=%f",n,x,h(n,x));}floath(intn,floatx){if(n==0)return1;elseif(n==l)return(2*x);elsereturn(2*x*h(n-1,x)-2*(n-1)*h(n-2,x));}//xt040403.cpp#include<stdio.h>voidmain(){intf(intn);inti;for(i=2;i<=1000;i++)if(f(i))printf("%6d",i);}intf(intn){if(n==n*n%10||n==n*n%100||n==n*n%1000)return1;elsereturn0;)//xt040404.cpp#include<stdio.h>voidmain(){longfun(inta,intn);intk,n;scanf("%d,%d",&k,&n);printf("%ld\n",fun(k,n));)longfun(inta,intn){intj;longs=0,t=0;for(j=l;j<=n;j++){t=t*10+a;s=s+t;)returns;)//xt040405.cpp#include<math.h>#include<stdio.h>voidmain(){intnum,middlei,middle2;intdetect(intd);printf("Pleaseinputapositiveevennumber(>=6):;scanf("%d",&num);for(middlel=2;middlel<=num/2;middlel+=l)if(detect(middlel)){midd1e2=num-midd1e1;if(detect(middle2)){printf("%d=%d+%d\n",num,middlel,middle2);break;intdetect(intd){inti;for(i=2;i<=sqrt(d*l.0);i++)if(d%i==0)return(0);return1;)//xt040406.cpp#include<stdio.h>voidmain(){floatf(floatx,intn);floatx,an;intn;scanf("%f,%d",&x,&n);an=f(x,n);printf("an=%f\n",an);}floatf(floatx,intn){if(n==0)return1;elsereturnx/n*f(x,n-1);//xt040407.cpp#include<stdio.h>voidmain(){floatf(floatx,intn);floatx,fn;intn;scanf("%f,%d",&x,&n);fn=f(x,n);printf("an=%f\n",fn);}floatf(floatx,intn){if(n==0)return1;elseif(n>0)returnx*f(x,n-1);elsereturnf(x,n+1)/x;}//xt040408.cpp#include<stdio.h>voidmain(){voidf(intn);intn;scanf("%d",&n);while(n<=0)scanf("%d",&n);f(n);}voidf(intn){if(n/10==0)putchar(n%10+'O');else{putchar(n%10+zO');f(n/10);)}//xt040409.cpp#include<stdio.h>voidmain(){voidf(intn);intn;scanf("%d",&n);scanf("%d",&n);f(n);}voidf(intn){if(n/10)f(n/10);putchar(n%10+,〇');)//xt040410.cpp#include<stdio.h>voidmain(){intf(intn);intn;for(n=2;n<=1000;n++)if(f(n))printf("%disa完数、n",n);}intf(intn){inti,s=0;for(i=l;i<n;i++)if(n%i==0)s=s+i;if(s==n)return1;elsereturn0;}习题5ー、单项选择题AACCADDACB二、填空题①"char*funcl()"定义ー个返回字符指针值的函数,"char(*func2)0M定义ー个指向函数的指针②ー个返回值为单精度类型指针的函数名;③(*p)(a,b,c)④findmin⑤(*f)(x,y,z);三、阅读程序题1205,4,34155.1126.49111131315//xt050401.cpp#include"stdio.h"voidmain(){voidf(int,int,int);inta,b,c;void(*p)(int,int,int);scanf("%d%d%d",&a,&b,&c);P=f;(*p)(a,b,c);)voidf(intx,inty,intz){intt;if(x<y)t=x,x=y,y=t;if(y<z)t=z,z=y,y=t;if(x<y)t=x,x=y,y=t;printf("%5d%5d%5d\n",x,y,z);}//xt050402.cpp#include<stdio.h>intmax(inta,intb){if(a>b)returna;elsereturnb;}voidmain(){intmax(inta,intb);int(*pmax)(int,int);intx,y,z;pmax=max;printf("inputtwonumbers:\n");scanf("%d%d",&x,&y);z=(*pmax)(x,y);printf("maxmum=%d",z);//xt050403.cpp#include"stdio.h"voidgcd(intx,inty){inttemp;while(y!=0){temp=x%y;x=y;y=temp;)printf("Thegreatestcommondivisoris:%d\n",x);)voidlcm(intx,inty){inttemp,m,n;m=x;n=y;while(x!=0){temp=y%x;y=x;x=temp;}printf("Thelowestcommonmultipleis:%d\n",m*n/y);voidmain(){inta,b;void(*p)(int,int);printf("Pleaseinputaandb:");scanf("%d%d",&a,&b);if(a>b)p=gcd;elsep=lcm;(*p)(a,b);}//xt050404.cpp#include"stdio.h"voidmain(){intx,y;intsum(int,int),diff(int,int),product(int,int);voidmma(intx,inty,ints(int,int));printf("Pleaseinputx,y:\n");scanf("%d%d",&x,&y);printf("Thesumofxandyis:");mma(x,y,sum);printf("Thedifferenceofxandyis:");mma(x,y,diff);printf("Theproductofxandyis:");mma(x,y,product);intsum(intx,inty)(returnx+y;)intdiff(intx,inty){returnx-y;)intproduct(intx,inty)(returnx*y;}voidmma(inta,intb,ints(int,int)){intw;w=s(a,b);printf("%d\n",w);}//xt050405.cpp#include<stdio.h>doublefund(intx),func2(inty);voidmain(){double(*fptr)(int);/・定义指向函数的指针变量fptr*/intn;printf("inputanumber:");scanf("%d",&n);if(n>l){if(n%2==0)fptr=funcl;/*n为偶数,指针变量ptr指向函数fund0*/elsefptr=func2;/*n为奇数,指针变量ptr指向函数func2()*/printf("value=%9.4f\n",(*fptr)(n));)elseprintf("error!\n");}doublefund(intx){intk;doublevalue;value=l.0;for(k=2;k<=x;k=k+2)value=value+l/(double)k;returnvalue;doublefunc2(inty){intk;doublevalue;value=l.0;for(k=3;k<=y;k=k+2)value=value+1/(double)k;returnvalue;)//xt050406.cpp#include"stdio.h"#include"math,h"voidmain(){intn,yinzi(int),(*f)(int);f=yinzi;printf("inputanumbern:");scanf("%d",&n);if((*f)(n)==2)printf("\n%disaprimenumber.",n);elseprintf("\n%disnotaprimenumber.",n);}intyinzi(intx){inti,k=0,q=(int)sqrt(x);for(i=l;i<=q;i++)if(x%i==0){k+=2;printf("%5d%5d",i,x/i);)returnk;)//xt050407.cpp#include<stdio.h>#include<math.h>doublefl(doublex)(returnx*x*log(x);}doublef2(doublex)(returnx*sin(x);doublef3(doublex)returnx/exp(x);doublecollect(double(*p)(doublex),doublea,doubleb,doublen){inti;doubleh,area;h=(b-a)/n;area=((*p)(a)+(*p)(b))/2.0;for(i=l;i<n;i++)area+=(*p)(a+i*h);return(area*h);)voidmain(){doubleyl,y2,y3;yl=collect(fl,1.0,2.0,1000);y2=collect(f2,0.0,3.0,500);y3=collect(f3,0.0,1.0,10000);printf("yl=%6.2fy2=%6.2fy3=%6.2f\n",yl,y2,y3);}//xt050408.cpp#include"stdio.h"#include"math,h"introot(double*x,intm,doubleeps,double(*f)(double)){doublexO;do{xO=*x;*x=(*f)(xO);m=m-l;}while((m!=0)&&(fabs(*x-x0)>=eps));if(m==0)return(0);return(1);}doublefl(doublex)(return(1.0+atan(x));)doublef2(doublex)(return(0.5*cos(x));}doublef3(doublex)return((6.0+3*x-x*x)/4);/*x=(6+3*x-x*x)/4*/voidmain(){doublex,(*p)(double);x=l.0;P=fl;if(root(&x,50,0.00001,p))printf("xl=%f\n",x);p=f2;if(root(&x,50,0.00001,p))printf("xl=%f\n",x);p=f3;if(root(&x,50,0.00001,p))printf("xl=%f\n",x);)//xt050409.cpp#include"stdio.h"int*f(intp[],intq[],intm){inti;for(i=0;i<m;i++)q[i]=p[i]*p[i];returnq;voidmain(){inta[6]={1,2,3,4,5,6},i,*k;intb[6];k=f(a,b,6);for(i=0;i<6;i++)printf("%5d",k[i]);}//xt050410.cpp#include<stdio.h>#include<stdlib.h>voidmain(){intwanshu(intx);int*ptr;ptr=(int*)ma1loc(sizeof(int));if(ptr==NULL){printf("Failedtocreateanewobject.");exit(0);scanf("%d",ptr);if(wanshu(*ptr))printf("%disa完数:",*ptr);elseprintf("%disnota完数:",*ptr);free(ptr);}intwanshu(intx){inti=l,sum=0;while(i<x){if(x%i==0)sum+=i;i++;)if(sum==x)return1;elsereturn0;)习题6ー、 单项选择题BDACDCACAD二、填空题①是其值可以是二级地址(指针)②是其值可以是多级地址址(指针)③沿着数组所占据的存储区域向前和向后移动多个或者是一个数组元素④可以在程序的运行过程中根据需要创建的数组int*v,int*keya,&keyadd-a⑧&n三、阅读程序题112689TOC\o"1-5"\h\z3 5 7 9111 4 7 0 813120003 3 3 3 36 8 11 3 38 9 3 3 33 3 3 3 36.111111413111111114691167111四、程序设计题//xt060401.cpp#include<stdio.h>voidmain(){intyh[11],row,col,i;*(yh+1)=1;for(i=0;i<40-2;i++)printfC");printf("%4d\n",*(yh+1));for(row=2;row<=10;row++){*(yh+row)=l;/・每行的最后ー个元素值为1*/for(col=row-l;col>=2;col—) /・生成一行・/(yh+col)=*(yh+col)+*(yh+col-1);for(i=0;i<40-2*row;i++)/*输出合适的空格・/printf("");for(col=l;col<=row;col++) /・输出一行・/printf("%4d",*(yh+col));printf("\n");//xt060402.cpp#includeくstdio.h>#include<stdlib.h>#include<time.h>voidmain(){inta[10][5],b[10],i,j;srand(time(NULL));for(i=0;i<10;i++)for(j=0;j<5;j++)(a[i]+j)=rand0%100;for(i=0;i<10;i++){*(b+i)=a[i][0];for(j=0;j<5;j++)if(*(b+i)<*(*(a+i)+j))*(b+i)=*(*(a+i)+j);)for(i=0;i<10;i++){for(j=0;j<5;j++)printf("%4d",a[i][j]);printf("\t%4d\n",b[i]);//xt060403.cpp#include<stdio.h>#include<stdlib.h>#include<time.h>intdelmem(int*v,intn,intdel);voidmain(){int*a,i,n,del;srand(time(NULL));printf("请输入处理的数组长度:");scanf("%d",&n);a=(int*)ma1loc(sizeof(int)*n);for(i=0;i<n;i++)*(a+i)=rand()%100;printf("删除操作前的数据如下所示:\n");for(i=0;i<n;i++)printf("%4d",*(a+i));printf("\n请输入欲删除的元素值:");scanf("%d",&del);n=delmem(a,n,del);printf("删除操作后的数据如下所示:\n");for(i=0;i<n;i++)printf("%4d",*(a+i));printf("\n");}intdelmem(int*v,intn,intdel){inti,j;for(i=0;i<n;i++)if(*(v+i)==del){for(j=i;j<n-2;j++)*(v+j)=*(v+j+1);n一,i-;)returnn;}//xt060404.cpp#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN15voidmain(){intscore[N][4]={0},i,j,x;srand(time(NULL));for(j=0;jく3;j++){x=rand()%100;if(x<50)J,elsescore[i][j]=x;)for(i=0;i<N;i++)for(j=0;j<3;j++)*(*(score+i)+3)+=*(*(score+i)+j);printf("scorel\tsocre2\tsocre3\tsum\n");for(i=0;i<N;i++){for(j=0;j<4;j++)printf("%d\t",*(*(score+i)+j));printf("\n");)}//xt060405.cpp#include<stdio.h>#include<stdlib.h>#include<time.h>voidmain(){intscore[N][4]={0},i,j,x;intt[4];srand(time(NULL));for(i=0;i<N;i++) 〃生成模拟成绩数据for(j=0;j<3;j++){x=rand0%100;if(x<50)j__;elsescore[i][j]=x;)for(i=0;i<N;i++) 〃统计每个学生的总分for(j=0;j<3;j++)*(*(score+i)+3)+=*(*(score+i)+j);for(i=0;i<N-l;i++){x=i;for(j=i+l;j<N;j++)if(score[j][3]>score[x][3])x=j;if(x!=i)for(j=0;j<4;j++){*(t+j)=*(*(score+x)+j);(*(score+x)+j)=*(*(score+i)+j);(*(score+i)+j)=*(t+j);})printf("scorel\tsocre2\tsocre3\tsum\n");for(i=0;i<N;i++){for(j=0;j<4;j++)printf("%d\t",*(*(score+i)+j));printf("\n");)}//xt060406.cpp#include<stdio.h>#include<stdlib.h>voidmain(){int*ArrayCat(int*s,intslen,int*t,inttlen);inta[]={l,3,5,7,9},b[]={2,4,6,8,10},*p=NULL,i;p=ArrayCat(a,sizeof(a)/sizeof(int),b,sizeof(b)/sizeof(int));for(i=0;i<(sizeof(a)+sizeof(b))/sizeof(int);i++)printf("%4d",p[i]);int*ArrayCat(int*s,intslen,int*t,inttlen){int*st,i;st=(int*)ma1loc(sizeof(int)*(slen+tlen));for(i=0;i<slen;i++)st[i]=*(s+i);for(;i<slen+tlen;i++)st[i]=*(t+i-slen);returnst;}//xt060407.cpp#include<stdio.h>#include<stdlib.h>#include<time.h>voidmain(){voidreverse(int*v,intn);int*a,n,i;srand(time(NULL));printf("请输入数组的长度:");scanf("%d",&n);a=(int*)ma1loc(sizeof(int)*n);for(i=0;i<n;i++)a[i]=rand()%100;for(i=0;i<n;i++)printf("%4d",a[i]);printf("\n");reverse(a,n);for(i=0;i<n;i++)printf("%4d",a[i]);printf("\n");)voidreverse(int*v,intn){inti,j,t;for(i=0,j=n-l;i<j;i++,j―)t=*(v+i),*(v+i)=*(v+j),*(v+j)=t;)//xt060408.cpp#include<stdio.h>#include<stdlib.h>#include<time.h>int*ArrayCopy(int*source,intn);voidmain(){int*a,*b=NULL,n,i;srand(time(NULL));printf("请输入被拷贝的数组长度:");scanf("%d",&n);a=(int*)ma1loc(sizeof(int)*n);for(i=0;i<n;i++)*(a+i)=rand()%100;b=ArrayCopy(a,n);for(i=0;i<n;i++)printf("%4d",b[i]);printf("\n");}int*ArrayCopy(int*source,intn){inti,*target;target=(int*)ma1loc(sizeof(int)*n);for(i=0;i<n;i++)target[i]=source[i];returntarget;)//xt060409.cpp#include<stdio.h>#include<stdlib.h>#include<time.h>voidsort(intv[],intn);voidreverse(intv[],intn);voidmain(){int*data,i,n;srand(time(NULL));printf("请输入需要处理的数据个数:");scanf("%d",&n);data=(int*)malloc(sizeof(int)*n);for(i=0;i<n;i++)*(data+i)=rand()%100;printf("排序前的数据如下所示:\n");for(i=0;i<n;i++)printf("%4d",data[i]);sort(data,n);reverse(data,n);printf("\n排序后的数据如下所示:\n»);for(i=0;i<n;i++)printf("%4d",data[i]);printf("\n");voidsort(intv[],intn){inti,j,k,temp;for(i=0;i<n;i++){k=i;for(j=i+l;j<n;j++)if(v[j]<v[k])k=j;if(k!=i)temp=v[i],v[i]=v[k],v[k]=temp;)}voidreverse(intv[],intn){inti,j;for(i=0,j=n-l;i<j;i++,j―)v[i]=v[i]+v[j],v[j]=v[i]-v[j],v[i]=v[i]-v[j];}//xt060410.cpp#include<stdio.h>#include<stdlib.h>#include<time.h>voidsort(intv[],intn);voidreverse(intv[],intn);voidmain(){intm,n,i»j,**row;srand(time(NULL));printf("请输入二维数组的行数:");scanf("%d",&m);printf("请输入二维数组的列数:");scanf("%d",&n);row=(int**)malloc(sizeof(int*)*m);for(i=0;i<m;i++)row[i]=(int*)ma1loc(sizeof(int)*n);for(i=0;i<m;i++)for(j=0;j<n;j++)row[i][j]=rand0%100;for(i=0;i<m;i++)if(i%2==0)sort(row[i],n);else{sort(row[i],n);reverse(row[i],n);)for(i=0;i<m;i++){for(j=0;j<n;j++)printf("%4d",row[i][j]);printf("\n");voidsort(intv[],intn){inti,j,k,temp;for(i=0;i<n;i++){k=i;for(j=i+l;j<n;j++)if(v[j]<v[k])k=j;if(k!=i)temp=v[i],v[i]=v[k],v[k]=temp;)}voidreverse(intv[],intn){inti,j;for(i=0,j=n-l;i<j;i++,j―)v[i]=v[i]+v[j],v[j]=v[i]-v[j],v[i]=v[i]-v[j];}习题7ー、 单项选择题AABCBCBDD二、填空题①ヽ(T②字符串③字符④11⑤12⑥字符型⑦连续⑧j=i⑨continue⑩i++三、阅读程序题HelloWexloWexloexloWorId123abedxyabcdxyzyzegnnegnahcDBCDegc123456SWI*CH#*Wa四、程序设计题//xt070401.cpp#include<stdio.h>intfind-char(char*str,intch){intk,num=O;for(k=0;str[k]!=,\0z;k++)if(str[k]==ch)num++;returnnum;)voidmain(){chars[100];intnum,c;printf("\nlnputaString:");gets(s);printf("\nlnputacharacter:");c=getchar();num=find-char(s,c);printf("\nnum=%d",num);}//xt070402.cpp#include<stdio.h>#include<string.h>voidmain(){charsi[50],s2[50];intk,t;puts("\nlnputsstringsi:");gets(si);puts("\nlnputsstrings2:");gets(s2);k=0;while(s1[k]==s2[k]&&sl[k]!=0)k++;t=sl[k]-s2[k];printf("\nt=%d",t);}//xt070403.cpp#include<stdio.h>char*Myitoa(intn,char*p){intk,len=-l,t;t=n;do{n=n/10;len++;}while(n>0);*(p+len+1)=0;do{k=t%10;t=t/10;*(p+len)=k+48;}while(—len>=0);returnp;}voidmain(){charstring[20];intk=12345;Myitoa(k,string);printf("%s",string);)//xt070404.cpp#include<stdio.h>#include<string.h>intIsAplidrome(char*word){char*head,*end;intlen,flag=l;len=strlen(word);head=word;end=head+len-l;while(*head==,')head++;if(head>end)return0;while(*end==,')end—;for(;head<end;){if(*head!=*end){flag=0;break;}head++;end一;)returnflag;)voidmain(){charword[80];printf("Inputaword:");gets(word);if(IsAplidrome(word))printf("\n%sisapalindrome.",word);elseprintf("\n%sisnotapalindrome.",word);)//xt070405.cpp#include<stdio.h>intIsdigit(charc){if(c>=’〇’&&c<='9')return1;return0;}voidmain(){charp[80],tmp[80],*s=p,flag=0;intnum=0;gets(s);while(*s){if(Isdigit(*s)){tmp[num]=*s;num++;flag=l;if(flagft&Isdigit(*(s+1))==0){tmp[num]='\0z;printf("\n%s",tmp);flag=0;num=0;)s++;)}//xt070406.cpp#include<stdio.h>#include<string.h>voidinvertp(char*p){staticintlen,k=0;inttmp;len=strlen(p);if(k>len/2-l)return;tmp=*(p+k);(p+k)=*(p+len-k-1);(p+len-k-1)=tmp;k++;invertp(p);voidmain(){charstring[80]="1234567";invertp(string);printf("\nThenewstringis:%s",string);)//xt070407.cpp#include<stdio.h>voidMyput(char*s){while(*s!=/\0z)printf("%c",*s++);printf("\n");}voidmain(){charword[80]="HowareYou!Myput(word);)//xt070408.cpp#include<stdio.h>#include<string.h>voidmain(){chars[100];intk;printf("\nlnputStrings:");gets(s);for(k=0;s[k]!=0;k++)(if(s[k]>=,A,&&s[k]〇,『){s[k]+=5;continue;}if(s[k]>=/V/&&s[k]<=/Z,)s[k]=s[k]+5-26;)printf("\nThenewstringis:%s",s);)//xt070409.cpp#include<stdio.h>#include<string.h>#include<stdlib.h>voidto.lowcase(char*s){while(*s){if(*s>='A'&&*s<='Z')*s+=32;s++;)}intMy.Find(char*pl,char*p2){char*s1,*s2,*p,*t1,*t2;intlen2,num=O;sl=(char*)ma1loc(strlen(pl)+1);s2=(char*)ma1loc(strlen(p2)+1);tl=sl;t2=s2;strcpy(si,pl);strcpy(s2,p2);to-lowcase(si);to-lowcase(s2);len2=strlen(p2);while((p=strstr(si,s2))&&len2!=0){num++;sl=p+strlen(s2);)free(t1);free(t2);returnnum;)voidmain(){charsi[100],s2[50];intlen2;printf("\nlnputStringsi:");gets(si);printf("\nlnputstrings2:");gets(s2);len2=My_Find(si,s2);printf("\nnum=%d",len2);}//xt070410.cpp#include<stdio.h>#include<string.h>voidmain(){charword[80];intmax=0,len,k=0,ptmp;puts("Inputastring:");gets(word);len=strlen(word);while(word[k]){while(word[k]==z')k++;len=0;while(word[k]!=z'&&word[k]){len++;k++;)if(max<len){max=len;ptmp=k-max;))printf("\nThewordis:");for(k=ptmp;k<ptmp+max;k++)printf("%c",word[k]);)习题8ー、单项选择题DCCDADDDDB二、填空题①若干个数据项②结构体成员③定义结构体数据类型的变量④同时存在⑤同时⑥需要存储区域最大的ー个分配存储空间long*char*double*三、阅读程序题110,zascalbasicb5,35160211iming19abcdefghijk四、程序设计题//xt080401.cpp#include<stdio.h>structcomp{doublere;doubleim;);typedefstructcompCOMP;voidmain(){COMPsub(COMPx,COMPy);COMPa,b,res;printf("Inputcomplexnuma:");scanf("%lf,%f",&a.re,&a.im);printf("Inputcomplexnumb:");scanf("%lf,%f",&b.re,&b.im);res=sub(a,b);printf("res.re=%g,res.im=%g\n",res.re,res.im);}COMPsub(COMPx,COMPy){COMPt;t.re=x.re-y.re;t.im=x.im-y.im;returnt;//xt080402.cpp#include<stdio.h>#include<malloc.h>voidmain(){structnode{intx;structnode*next;);intn;structnode*h=NULL,*p,*q;printf("Inputanumber:");scanf("%d",&n);while(n){p=(structnode*)malloc(sizeof(structnode));p->x=n;p->next=h;if(!h)h=p;elseif(n<=h->x){p->next=h;h=p;else{q=h;while(q->next&&n>q->next->x)q=q->next;p->next=q->next;q->next=p;)printf("Inputanumber:");scanf&n);)P=h;n=0;while(p){printf("%8d",p->x);f(++n%6==0)printf("\n");p=p->next;)printf("\n");)//xt080403.cpp#include<stdio.h>#include<stdlib.h>#defineN3structstud{charid[5];charname[20];intscore[4];doubleave;);voidinputscore(structstud*rec);voidprintscore(structstud*s);voidsum_ave(structstud*s);voidmain(){structstudst[N];inti;for(i=0;i<N;i++)inputscore(&st[i]);sum_ave(st);printscore(st);}voidinputscore(structstud*rec){inti;charin.buf[10];gets(rec->id);gets(rec->name);for(i=0;i<4;i++){gets(in-buf);rec->score[i]=atoi(in_buf);})voidsum_ave(structstud*s){intk,i,sum;for(k=0;k<N;k++){sum=0;for(i=0;i<4;i++)sum+=s[k].score[i];s[k].ave=sum/4;))voidprintscore(structstud*s){inti,k;for(k=0;k<N;k++){printf("%s\t%s:",s[k].id,s[k].name);for(i=0;i<4;i++)printf("%5d",s[

温馨提示

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

评论

0/150

提交评论