全國(guó)二級(jí)等級(jí)考試2012-9輔導(dǎo)-多媒體課件第5講_第1頁(yè)
全國(guó)二級(jí)等級(jí)考試2012-9輔導(dǎo)-多媒體課件第5講_第2頁(yè)
全國(guó)二級(jí)等級(jí)考試2012-9輔導(dǎo)-多媒體課件第5講_第3頁(yè)
全國(guó)二級(jí)等級(jí)考試2012-9輔導(dǎo)-多媒體課件第5講_第4頁(yè)
全國(guó)二級(jí)等級(jí)考試2012-9輔導(dǎo)-多媒體課件第5講_第5頁(yè)
已閱讀5頁(yè),還剩66頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

5.1while語(yǔ)句5.2do-while語(yǔ)句5.3for語(yǔ)句5.4循環(huán)的嵌套5.5break、continue和goto語(yǔ)句5.6程序舉例第5講循環(huán)結(jié)構(gòu)程序設(shè)計(jì)2C語(yǔ)言有while、do-while、for三種循環(huán)結(jié)構(gòu)語(yǔ)句。前兩個(gè)稱(chēng)為條件循環(huán),即根據(jù)條件來(lái)決定是否繼續(xù)循環(huán);后一個(gè)稱(chēng)為計(jì)數(shù)循環(huán),即根據(jù)設(shè)定的執(zhí)行次數(shù)來(lái)執(zhí)行循環(huán)。5.1while語(yǔ)句及其循環(huán)結(jié)構(gòu)while語(yǔ)句和格式及執(zhí)行過(guò)程:格式:while(表達(dá)式)

語(yǔ)句執(zhí)行過(guò)程:先計(jì)算表達(dá)式之值,若為非0(即條件成立),執(zhí)行后面的語(yǔ)句(稱(chēng)之為循環(huán)體)之后,再計(jì)算表達(dá)式之值進(jìn)行判斷,如此多次重復(fù)執(zhí)行循環(huán)體;若表達(dá)式之值為0(即條件不成立),跳出循環(huán)體語(yǔ)句,繼續(xù)向下執(zhí)行。while語(yǔ)句的流程圖表達(dá)式語(yǔ)句(循環(huán)體)Y(非0)N(0)while(表達(dá)式)語(yǔ)句例1求1—100之間所有整數(shù)的和i<=100sum+=i;/*累加*/i+=1;/*計(jì)數(shù)器加1*/Y(非0)N(0)i=1;sum=0;printf("i=%d,sum=%d\n",i,sum);求1—100之間整數(shù)和的程序main(){inti=1,sum=0;while(i<=100){sum+=i;i+=1;}printf("i=%d,sum=%d\n",i,sum);}這是一個(gè)while語(yǔ)句想一想,語(yǔ)句sum+=i;和語(yǔ)句i+=1;能否改變位置?為什么?想一想,如果在while語(yǔ)句之前對(duì)變量sum賦初值為1,是否可以?程序的哪些地方應(yīng)作相應(yīng)的改動(dòng)?求1—100之間整數(shù)和的程序運(yùn)行過(guò)程main(){inti=1,sum=0;while(i<=100){sum+=i;i+=1;}printf("i=%d,sum=%d\n",i,sum);}這是一個(gè)while語(yǔ)句程序執(zhí)行的過(guò)程和結(jié)果如下:i=101,sum=5050注意:循環(huán)結(jié)束后,變量i的值一定大于100。想想這樣的一段循環(huán)語(yǔ)句的執(zhí)行結(jié)果:i=1;while(i<=100)putchar(‘*’);i++;這個(gè)循環(huán)永遠(yuǎn)不會(huì)結(jié)束,因?yàn)檠h(huán)控制變量i沒(méi)有在循環(huán)體內(nèi)被改變,i++;不屬于循環(huán)體。應(yīng)該改為:i=1;while(i<=100){putchar(‘*’);i++;}

