1.求斐波那契数列的第20项。
1、1、2、3、5、8、13、21、34、......,n = 1和n = 2的时候都是输出1
公式:f(n) = f(n-1) + f(n-2);例如第20项,6765
代码:
#include<stdio.h>
int main(){
int a[20];
for (int i = 0; i < sizeof(a)/sizeof(a[0]); i++)
{
if (i<=1)
{
a[0] = 1;
a[1] = 1;
}else {
a[i] = a[i-1]+a[i-2];
}
}
printf("第20项为:%d",a[19]);
}
结果:
2.输入五个正整数,求五个数据中的最第二大的值
代码:
#include<stdio.h>
int main(){
unsigned int a[5];
printf("请输入5个正整数:");
for (int i = 0; i < 5; i++)
{
scanf("%d",&a[i]);
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5-i-1; j++)
{
if (a[j]<a[j+1])
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
printf("第二大值为%d",a[1]);
}
结果:
3.从终端输入一串字符以'\n'结尾,求出小写字母个数分别多少个?
代码:
#include<stdio.h>
int main(){
printf("请输入一串字符串:");
char a[100];
int sum = 0;
for (int i = 0; i < sizeof(a)/sizeof(a[0]); i++)
{
scanf("%c",&a[i]);
sum++;
if (a[i] == '\n')
{
break;
}
}
int num ;
for (int i = 97; i <=122 ; i++)
{
num = 0;
int j;
for ( j =0; j <sum ; j++)
{
if (i == a[j])
{
num ++;
}
}
if (num != 0){
printf("%c有%d个\n",i,num);
}
}
}
结果:
4.有一分数序列:2/1 3/2 5/3 8/5 13/8 21/13...求出这个数列的前20项之和。结果32.6603
代码:
#include<stdio.h>
int main(){
float i =2,j =1,sum = 0;
int temp;
for (int k = 1; k <= 20; k++)
{
sum+=i/j;
temp = i;
i = i +j ;
j = temp ;
}
printf("%g",sum);
}
结果:
5.有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
代码:
#include<stdio.h>
int main(){
int sum,num;
for (int i = 1; i <= 4; i++)
{
for (int j = 1; j <= 4; j++)
{
for (int k = 1; k <= 4; k++)
{
if (i != k && k != j && i != j)
{
sum++;
num = i*100 + j*10 + k;
printf("%d\t",num);
}
}
}
}
printf("一共有%d个数",sum);
}
结果:
6.使用嵌套循环产生下列图案,要求用for嵌套循环
代码:
#include<stdio.h>
int main(){
for (int i = 1; i <= 6; i++)
{ char a = 70;
for (int j = 2; j <= i; j++)
{
printf("_");
}
for (int k = 1; k <= i ; k++)
{
printf("%c",a);
a--;
}
printf("\n");
}
}
结果:
7.打印以下图形
*
***
*****
*******
代码:
#include<stdio.h>
int main(){
for (int i = 1; i <= 4; i++)
{
for (int j = 1; j <= 2*i - 1; j++)
{
printf("*");
}
printf("\n\n");
}
}
结果:
8.打印以下图形。在以下图形的基础上修改,要求从终端输入金字塔层数,并打印对应金字塔层数
代码:
#include<stdio.h>
int main(){
printf("请输入金字塔层数:");
int n;
scanf("%d",&n);
for (int i = 1; i <= n; i++)
{
for (int j = n;j>=i; j--)
{
printf(" ");
}
for (int k = 1; k <= 2*i-1; k++)
{
printf("*");
}
printf("\n");
}
}