C语言编程入门之刷题篇(C语言130题)(5)

(题目标题可以直接转题目链接)

BC41 你是天才吗?


描述

据说智商140以上者称为天才,KiKi想知道他自己是不是天才,请帮他编程判断。输入一个整数表示一个人的智商,如果大于等于140,则表明他是一个天才,输出“Genius”。

输入描述:

多组输入,每行输入包括一个整数表示的智商。

输出描述:

针对每行输入,输出“Genius”。

示例1

输入:160

输出:Genius

参考代码:

#include <stdio.h>
//方法1
int 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种多组输入的方法。

BC42 完美成绩


描述

KiKi想知道他的考试成绩是否完美,请帮他判断。从键盘输入一个整数表示的成绩,编程判断成绩是否在90~100之间,如果是则输出“Perfect”。

输入描述:

多组输入,每行输入包括一个整数表示的成绩(90~100)。

输出描述:

针对每行输入,输出“Perfect”。

示例1

输入:98

输出:Perfect

参考代码:

#include <stdio.h>

int main() {
   int n=0;
   while(~scanf("%d",&n))
   {
    if (n>=90&&n<=100) {
    printf("Perfect\n");
    }
   }
}

BC43 及格分数


描述

KiKi想知道他的考试分数是否通过,请帮他判断。从键盘任意输入一个整数表示的分数,编程判断该分数是否在及格范围内,如果及格,即:分数大于等于60分,是输出“Pass”,否则,输出“Fail”。

输入描述:

多组输入,每行输入包括一个整数表示的分数(0~100)。

输出描述:

针对每行输入,输出“Pass”或“Fail”。

示例1

输入:94

输出:Pass

参考代码:

#include <stdio.h>

int main() {
    int n=0;
    while (~scanf("%d",&n)) {
    if (n>=60) {
    printf("Pass\n");
    }
    else {
    printf("Fail\n");
    }
    }
return 0;
}

BC44 判断整数奇偶性

描述

KiKi想知道一个整数的奇偶性,请帮他判断。从键盘任意输入一个整数(范围-231~231-1),编程判断它的奇偶性。

输入描述:

多组输入,每行输入包括一个整数。

输出描述:

针对每行输入,输出该数是奇数(Odd)还是偶数(Even)。

示例1

输入:

4

7

输出:

Even

Odd

参考代码:

#include <stdio.h>

int main() {
    int n=0;
    while(~scanf("%d",&n))
    {
        if (n%2==1) {
        printf("Odd\n");
        }
        else {
        printf("Even\n");
        }
    }
    return 0;
}

BC45 最高分数


描述

KiKi参加了语文、数学、外语的考试,请帮他判断三科中的最高分。从键盘任意输入三个整数表示的分数,编程判断其中的最高分。

数据范围: 0≤n≤100

输入描述:

输入一行包括三个整数表示的分数(0~100),用空格分隔。

输出描述:

输出为一行,即三个分数中的最高分。

示例1

输入:

94 98 99

输出:

99

参考代码:

#include <stdio.h>

int main() {
    int ar[4]={0};
    int i=0;
    int max=0;
    for (i=0; i<3; i++) {
    scanf("%d ",&ar[i]);
    }
    for (i=0; i<3; i++){ 
if (max<ar[i]) {
max=ar[i];
}
    }
    printf("%d",max);
    return 0;
}

答案解析: 1. 多组输入 2. 每组输入接受3个数字,求出最大值,因为成绩不能是负数,所以假设max期初是0.

BC46 判断是元音还是辅音


描述

KiKi开始学习英文字母,BoBo老师告诉他,有五个字母A(a), E(e), I(i), O(o),U(u)称为元音,其他所有字母称为辅音,请帮他编写程序判断输入的字母是元音(Vowel)还是辅音(Consonant)。

输入描述:

多组输入,每行输入一个字母。

输出描述:

针对每组输入,输出为一行,如果输入字母是元音(包括大小写),输出“Vowel”,如果输入字母是非元音,输出“Consonant”。

示例1

输入:

A

