C语言经典题+答案:1-10

1.求两个数的较大值

题目内容:写一个函数求两个整数的较大值

如:输入10 20

输出较大值:20

答:

int Max(int x,int y)

{

    if (x > y)

         return x;

    else

         return y;

}

int main()

{

    int a = 10;

    int b = 20;

    scanf_s("%d %d", &a, &b);

    int m=Max(a, b);

    printf("%d\n", m);

    return 0;

}

2.define、include是预处理指令,不是关键字

3.用在switch语言中的关键字不包含continue

4.判断一个整数是否能被5整除。输入描述:输入包括一个整数M(1<M<100,000).输出描述:输出包括一行,如果M可以被5整除就输出YES,否则输出NO(结果大小写敏感)。

int main()

{

int m = 0;

scanf_s("%d", &m);     //这里的%d后面不要\n,因为回车换行是一起的,输入一个数字需要回车才可以得到结果,但是加了\n后,它就把输入的数字换行了。

if (m % 5 == 0)

         printf("YES\n");

    else

     printf("NO\n");

    return 0;

}

5.判断一个数是否为奇数

int main()

{

    int num = 15;

    if (num % 2 == 1);

    printf("奇数\n");

         return 0;

}

6.输出1-100之间的奇数。

    int main()

{

    int i = 0;

    for (i = 1; i <= 100; i++)

    {

         if (i % 2 == 1)

             printf("%d ", i);

    }

    return 0;

}

7.以下代码中m,n的运行结果是?

int main()

{

    int n = 1;

    int m = 2;

    switch (n)

    {

    case 1:

         m++;

    case 2:

         n++;

    case 3:

         switch (n)

         {           //switch允许嵌套使用

         case 1:

             n++;

         case 2:

             m++;

             n++;

             break;

         }

    case 4:

         m++;

         break;

    default:

         break;

    }

    printf("m = %d,n = %d\n", m, n);

    return 0;

}

注意:有没有break;还有switch后面的数字,case有没有被跳过

8.请问循环要循环多少次?

int main()

{

int i = 0;

    int k = 0;

for (i = 0, k = 0; k = 0; i++, k++)

     k++;

     return 0;

}

k被赋值成0,为假,一次都不进循环,故一次都没进去。(一个等号“=”是赋值,两个“==”是等于)

9.计算n的阶乘(阶乘就是1*2*3*4

int main()

{

    int i = 0;

    int n = 0;

    int sum = 1;

    scanf_s("%d", &n);

    for (i = 1; i <= n; i++)

{

         sum = sum * i;

    }

    printf("%d\n", sum);

    return 0;

}

10.计算1!+2!+3!+......+10!(=计算1的阶乘加到10的阶乘)

int main()

{

int i = 0;

int n = 0;

int ret = 1;

int sum = 0;

for (n = 1; n <= 10; n++)

{

     ret = 1;      //计算n的阶乘之前,把ret初始为1

     for (i = 1; i <= n; i++)

     {

     ret *= i;

}

     sum += ret;

}

printf("%d\n", sum);

return 0;

}


第二种答案:

int main()

{

    int n = 0;

    int ret = 1;

    int sum = 0;

    for (n = 1; n <= 10; n++)

    {

         ret *= n;

         sum += ret;

    }

    printf("%d\n", sum);

    return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值