




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、01.C 程序基本結(jié)構(gòu)1、 C 語(yǔ)言的特點(diǎn):1、C語(yǔ)言源程序的基本組成單位是函數(shù);一個(gè)C程序可由若干個(gè)函數(shù)組成,其中必須有且僅有一個(gè)以main命名的主函數(shù),其余的函數(shù)名稱可由編程者自行設(shè)定。 ,2、C程序的執(zhí)行總是由main()函數(shù)的第一個(gè)可執(zhí)行語(yǔ)句開始,到 main ()函數(shù)的最后一個(gè)可執(zhí)行的語(yǔ)句結(jié)束;而其他函數(shù)都是在main ()函數(shù)開始執(zhí)行以后,通過(guò)其他函數(shù)的調(diào)用才得以運(yùn)行。3 、 C 語(yǔ)言系統(tǒng)提供了豐富的庫(kù)函數(shù),用戶在程序中需要調(diào)用某個(gè)庫(kù)函數(shù)時(shí),必須用 #include 編譯預(yù)處理命令將描述該 庫(kù)函數(shù)的頭文件包含進(jìn)去。2、 C 程序的書寫格式:1 、語(yǔ)句可從分開放在任意多行內(nèi); 如:
2、printf( “ To C, ” );printf( “ or not to C:” );與 printf( "To C , or not to 比等價(jià)的");2、一行中可以有若干個(gè)語(yǔ)句; 如: a=123;b=345;3、每個(gè)語(yǔ)句和數(shù)據(jù)定義的最后必須有一個(gè)分號(hào); 三、 C 語(yǔ)言程序的運(yùn)行:2 、編譯 (Compile) :將 C 源程序文件翻譯成能被計(jì)算機(jī)識(shí)別的二進(jìn)制形式的 “目標(biāo) ”文件;編譯時(shí),編譯器將檢查源程 序每一條語(yǔ)句的語(yǔ)法錯(cuò)誤。3 、建造(Bulid) :C 語(yǔ)言程序示例:顯示“ Hello ”#include<stdio.h> int main
3、(void) printf( “ Henllo”. ); return 0;說(shuō)明: #include<stdio.h> 是必不可少的,它包含了 C 語(yǔ)言標(biāo)準(zhǔn)輸入輸出庫(kù)的相關(guān)信息; printf 函數(shù)來(lái)自 ”標(biāo)準(zhǔn)輸入輸出庫(kù)” ,可以產(chǎn)生格式化輸出;n 告訴printf 函數(shù)執(zhí)行完信息顯示后要進(jìn)行換行操作;return 0 表明程序終止時(shí)會(huì)向操作系統(tǒng)返回值0; 來(lái)標(biāo)出 main ()函數(shù)的起始和結(jié)束。02.數(shù)據(jù)類型1、 C 語(yǔ)言的特點(diǎn):1、C語(yǔ)言源程序的基本組成單位是函數(shù);一個(gè)C程序可由若干個(gè)函數(shù)組成,其中必須有且僅有一個(gè)以main命名的主函數(shù),其余的函數(shù)名稱可由編程者自行設(shè)定。2、C
4、程序的執(zhí)行總是由main()函數(shù)的第一個(gè)可執(zhí)行語(yǔ)句開始,到 main ()函數(shù)的最后一個(gè)可執(zhí)行的語(yǔ)句結(jié)束;而其他函數(shù)都是在main ()函數(shù)開始執(zhí)行以后,通過(guò)其他函數(shù)的調(diào)用才得以運(yùn)行。3 、 C 語(yǔ)言系統(tǒng)提供了豐富的庫(kù)函數(shù),用戶在程序中需要調(diào)用某個(gè)庫(kù)函數(shù)時(shí),必須用 #include 編譯預(yù)處理命令將描述該 庫(kù)函數(shù)的頭文件包含進(jìn)去。2、 C 程序的書寫格式:1 、語(yǔ)句可從分開放在任意多行內(nèi); 如: printf( “ To C, ” );printf( “ or not to C:” );與 printf( "To C , or not to 比等價(jià)的");2、一行中可以有若
5、干個(gè)語(yǔ)句; 如: a=123;b=345;3、每個(gè)語(yǔ)句和數(shù)據(jù)定義的最后必須有一個(gè)分號(hào); 三、 C 語(yǔ)言程序的運(yùn)行:1、編譯(Compile):將C源程序文件翻譯成能被計(jì)算機(jī)識(shí)別的二進(jìn)制形式的目標(biāo)”文件;編譯時(shí),編譯器將檢查源程序每一條語(yǔ)句的語(yǔ)法錯(cuò)誤。2、建造(Bulid):C語(yǔ)言程序示例:顯示 “Hello ” #include<stdio.h> int main(void) printf(" Henio.);return 0;說(shuō)明:#include<stdio.h>是必不可少的,它包含了C語(yǔ)言標(biāo)準(zhǔn)輸入輸出庫(kù)的相關(guān)信息;printf函數(shù)來(lái)自"標(biāo)準(zhǔn)輸入
6、輸出庫(kù)”,可以產(chǎn)生格式化輸出; n告訴printf函數(shù)執(zhí)行完信息顯示后要進(jìn)行換行操作; return 0表明程序終止時(shí)會(huì)向操作系統(tǒng)返回值0; 來(lái)標(biāo)出main ()函數(shù)的起始和結(jié)束。03,運(yùn)算符和表達(dá)式1、算術(shù)運(yùn)算符和表達(dá)式 + :加法運(yùn)算符,如3+5;-:減法運(yùn)算符,如 5-3; *:乘法運(yùn)算符,如 5*8;/:除法運(yùn)算符,如 3/6;參與運(yùn)算量均為整型時(shí),結(jié)果也為整型,舍去小數(shù);若運(yùn)算量中有一個(gè)是實(shí)型,則結(jié)果為 雙精度實(shí)型。%:模運(yùn)算符,也稱 取余運(yùn)算符”,用于計(jì)算兩數(shù)相除后的余數(shù),如 5%3=2; 2、賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符:"=",其作用是將一個(gè)表達(dá)式的值賦
7、給一個(gè)變量; 其一般形式為:變量=表達(dá)式 如:x=a+b;賦值表達(dá)式的功能是計(jì)算表達(dá)式的值再賦予左邊的變量。賦值運(yùn)算符具有右結(jié)合性。因此a=b=c=5 可理解為a=(b=(c=5);復(fù)合賦值運(yùn)算符:+=、-=、*=、/=、=、>>=、<<=、&=、人=、|=構(gòu)成復(fù)合賦值表達(dá)式的一般形式為:變量雙目運(yùn)算符=表達(dá)式它等價(jià)于:變量=變量運(yùn)算符表達(dá)式如:a+=5 等價(jià)于a=a+5 x*=y+7等價(jià)于 x=x*(y+7)r%=p等價(jià)于r=r%p3、類型轉(zhuǎn)換 如果賦值運(yùn)算符兩邊的數(shù)據(jù)類型不相同,系統(tǒng)將自動(dòng)進(jìn)行類型轉(zhuǎn)換,即把賦值號(hào)右邊的類型換成左邊的類型。具體規(guī)定如下:1)實(shí)
8、型賦予整型,舍去小數(shù)部分。前面的例子已經(jīng)說(shuō)明了這種情況。2)整型賦予實(shí)型,數(shù)值不變,但將以浮點(diǎn)形式存放,即增加小數(shù)部分(小數(shù)部分的值為0)。3)字符型賦予整型,由于字符型為一個(gè)字節(jié),而整型為二個(gè)字節(jié),故將字符的ASCII碼值放到整型量的低八位中,高八位為0。整型賦予字符型,只把低八位賦予字符量。4、自增、自減運(yùn)算符:自增運(yùn)算符:“+:功能是將變量的值加1;自減運(yùn)算符:-'-",功能是將變量的值減1;可有以下幾種形式:+ii自增1后再參與其它運(yùn)算。-ii自減1后再參與其它運(yùn)算。i+i參與運(yùn)算后,i的值再自增1。i-i參與運(yùn)算后,i的值再自減1。注:(1)" +:”-的
9、操作對(duì)象只能是變量;(2) ” +”-運(yùn)算優(yōu)先級(jí)相同,且結(jié)合方向自右向左;-i+應(yīng)理解為-(i+),【例】自增、自減運(yùn)算、#include<stdio.h>main()int i=8;printf("%dn",+i);/* i先加1,再輸出i ,輸出結(jié)果為 9 */printf("%dn",-i);/* i 先減 1,再輸出 i ,結(jié)果為 8 */printf("%dn",i+);/* 先輸出i ,輸出結(jié)果為 8, i再加1, */printf("%dn",i-);/*先輸出i ,輸出結(jié)果為 9, i再
10、減1, */printf("%dn",-i+);/*先加輸出-i,輸出結(jié)果為-8, i再加1 */printf("%dn",-i-);/* 先輸出-i ,輸出結(jié)果為-9, i 再減 1 */5、求字節(jié)運(yùn)算符計(jì)算表達(dá)式的結(jié)果所占字節(jié)數(shù)或某種數(shù)據(jù)類型的定義字節(jié)數(shù)。一般格式:sizeof(數(shù)據(jù)類型標(biāo)識(shí)符)或 sizeof (表達(dá)式)如:sizeof (float)的值為4,占4個(gè)字節(jié);sizeof (2*3 )的值為2,占2個(gè)字節(jié);6、關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符:“<'小萬(wàn))、"<='小萬(wàn)等于)、" >
11、;'大汗)、” >=大于等于)、"="(等于)、"!='(不等于)關(guān)系表達(dá)式:若關(guān)系表達(dá)式成立,其值為 真”,否則為 假”;在C語(yǔ)言中,用。代表 假”,用1代表 真”;7、邏輯運(yùn)算符和邏輯表達(dá)式:邏輯運(yùn)算符:“! ”(非)、“&&” (與)、“|(或);運(yùn)算優(yōu)先級(jí):!>&&>|邏輯表達(dá)式:用邏輯運(yùn)算符將表達(dá)式連接起來(lái)的式子;邏輯表達(dá)式的結(jié)果仍然是邏輯量(真”或 假”)8、條件運(yùn)算符:一般格式:表達(dá)式1?表達(dá)式2:表達(dá)式3>先計(jì)算表達(dá)式1,若表達(dá)式1的值為真,則計(jì)算表達(dá)式 2的值,且表達(dá)式2的值
12、為整個(gè)條件表達(dá)式的值;否則,計(jì)算 表達(dá)式3的值,且表達(dá)式3的值即為整個(gè)條件表達(dá)式的值。9、逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符:”作為運(yùn)算符,其功能是將多個(gè)表達(dá)式組成一個(gè)表達(dá)式; 一般形式:表達(dá)式 1,表達(dá)式2,,表達(dá)式n求解過(guò)程:先計(jì)算表達(dá)式1,再計(jì)算表達(dá)式2,依此計(jì)算表達(dá)式 n,最終,表達(dá)式 n的值即為整個(gè)表達(dá)式的值。04.順序結(jié)構(gòu)一、概述:順序語(yǔ)句按照語(yǔ)法形式分為:表達(dá)式語(yǔ)句、函數(shù)調(diào)用語(yǔ)句、復(fù)合語(yǔ)句、流程控制語(yǔ)句和空語(yǔ)句。1、表達(dá)式語(yǔ)句:語(yǔ)法格式:表達(dá)式;如:a+4;其中賦值語(yǔ)句為最典型的表達(dá)式語(yǔ)句,如:a=5;a=b+3;特別提示:分號(hào)( ; )是表達(dá)式語(yǔ)句中不可缺少的一部分。2、函數(shù)調(diào)用
13、語(yǔ)句:如: printf ( ” I am a studen!t ”) ;其中: printf() 為系統(tǒng)提供的函數(shù),用于顯示信息。3、復(fù)合語(yǔ)句:所謂 “復(fù)合語(yǔ)句 ”即由一對(duì) “ 括起來(lái)的一組語(yǔ)句,也稱” “塊語(yǔ)句 ”或 “分程序 ”。一般形式為:語(yǔ)句 1語(yǔ)句 2.語(yǔ)句 n如:i+;j=a+3;printf("%d,j=",i,j);特別提示:復(fù)合語(yǔ)句中的最后一條語(yǔ)句的分號(hào)不得缺少;復(fù)合語(yǔ)句的“ 之后不得有分號(hào)?!?、空語(yǔ)句 :“空語(yǔ)句 ”即為一個(gè)獨(dú)立的分號(hào)。如:main ()J . 二、數(shù)據(jù)的輸入輸出C語(yǔ)言提供了一些輸入輸出函數(shù),如 printf()和scanf(),在程
14、序中調(diào)用這些輸入輸出函數(shù)時(shí),必須將標(biāo)準(zhǔn)輸入輸出頭文 件“stdio.h包'含到用戶所編寫的源程序中。如: #include <stdio.h>其中: #include 命令一般寫在程序的開頭位置。1、格式輸入輸出1、格式輸出函數(shù)printf()2 1) 一般格式: printf( 格式字符串,輸出列表)其中: “格式字符串 ”包括 “輸出字符 ”和 “格式控制字符”( 由 %和格式字符組成,指定輸出項(xiàng)的輸出格式)? d 格式符:用于輸出十進(jìn)制整數(shù);%d: 以十進(jìn)制形式顯示輸出變量的值;5 個(gè)字符的空間,若不夠5 位數(shù)字,則左側(cè)補(bǔ)空格;5 個(gè)字符的空間,左對(duì)齊;5 個(gè)字符的空
15、間并至少有3 位數(shù)字 , 若不夠 3 位數(shù)字,則左%5d:以十進(jìn)制形式顯示變量的值,且至少占用%-5d :以十進(jìn)制形式顯示變量的值,且至少占用%5.3d:以十進(jìn)制形式顯示變量的值,且至少占用側(cè)補(bǔ) 0;如: #include<stdio.h>main()int i;i=40;printf(“n%”d ,i);printf(“ %n5” d ,i);printf(“% n” ,i);printf(“ %5n.3” d ,i);? f 格式符:用于以小數(shù)形式輸出實(shí)數(shù);%10.3f: 以定點(diǎn)十進(jìn)制形式顯示變量的值,且總共用 10 個(gè)字符,其中,整數(shù)位6 位,小數(shù)位3 位,小數(shù)點(diǎn) 1位;如:
16、 #include<stdio.h>main()float x;x=839.21f;printf(“ %10n.” 3f ,x);? c 格式符:用于輸出一個(gè)字符;如: x=” a” ,y = ” b”,則 printf(%c %c",x,y) 的輸出結(jié)果為: a b若變量的值為整數(shù),則輸出該整數(shù)值為 ASCII 碼的字符:如 x=65,y=98 ,則 printf( “ %c, %c ”的輸出結(jié)果為: ,x,y)A, b;同理,一個(gè)字符的數(shù)據(jù)也可以以整數(shù)的形式輸出;如 x=' a' ,y=,'貝舊printf(" %d,%d'畬
17、出結(jié)果為:97,66? s 格式符:用于輸出一個(gè)字符串。如:printf(“ %s” , ” I am a student ! ”)? e,E格式符:用于以指數(shù)形式輸出實(shí)數(shù)。如:printf(“ %e” , 123,則輸出結(jié)果為:.456)1.234560e+002;? g,G格式符:用于輸出實(shí)數(shù),根據(jù)數(shù)值的大小自動(dòng)選擇f格式或e格式。2、格式輸入函數(shù)scanf()(1)一般格式:scanf(格式字符串,變量地址表)其中:格式字符串使用雙引號(hào)括起來(lái)的字符串,包括 “普通字符” (按原樣輸入)、 “格式控制字符” (由%和格式字符組成,用來(lái)標(biāo)定輸入數(shù)據(jù)的格式) 。變量地址表是由若干個(gè)變量地址組成
18、的表列,可以是變量的地址,也可以使字符串的首地址。? d 格式:用于輸入十進(jìn)制整數(shù);如:scanf("d,%d,&x,娜輸入格式為:123 , 3456?u格式:用于輸入十進(jìn)制無(wú)符號(hào)整數(shù);?f格式:用于輸入以小數(shù)形式的實(shí)數(shù);如:scanf( "f,%f”,&x,&O入格式為:123.23,23.456?c格式:用于輸入一個(gè)字符;如:scanf("%c,%c”,&x,&娜入格式為:a,b?s格式:用于輸入一個(gè)字符串;如:scanf(" %s"假建;a為字符數(shù)組,則輸入格式為:abcdef注:輸入的字符串中間
19、不能包含空格。特別說(shuō)明:?對(duì)于變量,” &加變量名即為該變量的地址;如: &a、&b等分別表示變量 a和變量b的地址;?對(duì)于字符串?dāng)?shù)組或字符指針型變量,數(shù)組名和指針變量名本身即為其地址;?可以在和格式字符之間加表示位數(shù)的數(shù)字;如: scanf( "5s”將);只能輸入5個(gè)字符給字符串指針p;3、字符數(shù)據(jù)的輸入輸出:(1)putchar() 函數(shù):是向標(biāo)準(zhǔn)輸入輸出設(shè)備輸出一個(gè)字符;其調(diào)用格式為: putchar(ch); 其中: ch 為一個(gè)字符變量或常量;putchar()函數(shù)作用等同于printf("%C',ch)(2)getch() ge
20、tche() 和 getchar() 函數(shù):?getch():從鍵盤上讀入一個(gè)字符,但不顯示在屏幕上;?getche():從鍵盤上讀入一個(gè)字符,顯示在屏幕上;?getchar():從鍵盤上讀入一個(gè)字符,并顯示在屏幕上,但直到輸入回車鍵時(shí)才結(jié)束輸入,第一個(gè)字符為其函數(shù)的返 回值。05.選擇結(jié)構(gòu)一、 if 語(yǔ)句:一般格式:if( 表達(dá)式 ) 語(yǔ)句;表示:當(dāng) “表達(dá)式 ”成立時(shí),則執(zhí)行 “語(yǔ)句 ”; 否則跳過(guò) “語(yǔ)句 ” ;如: if (a>b) printf( “ a>b! ” );例:若用戶輸入的數(shù)為 3 的倍數(shù),則顯示” OK”#include<stdio.h>main
21、()int a;scanf( “ %d” ,&a);if(a %3=0) printf(“ OK” );二、 if-else 語(yǔ)句:一般格式:if (表達(dá)式)語(yǔ)句1;else語(yǔ)句 2;例:給出用戶輸入的兩個(gè)整數(shù)的較大者#include<stdio.h>main()int a,b;scanf(“ %d,%d” ,&a,&b);if(a>b)printf( “ the max=%d ” ,a);elseprintf ( “ the max=%d ” ,b);三、 if 語(yǔ)句的嵌套1、 if 子句中嵌套:? if(表達(dá)式1)if( 表達(dá)式 2) 語(yǔ)句 1;e
22、lse 語(yǔ)句 2;else 語(yǔ)句 3;? if(表達(dá)式1) if( 表達(dá)式 2) 語(yǔ)句 1; else 語(yǔ)句 2;2、else子句中嵌套? if (表達(dá)式1) 語(yǔ)句 1;elseif( 表達(dá)式 2) 語(yǔ)句 2;else 語(yǔ)句 3;? if(表達(dá)式1) 語(yǔ)句1; elseif( 表達(dá)式 2) 語(yǔ)句 2;3、嵌套一般格式:if (表達(dá)式1) 語(yǔ)句 1;else if (表達(dá)式2) 語(yǔ)句2;else if (表達(dá)式3) 語(yǔ)句 3 ;else if( 表達(dá)式 n) 語(yǔ)句 n;else 語(yǔ)句n+1;例:將用戶輸入的成績(jī)按以下規(guī)則轉(zhuǎn)換成等級(jí)成績(jī):分?jǐn)?shù):90100等級(jí):優(yōu)分?jǐn)?shù):8089等級(jí):良分?jǐn)?shù):7079
23、等級(jí):中分?jǐn)?shù):6069等級(jí):及格分?jǐn)?shù): 60 以下 等級(jí):不及格 # include<stdio.h> main() int d;printf( 輸入分?jǐn)?shù): “” );scanf( “ %d” ,&d);if(d>=90 ) printf( 優(yōu) ” )“;else if(d>=80) printf(良”);“else if(d>=70) printf(中”);“else if(d>=60) printf(及格”“);else printf( 不及格 “ ” );四、條件語(yǔ)句:表達(dá)式 1 ? 表達(dá)式 2 :表達(dá)式3執(zhí)行的過(guò)程:若表達(dá)式1 的值為非 0
24、時(shí),該條件語(yǔ)句的職位表達(dá)式2,否則為表達(dá)式3 ;例:求一個(gè)整數(shù)的絕對(duì)值#include<stdio.h>main()int i,absi;scanf(“ %d” ,&i);absi=i>0 ? i : -i;printf(“維d值是n” ,i,absi); 五、 switch 語(yǔ)句switch (表達(dá)式)case 常量表達(dá)式1:語(yǔ)句 1 ;break;case常量表達(dá)式 2:語(yǔ)句 2 ;break;case常量表達(dá)式 n:語(yǔ)句 n ;break;default:語(yǔ)句 n+1;例:商店賣貨物,每一件3.5 元,按購(gòu)買的數(shù)量給與優(yōu)惠:購(gòu)買 100 件,優(yōu)惠 5% ;購(gòu)買2
25、00 件以上,優(yōu)惠6% ;購(gòu)買300 件以上,優(yōu)惠8% ;購(gòu)買400 件以上,優(yōu)惠10%;購(gòu)買500 件以上,優(yōu)惠15%;#include<stdio.h>main()int n;float p,price;scanf("%d",&n);switch(n/100)case 1:p=0.05;break;case 2:p=0.06;break;case 3:p=0.08;break;case 4:p=0.10;break;case 5:p=0.15;break;price=3.5*n*(1-p);printf("% 應(yīng)付款 =%7.2fn&quo
26、t;,price);06.循環(huán)結(jié)構(gòu)for 語(yǔ)句:一般格式: for( 表達(dá)式 1 ;表達(dá)式 2;表達(dá)式 3) 語(yǔ)句 ;表示:先計(jì)算表達(dá)式1 的值,再計(jì)算表達(dá)式2 的值,若表達(dá)式2 的值為 0 ,則跳出循環(huán)體,轉(zhuǎn)去執(zhí)行循環(huán)體后面的程序命令;若表達(dá)式2 的值非0 ,則執(zhí)行循環(huán)體中的語(yǔ)句,接著計(jì)算表達(dá)式3 的值;而后,再?gòu)挠?jì)算表達(dá)式 2 的值開始重復(fù)上訴操作,直到表達(dá)式2 的值為 0 時(shí)結(jié)束。例:計(jì)算sum=1+2+3+100 的值”#include<stdio.h>main()int i,sum;sum=0;for(i=1;i<=100;i+)sum=sum+i;printf(“
27、 sum=%d” ,sum);case 6: while 語(yǔ)句:一般格式:while< 表達(dá)式 >語(yǔ)句 ;表示:先計(jì)算表達(dá)式的值,若為非0 ,則執(zhí)行循環(huán)體語(yǔ)句,然后再計(jì)算表達(dá)式的值,重復(fù)上述過(guò)程,直到計(jì)算表達(dá)式的值為 0 時(shí)結(jié)束循環(huán)。例:計(jì)算sum=1+2+3- +100 的值#include<stdio.h>main()int i,sum;i=1;sum=0;while(i<=100)sum=sum+i;i+; printf(“ sum=%d” ,sum);case 7: do-while 語(yǔ)句1、一般格式:Do語(yǔ)句;While< 表達(dá)式 >表示:先
28、執(zhí)行一次循環(huán)語(yǔ)句,然后計(jì)算表達(dá)式的值,若表達(dá)式的值非0,則再執(zhí)行循環(huán)語(yǔ)句,然后從計(jì)算表達(dá)式的值開始重復(fù)上述過(guò)程,直到計(jì)算表達(dá)式的值為0,循環(huán)結(jié)束。例:計(jì)算sum=1+2+3+100的值#include<stdio.h>main()int i,sum;i=1;sum=0;dosum=sum+i;i+;while(i<=100);printf(“ sum=%d” ,sum);case 8: break 和 continue 語(yǔ)句:1 、 break 語(yǔ)句:使用 break 語(yǔ)句可以提前結(jié)束由 while 、 for、 do-while 語(yǔ)句構(gòu)成的循環(huán),而去執(zhí)行循環(huán)下面的語(yǔ)句。例:
29、判定用戶輸入的一個(gè)數(shù)是否為素?cái)?shù)#include<stdio.h>main()int a,d;printf( 請(qǐng)輸入一個(gè)整數(shù): “” );scanf( “ %d” ,&a);for(d=2;d<a;d+)if(a%d=0)break; / 跳出當(dāng)前的循環(huán),執(zhí)行循環(huán)后面的語(yǔ)句if(d<a)printf(" %sd!素?cái)?shù) ",a);elseprintf("嗯禁數(shù)",a);2 、 continue :continue 語(yǔ)句用于 for 、 while 、 do-while 語(yǔ)句中,其作用是結(jié)束本次循環(huán),接著進(jìn)入下一次是否執(zhí)行循環(huán)的
30、判斷。例:輸入 10 個(gè)非 0 的整數(shù)并求和。#inclu de<stdio.h>main()int i,n=0,sum=0;while(n<10)printf( 請(qǐng)輸入整數(shù):“” );scanf(“ %d” ,&i);if(i=0)continue; / 若為0 ,則繼續(xù)輸入下一個(gè)數(shù)sum+=i;n+;printf(“ %d” ,sum);五、三種循環(huán)的比較:1、三種循環(huán)可以處理同一個(gè)問(wèn)題,一般情況下可以相互代替;2、 while 和 do-while 循環(huán)語(yǔ)句只在 while 語(yǔ)句之后指定循環(huán)條件,在循環(huán)體內(nèi)應(yīng)包含使循環(huán)趨于結(jié)束的語(yǔ)句; for 循 環(huán)語(yǔ)句可以在
31、<語(yǔ)句 3> 中包含使循環(huán)趨于結(jié)束的語(yǔ)句;3、對(duì)于while 和 do-while 循環(huán)語(yǔ)句,循環(huán)變量的初始化應(yīng)在while 和 do-while 語(yǔ)句之前完成; for 循環(huán)語(yǔ)句可以在<表達(dá)式 1> 中進(jìn)行;4、 while 和 for 語(yǔ)句是先判斷表達(dá)式,后執(zhí)行循環(huán); do-while 循環(huán)語(yǔ)句是先執(zhí)行循環(huán),后判斷表達(dá)式;07 數(shù)組數(shù)組是一組具有同一名字、不同下標(biāo)的變量。數(shù)組中帶下標(biāo)的變量稱為數(shù)組元素,每個(gè)數(shù)組元素由數(shù)組名字和下標(biāo)唯一地來(lái)確定;同一數(shù)組中的元素?cái)?shù)據(jù)類型相同。一、一維數(shù)組:1、定義:只有一個(gè)下標(biāo)的數(shù)組。2、定義格式:類型說(shuō)明符數(shù)組名 常量表達(dá)式如:in
32、t a3;定義了一個(gè)一維數(shù)組,名稱為 a,數(shù)據(jù)類型為整型,含3個(gè)數(shù)組元素 a0、a1、a2;說(shuō)明:?類型說(shuō)明符:是指數(shù)組的數(shù)據(jù)類型;?常量表達(dá)式:是一個(gè)值為正整數(shù)的表達(dá)式,用來(lái)表示該數(shù)組的元素的個(gè)數(shù),即數(shù)組的大小;3、數(shù)組的引用:數(shù)組名 下標(biāo) ; 如: a24、數(shù)組的初始化:?對(duì)數(shù)組的全部因素賦初值:如: int a3=10,20,30; 則該語(yǔ)句執(zhí)行后, a0=10,a1=20,a2=30 ;? 對(duì)數(shù)組的部分元素賦初值:如: int b3=12,11; 則該語(yǔ)句執(zhí)行后, b0=12,b1=11,a2=0 ;?對(duì)數(shù)組的全部元素賦初值時(shí),也可將數(shù)組定義為一個(gè)不確定長(zhǎng)度的數(shù)組:如: int c =
33、10,15,20; 則該語(yǔ)句執(zhí)行后,數(shù)組 c 的長(zhǎng)度自動(dòng)確定為 3, c0=10,c1=15,c2=20 ;例:將輸入的 10 個(gè)整數(shù)按反序輸出#include<stdio.h>main()int a10,i;printf(" 請(qǐng)輸入 10 個(gè)整數(shù): ");for(i=0;i<10;i+)scanf("%d",&ai);printf(" 反序輸出 :" ) ;for(i=9;i>=0;i-)printf("%d",ai);printf("n");例:計(jì)算 Fibo
34、nacci 數(shù)列的前 20 項(xiàng)Fibonacci 數(shù)列定義:f(1)=1f(2)=1f(n)=f(n-1)+f(n-2)(n>2)#include<stdio.h>main()int f21,i;f1=1;f2=1;for (i=3;i<=20;i+)fi=fi-1+fi-2;for (i=1;i<=20;i+)printf("%8d",fi);/ 每個(gè)數(shù)字占8 位if(i%5=0) printf("n");/按 5 個(gè)一行輸出二、二維數(shù)組:具有兩個(gè)下標(biāo)的數(shù)組為二維數(shù)組。1、定義格式:類型說(shuō)明符數(shù)組名 常量表達(dá)式 常量表達(dá)式
35、 如:int a32; 定義了一個(gè)二維數(shù)組,名稱數(shù)組名為 a,含有 6 個(gè)元素:a0、a01、a10、a11、a20、 a21;說(shuō)明:?第一個(gè)常量表達(dá)式指出的是數(shù)組的行數(shù);第二個(gè)常量表達(dá)式指出的是數(shù)組的列數(shù);憶維數(shù)組元素的順序是:按行存放;即先順序存放第一行的元素,再存放第二行的元素以此類推;其存儲(chǔ)格式:a00a01a10a11a20a212、二維數(shù)組的初始化:同一維數(shù)組。?分行為二維數(shù)組賦初值:int a32=1,2,3,4,5,6; 則該語(yǔ)句執(zhí)行后, a00=1, a01=2, a10=3,a11=4, a20=5, a21=6;?按數(shù)組在存儲(chǔ)時(shí)的排列次序賦初值:int a32=1,2,3
36、,4,5,6;?對(duì)數(shù)組的部分元素賦初值:int a32=1,2,3,4;?忽略第一維的長(zhǎng)度,對(duì)二維數(shù)組賦初值:int a2=1,2,3,4,5,6; 該語(yǔ)句執(zhí)行后, C 語(yǔ)言系統(tǒng)自動(dòng)計(jì)算出第一維的長(zhǎng)度為 6/2=3 ,同樣有: a00=1,a01=2,a10=3,a11=4, a20=5, a21=6;例:將兩個(gè)2 行 3 列的矩陣相加,并顯示結(jié)果。#include<stdio.h>main()int a23=1,3,5,7,9,11;int b23=2,4,6,8,10,12;int c23,sum=0,i,j;for(i=0;i<2;i+)/i 表示第 1 行到第 3行f
37、or(j=0;j<3;j+)/j 表示第 1 列到第 3 列cij=aij+bij;for(i=0;i<2;i+)for (j=0;j<3;j+)printf( “ %5d” ,cij);if(j+1)%3=0) printf( n” ); “08 字符數(shù)組char a10;字符數(shù)組是用來(lái)存放字符的數(shù)組,字符數(shù)組中的一個(gè)元素存放一個(gè)字符。1、字符數(shù)組的定義:2、字符串:字符串是借助于字符數(shù)組來(lái)存放的,并規(guī)定以字符 0 ( 占用存儲(chǔ)空間,但不計(jì)入字符串的長(zhǎng)度)為字符串的結(jié)束標(biāo)記。3、字符串處理函數(shù):?scanf("s”以格式符s輸入字符串,輸入的字符串自動(dòng)以 0結(jié)尾;
38、輸入的字符數(shù)組名前不加” &前綴;?printf("s” /姚格式符s輸出字符串,輸出的字符串以 0'結(jié)尾;?gets(a); /a 為字符數(shù)組名,輸入的字符可以包含 0字符;?puts(a); /a為字符數(shù)組名,輸入的字符可以包含0字符;?strcat(字符串1,字符串2);/把字符串2連接到字符串1后;?strcpy(字符數(shù)組1,字符串2); /把字符串2拷貝到字符數(shù)組1中;如: str 為字符數(shù)組,將字符常量賦予str: strcpy ( str , "abcdef");?strcmp(字符串1,字符串2);比較兩個(gè)字符串,若相等,則返回0,
39、若字符串1>字符串2,則返回1,否則返回-1;如:比較兩個(gè)字符串 str1、 str2 : if(strcmp(str1,str2)=1) printf("str1>str2");?strlen(字符數(shù)組);返回字符數(shù)組中包含的字符串的長(zhǎng)度;?strlwr(字符串);將字符串的大寫字符轉(zhuǎn)換為小寫;?strupr(字符串);將字符串的小寫字符轉(zhuǎn)換為大寫;例:不使用 strlen() 函數(shù),計(jì)算一個(gè)字符串的長(zhǎng)度#include<stdio.h>main()int i=0;char str30;printf( 輸入一個(gè)字符串“: ” );gets(str)
40、;while (stri!=0 )i+;printf( 字符串長(zhǎng)度為: “n” ,i);例:將一字符串逆轉(zhuǎn)#include<stdio.h>#include<string.h>main()char str20,temp;int i,j;printf( 輸入一個(gè)字符串: “” );gets(str);for(i=0;i<strlen(str)/2;i+)j=strlen(str)-1;temp=stri;stri=strj-i;strj-i=temp;printf( 倒置的字符串為“n” ,str);09 指針字符數(shù)組是用來(lái)存放字符的數(shù)組,字符數(shù)組中的一個(gè)元素存放一
41、個(gè)字符。1、字符數(shù)組的定義:char a10;2、字符串:字符串是借助于字符數(shù)組來(lái)存放的,并規(guī)定以字符 0 ( 占用存儲(chǔ)空間,但不計(jì)入字符串的長(zhǎng)度)為字符串的結(jié)束標(biāo)記。3、字符串處理函數(shù):?scanf( "s”以格式符s輸入字符串,輸入的字符串自動(dòng)以 0結(jié)尾;輸入的字符數(shù)組名前不加” &前綴;?printf( "s” /姚格式符s輸出字符串,輸出的字符串以 0'結(jié)尾;?gets(a); /a 為字符數(shù)組名,輸入的字符可以包含 0字符;?puts(a); /a為字符數(shù)組名,輸入的字符可以包含0字符;?strcat(字符串1,字符串2);/把字符串2連接到字符串
42、1后;?strcpy(字符數(shù)組1,字符串2);/把字符串2拷貝到字符數(shù)組1中;如: str 為字符數(shù)組,將字符常量賦予str: strcpy ( str , "abcdef");?strcmp(字符串1,字符串2); 比較兩個(gè)字符串,若相等,則返回0,若字符串1>字符串2,則返回1,否則返回-1;如:比較兩個(gè)字符串 str1、 str2 : if(strcmp(str1,str2)=1) printf("str1>str2");?strlen(字符數(shù)組);返回字符數(shù)組中包含的字符串的長(zhǎng)度;?strlwr( 字符串 ); /將字符串的大寫字符轉(zhuǎn)
43、換為小寫;?strupr(字符串);將字符串的小寫字符轉(zhuǎn)換為大寫;例:不使用 strlen() 函數(shù),計(jì)算一個(gè)字符串的長(zhǎng)度#include<stdio.h>main()int i=0;char str30;printf( 輸入一個(gè)字符串“: ” );gets(str);while (stri!=0 )i+;printf ( “字符串長(zhǎng)度為: n” ,i);例:將一字符串逆轉(zhuǎn)#include<stdio.h>#include<string.h>main()char str20,temp;int i,j;printf( 輸入一個(gè)字符串: “” );gets(st
44、r);for(i=0;i<strlen(str)/2;i+)j=strlen(str)-1;temp=stri;stri=strj-i;strj-i=temp;printf( 倒置的字符串為“n” ,str);10 函數(shù)C 程序是由函數(shù)組成的,有且只有一個(gè)主函數(shù)main() ,由主函數(shù)調(diào)用其他函數(shù),其他各函數(shù)也可以相互調(diào)用。1、函數(shù)的定義:一般格式:類型說(shuō)明 函數(shù)名 (形式參數(shù)表)/函數(shù)頭說(shuō)明部分;/ 函數(shù)體執(zhí)行部分;其中:類型說(shuō)明:是指函數(shù)返回值的數(shù)據(jù)類型;默認(rèn)為 int ;函數(shù)名:為一標(biāo)識(shí)符;代表了函數(shù)的入口地址;形式參數(shù)表:是用逗號(hào)分隔的一組變量說(shuō)明,指出每一個(gè)形式參數(shù)的類型和名稱
45、;函數(shù)值的返回:有時(shí),調(diào)用函數(shù)是為了計(jì)算一個(gè)結(jié)果,這是需要使用返回語(yǔ)句將就是結(jié)果返回給主調(diào)函數(shù),此值即為函數(shù)的返回值;一般格式: return (表達(dá)式 ); 其中,圓括號(hào)可以省略;當(dāng)函數(shù)不需要返回值時(shí),可以寫成: return;例:編寫一個(gè)函數(shù)power () ,用于計(jì)算x 的 n 次方的值#include<stdio.h>float power(float x,int n)int i;float s;s=1;for(i=1;i<=n;i+)s=s*x;return (s);2、函數(shù)的調(diào)用:C 語(yǔ)言中函數(shù)調(diào)用的一般格式:函數(shù)名(實(shí)參表) ;如: float f ;f=pow
46、er(3,10);3、數(shù)組作為函數(shù)的參數(shù)?數(shù)據(jù)元素作為函數(shù)實(shí)參在函數(shù)調(diào)用時(shí),把數(shù)組元素作為實(shí)參傳遞給形參,實(shí)現(xiàn)單向的值傳遞;如:判別各個(gè)元素的值,大于0,則輸出該值,小于或等于0 ,則輸出0#include<stdio.h>void func(int x)if (x>0)printf(“ %4d” ,x);elseprintf(“ %2d” ,0);main()int a5,i;printf( 請(qǐng)輸入“ 5 個(gè)數(shù): ” );for(i=0;i<5;i+)scanf( “ %d” ,&ai);for(i=0;i<5;i+)func(ai); /將數(shù)組元素作為
47、實(shí)參傳遞?數(shù)組名作為函數(shù)參數(shù)( 1)使用數(shù)組名作為函數(shù)參數(shù)時(shí),形參和實(shí)參是同類型的數(shù)組;( 2)在主調(diào)函數(shù)和被調(diào)函數(shù)中分別定義數(shù)組;( 3)數(shù)組名代表了數(shù)組的起始地址,數(shù)組名作為函數(shù)參數(shù)傳遞的是該數(shù)組的起始地址,而不是該數(shù)組元素的值;例:將數(shù)組中的元素的和計(jì)算并顯示出來(lái)。#include<stdio.h> func(int b) int sum=0,i;for(i=0;i<10;i+) sum+=bi;return sum; main() int a=1,2,3,4,5,6,7,8,9,10,s;s=func(a);/將數(shù)組a 組為參數(shù)傳遞給函數(shù)funcprintf(&quo
48、t;s=%d",s);4、內(nèi)部函數(shù)和外部函數(shù)?內(nèi)部函數(shù):在定義函數(shù)時(shí),在其類型名之前加“static,則所定義的函數(shù)為內(nèi)部函數(shù),只能被所在的源文件中的函數(shù)調(diào)用,其他源文件若有同名的內(nèi)部函數(shù),互不干擾。?外部函數(shù):在定義函數(shù)時(shí),在其類型名之前加“ extern (也可省略),則所定義的函數(shù)為外部函數(shù)(也稱全局函數(shù))可被其他源程序的函數(shù)調(diào)用。如: static int func_1() / 內(nèi)部函數(shù) . extern func_2 ()/ 外部函數(shù).綜合測(cè)試給定程序?yàn)椋汉镒拥谝惶煺氯舾蓚€(gè)桃子,當(dāng)即吃了一半,還不過(guò)癮,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10 天早
49、上只剩一個(gè)桃子。求第一天共摘了多少桃子。由主函數(shù)輸出第一天共摘桃子數(shù)。輸出結(jié)果為1534。#include<stdio.h>int fun(int n)main()int n=10,sum;sum=fun(n);printf("sum=%d",sum);解析:根據(jù)題意,第n+1 天剩下的桃子數(shù)為 x(n+1) ,第 n 天剩下的桃子數(shù)為 x(n) ,則滿足: x(n)=2*(x(n+1)+1);第十天剩下1 個(gè)桃子,可推算出第九天剩下的數(shù)量;可利用 for 循環(huán),遞推出其他天數(shù)剩下的桃子數(shù):int fun(int n)int x,i;x=1;/ 第十天剩下的數(shù)量for(i=n-
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 熟食攤位租賃合同范本
- 家具導(dǎo)購(gòu)聘用合同范本
- 知識(shí)產(chǎn)權(quán)融資在中小企業(yè)中的推廣應(yīng)用
- 病句修改題強(qiáng)化訓(xùn)+語(yǔ)序不當(dāng)
- 2025年甘肅省金昌市單招職業(yè)適應(yīng)性測(cè)試題庫(kù)完美版
- 正式購(gòu)房合同范本
- 2025年湖北科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)完整
- 園林收購(gòu)合同范本
- 汽車咨詢合同范本
- 人類面臨的主要環(huán)境問(wèn)題(+教學(xué)設(shè)計(jì)) 高一地理湘教版(2019)必修二
- 2024阿里巴巴云計(jì)算云主機(jī)租賃及運(yùn)維服務(wù)合同2篇
- 高技能人才培訓(xùn)基地 建設(shè)項(xiàng)目實(shí)施方案
- 消毒供應(yīng)中心禮儀培訓(xùn)
- 微信公眾號(hào)運(yùn)營(yíng)步驟
- 《軟件開發(fā)質(zhì)量管理研究的國(guó)內(nèi)外文獻(xiàn)綜述》7100字
- 健康體檢結(jié)果分析與健康干預(yù)策略
- 碳中和技術(shù)概論 課件 第1-3章 碳中和概述、太陽(yáng)能、風(fēng)能
- 初中數(shù)學(xué)新課程標(biāo)準(zhǔn)(2024年版)
- 吊罐法掘天井安全技術(shù)操作規(guī)程(4篇)
- 育嬰員初級(jí)培訓(xùn)
- 醫(yī)療廢物管理?xiàng)l例
評(píng)論
0/150
提交評(píng)論