《c语言程序设计练习题.docx》由会员分享,可在线阅读,更多相关《c语言程序设计练习题.docx(22页珍藏版)》请在优知文库上搜索。
1、【程序填空】功能:产生并输出杨辉三角的前七行011I1211331146411510IO51161520156*/#includemain()inta77;intij;for(i=0;i7;i+)ai0=l;*space*/aiji=l;1for(i=2;i7;i+)*space*/for(j=l;ji;j+)*space*/aiU=aMU+aM4;for(i=0;i7;i+)*space*/for(j=0;j=i;j+)printf(,%6daij);printf(,n,);【程序改错】功能:计算正整数num的各位上的数字之积。例如:输入252,则输出应该是20。*/#includelong
2、fun(longnum)/*F0UND*5jt*/longk=l;dok*=num%10;*FOUND*3tc*/num/=10;(while(num);returnk;main()longn;printf(nPleaseenteranumber:);/*F0UND*5jc*/scanf(%ld,n);*found*/printf(n%ldn,fun(n);*【程序改错】功能:根据整型形参m的值,计算如下公式的值。1I1t=1.2x23x3mxm例如:若m=5,则应输出:0.536389*/#includedoublefun(intm)inti;/*F0UND*5jc*/for(i=2;i=m
3、;i)*FOUND*3tc*/y-=1.0(i*i);/*F0UND*5jc*/returny;main()(intn=5;printf(ntheresultis%lfn,fun(n);【程序设计】功能:用辗转相除法求两个整数的最大公约数。*/#includevoidwwjt();intgcd(intn,intm)*PrograID*/intr,t;if(nm)t=n;n=m;m=t;r=n%m;while(r!=O)n=m;m=r;r=n%m;)return(m);/*End*/main()intn,m,result;scanf(%d%d,&n,&m);result=gcd(n,m);pri
4、ntf(thegcdis%dn,result);wwjt();)voidwwjt()(FILE*IN,*OUT;intm,n;inti2;into;IN=fpen(,in.dat,r);if(IN=NULL)(printf(ReadFILEError*);)OUT=fopen(out.dat,w);if(OUT=NULL)(printf(WriteFILEErrorn);)for(n=0;n6;n+)(for(m=0;m2;m+)(fscanf(IN,%dim);1o=gcd(i0,il);fprintf(OUT%dn,o);)fclose(IN);fclose(OUT);【程序填空】功能:对
5、任一整数N(N=0),它都可以分解成1(或-1)和一些质数(素数)因子的形式。例如:当N=150时,可分解成1X2X3X5X5;当N=-150时,可分解为-1X2X3X5X5。下边程序能实现这种分解过程。当N=150,输出以下分解结果:N=I*2*3*5*5*/#include#includemain()intn,i,r;scanf(%d,0)printf(n=);elseprintf(n=-);n=-n;*SPACE*/for(i=2;i=n;i+)*Space*/r=n%i;while(r=0)printf(*%d,i);*space*/n=ni;r=n%i;printf(n);【程序改错
6、】功能:根据以下公式求口值,并作为函数值返回。例如:给指定精度的变量eps输入0.0005时,应当输出Pi=3.l405781121231234=1H+-X+XX+XXX+.23353573579*/#includedoublefun(doubleeps)doubles,t;intn=l;s=0.0;t=l;/*F0UND*3ic*/while(teps)s+=t;*3c*FOUND*/t=*n(2*n+l)*t;n+;*FOUND*3lc*/return2*s;main()doublex;scanf(%lf,(fex);printf(neps=%lf,Pi=%lfnn,x,fin(x);*【
7、程序改错】功能:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入。例如:若k的值为500,则函数值为4622。*/#includeintfun(intk)intm=0,mc=0;/*found*/while(k=2)&(mc10)*FOUND*5tc*/if(k%13=0)(k%l7=0)m=m+k;me+;*FOUND*/k-;*found*/returnm;main()printf(%dn,fun(500);/*【程序设计】功能:求一个大于10的n位整数的后n-1位的数,并作为函数值返回。*/#include#includeconio.hvoidwwjt();
8、intfun(intw)/*PrograID*/intn=0;inti=l;while(w10)n=n+i*(w%IO);w10;i*=10;)returnn;/*End*/main()(intm;printf(Enterm:);scanf(%d&m);printf(nTheresultis%dnfun(m);wwjt();)voidwwjt()(FILE*IN,*OUT;intc;intt;into;IN=fopen(,in.dat,r,);if(IN=NULL)(printf(ReadFILEError);)OUT=fopen(1,out.dat,w);if(OUT=NULL)(print
9、f(WriteFILEError);1for(c=l;c=5;c+)(fscanf(IN,%d,t);o=fun(t);fprintf(OUT,%dn,o);)fclose(IN);fclose(OUT);【程序填空】功能:删除字符串中的指定字符,字符串和要删除的字符均由键盘输入。*/#includemain()charstr80,ch;inti,k=0;*space*/gets(str);ch=getchar();*SPACE*/for(i=0;stri!=0;i+)if(stri!=ch)*SpaCEj*c*/strkj=stri;k+;*SPACE*/strk=0;puts(str);/
10、*【程序改错】功能:求1到10的阶乘的和。*/#includemain()inti;floats=0;floatfac(intn);/*F0UND*5jt*/fdr(i=l;i=10;i+)*FOUND*3lc*/s+=fac(i);printf(%fn,s);floatfac(intn)*FOUND*5*c*/floaty=l;inti;for(i=l;i=n;i+)y=y*i;*found*/returny;*【程序改错】功能:将若干学生的档案存放在一个文件中,并显示其内容。/#includestructstudent(intnum;charname10;intage;);structstudentstu3=(001,LiMei,18),(002,JiHua,19),(003,SunHaoJ8);#includevoidmain()*F0UND*3tc*/structstudent*p;*F0UND*3lc/HLE*fp;inti;if(fp=fopen(stuJist,wb,)=NULL)(printf(cannotopenfilen);return;*found*/for(*p=stu;pstu+3;p+)(将*p改