精品午夜福利中文字av_国产成人综合网_av毛片免费观看网站_欧美影视国产综合_野花香视频中文免费观看_亚洲无码要在线视频_又粗又大又用力大交换好大好爽小静_欧美贵妇v办公室高跟鞋_亚洲国产高清a∨网站_免费中文少妇亚洲

知ing

大學(xué)C/C++語(yǔ)言程序設(shè)計(jì)基礎(chǔ)(第2版)

陽(yáng)小華,馬淑萍 著 / 電子工業(yè)出版社

冥沙 上傳

查看本書

習(xí)題5答案

一、選擇題

1-10 ????CDABC ??DABDC

11-20 ???DDDBD ??B(AC)CDC ??17題有2個(gè)答案AC

?

二、寫出下列程序的運(yùn)行結(jié)果

1. ?64202. ?2 03. ?54. ??ACEG

5. ?###6. 2,4,6,8,107. 46.0

8. 8 5 29. asDhEF10. 12,72

三、編程題(參考答案)

1.利用近似公式π的值,直到最后一項(xiàng)的絕對(duì)值小于10-6為止。

#include<stdio.h>

#include<math.h>

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("pi is %lf",4*pi);

}

?

2.輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、數(shù)字、空格的個(gè)數(shù)。

#include<stdio.h>

main()

{ ?char t;

int n1=0,n2=0,n3=0;

do

?{scanf("%c",&t);

?if(t=='\n')break;

?else

???{if((t>='A'&&t<='Z')||(t>='a'&&t<='z')) n1++;

????if(t==' ')n2++;

????if(t>='0'&&t<='9') n3++;

???}

??}while(1);

???printf("字符個(gè)數(shù)為:%d ,空格個(gè)數(shù)為:%d ,數(shù)字個(gè)數(shù)為:%d",n1,n2,n3);

?}

3.3個(gè)紅球、5個(gè)白球、6個(gè)黑球中任意取出6個(gè)球,且其中必須有白球,編程輸出所有可能的組合。

?

#include<stdio.h>

main()

{

int i,j,k;

??printf("\n hong bai hei\n");

?for(i=0;i<=3;i++)

????for(j=1;j<=5;j++)

????{??k=6-i-j;

???????if(k>=0) printf(" %3d %3d %3d\n",i,j,k);

????}

}

?

4.如果一個(gè)數(shù)等于其所有真因子(不包括該數(shù)本身)之和,則該數(shù)為完數(shù)。例如:6的真因子有1、2、3,且6=1+2+3,故6為完數(shù)。求[2,1000]內(nèi)的:

1)最大的完數(shù); ??(2)完數(shù)數(shù)目。

#include<stdio.h>

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("number is %d,?max is %d\n",?number,?max);

}

?

習(xí)題6答案

一、選擇題

1D ????2A?????3A ?????4C ????5B ????6B ????7C

8B ????9B ???10C ???11B ???12B ???13A ???14B

15C ???16C ???17C ???18D ???19A ???20B ???21C

22B ???23C ???24A ???25C ???26D ???27C ???28D

?

二、寫出下列程序的運(yùn)行結(jié)果

17 ?????????2t=7531 ????????31 3 6 ?????48,17 ???????55 ?6

68,8 ??????73 ?6 ?9 ?12 ???810 ???????93918 ??

1064 ?54 ??11-20 ???????????1215 ??????132 ???????14.y=923

?

三、編程題(以下各題均用函數(shù)實(shí)現(xiàn))

1.超級(jí)素?cái)?shù):一個(gè)素?cái)?shù)依次從低位去掉一位、兩位……若所得的數(shù)依然是素?cái)?shù),如239就是超級(jí)素?cái)?shù)。試求100~9999之內(nèi):

1)超級(jí)素?cái)?shù)的個(gè)數(shù);

2)所有超級(jí)素?cái)?shù)之和;

3)最大的超級(jí)素?cái)?shù)。

解:(1spn=30????????2sps=75548??????3spm=7393

#include<stdio.h>

#include<math.h>

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<i) max=i;

?k++;

?s=s+i;

?}

??}

??printf("超級(jí)素?cái)?shù)的個(gè)數(shù)為:%5d,所有超級(jí)素?cái)?shù)之和為:%5d,最大的超級(jí)素?cái)?shù)為%5d\n",k,s,max);

}

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.其平方等于某兩個(gè)整數(shù)平方和的正整數(shù)稱為弦數(shù),例如因52=32+42,故5是弦數(shù),求(121,130)這間的弦數(shù)個(gè)數(shù)以及最大和最小的弦數(shù)。

解:n=4 ?????????max=130 ???????min=122

