首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【C语言刷题】第二天:加量加餐,代码入门,熟悉IO模式

【C语言刷题】第二天:加量加餐,代码入门,熟悉IO模式

作者头像
艾莉丝努力练剑
发布2025-11-13 09:54:03
发布2025-11-13 09:54:03
1720
举报
文章被收录于专栏:C / C++C / C++

🔥个人主页艾莉丝努力练剑 ❄专栏传送门:《C语言》《数据结构与算法》C语言刷题12天IO强训 🍉学习方向:C/C++方向 ⭐️人生格言:为天地立心,为生民立命,为往圣继绝学,为万世开太平



前言:上一篇博客带大家刷了一些入门的题目,本篇文章我们将继续练习下面的题目。鉴于博主能力有限,本专栏适用于代码小白刷题,大佬们多多包涵(抱拳)!

正文

像本文这样需要刷的题目量较多的时候,文章中就只放题目的截图啦。

一、小飞机

小飞机

这道题不用多想,严格按照合适去打印就行了。值得注意的是*后边的空格可不可以不打印?可以,只要写上"\n",编译器就会默认后面打印空格。

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

int main() 
{
    printf("     **    \n");
    printf("     **    \n");
    printf("************\n");
    printf("************\n");
    printf("    *  *   \n");
    printf("    *  *   \n");
    return 0;
}

二、十六进制转十进制

十六进制转十进制

本题考查的就是%d的格式控制域宽指定,题目指定宽度m为15,我们就严格按照题目要求来:

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

int main()
{
    printf("%15d\n",0XABCDEF);
    return 0;
}

三、 printf的返回值

printf的返回值

本题重点在于要严格按照题目要求的格式,输出2行,先打印字符串,再打印字符串长度。这里就要控制好格式,写法相对比较多,博主展示两种:

写法(1):

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

int main() 
{
    int ret = printf("%s","Hello world!");
    printf("\n");
    printf("%d\n",ret);
    return 0;
}

写法(2):

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    printf("\n%d\n", printf("Hello world!"));
    return 0;
}

关于函数的参数和返回值,大家可以看看博主之前的文章,也可以去我们的老朋友cpprefrence.c那里去看看,传送门大家直接去本文结尾找上篇文章的链接。就能找到老朋友啦。

四、 学生基本信息输入输出

学生基本信息输入输出

这个题的最大坑,也是格式的指定,还有空格的控制,必须和题目要求的输出结果一致,比如:of的后边有2个空格。浮点数打印要指定小数点后边的位数为2位。

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

int main()
{
   int number = 0;
   float score_c = 0.0;
   float score_math = 0.0;
   float score_Eng = 0.0;
   scanf("%d;%f,%f,%f", &number, &score_c, &score_math, &score_Eng);
   printf("The each subject score of No. %d is %.2f, %.2f, %.2f.\n", \
         number, score_c+0.001, score_math, score_Eng);
   return 0;
}

五、 判断字母

判断字母

1.、本地是多组输入,一定要注意循环输入的问题;

2.、字符的判断可以自己写,也可以借助于库函数,要熟悉库函数都有哪些。

字符串相关的内容,

字符函数和字符串函数(一):字符分类函数、字符转换函数、strlen的使用和模拟实现、strcpy的使用和模拟实现、strcat的使用和模拟实现、strcmp的使用和模拟实现

字符函数和字符串函数(二):strncpy、strncat、strncmp函数的使用、strstr的使用和模拟实现、strtok函数的使用、strerror函数的使用

写法(1) :

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

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

写法(2):

代码语言:javascript
复制
int main()
{
    int ch = 0;
    while((ch=getchar()) != EOF)
   {
        //使用库函数
        if(isalpha(ch))
            printf("YES\n");
        else
            printf("NO\n");
        getchar();
   }     
    return 0;
}

六、字符圣诞树

字符圣诞树

每一行的输出是前边空格后边1,本题的难点就是精确的控制空格的个数和1的个数 。

代码语言:javascript
复制
#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;
}

七、ASCII码

ASCII码

