刷题系列--牛客网基础OJ编程130题(上)

目录

前言

BC1:实践出真知

 BC2 我是大V

                  BC 3 有容乃大

BC 6 小飞机

 BC 7缩短二进制

BC 8十六进制转十进制 

BC 9 printf的返回值 

BC 10 成绩输入输出 

                 BC 11 学生基本信息输入输出

BC12 字符金字塔

BC13 ASCII码

BC14 出生日期输入输出

 BC15 按照格式输入并交换输出

 BC16 字符转ASCII码

BC17 计算表达式的值

BC18 计算带余除法

 BC19 反向输出一个四位数

BC20 kiki算数

BC21 浮点数的个位数字

BC22 你能活多少秒

BC23 时间转化

BC24 总成绩和平均分计算

 BC25 计算体重指数

 BC26 计算三角形的周长和面积

 BC27 计算球体的体积

 BC28 大小写转换

BC29 2的n次方计算

BC30 kiki和酸奶

 BC31    发布信息

 BC32    输出学生信息

  BC33    计算平均成绩

 BC34    进制A+B

  BC35    判断字母

 BC36    健康评估

  BC37    网购

  BC38    变种水仙花

 BC39    争夺前五名

 BC40    竞选社长

 BC41    你是天才吗?

 BC42    完美成绩

 BC43    及格分数

 BC44    判断整数奇偶性

 BC45    最高分数

  BC46    判断是元音还是辅音

 BC47    判断是不是字母

  BC48    字母大小写转换

 BC49    判断两个数的大小关系

 BC50    计算单位阶跃函数

                   BC51    三角形判断     

 BC52    衡量人体胖瘦程度

总结



前言

 刷题练习是每一个程序员必经之路,本文题目选自牛客网130道基础编程题!

      下面就跟着笔者一起来做吧!

想要自己练习的可以看文章结尾,笔者把链接放到了文章尾部。

      (由于作者水平有限,如有错误,欢迎各位大佬批评指正!再次谢谢大家!)


BC1:实践出真知

#include<stdio.h>
int main()
{
	printf("Practice makes perfect!");
    return 0;
}

 BC2 我是大V

#include<stdio.h>
int main()
{
    printf("v   v\n");
    printf(" v v\n");
    printf("  v\n");
    return 0;
}

     


BC 3 有容乃大

#include <stdio.h>
int main()
{
    printf("The size of short is %d bytes.\n",sizeof(short));
    printf("The size of int is %d bytes.\n",sizeof(int));
    printf("The size of long is %d bytes.\n",sizeof(long));
    printf("The size of long long is %d bytes.\n",sizeof(long long));
    return 0;
}

BC 6 小飞机

#include<stdio.h>
int main()
{
	printf("     **     \n");
	printf("     **     \n");
	printf("************\n");
	printf("************\n");
	printf("    *  *     \n");
	printf("    *  *     \n");
    return 0;
}


 BC 7缩短二进制

#include<stdio.h>
//方法1
/*
int main()
{
    printf("%#o %#X",1234,1234);
    return 0;
}
*/

//方法2:
int main()
{
    printf("0%o 0X%X",1234,1234);
    return 0;
}


BC 8十六进制转十进制 

#include<stdio.h>
int main()
{
	printf("%15d",0xABCDEF );
    return 0;
}


BC 9 printf的返回值 

#include<stdio.h>
//方法1:
/*
int main()
{
    //使用ret保存printf的返回值
    int ret = printf("Hello world!");
    printf("\n");
    printf("%d\n", ret);
    return 0;
}

//方法2:
*/
int main()
{
    int ret=printf("Hello world!");
    printf("\n%d\n",ret);
    return 0;
}


BC 10 成绩输入输出 

#include<stdio.h>

int main()
{
	int arr[4] = { 0 };
	int i = 0;
	int b = 0;
	for (i = 0; i < 3; i++)
	{
		scanf("%d", &arr[i]);
	}
	printf("score1=%d,score2=%d,score3=%d", arr[0], arr[1], arr[2]);
	
}


BC 11 学生基本信息输入输出

