C语言刷题——“C”

news2024/12/23 13:00:59

各位CSDN的uu们你们好呀,今天,小雅兰要巩固一下之前学过的知识,那么,最好的复习方式就是刷题啦,现在,我们就进入C语言的世界吧

从最简单的开始噢 完完全全零基础都能看懂 题目来源于牛客网

编程语言初学训练营_在线编程+题解_牛客题霸_牛客网


BC1-实践出真知

BC2-我是大V

BC3-有容乃大

BC6-小飞机

BC7-缩短二进制

BC8-十六进制转十进制

BC9-printf的返回值

BC10-成绩输入输出

BC11-学生基本信息输入输出

BC12-字符圣诞树

BC13-ASCII码

BC14-出生日期输入输出

BC15-按照格式输入并交换输出

BC16-字符转ASCII码

BC17-计算表达式的值

BC18-计算带余除法

BC19-反向输出一个四位数

BC28-大小写转换

BC29-2的n次方计算

BC35-判断字母


#include <stdio.h>

int main() 
{
    printf("Practice makes perfect!\n");
    return 0;
}

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

 在C语言中,以.c为后缀的文件名就是我们的源文件,以.h为后缀的文件名就是头文件

 printf是一个库函数,是为输出操作,必须得引入头文件stdio.h

写主函数,main函数是程序的入口,代码是从main函数的第一行开始执行的!

一个工程中,有且仅有一个main函数

运行:[Fn]+Ctrl+F5   VS

如果执行的结果一闪而过了,那么就要设置项目属性,让执行结果停留在屏幕上

#include <stdio.h>


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

这道题目还有另外一种写法

#include <stdio.h>

int main()
{
    //一行输出的效果

    printf("v   v\n v v\n v\n");
    return 0;
}

这个题也是没有输入要求的题目,所以相对比较简单。

题目中只要能够找到输出的规律和掌握 \n的使用就没问题。

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

#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;
}

 计算机中的单位:

这类入门的题目基本都是没有输入操作的。

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

sizeof 是C语言的一个单目操作符,用来计算不同类型数据所占内存空间的大小,单位是字节。

#include <stdio.h>

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

  严格按照合适的图案去打印就行了

#include <stdio.h>

int main()
{
    printf("0%o 0X%X", 1234, 1234);
    return 0;
}

根据这道题目的备注可知,这个题目还有一种表现形式

#include <stdio.h>

int main() 
{
    int a=1234;
    printf("%#o %#X",a,a);
    return 0;
}

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

注意:还是严格按照题目要求的格式输出,才能保证正确性。  

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

#include <stdio.h>

int main() 
{
    int a=0xABCDEF;
    printf("%15d",a);
    return 0;
}

printf函数返回的是:打印在屏幕上的字符的个数 

#include <stdio.h>

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

}

在这里,不能随便在Hello world!后面加\n,因为:\n也算一个字符,最后结果就不准确

这个题目还有更简洁的写法

#include <stdio.h>

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

更详细地请看我的博客

函数——“C”_认真学习的小雅兰.的博客-CSDN博客

 函数递归+青蛙跳台阶——“C”_认真学习的小雅兰.的博客-CSDN博客

#include <stdio.h>

int main()
{
    int score1=60;
    int score2=80;
    int score3=90;
    scanf("%d %d %d",&score1,&score2,&score3);
    printf("score1=%d,score2=%d,score3=%d",score1,score2,score3);
    return 0;
}

#include <stdio.h>

int main() 
{
    int id=0;
    float C=0.0;
    float math=0.0;
    float English=0.0;
    scanf("%d;%f,%f,%f",&id,&C,&math,&English);
    printf("The each subject score of No. %d is %.2f, %.2f, %.2f.\n",id,C,math,English);
    return 0;
}

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

浮点数打印要指定小数点后边的位数为2位。

小数在内存中有可能不能精确保存!

小雅兰就吃了这个题目的亏

#include <stdio.h>

int main() 
{
    char ch='0';
    scanf("%c",&ch);
    int i=1;
    int j=0;
    int m=0;
    for(i=1;i<=5;i++)
    {
        for(j=5-i;j>0;j--)
        {
            printf(" ");
        }
        for(m=0;m<i;m++)
        {
            printf("%c ",ch);
        }
        printf("\n");

    }
    return 0;
}

每一行的输出是前边空格,后边 1

本题的难点就是精确的控制空格的个数和 1的个数。

 

#include <stdio.h>

int main()
{
    int arr[]={73,32,99,97,110,32,100,111,32,105,116,33};
    //arr是数组,数组是用下标来访问的!
    //计算数组元素的个数
    int sz=sizeof(arr)/sizeof(arr[0]);
    int i=0;
    for(i=0;i<sz;i++)
    {
        printf("%c",arr[i]);
    }
    return 0;
}

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

#include <stdio.h>

int main() 
{
    int year=0;
    int month=0;
    int date=0;
    scanf("%4d%2d%2d",&year,&month,&date);
    //%4d就是读取4位整数
    //输出不够2位时,左边拿0填充
    printf("year=%d\nmonth=%02d\ndate=%02d\n",year,month,date);
    return 0;

}

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

