PAT|中国大学MOOC-翁恺-C语言程序设计习题集05-08

02-4. BCD解密(10)

BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!

现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。

输入格式:

输入在一行中给出一个[0, 153]范围内的正整数,保证能转换回有效的BCD数,也就是说这个整数转换成十六进制时不会出现A-F的数字。

输出格式:

输出对应的十进制数。

输入样例:
18
输出样例:
1
2
 
   
#include 
int main()
{
	int num, hex, a, b, c;
	scanf("%d", &num);
	if (num >= 0 && num <= 9)
	{
		hex = num;
	}
	else
	{
		a = num / 16;
		b = num - 16 * a;
		hex = a * 10 + b;
	}
	printf("%d", hex);
	return 0;
}

03-0. 超速判断(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
 
    

03-1. 三天打鱼两天晒网(15)


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

输入格式:

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

输出格式:

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

输入样例1:
103
输出样例1:
Fishing in day 103
输入样例2:
34
输出样例2:
Drying in day 34
#include 
int main()
{
	int remain, num;
	scanf("%d", &num);
	remain = num % 5;
	if (remain>0&&remain <= 3)
	{
		printf("Fishing in day %d", num);
	}
	else
	{
		printf("Drying in day %d", num);
	}
	return 0;
}

03-2. 用天平找小球(10)


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

输入格式:

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

输出格式:

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

输入样例:
1 1 2
输出样例:
C
#include 
int main()
{
	int a, b, c;
	scanf("%d%d%d", &a, &b, &c);
	if (a == b)
	{
		printf("C");
	}
	if (b == c)
	{
		printf("A");
	}
	if (a == c)
	{
		printf("B");
	}
}
 
  

你可能感兴趣的:(PAT,PAT)