C语言题库答案(有待修改)_第1页
C语言题库答案(有待修改)_第2页
C语言题库答案(有待修改)_第3页
C语言题库答案(有待修改)_第4页
C语言题库答案(有待修改)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、1某铁铜厂应客户要求做一批铁桶,客户给出了铁桶的规格,高30CM,半径10CM,共订做1500个铁桶。计算出所需的材料。#include <stdio.h>void main()float s,r,h;int n;printf("Please Input r,h,n:");scanf("%f%f%d",&r,&h,&n);s=2*3.14*r*h+3.14*r*r; s=s*n;printf("Total area is %.2fn",s);2.利用系统库函数实现数学运算,求XY(1)#includ

2、e <stdio.h>void main() int x,y,a; int b=1; scanf("%d%d",&x,&y); for(a=1;a<=y;a+) b=b*x; printf("%dn",b);(2)#include <stdio.h>#include<math.h> main()double x,y,z;printf("Input x,y:n");scanf("%lf %lf",&x,&y);z=pow(x,y);printf

3、("%lf",z);3. 从键盘上输入一个小写字母,把它转变成大写字母再输出。#include <stdio.h>void main()char c,z;printf("请输入一个小写字母");scanf("%c",&c);c=c-32;printf("%cn",c);4. 设圆半径r=1.5,圆柱高h=3,求圆柱体积,圆柱底面积,圆柱表面积。用scanf()输入数据,输出计算结果。输出时要有说明,结果取小数点后两位数字。#include <stdio.h>#define PI 3.

4、14159void main() int i; float r; float s; float h; float v; float d; printf("请输入半径:n"); scanf("%f",&r); printf("请输入圆柱的高n"); scanf("%f",&h); d=PI*r*r; v=d*h; s=2*d+2*PI*r*h;printf("体积:%.2fn底面积:%.2fn表面积:%.2fn",v,d,s); 5由键盘输入n的值,编程计算并输出n!的值。#inc

5、lude <stdio.h>void main()int a,i,sum=1;scanf("%d",&a);i=a;dosum*=i;i-;while(i>1);printf("n=%d,n!=%dn",a,sum);6让用户输入一个年份,判断改年份是否是闰年被4整除不能被100整除,或者被400整除#include <stdio.h>void main ()int y;scanf("%d",&y);(y%400=0 | (y%4=0 && y%100 !=0) ?prin

6、tf("Yesn") : printf("Non");7有一个函数写程序,输入x的值,输出y相应的值。#include<stdio.h>void main()int x,y;printf("input x:");scanf("%d",&x);if(x<1)y=x;if(x>=1&&x<10)y=2*x-1; if(x>=10)y=3*x-11;printf("x=%d,y=%dn",x,y);8在学生成绩管理中,经常要将成绩的百分制转换

7、成对应的等级制。90分以上为A等,80-89为B等,70-79为C等,60-69分为D等,其余为E等。编写程序,根据输入的百分制成绩,输出对应的等级。#include<stdio.h>void main()int score,i;printf("学生成绩:n");    scanf("%d",&score);i= score/10;           &#

8、160;switch( i )  case  10:                       case 9: printf("An"); break;       case 8

9、: printf("Bn"); break;       case 7: printf("Cn"); break;      case 6: printf("Dn"); break;      default: printf("En");&

10、#160;      9. 计算从出生年份(例如1996)到当前年份(例如2014)共经过了多少闰年,输出所有的闰年年份。#include<stdio.h>void main() int i,j,cnt=0;printf("出生年份i,现在年份j:");scanf("%d%d",&i,&j);for(i;i<=j;i+)if(i%4=0)&&(i%100!=0)|(i%400=0)printf("%dnn",i);cnt+;p