这里得了解清楚ASCII编码,如果采用ASCII编码,每个字符都有一个对应的数字,这个数字被称为这个 字符的ASCII码,如果把这个数字按照%c打印,打印的就是字符。ASCII码博主在之前的文章C语言常见概念、数据类型以及变量的一些重要知识点总结中介绍过,大家可以看看。

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

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

八、出生日期输入输出

出生日期输入输出

和第二题同理。本地的难点在于如何按照指定域宽读取数据,如何按照指定格式打印数据。

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

int main() 
{
    int year = 0;
    int month = 0;
    int date = 0;
    scanf("%4d%2d%2d\n",&year,&month,&date);
    printf("year=%d\n",year);
    printf("month=%02d\n",month);
    printf("date=%02d\n",date);
    return 0;
}

九、 2的n次方计算

2的n次方计算

本题要求多组输入,要使用循环输入,需要注意<<这个移位操作符(左移操作符的使用,左移一位有乘2的效果) ,移位操作符博主在之前的C语言专栏也介绍过了,传送门放在下面了:掌握操作符(一):操作符的分类,二进制和进制转换,原码、反码、补码,移位操作符,位操作符:&、| 、^ 、~,单目操作符,逗号表达式,下标访问[ ]、函数调用()

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

int main() 
{
    int num = 0;
    int n = 0;
    while(scanf("%d\n",&n)!= EOF)
    {
        printf("%d\n",1<<n);
    }
    return 0;
}

十、按照格式输入并交换输出

按照格式输入并交换输出

本题的关键在于输入和输出格式的控制,如果格式控制串中有非格式字符则输入时也要输入该非格式字符。 输入输出格式可以去看这篇文章——单目操作符++、--的前置后置知识点总结,printf函数的一些知识点

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

int main() 
{
    int a = 0;
    int b = 0;
    scanf("a=%d,b=%d",&a,&b);
    int c = a;
    a = b;
    b = c;
    printf("a=%d,b=%d",a,b);
    return 0;
}

十一、字符转ASCII码

字符转ASCII码

本题非常简单,我们直接按照%d打印,就是字符对应的ASCII码值 。

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

int main() 
{
    char ch = 0;
    scanf("%c\n",&ch);
    printf("%d\n",ch);
    return 0;
}

十二、计算表达式的值

计算表达式的值

本题我们按照操作符的优先级直接设计表达式,计算输出就行。对操作符的优先级印象不深的友友们可以去看博主的这篇文章:掌握操作符(二):结构成员访问操作符,操作符的属性:优先级、结合性,表达式求值

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

int main() 
{
    int a = 40;
    int c = 212;
    int num = (-8+22)*a-10+c/2;
    printf("%d\n",num);
    return 0;
}

十三、计算带余除法

计算带余除法

本题也很简单,我们只要掌握% /两个操作符的使用,严格按照格式输出就行。 介绍这两个操作符我们在前文中也多次引用:变量的一些知识点整理(续)、算术操作符、赋值操作符:=和复合赋值、单目操作符以及强制类型转换的知识点总结

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

int main() 
{
    int a = 0;
    int b = 0;
    scanf("%d %d",&a,&b);
    int ret = a/b;
    int num = a%b;
    printf("%d %d",ret,num);
    return 0;
}

结尾

往期回顾:

【C语言刷题】第一天:简单代码入门,熟悉IO模式

结语:本篇文章到这里就结束了,希望对友友们有所帮助。本文的代码相对于之后的代码题还是很简单的,小白也能直接上手操作,后面的代码题难度上整体是逐渐递增的,博主控制了难度,这样友友们能比较丝滑地上手敲下去。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正文
    • 一、小飞机
    • 二、十六进制转十进制
    • 三、 printf的返回值
    • 四、 学生基本信息输入输出
    • 五、 判断字母
    • 六、字符圣诞树
    • 七、ASCII码
    • 八、出生日期输入输出
    • 九、 2的n次方计算
    • 十、按照格式输入并交换输出
    • 十一、字符转ASCII码
    • 十二、计算表达式的值
    • 十三、计算带余除法
  • 结尾
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档