【C语言】牛客网刷题训练-2

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 【C语言】牛客网刷题训练-2

(入门)BC6-小飞机_牛客题霸_牛客网 (nowcoder.com)

解析:

  1. 严格按照合适去打印就行。
  2. 注意*后边的空格可不可以不打印?(无影响,加了空格更加美观)

参考代码:

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

(简单)BC8-十六进制转十进制_牛客题霸_牛客网 (nowcoder.com)

解析:

本题考查的是 %d 的格式控制指定域宽。

代码参考:

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

解析:

本题的重点是要严格按照题目要求的格式,输出 2 行,先打印字符串,再打印字符串长度。这里就要控制好格式,写法有多种。

代码参考:主要区别是\n和printf("Hello world!")的位置

//代码1
#include <stdio.h>
 
int main()
{
    int ret = printf("Hello world!");
    printf("\n");
    printf("%d\n", ret);
    return 0;
}
//代码2
#include <stdio.h>
int main()
{
    printf("\n%d\n", printf("Hello world!"));//Hello world打印完之后,换行,再返回12
    return 0;
}

补:

解析:

  1. 这个题需要注意对格式的指定。
  2. 因为题目中规定的学号的范围满足int类型(-2147483648——2147483647),所以可以用int类型来表示学号。
  3. 精度要求高用double;
    精度要求不高用float。

参考代码:

#include <stdio.h>
int main()
{
    int id = 0;
    float score_c = 0.0;
    float score_math = 0.0;
    float score_eng = 0.0;
    //输入
    scanf("%d;%f,%f,%f", &id, &score_c, &score_math, &score_eng);
    //输出
    printf("The each subject score of No. %d is %.2f, %.2f, %.2f.",
           id, score_c, score_math, score_eng);
    return 0;
}

(简单)BC35-判断字母_牛客题霸_牛客网 (nowcoder.com)

解析:

  1. 本地是多组输入,一定要注意循环输入的问题
  2. 字符的判断可以自己写,也可以借助于库函数,需要熟悉库函数都有哪些。

isalpha()函数 - 用来专门判断一个字符是不是字母 —— 是字母返回非0,不是字母返回0。

参考代码:

#include <stdio.h>
//代码1
int main()
{
    int ch = 0;
    //多组输入
    while((ch=getchar()) != EOF)
   {
        //判断并输出
        if((ch>='a' && ch<='z') || (ch>='A' && ch<='Z'))
            printf("YES\n");
        else
            printf("NO\n");
        getchar();//处理\n
   }     
    return 0;
}
//代码2
#include <ctype.h>//isalpha()函数需要用到该头文件
int main()
{
    int ch = 0;
     //多组输入
    while((ch=getchar()) != EOF)
   {
        //使用库函数判断并输出
        if(isalpha(ch))
            printf("YES\n");
        else
            printf("NO\n");
        getchar();//处理\n
   }     
    return 0;
}

(简单)BC12-字符圣诞树_牛客题霸_牛客网 (nowcoder.com)

解析

  1. 每一行的输出是前边空格,后边1。
  2. 这道题的难点就是精确的控制空格的个数和1的个数。(理清楚思路再敲代码)

参考代码:

#include <stdio.h>
int main()
{
    //输入一个字符
    char ch = 0;
    scanf("%c",&ch);
    //输出圣诞树
    int i = 0;
    //每循环一次,打印一行
    //每一行由两部分组成,空格和字符
    for(i=0; i<5; i++)
   {
        //处理一行
        //空格
        int j = 0;
        for(j=0; j<5-i-1; j++)
       {
            printf(" ");
       }
        //字符
        for(j=0; j<=i; j++)//第一行打印一个字符,第二行打印两个字符,以此类推
       {
            printf("%c ", ch);
       }
        printf("\n");//一行打印完后换行
   }
    return 0;
}

(简单)BC13-ASCII码_牛客题霸_牛客网 (nowcoder.com)

解析:

这里得先了解清楚 ASCII 编码。如果采用 ASCII 编码,每个字符都有一个对应的数字,这个数字被称为这个字符的ASCII 码,如果把这个数字按照 %c 打印,打印的就是字符。

参考代码:

