文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
void main() { float x,root; scanf(\ if(x>0)
root=sqrt(x); else
printf(\
printf(\}
3.温度转换
设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)
c) 输入华氏温度(实型)
d) 输出的摄氏温度结果保留两位小数
例: Please input Fahrenheit temperature: 76.8 The corresponding Celsius temperature is 24.89
#include
scanf(\ c = 5.0/9*(f-32);
printf(\}
4. 计算旅途时间
输入2 个整数time1 和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 (有效的时间范围是0000 到2359,不需要考虑出发时间晚于到达时间的情况。) 例:输入 712 1411 (出发时间是7:12,到达时间是14:11)
输出 The train journey time is 6 hrs 59 mins.
#include
{ int time1, time2, hours, mins; scanf(\
mins=time20>time10?time20-time10:60+time20-time10;
hours=time20>time10?time2/100-time1/100:time2/100-1-time1/100;
printf(\}
5. 数字加密
输入1 个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。
例:输入 1257
输出 The encrypted number is 4601
#include
{ int number, digit1, digit2, digit3, digit4, newnum;
6文档收集于互联网,如有不妥请联系删除.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
}
scanf(\digit1=number/1000;
digit2=number00/100; digit3=number000/10; digit4=number000; digit1=(digit1+9); digit2=(digit2+9); digit3=(digit3+9); digit4=(digit4+9);
newnum=digit3*1000+digit4*100+digit1*10+digit2; printf(\
思考题:你能否编程找出谁做的好事?
有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 ? A说:不是我。 ? B说:是C。 ? C说:是D。 ? D说:他胡说。
已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。
#include
{ char thisman; int sum,found=0;
for(thisman='A';thisman<='D';thisman++) { sum=(thisman!='A')+(thisman=='C') +(thisman=='D')+(thisman!='D'); if(sum==3)
{ printf(\ found=1; break; } }
if(found==0)
printf(\}
第二次上机作业参考答案:
1. 4个数排序
从键盘任意输入4个整数,将其按从小到大顺序排序后输出。 例:输入 5 12 -9 3
输出 After ascending sorting: -9 3 5 12 #include
{ int a,b,c,d,t; scanf(\ if(a>b)
7文档收集于互联网,如有不妥请联系删除.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
}
{ t=a; a=b; b=t; } if(a>c)
{ t=a; a=c; c=t; } if(a>d)
{ t=a; a=d; d=t; } if(b>c)
{ t=b; b=c; c=t; } if(b>d)
{ t=b; b=d; d=t; } if(c>d)
{ t=c; c=d; d=t; }
printf(\
2.求1 + 1/2! +....+ 1/n!
输入正整数n,计算上式前n 项的和(保留 4 位小数)。 例:输入 10
输出 1 + 1/2! +....+ 1/10!=1.7183 #include
3. 编程计算表达式:data1 op data2 的值。(+ - * / %)
例:输入 23+12
输出 23+12=35 #include
{ int a,b,result,flag=1; char op; scanf(\ switch(op) { case '+': result=a+b; break; case '-': result=a-b; break; case '*': result=a*b; break; case '/': printf(\
8文档收集于互联网,如有不妥请联系删除.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
}
flag=0; break; case '%': result=a%b; break; }
if(flag) printf(\
4. 用二分法求方程2x3-4x2+3x-6=0在(a,b)之间的根。
例:输入 Please input the lower and upper boundaries: 3 10 输出 No root in this boundary!
Please input the lower and upper boundaries: 1 5 The root is 2.00 #include
{ double x,fx,a,fa,b,fb; do { printf(\ scanf(\ fa=2*a*a*a-4*a*a+3*a-6; fb=2*b*b*b-4*b*b+3*b-6; }while(fa*fb>0); while(1) { x=(a+b)/2; fx=2*x*x*x-4*x*x+3*x-6; if(fabs(fx)<=1e-5) { printf(\ break; } if(fx*fa<0) { b=x; fb=fx; } else { a=x; fa=fx; } } }
5.日历显示
编程反复显示2014年各月份日历。(程序可以设定2014年1月1号为星期三)。 程序运行输出示例如下:
Enter month in 2014 to display calendar (1-12): 1
**************************************************** SUN MON TUE WED THU FRI SAT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
19 20 21 22 23 24 25 26 27 28 29 30 31
9文档收集于互联网,如有不妥请联系删除. 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
Would you like to display another month (y/n) ? y Enter month in 2014 to display calendar (1-12): 13 ERROR--- Enter month in range of (1-12)!
Enter month in 2014 to display calendar (1-12):4
**************************************************** SUN MON TUE WED THU FRI SAT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Would you like to display another month (y/n) ? N #include 10文档收集于互联网,如有不妥请联系删除. SAT\\n\
相关推荐: