衡水学院新人百题练2022(21-40)修订版

21 判断正负数

分数 10

作者 王跃萍单位 东北石油大学

输入一整数x,如果x>0,则y=1,否则y=-1,最后输出y的值。

输入格式:

直接输入1个整数,没有其它任何附加字符。

输出格式:

在一行中按照“y=结果”的顺序输出,结果原样输出,没有其它附加格式。。

输入样例:


5

输出样例:


y=1

输入样例:


-5

输出样例:


y=-1

#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    if (a>0)
        printf("y=1");
    else 
        printf("y=-1");
    return 0;
}

或者:

#include<stdio.h>
int main(){
    int a;
    scanf("%d",&a);
    a>0?printf("y=1"):printf("y=-1");
}

22 成绩转换

分数 15

作者 沈睿单位 浙江大学

本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则:

  • 大于等于90分为A;

  • 小于90且大于等于80为B;

  • 小于80且大于等于70为C;

  • 小于70且大于等于60为D;

  • 小于60为E。

输入格式:

输入在一行中给出一个整数的百分制成绩。

输出格式:

在一行中输出对应的五分制成绩。

输入样例:


90

输出样例:


A

#include<stdio.h>
int main()
{
int a,x;
    scanf("%d",&a);
    x = a/10;
    switch(x)
    {
        case 10:
        case 9: printf("A");break;
        case 8: printf("B"); break;
        case 7: printf("C"); break;
        case 6: printf("D"); break;
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:
        case 0:printf("E"); break;
        default:printf("Tnput error!");
    }
    return 0;
}

或者:

90 ... 100   等价于  x>=90&&x<=100

#include<stdio.h>
int main(){
    int a;
    scanf("%i",&a);
    switch(a){
        case 90 ... 100: printf("A");break;
        case 80 ... 89: printf("B");break;
        case 70 ... 79: printf("C");break;
        case 60 ... 69: printf("D");break;
        case 0 ... 59: printf("E");break;
        default :printf("输入错误");break;
    }
}

23 成绩是否及格

分数 10

作者 王跃萍单位 东北石油大学

输入成绩值x∈[0,100],如果x≥60,则输出pass,否则输出fail。

输入格式:

直接输入[0,100]之间的1个整数,没有其它任何附加字符。

输出格式:

直接输出你“pass”或“fail”,没有其它任何附加字符。

输入样例:


78

输出样例:


pass

输入样例:


46

输出样例:


fail

#include<stdio.h>
int main()
{
    int x;
    scanf("%d",&x);
    if(x<60)
        printf("fail");
    else
        printf("pass");
    return 0;
}

或者:

#include<stdio.h>
int main(){
    int a;
    scanf("%d",&a);
    a>=60?printf("pass"):printf("fail");
}

24两个整数最大值

分数 10

作者 王跃萍单位 东北石油大学

求两个整数a,b的最大值,结果存入max中。

输入格式:

在一行中输入两个整数,之间用一个空格间隔,没有其它任何附加字符。

输出格式:

在一行中按照“max=结果”的顺序输出,结果原样输出,没有其它附加格式。

输入样例:


3 5

输出样例:


max=5

#include<stdio.h>
int main()
{
    int a, b, max;
    scanf("%d %d",&a,&b);
    max = a>b ? a : b;
    printf("max=%d",max);
    return 0;
}

或者:

#include<stdio.h>
int main(){
    int a, b;
    scanf("%d %d",&a,&b);
    a>b?printf("max=%d",a):printf("max=%d",b);
}

25 整除问题

分数 10

作者 刘勇单位 重庆巴蜀常春藤学校

判断一个数是否能被另一个整数整除是一个挺简单的问题,懒惰的小明还是不想自己做,于是找到你帮他写代码,你就帮帮他吧。

输入格式:

输入包括两个由空格分开的整数 M和 N(1≤M,N≤500)。

输出格式:

输出包括一行,如果 M 可以被 N 整除就输出YES,否则输出NO(结果大小写敏感)。

输入样例:


21 7

输出样例:


YES

