C语言编程题目(精心准备,特别适合C语言小白)

题目1:

【问题描述】假设一对小兔第一个月出生,第二个月成熟,从第三个月起
每个月都可以生一对小兔,而这新生的小兔也遵循这一繁殖规律,试问从一
对兔子开始繁殖,n(n<=12)月以后可有多少对兔子(即当年第n月份总计有多
少对兔子)?请编程求解该问题,n的值要求从键盘输入。

提示:每个月的兔子对数实际上就构成一个斐波那契(Fibonacci)数列:
          1,1,2,3,5,8,13,21……
该数列特点:从第3项开始,每一项都等于前两项之和。 用f(n)(n=1,2,…)
表示第n个月兔子对数,于是可将上述规律表示为如下递推公式
                  f(n)=1          (n=1,2)
                  f(n)=f(n-1)+f(n-2)  (n>2)
【输入形式】月份n 为int型数据
【输出形式】输出两行,第一行输出的数组各元素间用一个空格分隔,第二行输出n个月兔子数总和。
【样例输入提示】Input n(0<=n<=12):\n
【样例输入】10
【样例输出】1 1 2 3 5 8 13 21 34 55
            sum = 143

编程实现:

#include <stdio.h>
#include <stdlib.h>

int f(int n);
int main()
{
    int n,i,sum = 0;
    scanf("%d",&n);
    for(i = 1; i <= n; i++)
    {
        printf("%d ",f(i));
        sum += f(i);
    }
    printf("\n");
    printf("sum = %d",sum);

}

int f(int n)
{
    if(n == 1||n == 2)
        return 1;
    else
        return f(n - 2) + f(n - 1);
}

题目2:

【问题描述】 已知数组a[10]={ 12,17,20,25,28,30}中的前6个元素已按由小到大顺序排
列,输入的一个整数插入到数组a中,使得插入后,数组a中的元素仍然由小到大顺序排列。

【输入形式】int型数据
【输出形式】输出数组a中的int型元素,各元素间以一个空格分隔
【样例输入】13
【样例输出】12 13 17 20 25 28 30
【样例输入】35
【样例输出】12 17 20 25 28 30 35

编程实现:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a[10]={12,17,20,25,28,30},i,j,t = 0;
    scanf("%d",&a[6]);
    for(i = 1; i < 7; i++)
    {
        for(j = 0; j < 7 - i; j++)
        {
            if(a[j] > a[j+1])
          {
            t = a[j];
            a[j] = a[j+1];
            a[j+1] = t;
          }
        }
    }
    for(j = 0; j < 7; j++)
    printf("%d ",a[j]);
}

题目3:

【问题描述】从键盘输入6个实数,对其数组元素进行从大到小排序,最后输出排序后的数据
【输入形式】float型数组元素
【输出形式】float型数组元素,元素输出为一位小数形式,各元素间用#间隔
【样例输入】1.2 3.4 5.0 -6.2 8.9 6.66
【样例输出】-6.2#1.2#3.4#5.0#6.7#8.9#

编程实现:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    float s[6],t;
    int i, j;
    for(i = 0; i < 6; i++)
     scanf("%f",&s[i]);
    for(i = 1; i < 6; i++)
    {
        for(j = 0; j < 6 - i; j++)
        {
            if(s[j] > s[j+1])
            {
                t = s[j];
                s[j] = s[j+1];
                s[j+1] = t;
            }
        }
    }
    for(i = 0; i < 6; i++)
    printf("%.1f#",s[i]);
}

题目4:

【问题描述】输入一个4×3的整数矩阵,输出其中
最大值、最小值和它们的下标(即行号和列号)
【输入形式】int型数组元素
【输出形式】int型数据
【样例输入】
       12 56 45
       89 42 71
       25 62 84
       52 61 34
【样例输出】
       max[1][0] = 89 min[0][0] = 12

编程实现:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a[4][3];
    int i, j, max, min, c = 0, d = 0, e = 0, f = 0;
    for(i = 0; i < 4; i++)
    {
        for(j = 0; j < 3; j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    max=a[0][0];
    min=a[0][0];
    for(i = 0; i < 4; i++)
    {
        for(j = 0; j < 3; j++)
        {
            if(a[i][j] > max)
            {
                max = a[i][j];
                c = i;
                d = j;
            }
            if(a[i][j] < min)
            {
                min = a[i][j];
                e = i;
                f = j;
            }
        }
    }
    printf("max[%d][%d]=%d min[%d][%d]=%d",c,d,max,e,f,min);
    return 0;
}

以上就是本次我为大家准备的题目啦!望多多支持啊!

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寥若晨星666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值