您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > 中国石油大学(华东)C语言习题答案
付子文C语言习题集1C语言复习题【设计型】5.1输出一行星号编写程序在一行中输出N个星号。输入:N值输出:一行中N个星号#includestdio.hintmain(){inta,i;scanf(%d,&a);for(i=1;i=a;i++)printf(*);printf(\n);return0;}【设计型】5.2打印平行四边形输入图形的高n,输出如下例(n=5)所示的图形.*************************输入:付子文C语言习题集2整数n例如5输出:由*组成的高为5的平行四边形#includestdio.hintmain(){inti,j,num;scanf(%d,&num);for(i=0;inum;i++){for(j=0;jnum;j++)printf(*);printf(\n);}return0;}【设计型】5.3编程计算编写程序,输入n的值,求:1-1/2+1/3-1/4+1/5-1/6+1/7-...+1/n(保留四位小数)#includestdio.hintmain(){doublen,i,sum,k=1.0;scanf(%lf,&n);付子文C语言习题集3i=1,sum=0;while(i=n){sum=sum+k/i;i++;k=-k;(用这个式子实现正负交替)}printf(sum=%.4lf\n,sum);return0;}【设计型】5.4分数序列有一个分数序列:...............,输入整数n,求出其前n项的和。输出语句格式为:printf(sum=%16.10f\n,s);#includestdio.hintmain(){intn,a,b,i,temp;doublesum;scanf(%d,&n);i=1,sum=0,a=2,b=1;while(i=n)付子文C语言习题集4{sum=sum+a*1.0/b;temp=a;a=a+b;b=temp;(几个式子实现数值的变换)i++;}printf(sum=%16.10f\n,sum);return0;}【设计型】5.5求e的值编写程序,从键盘输入整数n,求e的值.e=1+1/1!+1/2!+1/3!+..+1/n!注意:用double型数据计算输出语句:printf(sum=%16.10f\n,sum);#includestdio.hintmain(){intn,i;doublesum,jc;scanf(%d,&n);i=1,sum=1.0jc=1.0;while(i=n){jc=jc*i;sum=sum+1.0/jc;i++;}printf(sum=%16.10f\n,sum);return0;}【设计型】5.6最大公约数付子文C语言习题集5输入两个正整数m和n,求它们的最大公约数和最小公倍数比如,输入m和n的值分别为14和21,则最大公约数为7,最小公倍数为42。#includestdio.hintmain(){intyu,m,n,temp,bei,ji;scanf(%d%d,&m,&n);if(mn)temp=m,m=n,n=temp;ji=m*n;yu=m%n;while(yu!=0){m=n;n=yu;yu=m%n;}(最大公约数求法)bei=ji/n;(最小公倍数求法)printf(thegreatestcommondivisoris%d\n,n);printf(theleastcommonmultipleis%d\n,bei);return0;}【设计型】5.7水仙花数付子文C语言习题集6输出所有的水仙花数。所谓的水仙花数是指一个3位数,其各位数字立方和等于该数本身。例如153是一水仙花数,因为153=13+53+33输出语句:printf(%d\n,n);#includestdio.hintmain(){inta,b,i,j,k;for(i=1;i=9;i++){for(j=0;j=9;j++){for(k=0;k=9;k++)(三重循环从1到999){a=i*i*i+j*j*j+k*k*k;b=100*i+10*j+k;if(a==b)printf(%d\n,b);}}}return0;}【设计型】5.8完数一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,且6=1+2+3,因此6是完数,从键盘上输入一个正整数,判断其是否为完数。如果是,则按照如下格式输出。比如,输入6,则输出Yes,itsfactorsare123;如果输入8,则输出No#includestdio.hintmain()付子文C语言习题集7{intyinzi,num,i,sum=0;scanf(%d,&num);for(yinzi=1;yinzinum;yinzi++){if(num%yinzi==0)sum=sum+yinzi;}if(sum==num){printf(Yes,itsfactorsare);for(i=1;inum;i++){if(num%i==0)printf(%d,i);}(输出因子具体值)printf(\n);}elseprintf(No\n);return0;}【设计型】5.9素数输入两个正整数m和n,求出[m,n]区间的所有素数付子文C语言习题集8#includestdio.hintmain(){intm,n,i,j,tag=1;scanf(%d%d,&m,&n);for(i=m;i=n;i++){for(j=2;ji;j++){if(i%j==0){tag=0;break;}elsetag=1;}if(tag)printf(%d,i);}printf(\n);return0;付子文C语言习题集9}【设计型】5.10回文数输入一个数,判断是否为回文数,如果是,输出Yes,否则输出No#includestdio.hintmain(){doublenum;scanf(%lf,&num);intmin=0,max=num;while(max0){min=min*10+(int)max%10;(将数字反过来)max=max/10;}if(num==min)printf(Yes\n);elseprintf(No\n);return0;}【设计型】5.11贪吃的猴子有一只猴子,第一天摘了若干个桃子,当即吃了一半,但还觉得不过瘾,就又多吃了一个。第2天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃付子文C语言习题集10了两个。以后每天早上都吃了前一天剩下的一半加天数个(例如,第5天吃了前一天剩下的一半加5个)。到第n天早上再想吃的时候,就只剩下一个桃子了。输入:天数n输出:第一天的桃子个数,输出语句为printf(Themonkeygot%dpeachsinfirstday.\n,sum);Smaple:Input:5OutputThemonkeygot114peachsinfirstday.提示:问题分析:总共t0日吃掉剩余1t0/2+1t0-(t0/2+1)=t0/2-1t1=t0/2-1=t0=(t1+1)*22t1/2+2t1-(t1/2+2)=t1/2-2t2=t1/2-2=t1=(t2+2)*2....n-1tn-2/2+(n-1)tn-2-(tn-2/2+(n-1))=tn-2/2-(n-1)tn-1=tn-2/2-(n-1)=tn-2=(tn-1+n-1)*2n10tn-1=1#includestdio.hintmain(){付子文C语言习题集11inti,t,sum;scanf(%d,&t);sum=1;for(i=t;i1;i--){sum=(sum+i-1)*2;?}printf(Themonkeygot%dpeachsinfirstday.\n,sum);return0;}【创新型】5.12马戏团观众人数一个马戏团表演,n个座位全满,全部门票收入是120元,现在知道,男人每人5元,女人每人2元,小孩每人1角。编程,输入总人数n,输出满足要求的男人、女人和小孩人数的全部方案。若n人无法满足条件,则输出“Nooutput\n”。输入:人数n输出:男人、女人和小孩人数#includestdio.hintmain(){intman,woman,child,total,sum,tag=0;scanf(%d,&total);for(man=0;man=total;man++){付子文C语言习题集12for(woman=0;woman=(total-man);woman++){child=total-man-woman;sum=50*man+20*woman+1*child;if(sum==1200){tag=1;printf(%d%d%d\n,man,woman,child);}}}if(tag==0)printf(Nooutput\n);return0;}【设计型】5.13迭代法用迭代法求.求平方根的迭代公式为:要求前后两次求出的x的差的绝对值小于10-5。#includestdio.h#includemath.h付子文C语言习题集13intmain(){doublex,a,b;doublei;scanf(%lf,&x);b=x;for(i=1;;){a=i;i=(i+x/i)/2;if(fabs(i-a)=0.00001){printf(Thesquarerootof%.2lfis%.5lf\n,b,i);break;}}return0;}【设计型】5.14cos(x)-x=0利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。Xn+1=cos(Xn)迭代步骤如下:(1)取X1初值为0.0;(2)X0=X1,把X1的值赋给X0;(3)X1=cos(X0),求出一个新的X1;(4)若X0-X1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2);付子文C语言习题集14(5)所求X1就是方程cos(X)-X=0的一个实根,输出X1,输出语句为printf(x=%lf,x);。提示:本题x0和x1定义为double类型#includestdio.h#includemath.h#includestdlib.hintmain(){doublex0,x1;for(x1=0;;){x0=x1;x1=cos(x0);if(fabs(x0-x1)=0.000001){printf(x=%lf\n,x1);break;}}return0;}【设计型】5.15求一个三位数,其值等于其各位阶乘之和付子文C语言习题集15编写程序,求某三位数,该数值的大小正好是组成这个数的三个位上的数字阶乘之和。输出格式:printf(%d\n,num);#includestdio.hintmain(){inti,j,k,l,ge,shi,bai,s1,s2,s3;for(i=100;i=999;i++){ge=i%10;shi=i%100/10;bai=i/100;s1=1;s2=1;s3=1;for(j=1;j=ge;j++)s1=s1*j;for(k=1;k=shi;k++)s2=s2*k;for(l=1;l=bai;l++)s3=s3*l;if(i==s1+s2+s3){付子文C语言习题集16printf(%d\n,i);break;}}}【研究创新型】6.1谁能出线背景:电视台举办“超级学生”才艺大赛,由于报名人数狂多,所以要先进行分组预赛。按规定,每10名学生为一个预赛小组,评委打出分数(0~100分),各小组第一名可以进入下一轮;如果有多名学生得分相同都是第一名,则可同时进入下一轮。输入:按顺序给出一个小组10个人的最后得分(int)。输出:能够出线的学生序号(0~9)。#includestdio.hintmain(){inti,a[10],max;for(i=0;i10;i++)scanf(%d,&a[i]);max=a[0];fo
本文标题:中国石油大学(华东)C语言习题答案
链接地址:https://www.777doc.com/doc-2789135 .html