#include<stdio.h>
int main()
{
    int a, b;
    scanf("%d %d",&a,&b);
    if(a % b == 0)
        printf("YES");
    else
        printf("NO");
    return 0;
}

26 整数绝对值

分数 10

作者 王跃萍单位 东北石油大学

从键盘上输入一个整数,输出其对应的绝对值,要求不能使用数学函数。

输入格式:

直接输入一个整数,没有其它任何附加字符。

输出格式:

直接输出一个整数,没有其它任何附加字符。

输入样例:


-3

输出样例:


3

#include<stdio.h>
int main()
{
    int x;
    scanf("%d",&x);
    x = x>0 ? x : -x ;
    printf("%d",x);
        return 0;
}

27偶数乘2奇数乘3

分数 10

作者 王跃萍单位 东北石油大学

输入一个整数x,如果为偶数乘2,否则乘3,然后输出。

输入格式:

直接输入一个整数,没有其它任何附加字符。

输出格式:

在一行中按照“y=结果”的顺序输出,结果原样输出,没有其它附加格式。

输入样例:


3

输出样例:


y=9

输入样例:


2

输出样例:


y=4

#include<stdio.h>
int main()
{
    int x;
    scanf("%d",&x);
    x = x%2==0 ? 2*x : 3*x;
    printf("y=%d",x);
    return 0;
}

28判断10的倍数

分数 10

作者 王跃萍单位 东北石油大学

输入一个整数a,如果a为10的倍数,则输出a。

输入格式:

直接输入1个整数,没有其他任何附加字符。

输出格式:

直接输出结果,没有其他任何附加字符。

输入样例:


20

输出样例:


20

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

29 三个数由小到大输出

分数 10

作者 王跃萍单位 东北石油大学

输入三个整数x,y,z,请把这三个数由小到大输出。

输入格式:

在一行中直接输入3个整数,之间各用一个空格间隔。

输出格式:

在一行中按照“x=最小值,y=次小值, z=最大值”的顺序输出结果,最大值、次大值和最小值均原样输出,没有宽度控制。

输入样例:


2 1 3

输出样例:


x=1,y=2,z=3

#include<stdio.h>
int main()
{
    int x, y, z;
    scanf("%d %d %d",&x, &y, &z);
    if( x>=y && y>=z && x>=z)
    printf("x=%d,y=%d,z=%d",z,y,x);
    if( x>=z && z>=y && x>=y)
    printf("x=%d,y=%d,z=%d",y,z,x);
    if( y>=x && x>=z && y>=z)
    printf("x=%d,y=%d,z=%d",z,x,y);
    if( y>=z && z>=x && y>=z)
    printf("x=%d,y=%d,z=%d",x,z,y);
    if( z>=y && y>=x && z>=x)
    printf("x=%d,y=%d,z=%d",x,y,z);
    if( z>=x && x>=y && z>=y)
    printf("x=%d,y=%d,z=%d",y,x,z);
    return 0;
    }

或者:

#include<stdio.h>
int main(){
    int a, b, c;
    scanf("%d %d %d",&a,&b,&c);
    if(a>b)
        if(a>c)
            if(b>c)
                printf("x=%d,y=%d,z=%d\n",c,b,a);
            else
                printf("x=%d,y=%d,z=%d\n",b,c,a);
        else
            printf("x=%d,y=%d,z=%d\n",b,a,c);
    else
        if(a>c)
            if(b>c)
                printf("x=%d,y=%d,z=%d\n",c,a,b);
            else
                printf("x=%d,y=%d,z=%d\n",a,b,c);
        else
            printf("x=%d,y=%d,z=%d\n",a,c,b);
}

或者:

#include<stdio.h>
int main(){
	int x, y, z, t;
	scanf("%d %d %d",&x,&y,&z);
	if(x>y){
		t = x;
		x = y;
		y = t;
	} 
	if(x > z){
		t = x;
		x = z;
		z = t;
	}
	if(y > z){
		t = y;
		y = z;
		z = t;
	}
	printf("x=%d,y=%d,z=%d\n",x,y,z);
}

或者:

