300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 牛客网c语言刷题130 开篇入门刷题 战胜对编程的恐惧 适合初学者食用。

牛客网c语言刷题130 开篇入门刷题 战胜对编程的恐惧 适合初学者食用。

时间:2022-01-24 11:09:06

相关推荐

牛客网c语言刷题130 开篇入门刷题 战胜对编程的恐惧 适合初学者食用。

大一,大二初学者训练题

1. BC1-实践出真知2. BC2-我是大V3. BC3-有容乃大4. BC7-缩短二进制5. BC19-反向输出一个四位数6. BC28- 大小写转换

本文所有题目均来自牛客网的《编程初学者入门训练》

链接: link.

点此即可进入。

写本博客的目的在于进行复盘总结和知识归纳。我会把每题的技术知识重点进行详细的解释说明,使对编程题有个更加简单的认知,不会被一部分不会的技术知识点难倒。

1. BC1-实践出真知

题目:于老师经常告诉我们“学习编程最好的办法就是上机实践,因为你要对计算机下指令,想让计算机帮你干活,就得多和计算机‘交流’,实践才能出真知。”

//引入头文件#include <stdio.h>//写入主函数//main函数是程序的入口,代码一般都是从入口开始执行int main(){printf("Practice makes perfect!");return 0;}

printf因为是库函数 - 输出操作,得引入头文件<stdio.h>;

一个工程里,main函数只能有一个;

解析:

这题没有要求输入字符,只考察了输出,所以我们只要把输出结果复制好粘贴正确就行,大部分出现的问题就是输出的结果有问题,建议细致一点比较好。

2. BC2-我是大V

题目:每个人都想成为大V (VIP:Very Important Person),但要一点一点积累才行,先从小v做起。要求输出由小写字母v组成的大V。

#include <stdio.h>int main(){p**加粗样式**rintf("v v\n");printf(" v v\n");printf(" v");return 0;}

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

这两个程序代码都可以输出准确的答案。

解析:

本题没有输入,只有输出,但要注意转义字符\n, 他可以实现换行操作。

转义字符的具体简单操作可以看我写的另一篇博客《C语言知识入门概述1(纯干货笔记)》

3. BC3-有容乃大

题目:确定不同整型数据类型在内存中占多大(字节),输出不同整型数据类型在内存中占多大(字节)。

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

解析:

因为所有的字节都是整数类型,所以我们用%d就可以。也注意大写字母和换行\n,注意题目要求。

计算机的单位:

1 bit

1 byte = 8 bit

1 kb = 1024 byte

C语言标准规定:

sizeof(long long) >= sizeof(long) >= sizeof(int)

所以打印的结果就是:

sizeof(short) = 2 bytes;

sizeof(int) = 4 bytes;

sizeof(long) = 4 bytes;

sizeof(long long) = 8 bytes;

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

4. BC7-缩短二进制

题目:我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整数,但保持了二进制数的表达特点。请输出十进制整数1234对应的八进制和十六进制。

#include <stdio.h>int main(){int x = 1234;printf("%#o %#X", x, x);//输出的结果要十六进制的字母是大写的的话需要使用大写的X。//反之,就是小写return 0;}

一个数字前面放一个0就是八进制

一个数字前面放一个0X就是十六进制

解析:

printf可以使用使用格式控制串“%o”、“%X”分别输出八进制整数和十六进制整数,并使用修饰符“#”控制前导显示

扩展:

%c - 字符%hd - 短整形%d - 整形%s - 字符串%f - 单精度浮点数%lf - 双精度浮点数%p - 地址格式

5. BC19-反向输出一个四位数

题目:将一个四位数,反向输出。

方法一

#include <stdio.h>int main(){int a;//输入scanf("%d", &a);//注意取地址符&//输出printf("%d%d%d%d", a%10, a%100/10, a%1000/100, a/1000);return 0;}

解析:

1234 % 10 = 4;1234 % 100 / 10 =3;1234 % 1000 / 100 = 2;1234 / 1000 = 1;

方法二

#include <stdio.h>int main(){int n = 0;scanf("%d", &n);while (n){printf("%d", n % 10);n = n / 10;}return 0;}

解析:

1234 % 10 = 4;1234 / 10 = 123;123 % 10 = 3;123 / 10 = 12;...1 / 10 = 0;//出循环结束

6. BC28- 大小写转换

题目:实现字母的大小写转换。多组输入输出。

方法一

#include <stdio.h>int main(){char ch = 0;while (scanf("%c", &ch) != EOF)//!=EOF 文件还没有结束{getchar();//因为每次输入都要习惯性的敲一下回车键,//所以需要这个消除读取的换行符printf("%c\n", ch + 32);}return 0;}

方法二

int main(){int ch = 0;while((ch = getchar() != EOF){putchar(ch + 32);printf("\n");getchar();//读取\n}return 0;}

解析:

getchar 和 键盘 输入中间有个输入缓冲区

当你输入字符的时候

比如:

你想打印一个小写a,那么你就会输入A和回车键去运行代码,而导致的结果就是多了一个\n在缓冲区 ,然后在再一次循环中会输入那个\n, 导致最后打印会出现一个*星号。

\n在ascll里面是10,而加上32就是42的星号* 。

EOF指的是end of file (文件结束标志);按Ctrl+z;

当scanf或者getchar读取失败的时候,就会返回EOF,而EOF不等于EOF的时候,就会返回假,程序结束。

到此结束,未完待续【dog】

剩下的到时候有时间就更。

看着感觉不错的话就点点赞吧,你的支持就是我的动力,谢谢!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。