C语言习题答案2012年版- 副本- 副本(2)

2019-06-11 00:57

}

else y=x*x-3*x+10; printf(\

习题5答案

选择题

1. A 2. A 3. D 4. C 5. D 6. A 7. D 8. D 9. B 10. C 阅读程序,写结果

11.1 -2 12.2 0 13.*** 14.2,4,6,8,10, 15.46.000000 16.852 17.利用近似公式???1?111???...求357π的值,直到最后一项的绝对值小于10为止。

-6

#include

#include main()

{ double pi=0,i=1,j=1,k; do {

k=i/j; pi=pi+k; i=-i; j=j+2;

}while (fabs(k)>1.0e-6); printf(\}

18.求两个数的最大公约数和最小公倍数。最大公约数:用大数整除小数,得到余数1; 再用小数整除余数1,得到余数2;再用余数1整除余数2,??直到余数为0。最小公倍数:两数相乘再除以最大公约数。 #include #include main()

{ int m,n,r,x,y;

scanf(\ x=m; y=n;

if (m

{ m=n; n=r; }

printf(\the max common divisor is %d,the min common multiple is %d\}

19.从3个红球、5个白球、6个黑球中任意取出6个球,且其中必须有白球,编程输出所有可能的组合。

#include main() {

int i,j,k;

printf(\ for(i=0;i<=3;i++) for(j=1;j<=5;j++) { k=6-i-j;

if(k>=0) printf(\ } }

20.如果一个数等于其所有真因子(不包括该数本身)之和,则该数为完数。例如:6的真因子有1、2、3,且6=1+2+3,故6为完数。求[2,1000]内的: (1)最大的完数; (2)完数数目。

#include main()

{ int a,i,m,number=0,max=0; for(a=1;a<=1000;a++) { m=0;

for(i=1;i<=a/2;i++) if(a%i==0) m=m+i;

if(m==a) { number++, max=m;} }

printf(\}

习题6答案

一、选择题

1.C 2.A 3.A 4.D 5.A 6.A 7.C 8.B 9.B 10.C 11.B 12.B 13.A 14.D 15.C 16.C 17.C 18.C 19.A 20.D 21.B 22.B 23.C 24.A 25.C 26.D 27.C 28.D

二、写出下列程序的运行结果

1.7 2.12 3.9 4.8,17 5.5 6 6.8,8 7.3 6 9 12 8.10 9.7

5

10.64 54 11.300 12.6 13.2

三、编程题(以下各题均用函数实现)

1.超级素数:一个素数依次从低位去掉一位、两位??若所得的数依然是素数,如239就是超级素数。试求100~9999之内: (1)超级素数的个数; (2)所有超级素数之和; (3)最大的超级素数。 解:(1)spn=30 (2)sps=75548 (3)spm=7393 #include #include main()

{ int i,s=0,k=0,m,max=100; for(i=9999;i>=100;i--) { m=i;

while(m>1) if(fun(m))m=m/10; else break; if(m<=0) { if(max

printf(\超级素数的个数为:],所有超级素数之和为:],最大的超级素数为]\\n\}

int fun(int n) {

int k,i; k=sqrt(n);

for(i=2;i<=k;i++) if(n%i==0)break; if(i>=k+1)return 1; else return 0; }

2.其平方等于某两个整数平方和的正整数称为弦数,例如因52=32+42,故5是弦数,求(121,130)这间的弦数个数以及最大和最小的弦数。 解:n=4 max=130 min=122 参考程序1(用函数方法实现): #include main() {

int k,maxnum,minnum; k=count(121,130);

maxnum=max(121,130); minnum=min(121,130);

printf(\弦数的个数为:%d,最大的弦数为:%d,最小的弦数为:%d\\n\}

int count(int m,int n) { int i,j,k,t=0,flag; for(i=m;i<=n;i++) { flag=0;

for(j=1;j

if(flag==1)t++; }

return t; }

int min(int m,int n) { int i,j,k,t=0;

for(i=m;i<=n;i++) for(j=1;j

printf(\最小的弦数为:M\\n\ return i; } }

int max(int m,int n) { int i,j,k,t=0;

for(i=n;i>=m;i--) for(j=1;j

3.有一个8层灯塔,每层所点灯数都等于该层上一层的两倍,一共有765盏灯,求塔底的灯数。 解:384

#include main( ) {

int i,t; t=fun(8);

for(i=1;i<8;i++) t=t*2;

printf(\}

int fun(int m) {

int i,j,n=1,sum; for(i=1;i<=765;i++) { sum=i; n=i;

for(j=1;j

sum=sum+n; }

if(sum==765) break; }

return i; }

4.编写程序,求?n!的结果。

110解:4037913 参考程序1: #include


C语言习题答案2012年版- 副本- 副本(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:根据安县人事局关于做好2009年度全县机关事业单位技术工人晋升(

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: