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

知ing

大學(xué)C/C++語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)教程

陽(yáng)小華 羅晨暉 編 / 電子工業(yè)出版社

王大膽 上傳

查看本書

實(shí)驗(yàn)3 循環(huán)結(jié)構(gòu)實(shí)驗(yàn)(1

任務(wù)1 while語(yǔ)句程序設(shè)計(jì)

1.分析并修改下面的程序,使該程序能正常結(jié)束運(yùn)行。

?#include <stdio.h>

?main()

{ ?int x,y;

???x=2; y=0;

???while (!y--)

???printf (“%d,%d\n”,x, y);

}

2.下列程序中,while循環(huán)的循環(huán)次數(shù)為___6次___。

?#include <stdio.h>

?main()

{ int i=0;

???while(i<10)

{ if(i==5) ?break;

i++;

}

????printf (“%d\n”,i);

}

3.下面是一個(gè)計(jì)算e的近似值(使誤差小于給定的數(shù)值)的程序。

#include<stdio.h>

main()

{ ?double e=1.0,x=1.0,y,detax;

???int i=1;

???printf("please input enter :\n");

???scanf("%lf",&detax);

???y=1/x;

???while(y>=detax)

???{

?????x=x*i;

?????y=1/x;

?????e=e+y;

?????++i;

???}

???printf("%12.10f",e);

}

參考答案:

實(shí)驗(yàn)要求:

1)閱讀上面的程序,寫出程序所依據(jù)的計(jì)算公式。

e=1+1/1!+1/2!+1/3!+....+1/n!

2)當(dāng)輸入的detax各是什么值時(shí),能分別使程序按下面的要求運(yùn)行:

a.不進(jìn)入循環(huán);detax>1.0

b.只循環(huán)兩次;detax>0.5&&detax<=1.0

c.進(jìn)入死循環(huán)(程序?qū)⒂肋h(yuǎn)循環(huán)下去)。 ?<=0

3)原程序中while語(yǔ)句中的y>=detax,分別換成y>detax,y=detax,y<detax,y<=detax,觀察程序運(yùn)行將會(huì)有什么變化。

4.編寫程序。對(duì)輸入的任意的一個(gè)正整數(shù)按反序輸出。例如,輸入147,輸出741。

參考答案:

#include "stdio.h"

void main()

{

??int x,i;

??scanf("%d",&x);

??while(x!=0)

??{ i=x%10;

????x=x/10;

????printf("%d",i);

??}

}

任務(wù)2 ?do-while語(yǔ)句程序設(shè)計(jì)

1.分析并修改下面的程序,使該程序能正常結(jié)束運(yùn)行。

?#include <stdio.h>

?main()

{ int x=0;

???do{

x++;

}while(x==2);

????printf (“%d\n”,x);

}

2.有以下兩段程序,比較輸出結(jié)果并分析原因。

(一)

main()

{ int x=0;

while(x<0) x++;

?printf (“%d\n”,x);

} ??????

結(jié)果為:0

main()

{ int x=0;

????do{ x++;

}while(x<0);

????printf (“%d\n”,x);

} ??????????

結(jié)果為:1

兩段程序結(jié)果不同,是因?yàn)?/span>x的初始值為0,從而使循環(huán)條件不成立。當(dāng)循環(huán)條件不成立一次都不成立時(shí),do……while循環(huán)會(huì)比while循環(huán)多執(zhí)行一次循環(huán)體。

3下列程序中,do_while循環(huán)的循環(huán)次數(shù)為__ 無(wú)限次____。

#include <stdio.h>

main()

{ int i=0;

??do{ if(i==6) ?continue;

??????i=i+2;

??}while(i<10);

??printf ("%d\n",i);

}

4.運(yùn)行下列程序,輸出結(jié)果為_______sum=4000_______。

#include "stdio.h"

#define N 100

main( )

{ int x=0,sum=0;

??do{ if(x==(x/5*5))

????????continue;

????????sum=sum+x;

?????}while(++x<N);

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

}

5.求 1!+2!+3!+4!+5!+6!+7!+8!+9!+10!

??請(qǐng)?zhí)羁諏⑾旅娴某绦蜓a(bǔ)充完整:

?答案:4037913

#include <stdio.h>

main( ?)

{ ?int j,m,p,s;

???s=0;

???m=1 ;

???do

???{ ?p=1;

??????j=1 ;

?????while(j<=m)

??????{ ?p*=j;

?????????j++;

???????} ?

?????s=s+p;

?????m++;

???} while(m<=10);

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

}

6. 編寫程序。每個(gè)蘋果0.8元,第一天買2個(gè)蘋果,第二天開始,每天買前一天的2倍,直至購(gòu)買的蘋果總個(gè)數(shù)到不超過(guò)100的最大值,求每天平均花多少錢? ?答案:9.92

參考答案:

#include "stdio.h"

void main()

{

???int x,sum,day;

???double ave=0;

???x=2;

???day=1;

???sum=2;

???do

???{x=2*x;

????sum=sum+x;

????day++;

???}while(sum<=100);

???ave=(sum-x)*0.8/(day-1);

???printf("%lf",ave);

}

?

