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

正文內(nèi)容

c語言程序設(shè)計(jì)一體化案例教程下ppt(存儲(chǔ)版)

2025-05-11 22:12上一頁面

下一頁面
  

【正文】 n, p(2,3) )。 /* 返回值:積分值 */? 可變數(shù)據(jù)和可變函數(shù)參數(shù)化,使 integral 更通用。return y*h。n)?!璼canf(%d,amp。…free(a)。j++)if(*(p+max)*(p+j))max=j。exit(2)。i++)printf(%4d,*(a+i))。vp=p。? size 指定申請(qǐng)堆內(nèi)存的字節(jié)數(shù)。注意:堆內(nèi)存的初值是隨機(jī)的,使用前應(yīng)初始化。? 下面介紹兩種方法,通過 二級(jí)指針、動(dòng)態(tài)一維指針數(shù)組和動(dòng)態(tài)一維數(shù)組建立行、列可變的二維數(shù)組。? 約定: p[i][0] ~ p[i][m 1] 存放第 i 個(gè)學(xué)生的 m 門成績,p[i][m] 存放第 i 個(gè)學(xué)生的平均成績 ( i=0 , … , n 1) 。? 作用域不一樣。* fp=25 。y。? 下列程序中定義的 Show 函數(shù)原本僅用于顯示 p 指針?biāo)傅臄?shù)組元素值,但無意中對(duì)數(shù)組元素做了修改,導(dǎo)致輸出結(jié)果錯(cuò)誤。}? 程序運(yùn)行結(jié)果:2 3 4 5? 發(fā)現(xiàn)運(yùn)行結(jié)果有錯(cuò)。這樣,既保證了指針參數(shù)的高效傳遞,又兼顧了指針?biāo)笖?shù)據(jù)的安全。 設(shè)有下列聲明:int a,b。 }? 為便于函數(shù)指針調(diào)用不同類型數(shù)據(jù)的比較函數(shù),此處將所有比較函數(shù)的兩個(gè)形參都說明為 void 型指針,外加 const 修飾是防止對(duì)指針?biāo)笖?shù)據(jù)的修改。jn。char s[5][4]={cat,car,cab,cap,can}。for(i=0。printf( \ n)。for(i=0。? 思路分析與知識(shí)聚焦? 確定數(shù)據(jù)結(jié)構(gòu):即如何保存 10 位學(xué)生的原始數(shù)據(jù)?? 方法一:學(xué)生數(shù)據(jù) 按類分組。 每個(gè)學(xué)生的 5 個(gè)數(shù)據(jù)作為一個(gè)整體,直接表現(xiàn)同一學(xué)生數(shù)據(jù)之間的聯(lián)系。? 類型為已有類型。原因是,在 32 位系統(tǒng)下,系統(tǒng)為結(jié)構(gòu)體變量分配內(nèi)存是以 4 個(gè)字節(jié)為基準(zhǔn)進(jìn)行的,不足 4 字節(jié)時(shí),補(bǔ)足 4 字節(jié)。/* 薦 ! , (*p).name 的簡寫 */( * p ) .No=202210102u。? Output(struct Student*p,int n) 函數(shù):輸出 p 所指數(shù)組中 n 位學(xué)生的成績排名。)。需先調(diào)用 Input 函數(shù),調(diào)用結(jié)束時(shí)再將 Input 的返回值復(fù)制給 s[i] 。 /* 申請(qǐng)堆內(nèi)存 */if(!p){printf( 未申請(qǐng)到足夠的堆內(nèi)存 ! \ n)。}案例 兩點(diǎn)距離和中點(diǎn)坐標(biāo)? 問題描述: 編寫一個(gè)程序,輸入二維坐標(biāo)中的兩點(diǎn)坐標(biāo),輸出這兩點(diǎn)之間的距離和中點(diǎn)坐標(biāo)。為簡化變量定義,可為結(jié)構(gòu)體類型 Point 取別名 POINT :typedef struct Point POINT 。p1 和 p2 分別表示第一、二點(diǎn),函數(shù)返回中點(diǎn)。return p。printf( 請(qǐng)?jiān)佥斎胍粋€(gè)二維坐標(biāo)點(diǎn)的坐標(biāo): )。return t。案例 加密? 思路分析: 細(xì)節(jié)參見源程序。? encode 函數(shù):按碼。? 結(jié)構(gòu)體指針做函數(shù)參數(shù)也要保證指針參數(shù)所指數(shù)據(jù)的安全。}案例 兩點(diǎn)距離和中點(diǎn)坐標(biāo) ( 續(xù) 5)? 問題思考: 以 Mid 函數(shù)為例。printf( 請(qǐng)輸入一個(gè)二維坐標(biāo)點(diǎn)的坐標(biāo): )。,amp。p1 和 p2 分別表示第一、二點(diǎn),函數(shù)返回兩點(diǎn)間距離。案例 兩點(diǎn)距離和中點(diǎn)坐標(biāo) ( 續(xù) 1)? 思路二: 將二維坐標(biāo)點(diǎn)定義成結(jié)構(gòu)體類型 Point :struct Point {float x,y。free(p)。n)。? 效率上,此 Input 函數(shù)低。,amp。? Average(struct Student*p,int n) 函數(shù):計(jì)算 p 所指數(shù)組中 n 位學(xué)生的平均成績。? 通過指針訪問結(jié)構(gòu)體變量的成員,用成員運(yùn)算符 (. 或 ) :strcpy( (*p).name , 李四 )。但實(shí)際占用內(nèi)存因系統(tǒng)而異,可用 sizeof(s3)計(jì)算。/* 變量少 */? 小結(jié):結(jié)構(gòu)體可將相關(guān)數(shù)據(jù)組成一個(gè)整體。? 請(qǐng)讀者按此數(shù)據(jù)結(jié)構(gòu)完成后續(xù)編程,并與本案例程序比較。 結(jié)構(gòu)體案例 成績排名? 問題描述: 設(shè)學(xué)生數(shù)據(jù)包括姓名、學(xué)號(hào)、 C 成績、英語成績。 int i。isizeof(s)/sizeof(s[0])。Sort(vf,sizeof(vf)/sizeof(float),sizeof(float),CmpF)。}}? 每個(gè)排序數(shù)據(jù)占用內(nèi)存的字節(jié)數(shù)? 待排序的數(shù)據(jù)的個(gè)數(shù)? 一組待排序的數(shù)據(jù)的指針? 函數(shù)指針:比較兩個(gè)同類型數(shù)據(jù)案例 通用類型程序設(shè)計(jì)*( 續(xù) 4)int main(void){ int i,vi[]={23,44,32,66,15,25}。i++){ pi=pmin=(char*)v+i*size。 }int CmpF(const void*a,const void*b)/* 比較兩個(gè)實(shí)數(shù) */{ return *(float*)a *(float*)b0?1: 1 。 介紹的 void類型指針可指向任何類型的變量,故 可用 void 類型指針表示通用類型數(shù)據(jù) 。i++)printf(%5d, ++p[i] )。Show(a,sizeof(a)/sizeof(int))。y。 /* 定義時(shí)應(yīng)賦初值 */* fp=25。例如:const float*fp=amp。? const 變量與符號(hào)常量功能相似,但有區(qū)別:? 處理方式不一樣。案例 行、列可變的二維數(shù)組 ( 續(xù) 1)………? 方法 2 :先為二級(jí)指針 p 申請(qǐng)動(dòng)態(tài)一維指針數(shù)組 ( 元素為 p[0] ~p[n 1]) , 后使 p[0] 指向含有 n (m+1) 個(gè)元素的動(dòng)態(tài)一維數(shù)再用指針 p[1] ~ p[n 1] 將 p[0] 所指的動(dòng)態(tài)一維數(shù)組分成 n 個(gè)長的一維數(shù)組。則無法申請(qǐng)動(dòng)態(tài)二維數(shù)組。/* 二維數(shù)組 */? 申請(qǐng)堆內(nèi)存后,若未成功,則應(yīng)給出提示并中止程序。案例 輸入并輸出全班學(xué)生的成績 ( 續(xù) 3)? malloc 函數(shù): 用于申請(qǐng)堆內(nèi)存。x,*ip。for(i=0。a=malloc(n*sizeof(int))。i++){ for(max=i,j=i+1。in?!蛔悖?①若 nMAX , 則 a 數(shù)組的內(nèi)存有閑置;②若 nMAX ,程序無法運(yùn)行,盡管并非沒有足夠內(nèi)存可用。 班級(jí)人數(shù)事先不知,如何定義數(shù)組?? 預(yù)估班級(jí)人數(shù)的最大值 ( 如 100) ,用符號(hào)常量 MAX 表示: define MAX 100 /* 預(yù)估班級(jí)人數(shù)的最大值 */…int n, a[MAX] 。in。? 可變函數(shù)參數(shù)化 ( 用函數(shù)指針 ) : 被積函數(shù)。 /* 函數(shù)指針定義 */p=add。? 函數(shù)指針變量的定義格式 :類型名 (* 變量名 )( 參數(shù)表 )。 步驟:? 選 Project|Settings , 打開 Project Settings 對(duì)話框 ;? 選 Debug 選項(xiàng)卡,在 Program arguments: 編輯框中,輸入 1 2 3( 注意:此時(shí)不要包含命令名) 。for(printf(%s,argv[1]),i=2。? 問題描述: 使用命令行參數(shù)計(jì)算任意個(gè)整數(shù)的和。 includeint main(int argc,char *argv[]){ int i。? 問題描述: 顯示命令行參數(shù),理解命令行 參數(shù)的數(shù)據(jù)結(jié)構(gòu)。} 帶參數(shù)的 main 函數(shù)? 命令行參數(shù)簡介:? 命令行參數(shù)的作用: 增加程序的靈活性、適應(yīng)性。*x=*y。 *x = *y 。x, **q=amp。 /* 調(diào)用案例 定義的 Sort 函數(shù) */for(i=0。char*sp[10],*p1,*p2。 ,最后一個(gè)字符串的結(jié)束符后再由系統(tǒng)自動(dòng)添加一個(gè) 39。則指針數(shù)組 p 將一維數(shù)組 a 分成三段,每段 3 個(gè)整型元素。j3。for(i=0。in。i++){ for(k=i,j=i+1。for(i=0。j++)if(strcmp(sp[k],sp[j])0)k=j。案例 字符串排序 ( 續(xù) 1)依次直到在 sp[4] 指針?biāo)阜秶鸀橹?。i++)printf(%d \ t,*p[i])。? 用字符串的值初始化 p 。字符指針變量可接受任何字符指針。? 不如用指針復(fù)制字符來得高效和簡便。 p[i]=src[i] 。 \ 0 39。return dest。j++)printf(%d,%d,%d \ n,*(*(p+i)+j) , *(p[i]+j) , (*(p+i))[j] , p[i][j] )。i++){ p=amp。? 因 p 是行指針,故 * p 、 *p+1 、 *p+2 、 *p+3 依次為 p 所指一維數(shù)組的 4 個(gè)元素的指針,對(duì) p 所指一維數(shù)組的 4 個(gè)元素的訪問形式為: *(* p) 、 *(*p+1) 、 *(*p+2) 、 *(*p+3) , 再等價(jià)寫成一維數(shù)組元素形式: (* p)[0] 、(*p)[1] 、 (*p)[2] 、(*p)[3] 。j++)printf(%d \ t%d \ t%d \ t%d \ n,*(a[i]+j) , *(*(a+i)+j) , (*(a+i))[j] , a[i][j] )。amp。i++){ if(iamp。int a[M][N]。*/? 常量指針法: a[i][j] 的指針為p+3*i+j , 但算式復(fù)雜、運(yùn)行效率低且未充分體現(xiàn)二維數(shù)組的特點(diǎn)。例如:int a[3][3]={{1,2,3},{4,5,6},{7,8,9}},i,j,* p 。a[i] 均為 a[i] 的 指 針 ;*( p+i) 、 *(a+i) 、 p[i] 和 *amp。i6。i++, p++ )/* 指針變量法初始化數(shù)組 a*/*p=i 。? 一次運(yùn)行結(jié)果:* pi=10 pi=0022FF4C*pc=a pc=0022FF30 c[]=abcd? 結(jié)果說明:因 pi 和 pc 的內(nèi)存由系統(tǒng)分配,故讀者上機(jī)運(yùn)行上述程序段時(shí),輸出的 pi 和 pc 的值可能有所不同。* 、 amp。a[0],b=*p++ : 對(duì)于 * p++ , 先做 ++ ,再做 * ,因 ++ 為后置運(yùn)算,故等價(jià)于先取 * p ,再使指針 p 加 1 。a[0],b。 p2=amp。 例如:int a[5]={10,20,30,40,50},*p1,*p2,sum=0。例如:p1+=2。? 設(shè)有以下定義:int a[6]={10,20,30,40,50,60},*p1=amp。printf(%d \ n,*p)。運(yùn)行結(jié)果為:* fp= , *ip=1075838976? 取 ip 所指變量時(shí),按整數(shù)格式解釋,輸出整數(shù) 1075838976 ,而不是浮點(diǎn)數(shù) 。指針的強(qiáng)制類型轉(zhuǎn)換? 可將整型常量轉(zhuǎn)換成指針后賦給指針變量:int *p= (int*)0x7fffff 。? 空指針變量: 值為空指針的指針變量。a。C語言程序設(shè)計(jì)一體化案例教程(下) 清華大學(xué)出版社 第 08章 指針 第 09章 自定義數(shù)據(jù)類型 第 10章 文件 第 8 章 指針? 概念: 參見 節(jié)? 應(yīng)用:? 指針做函數(shù)參數(shù)、做函數(shù)返回值 :參見 節(jié)? 數(shù)組做函數(shù)參數(shù) :參見案例 ? 指針與數(shù)組的關(guān)系、指針數(shù)組、指針的指針、函數(shù)指針、堆內(nèi)存的申請(qǐng)、釋放與使用 : 本章? 指針與結(jié)構(gòu)體的關(guān)系 、 單向鏈表 :參見 第 9 章? 利弊: 正確使用指針,能有效使用各種復(fù)雜數(shù)據(jù)結(jié)構(gòu),動(dòng)態(tài)分配內(nèi)存,高效使用數(shù)組和字符串,編寫通用程序等;但不當(dāng)使用,可導(dǎo)致運(yùn)行出錯(cuò)或死機(jī)。p1=amp。 空指針不指向任何變量。? 靜態(tài)存儲(chǔ)種類的指針變量,其缺省的初值為 0 。printf(*fp= %g ,*ip= %d \ n, *fp , *ip )。scanf(%d, p )。即 p 所指存儲(chǔ)單元可能未分配,也可 能已分配;若是后者,把 數(shù)據(jù)寫入 p 所指存儲(chǔ)單元,輕者運(yùn)行出錯(cuò),重者系 統(tǒng)出錯(cuò)或崩潰。? 指針變量加或減一個(gè)整型值 n : 使指針變量指向其后或 其的第 n 個(gè)變量。? 相等比較:判斷兩個(gè)指針是否指向相同的變量? 不等比較:判斷兩個(gè)指針是否指向不同的變量? 與 0 比較:判斷指針值是否為空? 指針的關(guān)系運(yùn)算主要用于數(shù)組。a[0]+5。設(shè)有說明:int a[5]={10,20,30,40,50},*p=amp。? p=amp。a[1],b=++*p : ++* p 等價(jià)于 ++(* p) 。/* 分別輸出 pc 所指字符、 pc 本身和 pc 所指字符串 */printf( \ n*pc=%c \ tpc=%p \ tc[]=%s \ n,*pc,pc,pc)。i6。案例 用指針訪問一維數(shù)組元素 ( 續(xù) 1)for(printf( \ n),i=0。}? 程序運(yùn)行結(jié)果:a[0]=0 a[1]=1 a[2]=2 a[3]=3 a[4]=4 a[5]=5a[0]=0 a[1]=1 a[2]=2 a[3]=3 a[4]=4 a[5]=5a[0]=0 a[1]=1 a[2]=2 a[3]
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1