#include<stdio.h>
int main()
{

	int xuehao;
	float C = 0;
	float shuxue = 0;
	float yingyu = 0;
	scanf("%d;%f,%f,%f", &xuehao,&C,&shuxue,&yingyu);
	printf("The each subject score of  No. %d is %.2f, %.2f, %.2f.\n",xuehao,C,shuxue,yingyu);
	return 0;
}

BC12 字符金字塔

#include<stdio.h>
int main()
{
    int i,j;
  char a=0;
    scanf("%c",&a);
    for(i=0;i<5;i++)
    {
       //打印空格
        for(j=0;j<4-i;j++)
            printf(" ");
        //打印1
        for(j=0;j<=i;j++)
            printf("%c ",a);
        printf("\n");
    }
}


BC13 ASCII码

#include<stdio.h>
int main()
{
	int i = 0;
	int sz = 0;
	int arr[] = { 73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116, 33 };
	sz = sizeof(arr) / sizeof(arr[0]);
	for (i = 0; i < sz; i++)
		printf("%c", arr[i]);
    return 0;
}

BC14 出生日期输入输出

#include<stdio.h>
/*
int main()

{

        int a;
        int year, month, date;
        scanf("%d", &a);
        year = a / 10000;
        month = (a / 1000 % 10) * 10 + (a / 100 % 10);
        date = a % 100;
        printf("year=%d\nmonth=%02d\ndate=%02d\n", year, month, date);
}
*/
int main()
{
    int year=0;
    int month=0;
    int day=0;
    scanf("%4d%2d%2d",&year,&month,&day);
    printf("year=%d\nmonth=%02d\ndate=%02d",year,month,day);
    return 0;
}

 
BC15 按照格式输入并交换输出

#include<stdio.h>
int main()
{
    int a,b;
    int tmp=0;
    scanf("a=%d,b=%d",&a,&b);
    tmp=a;
    a=b;
    b=tmp;
     printf("a=%d,b=%d",a,b) ;
    return 0;
}

 
BC16 字符转ASCII码

#include<stdio.h>
int main()
{
    char c;
    scanf("%c",&c);
    printf("%d\n",c);
    return 0;
}


BC17 计算表达式的值

#include<stdio.h>
int main()
{
    int a=40,c=212;
    int b=(-8+22)*a-10+c/2;
    printf("%d",b);
}


BC18 计算带余除法

#include <stdio.h>
int main() 
{
    int a = 0, b = 0;
    scanf("%d %d", &a, &b);
    printf("%d %d\n", a / b, a % b);
    return 0;
}


 
BC19 反向输出一个四位数

#include<stdio.h>
int main()
{
    int a,b,i,j;
    scanf("%1d%1d%1d%1d",&a,&b,&i,&j);
    printf("%d%d%d%d",j,i,b,a);
    return 0;
}



BC20 kiki算数

#include<stdio.h>
int main()
{
    int a=0;
    int b=0;
    int sum=0;
    scanf("%d %d",&a,&b);
    sum=(a+b)%100;
    printf("%d",sum);
    return 0;
}


BC21 浮点数的个位数字

#include<stdio.h>
/*
int main()
{
    int a=0;
    scanf("%d",&a);
    printf("%d",a%10);
    return 0;
}
*/
int main()
{
    float a=0;
    int b=0;
    scanf("%f",&a);
   b=(int)a;
    printf("%d",b%10);
    return 0;
}


BC22 你能活多少秒

#include<stdio.h>
/*
int main()
{
    int age=0;
    scanf("%d",&age);
    int second=3.156e7;
    long long sum=age*second;
    printf("%lld",sum);
    return 0;
}
*/
int main()
{
    int age=0;
    scanf("%d",&age);
    long long sum=age*3.156e7;
    printf("%lld",sum);
    return 0;
}


BC23 时间转化

#include<stdio.h>
int main()
{
    int second=0;
    int hour=0;
    int minute=0;
    int seconds=0;
    scanf("%d",&second);
    hour=second/3600;   //每3600秒就是一小时 second/3600即为小时数
    minute=second/60%60;  //second/60:得到有多少分钟(可能为超过60的数) 
    //再用这个数%60,把能转化为小时的分钟数除去,即为分钟数
    seconds=second%60;  
    //3600%60---把能转化为分钟的秒数去掉即为最后得到的秒数
    printf("%d %d %d",hour,minute,seconds); 
    return 0;
}