11、rintf("一共经历了%d个闰年",cnt);10.从1开始做自然数的累加,当其累加和超过1000的时候,共计累加了多少数?当时的累加和是多少?11.百钱买百鸡问题#include<stdio.h>void main()int i,j,k,add=0;for(i=0;i<=20;i+) for(j=0;j<=33;j+) for(k=0;k<=100;k=k+3)if(i*5+j*3+k/3=100)&&(i+j+k=100)printf("%d%d%dn",i,j,k);add+;printf("

12、;add=%dn",add);12.计算出自然数SIX和NINE满足条件SIX+SIX+SIX=NINE+NINE的个数CNT,以及所有满足此条件的SIX与NINE。#include<stdio.h>void main()int s,i,x,n,e,six,nine; for(s=1;s<10;s+) for(i=1;i<10;i+) for(x=1;x<10;x+) for(n=1;n<10;n+) for(e=1;e<10;e+) six=s*100+i*10+x; nine=n*1000+i*100+n*10+e; if(six+six

13、+six=nine+nine)printf("six+six+six=nine+ninen%d+%d+%d=%d+%dn",six,six,six,nine,nine); 13. 求 3100之间的全部素数#include <stdio.h>int main(void)int i, a, count = 0;for (a=2; a<=100; a+)for(i=2; i<a; i+)if(a % i =

14、 0)break;if (a = i)printf("%d  ",a);count+;printf("n", count);               return 0;14.图形编程图形编程 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

15、 * *#include <stdio.h>void main ()int i,j;for (i=0;i<6;i+)for (j=0;j<5-i;j+)printf(" ");for (j=0;j<2*i+1;j+)printf ("*");printf ("n");15. 某歌手大赛,共有10个评委打分,分数采用百分制,去掉一个最高分,去掉一个最低分,然后取平均分,得到歌手的成绩,编程实现。#include<stdio.h>int main() int a10; int i; int max

16、 = 0; int min = 100; int maxi=0; int mini =0; for(i=0;i<10;i+) scanf("%d",&ai); if(ai<min) min = ai; mini = i; if(ai>max) max = ai; maxi = i; int sum =0; for(i=0;i<10;i+) if(i != mini && i != maxi) sum +=ai; float ave = sum*1.0/8; printf("%f",ave); return

17、0;16. 让用户输入10个整数,对10个整数进行降序排列#include <stdio.h> void main() int a10; int i,j,z=0; for(i=0;i<10;i+) scanf("%d",&ai); for(i=0;i<9;i+) for(j=0;j<9-i;j+) if(aj<aj+1) z=aj; aj=aj+1; aj+1=z; for(i=0;i<10;i+) printf("%d ",ai); 17. 对用户输入的10个整数逆序排列并输出#include <

18、stdio.h>void main()int a10,i;for(i=0;i<10;i+)scanf("%d",&ai);for(i=0;i<10;i+)printf("%d ",a9-i);18. 输出Fibonacci序列前20项#include <stdio.h>void main ()int f1=1,f2=1,i;printf("%12d%12d",f1,f2);for (i=0;i<=20;i+)printf("%12d%12d",f1,f2);if(i%2=

19、0)printf("n");f1=f1+f2;f2=f2+f1;printf("n");19.在一个字符数组中查找一个指定的字符,若数组中含有该字符,则输出该字符在数组中第一次出现的位置,否则输出-1.#include<stdio.h>#include <string.h> void main() char c='a',t50; int n,k,j;printf("Input a string:");gets(t); n=strlen(t); for(k=0;k<n;k+) if (tk=

20、c)j=k; break; else j=-1; printf("n Position is:%d",j);20.写一个函数,求sn=a+aa+aaa+aaaa+aaaaa.的值,a的值n的值均由用户指定。例如:a=2,n=4, s=2+22+222+2222.(1)#include <stdio.h>void main ()int n,count=1;long a,sn=0,tn=0;scanf("%ld%d",&a,&n);while(count<=n)tn=tn+a;sn=sn+tn;a=a*10;+count;p

