




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计练习题及参考答案1、定义一个函数intfun(inta,intb,intc),它得功能就是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。#includeintfun(inta,intb,intc)if(a+bc&b+ca&a+cb)if(a=b&b=c)return3;?elseif(a=b|b=c|a=c)return2;elsereturn1;elsereturn0;voidmaininta,b,c,shape;printf(nInputa,b,c:);scanf(%od%d%d,&a,&b,
2、&c);printf(na=%db=%d,c=%n,a,b,c);shape=fun(a,b,c);printf(nnTheshape:%dn,shape);2、编写一个程序,将两个变量得值交换,例如变量a中得值原为3,b中得值原为8,程序运行后a中得值为8口中得值为3。#includcstdio、hvoidfun(int*x,int*y)?ntt;t=*x;*x=*y;*y=tvoidmain()inta=3,b=8;printf(%od%n,a,b);fun(&a,b);printf(%d%dn,a,b);3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中例如,输入得数为:55
3、1234,输出结果应当就是:a=55、0,b=34、0,c=l2、0.# inc1udestdio、hvoidfun(float*p,float*q,float*s)floatk;if(*p*q)k=*p;*p=*q;*q=k;if(*q*s)?k=*s;*s=*p;*p=k;if(*p*q)k=*p;*p=*q;*q=k;voidmain()floata,b,c;printf(Inputabc:);scanf(%f%f%f,&a,&b,&c);printf(a=%4、1f,b=%4、If,c=%4、1fnn,a,b,c);fun(&a,&b,c);printf(a=%4、1f,b=%4、1f
4、,c=%4、1fnn,a,b,c);4、编写函数fun(intn),它得功能就是:计算正整数n得所有因子(1与n除外)之与作为函数值返回。例如:n=120时,函数值为239。# inc1ude# includeintfun(intn)1 nti,s=0;for(i=2;in;i+)if(n%i=0)s=s+i;returns;voidmain()/*主函数*/voidNONO();printf(%dn,fun(120);NONO();voidNOND()/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件./FILE*wf;wf=fopen(a30、out,W);fpri
5、ntf(wf,%dn,fun(120);fclose(wf);5、计算s,并输出S=1+1+21+2+31+2+3+nn通过键盘输入,例如:若n得值为11时,则函数值为:1、833333#include#includestd1ib、hf1oatfun(intn)1 nti;floats=1、0,h=1;for(i=2;i=n;i+)h=h+i;s=s+1、0/h;returns;voidmain()intn;floats;printf(nPleaseenterN:);scanf(%d,&n);s=fun(n);printf(theresultis:%科,s);6、将一个整数中得每一位上为奇数得
6、数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位.例如,当s中得数为:时,t中得数为:7531。#includevoidfun(1ongs,10ng*t)intd;10ngs1=1;*t=0;while(s0)d=s%10;if(d%2!=0)?*t=d*s1+t;s1=s1*10;s/=10;main()longs,t;printf(nPleaseenters:);scanf(%ld,&s);fun(s,&t);printf(Theresultis:%1dn,t);7、计算并输出k以内最大得10个能被13或17整除得自然数之与.k得值从键盘传入,若k得值为500,则输出4622。
7、#ineludestdio、hintfun(intk)1 ntm=0,mc=0,j;while(k=1)&(mc10)if(k%13=0)|(k%17=0)m=m+;kmc+;k-;returnm;voidmain()pri nn” ,fun(500 ) ) ;8、已知一个数列得前三项分别为0,0,1,以后得各项都就是其相邻得前三项之与,计算并输出该数列前n项得平方根之与sumi伤J如,当n=10时,程序得输出结果应为23、197745。#inc1ude#includemath、hdoublefun(n)doublesum,s0,s1,s2,s;intk;sum=1、0;if(n=2)sum=
8、0、0;s0=0、0;si=0、0;s2=1、0;for(k=4;k=n;k+)s=s0+s1+s2;sum+=sqrt(s);s0=si;si=s2;s2=s;returnsunn;?voidmain()intn;printf(InputN=);scanf(%d,&n);printf(n”,fun(n);9、编写一个程序,从键盘输入m输出大于mfl紧随m#素数#ineludeintfun(intm)inti,k;for(i=m1;;i+)for(k=2;k=i)return(i);voidmain()intn;printf(nPleaseentern:);scanf(%d”,n);print
9、f(%n,fun(n);1)。10、判断两个整数mfn就是否互质(即就是否有公共得因子)(mw1,方法就是:用2到t(t取mWn中较小得那个数)之间得数分别去除mWn,若En能同时被某个数除尽,则mWn不互质;否则它们互质.例如,若输入187与85,则应输出N0表示它们不互质,它们有公因子17)。若输入89与187,则应输出Ycs(表示它们互质)。#inc1udeintIsThat(intm,intn)1 ntk,t,mk=1;t=mif(mn)t=n;for(k=2;k=t;k+)if(m%k=0&n%k=0)mk=0;break;returnmk;voidmain()intm,n;prin
10、tf(nP1easeenter2numbers:n);scanf(%d%d”,&m,&n);if(IsThat(m,n)printf(Yesn”);elseprintf(Non);11、将十进制正整数m专换成k进制数(2k9)并输出(m,k从键盘输入)例如,若输入8与2,则应输出1000(即十进制数8转换成二进制表示就是100)。#include=0;j-)printf(%d,aaj);?voidmain()intb,n;printf(nPleaseenteranumberandabase:n);scanf(%d%d,&n,&b);Trans(n,b);12、统计从键盘输入得50个实数中有多少
11、个正数、多少个负数、多少个零#includevoidfun(int*zs,int*fs,int*l,floataa)?inti;?or(i=0;i0)?(*zs)+;?if(aai0)?(?fs)+;%(aai=0)?(?l)+;?voidmain()floatnum50;?nti,czs,cfs,cl;czs=cfs=cl=0;平rintf(nPleaseenter50floatnumbers:n);for(i=0;i50;i+)飞canf(f”,&numi);fun(&czs,&cfs,&c1,num);?printf(n正数:%d,负数:d,零:%n,czs,cfs,cl);13、计算并
12、输出方程X2+Y2=1989得所有整数解#ineludevoidfun()?ntx,y;for(x=1;x=44;x+)?for(y=l;y=44;y+)?if(x*x+y*y=1989)?printf(x=%d,y=%dn,x,y);voidmain()printf(“方程x人2+yA2=1989得整数解为:n)fun();14、从键盘输入10个整数,求出其中得最大值.#includeintfun(intaa口)2ntm,i;m=aa0;for(i=1;i10;i+)if(aaiMm=aai;returnm;voidmain()intnum10,i;平rintf(请从键盘输入10个整数:n”
13、);for(i=0;i10;i+)Rcanf(%d”,&numi);平rintf(n最大得数就是:dn123451123411123111121111115、从键盘输入n值,输出如右图形。(例如n=5时)#inc1udevoidfun(intn)inti,j;for(i=1;i=n;i+)for(j=1;j=i;j+)?)rintf(3d,1);for(j=2;j=n+1-i;j+)?)rintf(%3d”,j);7Printf(n);voidmain()intn;为rintf(n请输入图形得行数:”);?scanf(%d,&n);fun(n);16、使用函数得方式,计算如下公式得值。1 11
14、A1=1,A2=,A3=,An=1+A11+A21+A(n1)例如:若n=10,则应输出:0、617977。#include1)例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14(不用做)19、计算并输出当0x0、97时下列多项式得值,直到|S(n)-S(n-1)|#includemath、hdoub1efun(doublex)intn=1;?/*循环计数*/doub1esn=1;?/*累计数*/doublexn=1,xn1=0;/*x得n值,以及x得n-1值;*/while(fabs(xnxn1)=0、000001)/*绝对值就是否合格*/?xn=xn*x*(0、5n+1)/n
15、;/*表达式分解以后xn=(xn1)*x*(0、5n+1)/n*/?+=1;sn+=xn;?/*sn累力口上xn*/returnsn;voidmain()doublex,s;printf(Inputx:);scanf(%lf,&x);s=fun(x);printf(s=%fn,s);20、计算并输出s.xA2x人3xAns=1+x+2!3!n!3 4 9859。n,x从键盘输入,例如,当n=10,x=0、3时,函数值为1、#includestdio、hdoublefun(doublex,intn)inti;doublef=1、0,h=x;doubles=1;s=s+h/f;for(i=2;ii
16、ntfun(inthigh)intsum=0,n=0,j,yes;while(high=2)&(n10)yes=1;for(j=2;j=high/2;j+)if(high%j=0)yes=0;break;if(yes=1)sum+=high;n+;high-;returnsum;voidmain()printf(%dn,fun(100);22、请编写函数floatfun(intn),它得功能就是:返回n(包括n)以内能被5或9整除得所有自然数得倒数之与。例如,n=20,返回0、583333.注意:要求n得值不大于1000#inc1udedoublefun(intn)inti;doub1esum
17、=Q0;if(n0&n=100)for(i=1;i0/i;returnsum;voidmain()intn;doubles;printf(nInputn:);scanf(%d,&n);s=fun(n);printf(ns=%fn,s);23、请编一个函数 fu n (int * a , in t n, i n t *od d , int *eve n ), 函数得功能就是分别求出数组中所有奇数之与以及所有偶数之与.形参n给出数组a中数据得个数;利用指针odd返回奇数之与, 例如:数组中得值依次为:1,9, 2,3,11 ,利用指针even返回偶数之与。则利用指针odd返回奇数之与2 4 ;利用
18、指针ev e n返回偶数之与# i n clud e 8。# de f iN 20funint, int n , intdd,intintsum_odd= 0 ,sum e v0; i n; i + +)en=0;if(a i %2= 0)sumeven=se*odsum odd+=ad =sumn_o d d;i ;*even=sum_even;voimain( )intaN= 1, 9, 2, 3,11, 6,i,p ri for( print unt f ( Th e o rigina 1 d a i = 0; i #ineludemath、hf10atfun(inta,intb,int
19、c)f1oatp;p=(a+b+c)/2;才eturnsqrt(p*(p-a)*(p-b)*(p-c);voidmain()?inta,b,c;printf(“请输入三角形三条边:n);?Scanf(d%d%d,&a,&,&d);?f(a+bc&b+ca&a+cb)printf(三角形面积为:、2f,fun(a,b,c);elseprintf(无法构成三角形”)425、编写程序,求E=1+1/1!+1/2!+1/n!,要求最后一项得值小于10#include=1E-4);returnm;voidmain()intn;doub1es;printf(Inputn:);scanf(d,&n);s=f
20、un(n);printf(s=n,s);26、计算并输出给定数组(长度为9)中每相邻两个元素之平均值得平方根之与。例如,给定数组中得9个元素依次为12、0、34、0、4、0、23、0、34、0、45、0、18、0、3、0、11、0,输出应为:s=35、951014。#includedoublefun(doublex9)1 nti;doubleavg=0、0,sum=00;for(i=0;i8;i+)avg=(xi+xi+1)/2;sum+=sqrt(avg);returnsum;voidmain()doubles,a9=12、0,34、0,4、0,23、0,34、0,45、0,18、0,3、0
21、,11、0;inti;printf(nTheorigina1datais:n);for(i=0;i1f”,ai);printf(nn);s=fun(a);printf(s=%fn,s);27、将1到mi内(含m)能被7或11整除得所有整数放在数组a中424449例如,若输入m得值为50,则在数组a中得值为:711142122283335#includestdio、hdefineM100voidfun(intm,int*a,int*n)inti,count=0;for(i=1;i=nr)i+)if(i%7=0|i%11=0)acount+=i;*n=count;voidmain()intaaM,
22、n,k;fun(50,aa,&n);for(k=0;kn;k+)if(k+1)%20=0)printf(n);elseprintf(%4d,aak);printf(n);28、请编写函数intfun(intm,intscore口,intbelow口),它得功能就是:将低于平均分得人数作为函数值返回,并将低于平均分得成绩放在below数组中(m表示scorc得长度,score表示成绩).例如,当score数组中得数据为:10、20、30、40、50、60、70、80、90时,函数返回4,below中得数据应为:10、20、30、40。# includestdio、h# includeintfun
23、(intscore口,intm,intbelow口)?inttotal=0;intaverage=0;2nt*p_below=below;?inti=0;?intj=0;for(i=0;im;i+)?total=total+scorei;&verage=total/m;for(i=0;im;i+)?f(scoreiaverage)?*p_below=scorei;p_below+;?j+;?*p_below=NULL;return(j);main()inti,n,below9;intscore9=10,20,30,40,50,60,70,80,90;n=fun(scorc,9,below/);
24、printf(nBelowtheaveragescoreare:);for(i=0;in;i+)printf(%d,be1owi);29、用插入排序法将n个字符进行排序(降序)o(提示:插入法排序得思路就是:先对数组得头两个元素进行排序,然后根据前两个元素得情况插入第三个元素,再插入第四个元素)。# defineN80# includestdio、h”# inc1udestring、h”voidins6rt(char*aa)inti,j,n;charch;n=strlen(aa);?for(i=1;in;i+)ch=aai;j=i1;while(j=0)&(chaaj)aaj+1=aaj;j-
25、;aaj+1=ch;voidmain()charaN=QWETYUIOPASDFGHKLMNBVCXZ;inti;printf(Theorigina1string:%sn,a);insert(a);printf(Thestringaftersorting:%snn,a);30、假定整数数组a中元素得值不重复。删除a中值为x得元素(x从键盘输入)#include#defineN20fun(int*a,intn,intx)intp=0,i;an=x;whi1e(x!=ap)P=P+1;if(p=n)return1;elsefor(i=p;in;i+)ai=ai1;returnn-1;voidmai
26、n()intwN=-3,0,1,5,7,99,10,15,30,90,x,n,i;n=10;printf(Theoriginaldata:n);for(i=0;in;i+)printf(%5d,wi);printf(nInputx(todelete):);scanf(d,&x);printf(Delete:n,x);n=fun(w,n,x);if(n=1)printf(*Notbefound!*n);elseprintf(Thedataafterdeleted:n);for(i=0;in;i+)printf(%5d,wi);printf(nn);31、 一个已按从小到大得顺序排好得数组a,编写
27、程序,从键盘输入一个数x按原来排序得规律将它插入数组a中。#inc1udedefineM20voidInSort(int*n,intvv口,intk)1 nti=0,j;while(kvvi&i*n)i+;if(ii;j-)vvj=vvj1;vvi=k;+n;voidmain()intaaMl,i,k,m;system(cls);printf(nPleaseenteranumber:n);scanf(d,&m);printf(nPleaseenter%dnumbers:n,m);for(i=0;im;i+)scanf(%d“,&aai);printf(nPleaseenteranothernu
28、mber:n);scanf(d”,&k);InSort(&m,aa,k);for(k=0;kvoidfun(int*pt)inti,j,f1ag;*pt=2;*pt+;for(i=3;i100;i+)flag=1;for(j=2;ji;j+)if(i%j=0)flag=0;1 f(f1ag)*pt=i;*pt+;*pt=0;voidmain()1 nt*pointer,a30;pointer=a;fun(pointer);printf(Thieresultisn”);while(*pointer)printf(%d,*pointer+);33、已知一个数组a中包括10个整数元素,从a中第二个元
29、素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b。#includevoidfun(inta口,intb口)inti;for(i=1;i10;i+)?bi-1=ai-ai-1;for(i=0;i9;i+)?printf(%3d”,bi);if(i+1)%3=0)?)rintf(n”);voidmain()inta10=1,2,3,4,5,6,7,8,9,10;intb9;fun(a,b);34、请编写函数fun,函数得功能就是:将M得二维数组中得字符数据按列得顺序依次放到一个字符串中。例如,二维数组中得数据为:WWWWSSSSHHHH则字符串中得内容应就是:WSHWSHWS#in
30、c1udevoidfun(int(*s)10,int*b,int*n,intmmintnn)intx,y;for(x=0;xnn;x+)for(y=0;ymm;y+)bx*mm+y=*(sy+x);(n)+;voidmain()intw1010=33,33,33,33,44,44,44,44,55,55,55,55,i,j;inta100=0,n=0;printf(Thematrix:n);for(i=0;i3;i+)for(j=0;j4;j+)printf(%3d,wij);printf(n”);fun(w,a,&n,3,4);printf(TheAarray:n);for(i=0;i#de
31、fineM4defineN5intfun(intaMlN)inti,j,sum=0;for(i=0;iM;i+)for(j=0;jN;j+)if(i=0)|(i=M-1)|(j=0)|(j=N1)sum+=aij;returnsum;voidmain() i ntntaaMN=1,3,5,7,9,2,9,9,9,4,6,9,9,9,8,1,3,5,7,0;i,j,y;” ) ;%6d, aa i j);ystem(cls);printf(Theoriginaldataisfor(i=0;iM;i+)for(j=0;jN;j+)printf(printf(n”);y=fun(aa);n ” ,
32、y );printf(nThesum:printf(n”);36、求出M行N列得二维数组tt里每列中得最小元素,并依次放入pp数组中。# inc1ude# defineM3# defineN4voidfun(intttMN,intppN)inti,j,min;for(i=0;ittji)min=ttji;ppi=min;voidmain()inttMN=22,45,56,3019,33,45,38,20,22,66,40;intpN,i,j,k;system(“cis”);printf(Theorigina1datais:n);for(i=0;iM;i+)for(j=0;jN;j+)print
33、f(%6d,tij);printf(n);fun(t,p);printf(nTheresultis:n);p k )for(k=0;kN;k+)printf(%4dprintf(n);37、请编写程序,实现B=A、即把矩阵劭口上砥*置,存放在矩阵B中。计算结果在rniain函数中输出I 1 47| 2 5 8|3 69|例如,输入下面得矩阵:其转置矩阵为:|123|I456|I789|程序输出:|2610|61014|101418|#includcstdio、hvoidfun(inta33,intb33)inti,j;for(i=0;i3;i+)for(j=0;j3;j+)bij=aij+aj
34、i;voidmain()4 ,5 , 6, 7,8,9 , t 3 3inta33=1,2,3inti,j;fun(a,t);for(i=0;i3;i+)for(j=0;j3;j+)printf(%7d冲j);printn);38、编写程序删除字符用s中从下标k开始得n个字符(n与k从键盘输入)例如,字符串内容为:HellolloWorld!,k中得值为:5,n中得值为:3,结果为:HelloWorld!.# include# inc1udestring、hcharEXUL(chartt)intisfirst=1;inti,1ength;1 ength=str1en(tt);for(i=0;i
35、=a&tti=A&tti=Z)tti=isfirst?tti:(tti-A+a,);isfirst=0;e1se1 sfirst=1;returntt;main()inti;chartt81;printf(nPleaseenterastring:);g6ts(tt);printf(nTheresu1tstringis:n,EXUL(tt);40、编写程序,从键盘输入字符串tt,字符串中a到z26个字母各自出现得次数,并依次放在pP所指数组中。例如,当输入字符串:abcdefgabcdeabc后,程序得输出结果应该就是33322110000000000000000000#includevoidf
36、un(char*tt,intpp口)?char*p_tt=tt;inti=0;?vhile(i26)ppi1=0;i+;for(;*p_tt!=NULL;ptt+)switch(*p_tt)?casea:pp0+;break;caseb:pp1+;break;?casec:pp2+;break;金ased:pp3+;break;?casee:pp4+;break;?casc/f:pp5+;break;?caseg:pp6+;break;?case/h:pp7+;break;?ase/i:pp8+;break;?casej/:pp9+;break;?casek:pp10+;break;?case
37、T:pp11+;break;?casem:pp12+;break;?ase/n,:pp13+;break;caseo:pp14+;break;?case/p:pp15+;break;?caseq:pp16+;break;?casezrz:pp17+;break;金ases:pp18+;break;?aset:pp19+;break;?2ase/u:pp20+;break;casev:pp21+;break;case/w:pp22+;break;casex7:pp23+;break;?a s e y:pp24 +; bre a k;?a s e z:p p 25+ ; break ;ma i n
38、 () char a a 1 00 0;in t bb 26 , k, np r i ntf( sc a nf(%s , a a);f un (aa, b bnP lease e nter);a c har strifor ( k = 0 ; k26 ; k + + ) prin tf (%d ,g: ) ;bbk )printf(n);41、请编写程序,把字符串s中所有得字符前移一个位置,串中得第一个字符移到最后。n、例如:原有得字符串为:Mn、123xyZ,则调用该函数后,用中得内容为123xyZM0# inelude# includeh#defineN81fun(char*s)charbNJ;sprintf(b,%s%c,s+1,*s);strcpy(s,b);voidmain()charaN;printf(Enterastring:);gets(a);printf(Theoriginalstringis:);puts(a)fun(a);printf(Thestringaftermodified:);puts(a);g fedc b a。g e ts ( a );); puts( a ) ;);2、编写程序,把字符串中得内容逆置例如:字符串中原有得内容为:abcdefg,输出:#includestring、h# inc1ude#
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- NaOH-Na2CO3复合碱烧结法从二次铝灰中提取氧化铝的研究
- 绿色创新失败对企业再创新的影响研究
- H消防设备公司市场竞争力提升策略研究
- 正渗透-膜蒸馏绿色技术用于苹果汁非热浓缩的研究
- 副猪革拉瑟氏菌vtaA3基因缺失株的生物学特性研究及重组蛋白的免疫效果评价
- 丝绢纺织企业ESG实践与创新战略研究报告
- 香菇调味基料制备过程中的风味特性、理化性质及生物活性变化研究
- 技术水平对基层农技人员增值服务取酬的影响研究
- 仿制药注册资料翻译服务行业跨境出海战略研究报告
- 棉制针织衫企业ESG实践与创新战略研究报告
- 第1课 おじぎ 课件高中日语人教版第一册-1
- 08SG510-1 轻型屋面平行弦屋架(圆钢管、方钢管)
- 事前绩效评估具体工作实施方案
- 六年级下册语文第一单元测试卷 部编版(含答案)
- 2024年湖南高速铁路职业技术学院单招职业适应性测试题库新版
- 《研学旅行市场营销》课件-研学旅行市场营销之社群营销
- clsim100-32药敏试验标准2023中文版
- LNG加气站质量管理手册
- 艰难梭菌感染动物模型的建立及其应用评价
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 2024年公安部直属事业单位招聘笔试参考题库附带答案详解
评论
0/150
提交评论