C语言每日一练——day_5

devtools/2025/3/13 8:14:18/

引言

        针对初学者,每日练习几个题,快速上手C语言。第五天。(连续更新中)

        采用在线OJ的形式

什么是在线OJ?

        在线判题系统(英语:Online Judge,缩写OJ)是一种在编程竞赛中用来测试参赛程序的在线系统,也可以用于平时的练习。

        详细内容可以看一下这篇博客:

关于C/C++语言的初学者在哪刷题,怎么刷题-CSDN博客https://blog.csdn.net/2401_88433210/article/details/146056171?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

1. 你是天才吗?

        点进去直接做题:

你是天才吗?_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/557cc54704bb4d56b73b62d1a5455331?tpId=107&&tqId=33322&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include <stdio.h>//方法1int main(){int n = 0;while(scanf("%d", &n) != EOF){if(n>=140)printf("Genius");}return 0;}//方法2
#include <stdio.h>
int main()
{int n = 0;//这种写法是因为scanf读取失败返回EOF,EOF是-1,所以按位取反后的结果是0,0为假,可以让循环停止。while(~scanf("%d", &n)){if(n>=140)printf("Genius");}return 0;}

解析:

        关于对组输入的题目,一定要处理好多组数据的输入问题,然后考虑循环如何结束。

        方法1和方法2,给出了2种多组输入的方法。

2.完美成绩

        点进去直接做题

完美成绩_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/8312e497509a450f968d9a6a2381ce32?tpId=107&&tqId=33323&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:        

#include <stdio.h>int main(){int score = 0;while(scanf("%d", &score) != EOF){//注意if()后面不要加分号,a大于90且小于100要用&&表示与if(score >= 90 && score<=100)printf("Perfect");}return 0;}

解析:

        1. 多组输入。

         2. 数学中的 90<=score<=100 的写法,在C语言中直接写是有bug的,是不允许的。

3.及格分数

        点进去直接做题

及格分数_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/56513524333148b38945e1989bc7df4e?tpId=107&&tqId=33324&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include <stdio.h>int main(){int score = 0;while(scanf("%d", &score) != EOF){if(score >= 60)printf("Pass\n");elseprintf("Fail\n");}return 0;}

       解析:不用认为题简单就不自己敲了,一定要多敲。

4.判断整数奇偶性

        点进去直接做题

判断整数奇偶性_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/a8b018667e274af29b5f76a6673450fc?tpId=107&&tqId=33325&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include <stdio.h>int main(){int num = 0;while(scanf("%d", &num) != EOF){if(num % 2==1)printf("Odd\n");elseprintf("Even\n");}return 0;}

 解析:很简单的一个题,一定要直接敲一遍。

5.最高分数

        点进去直接做题:最高分数_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/52c18a3b49a54fc98107fbdde1415f90?tpId=107&&tqId=33326&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

//恶心大家一下,从中间往两边看,看不懂没关系,看代码二
#include<stdio.h>
int main()
{int a,b,c;scanf("%d %d %d",&a,&b,&c);printf("%d\n",a>b? a>c? a:c : b>c? b:c);return 0;
}//代码二:
#include <stdio.h>int main(){int i = 0;int score[3] = {0};while(scanf("%d %d %d", &score[0], &score[1], &score[2]) != EOF){int max = 0;//每一组测试,max都恢复到0int i = 0;for(i=0; i<3; i++){if(score[i] > max)max = score[i];}printf("%d\n", max);}}return 0;

解析:学习不同代码的优点。

6.判断是元音还是辅音

        点进去直接做题:

判断是元音还是辅音_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/7eb4df4d52c44d309081509cf52ecbc4?tpId=107&&tqId=33327&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

//方法1#include <stdio.h>int main(){char ch = 0;char arr[] = "AEIOUaeiou";while((ch=getchar()) != EOF){int i = 0;for(i=0; i<10; i++){if(ch == arr[i]){printf("Vowel\n");break;}}if(i == 10)printf("Consonant\n");getchar();//去除每个字符后的\n}return 0;}//方法2#include <stdio.h>int main(){char ch = 0;char arr[] = "AEIOUaeiou";//在%c的前面写一个空格会消化掉前面所有的空白字符,然后读取一个字符while(scanf(" %c", &ch) != EOF){int i = 0;for(i=0; i<10; i++){if(ch == arr[i]){printf("Vowel\n");break;}}if(i == 10)printf("Consonant\n");}return 0;}//方法3#include <stdio.h>int main(){char ch = 0;char arr[] = "AEIOUaeiou";//在%c的后边发给一个'\n',其实在输入时候就会消化掉这个\n字符//不会为下次留下空白字符的隐患while(scanf("%c\n", &ch) != EOF){int i = 0;for(i=0; i<10; i++){if(ch == arr[i]){printf("Vowel\n");break;}}if(i == 10)printf("Consonant\n");}return 0;}

解析:本题的重点是处理\n,这里提供了三种方法。

7.判断是不是字母

        点进去直接做题

判断是不是字母_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/91a588dd4cd244bfa616f17603ec123c?tpId=107&&tqId=33328&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

//代码一:
#include<stdio.h>
int main(){char a;while((a=getchar())!=EOF){if(('a'<=a && a<='z')||('A'<=a && a<='Z')){printf("%c is an alphabet.\n",a);}else{printf("%c is not an alphabet.\n",a);}getchar();}
}//代码二:使用库函数
#include<ctype.h>
#include<stdio.h>
int main(){char a;while((a=getchar())!=EOF){if(isalpha(a)){printf("%c is an alphabet.\n",a);}else{printf("%c is not an alphabet.\n",a);}getchar();}
}

解析:灵活运用前面学过的知识。

关于isalpha函数,可以看下这篇:C/C++中对字符处理的常用函数-CSDN博客文章浏览阅读419次,点赞12次,收藏17次。C语言中的 ctype.h 头文件提供了一系列字符分类和转换函数,用于高效处理字符相关操作。 https://blog.csdn.net/2401_88433210/article/details/146140744?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

8.字母大小写转换

        点进去直接做题:字母大小写转换_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/850ebd30a2a34cfc87199da3fc15786a?tpId=107&&tqId=33329&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

int main(){int ch = 0;//多组输入while((ch=getchar()) != EOF){if(islower(ch)){printf("%c\n", toupper(ch));}else{printf("%c\n", tolower(ch)); }//处理'\n'getchar();}return 0;}

 解析:对前面知识灵活运用。

9.计算单位阶跃函数

        点进去直接做题:

计算单位阶跃函数_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/0b23793ae48a4e6cb7dfff042c959a04?tpId=107&&tqId=33331&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include<stdio.h>int main(){int t = 0;while(scanf("%d", &t) !=EOF){if(t>0)printf("%d\n", 1);else if(t == 0)printf("%.1f\n", 0.5f);elseprintf("%d\n", 0);}return 0;}

解析:要严格按照题的格式来。

10.三角形判断

        点进去直接做题:

三角形判断_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/689ec1e742394e09b1059556fc167b65?tpId=107&&tqId=33332&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include <stdio.h>int main() {int a, b, c;while(scanf("%d %d %d",&a, &b, &c) != EOF){if (a + b > c && a + c > b && b + c > a){if(a == b && b== c) printf("Equilateral triangle!\n");else if(a == b || a == c || b == c) printf("Isosceles triangle!\n");else printf("Ordinary triangle!\n");}else printf("Not a triangle!\n");}return 0;
}

解析:根据条件if-else就可以解决。


http://www.ppmy.cn/devtools/166720.html

相关文章

【LeetCode222】完全二叉树的节点个数

题目描述 给你一棵 完全二叉树 的根节点 root &#xff0c;求出该树的节点个数。 完全二叉树 的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没填满外&#xff0c;其余每层节点数都达到最大值&#xff0c;并且最下面一层的节点都集中在该层最左边的若干…

Java Lambda表达式:现代编程的简洁之道

引言 在Java 8中&#xff0c;Lambda表达式的引入标志着Java语言向函数式编程迈出了重要一步。Lambda不仅简化了代码结构&#xff0c;还提升了开发效率&#xff0c;使得Java能够更灵活地应对现代编程需求。本文将深入探讨Lambda表达式的核心概念、语法规则、应用场景及其对Java…

P2P:从点监督到显式视觉提示的物体检测与分割

一、简介 论文题目&#xff1a;P2P: Transforming from Point Supervision to Explicit Visual Prompt for Object Detection and Segmentation 论文下载地址&#xff1a;https://www.ijcai.org/proceedings/2024/0448.pdf 项目代码&#xff1a;GitHub - guangqian-guo/P2P:…

SpringBoot基础Kafka示例

这里将生产者和消费者放在一个应用中 使用的Boot3.4.3 引入Kafka依赖 <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId> </dependency>yml配置 spring:application:name: kafka-1#kafka…

WPF基础知识41-60

动画与多媒体拓展 41. 如何实现一个复杂的组合动画&#xff0c;包含多个动画效果同时或顺序执行&#xff1f; 答案&#xff1a;可以使用 Storyboard 来组合多个动画效果。Storyboard 可以包含多个不同类型的动画&#xff08;如 DoubleAnimation、ColorAnimation 等&#xff09…

uniApp实战三:自定义插件的实现

文章目录 1.最终效果预览2.页面布局3.插件开发4.编译uni页面5.平台申请离线key6.根据证书文件查看SHA1及SHA256值7.将模块编译为aar包并生成插件8.勾选本地插件并打自定义基座包 1.最终效果预览 2.页面布局 定义一个按钮触发点击事件 <view click"testClick">…

【每日八股】Golang篇(五):垃圾回收

目录 golang 的垃圾回收&#xff1f;写屏障&#xff1f;垃圾回收的触发条件&#xff1f; golang 的垃圾回收&#xff1f; golang GC 算法使用的是无分代&#xff08;对象没有代际之分&#xff09;、不整理&#xff08;回收过程中不对对象进行移动和整理&#xff09;、并发&…

AI+API引爆数据分析:BI已成过去?

目录 1 BI的瓶颈与新时代的需求 2 AI与API如何重塑数据分析&#xff1f; 3 QuickAPI&#xff1a;AI与API的桥梁 4 数据分析的未来&#xff1a;智能、互联、即时 5 结语 在过去十年中&#xff0c;商业智能&#xff08;BI&#xff09;一直是企业数据分析的基石。仪表盘、报表…