#include<stdio.h>
int main(){
    int a, b, c;
    scanf("%d %d %d",&a,&b,&c);
    int x=(a<b?a:b)<c?(a<b?a:b):c;
    int y=a>b?(b>c?b:(a>c?c:a)):(a>c?a:(b>c?c:b));
    int z=(a>b?a:b)>c?(a>b?a:b):c;
    printf("x=%d,y=%d,z=%d\n",x,y,z);
}

其余任意排序算法均可

30 三天打鱼两天晒网

分数 15

作者 C课程组单位 浙江大学

中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?

输入格式:

输入在一行中给出一个不超过1000的正整数N。

输出格式:

在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。

输入样例1:


103

输出样例1:


Fishing in day 103

输入样例2:


34

输出样例2:


Drying in day 34

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
        if(n%5==1 || n%5==2 || n%5==3)
        printf("Fishing in day %d",n);
    if(n%5==0 || n%5==4)
        printf("Drying in day %d",n);
    return 0;
}

或者:

#include<stdio.h>
int main(){
    int a;
    scanf("%d",&a);
    switch(a%5){
        case 0:printf("Drying in day %d",a);break;
        case 1 ... 3:printf("Fishing in day %d",a);break;
        case 4:printf("Drying in day %d",a);break;
    }
}

31 超速判断

分数 10

作者 杨起帆单位 浙大城市学院

模拟交通警察的雷达测速仪。输入汽车速度,如果速度超出60 mph,则显示“Speeding”,否则显示“OK”。

输入格式:

输入在一行中给出1个不超过500的非负整数,即雷达测到的车速。

输出格式:

在一行中输出测速仪显示结果,格式为:Speed: V - S,其中V是车速,S或者是Speeding、或者是OK。

输入样例1:


40

输出样例1:


Speed: 40 - OK

输入样例2:


75

输出样例2:


Speed: 75 - Speeding

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    if(n > 60)
        printf("Speed: %d - Speeding",n);
    else
        printf("Speed: %d - OK",n);
    return 0;
}

32 用天平找小球

分数 10

作者 C课程组单位 浙江大学

三个球A、B、C,大小形状相同且其中有一个球与其他球重量不同。要求找出这个不一样的球。

输入格式:

输入在一行中给出3个正整数,顺序对应球A、B、C的重量。

输出格式:

在一行中输出唯一的那个不一样的球。

输入样例:


1 1 2

输出样例:


C

#include<stdio.h>
int main()
{
    int a, b, c;
    scanf("%d %d %d",&a, &b, &c);
    if(a==b)
        printf("C");
    if(a==c)
        printf("B");
    if(b==c)
        printf("A");
    return 0;
}

或者:

#include<stdio.h>
int main(){
    int a, b, c;
    scanf("%d %d %d",&a,&b,&c);
    a==b?printf("C"):(a==c?printf("B"):printf("A"));
}

33表达式计算

分数 5

作者 张显单位 怀化学院

小明的表哥正在做家庭作业,遇到一道题困扰了很久,需要你用程序帮忙解决。

题目如下:根据X,Y的值求Z的值。如果X≥0而且Y≥5,则按公式Z=3X+2Y计算;如果X≥0而且Y<5,则按公式Z=5X-Y计算;如果X<0而且Y≥0,则按公式Z=X+4Y计算;如果X<0而且Y<0,则按公式Z=3*X-Y计算。

输入格式:

在一行中给出两个整数X,Y。中间以空格隔开。X和Y的绝对值不超过10000。

输出格式:

在一行中输出Z的值。

输入样例:


7 8

输出样例:


37

#include<stdio.h>
int main()
{
    int x, y;
    scanf("%d %d",&x, &y);
    if(x>=0&&y>=5)
        printf("%d",3*x+2*y);
    if(x>=0&&y<5)
        printf("%d",5*x-y);
    if(x<0&y>=0)
        printf("%d",x+4*y);
    if(x<0&&y<0)
        printf("%d",3*x-y);
    return 0;
}

34 12-24小时制

分数 15

作者 翁恺单位 浙江大学

编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。

输入格式:

输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。

提示:在scanf的格式字符串中加入:,让scanf来处理这个冒号。

输出格式:

