• 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("输入五个数: ");

    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(" ");

    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(" ");

    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(" ");

    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(" ");

    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(" ");

    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);

    }

    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,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("  ");

    31.}

    32.}

    33. return 0;

    34.}










  • 相关阅读:
    【转帖】电阻电容的封装
    FT2232H的MCU Host Bus Emulation 模式
    google cpp style guide
    CY7C131 BUSY信号线的接法
    有关沟通的常识
    关于for和foreach,兼顾效率与安全
    绩效面谈中处理分歧的小窍门
    SQL 合并列值和拆分列值
    如何保护.net中的dll文件(防止破解、反编译dll)(转)
    .NET框架图解之五:System.Reflection
  • 原文地址:https://www.cnblogs.com/zhangaihua/p/3718112.html
Copyright © 2020-2023  润新知