资源描述
模仿一
试题7 某客户为购房办理商业贷款,选用了按月等额本息还款法,在贷款本金(loan)和月利率(rate)一定状况下,住房贷款月还款额(money)取决于还款月数(month),计算公式如下。客户打算在5~30年范畴内选用还清贷款年限,想得到一张“还款年限-月还款额表”以供参照。
(1) 定义函数cal_power(x,n)计算xn次幂(即xn),函数返回值类型是double。
(2) 定义函数cal_money(loan,rate,month)计算月还款额,函数返回值类型是double,规定调用函数cal_power(x,n)计算xn次幂。
(3) 定义函数main(),输入贷款本金 loan(元)和月利率 rate,输出“还款年限-月还款额表”,还款年限范畴是5~30年,输出时分别精确到年和元。规定调用函数cal_money(loan,rate,month)计算月还款额。
#include<stdio.h>
double cal_power(double x,int n)
{
int k;double result=1;
for(k=1;k<=n;k++)
result*=x;
return result;
}
double cal_money(double loan,double rate,int month)
{
double result=cal_power(1+rate,month);
result=loan*rate*result/(result-1);
return result;
}
void main()
{
int k,year;double loan,money,rate;
scanf("%lf%lf",&loan,&rate);
for(year=5;year<=30;year++)
{
money=cal_money(loan,rate,12*year);
printf("year=%d,money=%.0f\n",year,money);
}
}
试题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
#include<stdio.h>
void main()
{
int mark,a,p,f;
a=p=f=0;
printf("Enter scores:");
scanf("%d",&mark);
while(mark>0)
{if(mark>=85) a++;
else if(mark>=60) p++;
else f++;
scanf("%d",&mark);
}
printf(">=85:%d\n",a);
printf("60-84:%d\n",p);
printf("<60:%d\n",f);
}
试题9
(1)编写程序,输入一种正整数n,求下列算式值。规定定义和调用函数fact(k)计算k阶乘,函数返回值类型是double。
运营示例:Enter n:5
sum = 1.71667
#include<stdio.h>
double fact(int n)
{
int k;double result=1;
for(k=1;k<=n;k++)
result*=k;
return result;
}
void main()
{
int i,n;double x,sum;
//double fact(int n);
printf("Enter n:");
scanf("%d",&n);
sum=0;
for(i=1;i<=n;i++)
sum=sum+1/fact(i);
printf("sum = %.5f\n",sum);
}
(2)输入一种正实数x和一种正整数n,求下列算式值。规定定义和调用2个函数:fact(n)计算n阶乘;mypow(x,n)计算xn次幂(即xn),2个函数返回值类型都是double。
#include<stdio.h>
double fact(int n)
{
int k;double result=1;
for(k=1;k<=n;k++)
result*=k;
return result;
}
double mypow(double x,int n)
{
int k;double result=1;
for(k=1;k<=n;k++)
result*=x;
return result;
}
void main()
{
int i,n;double x,sum;
printf("Enter x,n:");
scanf("%lf%d",&x,&n);
sum=0;
for(i=1;i<=n;i++)
sum=sum+mypow(-1,i-1)*mypow(x,i)/fact(i);
printf("sum = %.2f\n",sum);
}
模仿二
试题7
从n个不同元素中,每次取出k个不同元素,不管其顺序合并成一组,称为组合。组合种数计算公式如下:
(1) 定义函数fact(n)计算n阶乘 n!,函数返回值类型是double。
(2) 定义函数cal(k,n)计算组合种数,函数返回值类型是double,规定调用函数fact(n)计算n阶乘。
(3) 定义函数main(),输入正整数n,输出n所有组合种数(1≤k≤n),规定调用函数cal(k,n)计算组合数。
#include<stdio.h>
double fact(int n)
{
int k;double result=1;
for(k=1;k<=n;k++)
result*=k;
return result;
}
double cal(int k,int n)
{
double result=fact(n)/(fact(n-k)*fact(k));
return result;
}
void main()
{
int n,k;
scanf("%d",&n);
for(k=1;k<=n;k++)
printf("%d个数中取出%d个数所有组合种数为:%.0lf\n",n,k,cal(k,n));
}
试题8 编写程序,输入100个学生英语成绩,记录并输出该门课程平均分以及不及格学生人数。
#include<stdio.h>
void main()
{
int count,k;float a[100];double aver;
for(k=0;k<100;k++)
scanf("%f",&a[k]);
aver=0;
for(k=0;k<100;k++)
aver+=a[k];
aver/=100;
count=0;
for(k=0;k<100;k++)
if(a[k]<60) count++;
printf("aver=%lf\n",aver);
printf("fail %d\n",count);
}
试题9 编写程序,输入一种正整数n,计算并输出下列算式值。规定定义和调用函数total(n)计算1+1/2+1/3+……+1/n,函数返回值类型是double。
#include<stdio.h>
void main()
{
int n;
double total(int n);
scanf("%d",&n);
printf("sum = %f\n",total(n));
}
double total(int n)
{
int k;double sum=0;
for(k=1;k<=n;k++)
sum=sum+1.0/k;
return sum;
}
试题10
(1)输入一种职工月薪salary,计算并输出应交个人所得税tax = rate * (salary-850)。其中rate计算方式如下:
当 salary ≤850 时,rate = 0;
当 850 < salary ≤ 1350 时,rate = 5%;
当 1350 < salary≤ 2850 时,rate = 10%;
当 2850 < salary ≤ 5850 时,rate = 15%;
当 5850 < salary 时,rate = 20%。
#include<stdio.h>
void main()
{
double rate,salary,tax;
scanf("%lf",&salary);
if(salary<=850) rate=0;
else if(salary<=1350) rate=0.05;
else if(salary<=2850) rate=0.1;
else if(salary<=5850) rate=0.15;
else rate=0.2;
tax=rate*(salary-850);
printf("tax=%.2lf",tax);
}
(2)输出一张平方根表(如下表所示),x取值范畴是[5,1000],请调用库函数sqrt()计算平方根。
x
sqrt(x)
5
2.24
6
2.45
…
…
999
31.61
1000
31.62
#include<stdio.h>
#include<math.h>
void main()
{
int x;
printf("x sqrt(x)\n");
for(x=5;x<=1000;x++)
printf("%d %f\n",x,sqrt(x));
}
(3)输入一种字符串(少于80个字符),再输入一种字符,记录并输出该字符在字符串中浮现次数。
#include<stdio.h>
void main()
{
char str[80],ch;
int count=0,i=0;
gets(str);
ch=getchar();
for(i=0;str[i]!='\0';i++)
if(str[i]==ch) count++;
printf("count=%d\n",count);
}
春
试题7 程序设计题
1) 定义函数fact(n)计算n阶乘: n!= 1 * 2 * …… * n,函数返回值类型是double。
2) 定义函数cal(m,n)计算累加和:,函数返回值类型是double。
3) 定义函数main(),输入正整数n,计算并输出下列算式值。该算式中,每一项分子是累加和,规定调用函数cal(m,n)计算;每一项分母是阶乘,规定调用函数fact(n)计算n!。
#include <stdio.h>
double fact(int n)
{ if(n==1)return 1;
else return fact(n-1)*n;
}
double cal(int m,int n)
{ double sum=0;int i;
for(i=m;i<=n;i++) sum=sum+i;
return sum;
}
void main()
{ int n,i;double s=1;
scanf("%d",&n);
for(i=2;i<=n;i++) s=s+cal(1,i)/fact(i);
printf("%f",s);
}
秋
试题7 (28分)
1、 定义函数fact(n)计算n阶乘: n!= 1 * 2 * …… * n,函数返回值类型是double。
2、定义函数cal(e) 计算下列算式值,直到最后一项绝对值不不小于e,函数返回值类型是double。
3、定义函数main(),输入正整数n,当精度e分别取值为、、、……、时,分别计算并输出下列算式值,直到最后一项绝对值不不小于精度e,以比较不同精度下算出成果。规定调用函数cal(e)计算下列算式值。
#include <stdio.h>
#include <math.h>
double fact(int n)
{ if(n==1)return 1;
else return fact(n-1)*n;
}
double cal(double e)
{ double s=0;int i=1;
while(1/fact(i)>=e) {s=s+1/fact(i);i++;}
return s;
}
void main()
{ int n,i;double s=0;
scanf("%d",&n);
for(i=1;i<=n;i++) printf("%lf\n",cal(pow(10,-i)));
}
春
试题7 (28分)
(4) 定义函数fact(n)计算n阶乘: n!= 1 * 2 * …… * n,函数形参n类型是int,函数类型是double。
(5) 定义函数cal(x,e) 计算下列算式值,直到最后一项值不不小于e,函数形参x和e类型都是double,函数类型是double。规定调用自定义函数fact(n)计算n阶乘,调用库函数pow(x,n)计算xn次幂。
(6) 定义函数main(),输入两个浮点数x和e,计算并输出下列算式值,直到最后一项值不不小于精度e。规定调用自定义函数cal(x,e)计算下列算式值。
#include <stdio.h>
#include <math.h>
double fact(int n)
{ if(n==1)return 1;
else return fact(n-1)*n;
}
double cal(double x,double e)
{ double s=0,t=x;int i;
for(i=1;t>=e;i++) {t=pow(x,i)/fact(i);s=s+t;}
return s;
}
void main()
{ float x,e;
scanf("%f%f",&x,&e);
printf("%lf\n",cal(x,e));
}
秋
二、程序编写(每题14分,共28分)
1.编写程序,输入 100个整数,将它们存入数组a中,查找并输出数组a中最小值。
#include <stdio.h>
main()
{ int i,a[100],min;
for(i=0;i<100;i++)
scanf("%d",&a[i]);
min=a[0];
for(i=0;i<100;i++)
if(a[i]<min) min=a[i];
printf("数组a中最小值为:%d ",min);
}
2.按下面规定编写程序:
(1)定义函数cal_power(x,n)计算xn次幂(即xn),函数返回值类型是double。
(2)定义函数main(),输入浮点数x和正整数n,计算并输出下列算式值。规定调用函数cal_power(x,n)计算xn次幂。
#include <stdio.h>
double cal_power(float x,int n)
{ int i;
double m=1;
for(i=1;i<=n;i++)
m=m*x;
return m;
}
main()
{ float x;
int i,n;
double s=0;
printf("请输入浮点数x和正整数n:");
scanf("%f%d",&x,&n);
for(i=1;i<=n;i++)
s=s+1.0/cal_power(x,i);
printf("体现式值为%lf\n",s);
}
春
二、程序编写(每题14分,共28分)
1.编写程序,输入 100个整数,将它们存入数组a,求数组a中所有奇数之和。
#include <stdio.h>
main()
{ int i,a[100];long s=0;
for(i=0;i<100;i++)
{scanf("%d",&a[i]);
if(a[i]%2!=0) s=s+a[i];
}
printf("数组a中奇数之和为%ld\n",s);
}
2.按下面规定编写程序:
(1)定义函数total(n)计算 ,函数返回值类型是int。
(2)定义函数main(),输入正整数n,计算并输出下列算式值。规定调用函数total( n)计算 。
#include <stdio.h>
int total(int n)
{ int i,s=0;
for(i=1;i<=n;i++)
s=s+i;
return s;
}
main()
{ int i,n;
float s=0;
printf("请输入正整数n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
s=s+1.0/total(i);
printf("体现式值为%f\n",s);
}
展开阅读全文