freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c語(yǔ)言入門筆記教程-閱讀頁(yè)

2024-09-04 23:19本頁(yè)面
  

【正文】 是從小到大進(jìn)行的。然后從數(shù)組最后一個(gè)元素開始到該元素為止,逐個(gè)后移一個(gè)單元。如果被插入數(shù)比所有的元素值都小則插入最后位置。for(i=0。i++){ p=i。for(j=i+1。j++)if(qa[j]) {p=j。}if(p!=i){s=a[i]。a[p]=s。}printf(\ninput number:\n)。n)。i10。s=i。break。for(i=0。i++)printf(%d ,a[i])。}本程序首先對(duì)數(shù)組a中的10個(gè)數(shù)從大到小排序并輸出排序結(jié)果。再用一個(gè)for語(yǔ)句把n和數(shù)組元素逐個(gè)比較,如果發(fā)現(xiàn)有na[i]時(shí),則由一個(gè)內(nèi)循環(huán)把i以下各元素值順次后移一個(gè)單元。 后移結(jié)束跳出外循環(huán)。 如所有的元素均大于被插入數(shù),則并未進(jìn)行過后移工作。最后一個(gè)循環(huán)輸出插入數(shù)后的數(shù)組各元素值。從結(jié)果中可以看出47已插入到54和 28之間。 a=3 16 87 65 4 32 11 108 10 25 12 37b=(87 108 37) 本題的編程思路是,在數(shù)組A的每一行中尋找最大的元素,找到之后把該值賦予數(shù)組B相應(yīng)的元素即可。int b[3],i,j,l。i=2。for(j=1。j++)if(a[i][j]l) l=a[i][j]。}printf(\narray a:\n)。i=2。j=3。printf(\n)。for(i=0。i++)printf(%5d,b[i])。}  程序中第一個(gè)for語(yǔ)句中又嵌套了一個(gè)for語(yǔ)句組成了雙重循環(huán)。進(jìn)入內(nèi)循環(huán)后,把l與后面各列元素比較,并把比l大者賦予l。等外循環(huán)全部完成時(shí),數(shù)組b中已裝入了a各行中的最大值。  輸入五個(gè)國(guó)家的名稱按字母順序排列輸出。然而C語(yǔ)言規(guī)定可以把一個(gè)二維數(shù)組當(dāng)成多個(gè)一維數(shù)組處理。用字符串比較函數(shù)比較各一維數(shù)組的大小,并排序, 輸出結(jié)果即可。int i,j,p。s name:\n)。i5。printf(\n)。i5。strcpy(st,cs[i])。j5。strcpy(st,cs[j])。strcpy(cs[i],cs[p])。}puts(cs[i])。}  本程序的第一個(gè)for語(yǔ)句中,用gets函數(shù)輸入五個(gè)國(guó)家名字符串。因此在gets函數(shù)中使用cs[i]是合法的。 這個(gè)雙重循環(huán)完成按字母順序排序的工作。 進(jìn)入內(nèi)層循環(huán)后,把st與cs[i]以后的各字符串作比較,若有比st小者則把該字符串拷貝到st中,并把其下標(biāo)賦予p。 至此已確定了數(shù)組cs的第i號(hào)元素的排序值。在外循環(huán)全部完成之后即完成全部排序和輸出。數(shù)組可分為數(shù)值數(shù)組(整數(shù)組,實(shí)數(shù)組),字符數(shù)組以及后面將要介紹的指針數(shù)組,結(jié)構(gòu)數(shù)組等。、數(shù)組名、數(shù)組長(zhǎng)度 (數(shù)組元素個(gè)數(shù))三部分組成。 數(shù)組的類型是指下標(biāo)變量取值的類型。 對(duì)數(shù)值數(shù)組不能用賦值語(yǔ)句整體賦值、輸入或輸出,而必須用循環(huán)語(yǔ)句逐個(gè)對(duì)數(shù)組元素進(jìn)行操作。c語(yǔ)言中每個(gè)程序模塊的作用是由函數(shù)完成的,一個(gè)c語(yǔ)言程序可由一個(gè)主函數(shù)和若干個(gè)函數(shù)構(gòu)成,由主函數(shù)調(diào)用其他函數(shù),其他函數(shù)也可以調(diào)用別的函數(shù)。一個(gè)函數(shù)并不從屬于另一個(gè)函數(shù),即函數(shù)不能嵌套定義。 舊標(biāo)準(zhǔn)中,函數(shù)可以缺省參數(shù)表,但新標(biāo)準(zhǔn)中,函數(shù)不可以缺省參數(shù)表,若果不需要參數(shù),則用void表示,主函數(shù)main除外有參函數(shù)的定義一般形式:類型標(biāo)識(shí)符 函數(shù)名(形式參數(shù)列表){ 說明語(yǔ)句部分; 可執(zhí)行語(yǔ)句部分;}如果函數(shù)定義時(shí)不指定函數(shù)類型,系統(tǒng)自動(dòng)指定該函數(shù)類型為int型空函數(shù)一般形式:類型說明符 函數(shù)名(){ }形參和實(shí)參c語(yǔ)言程序設(shè)計(jì)中,調(diào)用函數(shù)與被調(diào)用函數(shù)之間的數(shù)據(jù)傳遞時(shí)通過形式參數(shù)和實(shí)際參數(shù)實(shí)型的。includevoid main(){ int a,b,c。 scanf(%d%d,amp。b)。 printf(Max is %d\n,c)。}*形參變量在未出現(xiàn)函數(shù)調(diào)用時(shí),并不占用內(nèi)存中的存儲(chǔ)單元,只在發(fā)生函數(shù)調(diào)用時(shí),函數(shù)max中的形參才被分配內(nèi)存單元。因此,形參只有在函數(shù)內(nèi)部有效*實(shí)參可以使常量 變量和表達(dá)式,在調(diào)用時(shí),必須有確定的值*形參和實(shí)參在數(shù)量類型順序上應(yīng)嚴(yán)格一致*C語(yǔ)言規(guī)定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞時(shí) 值傳遞 ,即單向傳遞,只有實(shí)參傳給形參,而不能由形參回傳給實(shí)參。函數(shù)的返回值return 表達(dá)式;return (表達(dá)式);被調(diào)函數(shù)中,遇到return語(yǔ)句立刻帶值返回主調(diào)函數(shù)。main是主函數(shù),它可以調(diào)用其他函數(shù),而不允許被其他函數(shù)調(diào)用函數(shù)名(實(shí)參表達(dá)式1,實(shí)參表達(dá)式2,... ...); 有參函數(shù)的調(diào)用函數(shù)名(); 無(wú)參函數(shù)的調(diào)用*如果參數(shù)列表包含多個(gè)實(shí)參,對(duì)實(shí)參求值的順序根據(jù)不同的c語(yǔ)言版本而定,有的系統(tǒng)按左到右的順序進(jìn)行,而有的反之,注意。 int f(int a,int b)。 printf(%d\n,p)。 if(ab) c=1。 else c=1。}函數(shù)調(diào)用方式:函數(shù)語(yǔ)句 puts();函數(shù)表達(dá)式式 c=2*max(a,b)。在一個(gè)函數(shù)中調(diào)用另一個(gè)函數(shù),要有以下幾個(gè)條件:*被調(diào)用函數(shù)必須是已經(jīng)存在的函數(shù)*調(diào)用庫(kù)函數(shù),一般要在程序開頭用include命令將有關(guān)庫(kù)函數(shù)包括進(jìn)來*如果在函數(shù)調(diào)用之前,沒有對(duì)函數(shù)作聲明,則編譯系統(tǒng)會(huì)把第一次遇到的該函數(shù)形式(函數(shù)定義或函數(shù)調(diào)用)作為函數(shù)的聲明,并將函數(shù)類型默認(rèn)為int型。c語(yǔ)言中,函數(shù)的定義式平行的,不允許作嵌套的函數(shù)定義,但允許函數(shù)的嵌套調(diào)用,即在被掉函數(shù)中又調(diào)用其他函數(shù)。函數(shù)的遞歸調(diào)用是指函數(shù)直接或間接的調(diào)用自己。 if(n0){printf(n0,data error)。} else if(n==0||n==1) f=1。 return f。 long y。 scanf(%d,amp。 y=fac(n)。}當(dāng)數(shù)組名作為參數(shù)時(shí),傳遞的是數(shù)組的首地址includefloat average(float array[10]){ int i。 for(i=0。i++) sum+=array[i]。 return(aver)。 int i。 for(i=0。i++) scanf(%f,amp。 aver=average(data)。}*數(shù)組名作為函數(shù)參數(shù)時(shí),應(yīng)該在主調(diào)函數(shù)和被調(diào)函數(shù)中分別定義數(shù)組*實(shí)參與形參數(shù)組類型一致*在被調(diào)函數(shù)中聲明了形參數(shù)組的大小為10,實(shí)際上,指定其大小是不起任何作用的,因?yàn)閏語(yǔ)言編譯系統(tǒng)對(duì)形參數(shù)組的大小不做檢查,只是將實(shí)參數(shù)組的首地址傳給形參數(shù)組,因此,data[i]和array[i]指的是同一單元。*數(shù)組名作為函數(shù)參數(shù)時(shí),不是把數(shù)組的值傳遞給形參,而是把實(shí)參數(shù)組的起始地址傳遞給形參數(shù)組,這樣兩個(gè)數(shù)組就共占同一段內(nèi)存單元。二維數(shù)組名作為實(shí)參和形參,在被調(diào)用函數(shù)中對(duì)形參數(shù)組定義式可以指定每一維的大小,也可以省略第一維的大小,當(dāng)不能把第二維大小說明省略。在執(zhí)行過程中始終占據(jù)著存儲(chǔ)單元。存儲(chǔ)方式分為兩大類:靜態(tài)存儲(chǔ)類和動(dòng)態(tài)存儲(chǔ)類,具體包括自動(dòng)的auto 函數(shù)中的局部變量,如不專門聲明為static,都是動(dòng)態(tài)分配存儲(chǔ)空間的靜態(tài)的static 若不賦初值,系統(tǒng)自動(dòng)賦0,auto則是任意的寄存器的register 只有局部自動(dòng)變量和形式參數(shù)作為寄存器變量,其他不行,外部的extern 用extern聲明外部變量時(shí),類型名可以省略不寫有時(shí)在程序設(shè)計(jì)中,希望某些外部變量只限于被本文件引用,而不能被其他文件引用,加static 聲明外部變量 static int A。 2不能用1的A用static聲明一個(gè)變量有二:對(duì)局部變量,則為該變量分配的空間在整個(gè)程序執(zhí)行期間始終存在。用auto register static聲明變量時(shí),是在定義變量的基礎(chǔ)上加上這些關(guān)鍵字,而不能單獨(dú)使用根據(jù)函數(shù)能否被其他源程序文件調(diào)用,分為內(nèi)部函數(shù)和外部函數(shù)內(nèi)部函數(shù) static 類型標(biāo)識(shí)符 函數(shù)名(形參表) 如 static int fun(int a,int b)外部函數(shù) extern 缺省默認(rèn)為extern需要調(diào)用外部函數(shù)時(shí),用extern聲明所用的函數(shù)時(shí)外部函數(shù) 編譯預(yù)處理預(yù)處理命令是以開頭的行有宏定義命令 文件包含命令 條件編譯命令為了與一般c語(yǔ)句相區(qū)別,以開頭宏定義用一個(gè)標(biāo)識(shí)符來表示一個(gè)字符串,標(biāo)識(shí)符稱為宏名,define 標(biāo)識(shí)符 字符串宏定義不是c語(yǔ)句,不用加分號(hào)用undef 終止宏定義作用域define G main(){}undef Gf1(){} 只作字符替換,不分配內(nèi)存空間帶參數(shù)的宏定義define 宏名(參數(shù)表) 字符串define S(a,b) a*barea=S(a,b)展開后為area=a*b宏替換不占運(yùn)行時(shí)間,只占編譯時(shí)間而函數(shù)調(diào)用則占運(yùn)行時(shí)間文件包含處理 指一個(gè)源文件可以將另外一個(gè)源文件的全部?jī)?nèi)容包括進(jìn)來,include 文件名 or include文件名條件編譯ifdef 標(biāo)識(shí)符 程序段1else程序段2endif當(dāng)標(biāo)識(shí)符已經(jīng)被define命令定義過則在編譯階段只編譯程序段1,否則2.ifdef 標(biāo)識(shí)符程序段endififndef 標(biāo)識(shí)符 程序段1else程序段2endif與上面的相反if 表達(dá)式程序段1else程序段2endif當(dāng)指定的表達(dá)式值為真,就編譯程序段1,否則編譯程序段2includedefine LETTER 0void main(){ char str[20]=C Language,c。 i=0。\039。 if LETTER if(c=39。amp。c=39。) c=32。A39。amp。Z39。 endif printf(%c,c)。void main(){ int b。b=9。}void row(void){ static int a=1。 for(b=1。b++) printf(%d*%d=%5d,a,b,a*b)。 a++。為了正確的訪問內(nèi)存單元,必須給每個(gè)內(nèi)存單元一個(gè)編號(hào),該編號(hào)稱為內(nèi)存單元的地址。如果將變量的地址保存在內(nèi)存的特定區(qū)域,用變量?jī)?nèi)存放這些地址,這樣的變量就是指針變量。類型說明符 *變量名 *表示這是一個(gè)指針變量,變量名即為定義的指針變量名,類型說明符表示本指針變量 所指的對(duì)象的數(shù)據(jù)類型int * ptr1;float *ptr2;指針變量的賦值int a,*p=amp。 int a,*p。a。來取得變量的地址。*運(yùn)算符后面的變量必須是指針變量。 p=amp。amp。 pa=amp。 pb=pa 一個(gè)指針變量賦給相同數(shù)據(jù)類型的其他指針變量int a[5],*pa。 數(shù)組的首地址給指針char *str; str=love。int a[5],*pa=a。 /*pa=a+2*2字節(jié)=a+4,而不是a+2*/只有指向同一數(shù)組的兩個(gè)指針變量之間相減才有意義。顯然,兩個(gè)指針變量相加是無(wú)實(shí)際意義的。p1==p2 /*若成立,兩個(gè)指向同一數(shù)組*/p1p2 /*若成立,則表示p1處于高地址位置*/p1p2 /*若成立,則表示p1處于低地址位置*/空運(yùn)算對(duì)指針變量賦空值和不賦值是不同的。如 define NULL 0int *p=NULL。 int *num1_p=amp。num2,*pointer。 scanf(%d,num1_p)。 scanf(%d,num2_p)。 if(*num1_p*num2_p) {pointer=num1_p。num2_p=pointer。}當(dāng)一個(gè)數(shù)組被定義后,程序會(huì)按照其類型和長(zhǎng)度在內(nèi)存中為數(shù)組分配一段連續(xù)的地址空間,數(shù)組名就是這塊連續(xù)內(nèi)存單元的首地址。a[0]。a[n]*(ptr+n)和 *(a+n)表示數(shù)組的各元素,即等效于a[n]指向數(shù)組的指針變量也可以用數(shù)組的下標(biāo)形式表示ptr[n],相當(dāng)于*(ptr+n) 四種方法訪問數(shù)組元素下標(biāo)法 a[i]指針法 *(ptr+i)數(shù)組名法 *(a+i)指針下標(biāo)法 ptr[i]指針與多維數(shù)組includevoid main(){ static int a[3][4]={{2,4,6,8},{10,12,14,16},{18,20,22,24}}。 int i,j。 for(i=0。i++){ for(j=0。j++) printf(%4d,*(*(ptr+i)+j))。 }} 41
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1