首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【手把手带你刷好题】--C语言基础编程题(六)

【手把手带你刷好题】--C语言基础编程题(六)

作者头像
草莓熊Lotso
发布2025-10-29 13:43:51
发布2025-10-29 13:43:51
1170
举报
文章被收录于专栏:C++/LinuxC++/Linux

🔥个人主页:@草莓熊Lotso 🎬作者简介:C++研发方向学习者 📖个人专栏: 《C语言》 《数据结构与算法》《C语言刷题集》 ⭐️人生格言:生活是默默的坚持,毅力是永久的享受。

前言:本篇博客是刷题集中的第六篇,题目都是一些比较基础的IO型题目,适合C语言初学者。特别声明一下,这里提供的答案和思路都并非唯一,仅供参考。

1.计算单位阶跃函数

题目链接:计算单位阶跃函数_牛客题霸_牛客网

题目描述:

题目示例:

代码演示:

代码语言:javascript
复制
#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("%d\n",0);
    }
    else {
        printf("%.1lf\n",0.5);
    }
    }

    return 0;
}

题目解析:

  • 这题根据题目条件,规定出范围,输入数字后进行判断然后对应输出就行了

2.三角形判断

题目链接:三角形判断_牛客题霸_牛客网

题目描述:

题目示例:

代码演示:

代码语言:javascript
复制
#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+c)>b&&(b+c)>a)
    {
        if(a==b&&b==c)
        {
            printf("Equilateral triangle!\n");
        }
        else if(a==b||a==c||b==c)
        {
            printf("Isosceles triangle!\n");
        }
        else 
        {
        printf("Ordinary triangle!\n");
        }
    }
    else 
    {
    printf("Not a triangle!\n");
    }
   }
   return 0;
}

题目解析:

  • 这里搞清楚不同三角形的判定条件,都穷举出来就可以了

3.衡量人体胖瘦程度

题目链接:衡量人体胖瘦程度__牛客网

题目描述:

题目示例:

代码演示:

代码语言:javascript
复制
#include <stdio.h>

int main() 
{
    int kg=0;
    int cm=0;
    while (scanf("%d %d", &kg, &cm) != EOF) 
    {
        double m=cm/100.0;
        double bmi=kg/(m*m);
        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 {
         printf("Obese\n");
        }
    }
    return 0;
}

题目解析:

  • 大家应该还记得我们之前写过一个求BMI的题,这题其实就是在这个的基础上加上了判断,对胖瘦程度进行分类
  • 值得注意的是多组输入以及浮点数除法要保证除号两端至少有一个浮点数

4.计算一元二次方程

题目链接:计算一元二次方程_牛客题霸_牛客网

题目描述:

题目示例:

代码演示:

代码语言:javascript
复制
#include <stdio.h>
#include<math.h>

int main() {
    double a=0;
    double b=0;
    double c=0;
    while (scanf("%lf %lf %lf", &a, &b,&c) != EOF) {
        if(a==0.0)
        {
            printf("Not quadratic equation");
        }
        else {
        double dt=(b*b)-(4*(a*c));
        if(dt==0.0)
        {
            printf("x1=x2=%.2lf\n",(-b)/(2*a)+0);//加0
        }
        else if(dt>0.0)
        {
            printf("x1=%.2lf;x2=%.2lf\n",((-b)-sqrt(dt))/(2*a),((-b)+sqrt(dt))/(2*a));
        }
        else {
            double s=(-b)/(2*a);
            double xu=sqrt(-dt)/(2*a);
            char c='i';
            printf("x1=%.2lf-%.2lf%c;",s,xu,c);
            printf("x2=%.2lf+%.2lf%c\n",s,xu,c);
        }
        }
    }
    return 0;
}

题目解析:

  • 这题根据题目不同的限制条件计算出不同的结果,注意小数点的问题
  • 还有就算可能会出现测出 负0 这种情况,在后面加个0就行了

5.获取月份天数

题目链接:获得月份天数_牛客题霸_牛客网

