鹏哥手把手带我刷好题 · 编程练习 · II

举报
安然无虞 发表于 2022/05/26 22:31:52 2022/05/26
【摘要】 大家好,我是安然无虞。 目录 1.判断字母 2.字符圣诞树 3.ASCII码 4.出生日期的输入输出 5.2的n次方计算 6.按照格式输入并交换输出 7.字符转ASCII码 8.计算表达式的值 9.计算带余除法 10.计算体重指数 11.计算三角形的周长和面积 12.计算球体的体积 结语:遇见安然遇...

大家好,我是安然无虞。

目录

1.判断字母

2.字符圣诞树

3.ASCII码

4.出生日期的输入输出

5.2的n次方计算

6.按照格式输入并交换输出

7.字符转ASCII码

8.计算表达式的值

9.计算带余除法

10.计算体重指数

11.计算三角形的周长和面积

12.计算球体的体积

结语:遇见安然遇见你,不负代码不负卿!


【前言】

题目比较简单,130来题,二刷了,因为之前写的很多解法太繁琐,所以用几天的时间重新过一遍。 

1.判断字母

原题链接:判断字母_牛客题霸_牛客网

题目描述:

代码执行:

代码1:


  
  1. #include<stdio.h>
  2. int main()
  3. {
  4. int ch = 0;
  5. //多组输入
  6. while((ch=getchar())!=EOF)
  7. {
  8. if(ch>='A' && ch<='Z' || ch>='a' && ch<='z')
  9. {
  10. printf("YES\n");
  11. }
  12. else
  13. {
  14. printf("NO\n");
  15. }
  16. getchar();//一定要记得清除缓冲区
  17. }
  18. return 0;
  19. }

代码2:


  
  1. //isplpha - 是专门用来判断一个字符是不是字母的库函数
  2. //是字母则返回非0的值,不是字母则返回0
  3. //需要引头文件#include<ctype.h>
  4. #include<stdio.h>
  5. #include<ctype.h>
  6. int main()
  7. {
  8. int ch = 0;
  9. //多组输入
  10. while((ch = getchar())!=EOF)
  11. {
  12. //判断并输出
  13. if(isalpha(ch))
  14. {
  15. printf("YES\n");
  16. }
  17. else
  18. {
  19. printf("NO\n");
  20. }
  21. getchar();//清理缓冲区\n
  22. }
  23. return 0;
  24. }

2.字符圣诞树

原题链接:字符圣诞树_牛客题霸_牛客网

题目描述:

示例:


  
  1. 输入:1
  2. 输出:
  3. 1
  4. 1 1
  5. 1 1 1
  6. 1 1 1 1
  7. 1 1 1 1 1

代码执行:


  
  1. #include<stdio.h>
  2. int main()
  3. {
  4. char ch = 0;
  5. ch = getchar();
  6. int i = 0;
  7. //每循环一次,打印一行
  8. //每一行由两部分组成:空格和字符
  9. for (i = 0; i < 5; i++)
  10. {
  11. //打印空格
  12. int j = 0;
  13. for (j = 0; j < 5 - 1 - i; j++)
  14. {
  15. printf(" ");
  16. }
  17. //打印字符
  18. for (j = 0; j <= i; j++)
  19. {
  20. printf("%c ", ch);
  21. }
  22. printf("\n");
  23. }
  24. return 0;
  25. }

3.ASCII码

原题链接:ASCII码_牛客题霸_牛客网

题目描述:

代码执行:


  
  1. #include<stdio.h>
  2. int main()
  3. {
  4. char arr[] = {73,32,99,97,110,32,100,111,32,105,116,33};
  5. //arr是一个数组,数组是使用下标来访问的
  6. //计算数组元素多少
  7. int sz = sizeof(arr) / sizeof(arr[0]);
  8. int i = 0;
  9. for(i = 0; i < sz; i++)
  10. {
  11. printf("%c", arr[i]);
  12. }
  13. return 0;
  14. }

4.出生日期的输入输出

原题链接:出生日期输入输出_牛客题霸_牛客网

【敲黑板】:本题需要注意输入输出格式。 

题目描述:

示例:


  
  1. 输入:20130225
  2. 输出:
  3. year=2013
  4. month=02
  5. date=25

注意: 

通过scanf函数的%m格式控制可以指定输入域宽,输入数据域宽(列数),按此宽度截取所需数据;通过printf函数的%0格式控制符,输出数值时指定左面不使用的空位置自动填0。

代码执行:


  
  1. #include<stdio.h>
  2. int main()
  3. {
  4. int year = 0;
  5. int month = 0;
  6. int date = 0;
  7. //按照格式输入
  8. scanf("%4d%2d%2d", &year, &month, &date);
  9. //输出
  10. printf("year=%4d\n", year);
  11. printf("month=%02d\n", month);
  12. printf("date=%02d\n", date);
  13. return 0;
  14. }

5.2的n次方计算

原题链接:2的n次方计算_牛客题霸_牛客网

题目描述:

 大家想深入学习的话可以看看我这篇文章:

蓝桥杯算法竞赛系列第一章——位运算的奇巧淫技及其实战_安然无虞的博客-CSDN博客【声明】:在接下来的两个月中,博主持续推出两个系列的博文,有关零基础搞定C语言,蓝桥杯算法竞赛,欢迎读者发表自己的想法,期待您的留言评论。https://blog.csdn.net/weixin_57544072/article/details/120798996