#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\n",a, b);
}

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

 

#include <stdio.h>

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

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

#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;
}

 按照操作符的优先级直接设计表达式,计算输出就行。

 

#include<stdio.h>
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;
}

掌握 % 和 / 两个操作符的使用,按照格式输出就行。

#include <stdio.h>

int main()
{
    int n = 0;
    //输入数据

    scanf("%d", &n);
    //获取每一位

    while(n)
    {
        printf("%d", n%10);
        n /=10;
    }
    return 0;
}

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

 在这道题目中,我们要知道两个函数——getchar、putchar

 

getchar——获取一个字符、输入一个字符

putchar——打印一个字符、输出一个字符 

多组输入——一般使用while循环,本题就是while((ch=getchar())!=EOF)

EOF——end of file——文件结束标志——通常是为文件的末尾

然后,这道题目与ASCII码值也有密切的关系,大写字母的ASCII码值加上32就是小写字母的ASCII码值

#include <stdio.h>
int main()
{
    int ch=0;
    while((ch=getchar())!=EOF)
    {
        putchar(ch+32);
        printf("\n");
        getchar();//读取\n
    }
    return 0;
}

getchar 清理缓冲区的问题,这里得理解输入缓冲区的问题。getchar拓展_认真学习的小雅兰.的博客-CSDN博客

#include <stdio.h>

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

 << 左移操作符 移动的是二进制位 向左移动多少位 就表示2的几次方

int a=1;

a<<1;

//00000000000000000000000000000001

//00000000000000000000000000000010——左移一位 2^1

a<<2;

//00000000000000000000000000000001

//00000000000000000000000000000100——左移两位 2^2

 

#include <stdio.h>

int main()
{
    char 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;
}

这个题目还有另外一种写法,使用我们的库函数

isalpha——是专门用来判断一个字符是不是字母的

是字目就返回非0的值,不是字母就返回0

#include<stdio.h>
#include<ctype.h>
int main()
{
    int ch = 0;
    while((ch=getchar()) != EOF)
   {
        //使用库函数

        if(isalpha(ch))
            printf("YES\n");
        else

            printf("NO\n");
        getchar();
   }     
    return 0;
}

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

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


好啦,小雅兰今天的复习就到这里啦,后续还会继续复习噢

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/344299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序开发笔记 进阶篇⑧——Java后端推送订阅消息 | HTTPS调用,消息卡片,跳转页面

文章目录一、前言二、接口说明三、access_token 获取四、消息模板五、参数page六、参考一、前言 微信小程序开发笔记——导读 微信小程序开发笔记 进阶篇⑦——小程序订阅消息 | 发起订阅&#xff0c;获取当前设置 小程序前端做好消息订阅的准备工作Java后端将数据按照消息模板…

SpringBoot依赖管理特性

我们注意到&#xff0c;在项目的 pom.xml 配置文件中&#xff0c;引入的依赖 spring-boot-starter-web 并没有指定其版本号 而在 maven 依赖中却可以发现其版本号为 2.3.4.RELEASE&#xff0c;这说明 SpringBoot 自动帮我们引入了对应版本的依赖&#xff0c;那么在哪儿可以找到…

ChatGPT横空出世|超强大功能写代码、写情书、写文章、做设计火爆全网

会被人工智能替代的行业 不是孩子未来的发展方向 因为我们在有限的时间里 无法穷尽对技术的学习 那么人工智能无法替代的是什么&#xff1f; 最近火热的ChatGPT&#xff0c;是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型&#xff0c;它能够通过学习和理解人…

新来一个卷王,天天加班到2点,太让人崩溃......

在程序员职场上&#xff0c;什么样的人最让人反感呢&#xff1f;是技术不好的人吗&#xff1f;并不是。技术不好的同事&#xff0c;我们可以帮他。是技术太强的人吗&#xff1f;也不是。技术很强的同事&#xff0c;可遇不可求&#xff0c;向他学习还来不及呢。真正让人反感的&a…

第39天| 70. 爬楼梯 (进阶)、LeetCode322. 零钱兑换、LeetCode279.完全平方数

1.题目描述&#xff1a; 给定n阶台阶的楼梯&#xff0c;一次能跳m阶问跳到楼顶有多少种方法&#xff1f;假设m可以是1~9任意一种&#xff0c;weight[i] {1,2,3,4,5,6,7,8,9} 解法&#xff1a; 1.五步曲&#xff1a; ①将本题转换成背包问题---即给定容量为n的背包&#xff0c…

MySQL系统变量和自定义变量

1 系统变量1.1 查看系统变量可以使用以下命令查看 MySQL 中所有的全局变量信息。SHOW GLOBAL VARIABLES; MySQL 中的系统变量以两个“”开头。global 仅仅用于标记全局变量&#xff1b;session 仅仅用于标记会话变量&#xff1b;首先标记会话变量&#xff0c;如果会话变量不存在…

TCP实现可靠传输的实现