21、rintf ("%ld",sn);(2)#include<stdio.h>#include<math.h>void main(int argc,char *argv)int sum=0,i=1,a,b,c=0,n;printf("Please input a:");scanf("%d",&a);printf("Please input n:");scanf("%d",&n);while (i<=n)b=pow(10,i-1);c=c+a*b;sum+

22、=c;i+;printf("The sum is :%dn",sum);(3)#include<stdio.h>#include<math.h>void main()int sum=0,i=1,a,b,c=0,n;printf("Please input a:");scanf("%d",&a);printf("Please input n:");scanf("%d",&n);while (i<=n)b=pow(10,i-1);c+=a*b;sum+=

23、c;i+;printf("The sum is :%dn",sum);21. 写一个函数,判断一个数是否素数#include <stdio.H>#include <math.h>int prime(int m)int i,n;if(m=1)return 0;n=(int)sqrt(double)m);for(i=2;i<=n;i+)if(m%i=0)return 0; return 1; void main() int n; scanf("%d",&n); if(prime(n) printf("%d is

24、 a prime.n",n); else printf("%d is not a prime.n",n);22.写一个函数,判断给定的数是否水仙花数#include "stdio.h" int isshui(int n) int g,s,b; g=n%10; b=n/100; s=(n/10)%10; if(n=g*g*g+s*s*s+b*b*b) return 1; else return 0; int main(int argc, char* argv) int n; scanf("%d",&n); if(iss

25、hui(n) printf("%d is shuixianhuashu.n",n); else printf("%d is not shuixianhuashu.n",n); return 0; 23. 把自然数1到100中的所有偶数求和,要求:自定义数组存放100个数字,程序中必须出现break, continue语句。#include <stdio.h>void main ()int a100,i,s=0;for(i=0;i<100;i+)ai=i+1;for(i=0; ;i+)if(ai%2!=0)continue;s+=ai;i

26、f(i=99)break;printf("%dn",s);24. 自定义一个数组,用冒泡排序将此数组从大到小的排序。#include <stdio.h>void main ()int a10=1,3,5,7,9,2,4,6,8,0,i,j,t;for(j=0;j<9;j+)for(i=0;i<8-j;i+)if(ai<ai+1)t=ai;ai=ai+1;ai+1=t;for(i=0;i<10;i+)printf("%d ",ai);putchar('n');25.输入5个数,求和并输出。要求编写求和的函

27、数。法一:#include <stdio.h>void main()int b(int x,int n);int sum=0;int a5;int i;printf("请输入5个数:"); for(i=0;i<5;i+)scanf("%d",&ai);sum=b(a,5);printf("sum=%dn",sum);int b(int x,int n)int i,sum=0;for(i=0;i<5;i+)sum=sum+xi;return sum;法二:#include <stdio.h>v

28、oid main()float a6;int i;for(i=0;i<5;i+)printf("please input the %d a:",i+1);scanf("%f",&ai);a5=0;for(i=0;i<5;i+)a5+=ai;printf("The he is:%5.0f",a5);26. 韩信点兵。韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士

29、兵报的数为10。你知道韩信至少有多少兵吗?#include <stdio.h>int main(void)int sum = 0;while (1 != sum % 5 | 5 != sum % 6 | 4 != sum % 7 | 10 != sum % 11)sum+;printf("%dn", sum);return 0;27. 输入两个数,交换它们的值并输出,要求:以函数的形式写#include <stdio.h> #define SWAP(a,b) a=a+b;b=a-b;a=a-b; void main() int x,y; scanf(

