当前位置:   article > 正文

蓝桥杯基础题目合集C语言_蓝桥杯题目

蓝桥杯题目

都是蓝桥杯中的一些基础练习题,希望对大家有帮助。

1.序列求和

求1+2+3+...+n的值。

  1. #include<stdio.h>
  2. int main()
  3. {
  4. long long n,sum=0;
  5. scanf("%I64d",&n);
  6. sum=(1+n)*n/2;
  7. printf("%I64d",sum);
  8. return 0;
  9. }

2.圆的面积

/*给定圆的半径r,求圆的面积。*/

  1. #include<stdio.h>
  2. #define PI 3.14159265358979323
  3. int main()
  4. {
  5. int n;
  6. scanf("%d",&n);
  7. printf("%.7f",PI*n*n);
  8. return 0;
  9. }

3.斐波那契数

/*Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。

当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。*/

  1. #include<stdio.h>
  2. int main()
  3. {
  4. long a,b,fn,n,i;
  5. scanf("%d",&n);
  6. a=1;b=1;
  7. for(i=0;i<n-2;i++)
  8. {
  9. fn=(a+b)%10007;
  10. a=b;b=fn;
  11. }
  12. printf("%d",fn);
  13. return 0;
  14. }

4.01串

/*对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:

00000

00001

00010

00011

00100

请按从小到大的顺序输出这32种01串。*/

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int i,j,a[5],v,k=0;
  5. for(i=0;i<32;i++)
  6. {
  7. v=i;
  8. for(j=0;j<5;j++)
  9. {
  10. a[j]=v%2;
  11. v=v/2;
  12. }
  13. for(j=4;j>=0;j--)printf("%d",a[j]);
  14. printf("\n");
  15. }
  16. return 0;
  17. }

5.字母图形

/*利用字母可以组成一些美丽的图形,下面给出了一个例子:

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。*/

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int i,j,n,m;
  5. char a[100][100];
  6. scanf("%d %d",&n,&m);
  7. char b[27]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
  8. for(i=0;i<n;i++)
  9. {
  10. for(j=0;j<m;j++)
  11. {
  12. if(i==0)
  13. a[0][j]=b[j];
  14. else {a[i][j]=a[i-1][j-1];a[i][0]=b[i];}
  15. printf("%c",a[i][j]);
  16. }
  17. printf("\n");
  18. }
  19. return 0;
  20. }

6.数列特征

/*给出n个数,找出这n个数的最大值,最小值,和。*/

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int n,i,a[10000],min,max,h=0;
  5. scanf("%d",&n);
  6. for (i=0;i<n;i++)
  7. scanf("%d",&a[i]);
  8. max=min=a[0];
  9. for(i=0;i<n;i++)
  10. {
  11. if(min>a[i])min=a[i];
  12. else if(max<a[i])max=a[i];
  13. h+=a[i];
  14. }
  15. printf("%d\n",max);
  16. printf("%d\n",min);
  17. printf("%d\n",h);
  18. return 0;
  19. }

7.查找整数

/*给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。*/

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int n,a[1000],i,m,k=-1;
  5. scanf("%d",&n);
  6. for(i=1;i<=n;i++)
  7. scanf("%d",&a[i]);
  8. scanf("%d",&m);
  9. for(i=1;i<=n;i++)
  10. {
  11. if(m==a[i])
  12. {k=i;
  13. break;}
  14. }
  15. printf("%d",k);
  16. return 0;
  17. }

8.杨辉三角

/*杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。 

它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。

下面给出了杨辉三角形的前4行:

1  

1 1  

1 2 1  

1 3 3 1

给出n,输出它的前n行。*/

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int n,i,a[100][1000],j;
  5. a[0][0]=1;
  6. scanf("%d",&n);
  7. printf("%d \n",a[0][0]);
  8. for(i=1;i<n;i++)
  9. {
  10. for(j=0;j<i+1;j++)
  11. {
  12. a[i][j]=a[i-1][j-1]+a[i-1][j];
  13. printf("%d ",a[i][j]);
  14. }
  15. printf("\n");
  16. }
  17. return 0;
  18. }

9.特殊数字

/*153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1*1*1+5*5*5+3*3*3。

编程求所有满足这种条件的三位十进制数。*/

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int a,b,c,i,j,k;
  5. int sum,t[1000];
  6. for(i=1;i<10;i++)
  7. { a=i;
  8. for(j=0;j<10;j++)
  9. { b=j;
  10. for(k=0;k<10;k++)
  11. { c=k;
  12. sum=a*100+b*10+c;
  13. if(sum==a*a*a+b*b*b+c*c*c)
  14. printf("%d\n",sum);
  15. }
  16. }
  17. }
  18. return 0;
  19. }