BC24 总成绩和平均分计算

#include<stdio.h>
/*
int main()
{
    float score=0;
    float sum=0;
    for(int i=0;i<3;i++)
    {
        scanf("%f",&score);
        sum+=score;
    }
    printf("%.2f %.2f",sum,sum/3);
    return 0;
}
*/
int main()
{
    float score[3]={0};
    int i=0;
    float sum=0;
    for(i=0;i<3;i++)
    {
        scanf("%f",&score[i]);
    }
    for(i=0;i<3;i++)
    {
        sum+=score[i];
    }
    printf("%.2f %.2f",sum,sum/3);
    return 0;
}

 
BC25 计算体重指数

#include<stdio.h>
/*
int main()
{
    double BMI=0.0;
    int high=0;
    int weight=0;
    scanf("%d %d",&weight,&high);
    //cm->m
   high=(float)high/100;
    BMI=weight/(high*high);
    printf("%.2lf",BMI);
    return 0;
}
*/
int main()
{
    double BMI=0.0;
    int high=0;
    int weight=0;
    scanf("%d %d",&weight,&high);
    //cm->m
    BMI=weight/((double)high*high/10000);
    printf("%.2lf\n",BMI);
     return 0;
}

 
BC26 计算三角形的周长和面积

#include<stdio.h>
#include<math.h>
int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    float p = 0;
    float circumference =0.0;
    float area=0.0;
    scanf("%d %d %d",&a,&b,&c);
    //知道三条边求面积,使用海伦公式
    circumference=a+b+c;
    p=circumference/2;
    area=sqrt(p*(p-a)*(p-b)*(p-c));
    printf("circumference=%.2f area=%.2f",circumference,area);
    return 0;
}

 
BC27 计算球体的体积

#include<stdio.h>
int main()
{
    double r = 0;
    double p = 3.1415926;
    double sum = 0;
    scanf("%lf",&r);
    sum=4/3.0*(p)*r*r*r;
    printf("%.3lf",sum);
    return 0;
}

 
BC28 大小写转换

#include<stdio.h>
int main()
{
    char ch=0;
    while(scanf("%c",&ch) !=EOF)
    {
        getchar(); //接收缓冲区的\n
        printf("%c\n",ch+32);
    }
    return 0;
}



BC29 2的n次方计算

#include<stdio.h>
int main()
{
    int a=0;
    while(scanf("%d",&a)!=EOF)
    printf("%d\n",1<<a);
    return 0;
}


BC30 kiki和酸奶

#include<stdio.h>
int main()
{
    int m = 0;//总的酸奶数
    int n = 0;//每多少分钟能喝光一瓶酸奶
    int h = 0;//经过的分钟数
    int sum = 0;
    while(scanf("%d %d %d",&m,&n,&h)!=EOF)
    {
        if(h%n!=0)   //h%n不为0,说明又打开了1瓶但是没喝完 为0则恰好喝完
        {
            sum=m-(h/n)-1;//总的酸奶数-喝完的-已经打开的但是没喝完的
        }
        else
            sum=m-h/n;  
        printf("%d",sum);
    }
    return 0;
}

 BC31    发布信息

#include<stdio.h>
int main()
{    printf("I lost my cellphone!\n");
    return 0;
}



 BC32    输出学生信息

#include<stdio.h>
int main()
{
    printf("Name    Age    Gender\n");
    printf("---------------------\n");
    printf("Jack    18     man\n");
    return 0;
}

 
 BC33    计算平均成绩

#include<stdio.h>
/*
int main()
{
    int score = 0;
    int i = 0;
    float sum = 0.0;
    for(i = 0;i < 5 ;i++)
    {
        scanf("%d",&score);
        sum+=score;
    }
    printf("%.1f",sum/5.0);
    return 0;
}
*/
int main()
{
    int score[5]={0};
    int i = 0;
    float sum = 0.0;
    for(i = 0;i < 5;i++)
    {
       scanf("%d",&score[i]);
        sum+=score[i];
    }
    printf("%.1f",sum/5.0);
    return 0;
}


 BC34    进制A+B

#include<stdio.h>
int main()
{
    int a = 0;
    int b = 0;
    scanf("%x %o",&a,&b);
    printf("%d",a+b);
    return 0;
}

 
 BC35    判断字母

