C語(yǔ)言程序設(shè)計(jì)(3).ppt_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)(3).ppt_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)(3).ppt_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)(3).ppt_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)(3).ppt_第5頁(yè)
已閱讀5頁(yè),還剩71頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第十章 結(jié)構(gòu)體和共同體,定義和變量說(shuō)明 引用和初始化 結(jié)構(gòu)數(shù)組 結(jié)構(gòu)指針 指針處理鏈表 共用體 枚舉類(lèi)型 用 typedef 定義類(lèi)型,11.1概述,1,數(shù) 組相同標(biāo)準(zhǔn)類(lèi)型數(shù)據(jù)(數(shù)組元素)的集合 (char/int/float等) 結(jié)構(gòu)體用戶(hù)選定的各種類(lèi)型數(shù)據(jù)(“成員”或“域”)的集合 (無(wú)窮種),定義結(jié)構(gòu)體類(lèi)型 struct 結(jié)構(gòu)體名 數(shù)據(jù)類(lèi)型 成員名 1; 數(shù)據(jù)類(lèi)型 成員名 2; : 數(shù)據(jù)類(lèi)型 成員名 n; ; /*分號(hào)不能省略*/,成員表列或稱(chēng)域表,【例一】,struct student int number; char name6; /*number,sex等為成員名*/ char sex; int age; char address20; ;,本質(zhì)上,它定義了一個(gè)名為”student”的“結(jié)構(gòu)體類(lèi)型” 。struct student 相當(dāng)于標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型關(guān)鍵字char, int ,float我們可以用它來(lái)定義“結(jié)構(gòu)體變量”。,注意成員定義與普通變量定義的區(qū)別: 成員定義時(shí)不為其分配內(nèi)存 變量定義時(shí)為其分配內(nèi)存,int a,b,c; struct student a,b,c;,比較:,定義三個(gè)整型變量,每個(gè)變量占二個(gè)字節(jié),可單獨(dú)賦值。,定義三個(gè)結(jié)構(gòu)體類(lèi)型變量,每個(gè)變量下有若干“成員”。其占用的內(nèi)存長(zhǎng)度等于各成員項(xiàng)長(zhǎng)度之和。,struct 結(jié)構(gòu)名 結(jié)構(gòu)變量名; 注意: 結(jié)構(gòu)變量說(shuō)明必須在結(jié)構(gòu)類(lèi)型定義之后 例 struct student stul, stu2;,11.2定義結(jié)構(gòu)體類(lèi)型變量的方法,1、先定義結(jié)構(gòu)類(lèi)型,后說(shuō)明變量,3、 直接定義結(jié)構(gòu)體類(lèi)型變量 struct 成員表列 ; 變量名;,2、定義結(jié)構(gòu)類(lèi)型的同時(shí)說(shuō)明變量 struct 結(jié)構(gòu)名 成員表列 ; 變量名表列;,說(shuō)明 成員也可是一個(gè)結(jié)構(gòu)體。 成員名可同于程序中的變量名,互不干擾。 結(jié)構(gòu)體變量占內(nèi)存大小可用 sizeof 運(yùn)算求出。 結(jié)構(gòu)體類(lèi)型說(shuō)明僅列出該結(jié)構(gòu)的組成情況。,struct date int year, month, day; ; struct student long int num; char name20; char sex; struct date birthday; ; stu1,stu2;,11。3 結(jié)構(gòu)體的引用和初始化,引用形式:用圓點(diǎn)(成員運(yùn)算符) 優(yōu)先級(jí)最高 結(jié)構(gòu)變量名.成員名 例: stu1.num,成員變量根據(jù)其類(lèi)型可進(jìn)行相應(yīng)的運(yùn)算: 例 :stu1.num+,結(jié)構(gòu)體變量的整體引用: 例:struct student stu1,stu2; stu1=stu2;,struct date int year, month, day ; struct student long int num; char name20; char sex; struct date birthday; ; stu1,stu2;,成員名為結(jié)構(gòu)體時(shí)的引用形式: 結(jié)構(gòu)變量名.成員名.成員名 例:stu1.birthday.year,一級(jí)一級(jí)引用,【例】若有以下定義,則正確的賦值語(yǔ)句為 。,struct complex float real; float image; ; struct value int no; struct complex com; val1;,A) com.real=1; B) plex.real=1; C) .real=1; D) val1.real=1;,答案:C).real=1(參見(jiàn)下圖),11。4、結(jié)構(gòu)體變量的初始化,使一個(gè)結(jié)構(gòu)體變量獲得數(shù)據(jù)“值”有三種方法:,struct char name15; char class12; long num; stu=“Wenli”,”Computer 1”,200113;, 定義時(shí)初始化之, 同類(lèi)型的結(jié)構(gòu)體變量間相互賦值 student1=student2,用賦值語(yǔ)句對(duì)各成員分別賦值 只能逐個(gè)成員進(jìn)行,不能將結(jié)構(gòu)體變量作為一個(gè)整體進(jìn)行輸入和輸出。如對(duì)結(jié)構(gòu)體變量stu,以下語(yǔ)句是錯(cuò)誤的:,scanf(“%s,%s,%ld”,可改為: scanf(“%s,%s,%ld”,,stu.class,亦可用以下賦值語(yǔ)句: strcpy(, “wenli”); strcpy(stu.class, “Computer”); stu.num = 200113;,語(yǔ)法錯(cuò)誤,對(duì)外部結(jié)構(gòu)體變量進(jìn)行初始化 例 struct date int year, month, day ; struct student long int num; char name20; char sex; struct date birthday; stu1=89031, “Li Lin”, M, 1980, 8, 18 main( ) printf(“No:%ldnName:%snSex:%cn Birthday:%d%d%dn”, stu1.num, , stu1, sex, stu1 . birthday . year, stu1. birthday . month, stu1 . birthday . day); ,說(shuō)明: 全體賦值:一一對(duì)應(yīng)。 部分賦值: 未賦值的成員,對(duì)于數(shù)值型和字符型系統(tǒng)自動(dòng)賦 0。,11.5 結(jié)構(gòu)數(shù)組,概念 數(shù)組的每一個(gè)元素都是一個(gè)結(jié)構(gòu)體類(lèi)型的數(shù)據(jù),分別包括結(jié)構(gòu)體的各個(gè)成分,定義(三種方式) 1、先定義結(jié)構(gòu)體類(lèi)型,后定義結(jié)構(gòu)體數(shù)組 struct student long int num; char name20; char sex; int age; float score; char addr30; ; struct student stu3;,2、同時(shí)進(jìn)行結(jié)構(gòu)體類(lèi)型和結(jié)構(gòu)體數(shù)組的定義 struct student long int num; char name20; char sex; int age; float score; char addr30; stu3;,3、直接定義結(jié)構(gòu)體數(shù)組 struct st3;,11.5.3 引用,此時(shí)每個(gè)結(jié)構(gòu)體數(shù)組元素都有若干“成員”??梢杂靡韵滦问絹?lái)標(biāo)識(shí)它們: 數(shù)組名i.成員名 如stu3.age,11.5.2 結(jié)構(gòu)體數(shù)組的初始化,P266,例11.2 (p266)候選人得票統(tǒng)計(jì)程序。(三個(gè)候選人),分析: 數(shù)據(jù)結(jié)構(gòu): 定義結(jié)構(gòu)體數(shù)組變量,含侯選人名,得票數(shù)。 數(shù)組有3個(gè)元素 算法要點(diǎn): 采用strcmp()函數(shù), 將輸入的人名與定義初始化的結(jié)構(gòu)體數(shù)組中的每一元素中候選人名比較,若相同則加1。,main() int i,j; char leader_name20; for (i=1;i=3;i+) scanf(“%s“,leader_name); for (j=0;j3;j+) if (strcmp(leader_name,)=0) leaderj.count+; ,例11.2 (p266),struct person char name20; int count; leader3=“Li“,0,“Zhang“,0,“Fun“,0;,/*定義外部存儲(chǔ)結(jié)構(gòu)數(shù)組*/,概念 存放結(jié)構(gòu)體變量的首地址。 結(jié)構(gòu)指針的運(yùn)算也按照C語(yǔ)言的地址運(yùn)算原則進(jìn)行。,定義 struct 結(jié)構(gòu)名 * 結(jié)構(gòu)指針變量名 例 struct student stu1,*p;,引用形式 (*p) . name p-name,p=&stu1,S、 (*p) . Name、p-name,以下三者等價(jià),11.6 指向結(jié)構(gòu)體類(lèi)型數(shù)據(jù)的指針,stu_1.num=89101; strcpy(stu_1.name, “Li Lin”); stu_1.sex=M; stu_1.score=89.5; printf(“No:%ldnName:%sn Sex:%cnScore:%7.2fnn”, stu_1.num,stu_1.name, stu_1.sex,stu_1.score); printf(“No:%ldnname:%snsex:%cn score:%7.2fnn”, p-num, p-name, p-sex, p-score); ,賦初值,例10.3 (二),11.6.2指向結(jié)構(gòu)體數(shù)組的指針,例 struct student stud40,*p; p=stud;,說(shuō)明 p 只能指向結(jié)構(gòu)體數(shù)組的一個(gè)元素,不能指向數(shù)組元素中的某一個(gè)成元 p+ 指向下一元素的起始地址。,例 11.4 (p269)(一),struct student /*定義結(jié)構(gòu)體*/ int num; char name20; char sex; int age; struct student stu3=10101, “Li Lin”, M,18, 10102, “Zhang Fun”, M, 19, 10103, “Wang Min”, F,20;,例 11.4 (p269)(二),main() struct student *p; printf (“ No Name Sex Agen”); for (p=stu;pnum,p-name,p-sex,p-age); ,【例】求程序運(yùn)行結(jié)果。,main() struct wc int a; char *b; *p; static struct wc x2=10,“abcd“,30,“ABCD“; p=x; printf(“%d,“,p-a); printf(“%cn“,*(+p)-b); ,答案:10,A,分析:關(guān)于結(jié)構(gòu)體指針中的、運(yùn)算,情況2、設(shè)struct student stu5; struct student *p; p=stu; /*指針變量p的值為結(jié)構(gòu)體變量p的首地址。*/,注意: 如果有 struct student *p; 此時(shí)p存放結(jié)構(gòu)體變量指針,不可指向數(shù)組元素,如p=&stu.age 如果需要指向數(shù)組元素,應(yīng)另設(shè)普通指針變量,如 int *p1;p1=&stu.age,情況1、(上例中),p+ 表示移到下一個(gè)數(shù)組元素而非下一個(gè)成員 (+p)-age 表示p先自加1(移到下一數(shù)組元素處),然后取成員值 (p+)-age 表示先取p-age的值,然后p自加(移到下一數(shù)組元素處),p-n+ 等效于(p-nn)+ 先得到成員值,再使它加1 +p-n 等效于 +(p-n) 先使成員值加1,再使用之,11.6.3 指向結(jié)構(gòu)體變量的指針作函數(shù)參數(shù),“地址傳遞” 指向結(jié)構(gòu)體變量(的指針數(shù)組)為參數(shù)。,“值傳遞” 結(jié)構(gòu)體變量的成員為參數(shù)。,“地址傳遞” 指向結(jié)構(gòu)體變量(的指針數(shù)組)為函數(shù)參數(shù)。,例 11.5 (p271) 結(jié)構(gòu)類(lèi)型 struct student int num; char name20; float score3; 定義為外部,使得同一源文件的各個(gè)函數(shù)都可用于說(shuō)明變量類(lèi)型。 main( ) 實(shí)參 stu為 student的變量的地址 print( ) 形參 p 為指向 student 的指針變量,例 11.5 以指向結(jié)構(gòu)體變量的指針作實(shí)參,#include “string.h” #define format “%dn%sn%fn%fn%fn” struct student int num; char name20; float score3; ; main() void print(); struct student stu; scanf(“%d%s%f%f%f”, ,例 115,void print(struct student * p ) printf ( format, p-num, p-name, p-score0, p-score1, p-score2); printf(“n”); ,“值傳遞” 結(jié)構(gòu)體變量的成員為函數(shù)參數(shù)。,#include “string.h“ #define format “%dn%sn%fn%fn%fn“ struct student ; main() void print(); struct student stu; print(stu); void print(struct student stt) ,實(shí)參與形參為同一類(lèi)型的結(jié)構(gòu)體,例11.6: 4個(gè)學(xué)生,每個(gè)學(xué)生包括學(xué)號(hào)、姓名、成績(jī)。要求找出成績(jī)最高者的姓名和成績(jī)。,數(shù)據(jù)結(jié)構(gòu): 采用結(jié)構(gòu)體struct student類(lèi)型的數(shù)組 p 指向結(jié)構(gòu)體類(lèi)型的指針變量,算法: 找出最高的成績(jī),并計(jì)下數(shù)組下標(biāo), 將指針 p 移位于該下標(biāo)處, 最后輸出 p 所指向的元素中各個(gè)成員值。,舉例 11.6,main() struct student int num; char name20; int score; ; struct student stu4; struct student *p; int i, temp; int max;,舉例 11.6,for (i=0;imax) max=stui.score; temp=i; p=stu+temp; ,11.7 用指針處理鏈表,鏈表是一種常見(jiàn)的重要數(shù)據(jù)結(jié)構(gòu),它可進(jìn)行動(dòng)態(tài)存儲(chǔ)分配。 鏈表特點(diǎn):,1、動(dòng)態(tài) 2、頭指針head、結(jié)點(diǎn)、表尾,指向第一個(gè)元素,每個(gè)結(jié)點(diǎn)包含兩部分: 一為用戶(hù)數(shù)據(jù);二為下一個(gè)結(jié)點(diǎn)的地址,地址部分為NULL,用結(jié)構(gòu)體變量做結(jié)點(diǎn)最合適,定義結(jié)構(gòu)體類(lèi)型 struct 結(jié)構(gòu)體名 數(shù)據(jù)類(lèi)型 成員名 1; 數(shù)據(jù)類(lèi)型 成員名 2; : 數(shù)據(jù)類(lèi)型 成員名 n; ;,struct student int num; float score; sturct student *next; ,num score next,11.7.2簡(jiǎn)單鏈表,靜態(tài)鏈表 例11.7,在動(dòng)態(tài)內(nèi)存 區(qū)分配一個(gè)長(zhǎng)度為siz連續(xù)空間,返回一個(gè)指向分配域起始地址的指針,類(lèi)型為void,如不成功,返回空指針. 格式 指針變量 = 類(lèi)型 maclloc(size); 例:int *p; p=int malloc(sizof(int);,釋放由p指向的內(nèi)存空間,11.7.3 處理動(dòng)態(tài)鏈表所需的函數(shù),void *maclloc(unsigned int size),void *calloc(unsigned n, unsigned size),在動(dòng)態(tài)內(nèi)存區(qū)分配n個(gè) 長(zhǎng)度為siz連續(xù)空間,void free(*P),用指針處理鏈表,鏈表動(dòng)態(tài)地進(jìn)行存儲(chǔ)分配的數(shù)據(jù)結(jié)構(gòu)。,struct node int num; struct node *next ;,#define LEN sizeof(struct node) struct node /自定類(lèi)型 int num; struct node *next ; struct node *h,*p*q; /變量聲明 p=(struct node *)malloc(LEN); q=(struct node *)malloc(LEN); p-num=20; q-num=30; h=p; p-next=q; q-next=NULL; ,用指針處理鏈表,單鏈表,h,p,q,NULL,20,30,h 頭指針 指向第一個(gè)元素 q 尾指針 地址部分存放NULL,不再指向其它元素,鏈 表 操 作,建立鏈表 輸出鏈表 查找 結(jié)點(diǎn) 刪除結(jié)點(diǎn) 插 入結(jié)點(diǎn),struct node int num; struct node *next; ;,建立鏈表 新結(jié)點(diǎn)于鏈表尾部,struct node *creat( )/建鏈表 int n; struct node *h,*q,*p; p=(struct node *)malloc(LEN); scanf(“%d“, ,0,q-next=0; return h; ,先進(jìn)先出隊(duì)列建表,輸出鏈表 遍歷,void print(struct node *h) struct node *p; p=h; while (p!=0) printf(“%dn“,p-num); p=p-next; ,h,p,p,p,p,查找 結(jié)點(diǎn) 有條件的遍歷,struct node *search(struct node *h) struct node *p; p=h; while (p-num!=3) p=p-next; return (p); ,p,p,刪除結(jié)點(diǎn) (p之后的結(jié)點(diǎn)),n1,n4 0,h,p,void delnode(struct node *p) struct node *m; m=p-next; p-next=m-next; free (m); ,插 入結(jié)點(diǎn),void insert(nodetype *p) nodetype *g; g= (struct node *)malloc(LEN); g-a=80; g-next=p-next; p-next=g;,p,h,完整程序,#define LEN sizeof(struct node) #include struct node /數(shù)據(jù)結(jié)構(gòu) int num; struct node *next; ; struct node *creat(); /函數(shù)聲明 void print(struct node *); struct node *search(struct node *); void delnode(struct node *);,main() struct node *h=0,*q; h=creat(); print(h); q=search(h); delnode(q); print(h); ,練 習(xí),填空 將一條鏈表上相鄰的兩個(gè)結(jié)點(diǎn)合并成一個(gè)結(jié)點(diǎn)。即將第一個(gè)結(jié)點(diǎn)與第二個(gè)結(jié)點(diǎn)合并,將第三個(gè)節(jié)點(diǎn)與第四個(gè)節(jié)點(diǎn)合并。若鏈表上的結(jié)點(diǎn)個(gè)數(shù)為奇數(shù),則最后的一個(gè)結(jié)點(diǎn)不合并,直接作為合并后鏈表上的最后一個(gè)結(jié)點(diǎn)。鏈表結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)為: struct node int data; struct node *next; ;,以下函數(shù)merge() 的輸入?yún)?shù)h指向要合并鏈表的首部,void merge(struct *h) struct node *p1,*p2l if ( 1 ) return h; p1=h; p2=h-next; while (p2!=NULL) p1-data+=p2-data; p1-next=p2-next; delete(p2); p1=( 2 ); if ( 3 ) p2=( 4 ) else p2=NULL; ,n1+n2,p1-next=p2-next,delete p2,p1-data+=p2-data,答 案,1 h=NULL 2 p1-next 3 p1!=NULL 4 p1-next,11.8 共用體,概念 使幾個(gè)不同變量共同占有同段內(nèi)存的結(jié)構(gòu) 定義 union 共同體名 數(shù)據(jù)類(lèi)型 成員名; 數(shù)據(jù)類(lèi)型 成員名; 變量列表;,共用體聲明的表示方法,例 union data int i, char ch; float f; a,b,c;,union data int i, char ch; float f; ; union data a,b,c;,union int i, char ch; float f; a,b,c;,引用形式 共同體變量名.成員名 例 a.i a.ch a.f,結(jié)構(gòu)體與共同體的區(qū)別,結(jié)構(gòu)體變量中每個(gè)成員分別占有獨(dú)立的內(nèi)存空間, 整個(gè)結(jié)構(gòu)體類(lèi)型占有字節(jié)數(shù)為各成員字節(jié)數(shù)之和。,1000,實(shí) 型 f,1000,共同體變量中所有成員占有共同的內(nèi)存空間, 整個(gè)共用體類(lèi)型占有字節(jié)數(shù)等于最長(zhǎng)的成員字節(jié)數(shù)。,11.8.3數(shù)據(jù)特點(diǎn),變量中每一瞬時(shí)只有一個(gè)成員有效,同時(shí)賦值時(shí) 最后一存放的成員有效。,變量不能作為函數(shù)的參數(shù),也不能使函數(shù)帶回共用體變量,但可以用指向共用體變量的指針。,共用體變量的地址和它的各個(gè)成員地址相同。,不能對(duì)共用體變量名賦值,也不能企圖引用變量名得到 一個(gè) 值,又不能在定義時(shí)對(duì)它初始化。,共用體類(lèi)型可以出現(xiàn)在結(jié)構(gòu)體類(lèi)型定義中,也可以定義 共用體數(shù)組,對(duì)結(jié)構(gòu)體,同樣適用。,例 11.12(p289),要建立如下的表格,struct char name20; int num; char sex; char job; union int class; char position10; category; person2;,數(shù)據(jù)結(jié)構(gòu) 結(jié)構(gòu)體數(shù)組 結(jié)構(gòu)體類(lèi)型定義中包括共同體 程序設(shè)計(jì)框圖(p245 圖10.27),main() int i,j; for (i=0;i2;i+) scanf(“%s%d%c%c“,, ,/*輸入數(shù)據(jù)*/,for (i=0;i2;i+) if (personi.job=s) printf(“%-6d%-10s%-6c%-6c%-8dn“,personi.num, ,personi.sex,personi.job, personi.category.class); else if (personi.job=t) printf(“%-6d%-10s%-6c%-6c%-8sn“,personi.num, ,personi.sex,personi.job, personi.category.position); else printf(“n“); ,/*輸出數(shù)據(jù)*/,11.9枚舉類(lèi)型,概念 將變量的值 一一列舉出來(lái),變量的值只限于 列舉出來(lái)的值的范圍內(nèi)。 定義 enum 枚舉名枚舉元素表枚舉變量名; 例 enum week_day Mon,Tue,Wed,Thu,Fri,Sat,Sun week;,說(shuō)明 枚舉 元素表由一系列符號(hào)組成,每一 符號(hào)表示一個(gè)整型值。若沒(méi)有進(jìn)行初始化第一個(gè)元素的值為 0,其后依次類(lèi)推。 枚舉元素是常量,不可用賦值語(yǔ)句對(duì)其賦值。 枚舉變量只能取枚舉元素表中的某個(gè)元素。 例 week=Fri; printf(“%d”,week) 結(jié)果為 4 week=Sun; for (week=Mon;week=Sun;week+) ,自己閱讀例11.13,例 :利用枚舉類(lèi)型輸出春、夏、秋、冬。,enum season spring, summer, autumn, winter, end; enum season select( ) int s; printf(“nPleaser input a number(0-4):”); scanf(“%d”, ,例 應(yīng)用舉例,main() enum season times; while(1) times=select(); if (times=end) break; switch (times) case spring: printf(“nIt is spring.”);break; case summer: printf(“nIt is summer.”);break; case autumn: printf(“nIt is autumn.”);break; case winter: printf(“nIt is winter.”);break; ,11.10用typedef 定義類(lèi)型,概念 說(shuō)明一種新的類(lèi)型名。,定義 typedef 類(lèi)型名1 類(lèi)型名2,例 類(lèi)型說(shuō)明 typedef int INTEGER; 變量說(shuō)明 INTEGER i, j; int i, j;,類(lèi)型說(shuō)明 變量說(shuō)明 typedef struct DATE dirthday; int yeaa; DATE *p; int month; int day; DATE;,聲明一個(gè)新的類(lèi)型名的方法,步驟 1、先按定義變量的方法寫(xiě)出定義體; 步驟 2、將變量名換成新類(lèi)型名; 步驟 3、在前面加上typedef;,說(shuō)明,typedef 用于定義各種類(lèi)型名。 只是對(duì)已經(jīng)存在的類(lèi)型增加一個(gè)類(lèi)型名。,typedef 與 #define不同點(diǎn) #define 預(yù)編譯時(shí)處理,只能進(jìn)行簡(jiǎn)單的字符串替換。 typedef 編譯時(shí)處理,采用定義變量方法定義類(lèi)型。,練習(xí),1.在說(shuō)明一個(gè)結(jié)構(gòu)體變量時(shí)系統(tǒng)分配給它的存儲(chǔ)空間是 。 A.該結(jié)構(gòu)體中第一個(gè)成員所存儲(chǔ)的空間。 B.該結(jié)構(gòu)體中最后一個(gè)成員所存儲(chǔ)的空間。 C.該結(jié)構(gòu)體中占用最大存儲(chǔ)空間的成員所許的存儲(chǔ)空間。 D.該結(jié)構(gòu)體中所有成員所需存儲(chǔ)空間的總和。 2.在說(shuō)明一個(gè)共同體變量時(shí)系統(tǒng)分配給它的存儲(chǔ)空間是 。 A.該共同體中第一個(gè)成員所存儲(chǔ)的空間。 B.該共同體中最后一個(gè)成員所存儲(chǔ)的空間。 C.該共同體中占用最大存儲(chǔ)空間的成員所許的存儲(chǔ)空間。 D.該共同體中所有成員所需存儲(chǔ)空間的總和。,3. 共同體類(lèi)型在任何給定時(shí)刻 , 。 A.所有成員一直駐留在內(nèi)存結(jié)構(gòu)中。 B.只有一個(gè)成員駐留在內(nèi)存結(jié)構(gòu)中。 C.部分成員駐留在內(nèi)存結(jié)構(gòu)中。 D.沒(méi)有成員駐留在內(nèi)存結(jié)構(gòu)中。 4.如下結(jié)構(gòu)體定義中,不正確的是 。 A. struct student B. struct stud20 int no; int no; char name20; char name20; ; ; C. struct D. struct student int no; int no; char name20; char name20; stu20; stu200;,5. 有如下定義 sturct int x; int y; s2=1,3,5,7,*p 則 表達(dá)式 +p-x 的結(jié)果 (1) 。 表達(dá)式(+p)-x 的結(jié)果 (2) 。,6.有如下定義 struct int x; char y; tab2=1,”ab”2,”cd”,*p=tab; 則:表達(dá)式 *p-y 的結(jié)果 (1) 。 表達(dá)式*(+p)-y 的結(jié)果 (2) 。,答 案,1.D 2.C 3.B

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論