蓝桥杯C语言---基础练习

01串:

#include <stdio.h>

int main(){
	int a,b,c,d,e;
	for(a=0;a<2;a++){
		for(b=0;b<2;b++){
			for(c=0;c<2;c++){
				for(d=0;d<2;d++){
					for(e=0;e<2;e++){
						printf("%d%d%d%d%d\n",a,b,c,d,e); 
					}
				}
			}
		}
	}
	return 0;
}

fabonacci数列:

#include<stdio.h>
int main()
{
	long s=0,f1=1,f2=1,f3=1,n=0;
	scanf("%lld",&n);
	if(n>2)
	{
		for(s=3;s<=n;s++)
		{
			f3=(f2+f1)%10007;
			f1=f2;
			f2=f3;
		}
	}
	printf("%lld\n",f3);
	return 0;
 } 
 //input:10
 //output:55 

查找整数:

#include <stdio.h>

int main(){
	int i,n;
	scanf("%d",&n);
	int number[n];
	for(i=0;i<n;i++){
		scanf("%d",&number[i]);
	}
	int j,count;
	scanf("%d",&j);
	count=1;
	for(i=0;i<n;i++){
		if(j==number[i]){
			printf("%d",count);
			break;
		}
		else count++;
	}
	if(i==n)
	printf("%d",-1);
	return 0;
}

回文数:

#include <stdio.h>
int main()
{
	int huiwen,a,b,c,d;
	for(huiwen=1000;huiwen<10000;huiwen++){
		a=huiwen/1000%10;//千位 
		b=huiwen/100%10;//百位 
		c=huiwen/10%10;//十位
		d=huiwen%10;
		if(a==d&&b==c)
		printf("%d\n",huiwen); 
	}
	return 0;
}

闰年判断:

#include <stdio.h>
int main(){
	int y;//y表示当前的年份
	scanf("%d",&y);
	if(y%400==0||(y%4==0&&y%100!=0)){
	printf("yes");	
	}
	else printf("no");
	return 0;

}

十进制转十六进制:

#include "stdio.h" 
int main() 
{
 int num=0;//要转换的数 
 int a[100];
 int i=0;
 int m=0;
 int yu;
  char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
   scanf("%d",&num); 
   if(num==0){
   	printf("%d",0);
   }
   while(num>0)//输入的数大于0 
   { yu=num%16; //对16取余 
   a[i++]=yu; //余数 
   num=num/16;
    }
  for(i=i-1;i>=0;i--)
  //倒序输出 
  {m=a[i];
  printf("%c",hex[m]);
   }
    printf("\n");
    return 0;
}

十六进制转八进制:

#include<stdio.h>
#include<string.h>

int getN(char s)
{
	if (s>='0'&&s<='9'){
		return s-48;
	 
	}
	else{
		return s-55;
	}
 } 
 
 int NO[400002];
 int N[400002];
 char s[100002];
 int main()
 {
 	int i,n,j,l;
 	scanf("%d",&n);
 	while(n--)
 	{
 		scanf("%s",s);
 		int slen=strlen(s);
 		int k=0,m=0;
 		for(j=slen-1;j>=0;j--){
 			int num=getN(s[j]);
 			int count=4;
 			while(count--)
 			{
 				NO[k++]=num%2;
 				num=num/2;
			 }
		 }
		 int cnt=1,x=0;
		 for(i=0;i<k;i++){
		 	if(cnt==4||i==k-1){
		 		x=cnt*NO[i]+x;
		 		cnt=1;
		 		N[m++]=x;
		 		x=0;
		 		
			 }
			 else{
			 	x=cnt*NO[i]+x;
			 	cnt*=2;
			 }
		 }
		 if(N[m-1]!=0||m==1)
		 printf("%d",N[m-1]);
		 for(l=m-2;l>=0;l--){
		 	printf("%d",N[l]);
		 }
		 printf("\n");
	 }
 		return 0;
 }

十六进制转十进制:

#include<stdio.h>
#include<string.h>
#include<math.h>

int getN(char s)
{
	char nn;
	switch(s)
	{
		case'0':nn=0;break;
		case'1':nn=1;break;
		case'2':nn=2;break;
		case'3':nn=3;break;
		case'4':nn=4;break;
		case'5':nn=5;break;
		case'6':nn=6;break;
		case'7':nn=7;break;
		case'8':nn=8;break;
		case'9':nn=9;break;
		case'A':nn=10;break;
		case'B':nn=11;break;
		case'C':nn=12;break;
		case'D':nn=13;break;
		case'E':nn=14;break;
		case'F':nn=15;break;
	}
	return nn;
 }
 
 int main()
 {
 	char s[9];
 	gets(s);
 	char i;
 	long long sum=0;
 	for(i=strlen(s)-1;i>=0;i--)
 	{
 		int num=getN(s[i]);
 		sum+=num*pow(16,strlen(s)-i-1);
	 }
	 printf("%lld\n",sum);
	 return 0;
  } 
  
