C语言入门必刷题-牛客网精选5道

目录

1.BC12 学生基本信息输入输出

2.BC89 包含数字9的数

3.BC29 开学?

4.BC77 简单计算器

5.BC140 杨辉三角


1.BC12 学生基本信息输入输出

描述

依次输入一个学生的学号,以及3科(C语言,数学,英语)成绩,在屏幕上输出该学生的学号,3科成绩(注:输出成绩时需进行四舍五入且保留2位小数)。

数据范围:学号满足 1 \le n \le 20000000 \1≤n≤20000000 ,各科成绩使用百分制,且不可能出现负数

输入描述:

学号以及3科成绩,学号和成绩之间用英文分号隔开,成绩之间用英文逗号隔开。

输出描述:

学号,3科成绩,输出格式详见输出样例。

示例1

输入:17140216;80.845,90.55,100.00

输出:The each subject score of No. 17140216 is 80.85, 90.55, 100.00.

示例2

输入:123456;93.33,99.99,81.20

输出:The each subject score of No. 123456 is 93.33, 99.99, 81.20.

#include<stdio.h>
int main()
{
    int num=0;
    float Clanguage=0;
    float math=0;
    float Eeglish=0;
    scanf("%d;%f,%f,%f",&num,&Clanguage,&math,&Eeglish);
    printf("The each subject score of No. %d is %.2f, %.2f, %.2f.",num,Clanguage,math,Eeglish);
    return 0;
}

2.BC89 包含数字9的数

描述

今年是2019年,KiKi想知道1~2019中有多少个包含数字9的数。包含数字的数是指有某一位是“9”的数,例如“2019”、“199”等。

输入描述:

输出描述:

一行,一个整数,表示1~2019中共有多少个数包含数字9。

#include <stdio.h>
int main() {
    int i=1;
    int count = 0;      //计数器
    for (i = 1;i <= 2019;i++) {
        int n = i;
        while (n) {      //n为假跳出while循环
            if (n % 10 == 9) 
            {
                count++;
                break;
            }
            n = n / 10;
        }
    }
    printf("%d\n", count);
    return 0;
}

3.BC29 开学?

描述

小S:终于可以开学啦!好开心啊!

小Y:你没看新闻吗,开学日期又延后了。

小S:NOOOOOOOOOOOOOOOO!

小S知道原计划星期X开学,通知开学时间延期N天,请问开学日期是星期几(星期日用7表示)?

输入描述:

输入包含两个数字X,N(1≤X≤7, 1≤N≤1000)。

输出描述:

输出一个数字,表示开学日期是星期几

示例1

输入:1 2

输出:3

示例2

输入:5 9

输出:7

#include<stdio.h>
int main()
{
    int x=0;
    int n=0;
    int day=0;
    scanf("%d%d",&x,&n);
    day=(n%7)+x;
    if(day<=7)
        printf("%d",day);
    else
        printf("%d",day-7);
    return 0;
}

4.BC77 简单计算器

描述

KiKi实现一个简单计算器,实现两个数的“加减乘除”运算,用户从键盘输入算式“操作数1运算符操作数2”,计算并输出表达式的值,如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。如果操作数2等于0.0,则输出“Wrong!Division by zero!”

数据范围:字符串长度满足 3 \le n \le 50 \3≤n≤50  ,保证运算符是一个char类型字符。

输入描述:

输入一行字符串,操作数1+运算符+操作数2 (其中合法的运算符包括:+、-、*、/)。

输出描述:

输出为一行。

如果操作数和运算符号均合法,则输出一个表达式,操作数1运算符操作数2=运算结果,各数小数点后均保留4位,数和符号之间没有空格。


如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。

如果操作数2等于0.0,则输出“Wrong!Division by zero!”。

示例1

输入:1.0+3.0

输出:1.0000+3.0000=4.0000

示例2

输入:1.0;4.0

输出:Invalid operation!

示例3

输入:44.0/0.0

输出:Wrong!Division by zero!

#include<stdio.h>
int main()
{
	double x1 = 0;
	double x2 = 0;
	char ch = 0;
    scanf("%lf%c%lf",&x1,&ch,&x2);
	switch (ch)
	{
	case '+':
		printf("%.4lf+%.4lf=%.4lf",x1,x2,x1 + x2);break;
	case '-':
		printf("%.4lf-%.4lf=%.4lf",x1,x2,x1 - x2);break;
	case '*':
		printf("%.4lf*%.4lf=%.4lf",x1,x2,x1 * x2);break;
	case '/':
		if (x2 == 0)
        {
            printf("Wrong!Division by zero!");
            break;
        }
		else
        printf("%.4lf/%.4lf=%.4lf",x1,x2,x1 / x2);break;
	default:
		printf("Invalid operation!");break;
	}
    return 0;
}

5.BC140 杨辉三角

描述

KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他解答。杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。其性质包括:每行的端点数为1, 一个数也为1;每个数等于它左上方和上方的两数之和。

输入描述:

第一行包含一个整数数n。 (1≤n≤30)

输出描述:

包含n行,为杨辉三角的前n行,每个数输出域宽为5。

示例1

      输入:6

   输出: 1
          1    1
          1    2    1
          1    3    3    1
          1    4    6    4    1
          1    5   10   10    5    1
#include <stdio.h>
#define N 30
int main()
{
    int i = 0, j = 0, k = 0, n = 0;
       int a[N][N];          //定义二维数组a[14][14]
        scanf("%d", &n);
    for (i = 1;i <= n;i++)
        a[i][1] = a[i][i] = 1;            //两边的数令它为1,因为现在循环从1开始,就认为a[i][1]为第一个数
    for (i = 3;i <= n;i++)
        for (j = 2;j <= i - 1;j++)
            a[i][j] = a[i - 1][j - 1] + a[i - 1][j];  //除两边的数外都等于上两顶数之和
    for (i = 1;i <= n;i++) 
    {
        for (j = 1;j <= i;j++)            //j<=i的原因是不输出其它的数,只输出我们想要的数
            printf("%5d", a[i][j]);
        printf("\n");                     //当一行输出完以后换行继续下一行的输出
    }
    return 0;
}

后面还会精选一些好题,有用就点个赞吧,感谢支持。

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

北冥有鱼-.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值