资源描述:
《C语言课程设计实习报告.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、C语言课程设计实习报告班级:姓名:王涛学号:2014-7题目一、题目描述:已知银行整存整取存款不同期限的月息利率(采用复利方式,即利滚利)分别为0.63%期限一年0.66%期限二年月息利率=0.69%期限三年0.75%期限五年0.85%期限八年要求输入存钱的本金和期限(以整数年为单位),求到期时能从银行得到的利息与本金的合计。设计思路:用嵌套的if-else结构或switch结构实现,核心函数pow(1+月利率,月份)。然后用这个函数计算每次的结果。运行效果截图:附源程序如下:#include#inclu
2、demain(){intyear;floatrate,corpus;doublec;printf("请输入存入本金:");scanf("%f",&corpus);printf("请输入存放时间(单位:年):");scanf("%d",&year);if(year>=8){rate=0.0085;c=corpus*pow(1+rate,year*12);}elseif(year>=5&&year<8){rate=0.0075;c=corpus*pow(1+rate,year*12);}elseif(y
3、ear>=3&&year<5){rate=0.0069;c=corpus*pow(1+rate,year*12);}elseif(year>=2&&year<3){rate=0.0066;c=corpus*pow(1+rate,year*12);}else{rate=0.0063;c=corpus*pow(1+rate,year*12);}printf("总收入为=%f",c);return0;}题目二、题目描述:编写程序,用二分法求方程2x3-4x2+3x-6=0在(-10,10)之间的根。设计思路:①用do-whi
4、le语句实现。②二分法的计算步骤:(1)准备计算f(x)在有根区间[a,b]端点处的值f(a),f(b)(2)二分计算f(x)在区间中点(a+b)/2处的值f[(a+b)/2](3)判断若f[(a+b)/2]=0,则即是根,计算过程结束。否则,检测:A.若f[(a+b)/2]与f(a)异号,则根位于区间[a,(a+b)/2]内,这时以(a+b)/2代替b;B.若f[(a+b)/2]与f(a)同号,则根位于区间[(a+b)/2,b]内,这时以(a+b)/2代替a;反复执行步骤2和3,直到区间[a,b]长度缩小到允许的误差范围
5、之内,此时中点(a+b)/2即为所求的根。运行效果截图:附源程序如下:#include#includemain(){floatx1,x2,x0,fx1,fx2,fx0;do{printf("请输入区间范围x1和x2");scanf("%f%f",&x1,&x2);fx1=2*x1*x1*x1-4*x1*x1+3*x1-6;fx2=2*x2*x2*x2-4*x2*x2+3*x2-6;}while(fx1*fx2>0);/*该循环语句实现:确保区间范围内有零点,否则将一直重新输入区间范围*
6、/do{x0=(x1+x2)/2;fx0=2*x0*x0*x0-4*x0*x0+3*x0-6;if((fx0*fx1)<0){x2=x0;fx2=fx0;}else{x1=x0;fx1=fx0;}/*标准2分发算法*/}while(fabs(fx0)>1e-5);/*精度*/printf("%f",x0);}题目三、题目描述:已有一个已排好序的10元素整型数组,要求输入一个数后,按原来排序的规律将它插入数组中。设计思路:首先准备一个11个空间的一维数组,然后把用户输入的数放到最后一个地址,并依次和前面的数作比较直到比前
7、面一个数大就好,此时打印这11个数。运行效果截图:附源程序如下:#includevoidmain(){inta[30]={7,10,13,16,20,24,26,46,68,69,99};//11个数,最后一个是a[10]//inti,n;//n为从键盘录入的一个整数//printf("请输入一个整数");scanf("%d",&n);printf("这个原数组为:");for(i=0;i<11;i++)//将原数组a的11个元素先打印出来//printf("%d",a[i]);printf("
8、n");for(i=10;i>=-1;i--)//从原数组a的第11个也就是最后一个元素开始和整数n比较大小//{if(a[i]>n)//如果a数组的第i个元素比n大,则把第i个元素往后移一个位置//a[i+1]=a[i];/*这里值得注意的是,当输入的数小于a[0],则下次循环比较是a[-1]与n比,