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

正文內(nèi)容

c語言用戶自定義數(shù)據(jù)類型-資料下載頁

2025-05-11 21:21本頁面
  

【正文】 是關(guān)鍵字 ; ? 枚舉名和枚舉常量是標識符 ; ? 枚舉常量之間用逗號分隔 。 1. 枚舉類型的定義 enum 枚舉名 { 標識符 1[=整型常數(shù) ], 標識符 2[=整型常數(shù) ], … }。 71 枚舉類型 ? 例如: enum cards {club, diamond, heart, spade} card1, card2。 ? 定義了一個枚舉類型 enum cards的同時定義了二個該類型的 枚舉型變量 card1與 card2,它們的值只能是 club, diamond, heart, spade之一。 ? 例如: card1 = club。 card2 = spade。 是合法的賦值語句。 72 說明: ( 1) enum是 C語言的關(guān)鍵字 , 用于說明枚舉類型以及定義枚舉變量。再看幾個定義: enum weekday {Mon, Tue, Wed, Thu, Fri, Sat, Sun}。 /*說明枚舉類型 */ enum colors {red, green, blue}backcolor, forecolor。 /*說明 枚舉類型的同時定義枚舉型變量 */ enum weekday workday, week_end。 /*用已定義好的枚舉類型定義枚舉變量 */ 說明: 73 枚舉類型 ( 2)枚舉類型的說明和變量定義有兩種方式 (如上 ), 第一種方式把定義和說明分開 。 第二種方式在說明枚舉類型的同時定義枚舉變量。 ( 3) 枚舉類型名和枚舉值均為用戶定義的標識符 (不能是雙引號括起來的字符串或數(shù)值 )。枚舉值又稱為 枚舉元素、枚舉常量 , 系統(tǒng)將枚舉值作為整型常量來處理 。因為是常量 , 因此不能在程序執(zhí)行時被賦值 , 也不能與其它標識符同名。 枚舉值是常量,不是變量 。若定義了上述幾種枚舉類型 , 以下語句是非法的: int red。 或 Mon=1。 74 枚舉類型 ( 4)如果省略” =整型常量” , 編譯程序 按順序給每個枚舉元素一個對應的整數(shù)值 , 整數(shù)值從 0開始 , 后續(xù)元素順序加1。例如上面的例子中 , Mon的值為0 ,Tue的值為 1, ..., Sun的值為 6。 可以 在定義時指定枚舉元素對應的整數(shù) 值 , 沒有指定整數(shù)值的元素則在前一元素序號值的基礎(chǔ)上順序加 1。 例如: enum weekday{Sun=7,Mon=1, Tue, Wed, Thu, Fri, Sat}。 此時 Sun的值為 7, Mon的值為 1, Tue的值為 2 , ..., Sat的值為 6。 75 枚舉類型 也可以 指定枚舉元素對應的值是負整 數(shù) , 以后的枚舉元素值仍依次加 1。例如: enum operator {plus, minus= 3, times, divide}。 則 plus的值為 0, minus的值為 3, times的值為 2 , divide的值為 1。 ( 5)每個枚舉元素之間用 逗號” ,”隔開 , 而不是用分號” ?!备糸_。 ( 6)用 printf函數(shù)輸出用 %d, 而不能用 %s 76 枚舉類型 ( 7)枚舉變量只能取枚舉類型說明結(jié)構(gòu)中的某個枚舉元素 , 若要對枚舉變量賦整數(shù)值必須進行強制類型轉(zhuǎn)換 。例如: enum weekday {Sun=7, Mon=1, Tue, Wed, Thu, Fri, Sat } workday, week_end。 workday=Mon。 week_end=(enum weekday) (6)。 /* 相當于 week_end=Sat。*/ ( 8) 枚舉變量可以進行加 (減 )一個整數(shù) n的運算 。例如: workday=Mon。 workday ++。 /*此時 workday的值變成 Tue*/ 77 枚舉類型 void main() { enum weekday {sun, mon, tue, wed, thu, fri, sat} a,b,c。 a=sun。 b=mon。 c=tue。 printf(%d,%d,%d, a, b, c)。 } ? 運行結(jié)果如下: ? 0,1,2 枚舉變量取枚舉說明結(jié)構(gòu)中的某個標識符常量后,其值可認為是 標識符對應的常數(shù) 78 用 typedef 定義類型別名 ? C語言中 , 可以使用關(guān)鍵字” typedef”對已有的類型說明一個新名稱。格式為 : typedef 類型名 類型別名 。 ? 上述 只說明了一個數(shù)據(jù)類型的新名字 , 而不是產(chǎn)生了一種新的數(shù)據(jù)類型 , 原有類型名依然有效。例如 : typedef float REAL。 ? 使用上述說明后 , REAL就成了 float的代名詞 。此后 ,可用標識符 REAL來定義單精度實型變量。例如 : REAL x, y。 /* 等價于 float x, y。 */ 79 typedef 的用途 ? 習慣上將新的類型名用大寫字母表示 , 以便與系統(tǒng)提供的關(guān)鍵字或預處理標識符區(qū)別開。 ? typedef的用處: 用來說明數(shù)組、結(jié)構(gòu)類型、聯(lián)合以及枚舉類型等類型名。下 面舉例說明。 1. typedef用于定義數(shù)組類型名 typedef int ARRAY[10]。 /* 定義 ARRAY為有 10個元素的整型數(shù)組類型名 */ ARRAY a, b。 /* 即 int a[10] ,b[10]。 80 typedef 的用途 2. typedef用于定義結(jié)構(gòu)類型名 typedef struct { char number[10] int class。 float score[5]。 } STUDENT。 /* 定義 STUDENT為一個結(jié)構(gòu)類型名 */ STUDENT stu。 /* 定義 stu為上述結(jié)構(gòu)類型的變量 */ 81 typedef 的用途 3. typedef用于定義聯(lián)合類型名 typedef union { int i。 char ch。 } UTYPE。 /* 定義 UTYPE為一個共用體類型名 */ UTYPE x, y。 /*定義 x與 y為上述共用體類型的變量 */ 4. typedef用于定義枚舉類型名 typedef enum {male, female } ETYPE。 /*定義 ETYPE為一個枚舉類型名 */ ETYPE sex。 /*定義 sex 為上述枚舉類型的變量 */ 5. 定義指針類型 : typedef int *STRING。 STRINT p1, p2。 /* p1,p2為指向整型的指針變量 */ 82 課 堂 練 習 1.以下程序段的運行結(jié)果是( )。 union { int n。 char str[2]。 } t 。 =80。 [0]=39。a39。 [1]=0。 printf(%d\n, )。 2.以下程序段的運行結(jié)果是( )。 union { int x。 float y。 char c。 }m,n。 =5。 =。 =39。A39。 =8。 printf(%d\n, )。 97 65 83 課 堂 練 習 3.正確的枚舉類型定義語句是( )。 (A) enum car={A, B,}。 (B) enum car {1, 2}。 (C) enum car {A=1, B=2}。 (D) enum car {A。 B}。 4.假定已有如下定義: int k, a[3]。 enum colors {red,green,blue} 。 判斷對以下語句是否符合語法規(guī)則。 a[red]=blue。 red=1。 k=green+blue。 5.設(shè)有如下定義: typedef int *INTEGER。 INTEGER p,*q。 下列敘述正確的是( )。 (A) 程序中可用 INTEGER代替 int類型名 (B) 不能用 INTEGER來定義變量 (C) p是 int型變量, q是基類型為 int的指針變量 (D) p是基類型為 int的指針變量 84 習題講評( P282) 有 4名學生 , 每人參加兩門課程的考試 。 試編寫函數(shù) index(), 查找總分高于160分和任意一科不及格的兩類學生 , 將結(jié)果輸出到屏幕上 。 include typedef struct student { char name[20]。 char num[20]。 float score1。 float score2。 }STU。 void main() { STU stud[4]= {{w,1,70,80}, {e,2,55,70}, {r,3,80,90}, {q,4,80,50}}。 index(stud)。 getch()。 } 85 習題講評( P282) void index(STU stud[]) { float sum。 int i。 for(i=0。i4。i++) { sum=stud[i].score1+stud[i].score2。 if(sum160) printf(\nall scores160:student name=%s,student num=%s,stud[i].name,stud[i].num)。 if(stud[i].score160||stud[i].score260) printf(\nall scores60:student name=%s,student num=%s,stud[i].name,stud[i].num)。 } }
點擊復制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1