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

正文內(nèi)容

c語言高級(jí)程序設(shè)計(jì)(下)ppt-在線瀏覽

2024-12-04 04:14本頁面
  

【正文】 統(tǒng)計(jì)計(jì)數(shù) * 參數(shù) buf 字符緩沖區(qū) */ void statistics(char *buf){ while(*buf){ readWord(amp。 } } 27 例 int main(int argc, char* argv[]){ char *s1=This is a good very good dog.。 print()。 } 28 第 5章 文件操作 29 例 一個(gè)文件 ,存放了若干首歌曲的記錄,每條記錄由歌名( 40個(gè)字符)和演唱者( 30個(gè)字符)組成。 編寫一個(gè)程序,完成這種格式轉(zhuǎn)換,轉(zhuǎn)換后的新格式記錄放在 。 原文件記錄結(jié)構(gòu)定義: typedef struct song{ char sname[40]。 }REC。t,sizeof(REC),1,fpin)。sLen,amp。 fwrite(amp。 fwrite(amp。 fwrite(amp。 fwrite(amp。 } 31 例 ,要求從鍵盤讀入有關(guān)教師的姓名、年齡、性別、所在部門、工資等信息,先將這些數(shù)據(jù)存在一個(gè)二進(jìn)制文件中。 提示: 這是一個(gè)結(jié)構(gòu)數(shù)據(jù)文件,首先定義記錄描述結(jié)構(gòu),然后編寫由鍵盤輸入數(shù)據(jù),并創(chuàng)建記錄的函數(shù),再完成將其寫入文件中函數(shù),最后編寫主函數(shù)按要求反序顯示。 int age。 char dep[20]。 }TEACHER。 FILE * fp。 if(!write()) return 1。 fseek(fp,0,2)。 while (fs=0){ fread(amp。 printf(%s%d%d%s%f\n,)。 } fclose(fp)。 } 33 例 ,從 n( =40)位優(yōu)秀服務(wù)員中,評(píng)選十位服務(wù)明星: ( 1)服務(wù)員按 1, 2, … ,順序連續(xù)編號(hào),每個(gè)編號(hào)用兩個(gè)字符表示,即 01, 02, … ; ( 2)所收到的選票按以下格式存于文件 source中,一行字符串對應(yīng)一張選票,其中姓名 10個(gè)字符,地址30個(gè)字符, 10個(gè)服務(wù)員編號(hào) 20個(gè)字符。 ( 4)若編號(hào)超出規(guī)定范圍,或編號(hào)出現(xiàn)重復(fù),作廢票處理。對于一條記錄的處理是先提取 10位所選出的服務(wù)員的編號(hào),然后驗(yàn)證其有效性,若有效,則計(jì)分。 記錄結(jié)構(gòu)定義 : typedef struct { char name[10]。 char no[10][2]。 數(shù)據(jù)定義: long int score[N+1],order[N+1]。從文件 入 n( =30)個(gè)班級(jí)、 ns( =10)個(gè)項(xiàng)目的得分,計(jì)算出各班的總分,并按總分降序的次序?qū)⒚總€(gè)班級(jí)總分及各項(xiàng)目的得分輸出到文件 。 本題目對文件數(shù)據(jù)的主要處理是排序。 數(shù)據(jù)定義: int score[N][NS]。 /*total[i]為第 i個(gè)班的總分 , order[i]為班級(jí)號(hào) 。例如:若字符在第 8列,插入一個(gè)TAB鍵后,該字符將定位在第 9列上;若字符在第 9列,插入一個(gè) TAB鍵后,該字符將定位在第 17列上。其中 TAB符的 ASCII碼為 9。\t39。\n39。 這里的文件格式是文本的 , 我們可以按塊進(jìn)行讀取 。 37 ch=fgetc(fpin)。\n39。\r39。 fputc(ch,fpout)。\t39。 fputc(ch,fpout)。 k=i==1?8:(8k%8+1)%8。 for (j=0。j++) fputc(39。,fpout)。 } 38 例 H(x)=xN1177。 … 177。多項(xiàng)式的輸入形式 F(x)=x**3+x**2x,一個(gè)多項(xiàng)式在文件中占一行,其存儲(chǔ)形式為 Fxxx+xxx,其中 F為多項(xiàng)式的函數(shù)名, xxx表示 x的立方。 提示: 本例是以字符串形式讀寫文件 。 實(shí)質(zhì)上是形如 F(x)=x**3+x**2x的格式與形如Fxxx+xxx格式的字符串之間的相互轉(zhuǎn)換 。數(shù)據(jù)文件的格式是: ( 1)頭部分: 數(shù)據(jù)文件標(biāo)識(shí): 4個(gè)字節(jié) 記錄的字節(jié)大小: 4個(gè)字節(jié) 記錄字段數(shù): 2字節(jié) ( 2)模式描述部分 對于記錄的每個(gè)字段有下面描述: 字段名長: 2字節(jié) 字段名:如上定義的長度 字段字節(jié)數(shù): 2字節(jié) ( 3)數(shù)據(jù)部分 重復(fù)下面內(nèi)容,直至文件結(jié)束。 Company Smallville Air Conditioning, 10 $ Smallville Painting Swanders amp。 提示: 根據(jù)文件格式的規(guī)定,先定義文件頭結(jié)構(gòu)、字段信息結(jié)構(gòu)和記錄結(jié)構(gòu)。在讀數(shù)值時(shí),要將所讀到的值的內(nèi)容反轉(zhuǎn),如在文件中有二個(gè)字節(jié)為0x00 和 0x06,則要將這兩個(gè)字節(jié)反轉(zhuǎn)為 0x06和 0x00。 char name[32]。 char specialties[64]。 char rate[8]。 } REC。 short len。 定義頭描述結(jié)構(gòu) : typedef struct { long cookies。 short fieldNum。 44 第 6章 鏈表部分 45 例 例 ,要求輸入學(xué)生選修課程的學(xué)習(xí)情況(每個(gè)學(xué)生可選多門課程,一門課程可有多個(gè)學(xué)生選修),包括:學(xué)號(hào)、學(xué)生姓名、課程名稱、成績、所在系別、授課教師姓名;完成下列輸出: 將每門課程的成績由高到低排序輸出; 計(jì)算出每個(gè)學(xué)生所有選修課程的平均成績,并由高到低排序輸出。對于每一個(gè)學(xué)生,建立相應(yīng)學(xué)生信息的結(jié)點(diǎn);然后計(jì)算學(xué)生平均成績,并按照平均成績將上述結(jié)點(diǎn)插入到學(xué)生鏈表中。 int score。 struct course *next。 49 例 學(xué)生鏈表中結(jié)點(diǎn)的定義 : typedef struct student{ int num。 char dep[20]。 COURSE *link。 }STUDENT。in。head,createStudentNode())。 /*根據(jù)所插入的學(xué)生所有選修課程的平均成績和原來鏈表中所有學(xué)生的平均成績進(jìn)行比較由高到低排序 */ if(*h==NULL||stuave=(*h)ave){ stunext=*h。 } else{ q=*h。 while (p!=NULL amp。 stuavepave){ q=p。 } stunext=p。 } } 51 createStudentNode函數(shù): STUDENT * createStudentNode(){ COURSE *q。 printf(num=)。pnum)。 scanf(%s,pname)。 scanf(%s,pdep)。 /*輸入所學(xué)課程的分?jǐn)?shù) */ /*若為 39。則結(jié)束 */ while ((q=createCourseNode())!=NULL){ insertCourseNode(amp。 } /*計(jì)算課程的平均成績 */ pave =aver(plink)。 } 52 例 例 ( 1)編寫一個(gè)函數(shù),根據(jù)一個(gè)已知數(shù)組構(gòu)造一個(gè)線性鏈表; ( 2)編寫一個(gè)函數(shù),對線性鏈表排序。這里我們給出了結(jié)點(diǎn)的創(chuàng)建、插入、排序和打印函數(shù)。 qn=n。 return q。 if(*h==NULL){ *h=elem。 } for(p1=*h,p2=p1next 。p1=p2,p2=p2next)。 elemnext=NULL。 h1=p=(ELEM*)malloc(sizeof(ELEM))。 while(pnext!=NULL){ q=pnext。 while(qnext!=NULL){ if ((qnextn)(rnextn)) r=q。 } if(r!=p){ s=rnext。 r=snext。 pnextnext=r。 } p=pnext。 free(h1)。 說明:輸入的整數(shù)可能超過系統(tǒng)所能表示的最大整數(shù)及最大實(shí)數(shù)的范圍或精度。對于乘數(shù)從個(gè)位開始的每一位,逐一與被乘數(shù)相乘。 被乘數(shù) … aj … a2 a1 乘數(shù) … bi … b1 當(dāng)前結(jié)果鏈表的位 ri+j ri+j1 第 i位乘數(shù) bi與被乘數(shù)的第 j位 aj相乘時(shí)的結(jié)果 aj*bi 進(jìn)位 ci+j ci+j1 58 例 因此: m=ri+j+aj*bi+ci+j1 /*本次計(jì)算中,結(jié)果鏈表的第 i+j位上的累計(jì)總值 */ ri+j=m%10 /*本次計(jì)算中,結(jié)果鏈表的第 i+j位的最終值 */ ci+j=m/10 /*本次計(jì)算中的進(jìn)位(進(jìn)到第 i+j+1位上) 59 第 i位乘數(shù)與被乘數(shù)的乘法計(jì)算 void multi(BIT *head,char *str,char ch,int i); 參數(shù) head:結(jié)果鏈表的頭指針, str:被乘數(shù)串, ch:乘數(shù)第 i位上的數(shù)字, i:乘數(shù)位數(shù) 定位乘積個(gè)位: ptr=head。 else{ q=createNode(0)。 ptr=ptrnext。 } 60 定位被乘數(shù)個(gè)位: p=str。\039。 乘法運(yùn)算: q=ptr。 mul1=(*p39。)*(ch39。)+a1。 mul1%=10。 qnext=ptr。 } mul2=ptrnum+mul1+a2。 /*a2為累加進(jìn)位 */ mul2%=10。 q=ptr。 } 61 處理最高進(jìn)位: if(a1!=0||a2!=0){ if(ptr==NULL){ ptr=createNode(0)。 ptrnum=ptrnum+a1+a2。 int i。 /*定位乘數(shù)個(gè)位 */ while (*p!=39。) p++。 i=0。 if (*p!=39。){ multi(*head,str1,*p,i)。 } } 63 例 例 L(至少有 1個(gè)結(jié)點(diǎn)),其頭結(jié)點(diǎn)指針 head,編寫一個(gè)函數(shù)將 L逆臵,即最后一個(gè)結(jié)點(diǎn)變成第一個(gè)結(jié)點(diǎn),原來倒數(shù)第二個(gè)結(jié)點(diǎn)變成第二個(gè)結(jié)點(diǎn),以次類推。鏈表逆臵的部分操作: head NULL p q r p q r p q r p q NULL 65 例 例 編寫一個(gè)函數(shù),交換單鏈表中 p所指向的結(jié)點(diǎn)和其后續(xù)位臵上的結(jié)點(diǎn)。 66 提示: 交換指定結(jié)點(diǎn)的后序兩個(gè)元素,要對鏈指針進(jìn)行操作。其中交換結(jié)點(diǎn)操作 : head NULL p s 67 例 例 :輸入數(shù)字串形式的人民幣錢數(shù)(人民幣小寫),輸出相應(yīng)的人民幣大寫表示。 人民幣大寫的規(guī)定如下: 如果金額沒有分,則后面要加上?整?字; 如果數(shù)字中間有連續(xù)若干個(gè) 0,變成大寫時(shí),最多寫一個(gè)?零?字。你甚至可以自己定義所用到的任何漢字的代碼,而不必考慮是否和實(shí)際一致。首先我們將除小數(shù)位外的各位稱為位元,位元用
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1