#include<stdio.h>
int main()
{
    char ch = 0;
    while((ch=getchar())!=EOF)
    {
       if((ch>='a'&&ch<='z') || (ch>='A'&&ch<='Z'))
       {
           printf("YES\n");
       }
        else 
            printf("NO\n");
        getchar();
    }
    return 0;
}



 BC36    健康评估

#include<stdio.h>
int main()
{
    double weight = 0;
    double BMI = 0;
    double high = 0;
    scanf("%lf %lf",&weight,&high);
    BMI=weight/(high*high);
    if(BMI>=18.5 && BMI<=23.9)
    {
        printf("Normal\n");
    }
    else 
        printf("Abnormal\n");
    return 0;
}

 
 BC37    网购

#include<stdio.h>
int main()
{
    double price = 0;//商品价格--浮点数
    int month = 0;
    int day = 0;
    int flag = 0;//flag表示有无优惠券
    scanf("%lf %d %d %d",&price,&month,&day,&flag);
    if(month==11 && day == 11)
    {
        price=price*0.7;    //双十一打7折
    }
    if(month ==12 && day ==12)
    {
        price =price *0.8; //双十二打8折
    }
    price =price -50*flag;   
    //因为有优惠券表示1  无则用0表示 所以直接用flag*50即可
   if(price<0.0)
   {
       printf("%.2lf",0.00);      //商家不倒贴
   }
    else
        printf("%.2lf",price);
    return 0;
}

 
 BC38    变种水仙花

#include<stdio.h>
int main()
{
    int i = 0;
    for(i=10000;i<=99999;i++)
    {
         int j = 0;
         int sum = 0;
        //每次进入sum要重新初始化 所以定义在里面
        for(j=10;j<=10000;j*=10)
        {
            sum=sum+(i/j)*(i%j);
        }
        if(sum == i)
        {
            printf("%d ",i);
        }
    }
    return 0;
}


 BC39    争夺前五名

#include<stdio.h>
int main()
{
     int n = 0;
    int i = 0;
     int arr[40]={0}; 
    scanf("%d",&n);
    for(i = 0;i < n; i++)
    {
        scanf("%d",&arr[i]);
    }
    //冒泡排序
    //因为要打印前五个最高分,所以排成降序
    int j = 0;
    for(i=0;i<n;i++)
    {
        
        for(j = 0; j<n-i-1;j++)
        {
            if(arr[j]<arr[j+1])
            {
             int tmp = arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=tmp;
            }
        }
    }
    for(i = 0; i < 5; i++)
    {
        printf("%d ",arr[i]);
    }
    return 0;
}


 BC40    竞选社长

#include<stdio.h>
int main()
{
    char ch = 0; 
    int flag = 0;
    char arr[50]={0};
    while((ch=getchar())!= '0'&& ch!=EOF)
    {
        if(ch=='A')
            flag++;
        else if(ch == 'B')
            flag--;
        
    }
    if(flag<0)
        printf("B\n");
     if(flag>0)
        printf("A\n");
     if(flag==0)
        printf("E\n");
    return 0;
}


 BC41    你是天才吗?

#include<stdio.h>
int main()
{
    int n = 0;
    while(scanf("%d",&n)!= EOF)
    {
        if(n>=140)
        {
            printf("Genius\n");
        }
    }
    return 0;
}


 BC42    完美成绩

#include<stdio.h>
int main()
{
    int a=0;
    scanf("%d",&a);
    if(a>=90&&a<=100)
    {
        printf("Perfect\n");
    }
    return 0;
}


 BC43    及格分数

#include<stdio.h>
int main()
{
    int n = 0;
    while((scanf("%d",&n)!=EOF))
    {
        if(n>=60)
        {
            printf("Pass\n");
        }
        else
            printf("Fail\n");
    }
    return 0;
}



 BC44    判断整数奇偶性

#include<stdio.h>
int main()
{
    int n = 0;
    while(scanf("%d",&n)!=EOF)
    {
        if(n%2 ==0)
            printf("Even\n");
        else 
            printf("Odd\n");
    }
    return 0;
}



 BC45    最高分数