30、"%d%d",&x,&y); SWAP(x,y); printf("%d %dn",x,y); 28. 用辗转相除法求解两个整数的最大公约数。zdgys (int x,int y)int z;z=x%y;return z=z=0?y:(x=y,y=z,zdgys(x,y);#include <stdio.h>void main()int x,y,z,t;printf("请输入两个整数:");scanf("%d%d",&x,&y);if(x<y)t=x;x=y;y=t

31、;z=zdgys(x,y);printf("则最大公约数是%dn",z);29. 将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序拆分并输出。#include<stdio.h>int main()int a,i,t;printf("请输入一个三位整数:n");scanf("%d",&a);for(i=1;i<=3;i+)t=a%10; a=a/10; printf("%dn",t);return 0;30. 将一个二维数组行和列的元素互换,存到另外一个二维数组中。#include

32、<stdio.h>void main()int a34=10,11,12,13,14,15,16,17,18,19,20,21,b43,i,j;for(i=0;i<3;i+)for(j=0;j<4;j+)bji=aij;for(i=0;i<3;i+)for(j=0;j<4;j+)printf("%d ",aij);putchar('n');printf("n交换后:n");for(i=0;i<4;i+)for(j=0;j<3;j+)printf("%d ",bij);pu

33、tchar('n');31. 程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中的第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为1。#include <stdio.h>void main ()char str1100,str2200;int i,s;printf("Please input string 1:n");gets(str1);printf("Please input string 2:n");gets(str2);for (i=0;i+;)if(

34、str1i=str2i)continue;elsebreak;s=str1i-str2i;printf("%dn",s);32. 写程序实现将数组中第一数与倒数第一个数调换,第二个数与倒数第二个数调换,其他依次类推(要求不能使用新的数组)。#include<stdio.h> void main() int i,t,a10=0,1,2,3,4,5,6,7,8,9,n=10; for(i=0;i<n/2;i+) t=ai,ai=an-i,an-i=t; for(i=0;i<n;i+) printf("%d",ai); printf(&

35、quot;n");33. 请写出求1到5乘积的递归程序。#include <stdio.h>long fun(int a)if (a=1)return 1;long temp=a*fun(a-1);return temp;int main()printf("%dn",fun(5);return 0;34. 求一维数组a中所有元素的平均值。例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9程序的输出应为:The averge is:9.10.#include <conio.h>#include <stdio.h&

36、gt;void main() int a10=10,4,2,7,3,12,5,34,5,9,i; float aver,s; s=0; for (i=0; i<10; i+) s+=ai; aver=s/i; printf("The aver is: %.2fn", aver);35.求一维数组a中的最小元素及其下标。例如,当一维数组a中的元素为:1,4,2,7,3,12,5,34,5,9,?程序的输出应为:The min is:1,pos is:0#include <stdio.h>void main ()int 

37、a10=1,2,3,4,5,6,7,8,9,0,i,k;k=0;for(i=1;i<10;i+)if(ak>ai)k=i;printf("The min is:%d,pos is:%dn",ak,k);36. 实现程序的功能是统计一个字符串中的字母、数字、空格(ASCII 32)、和其它字符的个数。#include<stdio.h>#include <string.h>void main()char a80;int i,zm=0,sz=0,kg=0,qt=0,n;get

38、s(a);n=strlen(a);for(i=0;i<n;i+)if(ai>='0' && ai<='9')sz+;else if (ai>='A' && ai<='Z') |(ai>='a' && ai<='z')zm+;else if(ai=' ')kg+;elseqt+;print

39、f("数字:%d个n字母:%d个n空格:%d个n其他字符:%d个n",sz,zm,kg,qt);37.计算1至10之间的偶数之和及奇数之和.#include <stdio.h>void main()   int a=0,b=0,i;   for (i=1;i<=10;i+)        if (i%2=0) a=a+i; else b=b

40、+i;   printf("1到10间的偶数之和=%dn",a);   printf("1到10间的奇数之和=%dn",b);  38. 利用选择排序算法对一个有10个整数的数组排序#include<stdio.h>void main()int i,j,k,t,a10=1,3,5,7,9,2,4,6,8,10;for (i=0;i<9;i+)k=i;for(j=i+1;j<10;j+)if(ak>aj)k=j;t=ai;ai=ak;ak=t;pr