循環(huán)語(yǔ)句中一定要注意表達(dá)式的值是否能在循環(huán)執(zhí)行過(guò)程中被改變,以免造成死循環(huán)。5.2do-while語(yǔ)句及其循環(huán)結(jié)構(gòu)do—while語(yǔ)句和格式及執(zhí)行過(guò)程:格式:do語(yǔ)句while(表達(dá)式);執(zhí)行過(guò)程:先執(zhí)行語(yǔ)句(稱(chēng)之為循環(huán)體),

然后計(jì)算表達(dá)式之值,若為非0(即條件成立),再執(zhí)行語(yǔ)句(循環(huán)體)后計(jì)算表達(dá)式之值,如此多次重復(fù)執(zhí)行循環(huán)體并判斷條件;若表達(dá)式之值為0(即條件不成立),結(jié)束循環(huán),繼續(xù)向下執(zhí)行。do—while語(yǔ)句的流程圖表達(dá)式語(yǔ)句(循環(huán)體)Y(非0)N(0)注意:while循環(huán)語(yǔ)句與do-while循環(huán)語(yǔ)句的區(qū)別。這是一個(gè)do-while語(yǔ)句用do-while語(yǔ)句求100以?xún)?nèi)正整數(shù)的和main(){inti=1,sum=0;do{sum+=i;i+=1;}while(i<=100);printf("i=%d,sum=%d\n",i,sum);}i=101,sum=5050從鍵盤(pán)上輸入10個(gè)整數(shù),求總和及平均值main(){intx,sum=0,i=1;floataver;while(i<=10){scanf("%d",&x);sum+=x;i++;}aver=sum/10.0;printf("sum=%d,aver=%.2f\n",sum,aver);}5.3for語(yǔ)句格式:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)

語(yǔ)句執(zhí)行:(1)先求解表達(dá)式1的值。

(2)再求解表達(dá)式2的值,若值為非0(條件成立),則執(zhí)行語(yǔ)句(循環(huán)體)后執(zhí)行下面的(3);若表達(dá)式2的值為0(條件不成立),則轉(zhuǎn)向(5)。

(3)求解表達(dá)式3的值。

(4)轉(zhuǎn)回執(zhí)行(2)。

(5)執(zhí)行for語(yǔ)句后面的語(yǔ)句。for語(yǔ)句執(zhí)行流程圖表達(dá)式2語(yǔ)句(循環(huán)體)Y(非0)N(0)表達(dá)式1表達(dá)式3for(表達(dá)式1;表達(dá)式2;表達(dá)式3)

語(yǔ)句求1~100之間的整數(shù)之和(for語(yǔ)句)main(){inti,sum;for(i=1,sum=0;i<=100;i++)sum+=i;printf("i=%d,sum=%d\n",i,sum);}i=101,sum=5050求1~100之間的整數(shù)之和(for語(yǔ)句)main(){inti,sum;

for(;i<=100;i++)sum+=i;printf("i=%d,sum=%d\n",i,sum);}i=101,sum=5050表達(dá)式1可缺省,放在循環(huán)之前,但for語(yǔ)句中的第一個(gè)分號(hào)不能省略i=1;sum=0;求1~100之間的整數(shù)之和(for語(yǔ)句)main(){inti,sum;

for(;i<=100;)sum+=i;printf("i=%d,sum=%d\n",i,sum);}i=101,sum=5050表達(dá)式3可缺省,放在循環(huán)體之中,但for語(yǔ)句中的第二個(gè)分號(hào)不能省略i=1;sum=0;i++;求1~100之間的整數(shù)之和(for語(yǔ)句)main(){inti,sum;

for(i=1,sum=0;i<=100;sum+=i,i++)

printf("i=%d,sum=%d\n",i,sum);}i=101,sum=5050循環(huán)體中的內(nèi)容可以放在表達(dá)式3中,但要在花括號(hào)的后面加一個(gè)空語(yǔ)句;for語(yǔ)句的一般格式在for語(yǔ)句中,一般表達(dá)式1用來(lái)為變量賦初值;表達(dá)式2一般用來(lái)設(shè)置循環(huán)結(jié)束條件;表達(dá)式3一般用于循環(huán)變量增值。故for語(yǔ)句的一般格式為:for(變量賦初值;執(zhí)行循環(huán)體的條件;循環(huán)變量增值)

