程序设计项目
1. 假设购买一辆汽车的首付为500美元。在购买该汽车之前,编写一个程序来算出月供款。已知汽车的价格、月利率以及贷款年限。计算月供款的公式为:
|
P = 本金(借款数目)
I = 月利率(年利率的1/12)
n = 还款月数
程序需要提示用户输入汽车价格、首付款、年利率和还款月数(通常为36、48或60)。然后输出借款数目和月供款,它们均包含一个美元符号和两位小数。
2. 编写两个函数,其中一个函数显示一个三角形,另一个函数显示一个矩形。利用这两个函数,并根据下面的提示编写完整的C程序:
int
main(void)
{
/* Draw triangle. */
/* Draw rectangle. */
/* Display 2 blank lines. */
/* Draw triangle. */
/* Draw rectangle. */
}
3. 将图3-14中的函数加到程序设计第2题中。在程序中使用这些函数画一个火箭飞行器(三角形在矩形之上,然后下面是交叉线)、一个男孩简图(圆在矩形之上,然后下面是交叉线)和一个站在男孩简图头上的女孩简图。编写并调用函数skip_5_lines,使得在每两幅画之间放置五个空行。
4. 编写一个计算机程序,用于计算导弹飞行时间和它击中目标时距离地面的高度。作为解决方案的一部分,需要编写并调用一个为用户显示指令的函数。
问题常量
G 32.17 /* gravitational constant * /
问题输入
double theta /* input- angle (radians) of elevation * /
double distance /* input - distance (ft) to target * /
double velocity /* input - projectile velocity (ft/sec) * /
问题输出
double time /* output - time (sec) of flight * /
double height /* output - height at impact * /
相关公式
利用下面的数据集运行程序。
|
输 入 |
数据集1 |
数据集2 |
|
发射角度 |
0.3弧度 |
0.71弧度 |
|
速度 |
800 ft/sec |
1 600 ft/sec |
|
目标距离 |
11 000 ft |
78 670 ft |
5. 编写一个程序,将带有小数的正数四舍五入为带两位小数的数。例如,32.4851会四舍五入为32.49,32.4431会四舍五入为32.44。(提示:见表2-9的“四舍五入一个数”和图3-23的函数scale)
6. 在一英里跑步比赛中有4名运动员。编写一个程序,它能够为运动员输入以分(minutes)和秒(seconds)作为单位的跑步时间,并计算、显示出分别以英尺每秒(fps)和米每秒(mps)作为单位的速度。(提示:1英里 = 5 280英尺,1千米 = 3 282英尺)。要求编写并调用一个为用户显示指令的函数。在运行程序时,使用下面的运动员数据。
|
分 |
秒 |
|
3 |
52.83 |
|
3 |
59.83 |
|
4 |
00.03 |
|
4 |
16.22 |
7. 买新房子时需要考虑几个因素。本题给出房子的最初成本、预估的年度燃料费和每年的房产税率。编写一个程序,计算5年后该房子的总开销,并分别以下列数据集运行程序。
|
房子的最初成本 |
年度燃料费 |
税 率 |
|
67 000 |
2 300 |
0.025 |
|
62 000 |
2 500 |
0.025 |
|
75 000 |
1 850 |
0.020 |
计算房子的总开销时,先将最初成本与5年的燃料费相加,然后再加上5年的房产税款。每年的税款由税率乘以最初成本得到。要求编写并调用一个为用户显示指令的函数。
8. 一人在平坦公路上骑自行车,在一分钟之内速度从10 mi/h降到2.5 mi/h。编写一个程序,计算骑车人的匀加速度以及速度降到0 mi/h所需的时间,已知初始速度为10 mi/h。(提示:使用等式
进行计算,其中a是加速度,t是所需时间,vi是初始速度,vf是最终速度。)要求编写并调用一个为用户显示指令的函数和一个计算a的函数,其中t、vf和vi已知。
9. 某生产商希望了解生产一个开口的圆柱体容器所需的开销。容器的表面积由圆形底面面积加上侧面面积(底面周长乘以容器的高度)得到。编写一个程序,将底面半径、容器高度、材料每平方厘米的价格(cost)和生产的容器数目(quantity)作为已知条件,计算每个容器的开销和生产所有容器的总开销。要求编写并调用一个为用户显示指令的函数和一个计算表面积的函数。
10. 编写一个程序,将地下深度(单位为千米)作为输入数据,计算并显示该深度处的温度,要求分别以摄氏度和华氏度作为单位。相关公式为:
Celsius = 10(depth) + 20 (在以千米为单位的深度处的摄氏温度)
Fahrenheit = 1.8(Celsius) + 32
要求在程序中包含两个函数。其中,函数celsius_at_depth计算并返回以千米为单位的深度处的摄氏温度,函数fahrenheit将摄氏度转换为华氏度。
11. 在拥有6种速度的变速箱(假设齿轮是等间隔排列的)内相邻的两个速度之间的比率为
其中M是每分钟的最大转速,而m是最小转速。编写函数speeds_ratio,计算任何最大和最小速度的比率。编写主函数,用于提示输入最大和最小速度(rpm),调用函数speeds_ratio计算比率,并以下面的格式语句显示结果:
|
12. 编写一个程序,计算给定温度T(°F)下空气中的声速(a)。使用如下公式:
要求确保程序中不会丢失上面公式中商的小数部分。作为方案的一部分,编写并调用一个为用户显示指令的函数。
|







