二、编程题1.有一函数:当x0时,y=-1;当x=0时,y=0;当x0时,y=1。编一程序,输入x的值,输出y的值。#includestdio.hvoidmain(){intx,y;printf(请输入x:);scanf(%d,&x);if(x0)y=-1;elseif(x=0)y=0;elsey=1;printf(y=%d,y);}2.输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。#includestdio.hvoidmain(){inta,b,c,temp=0;printf(pleaseinputa,b,c:);scanf(%d%d%d,&a,&b,&c);if(ab){temp=a;a=b;b=temp;}if(ac){temp=a;a=c;c=temp;}if(bc){temp=b;b=c;c=temp;}printf(从大到小为:%d,%d,%d\n,a,b,c);}3.有三个整数a,b,c,由键盘输入,输出其中最大者。voidmain(){inta,b,c,max;printf(输入三个数字:\n);scanf(%d%d%d,&a,&b,&c);if(ab&&ac)max=a;if(ba&&bc)max=b;if(ca&&cb)max=c;printf(最大值是:%d\n,max);}4.编程求圆面积、圆周长。要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字。#includestdio.h#definepi3.1416main(){floatr,l,s;printf(请输入半径:\n);scanf(%f,&r);l=2*pi*r;s=pi*r*r;printf(l=%7.2f\ns=%7.2f\n,l,s);}5.【有点难】有分段函数:当x-10时,y=|x|+5;当-10≤x≤10时,y=4x-8;当x10时,y=sqrt(x)。编一程序,输入x的值,输出y的值。6.编写程序,判断某一年是否是闰年。(闰年的条件是:能被4整除,但是不能被100整除,或者可以被400整除。)#includestdio.hintmain(){intyear,leap;scanf(%d,&year);if(year%4==0){if(year%100==0){if(year%400==0)leap=1;elseleap=0;}elseleap=1;}elseleap=0;if(leap)printf(%dis,year);elseprintf(%disnot,year);printf(aleapyear.\n);return0;}7.输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。公式为c=5/9(f-32)#includestdio.hintmain(){floatf,c;printf(输入华氏温度:\n);scanf(%f,&f);c=(f-32)/1.8;printf(对应的摄氏温度是:%5.2f\n,c);}8.有一函数:当x1时,y=|x|;当1=x10时,y=2x-1;当x=10时,y=3x+11。编一程序,输入x的值,输出y的值。9.输入三个实数,将这三个数按由小到大的顺序排列,并输出这三个数。#includestdio.hvoidmain(){inta,b,c,temp=0;printf(pleaseinputa,b,c:);scanf(%d%d%d,&a,&b,&c);if(ab){temp=a;a=b;b=temp;}if(ac){temp=a;a=c;c=temp;}if(bc){temp=b;b=c;c=temp;}printf(从小到大为:%d,%d,%d\n,a,b,c);}10.输入一个字符,判断它是否是小写字母,如果是,将它转换成大写字母;如果不是,不转换。然后输出最后得到的字符。#includestdio.h#includestring.hvoidmain(){chara;scanf(%c,&a);if(islower(a))a=a-32;printf(%c\n,a);}11.编程求圆柱体积,圆柱表面积。要求圆半径,圆柱高由键盘输入,输出时要求有文字说明,取小数点后两位数字。#includestdlib.hintmain(intargc,char*argv[]){floatr,h,l,s,sq,vq,vz;floatpi=3.1415926;printf(请输入圆的半径r,圆柱高h:);scanf(%f,%f,&r,&h);l=2*pi*r;s=pi*r*r;sq=4*pi*r*r;vq=4.0/3.0*pi*r*r;vz=pi*r*r*h;printf(圆周长为:l=%6.2f\n,l);printf(圆面积为:s=%6.2f\n,s);printf(圆球表面积为:sq=%6.2f\n,sq);printf(圆球体积为:vq=%6.2f\n,vq);printf(圆柱体积为:vz=%6.2f\n,vz);system(PAUSE);return0;}12.有分段函数:当x-5时,y=x+10;当-5≤x≤5时,y=x^2;当x5时,y=2x-10.编一程序,输入x的值,输出y的值。13.有三个整数a,b,c,由键盘输入,输出其中最小者。#includestdio.hintmain(){inta,b,c,temp,min;printf(请输入三个整数:);scanf(%d,%d,%d,&a,&b,&c);temp=(ab)?a:b;min=(tempc)?temp:c;printf(三个数中最小数是%d\n,min);return0;}14.输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。#includestdio.hvoidmain(){charc;printf(inputch:);c=getchar();if(c='A'&&c='Z'){c=c+32;printf(%c,c);}elseprintf(%c,c);}15.输入三角形的三边长,求三角形面积。求三角形面积的公式为area=sqrt(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/2#includestdio.h#includemath.hvoidmain(){floata,b,c,s,area;printf(依次输入a,b,c:);scanf(%f%f%f,,&a,&b,&c);s=(float)0.5*(a+b+c);area=(float)sqrt(s*(s-a)*(s-b)*(s-c));printf(面积为:%7.2f,area);}16.编程求2!+4!+6!+8!+10!的值,并输出结果。#includestdio.hintmain(){intn=1,sum=0,j,m=1,i;for(i=1;i=5;i++){m=1;for(j=1;j=2*i;j++)m=m*j;sum=sum+m;}printf(sum=%d\n,sum);return0;}17.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想吃时就剩一个桃子了。求第一天共摘了多少个桃子。#includestdio.hvoidmain(){intday;staticx1=1;day=10;while(day0){x1=(x1+1)*2;day--;}printf(桃子总数=%d\n,x1);}18.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。#includestdio.hintmain(){inti,j,k,n;printf(水仙花数是);for(n=100;n1000;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);}printf(\n);return0;}19.编程求1~100之间的所有素数,并输出结果。#includestdio.hintmain(void){inta[100],i,j;for(i=0;i100;i++)a[i]=i+1;for(i=1;i100;i++)for(j=i+1;j100;j++)if(a[i]&&a[j]%a[i]==0)a[j]=0;for(i=1;i100;i++)if(a[i])printf(%d\t,a[i]);return0;}20.编程求1!+3!+5!+7!+9!的值,并输出结果。#includestdio.hintmain(){intn=1,sum=0,j,m=1,i;for(i=1;i=5;i++){m=1;for(j=1;j=2*i-1;j++)m=m*j;sum=sum+m;}printf(sum=%d\n,sum);return0;}21.用pi/4≈1-1/3+1/5-1/7+...公式求pi的近似值的绝,直到某一项对值小于10的-6次方为止。#includestdio.h#includemath.hintmain(){intsign=1;doublepi=0.0,n=1.0,term=1.0;while(fabs(term)=1e-6){pi=pi+term;n=n+2;sign=-sign;term=sign/n;}pi=pi*4;printf(pi=%10.8f\n,pi);return0;}22.一个球从100m高度自由落下,每次落地后又反跳回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米?#includestdio.h#includestdio.hmain(){floatsn=100.0,hn=sn/2;intn;for(n=2;n=10;n++){sn=sn+2*hn;/*第n次落地时共经过的米数*/hn=hn/2;/*第n次反跳高度*/}printf(thetotalofroadis%f\n,sn);getch();}23.输入两个正整数m和n,求其最大公约数和最小公倍数。#includestdio.hintmain(){intp,r,n,m,temp;printf(请输入两个正整数n,m:);scanf(%d%d,,&n,&m);if(nm){temp=n;n=m;m=temp;}p=n*m;while(m!=0){r=n%m;n=m;m=r;}printf(它们的最大公约数为:%d\n,n);printf(它们的最小公约数为:%d\n,p/n);return0;}24.利用循环,编程求1!+2!+3!+…+10!的值,并输出结果。main(){inti,j,n,sum=0;for(i=1;i=10;i++){n=1;for(j=1;j=i;j++)n*=j;sum+=n;}printf(%d\n,sum);}25.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13......,求出这个数列前20项之和。#includestdio.hmain(){inti,x,y,a;floatsum=0;x=2;y=1;for(i=1;i20;i++){sum+=(float)(x)/y;//printf(%d/%d\n,x,y);a=x;x=x+y;y=a;}printf(%7.5f\n,sum);}26.求Fibonacci数列前40个数。这个数列有以下特点:第1和第2个数为1,从第3个数开始,该数是其前面两个数之和。#includestdio.h#defineN4longfibonacci(intn){if(0==n||1==n)return1;elsereturnfibonacci(n-