語(yǔ)句例:求1/100+2/99+…+1分析:用變量i從1開(kāi)始循環(huán),每次增加1;用變量j從100開(kāi)始循環(huán),每次減少1。累加i/j的值到s中。當(dāng)i>j時(shí)結(jié)束循環(huán)(即i<=j時(shí)繼續(xù)循環(huán))。最后輸出s。#include<stdio.h>main(){inti,j;floats=0;for(i=1,j=100;i<=j;i++,j--)s=s+(float)i/j;printf(“\ns=%f”,s);}例:任意輸入一個(gè)自然數(shù),把它反序輸出。(如:原數(shù)為123,輸出321)。分析:此題不確定循環(huán)執(zhí)行的次數(shù),也不涉及一個(gè)規(guī)律變化的變量,一般用while或do-while來(lái)編寫(xiě)。又由于第一次就要判斷輸入的是否是自然數(shù),通常用while來(lái)實(shí)現(xiàn)。算法步驟如下:1.定義整型變量a用于存儲(chǔ)輸入的自然數(shù),定義t初值為0用于存放a的反序數(shù),定義i用于依次存放求出的a的每一位的數(shù)值。2.輸入一個(gè)自然數(shù)賦值給變量a3.若a>0,執(zhí)行第4步,否則執(zhí)行第7步4.i=a%105.t=t*10+i6.a=a/10,并返回第3步7.輸出t程序:#include<stdio.h>main(){longa,i,t=0;scanf(“%ld”,&a);while(a>0){i=a%10;t=t*10+i;a=a/10;}printf(“\n%ld”,t);}1、有以下程序main(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}執(zhí)行后的輸出結(jié)果是A)5B)24C)32D)402006-92、若變量已正確定義,有以下程序段i=0;doprintf("%d,",i);

while(i++);printf("%d\n",i);其輸出結(jié)果是A)0,0B)0,1C)1,1D)程序進(jìn)入無(wú)限循環(huán)3、有以下程序

#include<stdio.h>

main()

{int

y=9;

for(;y>0;y--)

if(y%3==0)

printf("%d",--y);

}程序的運(yùn)行結(jié)果是A)741

B)963

C)852

D)8754212007-92007-94、以下程序的輸出結(jié)果是()#include<stdio.h>main(){

intn=12345,

d;

while(n!=0){d=n%10;printf("%d",d);n/=10;}}5、有以下程序段,且變量已正確定義和賦值for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));printf("s=%f\n\n",s);請(qǐng)?zhí)羁?使下面程序段的功能與之完全相同s=1.0;k=1;while(________){s=s+1.0/(k*(k+1));_______;}printf("s=%f\n\n",s);2007-9543212007-9k<=nk++6、以下程序的輸出結(jié)果是()#include<stdio.h>main(){inti;

for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');

printf("\n");}2007-9ACE7、有以下程序#include<stdio.h>main(

){intx=8;

for(

;

x>0;

x--){if(x%3){

printf("%d,"

,

x--);continue;}

printf("%d.",--x);}}

程序運(yùn)行的結(jié)果是

A)7,4,2,B)8,7,5,2,C)9,7,6,4,

D)8,5,4,2,2008-48、以下不構(gòu)成無(wú)限循環(huán)的語(yǔ)句或語(yǔ)句組是A)n=0;B)n=0;do{++n;}while(n<=0);while(1){n++;}C)n=10;