//FE65CDBA
//输出4268084666 

数列排序:

#include<stdio.h>
int main(){
	int n,i,j,z;
	int number;
	int sum[201];
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d",&sum[i]);
	}
	for(j=0;j<n-1;j++){
		for(i=0;i<n-j-1;i++){
		if(sum[i]>sum[i+1]){
		
	    number=sum[i];
	    sum[i]=sum[i+1];
	    sum[i+1]=number;
	}
	}
}
for( z=0;z<n;z++){
	printf("%d ",sum[z]);
}
  return 0;
}

数字特征:

#include <stdio.h>
#include <stdlib.h>
int main(){
	int n;//n表示数的个数 
	scanf("%d",&n);
	int i,max,min,sum=0;
	int number[n];
	for(i=0;i<n;i++){
	    scanf("%d",&number[i]);	
	}
	max=number[0];
	min=number[0];
	for(i=0;i<n;i++){
		if(number[i]>max){
			max=number[i];
		}
		else if(number[i]<min){
			min=number[i];
		}
		sum+=number[i];
	}
	printf("%d\n%d\n%d\n",max,min,sum);
	return 0;
}

特殊的回文数:

#include <stdio.h>
int main()
{
	int i,n,a1,a2,a3,a4,a5,b1,b2,b3,b4,b5,b6;
	scanf("%d",&n);
	for(i=10000;i<100000;i++){
		a1=i/10000%10;
		a2=i/1000%10;
		a3=i/100%10;
		a4=i/10%10;
		a5=i%10;
		if((n==a1+a2+a3+a4+a5)&&(a1==a5)&&(a2==a4)){
			printf("%d\n",i);
		}
	}
		for(i=100000;i<1000000;i++){
		b1=i/100000%10;
		b2=i/10000%10;
		b3=i/1000%10;
		b4=i/100%10;
		b5=i/10%10;
	    b6=i%10;
		if((n==b1+b2+b3+b4+b5+b6)&&(b1==b6)&&(b2==b5)&&(b3==b4)){
			printf("%d\n",i);
		}
	}
	return 0;
 } 

特殊的数字:

#include <stdio.h>
#include <math.h> 
int main()
{
	int a,m,n,z;
	for(a=100;a<1000;a++){
		m=a/100;
		n=a/10%10;
		z=a%10;
		if(a==pow(m,3)+pow(n,3)+pow(z,3)){
			printf("%d\n",a);
		}
	}
	return 0;
}

杨辉三角形:

#include <stdio.h>
#define N 35
int main()
{
	int n,i,j;
	scanf("%d",&n);
	int P[N][N]; 
	for(i=0;i<n;i++){
		for(j=0;j<=i;j++){
			if(j==0||j==i)
                  P[i][j]=1;
           else 
			P[i][j]=P[i-1][j-1]+P[i-1][j];
		}
	}
	for(i=0;i<n;i++){
		for(j=0;j<=i;j++){
			if(i==j)
			printf("%d\n",P[i][j]);
            else
            printf("%d ",P[i][j]);
		}
	}
	return 0;
}

字母图形:

#include <stdio.h>
#include <stdlib.h> 
int main(){
	int n,m;
	scanf("%d%d",&n,&m);//要输出的图形的行数和列数
	int i,j;
	for(i=0;i<n;i++){
		for(j=0;j<m;j++){
			printf("%c",65+abs(i-j));
		}
		printf("\n");
	} 
	return 0;
}

圆的面积:

#include <stdio.h>
#include <math.h>
#define PI  3.14159265358979323

int main(){
	int r ;//r为圆的半径
	scanf("%d",&r);
	printf("%0.7f\n",PI*pow(r,2));//pow函数:计算r的2次方 
	return 0; 
} 

序列求和:

#include <stdio.h>
#include <math.h>

int main()
{
	int n,i;
	long long sum=0;//sum:1+2+3+4+...+n 
	scanf("%d",&n);
	for (i=1;i<=n;i++){
		sum=sum+i;
	}
	printf("%lld",sum);
	return 0;
 } 
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值