2.x习题
2.0整数四则运算
计算两个正整数的和、差、积、商并输出,输入输出全部在整型范围内。
#include <stdio.h> int main() { int a,b; printf("输入两个正整数:"); scanf("%d %d",&a,&b); printf("%d + %d = %d\n",a,b,a+b); printf("%d - %d = %d\n",a,b,a-b); printf("%d * %d = %d\n",a,b,a*b); printf("%d / %d = %d\n",a,b,a/b); return 0; }
2.1厘米换英尺英寸
已知英尺foot和英寸inch的值,对应的米是(foot+inch/12)*0.3048。现在如果用户输入的是厘米数,转换成英制长度。1英尺=12英寸。
#include <stdio.h> int main() { int a; printf("输入厘米数:"); scanf("%d",&a); int foot = a/30.48; int inch = ((a/30.48)-foot)*12; printf("%d %d",foot,inch); return 0; }
思路:将英尺和英寸和在一起,以英尺的单位。(foot+inch/12)。厘米数=0.3048*100,厘米/100=米。先得出英尺,然后将英制长度-英尺长*12得出英寸长。
2.2计算时间
根据起始时间和流逝时间计算终止时间。时间用四位数表示,如530、1120。读入两个数字,第一个数字以这样的四位数表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数。注意,第二个数字表示的分钟可能超过60,也可能是负数。
#include <stdio.h> int main() { int h1,min1; int h2,min2; printf("输入起始时间的小时和分钟数:"); scanf("%d %d",&h1,&min1); printf("输入流逝的时间的小时和分钟数:"); scanf("%d %d",&h2,&min2); int min3 = (h1*60+min1)+(h2*60+min2); int h3 = min3/60; min3 %= 60;//min3=min3%60 printf("终止时间为:%d%d\n",h3,min3); return 0; }
2.3逆序的三位数
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0.比如输入700,输出应该是7。
#include <stdio.h> int main() { int x; printf("输入一个正3位数:"); scanf("%d",&x); int a = x/100; int b = (x-a*100)/10; int c = x-a*100-b*10; int y = c*100+b*10+a; printf("%d的逆序是%d\n",x,y); return 0; }
注意:b在通过x和a得出时,a是什么数字。
2.4 BCD解密
BCD数字是用一个字节来表达两位十进制的数,每4个比特表示一位。所以如果一个BCD数的16进制是0x12,它表达的就是十进制的12.但是小名没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了,于是BCD的0X12被输出成十进制的18了。现在你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,再转回12。
18-0001 0010-0x12。去掉

浙公网安备 33010602011771号