D)for(n=0,i=1;

;i++)n+=i;while(n);{n--;}15、若有定義:int

k;,以下程序段的輸出結(jié)果是(##2##4)

for(k=2;k<6;k++,k++)

printf("##%d",k);2008-49、有以下程序

#include

<stdio.h>

main()

{

int

i=5;

do

{if(i%3==1)

if(i%5==2)

{

printf("*%d",i);

break;

}

i++;

}while(i!=0);

printf("\n");

}程序的運(yùn)行結(jié)果是A)*7

B)*3*5

C)*5

D)*2*62008-910、設(shè)變量已正確定義,以下不能統(tǒng)計(jì)出一行中輸入字符個(gè)數(shù)(不包含回車(chē)符)的程序段是A)n=0;while((ch=getchar())!='\n')n++;B)n=0;while(getchar()!='\n')n++;C)for(n=0;getchar()!='\n';n++);D)n=0;for(ch=getchar();ch!='\n';n++);2009-311、有以下程序#include

<stdio.h>main(){

char

c1,c2;

scanf("%c",&c1);

while(c1<65||c1>90)

scanf("%c",&c1);

c2=c1+32;

printf("%c,%c\n",c1,c2);}程序運(yùn)行輸入65回車(chē)后,能否輸出結(jié)果,結(jié)束運(yùn)行(請(qǐng)回答能或不能)【】2009-3不能12、以下程序運(yùn)行后的輸出結(jié)果是【】#include<stdio.h>main(){

int

k=1,s=0;

do{

if((k%2)!=0)

continue;

s+=k;k++;

}while(k>10);

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

2009-3s=013、下列程序運(yùn)行時(shí),若輸入labcedf2df<回車(chē)>輸出為【

】#include<stdio.h>main(){

chara=0,ch;while((ch=getch())!='\n'){if(a%2!=0

&&

(ch>='a'&&ch<='z'))ch=ch-'a'+'A';

a++;putchar(ch);}printf("\n");}

2009-31AbCeDf2dF14、有以下程序#include<stdio.h>main(){

int

c=0,k;

for(k=1;k<3;k++)

switch(k)

{

default:c+=k;

case

2:c++;break;

case

4:c+=2;break;

}

printf("%d\n",c);}程序運(yùn)行后的輸出結(jié)果是A)3B)5C)7D)92009-915、有以下程序#include<stdio.h>main(){

int

n=2,k=0;

while(k++&&n++>2);

printf("%d

%d\n",k,n);}程序運(yùn)行后的輸出結(jié)果是A)0

2B)1

3C)5

7D)1

22009-916、以下程序運(yùn)行后的輸出結(jié)果是【】#include

<stdio.h>main(){

int

a=1,b=7;

do{

b=b/2;a+=b;

}

while

(b>1);

printf("%d\n",a);}2009-9517、有一下程序#include

<stdio.h>main(){

int

f,f1,f2,i;

f1=0;f2=1;

printf("%d

%d

",f1,f2);

for(i=3;i<=5;i++)

{

f=f1+f2;

printf("%d",f);

f1=f2;

f2=f;

}

printf("\n");}程序運(yùn)行后的輸出結(jié)果是【01123】

2009-91、有以下程序#include<stdio.h>

main(){inta=l;b=2;

for(;a<8;a++){b+=a;a+=2;}

printf("%d,%d\n",a,b);

}程序運(yùn)行后的輸出結(jié)果是

A)9,18

B)8,11

C)7,11

D)10,14

2010年3月1、有以下程序

#include<stdio.h>

main(){inta=1,b=2;

while(a<6){b+=a;a+=2;b%=10;}

printf("%d,%d\n",a,b);

}程序運(yùn)行后的輸出結(jié)果是

A)5,11

B)7,1

C)7,11

D)6,12010年9月2、有以下程序

#include<stdio.h>

main()

