收藏 分销(赏)

2022年二级C语言资料模拟及历年试卷编程题答案.doc

上传人:精**** 文档编号:9844318 上传时间:2025-04-10 格式:DOC 页数:16 大小:110.04KB
下载 相关 举报
2022年二级C语言资料模拟及历年试卷编程题答案.doc_第1页
第1页 / 共16页
2022年二级C语言资料模拟及历年试卷编程题答案.doc_第2页
第2页 / 共16页
点击查看更多>>
资源描述
模仿一 试题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); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服