實(shí)驗(yàn)4 循環(huán)結(jié)構(gòu)實(shí)驗(yàn)(2

任務(wù)1 ?for語(yǔ)句程序設(shè)計(jì)

1.分析并修改下面的程序,使該程序能正常結(jié)束運(yùn)行。

#include <stdio.h>

main()

{ ?int i;

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

???printf ("%d\n",i);

}

2.分析并修改下面的程序,使sum的值為1+2+……+10的和。

#include <stdio.h>

main( )

{ ?int i=1,sum=0;

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

????????sum=sum+i;

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

}

3.運(yùn)行下列程序,輸出結(jié)果為_________sum=15________。

#include <stdio.h>

main()

{ ?int i,sum=0;

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

???{ ?sum=sum+i;

??????if(i==5) ?break;

???}

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

}

4.運(yùn)行下列程序,輸出結(jié)果為_______sum=4000________。

#include <stdio.h>

main()

{ ?int i,sum=0;

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

???{ ?if((i%5)==0) ?

??????continue;

??????sum=sum+i;

????}

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

}

5.運(yùn)行下列程序,輸出結(jié)果為_______?sum=60________。

#include <stdio.h>

main()

{ ?int i,j,sum=0;

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

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

????????sum=sum+j;

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

}

6.程序填空。求出1000以內(nèi)能被13整除的最大數(shù)。

#include "stdio.h"

main()

{ ?int i;

???for(?i=1000 ;?i>0 ;i--)

???if(?i%13==0 )

??????break;

???printf("\n%d",i);

}

7.程序填空。求如下Fibonacci 數(shù)列1,1,2,35,8,…… 的前40個(gè)數(shù),要求每一行輸出8個(gè)數(shù)。?

參考答案:

#include <stdio.h>

?main( )

?{ ?long f1,f2;

????int i;

????f1=1; f2=1;

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

????{ printf("%10ld%10ld",f1,f2);

??????if(?i%4==0 ) ?printf("\n");

??????f1=f1+f2;

??????f2=f2+f1;

????}

?}

8.程序填空。從鍵盤輸入10個(gè)不為0的整型數(shù),統(tǒng)計(jì)其中負(fù)數(shù)的個(gè)數(shù)并求出所有正數(shù)的平均值。

參考答案:

#include <stdio.h>

main( ?)

{ int i,x,count=0;

??float ave=0;

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

??{ scanf("%d",&x);

?????if(x>0)

????????ave+=?x ;

?????else

????????count++ ?;

??}

??if(count!=10)

?????ave/=?10-count ;

??printf("count:%d,Average:%f\n",count,ave);

}

9.帕多瓦數(shù)列:1,1,1,2,2,3,4,5,7,9,12,16,21,…求出這個(gè)數(shù)列的前20項(xiàng)之和。

參考答案:

方法1《一次一項(xiàng)》

#include "stdio.h"

main()

{ ?int f1=1,f2=1,f3=1,f,sum=3,i;

???printf("%d %d %d",f1,f2,f3);

???for(i=4;i<=20;i++)

???{ ?f=f1+f2;

??printf(" %d",f);

??sum=sum+f;

??f1=f2;

??f2=f3;

??f3=f;

???}

???printf("\nsum=%d",sum);

}

?

方法2《一次3項(xiàng)》

#include "stdio.h"

main()

{ ?int f1=1,f2=1,f3=1,sum=0,i;

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

???{ printf("%4d%4d%4d",f1,f2,f3);

?sum=sum+f1+f2+f3;

?f1=f1+f2;

?f2=f2+f3;

?f3=f3+f1;

???}

???printf("\nsum=%d",sum-f3+f1);

}

10.統(tǒng)計(jì)能被4整除而且個(gè)位數(shù)為6的4位數(shù)的個(gè)數(shù)及和。

參考答案:

#include "stdio.h"

main()

{ ?int i,sum=0,count=0;

???for(i=1000;i<=9999;i++)

?if(i%10==6&&i%4==0)

?{ count++;

???sum=sum+i;

?}

???printf("個(gè)數(shù)為:%8d,總和為:%8d\n",count,sum);

}

11.求1100之間所有素?cái)?shù)的個(gè)數(shù)及和。

參考答案:

#include <stdio.h>

#include <math.h>

main()

{ ??int m,n,i,j,k,sum=0;

????n=0;

????for(m=2;m<=100;m++) ????

????{ ??k=(int)sqrt(m); ??????

????i=2;

????????while(m%i!=0&&i<=k) ???????

??????????????????i++;

????????if(i==k+1)

{n++;sum=sum+m; }

????}

????printf("共有%8d個(gè)素?cái)?shù),總和為%8d\n",n,sum);

}

12.(1)編寫程序輸出下面的數(shù)字金字塔。

??????????????????????????????1

?????????????????????????????121

????????????????????????????12321

???????????????????????????1234321

??????????????????????????123454321

參考答案:

#include<stdio.h>

main()

{

???int n=5, i,j;

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

???{

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

???????printf(" " );

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

???????printf("%d",j );

?????for(j=i-1;j>=1;j--)

???????printf("%d",j );

?????printf("\n");

???}

}

12.(2)編寫程序輸出下面的數(shù)字金字塔。

??????????????????????????????1

?????????????????????????????222

????????????????????????????33333

???????????????????????????4444444

??????????????????????????555555555

????參考答案:

#include<stdio.h>

main()

{

??int n=5, i,j;

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

??{

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

??????printf(" " );

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

??????printf("%d",i );

????printf("\n");

??}

}


查看更多