C语言刷题——“C”
各位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");elseprintf("NO\n");getchar();} return 0;
}
1. 本地是多组输入,一定要注意循环输入的问题
2. 字符的判断可以自己写,也可以借助于库函数,要熟悉库函数都有哪些。
好啦,小雅兰今天的复习就到这里啦,后续还会继续复习噢
相关文章:

C语言刷题——“C”
各位CSDN的uu们你们好呀,今天,小雅兰要巩固一下之前学过的知识,那么,最好的复习方式就是刷题啦,现在,我们就进入C语言的世界吧 从最简单的开始噢 完完全全零基础都能看懂 题目来源于牛客网 编程语言初学训…...

【刷题】搜索——BFS:城堡问题(The Castle)
目录题目代码(Flood Fill)代码(并查集)题目 题目链接 找出房间个数——>求连通块个数 最大房间——>求最大连通块 直接用flood fill算法 注意题目的输入,例如118211182111821,则代表有西、北、南墙…...
深度学习——torch相关函数用法解析
1. torch.ones() torch.ones(*sizes, outNone) → Tensor函数功能:返回一个全为1 的张量,形状由可变参数sizes定义。 参数: sizes (int…) – 整数序列,定义了输出形状 out (Tensor, optional) – 结果张量 例子: >>> …...

ubuntu 20使用kubeadm安装k8s 1.26
步骤 机器:4核8G,root账号,可访问互联网 1、更新apt apt-get update 2、安装一些基本工具 apt-get install ca-certificates curl gnupg lsb-release net-tools apt-transport-https 3、ifconfig 获取ip,hostname获取主机名&…...

低代码开发平台|制造管理-生产过程管理搭建指南
1、简介1.1、案例简介本文将介绍,如何搭建制造管理-生产过程。1.2、应用场景先填充工序信息,再设置工艺路线对应的工序;工序信息及工艺路线列表报表展示的是所有工序、工艺路线信息,可进行新增对应数据的操作。2、设置方法2.1、表…...

python对多个csv文件进行合并(表头需一致)
之前写过python对【多个Excel文件】中的【单个sheet】进行合并,参考:点我 之前也写过python对【多个Excel文件】中的【多个sheet】进行合并,参考:点我 今天再写一个python对多个csv格式的文件进行合并的小工具 但是大家切记&am…...
Salesforce Apex调用邮件模板
正常调用无模板:mail.setToAddresses(new List<String>{user.Email});//mail.setReplyTo(444298824qq.com);//mail.setCcAddresses(null);mail.setSenderDisplayName(EOP系统);mail.setSubject(EOP通知(待审批):您有未处理的…...

windows本地开发Spark[不开虚拟机]
1. windows本地安装hadoop hadoop 官网下载 hadoop2.9.1版本 1.1 解压缩至C:\XX\XX\hadoop-2.9.1 1.2 下载动态链接库和工具库 1.3 将文件winutils.exe放在目录C:\XX\XX\hadoop-2.9.1\bin下 1.4 将文件hadoop.dll放在目录C:\XX\XX\hadoop-2.9.1\bin下 1.5 将文件hadoop.dl…...
一文教你快速估计个股交易成本
交易本身对市场会产生影响,尤其是短时间内大量交易,会影响金融资产的价格。一个订单到来时的市场价格和订单的执行价格通常会有差异,这个差异通常被称为交易成本。在量化交易的策略回测部分,不考虑交易成本或者交易成本估计不合理…...

Leetcode—移除元素、删除有序数组中的重复项、合并两个有序数组
移除元素 此题简单,用双指针方法即可, 如果右指针指向的元素不等于val,它一定是输出数组的一个元素,我们就将右指针指向的元素复制到左指针位置,然后将左右指针同时右移; 如果右指针指向的元素等于 val&…...
面试(十)大疆 安全开发 C++1面
1. 在C++开发中定义一个变量,若不做初始化直接使用会怎样? 如果该变量是一个普通变量,则如果对其进行访问,会返回一个随机值,int类型不一定为0,bool类型也不一定为false 如果该变量为一个静态变量,则初始值都是一个0; 如果该变量是一个指针,那么在后续程序运行中很…...

短信链接跳转微信小程序
短信链接跳转微信小程序1 实现方案1.1 通过URL Scheme实现1.2 通过URL Link实现1.3 通过云开发静态网站实现2 实现方案对比3 实践 URL Schema 方案3.1 获取微信access_token3.2 获取openlink3.3 H5页面(模拟短信跳转,验证ok)4 问题小节4.1 io…...

吉林电视台启用乾元通多卡聚合系统广电视频传输解决方案
随着广播电视数字化、IP化、智能化的逐步深入,吉林电视台对技术改造、数字设备升级提出了更高要求,通过对系统性能、设计理念的综合评估,正式启用乾元通多卡聚合系统广电视频传输解决方案,将用于大型集会、大型演出、基层直播活动…...

Linux常用命令1
目录1、远程登陆服务器2、文件相关(1)文件和目录属性(2)创建目录mkdir(3)删除目录rmdir(4)创建文件touch(5)删除文件或目录rm(6)ls命令…...

【C++进阶】一、继承(总)
目录 一、继承的概念及定义 1.1 继承概念 1.2 继承定义 1.3 继承基类成员访问方式的变化 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派生类的默认成员函数 五、继承与友元 六、继承与静态成员 七、菱形继承及菱形虚拟继承 7.1 继承的分类 7.2 菱形虚拟…...

AttributeError: module ‘lib‘ has no attribute ‘OpenSSL_add_all_algorithms
pip安装crackmapexec后,运行crackmapexec 遇到报错 AttributeError: module lib has no attribute OpenSSL_add_all_algorithms 直接安装 pip3 install crackmapexec 解决 通过 python3 -m pip install --upgrade openssl 或者 python3 -m pip install openssl>22.1.…...

Python实现视频自动打码功能,避免看到羞羞的画面
前言 嗨呀嗨呀,最近重温了一档综艺节目 至于叫什么 这里就不细说了 老是看着看着就会看到一堆马赛克,由于太好奇了就找了一下原因,结果是因为某艺人塌房了…虽然但是 看综艺的时候满影响美观的 咳咳,这里我可不是来教你们如何解…...

说说Knife4j
Knife4j是一款基于Swagger2的在线API文档框架使用Knife4j, 需要 添加Knife4j的依赖当前建议使用的Knife4j版本, 只适用于Spring Boot2.6以下版本, 不含Spring Boot2.6 在主配置文件(application.yml)中开启Knife4j的增强模式必须在主配置文件中进行配置, 不要配置在个性化配置文…...

Java学习笔记-03(API阶段-2)集合
集合 我们接下来要学习的内容是Java基础中一个很重要的部分:集合 1. Collection接口 1.1 前言 Java语言的java.util包中提供了一些集合类,这些集合类又称之为容器 提到容器不难想到数组,集合类与数组最主要的不同之处是,数组的长度是固定的,集合的长度是可变的&a…...
「3」线性代数(期末复习)
🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀 矩阵的秩 定义4:在mxn矩阵A中,任取k行与k列(k<m,k<n),位…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...