下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
模塊四:數(shù)據(jù)類型C(常量或變量都是屬于某一量值的組成情況等。C其中基本類型包括構造類指針類型的特殊性在于其變量中存放的是內(nèi)存地址信息而不是內(nèi)存中的值。這一模塊的重點是數(shù)組、結構體、指針類型。數(shù)組類型:string.h函數(shù)中的一些常用函數(shù)的使用,s1是否大于ss1>s2,strcmp(s1,s2)>0)、字符串的賦值、字符串的連接等。算法:等。結束標志,在輸入該標志之前的元素都依次作為數(shù)組的有效元-1并輸出所有的有效元素:#include<stdio.h>voidmain(){inta[100],num=0,i=0;do{scanf("%d",&a[i++]);}whilenum=i-1;for(i=0;i<num;i++)printf("%5d",a[i]);printf("\n%d\n",num);}練習:1、有數(shù)組定義inta[m][n],則在a[i][j]之前的元素的個數(shù)為 。2、以下一維數(shù)組的定義正確的是 A、intn=3,a[n]; B、#defineN=3 inta[N];C、constintn=3;inta[n]; D、#defineN 3 int3、以下一維數(shù)組定義及初始化正確的是 A、inta[]; B、inta[]={1,2,3}C、inta[3]={1,2,3,4} D、inta[3]={,2,}4、以下選擇中,能正確定義二維數(shù)組的是 。A、intx[][2]; B、intx[][2]C、intx[2][]={1,2,3,4}; D、inta[2][3]={,{1}};5inta[10]={9,1,15,6,2,11,8,7,19,3};m[m[1]+2*m[4]]的值是 ,*m+m[8]的值為 。6、下列字符數(shù)組定義與初始化不正確的是 A、chars[]=”abc”; B、charC、chars[3]={‘a(chǎn)’,’b’,’c’}; D、chars[3]=”abc”;7、下列關于數(shù)組的描述中不正確的是 。AB、可以對整型數(shù)組進行整體輸入、輸出C、利用字符型數(shù)組可以實現(xiàn)字符串操作D、不能通過賦值運算符“=8、下列程序的輸出結果是?#include<stdio.h>int f(int*a,intnum,intx);voidmain(){ inta[10]={8,6,17,29,34,5,7,23,2,1};intpos;pos=f(a,10,7);printf("%d",pos+1);}int f(int*a,intnum,intx){int i;for(i=0;i<n;i++)if(x==a[i]) returnreturn-1;};P2396.3程序填空題,需要認真理解。其中的(3)如果改為統(tǒng)計某一個字母出現(xiàn)的次數(shù),可以作怎樣的簡化?數(shù)據(jù)類型*指針變量名p與*p的區(qū)別。指針變量若未賦值,不能對*p操作,若對指針賦值為空值,也不能對*p操作。例如:1、int*f=NULL; scanf("%d",f)或*f=10.5;都不正確2、intt='A',*f;f=&t或*f=t均正確;f=t,*f=&t都不正確3、int*f; f=NULL;正練習:1已知:char*s="student";則printf("%s\n",c+3)輸出為 2、若有說明:inta,b=9,*p=&a;,則能完成a=b賦值功能的句是 A、a=*p; B、*p=*&b; C、a=&b; D、*p=&*b;指針與數(shù)組的關系p++、p--的意義,a[4]={1,2,3,4},*p=a;++p;p[2]或*(p+2)a[3],但p+1a+2都是表示地址概念的,都等于&a[2]各種指針的含義:int*p; //int二維數(shù)組中的列地址int(*p)[3];//一個行指針,指向具有3個整型元素的一維數(shù)組,inta[2][3]int*p[3];//3pint(*p)();//函數(shù)指針,指向返回值為int型的函數(shù)入口int*p(形式參數(shù)表);//返回值為int指針的函數(shù)pint**p;//p,用來獲得一級指針的地址,必須兩次間int值,例如:inta,int*r=&a,**p=&r三句等效:(1)a=1;(2)*r=1;(3)**p=1;這里,有幾種訪問是不正確的:(1)r=1;(2)p=&a;(3)p=r;(4)*p=1;二維數(shù)組中元素的表示:例:inta[3][4];元素a[i][ja[i][j]*(a[i]+j*(*(a+i)+j)但是*(a+i*4+j)不正確,這里需要正確理解行指針與列指針的表示及它們執(zhí)行算術運算每次移動的字節(jié)數(shù)用字符指針操作字符串:比用字符數(shù)組操作字符串具有更大的靈活性,注意二者的區(qū)別例:char*s“AB;char*s; s=”AB”;都是正確的charp[4]“AB;正確,但是charp[4];p”AB;卻錯s=p;是正確的賦值,但是s=*p,*s=”AB”都是錯誤的練習:下面的函數(shù)代碼是否都能正確實現(xiàn)字符串的拷貝(將p1p2代碼段一:voidMyStrcpy(char*p2,char*p1){while((*p2=*p1)!='\0')//此處換成 !=’\n’呢?{p1++;p2++;}}代碼段二:voidMyStrcpy(char*p2,char*p1){while(*p1!='\0'){*p2=*p1p1++;p2++;}}結構體類型:會正確定義結構體類型,掌握三種變量定義內(nèi)存占用(至少的空間之和,會正確訪問結構體變量的成員(用點運算符或是箭頭運算符練習:1structPoint{intx,y;}pos[]={{1,2},{3,4},{5,6}},*pt=pos;則表達式(++pt)->y 的值為 , ++(pt->x) 的值為 ,++pt->x的值為 、(*pt).y的值為 。2、以下對結構體變量stu中成員的非法引用是 structPoint{intx;inty;}pos,*p=&pos;A、pos.x B、(*p).yC、p->x D、Point.y作為函數(shù)參數(shù),改對應實參結構體成員的值練習:下列程序的運行結果是?#include<stdio.h>typedefstruct{ charname[10];doublescore;}STU;voidf(STU*s){ (*s).score*=20;printf("%s %.1f\n",s->name,(*s).score);}voidmain(){ STUstu[]={{"LiuBo",4.5},{"JiWei",4.6},{"Lijie",5.0}};f(stu+1);printf("%s %.1f\n",stu->name,(*stu).score);}利用結構體和指針的遞歸定義可以實現(xiàn)單鏈表例:structnode{int structnode*next;} *head;頭指針隨機訪問其中的結點,最后一個結點的指針域置為空理解單鏈表的遍歷、插入一個結點、刪除一個結點練習:1、設以下程序的所有的指針均為上面structnode*headp指向了單鏈表中的某一個結點處,但肯q點處,該結點不在鏈表中,下面的代碼實現(xiàn)的功能是 ?(方提示:根據(jù)描述先畫出單鏈表示意圖來)p=p->next; s->next=p->next; p->next=s;如果p指向的是鏈表中倒數(shù)第二個結點處則上面代碼實現(xiàn)的能為 ,這時代碼還可以寫成 ?下面的代碼的功能是 ?p->next=p->next->next; deletep->next;下面的代碼的功能是 ?for(p=head;p;p=q) { q=p->next; deletep; }下面的代碼的功能是 ?p=(structnode*)malloc(sizeof(structnode));p->data=x;p->next=head;head=p;2、鏈表中的結點的形成可以有兩種方式,一種是靜態(tài)的,即定next域作了連接,另一種malloc(下面程序代碼的運行結果是:voidmain(){structnode{int structnode*next}*head,*p,a,b,c;intj;a.data=10;b.data=20;c.data=30;b.next=&c;c.next=&a;a.next=0;head=&b;p=head->next;printf("%d\n",p->data);}動態(tài)申請一個結點空間:p=(structnode*)malloc(sizeof(structnode)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 陶瓷企業(yè)環(huán)保培訓課件
- 職業(yè)健康法律合規(guī)與風險防控
- 職業(yè)健康促進與員工福祉協(xié)同發(fā)展模式
- 金華浙江金華市技師學院招聘編外工作人員19人筆試歷年參考題庫附帶答案詳解
- 蕪湖2025年安徽蕪湖南陵縣部分學校新任教師招聘19人筆試歷年參考題庫附帶答案詳解
- 洛陽2025年河南洛陽市汝陽縣城區(qū)中小學校選聘教師134人筆試歷年參考題庫附帶答案詳解
- 常州2025年江蘇常州經(jīng)開區(qū)社會保障和衛(wèi)生健康局下屬事業(yè)單位招聘70人筆試歷年參考題庫附帶答案詳解
- 安康2025年陜西旬陽市市直教育單位遴選教師19人筆試歷年參考題庫附帶答案詳解
- 臺州浙江臺州市博物館招聘辦公室綜合文字崗位編外人員筆試歷年參考題庫附帶答案詳解
- 職業(yè)人群亞健康狀態(tài)評估體系
- 液壓機安全操作培訓課件
- 孕期梅毒課件
- 鋼箱梁施工安全培訓課件
- 畢業(yè)論文寫作與答辯(第三版)課件 專題二 論文選題
- 含Al奧氏體耐熱鋼:強化機制剖析與高溫性能探究
- 24年中央一號文件重要習題及答案
- 隧道深大斷裂突水突泥判識預報新理論和工程實踐優(yōu)化
- 二零二五年度金融機構債務重組專項法律顧問服務協(xié)議
- (2025年標準)租金欠款還款協(xié)議書
- 混凝土防滲墻施工工作手冊
- 2025年東航管理測試題庫及答案
評論
0/150
提交評論