C考试题库答案_第1页
C考试题库答案_第2页
C考试题库答案_第3页
C考试题库答案_第4页
C考试题库答案_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、编写一计算阶乘的函数fac,在主函数中从键盘输入一个正整数,调用阶乘函数fac计算阶乘并输出计算结果。#includelong fac( int n)long f; 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,&n); y=fac(n); printf(%d!=%ld,n,y);2、编写一个求x的y次幂的函数pw,在main函数中从键盘输入a、b的值,然后调用pw函数求a的b次幂,并输出结果。#includelong pw(int x,int y) 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,&a,&b); sum=pw(a,b); printf(The sum is %ld,sum);3、写一函数max,计算三个数中最大数 。在主函数中输入三个数,调用该函数求出其中最大数并输出。(要求:三个数为实数)#includeint max(int a,int b,int c) int max; if(ab) max=a; else max=b; if(maxc) max=c; return max;main() int x,y,z; int m; printf(nEnter x,y,z:); scanf(%d%d%d,&x,&y,&z); m=max(x,y,z); printf(the max is %d.,m);_4、写一个函数计算两个正整数的最大公约数,在主函数中用scanf输入m,n两个正整数,调用函数后,打印函数返回值(即这两个正整数的最大公约数)。#includeint gcd(int m,int n) if(m%n=0) return n; else return gcd(n,m%n);main() int a,b,c,temp; scanf(%d%d,&a,&b); if(ab) temp=a; b=temp; a=b; c=gcd(a,b); printf(%d,c);5、编写一个函数,该函数的功能是判断一个整数是不是素数,在main函数中调用该函数,输出200以内所有的素数。(待定)#include void f(int n) (原题:输出1-1000以内所有的素数,并按每行5个输出 。) int i; for(i=2;in;i+) if(n%i=0) break; if(i=n) printf(%dt,n);main() int j; for(j=2;j200;j+) f(j);6.请编一个自定义函数,功能:将给定的字符串中的所有字母改为小写字母。字符串在主函数中从键盘任意输入(容许包含空格)7、编写一个函数,该函数的功能是判断一个整数是不是素数,在main函数中输入一个整数,调用该函数,判断该数是不是素数,若是则输出“yes”,否则输出“no” #includevoid f(int n) int i; for(i=2;in;i+) if(n%i=0) break; if(i=n) printf(yes); else printf(no); main() int m; printf(nEnter the m:); scanf(%d,&m); f(m);8、将1-1000中所有21的倍数存到一个一维数组中,再按每行5个数据输出到屏幕上。#include main()int i,j=0,a50; for (i=1;i=1000;i+) if (i%21=0) aj=i; printf(%5d,aj); if (j%5=4) printf(n); j+; 8、在屏幕上打印以下图案:(要求打印N行,N用符号常量定义为7) * * * * * * *#include#define N 7main() int i,j,m; 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 main()int i,j=0; for (i=200;i=300;i+) if (i%6=0&i%4!=0) j+; printf(%dn,i); printf(%dn,j);10、求 S=1/1+1/2+1/3+1/100(精确到小数点后三位)。#includemain()int i; float sum=0;for(i=1;i=100;i+)sum=sum+1.0/i; printf(1/1+1/2+.+1/100=%7.3fn,sum);11. 编程计算1到20的平方和,并输出结果。(要求用for循环)#includemain() int i; long s=0; for(i=1;i=20;i+) s=s+i*i; printf(%ld,s);12. 编写一个程序从键盘任意个整数,求均值及低于均值的个数,输出到屏幕。#includemain() int n; int a1000,i,j=0; long s=0; float ave; printf(nEnter the nums:); scanf(%d,&n); printf(nEnter the xs:); for(i=0;in;i+) scanf(%d,&ai); s=s+ai; ave=s*1.0/n; printf(The ave is %f. ,ave); for(i=0;in;i+) if(aiave) j+; printf( %d,j);13. 编写一个程序从键盘输入10个学生的成绩到数组score中,将最高分、最低分输出。main() int score10;int i;int max, min;for(i=0;i10;i+) scanf(%d,&scorei); max=min= score 0; for(i=0;i10;i+)if(max score i) min=scorei;printf(The max is %d.The min is %d.,max,min);14. 在main()函数中输入一个人的年龄和性别,女士55岁退休,男士60岁退休。编写一个函数根据年龄和性别判断一个人士工作还是退休,若工作,则输出“Working!”,退休则输出“Retired!” #includemain()int s,a;scanf(%d%d,&s,&a);if(s=0) if(a60) printf(he is work! ); else printf(he has Retired !); 12、编写一个函数求一个实数的绝对值。然后在main函数中用scanf输入任意个实数,调用该函数求它的绝对值并输出。#includefloat fab(float x) if(x0) return x; else return -x;main() float n; float s; printf(nEnter n:); scanf(%f,&n); s=fab(n); printf(The fab is %ft,s);13、编写一个求1n内的偶数和的函数,在main()函数中输入n,然后调用该函数求1n的偶数和并输出。#includelong sum(int n) int i; 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,&n); s=sum(n); printf(The s is %ld,s);14、编写一个求1n内的奇数和的函数,在main()函数中输入n,然后调用该函数求1n的奇数和并输出。#includelong sum(int n) long s=0; int i; 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,&n); s=sum(n); printf(The s is %ld,s);15、编写函数打印以下图形,将图形中的行数作为函数的形参。在main()函数中输入行数n,调用该函数打印行数为n的图形。(如:输入5,则打印出5行的三角形) * * * * *#includevoid print(int n) int i,j; for(i=0;i=1;j-) printf(*); printf(n); main() int n; printf(nEnter n:); scanf(%d,&n); print(n);16、编写一个函数,将摄氏温度转换成华氏温度,转换公式为:f=1.8*c+32.0。在main函数中调用该函数,计算并在屏幕上显示从摄氏0度到100度,每隔10度转换一次的华氏温度。#includefloat f(int c) float f; 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(%fn,s); 15(1)编写一个函数,将三个数按由小到大的顺序排列并输出。在main函数中输入三个数,调用该函数完成这三个数的排序。#includevoid sort(int a,int b,int c) int temp; 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(The sort is %d,%d,%d,a,b,c);main() int x,y,z; printf(nEnter x,y,z:); scanf(%d%d%d,&x,&y,&z); sort(x,y,z);15(2)编写一个函数,将三个数按由大到小的顺序排列并输出。在main函数中输入三个数,调用该函数完成这三个数的排序。#includevoid sort(int a,int b,int c) int temp; if(ab) temp=a; a=b; b=temp; if(ac) temp=a; a=c; c=temp; printf(The sort is %d,%d,%d,a,b,c);main() int x,y,z; printf(nEnter x,y,z:); scanf(%d%d%d,&x,&y,&z); sort(x,y,z);16、编写一个函数,该函数的功能是打印1n中所有7的倍数,在main()中输入n,调用该函数输出结果。#includevoid print(int n) int i; for(i=1;i=n;i+) if(i%7=0) printf(%dt,i);main() int n; printf(nEnter n:); scanf(%d,&n); print(n); 17、写一个函数判断一个正整数是否为奇数,在主函数中用scanf输入正整数m,调用函数后,根据函数返回值判断这个正整数是否为奇数,若是则输出“yes”,否则输出“no” #includeint odd(int n) if(n%2!=0&n0) return 1; else return 0;main() int m; int s; printf(nEnter m:); scanf(%d,&m); s=odd(m); if(s=0) printf(no); else printf(yes);18、写一个函数判断一个正整数是否为偶数,在主函数中用scanf输入正整数m,调用函数后,根据函数返回值判断这个正整数是否为偶数,若是则输出“yes”,否则输出“no” #includeint even(int n) if(n0&n%2=0) return 1; else return 0;main() int m; int s; scanf(%d,&m); 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(%dt,n);main() int i; for(i=1000;i10000;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:); scanf(%d,&m); 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(%dt,n);main() int i; for(i=100;i1000;i+) daffodil(i); 21、编写一个函数,函数的功能是求出所有在正整数M和N之间能被5整除但不能被3整除的数并输出,其中MN。在主函数中调用该函数求出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,j);int dhj(int x,int y)int n; for(n=x;nt) t=b; return t; main() float a,b,c; printf(lnput a,b,c:); scanf(%f %f %f,&a,&b,&c); printf(%f,max(max(a,b),c);24写一函数min,返回三个数中最小数 。在主函数中用键盘输入三个数,调用该函数求出其中最小数并输出。(要求:三个数为实数)float min(int a,int b,int c) float temp; if(ab) temp=a; a=b; b=temp; if(ac) temp=a; a=c; c=temp; return a;main() float x,y,z,s; scanf(%f%f%f,&x,&y,&z); s=min(x,y,z); printf(the smallest number is %f,s);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,sum);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,&a,&b); area=s(a,b ) ; printf(%.2f,area);27、编写一个求圆的面积的函数。在main函数中从键盘输入半径,然后调用该函数求该圆的面积(精确到小数点后2位)。#define PI 3.14float area(int r) float s; s=PI*r*r; return s;main() int r; float s; printf(nEnter r:); scanf(%d,&r); s=area(r); printf(%.2f,s);28某商场根据客户购物的数量打折,根据商品的单价p,数量n,编写函数fun计算应付款。在main()函数中输入单价和数量,调用函数后,输出应付款(打折方法:购物数量10件及以上打9折,20件及以上打8折,10件以下不打折,结果保留2位小数)。float fun(float p,int n) float s; if(n=10&n=20) s=p*n*0.8; return s;main() int n; float p; float sum; printf(nEnter p,n:); scanf(%f%d,&p,&n); sum=fun(p,n); printf(%.2f,sum);36、写一个函数,判断给定的三边长能否构成直角三角形,能构成直角三角形,则返回整数1,否则返回整数0。在main()函数中输入三边长,调用该函数,若是直角三角形,则输出“yes”, 否则,输出“no”。int right_triangle(int a,int b,int c) int temp; if(ca) temp=c; c=a; a=temp; if(cb) temp=c; c=b; b=temp; if(a*a+b*b=c*c) return 1; else return 0;main() int x,y,z; int s; printf(nEnter x,y,z:); scanf(%d%d%d,&x,&y,&z); s=right_triangle(x,y,z); if(s=1) printf(yes); else printf(no);30、写一个函数计算两个正整数的最小公倍数,在主函数中用scanf输入m,n两个正整数,调用函数后,打印这两个正整数的最小公倍数。int f(int a,int b) int i,temp; if(ab) temp=a; a=b; b=temp; for(i=a;i=a*b;i+) if(i%a=0&i%b=0) return i; break; main() int m,n,s; printf(nEnter m,n:); scanf(%d%d,&m,&n); s=f(m,n); printf(%d,s);31、编写一个函数,判断某一个三位数是不是水仙花数(所谓水仙花数即该三位数各位数字的立方和恰好等于该数本身,如:153=1*1*1+5*5*5+3*3*3)。在主函数中从键盘任意输入一个三位数调用该函数,判断该数是否为水仙花数,若是则输出yes,否则输出no。int fn(int n) int a,b,c,t=0; a=n%10; c=n/100; b=(n-c*100)/10; if(n=a*a*a+b*b*b+c*c*c) t=1; return t; #includemain() int i,leap; clrscr(); for(i=100;i1000;i+) leap=fn(i); if(leap=1) printf(yes); else printf(No); 32、编写一个程序从键盘输入三个整型数据,按从大到小的顺序输出。#includemain()int a,b,c;int t;clrscr();scanf(%d%d%d,&a,&b,&c);if(ab)t=b;b=a;a=t;if(ac)t=c;c=a;a=t;if(bc)t=c;c=b;b=t;printf(%4d%4d%4d,a,b,c);编写一个程序从键盘输入三个整型数据,求它们的和及平均值并在屏幕上显示(平均值精确到小数点后两位)。main()int a,b,c;flaot ave,sum=0;scanf(%d%d%d,&a,&b,&c);sum=a+b+c;ave=sum/3;printf(%f%f,ave,sum);33、设a,b是这个直角三角形的两个直角边,用scanf输入a,b的值,计算并输出直角三角形的周长。(结果保留2位小数)。#include #include float perimeter(int m,int n) double x,y,z; x=m*m+n*n; y=sqrt(double)x); z=m+n+y; return z; main() int a,b; float l; float perimeter(int a,int b); scanf(%d%d,&a,&b); l=perimeter(a,b ) ;printf(%.2f,l);34、用scanf输入半径r的值,求以此为半径的园的面积。将结果输出到屏幕上(要求将=3.14159定义为符号常量,结果保留2位小数)。#include #define PI 3.14159main ()float r,s; scanf(%f,&r); s=PI*r*r; printf(n%8.2f,s);35、编写程序,从键盘输入圆柱体的底面半径r和高h,求圆柱体的体积并输出(=3.14159,结果保留2位小数)。#include #define PI 3.14159main ()float r,h,v; scanf(%f%f,&r,&h); v=PI*r*r*h; printf(n%8.2f,v);36用scanf输入一个梯形的上底(a)下底(b)和高(h),求这个梯形的面积(s)。(结果保留2位小数)。#include main ()float a,b,h,s; scanf(%f,%f,%f,&a,&b,&h); s=(a+b)*h/2.0; printf(n%8.2f,s); 编程计算1到20的平方和,并输出结果。(要求用for循环)main()float s;int i;for(i=1;i=20;i+) s+=i*i; printf(s=%f,s);求 S=1/1+1/2+1/3+1/100(精确到小数点后三位)。 main()int i;float sum=0;for(i=1;i=100;i+)sum=sum+1.0/i; printf(n1/1+1/2+.+1/100=%7.3fn,sum);38同11题39、编写一个程序从键盘输入10个整数,求均值及低于均值的个数,并结果用空格隔开输出到屏幕。(采用预定义N为10)。#include #define N 10main() in

温馨提示

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

评论

0/150

提交评论