#include<stdio.h>
int main()
{
    int score[3] = { 0 };
    int i = 0;
    int max = 0;
    while (scanf("%d %d %d", &score[0], &score[1], &score[2]) != EOF)
    {
        max = 0;  //每一次进入max都要恢复为0
         i = 0; //每一次进入i也要重新初始化!!!!
        for (i = 0; i < 3; i++)
        {
            if (max < score[i])
            {
                max = score[i];
            }
        }
        printf("%d\n", max);
    }
    return 0;
}


 
 BC46    判断是元音还是辅音

#include<stdio.h>
#include<string.h>
int  main()
{
    char arr[]="AaEeIiOoUu";
    char n = 0;
    int sz =strlen(arr);
    while((n=getchar())!= EOF)
    {
        int i = 0;
        for(i = 0;i <sz ;i++)
        {
            if(n == arr[i])
            {
                printf("Vowel\n");
                break ;
            }
        }
        if(sz==i)
        {
            printf("Consonant\n");
        }
        getchar();//清理缓冲区的\n
    }
    
    return 0;
}



 BC47    判断是不是字母

#include<stdio.h>
int main()
{
    char n = 0;
    while(scanf("%c",&n)!=EOF)
    {
        if(n>='A'&&n<='Z' || n>='a'&&n<='z')
        {
            printf("%c is an alphabet.\n",n);
        }
        else 
            printf("%c is not an alphabet.\n",n);
        getchar();
    }
    return 0;
}


 
 BC48    字母大小写转换


#include<stdio.h>
int main()
{
    char ch = 0;
    while(scanf(" %c",&ch)!=EOF)
    {
        if(ch>='A'&&ch<='Z')
        {
            printf("%c\n",ch+32);
        }
        else 
            printf("%c\n",ch-32);
    }
    return 0;
}



 BC49    判断两个数的大小关系

#include<stdio.h>
int main()
{
    int a = 0;
    int b = 0;
    while(scanf("%d %d",&a,&b)!=EOF)
    {
        if(a == b)
        {
            printf("%d=%d\n",a,b);
        }
        else if(a>b)
        {
            printf("%d>%d\n",a,b);
        }
        else
            printf("%d<%d\n",a,b);
    }
    
    return 0;
}



 BC50    计算单位阶跃函数

#include<stdio.h>
int main()
{
    int t = 0;
    while(scanf("%d",&t)!=EOF)
    {
      if(t > 0)
          printf("%d\n",1);
        else if(t == 0)
          printf("%.1f\n",0.5);
        else 
            printf("%d\n",0);
    }
    return 0;
}


 BC51    三角形判断     

#include<stdio.h>
int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    while(scanf("%d %d %d",&a,&b,&c)!=EOF)
    {
        if(a+b>c && a==b &&b==c && a==c)
            printf("Equilateral triangle!\n");
        else if(a+b>c && (a==b) &&(a!=c) || (a==c) && (a!=b)
                || (b==c) &&(b!=a))
            printf("Isosceles triangle!\n");
        else if(a+b>c)
            printf("Ordinary triangle!\n");
        else 
            printf("Not a triangle!\n");
    }
    return 0;
}


 
 BC52    衡量人体胖瘦程度

#include<stdio.h>
int main()
{
    int weight = 0;
     double high = 0;      //注意此题的身高时cm
    double BMI = 0.0;
    while(scanf("%d%lf",&weight,&high)!=EOF)
    {
        BMI=weight/(high*high/10000); //cm->m  /100 /100 相当于/10000
        if(BMI<18.5)
        printf("Underweight\n");
        else if(BMI >=18.5 && BMI <=23.9)
            printf("Normal\n");
        else if(BMI >=23.9 && BMI <=27.9)
            printf("Overweight\n");
        else if(BMI >27.9)
            printf("Obese\n");
    }
    return 0;
}


总结

刷题链接:https://www.nowcoder.com/ta/beginner-programmers

        上篇更新了牛客网130道OJ编程题的第一页的题目,觉得有帮助的小伙伴可以带点个关注哦,也可以评论评论! 欢迎各位大佬指出错误,给出更好的解决方法!笔者在此谢谢各位~

         未完待续~


 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

芒果再努力

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

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

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

打赏作者

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

抵扣说明:

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

余额充值