在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如5:6 PM表示下午5点零6分。注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:0 PM;而0点被认为是第二天的时间,所以是0:0 AM。

输入样例:


21:11

输出样例:


9:11 PM

#include<stdio.h>
int main(void) {
    int n, m;
    scanf("%d:%d", &n, &m);
    if (n >= 12) {
        if (12 == n) printf("%d:%d PM", n, m);
        else {
            n -= 12;
            printf("%d:%d PM", n, m);
        }
    } else {
        printf("%d:%d AM", n, m);
    }

    return 0;
}

35Judge leap year

分数 10

作者 李克峰单位 山东交通学院

Input a year, if it is leap year output "Yes", otherwise output "No".

Input:

One positive integer

Output:

"Yes" or "No"

Input smaple:


2017

Output sample:


No

Input smaple:


2000

Output sample:


Yes

#include<stdio.h>
int main()
{
    int year;
    scanf("%d",&year);
    if(year%400==0||(year%100!=0&&year%4==0))
        printf("Yes");
    else
        printf("No");
    return 0;
}

36 输入年份和月份

分数 10

作者 时贵英单位 东北石油大学

输入一个年份和月份,输出这个月的天数。

输入格式:

输入年份year和月份month,年份和月份中间用一个空格隔开。

输出格式:

输入year年的month月对应的天数。

输入样例:


2000 2

输出样例:


29

输入样例:


1900 2

输出样例:


28

输入样例:


1900 6

输出样例:


30

#include<stdio.h>
int main()
{
    int year, month;
    scanf("%d %d",&year, &month);
    switch(month){
        case 2:
            if(year%400==0||(year%4==0&&year%100!=0))
                printf("29");
            else
                printf("28");
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            printf("30");break;
        default:printf("31");break;
}
    return 0;
}

37 是否能构成三角形1

分数 10

作者 王跃萍单位 东北石油大学

输入三角形的三边,判断是否能构成三角形。若能构成输出YES,否则输出NO。

输入格式:

在一行中直接输入3个整数,3个整数之间各用一个空格间隔,没有其他任何附加字符。

输出格式:

直接输出YES或NO,没有其他任何附加字符。

输入样例:


4 5 6

输出样例:


YES

输入样例:


2 2 4

输出样例:


NO

#include<stdio.h>
int main()
{
    int a, b, c;
    scanf("%d %d %d",&a,&b,&c);
    if(a+b>c&&a+c>b&&b+c>a)
        printf("YES");
    else
        printf("NO");
    return 0;
}

38 求1到100的和

分数 10

作者 颜晖单位 浙大城市学院

本题要求编写程序,计算表达式 1 + 2 + 3 + ... + 100 的值。

输入格式:

本题无输入。

输出格式:

按照以下格式输出:


sum = 累加和

#include<stdio.h>
int main()
{
    int n, sum;
    for(n=1; n<101; n++)
        sum+= n;
    printf("sum = %d",sum);
    return 0;
}

39 逆序输出数的各位数字

分数 15

作者 王跃萍单位 东北石油大学

从键盘上输入一个正整数,逆序输出该数的各位数字。

例如:输入123,输出321。

输入格式:

直接输入一个正整数,没有其它任何附加字符。

输出格式:

直接输出一结果,没有其它任何附加字符。

输入样例:


123

输出样例:


321

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

40 奇偶分家

分数 10

作者 陈越单位 浙江大学

给定N个正整数,请统计奇数和偶数各有多少个?

输入格式:

输入第一行给出一个正整N(≤1000);第2行给出N个非负整数,以空格分隔。

输出格式:

在一行中先后输出奇数的个数、偶数的个数。中间以1个空格分隔。

输入样例:


9
88 74 101 26 15 0 34 22 77

输出样例:


3 6

#include<stdio.h>
int main()
{
    int n, a[1001], m, j=0, o=0;
    scanf("%d",&n);
    for(m=0;m<n;m++)
    {
        scanf("%d",&a[m]);
        if(a[m]%2==1)
            j++;
        else
            o++;
    }
    printf("%d %d",j, o);
    return 0;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

还没有名字哦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值