10.回文数

/*1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。*/

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int a,b,c,d,i,j,k,l;
  5. for(i=1;i<10;i++)
  6. { a=i;
  7. for(j=0;j<10;j++)
  8. { b=j;
  9. for(k=0;k<10;k++)
  10. { c=k;
  11. for(l=0;l<10;l++)
  12. { d=l;
  13. if(a==d&&b==c)printf("%d%d%d%d\n",a,b,c,d);
  14. }
  15. }
  16. }
  17. }
  18. return 0;
  19. }

10.特殊回文

/*123321是一个非常特殊的数,它从左边读和从右边读是一样的。

输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。*/

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int a,b,c,d,e,f,i,j,k,l,p,q,n,sum,sun;
  5. scanf("%d",&n);
  6. for(i=0;i<10;i++)
  7. { a=i;
  8. for(j=0;j<10;j++)
  9. { b=j;
  10. for(k=0;k<10;k++)
  11. { c=k;
  12. for(l=0;l<10;l++)
  13. { d=l;
  14. for(p=0;p<10;p++)
  15. { e=p;
  16. for(q=0;q<10;q++)
  17. { f=q;
  18. sum=a+b+c+d+e+f;
  19. sun=b+c+d+e+f;
  20. if(a==f&&a!=0&&b==e&&c==d&&sum==n)printf("%d%d%d%d%d%d\n",a,b,c,d,e,f);
  21. else if(a==0&&b==f&&c==e&&sun==n)printf("%d%d%d%d%d\n",b,c,d,e,f);
  22. }
  23. }
  24. }
  25. }
  26. }
  27. }
  28. return 0;
  29. }

11.十进制转十六进制

//十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。

给出一个非负整数,将它表示成十六进制的形式。

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int n,i=0,j;
  5. char a[100];
  6. scanf("%d",&n);
  7. if(n==0)printf("%d",n);
  8. else
  9. {
  10. while(n!=0)
  11. {
  12. switch(n%16)
  13. {
  14. case 0:a[i]='0';break;
  15. case 1:a[i]='1';break;
  16. case 2:a[i]='2';break;
  17. case 3:a[i]='3';break;
  18. case 4:a[i]='4';break;
  19. case 5:a[i]='5';break;
  20. case 6:a[i]='6';break;
  21. case 7:a[i]='7';break;
  22. case 8:a[i]='8';break;
  23. case 9:a[i]='9';break;
  24. case 10:a[i]='A';break;
  25. case 11:a[i]='B';break;
  26. case 12:a[i]='C';break;
  27. case 13:a[i]='D';break;
  28. case 14:a[i]='E';break;
  29. case 15:a[i]='F';break;
  30. }
  31. n=n/16;
  32. i++;
  33. }
  34. for(j=i-1;j>=0;j--)printf("%c",a[j]);
  35. }
  36. return 0;
  37. }

12.十六进制转十进制

/*从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。

注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。*/

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<math.h>
  4. int main()
  5. {
  6. char a[100];
  7. int i;
  8. long long n=0;
  9. scanf("%s",&a);
  10. for (i=0;a[i]!='\0';i++)
  11. {
  12. if(a[i]>='A' && a[i]<='F')
  13. a[i]=(a[i]-'A')+10+'0';
  14. n+=((a[i]-'0')*(pow(16,strlen(a)-1-i)));
  15. }
  16. printf("%lld",n);
  17. return 0;
  18. }

13.数列排序

/* 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200*/

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int n,a[1000],k,temp=0,i,j;
  5. scanf("%d",&n);
  6. if(n<1||n>200)return 0;
  7. for(i=0;i<n;i++)
  8. {
  9. scanf("%d",&a[i]);
  10. }
  11. for(i=0;i<n-1;i++)
  12. {
  13. k=i;
  14. for(j=i+1;j<n;j++)
  15. {
  16. if(a[j]<a[k])k=j;
  17. }
  18. temp=a[i];
  19. a[i]=a[k];
  20. a[k]=temp;
  21. }
  22. for(i=0;i<n;i++)
  23. printf("%d ",a[i]);
  24. return 0;
  25. }

希望对大家有所帮助哈~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/222651
推荐阅读
相关标签
  

闽ICP备14008679号