题目示例:

题目示例:

代码演示:

代码语言:javascript
复制
#include <stdio.h>

int year(int y)
{
    if((y%4==0&&y%100!=0)||y%400==0)
    {
        return 1;
    }
    return 0;
}
void get_day(int y,int m)
{
    int arr[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int day=arr[m];
    if(year(y)==1&&m==2)
    {
        day+=1;
    }
    printf("%d\n",day);
}

int main() 
{
    int year=0;
    int month=0;
    while(scanf("%d%d",&year,&month)!=EOF)
    {
        get_day(year,month);
    }
}

题目解析:

  • 多组输入,判断闰年,如果是闰年,2月多一天,其他都正常。

6.简单计算器

题目链接:简单计算器_牛客题霸_牛客网

题目描述:

题目示例:

代码演示:

代码语言:javascript
复制
#include <stdio.h>

int main() {
    double a=0;
    char ch=0;
    double b=0;
    double last=0;
    while (scanf("%lf %c %lf", &a,&ch, &b) != EOF) 
    { 
        switch(ch)
        {
            case '+':
            last=a+b;
            printf("%.4lf+%.4lf=%.4lf",a,b,last);
            break;
            case '-':
            last=a-b;
            printf("%.4lf-%.4lf=%.4lf",a,b,last);
            break;
            case '*':
            last=a*b;
            printf("%.4lf*%.4lf=%.4lf",a,b,last);
            break;
            case '/':
            last=a/b;
            if(b==0.0)
            {
                printf("Wrong!Division by zero!");
            }
            else
            printf("%.4lf/%.4lf=%.4lf",a,b,last);
            break;
            default:
            printf("Invalid operation!");
        }
    }
    return 0;
}

题目解析:

  • 多组输入,按照格式接收,按照要求编写代码就行,这里使用switch语句比较好

7.线段图案

题目链接:线段图案_牛客题霸_牛客网

题目描述:

题目示例:

代码演示:

代码语言:javascript
复制
#include <stdio.h>

int main() 
{
    int n=0;
    while (scanf("%d",&n) != EOF) 
    {
        for(int i=0;i<n;i++)
        {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

题目解析:

  • 多组输入,每次打印一个*,按照输入的个数打印后换行就行

8.正方形图案

题目链接:正方形图案_牛客题霸_牛客网

题目描述:

题目示例:

代码演示:

代码语言:javascript
复制
#include <stdio.h>

int main() 
{
    int n=0;
    while (scanf("%d", &n) != EOF) { 
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<n;j++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

题目解析:

  • 这题就算一行一行的打印就行了,n行,一行有n个。注意一下每次打印一个 * 后面都带上一个空格

9.直角三角形图案

题目链接:直角三角形图案_牛客题霸_牛客网

题目描述:

题目示例:

代码演示:

代码语言:javascript
复制
#include <stdio.h>

int main() 
{
    int n=0;
    while (scanf("%d", &n) != EOF) { 
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<=i;j++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

题目解析:

  • 先控制好行数,然后我们通过观察示例,可看出每一行打印的个数刚好是那一行的行数
  • 还是需要注意一下每次打印完 * 都带个空格

往期回顾:

【手把手带你刷好题】--C语言基础编程题(一)

【手把手带你刷好题】--C语言基础编程题(二)

【手把手带你刷好题】--C语言基础编程题(三)

【手把手带你刷好题】--C语言基础编程题(四)

结语: 本篇文章就到此结束了,C语言刷题集专栏中的第六篇的题目也是很基础的,里面还有几道图案打印的题,题目都不是很难,都是比较基础的编程题,非常适合刚学完C语言的朋友们拿来练手,提升自己的代码能力。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.计算单位阶跃函数
  • 2.三角形判断
  • 3.衡量人体胖瘦程度
  • 4.计算一元二次方程
  • 5.获取月份天数
  • 6.简单计算器
  • 7.线段图案
  • 8.正方形图案
  • 9.直角三角形图案
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档