{inty=10;

while(y--);

printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是

A)y=0

B)y=-1

C)y=1

D)while構(gòu)成無(wú)限循環(huán)2010年9月1、有以下程序main(){ints;scanf("%d",&s);while(s>0){switch(s){case1:printf("%d",s+5);case2:printf("%d",s+4);break;case3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}運(yùn)行時(shí),若輸入123450<回車(chē)>,則輸出結(jié)果是A)6566456B)66656C)66666D)66666562011年3月2、有以下程序段inti,n;for(i=0;i<8;i++){n=rand()%5;switch(n){case1:case3:printf("%d\n",n);break;case2:case4:printf("%d\n",n);continue;case0:exit(0);}printf("%d\n",n);}以下關(guān)于程序段執(zhí)行情況的敘述,正確的是A)for循環(huán)語(yǔ)句固定執(zhí)行8次B)當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)結(jié)束循環(huán)操作C)當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時(shí)不做任何操作D)當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí)結(jié)束程序運(yùn)行2011年3月3、若i和k都是int類(lèi)型變量,有以下for語(yǔ)句for(i=0,k=-1;k=1;k++)printf("*****\n");下面關(guān)于語(yǔ)句執(zhí)行情況的敘述中正確的是A)循環(huán)體執(zhí)行兩次B)循環(huán)體執(zhí)行一次C)循環(huán)體一次也不執(zhí)行D)構(gòu)成無(wú)限循環(huán)2011年3月4、有以下程序#include<stdio.h>main(){charb,c;inti;b='a';c='A';for(i=0;i<6;i++){if(i%2)putchar(i+b);elseputchar(i+c);}printf("\n");}程序運(yùn)行后的輸出結(jié)果是A)ABCDEFB)AbCdEfC)aBcDeFD)abcdef2011年3月4、有以下程序段#include<stdio.h>main(){…while(getchar()!='\n');…}以下敘述中正確的是A)此while語(yǔ)句將無(wú)限循環(huán)B)getchar()不可以出現(xiàn)在while語(yǔ)句的條件表達(dá)式中C)當(dāng)執(zhí)行此while語(yǔ)句時(shí),只有按回車(chē)鍵程序才能繼續(xù)執(zhí)行D)當(dāng)執(zhí)行此while語(yǔ)句時(shí),按任意鍵程序就能繼續(xù)執(zhí)行2011年3月5、有以下函數(shù)voidprt(charch,intn){inti;for(i=1;i<=n;i++)printf(i%6!=0?"%c“:"%c\n",ch);}執(zhí)行調(diào)用語(yǔ)句prt('*',24);后,函數(shù)共輸出了【】行*號(hào)。2011年3月41、有以下程序main(){inta=7;

while(a--);

printf("%d\n",a);}程序運(yùn)行后的輸出結(jié)果是()。A)-1B)0C)1D)72、以下程序運(yùn)行后的輸出結(jié)果是【】。main(){inti,j;

for(i=6;i>3;i--)j=i;

printf("%d%d\n",i,j);}2011年9月A343、以下程序運(yùn)行后的輸出結(jié)果是【】。