代码执行:


  
  1. #include<stdio.h>
  2. int main()
  3. {
  4. int n = 0;
  5. //多组输入
  6. while(scanf("%d", &n)!=EOF)
  7. {
  8. printf("%d\n", 1<<n);
  9. }
  10. return 0;
  11. }

6.按照格式输入并交换输出

原题链接:按照格式输入并交换输出_牛客题霸_牛客网

题目描述:

示例:


  
  1. 输入:a=1,b=2
  2. 输出:a=2,b=1

代码执行:


  
  1. #include<stdio.h>
  2. int main()
  3. {
  4. int a = 0;
  5. int b = 0;
  6. int c = 0;
  7. scanf("a=%d,b=%d", &a, &b);
  8. //交换
  9. //想象成一瓶酱油和一瓶醋,再拿一个空瓶进行交换
  10. c = a;
  11. a = b;
  12. b = c;
  13. //输出
  14. printf("a=%d,b=%d\n", a, b);
  15. return 0;
  16. }

补充一道变态的笔试题:

不能创建临时变量(第三个变量),实现两个数的交换:

方法一:加减法

a = a + b;

b = a - b;

a = a - b;

这样就解决了,但是有不好的地方,如果a, b 很大,就可能会导致溢出,所以还有一种方法,就是利用异或法

方法二:异或法

a = a ^ b;

b = a ^ b;

a = a ^ b;

这样就交换完成了,但是在实际运用当中,习惯定义第三个变量来实现两个数的交换,因为鸭,上面的代码可读性都不高! 

7.字符转ASCII码

原题链接:字符转ASCII码_牛客题霸_牛客网 

题目描述:

示例:


  
  1. 输入:a
  2. 输出:97

代码执行:


  
  1. #include<stdio.h>
  2. int main()
  3. {
  4. char ch = 0;
  5. ch = getchar();
  6. printf("%d\n",ch);
  7. return 0;
  8. }

8.计算表达式的值

原题链接:计算表达式的值_牛客题霸_牛客网

题目描述:

代码执行:


  
  1. #include<stdio.h>
  2. int main()
  3. {
  4. int a = 40;
  5. int c = 212;
  6. printf("%d\n", (-8+22)*a - 10 + c / 2);
  7. return 0;
  8. }

9.计算带余除法

原题链接:计算带余除法_牛客题霸_牛客网

题目描述:

示例:


  
  1. 输入:15 2
  2. 输出:7 1

代码执行:


  
  1. #include<stdio.h>
  2. int main()
  3. {
  4. int a = 0;
  5. int b = 0;
  6. scanf("%d %d", &a, &b);
  7. // / 除法操作符 得到的是商
  8. // % 取余(取模)操作符,得到的是余数
  9. int c = a/ b;
  10. int d = a % b;
  11. printf("%d %d\n", c, d);
  12. return 0;
  13. }

10.计算体重指数

原题链接:计算体重指数_牛客题霸_牛客网

题目描述:

示例:


  
  1. 输入:70 170
  2. 输出:24.22

代码执行:


  
  1. #include<stdio.h>
  2. int main()
  3. {
  4. int weight = 0;
  5. int height = 0;
  6. double bmi = 0.0;
  7. //输入
  8. scanf("%d %d", &weight, &height);
  9. //计算BMI
  10. //之所以除以100.0,是因为除号两边都是整型,要得到小数,必须保证两边有一个是浮点数
  11. bmi = weight / ((height / 100.0) * (height / 100.0));
  12. //输出
  13. printf("%.2lf\n", bmi);
  14. return 0;
  15. }

11.计算三角形的周长和面积

原题链接:计算三角形的周长和面积_牛客题霸_牛客网

题目描述:

示例:


  
  1. 输入:3 3 3
  2. 输出:circumference=9.00 area=3.90

注意:给出三角形的三条边让我们计算三角形面积,那么我们需要运用海伦公式,题目就迎刃而解了。 

海伦公式

代码执行:


  
  1. #include<stdio.h>
  2. #include<math.h>
  3. int main()
  4. {
  5. double a = 0.0;
  6. double b = 0.0;
  7. double c = 0.0;
  8. double circumference = 0.0;//周长
  9. double area = 0.0;//面积
  10. //输入
  11. scanf("%lf %lf %lf", &a,&b,&c);
  12. //计算
  13. circumference = a + b + c;
  14. double p = (a + b + c) / 2;
  15. area = sqrt(p * (p - a) * (p - b) * (p - c));
  16. printf("circumference=%.2lf area=%.2lf\n",circumference, area);
  17. return 0;
  18. }

12.计算球体的体积

原题链接:计算球体的体积_牛客题霸_牛客网

题目描述:

代码执行:


  
  1. #include<stdio.h>
  2. #include<math.h>
  3. #include<math.h>
  4. #define PI 3.1415926
  5. int main()
  6. {
  7. double r = 0.0;
  8. double v = 0.0;
  9. //输入
  10. scanf("%lf", &r);
  11. //计算
  12. v = 4.0 / 3 * PI * pow(r, 3);
  13. //输出
  14. printf("%.3lf\n", v);
  15. return 0;
  16. }

结语:遇见安然遇见你,不负代码不负卿!

求求了,来个三连吧。

文章来源: bit-runout.blog.csdn.net,作者:安然无虞,版权归原作者所有,如需转载,请联系作者。

原文链接:bit-runout.blog.csdn.net/article/details/122394868

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。