【手把手带你刷题】-C语言编程入门篇(一)
大家好,我是深鱼~
目录
前言:
在线OJ
<1>什么是在线OJ
<2>为啥训练在线OJ
1.实践出真知
2.我是大V
3.有容乃大
4.缩短二进制
5.反向输出一个四位数
6.大小写转换
7.小飞机
8.十六进制转十进制
9.printf的返回值
10.学生基本信息输入输出
结语:彼方尚有荣光在,少年不惧岁月长
前言:
本部分是C语言初阶部分题目,一共130题,由易到难,适于初学者学习,非初学者勿看题目链接:编程语言初学训练营_在线编程+题解_牛客题霸_牛客网 (nowcoder.com),大家一起冲呀https://www.nowcoder.com/ta/beginner-programmers-v1
在线OJ
<1>什么是在线OJ
在线判题系统(Online Judge)是一种在编程竞赛中用来测试参赛程序的在线系统
<2>为啥训练在线OJ
a.有些比赛,比如ACM之类的编程竞赛都是采用在线OJ的方式进行
b.笔试OJ化,这是未来的趋势
1.实践出真知
链接:牛客网—实践出真知
题目:
题解:
#include <stdio.h>int main()
{printf("Practice makes perfect!");return 0;
}
打印的内容建议直接复制粘贴,这样可以防止敲错(这题自己敲可能会忘了!)
对应知识点就是C语言的第一个程序:Hello World!
#include<stdio.h>是头文件的包含,stdio中的std是标准,i是输入,o是输出
main函数是程序的入口,并且一个程序中有且只有一个main函数
printf是库函数,是用来打印输出的,库函数的使用得包含头文件,它的头文件就是stdio.h
return 0是在main函数结束的返回值为0
除了第五行,其他的部分都是C语言程序固定部分,是敲代码不可缺少的部分
2.我是大V
链接:我是大V
题目:
题解1: 注意这里要用到换行符\n
#include <stdio.h>int main(){printf("v v\n");printf(" v v\n");printf(" v\n");return 0;
}
题解2:简化版:直接用一个printf函数打印
#include <stdio.h>int main()
{printf("v v\n v v\n v\n");return 0;
}
3.有容乃大
题目:
题解:
#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 long));return 0;
}
sizeof是用来计算变量或者类型所占空间的大小的一个关键字(以字节为单位)
C语言标准:sizeof(long long) >=sizeof (long) >=sizeof (int) >sizeof (short) >sizeof (char)
补充:计算机中常见单位及换算:
bit -比特位
byte -字节
KB 1byte=8bit
MB 1KB=1024byte
GB 1MB=1024KB
TB 1GB=1024MB
PB 1TB=1024GB
4.缩短二进制
链接:缩短二进制
题目:
题解1:注意怎么控制字母大小写,%x就是小写,%X就是大写
#include <stdio.h>int main()
{printf("0%o 0X%X",1234,1234);return 0;
}
题解2:用上题目提示的#
#include <stdio.h>int main()
{printf("%#o %#X",1234,1234);return 0;
}
拓展:对各种数据的格式控制
%c - 字符
%d - 整形
%s - 字符串
%f - 单精度浮点数
%lf - 双精度浮点数
%p - 地址格式
5.反向输出一个四位数
链接:反向输出一个四位数
题目:
题解:思路就是不断 -模10除10打印-
#include <stdio.h>int main()
{int a=0;scanf("%d",&a);while(a){printf("%d", a%10);a=a/10;}return 0;
}
6.大小写转换
链接:大小写转换
题目:
题解1:
#include <stdio.h>int main()
{int ch = '0';while ((ch=getchar()) != EOF){getchar();putchar(ch + 32);//大写字母的ASCII值比小写的小32printf("\n");//防止输出的字符和下次输入的字符在同一行}return 0;
}
问题1:为啥ch要定义为int类型,而不是char类型
答:getchar:输入/读取一个字符 putchar:输出一个字符(一次只能操作一个字符)
getchar()返回的是字符的ASCII值,是个整数
EOF -end of file 文件结束的标志,通常在文件的末尾,它的值为-1也为整形
问题2:为啥循环中要getchar();
答:因为getchar和键盘中间有个缓冲区,每当输入一个字符的时候,我们都会按下回车键,这也就无形之中多了一个'\n',如果没有这个getchar(),'\n'也是一个字符,在循环中也加上32,变成另一个字符,为了拿走这个字符,就需要getchar()
问题3:多组输入怎么写?
while((ch=getchar())!=EOF) {}
题解2:直接用printf()加上\n代替putchar()
#include <stdio.h>int main()
{int ch = 0;while ((ch=getchar()) != EOF){getchar();printf("%c \n",ch + 32);}return 0;
}
7.小飞机
链接:小飞机
题目:
题解: 本题主要是考查printf函数的打印
#include <stdio.h>int main(){printf(" **\n");printf(" **\n");printf("************\n");printf("************\n");printf(" * *\n");printf(" * *\n");return 0;
}
8.十六进制转十进制
链接:十六进制转十进制
题目:
题解:本题主要考查格式的输出
#include <stdio.h>int main()
{printf("%15d",0XABCDEF);//注意这里不能直接写ABCDEFreturn 0;
}
9.printf的返回值
链接:printf的返回值
题目:
题解1:
#include <stdio.h>int main(){int a=printf("Hello world!");printf("\n%d",a);return 0;
}
本题主要考查printf的返回值:打印在屏幕上字符的个数,如这题"Hello world!"就是13个字符(包括空格和感叹号),所以结果就是
注意:\n不能写在第一个printf函数中,这样printf的返回值会变成13,多了一个
题解2:简化版
#include <stdio.h>int main(){printf("\n%d\n",printf("Hello world!"));return 0;
}
拓展:这个打印的结果是什么呢
#include<stdio.h>int main()
{printf("%d", printf("%d", printf("%d", 43)));return 0;
}
答:4321(printf打印是从内层开始的,内层调用完,再进行外层,最里面的printf打印43,接着下一个printf打印上一个printf的返回值(即43的)也就是2,最后就是2的返回值,也就是1)
10.学生基本信息输入输出
题目链接:学生基本信息输入输出
题目:
题解:注意两个点
(1)scanf输入时要注意格式,看是;(分号)还是,(逗号)
(2)小数在内存中有可能不能精确保存,这题需要四舍五入,double类型不行就换float类型
(3)保留m位小数的写法:%.mf
#include<stdio.h>
int main()
{int id = 0;//学号float c_score = 0.0;float math_score = 0.0;float eng_score = 0.0;//输入scanf("%d;%f,%f,%f", &id, &c_score, &math_score, &eng_score);//输出printf("The each subject score of No. %d is %.2f, %.2f, %.2f.", id, c_score, math_score, eng_score);return 0;}
结语:彼方尚有荣光在,少年不惧岁月长
求求了,来个三连吧。
【手把手带你刷题】-C语言编程入门篇(一)相关推荐
- 东哥手把手带你刷二叉树|第三期
学算法认准 labuladong 后台回复进群一起力扣???? 读完本文,你可以去力扣解决: 652.寻找重复子树(Medium) 接前文 手把手带你刷二叉树(第一期)和 手把手带你刷二叉树(第二期) ...
- 【手把手带你刷Leetcode力扣】10.数据结构 -图
图: 顶点 邻居节点 边 度:边的数量 无向图 有向图 入度:指向该顶点的边的数量 出度:以该顶点为起点指向别的顶点的边的数量 权重图 最短路径 贝尔曼-福特算法(Bellman-Ford) 迪克斯特 ...
- 洛谷刷题C语言:潇湘の雨、分糖果、Addition、Ljeto、TRI
记录洛谷刷题C语言QAQ 「PMOI-0」潇湘の雨 题目背景 (原 LZOI-1,改名已经 PMOI 成员同意) lhm-01 题目描述 言琢დ 在一个 2n×2n2n \times 2n2n×2n ...
- 洛谷刷题C语言:Bold、饱食、公平の意、DOM、
记录洛谷刷题C语言qaq [COCI2020-2021#6] Bold 题目描述 Paula 给 Daniel 写了一封信,她需要加粗文本的字体,以便视力恶化的 Daniel 阅读. 信可以用 . 和 ...
- 洛谷刷题C语言:陶瓷项链、Cow Gymnastics B、Where Am I? B、Hello, 2020!、SIR 模型
记录洛谷刷题C语言 一.[NOI2000] 瓷片项链 题目描述 原始部落用一种稀有的泥土烧制直径相同的圆瓷片并串成项链,串的时候沿瓷片的直径方向顺次连接,瓷片之间没有空隙也不重叠,一条项链至少由一个瓷 ...
- CodeForces刷题C语言:Next Test、Spit Problem、Traffic Lights、Reconnaissance、Borze
记录洛谷刷题C语言 一.Next Test 题面翻译 题面描述 给出 nnn 个互不相同的整数 aia_iai ,从小到大找第一个没有出现过的整数. 输入格式 第一行一个正整数 nnn ,之后是 n ...
- 洛谷刷题C语言:切蛋糕、概率、Bridž、NOTE、DOMINO
记录洛谷刷题C语言qaq [NOI Online 2021 入门组] 切蛋糕 题目描述 Alice.Bob 和 Cindy 三个好朋友得到了一个圆形蛋糕,他们打算分享这个蛋糕. 三个人的需求量分别为 ...
- c语言中求匀加速直线速度,速求C语言编程题 c语言编程速度求
导航:网站首页 > 速求C语言编程题 c语言编程速度求 速求C语言编程题 c语言编程速度求 相关问题: 匿名网友: #include //计算行元素和 void CountRow(int a[] ...
- 洛谷刷题C语言:Physics Problem、PARKING、Trol、信息学竞赛、POT
记录洛谷刷题C语言 「dWoi R1」Physics Problem 题目背景 面对白板上的物理题,王马陷入了沉思 -- 题目描述 有 nnn 个状态,编号为 111 到 nnn.这 nnn 个状态之 ...
最新文章
- 零起点学算法24——求正弦和余弦
- golang 读取文件
- Android Java 8使用Lamda报错:Execution failed for task :app:transformJackWithJackForDebug - Android?...
- Win10 插入耳机无声问题 解决办法
- 数据库系统概念总结:第十二、十三章 查询处理和查询优化
- Linux命令必知必会
- C# Winform中慎用Application.DoEvents
- Haproxy+Percona-XtraDB-Cluster 集群
- 将Windows日志转换为Syslog
- c/c++教程 - 2.2 引用的使用方法,引用做函数参数,引用做返回值,引用的本质,常量引用
- 用K2设计一个工作流程
- 网易云音乐UC!缓存格式文件转MP3方法
- 《深入浅出MFC》读书笔记
- solr配置索引库启动tomcat报错记录及解决
- terraria泰拉瑞亚
- 【机器学习系列】聊聊决策树
- 如何同时使用内网(本地有线连接)和外网(WLAN无线连接)
- Au 效果器详解:单频段压缩器
- Beego入门简单构建, 连接MySQL实现增查操作
- WAMP的安装与配置