main(){chara;

for(a=0;a<15;a+=5){putchar(a+'A');}printf("\n");

}2011年9月AFK5.4循環(huán)嵌套一個(gè)循環(huán)體中又包含了另一個(gè)完整的循環(huán)結(jié)構(gòu),叫做循環(huán)的嵌套。三種循環(huán)結(jié)構(gòu)可以互相嵌套。循環(huán)嵌套的執(zhí)行過(guò)程是:外循環(huán)執(zhí)行一次,內(nèi)循環(huán)執(zhí)行一個(gè)全過(guò)程。循環(huán)嵌套舉例:輸出一個(gè)圖形main(){inti,j;for(i=1;i<=4;i++){for(j=1;j<=3;j++)printf("*");printf("\n");}}************/*外循環(huán)控制輸出圖形的行數(shù)*//*內(nèi)循環(huán)控制每行輸出的數(shù)量*/循環(huán)嵌套語(yǔ)句第一個(gè)語(yǔ)句是循環(huán)語(yǔ)句,實(shí)現(xiàn)輸出3個(gè)*號(hào)第二個(gè)語(yǔ)句是簡(jiǎn)單語(yǔ)句,輸出一個(gè)換行符main(){printf("***\n");printf("***\n");printf("***\n");printf("***\n");}main(){inti,j;for(i=1;i<=4;i++)printf("***\n");}循環(huán)嵌套舉例:輸出一個(gè)圖形main(){inti,j;for(i=1;i<=4;i++){for(j=1;j<=i;j++)printf("*");printf("\n");}}**********/*外循環(huán)控制輸出圖形的行數(shù)*//*內(nèi)循環(huán)控制每行輸出的數(shù)量*/循環(huán)嵌套語(yǔ)句第一個(gè)語(yǔ)句是循環(huán)語(yǔ)句,實(shí)現(xiàn)輸出若干個(gè)*號(hào)第二個(gè)語(yǔ)句是簡(jiǎn)單語(yǔ)句,輸出一個(gè)換行符5.5

break語(yǔ)句和continue語(yǔ)句break語(yǔ)句格式:break;功能:提前結(jié)束循環(huán),從循環(huán)體中無(wú)條件跳轉(zhuǎn)到循環(huán)語(yǔ)句后面執(zhí)行。可用于switch語(yǔ)句和循環(huán)結(jié)構(gòu)中。continue語(yǔ)句格式:continue;結(jié)束本次循環(huán),即在本次循環(huán)中,不再執(zhí)行循環(huán)體中continue后面的語(yǔ)句。只能用于循環(huán)結(jié)構(gòu)。break語(yǔ)句的使用#definePI3.14159main(){intr;floatarea;for(r=1;r<=10;r++){area=r*r*PI;if(area>100)break;printf("r=%d\tarea=%.2f\n",r,area);}}計(jì)算半徑為1~10的圓面積,面積大于100時(shí)停止。r:1area:3.14r:2area:12.57r:3area:28.27r:4area:50.27r:5area:78.54r:6area:113.10定義一個(gè)符號(hào)常量PI觀察r和area的值r=1area=3.14r=2area=12.57r=3area=28.27r=4area=50.27r=5area=78.54帶有break;語(yǔ)句的for循環(huán)就有兩個(gè)出口即r>10或者area>100。continue語(yǔ)句的使用輸出1~7之間所有不能被3整除的整數(shù)。main(){intn;for(n=1;n<=7;n++){if(n%3==0)continue;printf("%5d",n);}}n:1觀察n的值n:2n:3n:4n:5n:6n:7n:8124575.6循環(huán)結(jié)構(gòu)程序舉例:

連續(xù)級(jí)數(shù)求和判斷一個(gè)數(shù)是否為素?cái)?shù)求出100~200之間的所有素?cái)?shù)求π的近似值求π的近似值,直到最后一項(xiàng)絕對(duì)值小于10-6π111——=1-——+——-——……4357求π的近似值算法流程圖pi=pi+t;n+=2;s=-s;t=s/n;|t|>=10-6定義變量pi(和),n(分母),s(符號(hào)),t(項(xiàng)值)0→pi,1→n,1→s,1→tYNpi=pi*4;輸出n和pi的值求π的近似值,直到最后一項(xiàng)絕對(duì)值小于10-6π111——=1-——+——-——…4357求π的近似值程序main(){ints=1;longn=1;floatpi=0,t=1;/*s存放符號(hào),n存放分母*/while(

fabs(t)1e-6){pi=pi+t;

n=n+2;s=-s;

t=(float)s/n;}/*實(shí)現(xiàn)s的+1和-1交替出現(xiàn)*/pi=pi*4;printf("pi=%f\n",pi);}/*累加*/>=/*分母加2*/pi=3.141594/*pi存放和,t存放項(xiàng)值*//*計(jì)算下一個(gè)項(xiàng)值*/掌握在循環(huán)體中實(shí)現(xiàn)正負(fù)相間的技巧判斷整數(shù)m是否為素?cái)?shù)素?cái)?shù)即為質(zhì)數(shù),如果一個(gè)整數(shù)只能被1或者它本身整除,這個(gè)數(shù)就稱(chēng)為是素?cái)?shù)。判斷素?cái)?shù)的算法是:

