if (n==0) f=1; else
f=n* fac(n-1); return f; }
main( ) {long y; int n;
printf(\"pleace intup one number:\"); scanf(\"%d\ y=fac(n);
printf(\"%d!=%ld\}
2、编写一个求x的y次幂的函数pw,在main函数中从键盘输入a、b的值, 然后调用pw函数求a的b次幂,并输出结果。 #include long s=1; int i; for(i=1;i<=y;i++) s=s*x; return s; } main() { long sum; int a,b; printf(\"\\nEnter a,b:\"); scanf(\"%d%d\ sum=pw(a,b); printf(\"The sum is %ld\} 3、写一函数max,计算三个数中最大数 。在主函数中输入三个数, 调用该函数求出其中最大数并输出。(要求:三个数为实数) #include int max(int a,int b,int c){ int max; if(a>b) max=a; else max=b; if(max printf(\"\\nEnter x,y,z:\"); scanf(\"%d%d%d\ m=max(x,y,z); printf(\"the max is %d.\}_ 4、写一个函数计算两个正整数的最大公约数,在主函数中用scanf输入m, n两个正整数,调用函数后,打印函数返回值(即这两个正整数的最大公约数)。 #include return gcd(n,m%n); } main(){ int a,b,c,temp; scanf(\"%d%d\ if(aprintf(\"%d\ 5、编写一个函数,该函数的功能是判断一个整数是不是素数,在main函数中 调用该函数,输出200以内所有的素数。(待定) #include void f(int n){ (原题:输出1-1000以内所有的素数,并按每行5个输出 。) int i; for(i=2;i printf(\"%d\\} main() { int j; for(j=2;j<200;j++) f(j); } 6.请编一个自定义函数,功能:将给定的字符串中的所有字母改为小写字母。 字符串在主函数中从键盘任意输入(容许包含空格) 7、编写一个函数,该函数的功能是判断一个整数是不是素数,在main函数 中输入一个整数,调用该函数,判断该数是不是素数,若是则输出“yes”, 否则输出“no” #include for(i=2;i printf(\"no\"); } main(){ int m; printf(\"\\nEnter the m:\"); scanf(\"%d\ f(m);} 8、将1--1000中所有21的倍数存到一个一维数组中,再按每行5个数据输出到 屏幕上。 #include int i,j=0,a[50]; for (i=1;i<=1000;i++) { if (i%21==0){ a[j]=i; printf(\"%5d\ if (j%5==4) printf(\"\\n\"); j++; }}} 8、在屏幕上打印以下图案:(要求打印N行,N用符号常量定义为7) * ** *** **** ***** ****** ******* #include for(i=1;i<=N;i++){ for(j=1;j<=N-i;j++) printf(\" \"); for(m=1;m<=i;m++) printf(\"*\"); printf(\"\\n\"); } } 9、输出所有在正整数200和300之间能被6整除、但不能被4整除的数,并统计 这样的数有多少个。 #include for (i=200;i<=300;i++) {if (i%6==0&&i%4!=0) { j++; printf(\"%d\\n\ } } printf(\"%d\\n\} 10、求 S=1/1+1/2+1/3+……+1/100(精确到小数点后三位)。 #include int i; float sum=0; for(i=1;i<=100;i++) {sum=sum+1.0/i;} printf(\"1/1+1/2+...+1/100=%7.3f\\n\} 11. 编程计算1到20的平方和,并输出结果。(要求用for循环) #include { int i; long s=0; for(i=1;i<=20;i++) s=s+i*i; printf(\"%ld\} 12. 编写一个程序从键盘任意个整数,求均值及低于均值的个数, 输出到屏幕。 #include int a[1000],i,j=0; long s=0; float ave; printf(\"\\nEnter the nums:\"); scanf(\"%d\ printf(\"\\nEnter the xs:\"); for(i=0;i printf(\"The ave is %f. \ for(i=0;i 13. 编写一个程序从键盘输入10个学生的成绩到数组score中,将最高分、 最低分输出。 main(){ int score[10]; int i; int max, min; for(i=0;i<10;i++) scanf(\"%d\ max=min= score [0]; for(i=0;i<10;i++){ if(max < score [i]) max=score[i]; if(min > score [i]) min=score[i]; } printf(\"The max is %d.The min is %d.\} 14. 在main()函数中输入一个人的年龄和性别,女士55岁退休,男士60岁退休。编写一个函数根据年龄和性别判断一个人士工作还是退休,若工作,则输出“Working!”,退休则输出“Retired!” #include scanf(\"%d%d\if(s=0) if(a<=55) printf(\"she is work!\"); else printf(\"she has Retired!\"); else if(a>60) printf(\"he is work! \"); else printf(\"he has Retired !\"); } 12、编写一个函数求一个实数的绝对值。然后在main函数中用scanf输入 任意个实数,调用该函数求它的绝对值并输出。 #include if(x>0) return x; else return -x; } main() { float n; float s; printf(\"\\nEnter n:\"); scanf(\"%f\ s=fab(n); printf(\"The fab is %f\\}} 13、编写一个求1——n内的偶数和的函数,在main()函数中输入n,然后 调用该函数求1——n的偶数和并输出。 #include long sum=0; for(i=1;i<=n;i++){ if(i%2==0) sum=sum+i; } return sum; } main(){ int n; long s; printf(\"\\nEnter n:\"); scanf(\"%d\ s=sum(n); printf(\"The s is %ld\} 14、编写一个求1——n内的奇数和的函数,在main()函数中输入n,然后 调用该函数求1——n的奇数和并输出。 #include for(i=1;i<=n;i++){ if(i%2!=0) s=s+i; } return s; } main(){ int n; long s; printf(\"\\nEnter n:\"); scanf(\"%d\ s=sum(n); printf(\"The s is %ld\} 15、编写函数打印以下图形,将图形中的行数作为函数的形参。在main() 函数中输入行数n,调用该函数打印行数为n的图形。(如:输入5,则打 印出5行的三角形) ***** **** *** ** * #include for(i=0;i printf(\"*\"); printf(\"\\n\"); } } main(){ int n; printf(\"\\nEnter n:\"); scanf(\"%d\ print(n); } 16、编写一个函数,将摄氏温度转换成华氏温度,转换公式为:f=1.8*c+32.0。 在main函数中调用该函数,计算并在屏幕上显示从摄氏0度到100度,每隔10度 转换一次的华氏温度。 #include f=1.8*c+32.0; return f; } main(){ int i; float s; for(i=0;i<=100;i=i+10){ s=f(i); printf(\"%f\\n\ } } 15(1)编写一个函数,将三个数按由小到大的顺序排列并输出。在main函数中 输入三个数,调用该函数完成这三个数的排序。 #include void sort(int a,int b,int c){ int temp; if(a>b){ temp=a; a=b; b=temp; } if(a>c){ temp=a; a=c; c=temp; } if(b>c){ temp=b; b=c; c=temp; } printf(\"The sort is %d,%d,%d\} main(){ int x,y,z; printf(\"\\nEnter x,y,z:\"); scanf(\"%d%d%d\ sort(x,y,z); } 15(2)编写一个函数,将三个数按由大到小的顺序排列并输出。在main函数 中输入三个数,调用该函数完成这三个数的排序。 #include void sort(int a,int b,int c){ int temp; if(aif(a main(){ int x,y,z; printf(\"\\nEnter x,y,z:\"); scanf(\"%d%d%d\ sort(x,y,z); } 16、编写一个函数,该函数的功能是打印1——n中所有7的倍数,在 main()中输入n,调用该函数输出结果。 #include for(i=1;i<=n;i++) if(i%7==0) printf(\"%d\\} main(){ int n; printf(\"\\nEnter n:\"); scanf(\"%d\ print(n); } 17、写一个函数判断一个正整数是否为奇数,在主函数中用scanf输入 正整数m,调用函数后,根据函数返回值判断这个正整数是否为奇数, 若是则输出“yes”,否则输出“no” #include if(n%2!=0&&n>0) return 1; else return 0; } main(){ int m; int s; printf(\"\\nEnter m:\"); scanf(\"%d\ s=odd(m); if(s==0) printf(\"no\"); else printf(\"yes\"); } 18、写一个函数判断一个正整数是否为偶数,在主函数中用scanf输入 正整数m,调用函数后,根据函数返回值判断这个正整数是否为偶数, 若是则输出“yes”,否则输出“no” #include if(n>0&&n%2==0) return 1; else return 0; } main(){ int m; int s; scanf(\"%d\ s=even(m); if(s==1) printf(\"yes\"); else printf(\"no\"); } 写一个函数,判断某一个四位数是不是玫瑰花数(所谓玫瑰花数即 该四位数各位数字的四次方和恰好等于该数本身,如:1634=14+64+34+44)。 在主函数中调用该函数,输出所有玫瑰花数。 void rose(int n){ int a,b,c,d; a=n/1000; b=n/100%10; c=n/10%10; d=n%10; if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d==n) printf(\"%d\\} main(){ int i; for(i=1000;i<10000;i++) rose(i); } 19、写一个函数,判断某一个四位数是不是玫瑰花数(所谓玫瑰花数即 该四位数各位数字的四次方和恰好等于该数本身,如:1634=14+64+34+44) 。在主函数中从键盘任意输入一个四位数,调用该函数,判断该数是否 为玫瑰花数,若是则输出“yes”,否则输出“no”。 int rose(int n){ int a,b,c,d; a=n/1000; b=n/100%10; c=n/10%10; d=n%10; if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d==n) return 1; else return 0; } main(){ int m; int s; printf(\"\\nEnter m<4nums>:\"); scanf(\"%d\ s=rose(m); if(s==1) printf(\"yes\"); else printf(\"no\"); } 20、编写一个函数,判断某一个三位数是不是水仙花数(所谓水仙花数 即该三位数各位数字的立方和恰好等于该数本身,如:153=13+53+33) 。在主函数中调用该函数,输出所有水仙花数。 void daffodil(int n) { int a,b,c; a=n/100; b=n/10%10; c=n%10; if(a*a*a+b*b*b+c*c*c==n) printf(\"%d\\} main() { int i; for(i=100;i<1000;i++) daffodil(i); } 21、编写一个函数,函数的功能是求出所有在正整数M和N之间能被5整除 但不能被3整除的数并输出,其中M<N。在主函数中调用该函数求出100 至200之间,能被5整除、但不能被3整除的数。 main() {int n=200,m=100; void fn(int x,int y); fn(m,n);} void fn(int x,int y) {int j; for(j=x;j<=y;j++) if(j%5==0&&j%3!=0) printf(\"%5d\int dhj(int x,int y) {int n; for(n=x;n<=y;n++) if(n%5==0&&n%3!=0) printf(\"%d\\ 22、编写一个函数,其功能是;检验一个输入的四位数字是否是闰年, 如果是闰年则返回1,否则返回0。在主函数中从键盘输入一个四位数XXXX ,调用该函数进行判断,如果是则输出” yes”,否则输出”no”(提示 :如果该四位数能被4整除但不能被100整除,则是闰年;如果该四位数能 被400整除,则是闰年) int leap(int y) { int r=0; if(y%4==0&&y%100!=0||y%400==0) r=1; else r=0; return r;} main() {int y; printf(\"lnput year:\"); scanf(\"%d\ if(leap(y)==1) printf(\"yes\"); else printf(\"no\"); } 23、编写一个函数求两数中的较大数,在main()函数输入三个数,调用该 函数求这三个数的较大数并在屏幕上输出。 float max(float a,float b) {float t=a; if(b>t) t=b; return t;} main() {float a,b,c; printf(\"lnput a,b,c:\"); scanf(\"%f %f %f\ printf(\"%f\ 24写一函数min,返回三个数中最小数 。在主函数中用键盘输入三个数, 调用该函数求出其中最小数并输出。(要求:三个数为实数) float min(int a,int b,int c){ float temp; if(a>b) { temp=a; a=b; b=temp; } if(a>c){ temp=a; a=c; c=temp; } return a; } main(){ float x,y,z,s; scanf(\"%f%f%f\ s=min(x,y,z); printf(\"the smallest number is %f\} 25、编写一个函数计算n!。在主函数中调用该函数计算1!+2!+3!+…+10! 并输出结果。 long fac(int n){ long s=1; int i; for(i=1;i<=n;i++) s=s*i; return s; } main(){ int j; int sum=0; for(j=1;j<=10;j++) sum=sum+fac(j); printf(\"\\nThe sum is %ld\} 26、编写一个求直角三角形的面积的函数。在main函数中从键盘输入 直角三角形的两个直角边,然后调用该函数求该直角三角形的面积 (精确到小数点后2位)。 float s(int a,int b){ float s; s=a*b/2.0; return s; } main(){ int a,b; float area; float s(int a,int b); scanf(\"%d%d\ area=s(a,b ) ; printf(\"%.2f\} 27、编写一个求圆的面积的函数。在main函数中从键盘输入半径,然后 调用该函数求该圆的面积(精确到小数点后2位)。 #define PI 3.14 float area(int r){ float s; s=PI*r*r; return s; } main(){ int r; float s; printf(\"\\nEnter r:\"); scanf(\"%d\ s=area(r); printf(\"%.2f\} 28某商场根据客户购物的数量打折,根据商品的单价p,数量n,编写函数 fun计算应付款。在main()函数中输入单价和数量,调用函数后,输出应 付款(打折方法:购物数量10件及以上打9折,20件及以上打8折,10件以 下不打折,结果保留2位小数)。 float fun(float p,int n){ float s; if(n<10) s=p*n; else if(n>=10&&n<20) s=p*n*0.9; else if(n>=20) s=p*n*0.8; return s; } main(){ int n; float p; float sum; printf(\"\\nEnter p,n:\"); scanf(\"%f%d\ sum=fun(p,n); printf(\"%.2f\}