以下内容可能极其简单
记录一下,第一章单元测试程序题,刚大一接触c语言,一窍不通,注释得都是简单地方
f1-1 如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)x0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。
示例图:
先拆解题意,输入的英尺英寸对应为(foot+inch/12)x0.3048(米),又因100cm=1m,即输入的英尺英寸对应为30.48xfoot+inch/12x30.48①(厘米)
1foot=12inch,即该式子是混合inch foot换算,当我们从cm单独换成foot(取整)时不用考虑
#include<stdio.h>
int main()
{
int cm,inch,foot;
scanf("%d",&cm);//输入一个厘米数
foot=cm/30.48;//根据①算出foot值,取整数(foot被int定义)
inch=(cm/30.48-foot)*12;
//刚开始可能以为cm/30.48-foot等于0,实则cm/30.48未被取整,
//存在小数点,再减去上个式子中的整数部分,得其小数部分
//*12是换算成foot,最后返回给inch(int型)
printf("input:%d,foot:%d,inch:%d\n",cm,foot,inch);
return 0;
}
f1-2 有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝时间计算出终止时间。
读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如5点30分表示为530;0点30分表示为030。注意,第二个数字表示的分钟数可能超过60,不能是负数。
示例图:
#include<stdio.h>
int main()
{
int Starting_T,Now_T,Elapsed_T;
int hour,minute;
scanf("%d %d",&Starting_T,&Elapsed_T);
hour = Starting_T / 100;//通过int格式抹去后面2位数
minute = Starting_T % 100;
Now_T = hour * 60 + minute + Elapsed_T;//全部以分钟计算
hour = Now_T / 60;
minute = Now_T % 60;
Now_T = hour * 100 + minute;
printf("%d,%d\n",Starting_T,Now_T);
return 0;
}
f1-3 设有int a=1,b=2,c=3,d=4;请编程交换变量的值,将a的值放到c,c的值放b,b的值放d,d的值给a。请用printf输出a,b,c,d变量的值。
示例图:
啊这题太简单了,就是临时变量换(目前只学了这样搞,如有其他的方法求dalao指教)
#include<stdio.h>
int main()
{
int a=1,b=2,c=3,d=4,temp1,temp2;
temp1=c;c=a;
temp2=b;b=temp1;
temp1=d;d=temp2;
a=temp1;
printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
return 0;
}