#include <stdio.h>
int main()
{
    char arr[] = {73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116 , 33};
    //arr是数组,数组是用来访问下标的
    int i = 0;
    //计算数组的元素个数
    int sz = sizeof(arr)/sizeof(arr[0]);
    //循环遍历输出每一个元素
    for(i=0; i<sz; i++)
   {
        //%c 控制打印字符
        printf("%c", arr[i]);//每个字符不要隔开
   }
    return 0;
}

(简单)BC14-出生日期输入输出_牛客题霸_牛客网 (nowcoder.com)

解析:

这道题的难点在于如何按照指定域宽读取数据,如何按照指定格式打印数据。

参考代码:

#include <stdio.h>
int main()
{
    int year=0;
    int month = 0;
    int date = 0;
    //按照格式输入
    scanf("%4d%2d%2d", &year, &month, &date);//%4d就是读取4位整数
    //输出
    printf("year=%4d\n", year);
    printf("month=%02d\n", month);//输出不够2位时,左边拿0填充
    printf("date=%02d\n", date);
    
    return 0;
}

(简单)BC29-2的n次方计算_牛客题霸_牛客网 (nowcoder.com)

解析:

  1. 本题为多组输入,要使用循环输入。
  2. 注意<<(左移操作符的使用,左移一位有乘2的效果,左移n位有乘2^n的效果)。

参考代码:

#include <stdio.h>
int main()
{
    int n = 0;
    //多组输入 - 整型
    while(scanf("%d", &n) != EOF)
   {
        //2的n次方计算
        printf("%d\n", 1<<n);//移动的是二进制位
   }
    return 0;
}

(简单)BC15-按照格式输入并交换输出_牛客题霸_牛客网 (nowcoder.com)

解析:

输入和输出格式的控制,如果格式控制串中有非格式字符则输入时也要输入该非格式字符。

参考代码:

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

(简单)BC16-字符转ASCII码_牛客题霸_牛客网 (nowcoder.com)

解析:

直接按照%d打印,就是字符对应的ASCII码。

参考代码:

#include <stdio.h>
int main()
{
    char ch = 0;
    //输入(两种方式)
    //ch = getchar();//第一种方式
    scanf("%c", &ch);//第二种方式
    printf("%d\n",ch);
    return 0;
}

(入门)BC17-计算表达式的值_牛客题霸_牛客网 (nowcoder.com)

解析:

  1. 按照操作符的优先级直接设计表达式,计算输出就行。
  2. 数学中的 × 对应计算机中的 * , ÷ 对应的 / 。

参考代码:

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

(简单)BC18-计算带余除法_牛客题霸_牛客网 (nowcoder.com)

解析:

掌握 %(取模操作符) 和 /(除法操作符)两个操作符的使用,按照格式输出就行。

参考代码:

int main()
{
    int a = 0;
    int b = 0;
    scanf("%d %d", &a, &b);
    int m = a/b;// / - 除法操作符 - 得到的是商
    int n = a%b;// % - 取余(取模)操作符 - 得到的是余数
    printf("%d %d\n", m, n);
    
    return 0;
}


相关文章
|
4月前
|
存储 C语言
【C语言】基础刷题训练4(含全面分析和代码改进示例)
【C语言】基础刷题训练4(含全面分析和代码改进示例)
|
2月前
|
机器学习/深度学习 编译器 C语言
C语言刷题(中)(保姆式详解)
C语言刷题(中)(保姆式详解)
19 0
|
4月前
|
C语言
【C语言刷题训练】——第7节(含代码与分析思路)
【C语言刷题训练】——第7节(含代码与分析思路)
|
4月前
|
测试技术 C语言 C++
【C语言刷题训练——6】鹏哥C语言刷题训练营笔记,含代码讲解改进
【C语言刷题训练——6】鹏哥C语言刷题训练营笔记,含代码讲解改进
|
4月前
|
存储 C语言
【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)
【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)
|
6月前
|
C语言
C语言刷题(函数)
C语言刷题(函数)
|
6月前
|
C语言
C语言刷题(数组)
C语言刷题(数组)
|
6月前
|
存储 C语言
【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m
【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m
|
6月前
|
C语言
C语言刷题(循环结构程序设计)
C语言刷题(循环结构程序设计)
|
25天前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
49 10