參考程序1(用函數(shù)方法實(shí)現(xiàn))

#include<stdio.h>

main()

{

??int k,maxnum,minnum;

??k=count(121,130);

??maxnum=max(121,130);

??minnum=min(121,130);

??printf("弦數(shù)的個(gè)數(shù)為:%d,最大的弦數(shù)為:%d,最小的弦數(shù)為:%d\n",k,maxnum,minnum);

}

?

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<i;j++)

???????for(k=j;k<i;k++)

??if(i*i==j*j+k*k)

??{

flag=1;

printf("%4d,%4d,%4d\n",j,k,i);//顯示出不重復(fù)的弦數(shù)的組合情況

???????????}

??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<i;j++)

??????for(k=j;k<i;k++)

??if(i*i==j*j+k*k)

??{

printf("最小的弦數(shù)為:%4d\n",i);

????????????return i;

??}

?}

int max(int m,int n)

{ int i,j,k,t=0;

??for(i=n;i>=m;i--)

??for(j=1;j<i;j++)

??????for(k=j;k<i;k++)

??if(i*i==j*j+k*k)

??{

printf("最大的弦數(shù)為:%4d\n",i);

????????????return i;

??}

}

?

3有一個(gè)8燈塔,每層所點(diǎn)燈數(shù)都等于該層上一層的兩倍,一共有765盞燈,求塔底的燈數(shù)。

解:384

#include <stdio.h>

main( )

{

??int i,t;

??t=fun(8);

??for(i=1;i<8;i++)

?t=t*2;

??printf("t=%d\n",t);

}

int fun(int m)

{

??int i,j,n=1,sum;

??for(i=1;i<=765;i++)

??{ ??sum=i;

??????n=i;

??for(j=1;j<m;j++)

??{ ?n=n*2;

????????sum=sum+n;

??}

??if(sum==765) ?break;

???}

??return i;

}

4編寫程序,求的結(jié)果。

解:4037913

參考程序1

#include <stdio.h>

main( )

{

??int i;

??long s=0;

??for(i=1;i<=10;i++)

??s=s+fun(i);

??printf("s=%ld\n",s);

}

?

long fun(int n)

{

??int j;

??long t=1;

??for(j=1;j<=n;j++)

??t=t*j;

??return t;

}

參考程序2(遞歸算法)

#include <stdio.h>

main( )

{

??int i;

??long s=0;

??for(i=1;i<=10;i++)

??s=s+fun(i);

??printf("s=%ld\n",s);

}

?

long fun(int n)

{

??long t;

??if(n==1)t=1;

??else t=n*fun(n-1);

??return t;

}

5已知y?=,其中f(x,?n) =?1?-?x2?/?2!?+?x4?/?4!?-?(-1)nx2n?/??(2n)!n0,當(dāng)x?=?5.6,n?=?7時(shí)y的值。

0.007802

#include<stdio.h>

double fun(double x,int n)

{

??int i,t=1,m=1;

??double s=1.0,w=1.0;

??for(i=1;i<=2*n;i++)

??{ ???

??w=w*x;

??t=t*i;

??if(i%2==0)

??{ m=-m;s=s+m*w/t;}

??}

??return s;

}

main()

{

double x=5.6;

int n=7;

double p,q,t,s;

p=fun(x,n);

q=fun(x+2.3,n);

t=fun(x-3.2,n+3);

????s=p/(q+t);

printf("%lf\n",s);

}

6編寫程序求三個(gè)數(shù)的最小公倍數(shù)。

#include<stdio.h>

int fun(int x,int y,int z)

{ ??int j,t,m,n;

j=1;

t=j%x;

m=j%y;

n=j%z;

while(t!=0||m!=0||n!=0)

{ ??j=j+1;

????t=j%x;

m=j%y;

n=j%z;

}

return j;

}

main()

{

int x1,x2,x3,j;

printf("Input x1 ??x2 ??x3: ");

scanf("%d%d%d",&x1,&x2,&x3);

printf("x1=%d,x2=%d,x3=%d\n",x1,x2,x3);

j=fun(x1,x2,x3);

printf("The minimal common multiple is: %d\n",j);

}

?

7.已知:,編寫程序,求S的值。

例如,當(dāng)k10時(shí),S的值應(yīng)為:1.533852。

#include<stdio.h>

double fun(int k)

{

int n;

double s,w,p,q;

n=1;

s=1.0;

while(n<=k)

{ ??w=2.0*n;

????p=w-1.0;

q=w+1.0;

s=s*w*w/p/q;

n++;

}

return s;

}

main()

{

printf("%f\n",fun(10));

}

?


查看更多