TCP实现可靠传输的实现 目录TCP实现可靠传输的实现ARQ协议停止等待协议&#xff08;古老&#xff09;连续ARQ协议累计重传&#xff08;回退N帧的ARQ协议&#xff09;缓存确认&#xff08;选择重传ARQ协议&#xff09;超时重传的时间选择TCP的流量控制零窗口探测报文段Nagle算法…

4.8 注解与自定义注解

文章目录1.概述2.注解的分类2.1 JDK注解2.2 元注解2.2.1 Target ElementType…2.2.2 Retention RetentionPolicy…3 自定义注解1.概述 在注解刚出现时&#xff0c;曾受到过好多程序员的鄙夷&#xff0c;觉得这就是多此一举的操作&#xff1b; 但随着时间的推移&#xff0c;越…

电子技术——电流镜负载的差分放大器

电子技术——电流镜负载的差分放大器 目前我们学习的差分放大器都是使用的是差分输出的方式&#xff0c;即在两个漏极之间获取电压。差分输出主要有以下优势&#xff1a; 降低了共模信号的增益&#xff0c;提高了共模抑制比。降低了输入偏移电压。提升了差分输入的增益。 由于…

【单目标优化算法】食肉植物优化算法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

vant 4 正式发布,支持暗黑主题,那么是如何实现的呢

2022年10月25日首发于掘金&#xff0c;现在同步到公众号。11. 前言大家好&#xff0c;我是若川。我倾力持续组织了一年多源码共读&#xff0c;感兴趣的可以加我微信 lxchuan12 参与。另外&#xff0c;想学源码&#xff0c;极力推荐关注我写的专栏《学习源码整体架构系列》&…

八股文总是忘?一张图牢记JVM内存结构|金三银四系列

金三银四又来啦&#xff01;八股文还是得复习起来&#xff0c;最近准备把一些常见的八股文知识点聊聊。本文详解了JVM内存结构和各个部分详细内容&#xff0c;应付面试绰绰有余&#xff01;点击上方“后端开发技术”&#xff0c;选择“设为星标” &#xff0c;优质资源及时送达…

visual studio2022配置opencv

标题&#xff1a;在vs下配置使用opencv 流程&#xff1a; 1、下载安装opencv 2、添加环境变量 3、vs中配置属性 4、使用 5、可能遇到的报错和解决 1、 下载安装opencv 官网下载地址&#xff1a; https://opencv.org/releases/ 我这里是windows环境&#xff0c;所以选择点击w…

Java数据结构之优先级队列

前言总是忘了优先队列的一些应用&#xff0c;其实这都是很基础的了。为了再加强印象&#xff0c;抄一遍吧。PriorityQueue简介PriorityQueue&#xff0c;即优先级队列。优先级队列可以保证每次取出来的元素都是队列中的最小或最大的元素&#xff08;Java优先级队列默认每次取出…

微信小程序 if语法、for循环 条件渲染、列表渲染等讲解

这篇文章我想给大家学习的就是如何使用 if 去判断 组件的是显示和隐藏&#xff0c;如何使用for循环来渲染列表等重复的内容。 1.if语法的使用 在小程序中&#xff0c;我们可以使用wx:if"{{条件}}"来判断是否需要渲染该代码块 也可以用 wx:elif 和wx:else 来添加 el…

【java】Spring Boot -- Spring的IOC实现原理

文章目录IOC定义理解IOC不使用IOC&#xff1a;使用IOC&#xff1a;使用IOC的好处IOC提供被依赖对象的方式构造器注入setter 方法注入接口方式注入简单模拟IOC总结IOC定义 IoC 全称为 Inversion of Control&#xff0c;翻译为 “控制反转”&#xff0c;它还有一个别名为 DI&…

【Selenium】十分钟手把手带你学会WebDriver API

目录 1、定位元素【8种】 2、操作测试对象 3、添加等待 4、弹窗类型 5、浏览器的操作 6、键盘事件 7、选择框 8、上传文件 1、定位元素【8种】 元素定位是自动化测试的核心&#xff0c;想要去操作一个对象&#xff0c;第一步就是需要我们先去识别这个对象。每个对象就会…

全民ChatGPT热:快来解锁你的“全能网友”

前 言 2021年11月30日&#xff0c;OpenAI推出人工智能聊天原型ChatGPT&#xff0c;赚足了眼球&#xff0c;在AI界引发了类似AIGC让艺术家失业的大讨论。 据报道&#xff0c;ChatGPT在开放试用的短短几天&#xff0c;就吸引了超过 100 万互联网注册用户。并且社交网络流传出各种…

html5标签

图片&#xff1a;image 主要属性&#xff1a; src&#xff1a;源属性的值是图像的 URL 地址。 alt&#xff1a;用来为图像定义一串预备的可替换的文本。 注意事项&#xff1a; 注意: 假如某个 HTML 文件包含十个图像&#xff0c;那么为了正确显示这个页面&#xff0c;需要加…

速通Spring

尚硅谷2023最新版Spring6课程_bilibili 1 Spring 【强制】Spring是什么&#xff1f; 1) Spring是一款主流的Java EE轻量级开源框架。 轻量级&#xff1a;体积很小&#xff0c;且不需要依赖于其他组件。 2) 狭义的Spring。 Spring Framework。 3) 广义的Spring。 以Spring F…