😁本文作者:大家好,我是原始豌豆,欢迎来到牛客网刷题解析第二期,感谢你阅读本文欢迎评论,收藏,点赞哦。
😂内容专栏:这里是《牛客网在线编程》专栏,笔者用重金(时间和精力)打造,每道题目提供多种解法,从基础到拓展,希望可以帮到读者们。
😘写作不易:本文对每道题目提供了多种解法并加上了详细的注释,意在帮助读者锻炼思维灵活性,提高分析、解决问题的能力💓)。
牛客网刷题解析第三期请点这里🎈🤺
开端
在这篇文章中,我将分享刷题过程中的一些感悟、技巧和策略。我会详细解析173道语法题,通过实例来展示如何理解和运用C语言的语法规则。同时,我也会分享一些个人的学习心得和经验,希望能帮助到同样热爱编程的你。
挑战自己的极限,收获编程的乐趣,让我们一起踏上这段奇妙的C语言刷题之旅吧!!!!
题目目录
牛客网语法篇基础语法16-30题(C语言实现)
题目网址链接请点这✌️
标注*符号的题目为重点题目
本页目录跳转请点下方
BC16 十六进制转十进制*
BC17 缩短二进制
BC18 牛牛的空格分隔
BC19 牛牛的对齐
BC20 进制A + B
BC21 牛牛学加法
BC22 牛牛学除法
BC23 牛牛学取余
BC24 浮点数的个位数字*
BC25 牛牛买电影票
BC26 计算带余除法
BC27 整数的个位
BC28 整数的十位
BC29 开学?*
BC30 时间转换
题目
>BC16 十六进制转十进制
解法一
直接利用打印十进制的%d格式符打印16进制数,会自动转换为10进制
#include <stdio.h>
int main() {
int num = 0xABCDEF;
printf("%15d", num);// 在%和格式字符之间插入一个整型常数来指定输出的宽度n。//不足用空格补齐,右对齐
return 0;
}
解法二
用数学上进制转换的方法
#include <stdio.h>
#include<math.h>
int main() {
int j = 0; int k = 0;//j控制16进制的权值从右向左是从零开始的。
int num[6] = {
0xA, 0xB, 0xC, 0xD, 0xE,0xF };
for (int i = 5; i >= 0; i--) {
num[i] *= (int)pow(16, j++);
k = k + num[i];//k用于累加每位转换后对应的十进制数字
}
printf("%15d", k);
return 0;
}
BC17 缩短二进制
解法一
//补充知识:
// o 以八进制形式输出无符号整数(不输出前缀O)
// x 以十六进制形式输出无符号整数(不输出前缀Ox)
// X 以十六进制形式输出无符号整数(不输出前缀OX)(大写)
//使用修饰符“#”控制前导显示:
// # 对c,s,d,u类无影响;对o类, 在输出时加前缀0。对x类,在输出时加前缀0x;
//注意:题目要求,十六进制,字母大写,所以,,,,,,对X类,在输出时加前缀0X。
#include <stdio.h>
int main()
{
int a = 1234;
printf("%#o %#X", a, a);//使用 printf 函数,以 %#o 和 %#X 格式打印变量 a 的值。
return 0;
}
解法二
题目要显示前导0和前导0X,那我们直接在%的前面加上前导0和前导0X就行了
#include <stdio.h>
int main()