C语言程序设计的试题及答案(4)

试题 时间:2017-06-26 编辑:淼荣 手机版
【www.ruiwen.com - 试题】

  c=swap(a,b); printf("%d%d\n", a,c); }

  40. #include void fun(int n) { if(n==1) printf("*\n"); else { printf("-"); fun(n-1); } } void main() { int i,j=0; for(i=1;i<4;i++) fun(i); printf("XiaoXin!"); } 解答: 1. p=27 2. 运行结果:12345 3. 3 4. 5 3 32 5. 2 6. 11 21 31 7. 3 7 5

  8. 6

  7

  8

  5

  5

  9. 012345 10. a1=1 a2=3 a3=2 11. 10,20,30 12. a=2,b=3 a=2,b=3 13. 10,20,30 14. a=1.0000 15. 567 16. 4 17. 3.000000 18. 80,-20 19. -1 20. j=12 21. 4,3,5 22. 18 23. Hello, world! Hello, world! Hello, world! 24. x=3; 25. x=22 26. i = 7; j = 6; x = 7 i = 2; j = 7; x = 5

  27. 7 28. (1) x = 2 y = 3 z = 0 (2) x = 4 y = 9 z = 5 (3) x = 2 y = 3 z = 0 29. 10, 20, 40, 40 30. 125 31. 3,0,-90,23,6,10 32. sum=6 33. i=20 i=40 34. j=9 35. c=1 36. +4++2+ 37. 8 38. c=33 39. 389 40. * -* --* XiaoXin!

  三.补充程序 1. 定义了一个 max 函数,找两个整数的最大值,其位置在 main 之后. #include "stdio.h" ________________________ int main() {

  int x,y,z; printf("input two numbers:\n"); scanf("%d%d",&x,&y); ________________________; printf("maxmum=%d",z); return 0; } int max(int a,int b) { ________________________; if(a>b)w=a; else w= b; ________________________; } 2. 用函数 nzp 判别一个整数 a 的值,若大于 0 则输出该值,若小于等于 0 则输出 0 值。 #include "stdio.h" ________________________nzp(________________________) { if(v>0) ________________________ else printf("%d ",0); } int main() { int a; printf("input number a:\n"); scanf("%d",&a); ________________________ return 0; } 3. 主函数调 f1 计算 n 阶乘. #include "stdio.h" ________________________ int main() { int n; long s; scanf(“%d”,&n); ________________________ printf("\ns=%ld\n",s); return 0; } long f2(int n) { ________________________

  int i; for(i=1;i<=n;i++) c=c*i; ________________________ } 4. 主函数调 fun 计算 1+1/2!+1/3!+...+1/30!的和. #include "stdio.h" ________________________ int main() { int n; float s; ________________________ printf("1+1/2!+1/3!...+1/30!=%f\n",s); return 0; } float fun() { int n; float t=1; ________________________ for(n=1;n<=30;n++) { t*=1/n; s+=t; } ________________________ } 5. 数组 a 中存放了一个学生 5 门课程的成绩,求平均成绩。 #include "stdio.h" ________________________ int main() { float sco[5],av; int i; printf("\ninput 5 scores:\n"); for(i=0;i<5;i++) scanf("%f",&sco[i]); ________________________ printf("average score is %5.2f",av);

  return 0; } float aver(float a[]) { int i; float s=a[0]; ________________________ for(i=1;i<5;i++) s=s+a[i]; av=s/5; ________________________ } 6. 用递归法计算 n! #include "stdio.h" ________________________ int main() { int n; long y; printf("\ninput a inteager number:\n"); scanf("%d",&n); ________________________ printf("%d!=%ld",n,y); return 0; } ________________________ff( int n) { long f; if(n<0) printf("n<0,input error"); else if(n==0||n==1) f=1; else f=ff(n-1)*n; ________________________ }

  7. 输入正方体的长宽高 l,w,h。求体积及三个面 x*y,x*z,y*z 的面积。 #include "stdio.h" int s1; ________________________ int vs( int a,int b,int c) { ________________________ v=a*b*c; s1=a*b; s2=b*c;

  s3=a*c; ________________________ } int main() { int v,l,w,h; printf("\ninput length,width and height\n"); scanf("%d%d%d",&l,&w,&h); ________________________ printf("v=%d s1=%d s2=%d s3=%d\n",v,s1,s2,s3); return 0; } 8. 输入两个正整数 num1,num2,求其最大公约数. #include "stdio.h" ________________________ int main() { int d; int num1,num2; printf("please input two numbers:\n"); scanf("%d,%d",&num1,&num2); ________________________ printf("gongyueshu:%d\n",d); return 0; } int gongyue(int a,int b) { ________________________ while(b) { temp=a%b; a=b; b=temp; } ________________________ } 9. 利用递归函数调用方式,输出 6 个数字。 #include "stdio.h" ________________________ int main() { int w=5; fun(w); printf("\n"); return 0; } ________________________fun(________________________)

  { if(k>0) ________________________; printf(“%d”,k); } 10. 主函数调 printstar 打印一串星形图案. #include "stdio.h" ________________________ int main() { ________________________ ; return 0; } ________________________printstar(________________________) { printf(“*************\n”); }

  解答: 1. int max(int a,int b); z=max(x,y); int w; return w; 2. void int v printf("%d",v); nzp(a); 3. long f2(int n); s=f2(n);

  long c=1; return c; 4. float fun(void); s=fun(); float s=0; return s;

  5. float aver(float a[]); av=aver(sco); float av; return av;

  6. long ff(int n); y=ff(n); long return f; 7. int s2,s3; int v; return v; v=vs(l.w,h); 8. int gongyue(int a,int b); d=gongyue(num1,num2);

  int temp; return a; 9. void fun(int k); void int k; fun(k-1); 10. void printstar(void); printstar(); void void 四.改错题 解答: 五.编程一 解答: 六.编程二 1. 编程实现:任意输入两个正整数,求它们的最大公约数和最小公倍数。要求最大公约数 通过自定义函数来输出。 2. 编程实现:求出 10~10000 之内的所有素数。要求素数判断通过自定义函数来实现。 3. 编程实现:输出所有的“水仙花数” 。所谓“水仙花数”是指一个 3 位数,其各位数字立 方和等于该数本身。例如:153 是一个“水仙花数” ,因为 。要求水仙花数的判断通过自定 义函数来实现。 4. 编程实现:打印出 2~1000 之间的所有完数。所谓完数,是指这样的数,该数的各因子之 和正好等于该数本身,例如:6=1+2+3;28=1+2+4+7+14;因此,6、28 都是完数。要求完数 的 判断通过自定义函数来实现。 5. 编程实现:打印出 10~9999 之间的所有回文数,要求每 10 个数一行输出。要求回文数的 判 断通过自定义函数来实现。 6. 编程实现:打印出 1~9999 之间的所有同构数,所谓同构数是指一个数如果出现在该数平

  方的右端,该数就是同构数。如 5,25 都是同构数。要求同构数的判断通过自定义函数来实 现 。 7. 给定一 5*5 的整型矩阵,求所有正对角线元素之和,并以矩阵的形式输出矩阵的值。要 求 :对角线元素之和及矩阵输出分别通过两个自定义函数来实现。 8. 编程实现:输入一 4*4 的矩阵的值,求出每行的最大值并输出其所在列号。要求:通过 通 过自定义函数实现矩阵的输入输出。 9. 编程实现:任意给定一个十进制的整数,将其转换成二进制,按位将其存放到数组中, 然后输出,要求数制转换通过自定义函数来实现。

  10. 编程实现:任意输入一个正整数,编程求出它是几位数并将其逆序输出。要求通过自定 义函数实现求是几位数,该函数原形为:int ni(int x,int a[]);函数返回值是该数是几位 数,x 为给定的数,a 中存放该数的各个位。 11. 编写程序从键盘输入 x 和 n 的值,求 xn (n 为大于等于零的整数) ,要求用 n 递归函数求 x 。

  12. 编写实现:输入两个正整数 m,n(m>n) ,计算从 m 个元素中任意取 n 个元素的组合,计 算机

  公式为: 要求通过递归函数求阶乘。

  13. 编程实现:从键盘任意输入 10 个不相同的整数,然后,输入要查找的数 x,如果在这 10 个 数中找到 x,则打印“Found!” ;如果找不到,则打印“Not found!” 。要求通过自定义函数

  实现查找功能。 14. 从键盘输入某班 20 个学生的成绩和学号,然后从键盘任意输入一个学生的学号,查找 出 他的成绩并输出,若未找到,给出相应提示。要求通过自定义函数实现查找功能。 15. 编程实现:从键盘任意输入某班 20 个学生的姓名和成绩,输出最高分及不及格学生的 人 数。要求分别用两个自定义函数求最高分和不及格人数。 16. 编程实现:输入 2 个降序排列的整数数列,将这两个数列合并存放到另一个数组中,要 求 每个数都一次到位,不得在新数组中重新排序。要求数列合并通过自定义函数来实现。 17. 编程实现:输入 N 名职工的姓名及计算机水平考试的成绩,输出及格人数和及格的职工 信 息。要求:职工信息的输入和输出分别通过自定义函数来实现。

  18. 编程实现:从键盘输入 10 名学生的信息,包括学号、姓名、成绩,用一个排序函数 sort 完成学生成绩降序排列,并输出学生排序后的结果。 19. 编程实现:任意输入一组不多于 20 个的升序排列的若干个整数,任意输入不多于 10 个 的 整数(-1 作为输入结束标志) ,将其插入到该序列中,使其依然有序。要求:通过自定义函 数实现将一个整数插入到一个有序序列中,使其依然有序。 20. 一个班级有 30 个学生,每个学生有学号、姓名及数学、语文、计算机成绩、平均成绩。 要求编程实现以下功能: 1) 从键盘上输入 30 个学生的信息,平均成绩通过公式:平均成绩=(数学+语文+计算 机 )/3 计算得出。 2) 输出所有平均成绩大于等于 85 的学生姓名(要求用自定义函数实现该功能)。 解答: 1. #include "stdio.h" int GreatComDiv(int m,int n); int LeaseComMul(int m,int n); void main() { int m,n,t; printf("请输入 m 和 n 的值:"); scanf("%d%d",&m,&n); if((m<=0)||(n<=0))

  { printf("输入错误!请重新输入!\n"); scanf("%d%d",&m,&n); } if(m

  int LeaseComMul(int m,int n) {int greatcomdiv; greatcomdiv=GreatComDiv( m, n); return m*n/greatcomdiv; }

  2. #include "stdio.h" int sushu(int n); void main() { int n; printf("input n:\n"); scanf("%d",&n); if (sushu(n)) printf("%d 是素数\n",n); else printf("%d 不是素数\n",n); } int sushu(int n) { int i; for(i=2;i

  return 1; }

  3. 编程实现:输出所有的“水仙花数” 。所谓“水仙花数”是指一个 3 位数,其各位数字立 方和等于该数本身。例如:153 是一个“水仙花数” ,因为 。要求水仙花数的判断通过自定 义函数来实现。 #include "stdio.h" int fun(int n); void main() {int i; for(i=100;i<=999;i++) if (fun(i))printf("%d\n",i); } int fun(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)return 1;

  return

  0;

  4. #include "stdio.h" int wanshu(int n); void main() { int n; printf("input n:\n"); scanf("%d",&n); if (wanshu(n)) printf("%d 是完数\n",n); else printf("%d 不是完数\n",n); } int wanshu(int n) { int i,s=0; for(i=1;i<=n/2;i++) if(n%i==0) s+=i; if(s==n) return 1; else return 0;

  }

  5. 方法一: #include "stdio.h" int huiwen(int n); void main()

  { int n; printf("input n:\n"); scanf("%d",&n); if (huiwen(n)) printf("%d 是回文数\n",n); else printf("%d 不是回文数\n",n);

本文已影响
热门文章