讓m被2~m-1之間所有的整數(shù)整除,如果m能被2~m-1之中的任何一個(gè)整數(shù)整除,則提前結(jié)束循環(huán),此時(shí)m一定不是素?cái)?shù);如果在2~m-1之間不存在能被m整除的整數(shù),則終止循環(huán),此時(shí)循環(huán)變量的值一定大于或者等于m。判斷整數(shù)m是否為素?cái)?shù)算法流程圖定義變量m(被判斷數(shù)),i(循環(huán)變量)輸入m的值N

i<mi=2;NYYm%i==0結(jié)束

i>=m輸出m是素?cái)?shù)YN輸出m不是素?cái)?shù)break;i++;for循環(huán)不是素?cái)?shù)是素?cái)?shù)判斷整數(shù)m是否為素?cái)?shù)程序main(){intm,i;scanf("%d",&m);for(i=2;i<m;i++)if(m%i==0)break;for語(yǔ)句有兩個(gè)出口,i>=m和break;if(i>=m)printf("\n%d是素?cái)?shù)\n",m);elseprintf("\n%d不是素?cái)?shù)\n",m);}循環(huán)結(jié)束后根據(jù)i的值來(lái)決定m是否為素?cái)?shù)判斷整數(shù)m是否為素?cái)?shù)程序2#include<math.h>main(){intm,i,k;scanf("%d",&m);k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;for語(yǔ)句有兩個(gè)出口,i>k和break;if(i>k)printf("\n%d是素?cái)?shù)\n",m);elseprintf("\n%d不是素?cái)?shù)\n",m);}循環(huán)結(jié)束后根據(jù)i的值來(lái)決定m是否為素?cái)?shù)判斷整數(shù)m是否為素?cái)?shù)程序3main(){intm,i,k,flag;scanf("%d",&m);k=sqrt(m);flag=1;for(i=2;i<=k;i++)if(m%i==0){flag=0;break;}if(flag==1)printf("\n%d是素?cái)?shù)\n",m);elseprintf("\n%d不是素?cái)?shù)\n",m);}/*定義變量flag作為標(biāo)志變量*//*變量flag賦初值1*//*如果m是素?cái)?shù),flag賦0*/例:求3~150中所有素?cái)?shù)的和。

算法分析:

1.用變量a從3到150循環(huán),每次值增加12.用變量i從2到a-1循環(huán),每次值增加13.若a%i==0,結(jié)束i的循環(huán),執(zhí)行第4步

4.若i==a,把a(bǔ)累加到s上。

5.輸出s的值

注意:此題中執(zhí)行第4步時(shí)有兩種情況。第一種:在第3步中發(fā)現(xiàn)了滿(mǎn)足a%i==0的情況,直接跳出了i的循環(huán),此時(shí)的i一定是在2到a-1中間的一個(gè)值,而且a不是素?cái)?shù)。第二種:一直沒(méi)有發(fā)現(xiàn)滿(mǎn)足a%i==0的i,在i==a時(shí),不再滿(mǎn)足i循環(huán)的執(zhí)行條件,i循環(huán)結(jié)束,此時(shí)的a是素?cái)?shù)!程序:#include<stdio.h>main(){inta,s=0,i;for(a=3;a<=150;a++){for(i=2;i<a;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論