41、intf("xinshunxu:n");for(i=0;i<10;i+)printf("%4d",ai);printf("n");用户输入一个数组:#include<stdio.h>void main()int i,j,k,t,a10;printf("输入十个数据:");for(i=0;i<10;i+)scanf("%d",&ai); for (i=0;i<9;i+)k=i;for(j=i+1;j<10;j+)if(ak>aj)k=j;t=ai;

42、ai=ak;ak=t;printf("新顺序:n");for(i=0;i<10;i+)printf("%4d",ai);printf("n");39. 输入一个不多于5位正整数要求:求出它是几位数;分别打印出每一位数字;按逆序输出各位数字。(1)#include <stdio.h>int main(void)long int x;int y,i=1;printf("请输入一个不超过100000的整数:"); scanf("%ld

43、",&x);if (x>99999|x<1) printf("你所输入的数据超出计算范围n");elsewhile (x!=0) y=x%10;printf("%dt",y);x=x/10;i=i+1;printf("n这个数共有%d位n",i);return 0; (2)#include <stdio.h> int main() int n,num=0,x; printf("输入一个不大于五位数的正整数:");

44、scanf("%d",&n); while(n>0&&n<10000) x=n%10; n=n/10; printf("%d",x); num+; printf("n这个数是%d位数n",num); return 0; 40打印出所有的“水仙花数”所谓水仙花数是指一个三位数、其各位数字立方和等于该数本身#include<stdio.h>int main()int n,i=0,j=0,k=0;/n表示这个三位数,i,j,k分别代表百位,十位,个位.for(n=100;n<999;n+

45、)i=n/100;/i表示百位数j=(n/10)%10;/j表示十位数k=n%10;/k表示个位数if(n=(i*i*i+j*j*j+k*k*k)printf("%dnn",n);错:#include <stdio.h>int main()int n=0,i=0,j=0,k=0;/n表示这个三位数,i,j,k分别代表百位,十位,个位.for(n=100; n=999; n+)i = n / 100;/i表示百位数j = (n / 10

46、) % 10;/j表示十位数k = n % 10;/k表示个位数if(n = (i*i*i + j*j*j + k*k*k)printf(%d ,n);41. 通过键盘输入一个整数,并找出此整数的所有因子。#include <stdio.h>void main() int num;printf("Enter a positive integer:");scanf("%d", &num);printf(&qu

47、ot;Number %d Factors:", num);for(int i= 1; i <= num ; i+)if(num%i=0)printf("%d ", i);printf("n");42.输出10行的杨辉三角形。11 11 2 11 3 3 1#include<stdio.h>int main()int a,y100100,i;for(i=0;i<10;i+)for(a=0;a<=i;a+)if(a=0|a=i)yia=1;printf("%7d",yia);if(a=i)print

48、f("n");elseyia=yi-1a-1+yi-1a;printf("%7d",yia);return 0;43.写程序实现功能:将字符串s中所有的字符c删除。(字符串可以预先定义好)#include<stdio.h>#include<string.h>int main()char s1000;char c;int i,j,k,l;gets(s);scanf("%c",&c);k=strlen(s);k=k+1;for(i=0;i<k;i+)if(si=c)for(j=i;j<k;j+)

49、sj=sj+1;sk-1=0;i-;puts(s);return 0;44.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?#include<stdio.h>void main()int n,i;float h=100.0,sum=150;printf("Input n:");scanf("%d",&n);for(i=1;i<=n;i+)h*=0.5;sum+=h;printf("sum=%fnh=%fn&q

50、uot;,sum,h); 45.请编写程序,求圆锥的体积。已知圆锥的底面直径和高均为10。#include <stdio.h>#define M  3.14void main()double d,h,v=1.0;printf("Input d h:");scanf("%lf%lf",&d,&h);v=1.0*1/3*M*d*d/4*h;printf("v=%lf",v); 46.请编写程序,输入两个运算数和一个运算符,完成加、减

