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

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

1.(入门) BC1-实践出真知_牛客题霸_牛客网 (nowcoder.com)

解析:

本题是一个没有输入要求的题目,只考察输入,所以只需要准确无误的输出结果就行了。

参考代码:

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

2. (入门)BC2-我是大V_牛客题霸_牛客网 (nowcoder.com)

解析:

这个题也是 没有输入要求 的题目。题目中只要能够找到输出的规律和掌握 \n 的使用就没问题。

这里简单提及:转义字符,可以做一个拓展。

参考代码:

#include <stdio.h>
//代码1
int main()
{
    printf("v   v\n");
    printf(" v v\n");
    printf(" v\n");
    return 0;
}
//代码2
#include <stdio.h>
int main()
{
    //一行输出的效果
    printf("v   v\n v v\n v\n");
    return 0;
}

两种思路,结果一致。

3.(简单) BC3-有容乃大_牛客题霸_牛客网

解析:

将题目中所给的 ?替换成%d,同时要记得换行(避免格式错误!)

本题的关键是要掌握C语言的 sizeof 这个操作符。

sizeof C 语言的一个单目操作符, 用来计算不同数据类型所占内存空间的大小 ,运算对象可以是具体的数据类型(如:变量名)或类型,以 字节为单位返回运算对象的大小

参考代码

#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));
    
    return 0;
}

测试结果:

补:

解析:

需要我们掌握对个各种数据的格式控制。

参考代码:

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

测试结果:

补:

% c - 字符

% hd - 整形

% d - 整形

% s - 字符串

% f - 单精度浮点数

% lf - 双精度浮点数

% p - 地址格式

... ...

(注:严格按照题目要求的格式输出,才能保证正确性)

格式参考https://zh.cppreference.com/w/c/io/fscanf

5. (简单)BC19-反向输出一个四位数_牛客题霸_牛客网 (nowcoder.com)

解析:

这里得掌握操作符 % (模) /(除) 的基本使用和特点。其次是循环的使用。

% (模)后得到的是余数;

 /(除) 后得到的是商。

参考代码:

#include <stdio.h>
int main()
{
    int n = 0;
    //输入数据
    scanf("%d", &n);
    //获取每一位
    while(n)
   {
        printf("%d", n%10);
        n /=10;
   }
    return 0;
}

解析:

  1. 多组数据输入的问题。
  2. 清楚ASCII码表中一些常用字符对应的ASCII值。(计算机中存储的是二进制)

ASCII码一览表,ASCII码对照表 (biancheng.net)

    3.getchar清理缓冲区的问题,这里得理解输入缓冲区的问题。

getchar() - EOF:

参考代码:

//代码1-这个代码对吗?(思考)
#include <stdio.h>
int main()
{
    int ch = 0;
    //循环数据输入
    //EOF - end of file -- 文件结束标志 -- 通常为文件的末尾
    while((ch=getchar()) != EOF)
   {
       printf("%c\n", (ch+32));
   }
    return 0;
}
//代码2-正确的代码实现
#include <stdio.h>
int main()
{
    int ch = 0;
    //循环数据输入
    while((ch=getchar()) != EOF)
   {
        //简化成一行
       printf("%c\n", (ch+32));
        
        //注释是两行的写法
        //putchar(ch+32);
        //printf("\n");
 
       getchar();//用来处理多余的\n字符
   }
    return 0;
}


相关文章
|
3月前
|
存储 C语言
【C语言】基础刷题训练4(含全面分析和代码改进示例)
【C语言】基础刷题训练4(含全面分析和代码改进示例)
|
1月前
|
机器学习/深度学习 编译器 C语言
C语言刷题(中)(保姆式详解)
C语言刷题(中)(保姆式详解)
14 0
|
3月前
|
C语言
【C语言刷题训练】——第7节(含代码与分析思路)
【C语言刷题训练】——第7节(含代码与分析思路)
|
3月前
|
测试技术 C语言 C++
【C语言刷题训练——6】鹏哥C语言刷题训练营笔记,含代码讲解改进
【C语言刷题训练——6】鹏哥C语言刷题训练营笔记,含代码讲解改进
|
3月前
|
存储 C语言
【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)
【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)
|
5月前
|
C语言
C语言刷题(函数)
C语言刷题(函数)
|
5月前
|
C语言
C语言刷题(数组)
C语言刷题(数组)
|
5月前
|
存储 C语言
【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m
【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m
|
5月前
|
C语言
C语言刷题(循环结构程序设计)
C语言刷题(循环结构程序设计)
|
1月前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
34 3