二级C语言资料模拟及历年考试编程题答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 double cal_power(double x,i nt n)

{

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 double fact(i nt n) {

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 double fact(i nt n) {

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)

相关文档
最新文档