b

输出:

Vowel

Consonant

参考代码:

#include <stdio.h>

int main() {
    char n=0;
    char ar[]="AEIOUaeiou";
while(~scanf("%c\n",&n))
{int i=0;
for (i=0; i<sizeof(ar)-1; i++) {
if (n==ar[i]) {
printf("Vowel\n");
break;
}
}
if(i==10){
    printf("Consonant\n");
}
}
    return 0;
}

BC47 判断是不是字母


描述

KiKi想判断输入的字符是不是字母,请帮他编程实现。

输入描述:

多组输入,每一行输入一个字符。

输出描述:

针对每组输入,输出单独占一行,判断输入字符是否为字母,输出内容详见输出样例。

示例1

输入:

A

6

输出:

A is an alphabet.

6 is not an alphabet.

参考代码:

#include <stdio.h>
int main()
{char n=0;
while(~scanf(" %c",&n))
{
   if((n>='a')&&(n<='z')||(n>='A')&&(n<='Z'))
   printf("%c is an alphabet.\n",n);
else
{
printf("%c is not an alphabet.\n",n);
 } 
}return 0;
}

答案解析: 本题和BC46是一个道理的,三种方法均可使用。

BC48 字母大小写转换


描述

KiKi想完成字母大小写转换,有一个字符,判断它是否为大写字母,如果是,将它转换成小写字母;反之则转换为大写字母。

输入描述:

多组输入,每一行输入一个字母。

输出描述:

针对每组输入,输出单独占一行,输出字母的对应形式。

示例1

输入:

a

A

Z

输出:

A

a

z

参考代码:

#include <stdio.h>
#include<ctype.h>
int main() {
    char n=0;
   while (~scanf("%c",&n))
 {if ((n>='a')&&(n<='z')) {
 
    putchar(toupper(n));//toupper()将小写字母转换为大写字母头文件<ctype.h>
    printf("\n");
 }
 else {
 if ((n>='A')&&(n<='Z')) {
putchar(tolower(n));//tolower将大写字母转换为小写字母头文件和上述一样
 printf("\n");
 }
 }
}

   
    return 0;
}

答案解析: 本地和BC46、BC47题一样。

BC50 计算单位阶跃函数


描述

KiKi最近学习了信号与系统课程,这门课里有一个非常有趣的函数,单位阶跃函数,其中一种定义方式为:

现在试求单位冲激函数在时域t上的值。

输入描述:

题目有多组输入数据,每一行输入一个t(-1000

输出描述:

输出函数的值并换行。

示例1

输入:

11

0

-11

输出:

1

0.5

0

参考代码:

#include <stdio.h>

int main() {
  int t=0;
  while(~scanf("%d",&t))
  {
    if (t>0) {
    printf("1\n");
    }
    else if (t==0) {
    printf("0.5\n");
    }
    else
    printf("0\n");
    
  }
    return 0;
}

BC51 三角形判断


描述

KiKi想知道已经给出的三条边a,b,c能否构成三角形,如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形或普通三角形)。

输入描述:

题目有多组输入数据,每一行输入三个a,b,c(0<a,b,c<1000),作为三角形的三个边,用空格分隔。

输出描述:

针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出“Equilateral triangle!”,等腰三角形则输出“Isosceles triangle!”,其余的三角形则输出“Ordinary triangle!”,反之输出“Not a triangle!”。

示例1

输入:

2 3 2

3 3 3

输出:

Isosceles triangle!

Equilateral triangle!

参考代码:

#include <stdio.h>

int main() {
  int a=0;
  int b=0;
  int c=0;
  while(~scanf("%d%d%d",&a, &b, &c))
  {
  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&&b!=a||a==c&&a!=b) 
  printf("Isosceles triangle!\n");
  else 
  printf("Ordinary triangle!\n");
  }
  else {
  printf("Not a triangle!\n");
  }
  }
     return 0;
}

下一期 log in…………


文章主要参考比特就业课-鹏哥c语言训练营,文章内容及排版格式也参考比特课程的课件;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cocobol0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值