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

正文內(nèi)容

c語言程序設(shè)計(jì)教程(四)ppt-wenkub.com

2024-10-14 04:11 本頁面
   

【正文】 amp。 A. x¦ y amp。 ? ( 6)位段成員可以在數(shù)值表達(dá)式中被引用,它會(huì)被自動(dòng)轉(zhuǎn)換為相應(yīng)的整數(shù)。 ? unsigned f3:3。非位段成員也可以在兩個(gè)位段成員之間。 ? unsigned f2:1。 ? ( 4)位段不能聲明為數(shù)組,也不能用指針指向位段。 ? unsigned f3:3。 ? 如果無名位段的長度為 0,則表示下一個(gè)位段從一個(gè)新的字節(jié)開始存放。 ? unsigned f3:3。 ? ( 2)在位段結(jié)構(gòu)類型中,可以聲明無名位段,這種無名位段具有位段之間的分隔作用。 ? 對位段結(jié)構(gòu)成員的引用方式,與引用一般結(jié)構(gòu)體成員的方式相同。 ? unsigned c:3。 ? }p1,p2。 ? unsigned b:1。例如,上述定義的位段結(jié)構(gòu)類型需要占 2bit(16位 ),其存儲(chǔ)結(jié)構(gòu)為: 15 13 12 8 7 6 5 3 2 1 0 空 5 2 3 1 2 位段 (續(xù) ) ? 定義了位段結(jié)構(gòu)類型后,就可以聲明位段結(jié)構(gòu)類型的變量。 ? }。 ? unsigned b:1。 位段 ? C語言允許在一個(gè)結(jié)構(gòu)體中以位為單位來指定其成員所占內(nèi)存長度,這種以位為單位的成員稱為 “ 位段 ” 或稱 “ 位域 ” 。 ? c=c|b。a,amp。 ? ③ 將 c與 b進(jìn)行按位或運(yùn)算,即: ? c = c¦ b 。要求將 a進(jìn)行右循環(huán)移位,即將 a中原來左端( 16- n)位右移 n位,原來右端 n位移到最左面 n位。c。a)。運(yùn)算。 示例程序 ? 例 111 對整數(shù) a取其從右端開始的 4~ 7位。= ¦ = = = ^ = ? 設(shè) bit是變量, op代表符號(hào)"="左邊的運(yùn)算符,則表達(dá)式: ? bit op=表達(dá)式 ? 等價(jià)為: ? bit=bit op(表達(dá)式 ) ? 例如,設(shè)變量 bit的值的位序列為: ? 1101 0001 0101 1111 ? 變量 y的值的位序列為: ? 1100 0000 0101 1000 ? 則下面的語句: ? bit amp。右邊移出的位被舍棄。下面的例子說明了這個(gè)運(yùn)算符的運(yùn)算規(guī)則: ? 0000 1001 1011 1001 ? ^ 0000 0000 1000 0011 ? 0000 1001 0011 1010 ? 由于在將一個(gè)位與 0進(jìn)行異或操作時(shí),結(jié)果值中對應(yīng)于該位的值保持不變,而與 1進(jìn)行異或運(yùn)算時(shí),結(jié)果值中對應(yīng)于該位的值被翻轉(zhuǎn) (0變?yōu)?1, 1變?yōu)?0),所以,下面表達(dá)式的結(jié)果值是將變量 bit的低四位翻轉(zhuǎn)之后的值: ? bit^ 0X0F 左移運(yùn)算符 ? 它是二元運(yùn)算符,其一般形式為: ? 操作數(shù) 1操作數(shù) 2 ? 這個(gè)表達(dá)式的運(yùn)算結(jié)果為將 “ 操作數(shù) 1”的值的位序列左移 “ 操作數(shù) 2”的值所表示的次數(shù)之后的值。 0XFFF0 ? 這個(gè)表達(dá)式在十六位操作系統(tǒng)上可以正確工作,但在三十二位操作系統(tǒng)上就不能正確工作。 按位與運(yùn)算符 amp。下面的例子說明了位與運(yùn)算的運(yùn)算規(guī)則: ? 0000 1001 1011 1001 ? amp。例如:設(shè)變量 bit的值為 0X9A,則表達(dá)式 ~bit的值為 0XFF65。 ? ( 2)操作數(shù)只能是整型或字符型的數(shù)據(jù),不能是實(shí)型數(shù)據(jù)。 ? 當(dāng)將一種長度 (例如十六位 )的整數(shù)轉(zhuǎn)換為較短的整數(shù)時(shí),轉(zhuǎn)換過程只是簡單地將被轉(zhuǎn)換的值的位序列截短為所需要的位數(shù),將這個(gè)位序列解釋為所需要類型的數(shù)據(jù)值。 整數(shù)的計(jì)算機(jī)表示 (續(xù) ) ? 例如,將 7轉(zhuǎn)換為 long類型的值的轉(zhuǎn)換過程為: 1111 1111 1111 1001 1111 1111 1111 1111 1111 1111 1111 1001 ? 這里,由于符號(hào)位為 1,所以,增加的位使用 1填補(bǔ)。下面 ? 是 +7和 7的二進(jìn)制表示: +7 0000 0000 0000 0111 符號(hào)位 7 1111 1111 1111 1001 符號(hào)位 整數(shù)的計(jì)算機(jī)表示 (續(xù) ) ? 當(dāng)不同類型的整數(shù)參與計(jì)算時(shí),要進(jìn)行類型轉(zhuǎn)換。 ? 類似于表 111中的表示方法,在以二進(jìn)制形式表示整數(shù)值時(shí),值的最低有效位 (LSB——Least Significant Bit)列在最右邊,稱為第 0位,其它位順序從右向左排列,最左邊的位被稱為最高有效位 (MSB——Most Significant Bit)。 整數(shù)的計(jì)算機(jī)表示 ? 在 C語言中,整數(shù)有八位長度、十六位長度和三十二位長度之分,在每種長度中又有有 ? 符號(hào)和無符號(hào)之別。 ? 一個(gè)十六進(jìn)制位對應(yīng)四個(gè)二進(jìn)制位,采用十六進(jìn)制表示形式,我們可以方便地確定一個(gè) ? 十六進(jìn)制位所表示的四個(gè)二進(jìn)制位中各個(gè)位是 1或是 0。所以,在 C語言中,位運(yùn)算實(shí)質(zhì)上指的是對表示整數(shù)的每個(gè)位按圖 111所示的規(guī)則進(jìn)行。 位 非:當(dāng)操作數(shù)的值為 1時(shí),結(jié)果值為 0,否則,結(jié)果值為 1。圖 111給出了這些運(yùn)算的說明。移位運(yùn)算在一個(gè)位序列中將一個(gè)位從某個(gè)排列位置移到 —個(gè)新的位置。位 (bit)是計(jì)算機(jī)表示數(shù)據(jù)值的最小單位。 第 11章 位運(yùn)算 ? C語言能部分地取代匯編語言,主要原因是 C語言提供了一些低級(jí)運(yùn)算符,這些運(yùn)算符能用來操作表示數(shù)據(jù)值的位序列,這些運(yùn)算符被稱為位運(yùn)算符。 習(xí)題 6. 編寫程序,實(shí)現(xiàn)兩個(gè)磁盤文件合并(一個(gè)文件接在另一個(gè)文件之后),兩個(gè)文件名通過命令行傳入(作為 main()的參數(shù))。 2. 說明文件的打開與關(guān)閉各有什么作用。!feof(rep)。j++) ? fprintf(rep,%d*%d=%d ,i,j,i*j)。 ? } ? for(int i=1。 ? } ? 若將本例程序命名為 ,經(jīng)編譯后的可執(zhí)行程序?yàn)?,則 ? 運(yùn)行結(jié)果: ? exam ? ! ? I love china ? Is all right? C庫文件 (續(xù) ) ? 例 1010 建立一個(gè)乘法口訣的文本格式文件 ,其格式為: ? 1*1= 1 ? 1*2= 2 2*2= 4 ? 1*3= 3 2*3= 6 3*3= 9 ? …… ? 1*9= 9 2*9= 18 …… 9*9= 81 ? 文件建立后,再將其讀出顯示再屏幕上,進(jìn)行驗(yàn)證。!feof(f_out)。 ? fclose(f_in)。 ? exit(0)。 ? exit(0)。 ? 例 109 將例 10- 8所建立的磁盤文件( )中的信息復(fù)制到另一個(gè)磁盤文件 ()。C的庫文件分為兩類,一類是擴(kuò)展名為" .h"的文件,稱為頭文件,在前面的包含命令中我們已多次使用過。 ? } ? putchar(ch)。39。 /* err_flag為讀寫磁盤文件出錯(cuò)標(biāo)志 */ ? printf(\nEnter a filename: )。 ? (3) 文件出錯(cuò)標(biāo)志和文件結(jié)束標(biāo)志置 0函數(shù) ? 調(diào)用格式: ? clearerr(文件指針 ) ; ? 功能:本函數(shù)用于清除出錯(cuò)標(biāo)志和文件結(jié)束標(biāo)志,使它們?yōu)?0值。 ? } ? printf(\n)。 ? } ? printf( Name:\n)。 ? }。 ? include ? struct student ? { ? char name[10]。 ? fclose(fp)。 ? while(!feof(fp)) ? { ? fread(amp。 ? } ? fwrite(amp。 ? scanf(%d,%d,amp。 ? scanf(%s,)。 ? void main() ? { ? struct student stu。 ? int age。 ? fseek(fp,15L,2)。 ? rewind()函數(shù)用于流指針 stream指向的文件中,文件指針移到文件的開頭,當(dāng)移動(dòng)成功時(shí),返回 0,否則返回一個(gè)非 0值。 ? int rewind(FILE *stream)。而對 setvbuf()函數(shù),則由 malloc函數(shù)來分配緩沖區(qū)。 ? void setvbuf(FILE *stream,char *buf,int type,unsigned size)。 ? int flushall()。 /* 讀取一個(gè) struct student數(shù)據(jù) */ ? printf(%10s %5d %5d %10s\n,)。 ? } ? printf(\n)。 ? } ? /* read_print()函數(shù)功能是:將文件 */ ? void read_print() ? { ? struct student stu。 i++) ? fwrite(amp。 ? if((fp=fopen(,wb))==NULL) /* 打開磁盤文件 */ ? { ? printf(Cannot open out file!\n)。stua[i].score)。 ? scanf(%s, stua[i].addr) 。 iSIZE。 ? int savedata(struct student stua[],int m)。 ? int age。 ? 注意:在調(diào)用 fwrite()函數(shù)和 fread()函數(shù)時(shí),應(yīng)該知道要操作的數(shù)據(jù)的類型格式,這樣才能把處理數(shù)據(jù)進(jìn)行寫入或讀入操作。當(dāng)返回?cái)?shù)不等于 nitems時(shí),可以用 feof()或 ferror()函數(shù)進(jìn)行檢查。 ? int fwrite(void *ptr,int size,int nitems,FILE *stream)。 /*讀取 16個(gè)字符 */ ? puts(m)。i)。 ? fp=fopen(,r)。 ? include ? include ? void main() ? { ? char *s,m[20]。 /*向所建文件寫一整型數(shù) */ ? fprintf(fp,%s,s)。 /*向所建文件寫入一串字符 */ ? fputc(39。 ? int i=617。 ? fprintf()和 fscanf()同 printf()和 scanf()函數(shù)類似,不同之處就是printf()函數(shù)是向顯示器輸出, fprintf()則是向流指針 stream指向的文件輸出; fscanf()則是向流指針 stream指向的文件輸入。因此執(zhí)行到什么時(shí)候?yàn)橹?,需要用戶進(jìn)行控制,否則可能造成存儲(chǔ)區(qū)的溢出。 ? } 文件的讀寫 (續(xù) ) ? while(!feof(fp)) ? { ? if(fgets(str,128,fp)!=NULL) ? printf(%s,str)。 ? include ? include ? void main() ? { ? FILE *fp。\039。 ? 注意: fgets()函數(shù)讀到 39。 ? int fscanf(FILE *stream,char *format,variablelist)。 ? char *gets(char *s)。 ? putchar(c) ? 相當(dāng)于 ? fputc(c, stdout); 文件的讀寫 (續(xù) ) ? getchar() ? 相當(dāng)于 ? fgetc(stdin)。用 fgetc()函數(shù)將文件指針 fp指定的字符讀到 ch變量中,然后用 fputc()函數(shù)在屏幕上顯示,當(dāng)讀到文件結(jié)束標(biāo)志EOF時(shí),關(guān)閉該文件。 ? } ? while((ch=fgetc(fp))!=EOF) ? fputc(ch,stdout)。 ? include ? include ? void main() ? { ? FILE *fp。 ? 其中 fgetc()函數(shù)將把由流指針 stream指向的文件中的一個(gè)字符讀出。 ? int fputc(int ch,FILE *stream)。如關(guān)閉了 4個(gè)文件,則當(dāng)執(zhí)行 ” n=fcloseall()。 ? } ? else ? printf(File is now closed\n)。 ? 它表示 fclose()函數(shù)將關(guān)閉 FILE指針 stream對應(yīng)的文件,并返回一個(gè)整數(shù)值。只有對打開的文件進(jìn)行關(guān)閉操作時(shí),停留在文件緩沖區(qū)的內(nèi)容才能被寫到該文件中去,從而使文件完整。 ? 把一個(gè)文本文件讀入內(nèi)存時(shí),要將 ASCII碼轉(zhuǎn)換成二進(jìn)制碼,而把文件以文本方式寫入磁盤
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1