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),位…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
FTP(File Transfer Protocol)本身是一个基于 TCP 的协议,理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况,主要原因包括: ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...