二级C语言资料模拟及历年考试编程题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二级C语言资料模拟及历年考试编程题答案
作者: 日期:
模拟一
试题7某客户为购房办理商业贷款,选择了按月等额本息还款法,在贷款本金(loan )和月利率(rate)一定的情况下,住房贷款的月还款额(mo ney)取决于还款月数(mo nth), 计算公式如下。客户打算在5〜30年的范围内选择还清贷款的年限,想得到一张“还款年限—月还款额表”以供参考。
rate(1 rate)month
money loa n
(1 rate)month 1
(1)定义函数cal_power(x, n)计算x的n次幕(即x n),函数返回值类型是double。
(2)定义函数cal_mo ney(loa n,rate,mo nth)计算月还款额,函数返回值类型是double,要求调用函数cal_power(x, n)计算x的n次幕。
(3)定义函数main(),输入贷款本金loan (元)和月利率rate,输出“还款年限—月还款额表”,还款年限的范围是5〜30年,输出时分别精确到年和元。要求调用函数
cal_mon ey(loa n, rate,m on th)计算月还款额。
#in clude
{
int k; double result=1;
for(k=1;k<=n; k++)
result*=x;
return result;
}
double cal_ mon ey(double loa n, double rate,i nt month)
{
double result=cal_power(1+rate,m on th);
result=loa n*rate*result/(result-1);
return result;
}
void mai n()
{
int k,year; double loa n,mon ey,rate;
sca nf("%lf%lf", &loa n,& rate);
for(year=5;year<=30;year++)
{
mon ey=cal_m on ey(loa n,rate,12*year);
prin tf("year=%d,m on ey=%.0f\n",year,m on ey); }
}
试题8编写程序,输入一批学生的成绩,遇0或负数则输入结束,要求统计并输出优秀(大
于85)、通过(60〜84)和不及格(小于60)的学生人数。
运行示例:Enter scores: 88 71 68 70 59 81 91 42 66 77 83 0
> =85:2
60-84:7
<60 2
#in clude
void mai n()
{
int mark,a,p,f;
a=p=f=0;
printf("Enter scores :"); sca nf("%d",&mark);
while(mark>0)
{if(mark>=85) a++;
else if(mark>=60) p++;
else f++;
scan f("%d",&mark);
}
prin tf(">=85:%d\n",a);
prin tf("60-84:%d\n",p);
prin tf("<60:%d\n",f);
}
试题9
(1 )编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k)
计算k 的阶乘,函数返回值的类型是double o
运行示例:En ter n: 5
sum = 1.71667
#in clude
int k; double result=1; for(k=1;k<=n; k++) result*=k;
return result;
}
void mai n()
{
int i,n; double x,sum; //double fact(i nt n); prin tf("E nter n:"); sca nf("%d",&n); sum=0;
for(i=1;i<=n ;i++) sum=sum+1/fact(i); prin tf("sum = %.5f\n",sum); } (2)
输入一个正实数
x 和一个正整数n,求下列算式的值。要求定义和调用2个函数:fact(n)
计算n 的阶乘;mypow(x, n)计算x 的n 次幕(即x n ), 2个函数的返回值类型都是 double 。
2
3
4
x
x
x
x
2! 3! 4!
#include
int k; double result=1; for(k=1;k<=n; k++)
result*=k; return result;
}
double mypow(double x,i nt n) {
int k; double result=1; for(k=1;k<=n; k++)
result*=x; return result; }
void mai n() {
int i,n; double x,sum; prin tf("E nter x,n :”); sca nf("%lf%d",& x,&n); sum=0;
for(i=1;i<=n ;i++) sum=sum+mypow(-1,i-1)*mypow(x,i)/fact(i); prin tf("sum = %.2f\n",sum); }
模拟二
试题7
从n 个不同的元素中,每次取出 k 个不同的元素,不管其顺序合并成一组, 称为组合。组合种数计算公式如下 :
n! (n k)!k!
定义函数fact(n)
计算n 的阶乘n!,函数返回值类型是
double o
1)n 1
(1)