题目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;
}
以上就是本次我为大家准备的题目啦!望多多支持啊!