C、C++编程入口,常见的编程题

1.设计一个从5个数中取最小数和最大数的程序。

2.#include<stdio.h>

3.int min(int a[],int i);

4.int max(int a[],int i);

5.int main()

6.{

7. int a[5];

8. printf("输入五个数:\n");

9. for(int i=0;i<5;i++)

10. {

11. scanf("%2d",&a[i]);

12. }

13. printf("最小值是:");

14. min(a,5);

15. printf("最大值是:");

16. max(a,5);

17. return 0;

18.}

19.int min(int a[],int i)

20.{

21. int min=a[0]         ;

22. for(i=0;i<5;i++)

23. {

24. // scanf("%2d",a[i]);

25. if(a[i]<min)

26. min=a[i];

27. }

28. printf("%2d",min);

29. printf("\n");

30. return min;

31.}

32.int max(int a[],int i)

33.{

34. int max=a[0];

35. for(i=0;i<5;i++)

36. {

37. //scanf("00000%d ",a[i]);

38. if(a[i]>max)

39. max=a[i];

40. }

41. printf("%2d",max);

42. printf("\n");

43. return max;

44.}

2.输入某年某月某日,判断这一天是这一年的第几天?

3.#include <stdio.h>

4.int leap(int x);

5.int main()

6.{

7. int i,year,mon,day,days=0;

8. int a[]={0,31,28,31,30,31,30,31,31,30,31,30,31};

9. printf("分别输入年、月、日:");

10. scanf("%4d%2d%2d",&year,&mon,&day);

11. for(i=0;i<=mon;i++)

12. {

13. days=days+a[i];

14. }

15.if(leap(year))

16. {

17. days=days+1;

18.}

19.printf("%4d年%2d月%2d日式这年的第%d天",year,mon,day,days);

20.printf("\n");

21.return 0;

22.}

23.int leap(int x)

24.{

25. if(x%4==0&&x%100!=0)

26. return 1;

27. else

28. return 0;

29.}

3.求1!+2!+3!+…+20!。

4.#include<stdio.h>

5.int fact(int n);

6.

7.int main()

8.{

9. int s=fact(20);

10. printf("1!+2!+3!+…+20!=%d",s);

11. printf("\n");

12. return 0;

13.

14.}

15.int fact(int n)

16.{

17. int sum=1;

18. for(int i=2;i<=n;i++)

19. {

20. for(int n=i-1;n>=1;n--)

21. {sum=sum+i*(i-n);}

22. }

23.if(n<=0)

24.{

25. printf("error");

26.}

27. printf("%d",sum);

28. return sum;

29.}

3.求1!+2!+3!+…+20!。

4.#include<stdio.h>

5.int fact(int n);

6.

7.int main()

8.{

9. int s=fact(20);

10. printf("1!+2!+3!+…+20!=%d",s);

11. printf("\n");

12. return 0;

13.

14.}

15.int fact(int n)

16.{

17. int sum=1;

18. for(int i=2;i<=n;i++)

19. {

20. for(int n=i-1;n>=1;n--)

21. {sum=sum+i*(i-n);}

22. }

23.if(n<=0)

24.{

25. printf("error");

26.}

27. printf("%d",sum);

28. return sum;

29.}

30.

4.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等

于该数本身。

#include <stdio.h>

int main()

{

int n,i,j,k;

for(n=100;n<1000;n++)

{

i=n/100;//百位

j=(n%100)/10;//十位

k=n%10;//个位

if(n==i*i*i+j*j*j+k*k*k)

printf("水仙花数有:%d\n",n);

}

return 0;

}

5.求数列a0,a1,a2,a3,…,a20。已知:

a0=0,a1=1,a2=1

a3= a0+2a1+a2

a4= a1+2a2+a3

……

#include <stdio.h>

int main()

{

int a[20];

a[0]=0,a[1]=1,a[2]=1;

for(int n=3;n<=20;n++)

{

a[n]=a[n-3]+2*a[n-2]+a[n-1];

}

for(n=3;n<=20;n++)

{

printf("a[%d]=%d\n",n,a[n]);

}

return 0;

}

6.要将一张100元的大钞票,换成等值的10元、5元、2元、1元的小钞票。要求每次换成40张小钞票,每种至少一张。编程找出所有可能的换法。

7.#include <stdio.h>

8.int main()

9.{

10. int a=100,j,k,m,n;//10元、5元、2元、1元的小钞票分别为j、k、m、n张

11. a=j+k+m+n=40;

12. if(j>=1 && k>=1 &&m>=1 && n>=1)

13. printf("10元的%d张",(100-(5*k)-(2*m)-n)/10);

14. printf("5元的%d张",(100-(10*j)-n)/5);

15. printf("1元的%d张",(100-(10*j)-(5*k)));

16.return 0;

17.}

7.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编写一程序找出6~10000之内的所有完数,并按下面的格式输出:6=1+2+3

8.#include <stdio.h>

9.int WanShu(int n);

10.int main()

11.{

12.WanShu(1000);

13.return 0;

14.}

15.int WanShu(int m)

16.{

17.int i,j,s;

18.for(m=6;m<10000;m++)

19.{

20.s=0;

21./* 求出m的所有因子之和s */

22.for(i=1;i<m;i++)

23.if(m%i==0)  s=s+i;

24./* ms相等,按题中所示格式输出 */

25.if(m==s)

26.{

27.printf("%5d=",m);

28.for(j=1;j<m;j++)

29.if(m%j==0)  printf("%d+",j);

30.printf("\b \n");

31.}

32.}

33. return 0;

34.}










posted @ 2013-10-15 21:05  ZhangAihua  阅读(308)  评论(0编辑  收藏  举报