C語言階段性知識點總結 4

2022-06-21 23:51:04 字數 3421 閱讀 5489

石家莊市求實電腦職業培訓學校

全國計算機等級考試二級c語言程式設計

階段性知識點總結(4)

知識點範圍:第五章

第五章迴圈結構

根據條件的成立與否,某些語句被執行多次的結構被稱為「迴圈結構」

[, ] while當型迴圈的使用方法:【教程第50頁~55頁】

1、格式1:前測試當型迴圈。

while (條件)

2、格式2:後測試當型迴圈。

dowhile(條件);

3、【累加器】計算1+2+3+……+100的結果。

int i=0,sum=0;

while(i<=100)

printf(「sum=%d\n」,sum);

可將程式變為:

int i=2,sum=1;

while(i<=100)

printf(「sum=%d\n」,sum);

4、【連乘器】計算1*2*3*……*10的結果。

int i=2;

double s=1;

while(i<=10)

printf(「s=%lf\n」,s);

[, , ] for計數迴圈的使用方法【教程第55頁~57頁】

一、格式:

for(表示式1;表示式2;表示式3)

執行流程:(1)計算表示式1;

2)計算表示式2,看表示式2是否成立。

成立(表示式2結果為非0),轉向執行(3)。

不成立(表示式2結果為0),轉向執行(5)。

3)執行迴圈體。

4)計算表示式3,並轉向執行(2)。

5)退出迴圈,執行for迴圈以下的句子。

二、利用for迴圈實現累加器:

int i,sum=0;

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

sum=sum+i;

printf(「sum=%d\n」,sum);

分析:1、for迴圈一般需要乙個迴圈變數(例如:i)。

2、表示式1決定了迴圈變數的初值。

3、表示式2決定了迴圈變數的終值。

4、表示式3決定了迴圈變數的步長。

根據迴圈頭分析迴圈體的執行次數:

for(i=1;i<=10;i++) 迴圈體執行次數:10次。

for(i=0;i<=10;i++) 迴圈體執行次數:11次。

for(i=1;i<10;i++) 迴圈體執行次數:9次。

for(i=1;i<=10;i+=2) 迴圈體執行次數:5次。

結論:迴圈體執行次數=

(1)初值《終值,則步長》0。

(2)初值《終值,則步長<0。

三、例項1:輸出所有的水仙花數。【各個位的立方和等於本身的三位數】

問題1:如何表示三個數字的立方和。

方法1:a*a*a+b*b*b+c*c*c

方法2:利用數學標頭檔案)所含有的庫函式。

abs(x),返回整型資料x的絕對值。

fabs(x),返回實型資料x的絕對值。

sqrt(x),返回x的算術平方根。

pow(x,y),返回x的y次方。

exp(x),返回自然對數底e的x次方。

問題2:如何表示三位數的各個位。

設三位數為i,則:

個位:i%10

十位:i/10%10

百位:i/100

# include <>

# include <>

main()

}[, ] 分析利用for迴圈實現的累加器程式。

int i,sum=0;

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

sum=sum+i;

printf(「sum=%d\n」,sum);

1、for迴圈的三個表示式中,表示式1只執行了1次;表示式3的執行次數與迴圈體相同。

2、依據上述分析,表示式1可以刪除,放在for迴圈以外;表示式3可以刪

除,放在迴圈體以內。但是分號不能少。

int i=0,sum=0;

for(;i<=100;)

printf(「sum=%d\n」,sum);

將分號刪除的同時把for換為while,程式與利用while實現的累加器完全相同。說明for迴圈和while迴圈是可以互相轉換的。

3、表示式2也可以刪除,需要借助break形成非正常化出口。

int i=0,sum=0;

for(;;)

printf(「sum=%d\n」,sum);

4、結論:break只可以用於swithc體和迴圈體,在迴圈體中的功能為退出迴圈體,執行迴圈以下的語句。

[, ] 素數問題。【質數:只能被1和它本身整除的數】

一、輸出100以內的所有素數:

int i;

printf(「1\t2\t3\t5\t7\t」);

for(i=11;i<=97;i+=2)

if(i%3!=0 && i%5!=0 && i%7!=0) printf(「%d\t」,i);

注意:該種方法只適用於計算100以內的素數。

二、通用演算法:

1、讓任意數字x與2、3、4、……,相除,若餘數均不為0,則x為素數。

2、讓任意數字x與2、3、4、……,相除,若餘數均不為0,則x為素數。

【演算法1】利用迴圈終值判斷迴圈是否正常退出。

# include <>

include <>

main()

int x,i;

printf(「請輸入乙個整數:」);

scanf(「%d」,&x);

for(i=2;i<=sqrt(x);i++)

if(x%i==0) break;

if(i<=sqrt(x))

printf(「yes\n」);

else

printf(「no\n」);

} 【演算法2】利用標誌變數判斷迴圈是否正常退出。

# include <>

include <>

main()

int x,i,f=0;

printf(「請輸入乙個整數:」);

scanf(「%d」,&x);

for(i=2;i<=sqrt(x);i++)

if(x%i==0)

[, ] 斐波那契數列問題。

數列:1,1,2,3,5,8,13,……

數列特徵:數列中任意數為相鄰前兩數之和。

分析:在已知規律的情況下,至少知道前兩個數,數列才可以依次排開。

int f1=1,f2=1,f;

f=f1+f2;

f1=f2;

f2=f;

【題型1】輸出該數列的前20項,每五項一行。

# include <>

main()

} 【題型2】輸出該數列的第20項。

# include <>

main()

{ int f1=1,f2=1,f;

C語言知識點總結

char字元型 用於存放字元 變數賦值,初始化 int a 3 定義的同時初始化 a 6 9 定義後在程式中進行賦值 變數的值 只有在賦值操作時才會被改變,即將其放在等號左邊時才會改變它的值,或自增自減操作 a 5,a a 像a 3並未改變a的值,只是使用了a的值而已.自增自減運算 變數 變數,變數...

C語言知識點總結

c語言最重要的知識點 總體上必須清楚的 1 程式結構是三種 順序結構 選擇結構 分支結構 迴圈結構。2 讀程式都要從main 入口,然後從最上面順序往下讀 碰到迴圈做迴圈,碰到選擇做選擇 有且只有乙個main函式。3 計算機的資料在電腦中儲存是以二進位制的形式.資料存放的位置就是他的位址.4 bit...

C語言知識點總結

c語言知識點總結 1 一 常量 2 二 識別符號 2 三 變數 2 四 表示式 3 五 輸入輸出函式 4 六 c語言的語句 5 七 c程式的基本結構 5 八 選擇結構語句 5 if 表示式 語句1 else 語句2 5 條件運算子表示式1?表示式2 表示式3 6 switch語句 6 九 迴圈結構 ...