51、、乘、除运算,输出运算结果。#include <stdio.h>void main()int a,b,d;char c;printf("Input two datas and a yunsuanfu");scanf("%d%d%c",&a,&b,&d,&c);if(c=43)d=a+b;if(c=45)d=a-b;if(c=42)d=a*b;if(c=47)d=a/b;printf("d=%dn,d);47.请编写程序,对输入的年、月、日,判断这一天是这一年的第几天。#include std

52、io.hmain()  int n,year,month,day,month_day_sum=0,sum=0, month_day13=0,31,28,31,30,31,30,31,31,30,31,30,31; printf(please input the year month dayn); scanf(%d%d%d,year,month,day); if(year%100!=0year%4=0|year%400) month_day2=29; if(

53、daymonth_daymonth|day1|month12|month1) printf(error); else  for(n=1;nmonth;n+) month_day_sum+=month_dayn; sum=month_day_sum+day; printf(%d,sum);  getch(); 48.根据用户从键盘输入的三角形三边长度,计算该三角形的面积。若用户输入的三条边不能构成三角形,则直接输出信息:“不能构成三角形!”。提示:1.构成三角形的三条边应满足条件:任意两条边的和均

54、大于第三边; 2.已知三角形的三条边长,计算三角形面积的公式为s=,其中p=(a+b+c)/249.请编写程序,打印如下图案。* * * * #include<stdio.h>void main()int i,j;for(i=0;i<5;i+)for(j=0;j<i+1;j+)printf(" ");for(j=0;j<5;j+)printf("*");putchar('n');50. 请编写程序,输出50100之间能被7或11整除,但不能同时被7和11整除的所有整数。#include <stdio.h

55、>void main ()int i;for(i=50;i<100;i+)if(i%11=0 | i%5=0)(i%11=0 && i%5=0)?i=i : printf("%dt",i);putchar('n');51.请编写程序,输出11000之间能被11整除且个位数为5的所有整数。#include<stdio.h>int main()int i,n;for(i=10;i<=100;i+)for(n=2;n<i;n+)if(i%n!=0)continue;if(i%10=1)prin

56、tf("%d",i);printf(" ");break;return 0;52.请编写程序,输出10100之间个位数为1的所有素数。#include<stdio.h>int main()int i;for(i=1;i<=1000;i+)if(i%11=0&&i%10=5)printf("%d",i);printf(" ");return 0;53. 请编写程序,将键盘输入的某整数按逆序排列构成新的整数,并显示在屏幕上。#

57、include <stdio.h>void main()int a20=1,1,i,n;for(i=2;i<20;i+)ai=ai-1+ai-2;for(n=0,i=0;i<20;i+)printf("%d ",ai);n+;if(n%5=0)putchar('n');54. 求Fibonacci数列中前20个数,Fibonacci数列的前两个数为1,1,以后每一个数都是前两个数之和。Fibonacci数列的前n个数为1,1,2,3,5,8,13,用数组存放数列的前20个数,并输出之(按一行5个

58、输出)。#include<stdio.h>void main() int f20=1,1,i; for(i=2;i<20;i+) fi=fi-1+fi-2; for(i=0;i<20;i+) printf("%dt",fi); if(i+1)%5=0) printf("n"); getchar();55.将一个n*m二维数组的行和列元素互换,存到另一个m*n的二维数组中,并输出其结果。#include<stdio.h>#define n 2#define m 3void main()int anm=1,2,3,4,5,6,i,j;int bmn;printf("array a:n");for(i=0;i<n;i+)for(j=0;j<m;j+)printf("%6d",aij);bji=aij;printf("n");printf("array b:n");for(i=0;i<m;i+)for(j=0;j<n;j+)printf("

温馨提示

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

评论

0/150

提交评论