




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
程序設(shè)計(jì)技術(shù)基礎(chǔ)程序設(shè)計(jì)技術(shù)基礎(chǔ)第二章C語(yǔ)言程序的數(shù)據(jù)描述及數(shù)據(jù)運(yùn)算2.1C語(yǔ)言的基本元素2.2初識(shí)數(shù)據(jù)類型2.3C語(yǔ)言的運(yùn)算符和表達(dá)式2.4類型轉(zhuǎn)換2022/12/202第二章C語(yǔ)言程序的數(shù)據(jù)描述及數(shù)據(jù)運(yùn)算2.1C語(yǔ)言的基2.1.1字符集字符是組成語(yǔ)言的最基本的元素。C語(yǔ)言字符集(即ASCII字符集)由字母、數(shù)字、空格、標(biāo)點(diǎn)和特殊字符組成(見附錄B)。主要分為以下幾類:(1)大小寫英文字母:a~z,A~Z;(2)數(shù)字:0~9;(3)鍵盤符號(hào):見書表2-1所示;(4)轉(zhuǎn)義字符:以字符“\”開頭,后跟一個(gè)或幾個(gè)字符的字符序列,通常用來表示鍵盤上的控制符或特殊符號(hào)。見書表2-2所示;2022/12/2032.1.1字符集字符是組成語(yǔ)言的最基本的元素。C語(yǔ)言字符2.1.2關(guān)鍵字所謂“關(guān)鍵字”就是已被C語(yǔ)言編譯工具本身使用,不能用作其它用途使用的字。主要用于構(gòu)成語(yǔ)句,進(jìn)行存儲(chǔ)類型和數(shù)據(jù)類型定義。所有的關(guān)鍵字均由小寫字母組成。根據(jù)關(guān)鍵字的作用,可分為數(shù)據(jù)類型關(guān)鍵字、控制語(yǔ)句關(guān)鍵字、存儲(chǔ)類型關(guān)鍵字、其它關(guān)鍵字四類。2022/12/2042.1.2關(guān)鍵字2022/12/1642022/12/205short、int、long、signed、unsigned、float、double、char、struct、enum、union、void數(shù)據(jù)類型關(guān)鍵字if、else、switch、case、default、for、do、while、break、continue、goto、return控制語(yǔ)句關(guān)鍵字auto、static、extern、register存儲(chǔ)類型關(guān)鍵字const、sizeof、typedef、volatile其它關(guān)鍵字關(guān)鍵字2022/12/165數(shù)據(jù)類型關(guān)鍵字控制語(yǔ)句關(guān)鍵字auto、2.1.3標(biāo)識(shí)符所謂“標(biāo)識(shí)符”是用戶自己定義的一種字符序列,在計(jì)算機(jī)高級(jí)語(yǔ)言中,用來表示程序中需要辨認(rèn)的對(duì)象名稱。C語(yǔ)言規(guī)定,標(biāo)識(shí)符是由字母或下畫線開頭的字母、數(shù)字、下畫線組成的一串符號(hào)。下面列出的標(biāo)識(shí)符是合法的:sum,day1,Yang,_total,MONTH,Student_name_2下面是不合法的標(biāo)識(shí)符:2_day,list.er,$234,#3Df,last-3<42022/12/2062.1.3標(biāo)識(shí)符所謂“標(biāo)識(shí)符”是用戶自己定義的一種字符序2022/12/207在標(biāo)識(shí)符中,大寫字母和小寫字母表示兩個(gè)不同的字符。C語(yǔ)言規(guī)定,用戶選取的標(biāo)識(shí)符不能是C語(yǔ)言規(guī)定的關(guān)鍵字。標(biāo)識(shí)符的命名應(yīng)盡量有相應(yīng)的意義,以便閱讀理解,做到“見名知意”。即選取有含義的英文單詞或其縮寫作為標(biāo)識(shí)符,例如:sum,num等。2022/12/167在標(biāo)識(shí)符中,大寫字母和小寫字母表示兩個(gè)2.2初識(shí)數(shù)據(jù)類型指定數(shù)據(jù)類型,主要是為了對(duì)數(shù)據(jù)分配存儲(chǔ)單元,包括存儲(chǔ)單元的長(zhǎng)度(占多少字節(jié))以及數(shù)據(jù)的存儲(chǔ)形式。對(duì)不同數(shù)據(jù)類型的數(shù)據(jù)分配不同的存儲(chǔ)單元長(zhǎng)度和存儲(chǔ)形式。不同數(shù)據(jù)類型的數(shù)據(jù)對(duì)應(yīng)的運(yùn)算種類也不同。在C語(yǔ)言中,數(shù)據(jù)類型可分為:基本數(shù)據(jù)類型、構(gòu)造數(shù)據(jù)類型、指針類型、空類型四大類。2022/12/2082.2初識(shí)數(shù)據(jù)類型指定數(shù)據(jù)類型,主要是為了對(duì)數(shù)據(jù)分配存儲(chǔ)2.2初識(shí)數(shù)據(jù)類型2022/12/2092.2初識(shí)數(shù)據(jù)類型2022/12/1692.2.1常量和變量數(shù)據(jù)按其取值是否可以改變分為常量和變量?jī)煞N。1.常量
在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量。它們可與數(shù)據(jù)類型結(jié)合起來進(jìn)行分類。在程序中,常量是可以不經(jīng)說明而直接引用的。2022/12/20102.2.1常量和變量2022/12/1610常用的常量有以下幾類:(1)字面常量(直接常量):
①整型常量:100、0、-15;
②實(shí)型常量:12.34、-0.5、3.24e5、-0.34E-6;
③字符型常量:'A'、'8'、'#'、'\t'、'\n'、'\101'、'\x41';(2)字符串常量:由一對(duì)雙引號(hào)("")括起的字符序列。例如:"BOY","Cprogram","12.5"等。2022/12/2011常用的常量有以下幾類:(1)字面常量(直接常量):2022/常用的常量有以下幾類:(3)符號(hào)常量:用#define命令,指定用一個(gè)符號(hào)名稱代表一個(gè)常量。符號(hào)常量在使用之前必須先定義。符號(hào)常量定義的一般形式為:
#define標(biāo)識(shí)符常量經(jīng)過定義,以后在程序中所有出現(xiàn)該標(biāo)識(shí)符的地方均代表該常量。2022/12/2012常用的常量有以下幾類:(3)符號(hào)常量:用#define命令,2022/12/2013#definePI3.14159#include<stdio.h>intmain(){doublec,r;r=5;c=2*PI*r;printf("c=%lf\n",c);return0;}【例2-1】求圓的周長(zhǎng)定義符號(hào)常量PI定義變量c、r用PI代替3.14159程序運(yùn)行的結(jié)果為:c=31.4159002022/12/1613#definePI3.141592022/12/2014使用符號(hào)常量的好處書寫簡(jiǎn)單不易出錯(cuò)。使用符號(hào)常量的好處含義清楚。使用符號(hào)常量的好處修改程序方便。2022/12/1614使用符號(hào)常量的好處書寫簡(jiǎn)單不易出錯(cuò)。2.2.1常量和變量2.變量在程序運(yùn)行過程中,其值可以變化的量,稱為變量。每一個(gè)變量都有一個(gè)名字,稱為變量名,以便被引用。一個(gè)變量在內(nèi)存中占據(jù)一定的存儲(chǔ)空間,在該存儲(chǔ)空間中存放一個(gè)屬于某種數(shù)據(jù)類型的數(shù)據(jù),稱為變量的值。變量必須先定義,后使用。變量的定義一般放在函數(shù)體的開頭部分。2022/12/20152.2.1常量和變量2.變量2022/12/16152.2.1常量和變量定義變量的一般形式為:
類型說明符
變量名標(biāo)識(shí)符,變量名標(biāo)識(shí)符,...;注意:類型說明符與變量名標(biāo)識(shí)符之間要用空格隔開,變量名標(biāo)識(shí)符之間用逗號(hào)隔開,末尾必須加分號(hào)。2022/12/20162.2.1常量和變量定義變量的一般形式為:2022/12在定義時(shí)指定該變量的名字和數(shù)據(jù)類型。在此請(qǐng)注意區(qū)分變量名和變量值這兩個(gè)不同的概念,如下圖中a是變量名,3是變量a的值,即存放在變量a的內(nèi)存單元中的數(shù)據(jù)。變量名實(shí)際上是以一個(gè)名字代表的一個(gè)存儲(chǔ)地址,在對(duì)程序編譯連接時(shí)由系統(tǒng)給每一個(gè)變量名分配對(duì)應(yīng)的內(nèi)存地址。在程序運(yùn)行時(shí)從變量中取值,實(shí)際上是通過變量名找到相應(yīng)的內(nèi)存地址,通過內(nèi)存地址,從其相對(duì)應(yīng)的存儲(chǔ)單元中讀取數(shù)據(jù)。2022/12/2017在定義時(shí)指定該變量的名字和數(shù)據(jù)類型。在此請(qǐng)注意區(qū)分變量名和變2022/12/2018#include<stdio.h>intmain(){intm;/*定義變量m*/m=23;/*給變量m賦值為23*/printf("thefirstvalueis:%d\n",m);/*輸出此時(shí)m的值*/m=-46;/*給變量m賦值為-46*/printf("thesecondvalueis:%d\n",m);/*輸出此時(shí)m的值*/return0;}【例2-2】變量舉例
程序運(yùn)行結(jié)果:thefirstvalueis:23thesecondvalueis:-462022/12/1618#include<stdio.h>【2022/12/2019保證程序中變量名使用得正確。在編譯時(shí)為每一個(gè)變量分配相應(yīng)的存儲(chǔ)單元。指定每一變量屬于某一種類型,這就便于在編譯時(shí)檢查該變量所進(jìn)行的運(yùn)算是否合法。變量要“先定義,后使用”,這樣做的目的2022/12/1619保證程序中變量名使用得正確。在編譯時(shí)2.2.2整型數(shù)據(jù)1.整型常量C語(yǔ)言中的整型常量習(xí)慣用我們所熟悉的十進(jìn)制數(shù)來表示,但是實(shí)際上它們都是以二進(jìn)制形式存儲(chǔ)在計(jì)算機(jī)內(nèi)存中的。二進(jìn)制數(shù)表示不直觀不方便,因此有時(shí)也將其表示為八進(jìn)制數(shù)和十六進(jìn)制數(shù),編譯器會(huì)自動(dòng)將其轉(zhuǎn)換為二進(jìn)制形式存儲(chǔ)。2022/12/20202.2.2整型數(shù)據(jù)2022/12/1620(1)整型常量的前綴:①十進(jìn)制整常數(shù):十進(jìn)制整常數(shù)沒有前綴。其數(shù)碼取值為0~9。例如:17、-31。②八進(jìn)制整常數(shù):八進(jìn)制整常數(shù)必須以數(shù)字0開頭,即以0作為八進(jìn)制數(shù)的前綴。其數(shù)碼取值為0~7。例如:021。③十六進(jìn)制整常數(shù):十六進(jìn)制整常數(shù)以0X或0x開頭,即以0X或0x作為前綴。其數(shù)碼取值為0~9,A~F或a~f。例如:0x11。請(qǐng)注意在程序中是根據(jù)前綴來區(qū)分各種進(jìn)制數(shù)的,因此在書寫常數(shù)時(shí)不要把前綴弄錯(cuò)造成結(jié)果的不正確。2022/12/2021(1)整型常量的前綴:2022/12/1621(2)整型常量的后綴整型常量有基本整型和長(zhǎng)整型、無符號(hào)數(shù)和有符號(hào)數(shù)之分。如果要表示的數(shù)超過了上述取值范圍,就必須用長(zhǎng)整型數(shù)來表示。長(zhǎng)整型數(shù)是用后綴“L”或“l(fā)”來表示的。無符號(hào)數(shù)也可用后綴表示,整型常數(shù)的無符號(hào)數(shù)的后綴為“U”或“u”。2022/12/2022(2)整型常量的后綴2022/12/1622不同類型的整型常量的表示形式:①有符號(hào)整型常量:默認(rèn)的整型(int)定義為有符號(hào)數(shù)。如:-31、17、021。②無符號(hào)整型常量:不能表示小于0的數(shù)。如:17u、021u、0x11u。③有符號(hào)長(zhǎng)整型常量如:65536L、0200000L、0x10000L。④無符號(hào)長(zhǎng)整型常量:要用后綴LU、Lu、lU、lu來表示。如:65536LU、0200000LU、0x10000LU。2022/12/2023不同類型的整型常量的表示形式:2022/12/16232.整型變量
數(shù)據(jù)的表示方法有多種多樣,但是所有數(shù)據(jù)在內(nèi)存中都是以二進(jìn)制形式存放的。在對(duì)程序編譯連接時(shí)系統(tǒng)會(huì)給每個(gè)變量分配一個(gè)內(nèi)存空間。2022/12/20242.整型變量2022/12/1624(1)整型變量的類型①有符號(hào)基本型:類型說明符為int。②有符號(hào)短整型:類型說明符為shortint或short。③有符號(hào)長(zhǎng)整型:類型說明符為longint或long。④無符號(hào)基本型:類型說明符為unsignedint。⑤無符號(hào)短整型:類型說明符為unsignedshortint或unsignedshort。⑥無符號(hào)長(zhǎng)整型:類型說明符為unsignedlongint或unsignedlong。2022/12/2025(1)整型變量的類型2022/12/16252022/12/2026#include<stdio.h>intmain(){printf("各種數(shù)據(jù)類型長(zhǎng)度:\n");printf("整型:---------------%d\n",sizeof(int));printf("長(zhǎng)整型:-------------%d\n",sizeof(long));printf("短整型:-------------%d\n",sizeof(shortint));return0;}【例2-3】各種數(shù)據(jù)類型的長(zhǎng)度
由于同種數(shù)據(jù)類型在不同的平臺(tái)其占字節(jié)數(shù)不盡相同,可以使用關(guān)鍵字“sizeof”來獲得變量或者數(shù)據(jù)類型的長(zhǎng)度。程序運(yùn)行結(jié)果:各種數(shù)據(jù)類型長(zhǎng)度:整型:---------------4長(zhǎng)整型:-------------4短整型:-------------22022/12/1626#include<stdio.h>(2)整型變量的定義和整型變量賦初值
例如:shortx,y,z;/*定義x、y、z為短整型變量*/longm,n;/*定義m、n為長(zhǎng)整型變量*/unsignedinta,b;/*定義a、b為無符號(hào)整型變量*/2022/12/2027(2)整型變量的定義和整型變量賦初值2022/12/1627C語(yǔ)言中經(jīng)常要對(duì)一些變量賦初值,以便使用變量。給變量賦初值的方法有以下兩種。①定義變量的同時(shí)賦初值。例如:longa=37000000;/*定義a為長(zhǎng)整型變量,并賦初值為37000000*/也可以給被定義的變量的一部分賦初值。例如:shortm=8,n,t;定義了三個(gè)整型變量m、n、t,只對(duì)m賦初值8。2022/12/2028C語(yǔ)言中經(jīng)常要對(duì)一些變量賦初值,以便使用變量。如果對(duì)幾個(gè)變量賦同樣的初值,應(yīng)該這樣表示:inta=5,b=5,c=5;表示變量a、b、c的初值都為5,而不能寫成:inta=b=c=5;錯(cuò)!2022/12/20292022/12/1629②先定義,再賦初值。例如:intx,y,z;/*定義x、y、z為整型變量*/y=45;/*給變量y賦初值45*/z=6;/*給變量z賦初值6*/并不是所有定義的變量都要賦初值,可以只給其中的某些變量賦初值。2022/12/2030②先定義,再賦初值。例如:2022/12/1630(3)整型數(shù)據(jù)在計(jì)算中遇到的問題由前面的知識(shí)我們知道,不同的數(shù)據(jù)類型都有各自的取值范圍。如果在程序運(yùn)算過程中結(jié)果超出取值范圍,會(huì)出現(xiàn)什么情況呢?2022/12/20312022/12/16312022/12/2032#include<stdio.h>intmain(){shortintm,n;m=32767;n=m+1;printf("m=%d\nn=%d\n",m,n);return0;}【例2-4】整型數(shù)據(jù)的溢出數(shù)據(jù)類型選擇不正確,會(huì)產(chǎn)生溢出錯(cuò)誤。程序運(yùn)行結(jié)果為:m=32767n=-327682022/12/1632#include<stdio.h>【2.2.3實(shí)型數(shù)據(jù)1.實(shí)型常量
實(shí)型常量也稱為實(shí)數(shù)或者浮點(diǎn)數(shù)。在C語(yǔ)言中,實(shí)數(shù)只采用十進(jìn)制。它有兩種形式:十進(jìn)制小數(shù)形式和指數(shù)形式。(1)十進(jìn)制小數(shù)形式。由數(shù)碼0~9和小數(shù)點(diǎn)組成。例如:0.0、25.0、0.13、300.、-.5等均為合法的實(shí)數(shù)。注意,必須有小數(shù)點(diǎn)。2022/12/20332.2.3實(shí)型數(shù)據(jù)1.實(shí)型常量2022/12/1633(2)指數(shù)形式:由十進(jìn)制數(shù),加階碼標(biāo)志“e”或“E”以及階碼(只能為整數(shù),可以帶符號(hào))組成。因?yàn)槌绦蚓庉嫊r(shí)不能輸入上下角標(biāo),所以用e或E代表以10為底的指數(shù)。e的左邊是數(shù)值部分,不能省略;e的右邊是指數(shù)部分,也不能省略。指數(shù)的一般形式為:aEn(a為十進(jìn)制數(shù),n為十進(jìn)制整數(shù)階碼)如:3.4e-6(相當(dāng)于3.6×10-6)、-2.5e5(相當(dāng)于-2.5×105)、-3e-4(相當(dāng)于-3×10-4)、6E3(相當(dāng)于6×10-3)等。2022/12/2034(2)指數(shù)形式:由十進(jìn)制數(shù),加階碼標(biāo)志“e”或“E”以及階碼2.實(shí)型變量(1)實(shí)型變量的類型
實(shí)型變量分為:?jiǎn)尉龋╢loat型)、雙精度(double型)和長(zhǎng)雙精度(longdouble型)三類。下表為各類實(shí)型數(shù)據(jù)的特點(diǎn)。2022/12/2035數(shù)據(jù)類型字節(jié)數(shù)(二進(jìn)制數(shù)位數(shù))有效數(shù)字位數(shù)取值范圍float4(32)6~7(十進(jìn)制)-3.4×10-38~3.4×1038double8(64)15~16(十進(jìn)制)-1.7×10-308~1.7×10308longdouble64/80/96與編譯器有關(guān)與編譯器有關(guān)2.實(shí)型變量2022/12/1635數(shù)據(jù)類型字節(jié)數(shù)(二進(jìn)制(2)實(shí)型變量的定義實(shí)型變量在使用前也必須加以定義。例如:floata,b;/*a、b為單精度型變量*/doublex,y;/*x、y為雙精度型變量*/(3)實(shí)型數(shù)據(jù)在計(jì)算中遇到的問題用有限的存儲(chǔ)單元不可能完全精確地存儲(chǔ)一個(gè)實(shí)數(shù)。2022/12/2036(2)實(shí)型變量的定義2022/12/16362022/12/2037#include<stdio.h>intmain(){floata;doubleb;a=123456.789e4;b=123456.789e4;printf("a=%f\nb=%lf\n",a,b);return0;}【例2-5】舍入誤差將a、b的值以小數(shù)形式輸出浮點(diǎn)數(shù)程序執(zhí)行的結(jié)果為:a=1234567936.000000b=1234567890.000000由于舍入誤差的原因,進(jìn)行計(jì)算時(shí)要避免一個(gè)較大實(shí)數(shù)和一個(gè)較小實(shí)數(shù)相加減。2022/12/1637#include<stdio.h>【2.2.4字符型數(shù)據(jù)1.字符常量(1)普通的字符常量普通的字符常量是用單引號(hào)(')括起來的一個(gè)字符。如'a'、'b'、'='、'+'、'?'等都為字符常量。字符常量只能是一個(gè)字符,但并不是用單引號(hào)括起來的任意一個(gè)字符,程序都能識(shí)別。例如代表圓周率的π在程序中是不能識(shí)別的,只能使用系統(tǒng)的字符集中的字符,目前大多數(shù)系統(tǒng)采用ASCII碼字符集中的字符。2022/12/20382.2.4字符型數(shù)據(jù)1.字符常量2022/12/163字符常量是以整數(shù)形式(字符的ASCII代碼)存放在內(nèi)存單元中的。例如:
大寫字母'A'的ASCII代碼是十進(jìn)制數(shù)65,二進(jìn)制形式為1000001。
數(shù)字字符'1'的ASCII代碼是十進(jìn)制數(shù)49,二進(jìn)制形式為0110001。需要注意的是:字符'1'和整數(shù)1是不同的概念。2022/12/2039字符常量是以整數(shù)形式(字符的ASCII代碼)存放在內(nèi)存單元中(2)特殊的字符常量——轉(zhuǎn)義字符ASCII碼字符集中的不可顯示的字符就可以用轉(zhuǎn)義字符來表示。例如:退格(以'\b'表示)、回車(以'\r'表示)等。轉(zhuǎn)義字符是可以用于控制等的特殊符號(hào),不同于字符原有的意義,故稱“轉(zhuǎn)義”字符。例如,在前面各例題中printf函數(shù)中用到的“\n”就是一個(gè)轉(zhuǎn)義字符,其意義是“換行”。2022/12/2040(2)特殊的字符常量——轉(zhuǎn)義字符2022/12/1640使用轉(zhuǎn)義字符時(shí)需要注意以下問題:①轉(zhuǎn)義字符中只能使用小寫字母,每個(gè)轉(zhuǎn)義字符只能看作一個(gè)字符。②在C程序中,使用不可打印字符時(shí),通常用轉(zhuǎn)義字符表示。③'\v'垂直制表和'\f'換頁(yè)符對(duì)屏幕沒有任何影響,但會(huì)影響打印機(jī)執(zhí)行響應(yīng)操作。④轉(zhuǎn)義字符'\0'表示空字符NULL,它的值是0。而字符'0'的ASCII碼值是48。因此,空字符'\0'不是字符'0'。另外,空字符不等于空格字符,空格字符的ASCII碼值為32。2022/12/2041使用轉(zhuǎn)義字符時(shí)需要注意以下問題:2022/12/1641使用轉(zhuǎn)義字符時(shí)需要注意以下問題:⑤轉(zhuǎn)義字符也可以出現(xiàn)在字符串中,但只作為一個(gè)字符看待。⑥如果“\”之后的字符和它不構(gòu)成轉(zhuǎn)義字符,則“\”不起轉(zhuǎn)義作用將被忽略。如:printf(″a\Nbc\nDEF\n″);輸出:aNbcDEF2022/12/2042使用轉(zhuǎn)義字符時(shí)需要注意以下問題:2022/12/16422022/12/2043#include<stdio.h>intmain(){printf("C\tC++\tJava\n\"C\"firstappeared!\n");return0;}【例2-6】轉(zhuǎn)義字符的應(yīng)用程序運(yùn)行結(jié)果為:CC++Java"C"firstappeared!2022/12/1643#include<stdio.h>2.字符變量字符變量是用數(shù)據(jù)類型符char定義字符變量的。字符變量中存放的是字符常量,其取值是字符常量,即單個(gè)字符。定義字符變量的一般形式為:char標(biāo)識(shí)符1,標(biāo)識(shí)符2,…,標(biāo)識(shí)符n;
例如:charc1,c2,ch;c1='A';c2='B';2022/12/20442.字符變量2022/12/1644
字符變量實(shí)際上是一個(gè)字節(jié)的整型變量,雖然稱為字符變量,但是可以把0~127之間的整數(shù)賦給一個(gè)字符變量。例如字符‘A’的十進(jìn)制ASCⅡ碼是65,字符‘B’的十進(jìn)制ASCⅡ碼是66。對(duì)字符變量c1、c2賦值:c1=‘A’;c2=‘B’;,實(shí)際上是在變量c1、c2的兩個(gè)內(nèi)存單元中存放整數(shù)65和66的二進(jìn)制代碼,如下圖所示。2022/12/2045字符變量實(shí)際上是一個(gè)字節(jié)的整型變量,雖然稱為字
字符型數(shù)據(jù)有無符號(hào)和有符號(hào)之分,其存儲(chǔ)空間和值的范圍如下表所示。2022/12/2046類型字節(jié)數(shù)取值范圍有符號(hào)字符型(signedchar)1-128~127即-27~(27-1)無符號(hào)字符型(unsignedchar)10~255即0~(28-1)字符型數(shù)據(jù)有無符號(hào)和有符號(hào)之分,其存儲(chǔ)空間和值3.字符變量與整型變量的互換由于字符型數(shù)據(jù)與整型數(shù)據(jù)在存儲(chǔ)方式上的相似性,使得兩者之間可以通用。因此C語(yǔ)言允許對(duì)整型變量賦予字符值,也允許對(duì)字符變量賦予整型值。在輸出時(shí),允許把字符變量按整型形式輸出,也允許把整型變量按字符形式輸出。但是,由于整型變量占2個(gè)或4個(gè)字節(jié),字符變量占1個(gè)字節(jié),當(dāng)整型量按字符量處理時(shí),只有低8位數(shù)據(jù)參與處理,也就是說,字符變量只能表示0~255之間的整數(shù)。2022/12/20473.字符變量與整型變量的互換2022/12/1647需要注意的是,對(duì)于值為128~255這一部分,最高位為1,用“%d”格式輸出的數(shù)值會(huì)得到負(fù)數(shù)。例如:chara=158;printf("%d\n",a);
運(yùn)行后的結(jié)果為-98。這時(shí)可以將變量定義為無符號(hào)字符變量,使最高位不表示符號(hào)。例如:
unsignedchara=158;printf("%d\n",a);運(yùn)行結(jié)果為158。2022/12/2048需要注意的是,對(duì)于值為128~255這一部分,最高位為1,用2022/12/2049#include<stdio.h>intmain(){charc1,c2;intm,n;c1=65;c2=66;m='a';n='b';printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);printf("%d%c\n",m,m);printf("%d%c\n",n,n);return0;}【例2-7】字符數(shù)據(jù)與整型數(shù)據(jù)互換將整數(shù)65賦給字符變量c1將整數(shù)66賦給字符變量c2將字符a賦給整型變量m
將字符b賦給整型變量n程序運(yùn)行結(jié)果為:AB656697a98b2022/12/1649#include<stdio.h>【2022/12/2050#include<stdio.h>intmain(){charch1,ch2,ch3,ch4;ch1='a';ch2='B';printf("ch1=%c,ch2=%c\n",ch1-32,ch2+32);printf("ch3=%c,ch4=%c\n",'a'-32,'B'+32);return0;}【例2-8】字符數(shù)據(jù)的算術(shù)運(yùn)算字母的大小寫轉(zhuǎn)換程序運(yùn)行結(jié)果為:ch1=A,ch2=bch3=A,ch4=b2022/12/1650#include<stdio.h>【2.3C語(yǔ)言的運(yùn)算符和表達(dá)式C語(yǔ)言的特點(diǎn)之一就是運(yùn)算符多,涉及的運(yùn)算范圍廣,把除了控制語(yǔ)句和輸入輸出以外幾乎所有的基本操作都作為運(yùn)算處理,例如將賦值符“=”作為賦值運(yùn)算符、方括號(hào)作為下標(biāo)運(yùn)算符等。C語(yǔ)言的運(yùn)算符在使用時(shí)形式和規(guī)則也是多樣的。2022/12/20512.3C語(yǔ)言的運(yùn)算符和表達(dá)式2022/12/16512.3.1運(yùn)算符及表達(dá)式的分類1.根據(jù)運(yùn)算符所需要的操作對(duì)象(操作數(shù))的個(gè)數(shù),運(yùn)算符可分為:2022/12/2052類型作用運(yùn)算符舉例單目運(yùn)算符僅對(duì)一個(gè)運(yùn)算對(duì)象進(jìn)行操作!~++--sizeof雙目運(yùn)算符對(duì)兩個(gè)運(yùn)算對(duì)象進(jìn)行操作+-*/%<<=>三目運(yùn)算符對(duì)三個(gè)運(yùn)算對(duì)象進(jìn)行操作?:2.3.1運(yùn)算符及表達(dá)式的分類1.根據(jù)運(yùn)算符所需要的操作對(duì)2.根據(jù)運(yùn)算符的功能分類可分為:2022/12/2053類型作用運(yùn)算符算術(shù)運(yùn)算符用于各類數(shù)值運(yùn)算正值(+)、負(fù)值(-)、加(+)、減(-)、乘(*)、除(/)、求余(或稱模運(yùn)算,%)自增、自減運(yùn)算符自增1、自減1自增(++)、自減(--)關(guān)系運(yùn)算符用于比較運(yùn)算大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)、不等于(!=)邏輯運(yùn)算符用于邏輯運(yùn)算與(&&)、或(||)、非(!)位操作運(yùn)算符按二進(jìn)制位進(jìn)行運(yùn)算位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)2.根據(jù)運(yùn)算符的功能分類可分為:2022/12/1653類2.根據(jù)運(yùn)算符的功能分類可分為:2022/12/2054類型作用運(yùn)算符賦值運(yùn)算符用于賦值運(yùn)算分為簡(jiǎn)單賦值(=)復(fù)合算術(shù)運(yùn)算賦值(+=、-=、*=、/=、%=)復(fù)合位運(yùn)算賦值(&=、|=、^=、>>=、<<=)條件運(yùn)算符用于條件求值?:逗號(hào)運(yùn)算符用于把若干表達(dá)式組合成一個(gè)表達(dá)式,指針運(yùn)算符用于取內(nèi)容和取地址*、&特殊運(yùn)算符用于特殊運(yùn)算括號(hào)()、下標(biāo)[]、成員(->、.)2.根據(jù)運(yùn)算符的功能分類可分為:2022/12/1654類3.表達(dá)式和運(yùn)算符的優(yōu)先級(jí)、結(jié)合性①表達(dá)式:是由常量、變量、函數(shù)和運(yùn)算符組合起來的式子,是求值的規(guī)則。表達(dá)式求值按運(yùn)算符的優(yōu)先級(jí)和結(jié)合性規(guī)定的順序進(jìn)行。一個(gè)表達(dá)式有一個(gè)值及其類型,它們等于計(jì)算表達(dá)式所得結(jié)果的值和類型。②運(yùn)算符的優(yōu)先級(jí):C語(yǔ)言中,運(yùn)算符的運(yùn)算優(yōu)先級(jí)共分為15級(jí)。1級(jí)最高,15級(jí)最低。在表達(dá)式中,優(yōu)先級(jí)較高的先于優(yōu)先級(jí)較低的進(jìn)行運(yùn)算。而在一個(gè)操作數(shù)兩側(cè)的運(yùn)算符優(yōu)先級(jí)相同時(shí),則按運(yùn)算符的結(jié)合性所規(guī)定的結(jié)合方向處理。2022/12/20553.表達(dá)式和運(yùn)算符的優(yōu)先級(jí)、結(jié)合性2022/12/16553.表達(dá)式和運(yùn)算符的優(yōu)先級(jí)、結(jié)合性③運(yùn)算符的結(jié)合性:C語(yǔ)言中各運(yùn)算符的結(jié)合性分為兩種,即左結(jié)合性(自左至右)和右結(jié)合性(自右至左)。例如算術(shù)運(yùn)算符的結(jié)合性是自左至右,即先左后右。而自右至左的結(jié)合方向稱為“右結(jié)合性”。最典型的右結(jié)合性運(yùn)算符是賦值運(yùn)算符。一般單目運(yùn)算符、三目運(yùn)算符、賦值運(yùn)算符及其擴(kuò)展運(yùn)算符的結(jié)合性是“右結(jié)合”;其余運(yùn)算符的結(jié)合性是“左結(jié)合”。2022/12/20563.表達(dá)式和運(yùn)算符的優(yōu)先級(jí)、結(jié)合性2022/12/16562.3.2算術(shù)運(yùn)算符及算術(shù)表達(dá)式1.算術(shù)運(yùn)算符(1)正值運(yùn)算符“+”:為單目運(yùn)算,如+a,+1等。(2)負(fù)值運(yùn)算符“-”:為單目運(yùn)算,如-a,-1等。(3)加法運(yùn)算符“+”:為雙目運(yùn)算符,即應(yīng)有兩個(gè)量參與加法運(yùn)算。如a+b,1+2等。(4)減法運(yùn)算符“-”:為雙目運(yùn)算符,即應(yīng)有兩個(gè)量參與減法運(yùn)算。如a-b,5-3等。2022/12/20572.3.2算術(shù)運(yùn)算符及算術(shù)表達(dá)式1.算術(shù)運(yùn)算符2022(5)乘法運(yùn)算符“*”:為雙目運(yùn)算。注意乘號(hào)用“*”表示,且不能省略。例如:數(shù)學(xué)式4ac應(yīng)該寫成4*a*c。(6)除法運(yùn)算符“/”:為雙目運(yùn)算。參與運(yùn)算量均為整型時(shí),結(jié)果也為整型——向零取整。如:1/2的值是0,而不是0.5,不會(huì)四舍五入,只取整數(shù)部分的值(整除)。如果運(yùn)算量中至少有一個(gè)是實(shí)型,則結(jié)果為雙精度實(shí)型。如:1.0/2的值是0.5。(7)求余運(yùn)算符(模運(yùn)算符)“%”:為雙目運(yùn)算。求余運(yùn)算的結(jié)果等于兩數(shù)相除后的余數(shù)。要求參與運(yùn)算的量均為整型。有負(fù)整數(shù)參與運(yùn)算的情況下,一般的處理原則為:先按其絕對(duì)值求余數(shù)(|r|%|s|),然后取被除數(shù)r的符號(hào)作為余數(shù)的符號(hào)。2022/12/2058(5)乘法運(yùn)算符“*”:為雙目運(yùn)算。注意乘號(hào)用“*”表示,且2022/12/2059#include<stdio.h>intmain(){printf("-3/5=%d, -3./5=%f\n",-3/5,-3./5);printf("9%%4=%d,4%%-7=%d,-4%%7=%d\n",9%4,4%-7,-4%7);return0;}【例2-9】算術(shù)運(yùn)算舉例程序運(yùn)行結(jié)果為:-3/5=0,-3./5=-0.6000009%4=1,4%-7=4,-4%7=-42022/12/1659#include<stdio.h>2.算術(shù)表達(dá)式用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(也稱操作數(shù))連接起來的、符合C語(yǔ)法規(guī)則的式子,稱為算術(shù)表達(dá)式。在表達(dá)式中可以使用一對(duì)“()”或多對(duì)“()”運(yùn)算符改變運(yùn)算的優(yōu)先順序。運(yùn)算對(duì)象可以是常量、變量、函數(shù)等。例如:a*b/(c-(1.5+a))是合法的C算術(shù)表達(dá)式a*b/[c-(1.5+a)]是不合法的C算術(shù)表達(dá)式2022/12/20602.算術(shù)表達(dá)式2022/12/1660【例2-10】使用公式C=(F-32)計(jì)算華氏溫度與攝氏溫度轉(zhuǎn)換。用算術(shù)表達(dá)式將公式表達(dá)出來。則表達(dá)式可以寫成:C=5.0/9*(F-32)但不能寫成:C=5/9*(F-32)這樣寫,5/9的值為0。因此,導(dǎo)致最后的計(jì)算結(jié)果為0。2022/12/2061【例2-10】使用公式C=(F-32)計(jì)算華氏溫度2.3.3自增、自減運(yùn)算符及自增、自減表達(dá)式
自增(++)、自減(--)運(yùn)算符是單目運(yùn)算符,具有右結(jié)合性。其作用是使變量的值加1或減1。它的優(yōu)先級(jí)高于雙目算術(shù)運(yùn)算符,與單目算術(shù)運(yùn)算符同級(jí)。如表下所示。2022/12/2062運(yùn)算符名稱用法含義++自增運(yùn)算符(單目)i++后置自增,先使表達(dá)式的值為i的值,i的值再加1++i前置自增,i的值先加1,再使表達(dá)式的值為i的值--自減運(yùn)算符(單目)i--后置自減,先使表達(dá)式的值為i的值,i的值再減1--i前置自減,i的值先減1,再使表達(dá)式的值為i的值2.3.3自增、自減運(yùn)算符及自增、自減表達(dá)式
實(shí)際上i++和++i就相當(dāng)于“i=i+1”;i--和--i就相當(dāng)于“i=i-1”。在做i=i+1或i=i-1這兩種操作時(shí),變量i被稱為“計(jì)數(shù)器”,用來記錄完成某一操作的次數(shù)。C語(yǔ)言為這種計(jì)數(shù)器操作提供了兩個(gè)更為簡(jiǎn)潔的運(yùn)算符,即i=i+1可寫成i++或++i;i=i-1可寫成i--或--i。2022/12/20632022/12/1663使用自增、自減運(yùn)算符時(shí)應(yīng)注意以下幾點(diǎn):(1)注意運(yùn)算符的操作對(duì)象。自增、自減運(yùn)算符的操作對(duì)象只能是變量,而不能是常量或表達(dá)式。例如:6--、++(a*2)、++(-i)都是錯(cuò)誤的。因?yàn)樽栽?、自減運(yùn)算符具有對(duì)操作對(duì)象重新賦值的功能,而常量、表達(dá)式無存儲(chǔ)單元可言,當(dāng)然不能被賦值做自增、自減運(yùn)算。2022/12/2064使用自增、自減運(yùn)算符時(shí)應(yīng)注意以下幾點(diǎn):2022/12/166(2)區(qū)分前置形式、后置形式的意義。即前置運(yùn)算是“先變后用”,而后置運(yùn)算是“先用后變”。①若不賦值,則變量前置自增自減和后置自增自減結(jié)果相同。例如:intx=8;x++;printf(″x=%d″,x);/*運(yùn)算結(jié)果:x=9*/intx=8;++x;printf(″x=%d″,x);/*運(yùn)算結(jié)果:x=9*/2022/12/2065(2)區(qū)分前置形式、后置形式的意義。2022/12/1665②若有賦值,則被賦值的變量的值不同。例如:intx=8,y;y=x++;printf(″x=%d,y=%d″,x,y);/*運(yùn)算結(jié)果:x=9,y=8*/intx=8,y;y=++x;printf(″x=%d,y=%d″,x,y);/*運(yùn)算結(jié)果:x=9,y=9*/2022/12/2066②若有賦值,則被賦值的變量的值不同。例如:2022/12/1(3)自增自減運(yùn)算常用于循環(huán)語(yǔ)句中,使循環(huán)變量自動(dòng)加(減)1;也用于指針變量,使指針指向下一個(gè)地址。(4)注意運(yùn)算符的副作用。例如i+++j,是理解為(i++)+j呢?還是理解為i+(++j)呢?初學(xué)者應(yīng)謹(jǐn)慎使用++和--運(yùn)算符。程序清晰易讀,不致引起歧義。2022/12/2067(3)自增自減運(yùn)算常用于循環(huán)語(yǔ)句中,使循環(huán)變量自動(dòng)加(減)12.3.4賦值運(yùn)算符及賦值表達(dá)式
在C程序中最常用到的是賦值運(yùn)算,賦值運(yùn)算中的賦值運(yùn)算符用于給變量賦值,它是雙目運(yùn)算符,優(yōu)先級(jí)僅高于逗號(hào)運(yùn)算符,具有右結(jié)合性。賦值運(yùn)算符包括基本賦值運(yùn)算符和復(fù)合賦值運(yùn)算符兩種。2022/12/20682.3.4賦值運(yùn)算符及賦值表達(dá)式2022/12/16681.基本賦值運(yùn)算符賦值符號(hào)“=”就是基本賦值運(yùn)算符。賦值運(yùn)算符的作用:將運(yùn)算符右端的值賦給運(yùn)算符左邊的變量,實(shí)際上是將特定的值寫到變量所對(duì)應(yīng)的內(nèi)存單元中。例如a=3,就是把3賦給變量a。2022/12/20692022/12/16692.復(fù)合賦值運(yùn)算符在賦值號(hào)“=”之前加上其他運(yùn)算符,可以構(gòu)成復(fù)合賦值運(yùn)算符,如表2-7所示。C語(yǔ)言采用這種復(fù)合運(yùn)算符可以簡(jiǎn)化程序,以便提高效率。2022/12/2070運(yùn)算符名稱用法等價(jià)于+=加賦值運(yùn)算符a+=3a=a+3-=減賦值運(yùn)算符a-=4a=a-4*=乘賦值運(yùn)算符a*=9a=a*9/=除賦值運(yùn)算符a/=5a=a/5%=取余賦值運(yùn)算符a%=6a=a%62.復(fù)合賦值運(yùn)算符2022/12/1670運(yùn)算符名稱用法等使用復(fù)合賦值運(yùn)算符時(shí)要注意:①?gòu)?fù)合運(yùn)算符在書寫時(shí),兩個(gè)運(yùn)算符之間不能有空格。②如果運(yùn)算符右邊是一個(gè)表達(dá)式,則相當(dāng)于它有括號(hào)。例如以下3種寫法是等價(jià)的:x%=y+3等價(jià)于x%=(y+3)等價(jià)于x=x%(y+3)。
不要理解成x=x%y+3。2022/12/2071使用復(fù)合賦值運(yùn)算符時(shí)要注意:2022/12/16712022/12/2072#include<stdio.h>intmain(){inta=8;a+=a*=a/=a-6;printf("a=%d\n",a);return0;}【例2-11】復(fù)合賦值運(yùn)算符舉例相當(dāng)于a=a/(a-6);a=a*a;a=a+a程序運(yùn)行結(jié)果為:a=322022/12/1672#include<stdio.h>3.賦值表達(dá)式由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來的式子稱為“賦值表達(dá)式”。賦值表達(dá)式的一般形式為:
變量=表達(dá)式2022/12/20733.賦值表達(dá)式2022/12/1673說明:(1)運(yùn)算符的左側(cè)只能是一個(gè)變量或賦值表達(dá)式,不能是常量或其它表達(dá)式,而右側(cè)可以是常量、賦過值的變量或表達(dá)式。賦值表達(dá)式的作用是將運(yùn)算符右端表達(dá)式的值賦給運(yùn)算符左邊的變量。因此賦值表達(dá)式具有計(jì)算和賦值的雙重功能。例如下列表達(dá)式是錯(cuò)誤的:5=a、3=a+b、x+y=5*6、c=a+b=32022/12/2074說明:2022/12/1674(2)一個(gè)變量可以先后被多次賦值,后來賦的值總將變量中原有的值覆蓋,變量?jī)H保存最后一次的賦值。(3)賦值表達(dá)式不同于數(shù)學(xué)上的“等式”。a=b和b=a在數(shù)學(xué)上是等價(jià)的,但在C語(yǔ)言中a=b表示將變量b的值賦給變量a,而b=a正相反。(4)在賦值表達(dá)式中的“表達(dá)式”又可以是一個(gè)賦值表達(dá)式。例如:a=b=8表達(dá)式中有兩個(gè)“=”運(yùn)算符,優(yōu)先級(jí)相同,因?yàn)榫哂杏医Y(jié)合性,所以先算b=8,賦值表達(dá)式b=8的值為8,再將8賦給a。2022/12/2075(2)一個(gè)變量可以先后被多次賦值,后來賦的值總將變量中原有的(5)賦值運(yùn)算符的優(yōu)先級(jí)和結(jié)合性決定了賦值表達(dá)式的值。例如:a=3+2表達(dá)式中有“+”和“=”兩個(gè)運(yùn)算符,因?yàn)椤?”的優(yōu)先級(jí)高于“=”,所以先完成加法,再將5賦值給a。又如:a=(b=5)/(c=2)表達(dá)式中有()、=、/運(yùn)算符,其中“()”優(yōu)先級(jí)最高,先算(b=5),再算(c=2),然后進(jìn)行除法運(yùn)算結(jié)果為2,最后把2賦給a。運(yùn)算完后,b的值為5,c的值為2,a的值為2,賦值表達(dá)式的值為2。再如:(x=4*5)=8+9先執(zhí)行括號(hào)內(nèi)的表達(dá)式,將20賦給x,然后計(jì)算表達(dá)式8+9,值為17,然后,17賦給x。最后整個(gè)表達(dá)式的結(jié)果為17。注意:賦值表達(dá)式在運(yùn)算符左側(cè)時(shí)必須加括號(hào)。2022/12/2076(5)賦值運(yùn)算符的優(yōu)先級(jí)和結(jié)合性決定了賦值表達(dá)式的值。2024.賦值過程中的類型轉(zhuǎn)換如果賦值運(yùn)算符兩側(cè)的類型一致,則直接進(jìn)行賦值。如果賦值運(yùn)算符兩側(cè)的類型不一致,在賦值時(shí)系統(tǒng)將自動(dòng)進(jìn)行類型轉(zhuǎn)換,即把賦值運(yùn)算符右邊的類型換成左邊的類型。轉(zhuǎn)換規(guī)則如下:(1)實(shí)型與整型轉(zhuǎn)換①將實(shí)型數(shù)據(jù)(包括單?雙精度)賦給整型變量時(shí),舍棄其小數(shù)部分,然后賦給整型變量?這里要注意變量的類型(short、int、long)以及相應(yīng)的數(shù)值范圍,避免賦值后數(shù)據(jù)溢出。2022/12/20774.賦值過程中的類型轉(zhuǎn)換2022/12/1677例如:floatf=65539.45;shorti;i=f;執(zhí)行i=f后,i舍棄小數(shù)部分,由于65539超出了short類型的取值范圍-32768~32767,會(huì)出現(xiàn)溢出問題。②將整型數(shù)據(jù)賦給實(shí)型變量(包括單?雙精度)時(shí),數(shù)值不變,補(bǔ)足有效位,然后以浮點(diǎn)數(shù)形式存儲(chǔ)到變量中?2022/12/2078例如:2022/12/16782022/12/2079#include<stdio.h>intmain(){intm;floatx;m=4.53;x=15;printf("m=%dx=%f\n",m,x);return0;}【例2-12】實(shí)型與整型數(shù)據(jù)的類型轉(zhuǎn)換程序運(yùn)行結(jié)果為:m=4x=15.0000002022/12/1679#include<stdio.h>【(2)單、雙精度實(shí)型轉(zhuǎn)換①將一個(gè)double型數(shù)據(jù)賦給float型變量時(shí),取其前面的6~7位有效數(shù)字,截?cái)鄷r(shí)進(jìn)行四舍五入操作,然后存儲(chǔ)到float類型變量中。但要注意數(shù)值范圍,可能出現(xiàn)溢出錯(cuò)誤。例如:
floatf;doubled=123.456789e100;/*指數(shù)為100,超過了float數(shù)據(jù)的最大范圍*/f=d;/*f無法容納如此大的數(shù)據(jù),會(huì)出現(xiàn)溢出*/②將一個(gè)float型數(shù)據(jù)賦給double型變量時(shí),數(shù)值不變,有效位數(shù)擴(kuò)展到15~16位,在內(nèi)存中用8個(gè)字節(jié)存儲(chǔ)。2022/12/2080(2)單、雙精度實(shí)型轉(zhuǎn)換2022/12/1680(3)字符型與整型(short、int、long)①整型數(shù)據(jù)賦給char型變量時(shí),只保留其最低8位,高位部分舍棄。2022/12/2081(3)字符型與整型(short、int、long)2022/2022/12/2082#include<stdio.h>intmain(){shorti=345;charc;c=i;printf("c=%d\n",c);return0;}【例2-13】將整型數(shù)據(jù)賦給字符型變量程序運(yùn)行結(jié)果為:c=892022/12/1682#include<stdio.h>【②將字符型數(shù)據(jù)賦給整型變量時(shí),由于字符數(shù)據(jù)只占1個(gè)字節(jié),而整型變量占2個(gè)或4個(gè)字節(jié)。所以,將字符數(shù)據(jù)(8位)放到整型變量的低8位中。如果字符數(shù)據(jù)的最高位為0,則整型變量的高位全部補(bǔ)0。如果最高位為1,則整型變量的高位全部補(bǔ)1。這樣可以保證數(shù)值不會(huì)發(fā)生變化。如果用的是unsignedchar型變量或數(shù)據(jù)來賦值的話,則一律將整型變量的高位補(bǔ)0。2022/12/2083②將字符型數(shù)據(jù)賦給整型變量時(shí),由于字符數(shù)據(jù)只占1個(gè)字節(jié),而整2022/12/2084#include<stdio.h>intmain(){shorti;charc='A';i=c;printf("i=%d,c=%d\n",i,c);return0;}【例2-14】將字符型數(shù)據(jù)賦給整型變量A的ASCII碼是十進(jìn)制數(shù)65,二進(jìn)制形式1000001,最高位置0程序運(yùn)行結(jié)果為:i=65,c=65C=252022/12/1684#include<stdio.h>【(4)整型與整型(short、int、long)和“字符型與整型”相似,當(dāng)賦值號(hào)兩邊的長(zhǎng)度(字節(jié)數(shù))不同時(shí),則有“長(zhǎng)(字節(jié)數(shù)多的數(shù)據(jù)類型)到短(字節(jié)數(shù)少的數(shù)據(jù)類型),要截?cái)?,舍棄高位部分;短到長(zhǎng),不變樣,再用0或1補(bǔ)充高位”。2022/12/2085(4)整型與整型(short、int、long)2022/12022/12/2086#include<stdio.h>intmain(){shorti=-234;intm;m=i;printf("m=%d,i=%d\n",m,i);return0;}【例2-15】整型之間的類型轉(zhuǎn)換2字節(jié)short短整型數(shù)據(jù)賦給4字節(jié)int型變量時(shí),符號(hào)位填充到高位字節(jié)程序運(yùn)行結(jié)果為:m=-234,i=-2342022/12/1686#include<stdio.h>【(5)unsigned型整數(shù)與unsigned型整數(shù)將一個(gè)unsigned型數(shù)據(jù)賦給一個(gè)占據(jù)同樣長(zhǎng)度存儲(chǔ)單元的signed(有符號(hào))型整型變量時(shí)(如:unsigned→int、unsignedlong→long,unsignedshort→short),將unsigned型數(shù)據(jù)原值照賦到signed型整型變量中,內(nèi)部的存儲(chǔ)方式不變,但輸出值卻可能改變,將signed型整型變量的最高位解釋為符號(hào)位。將一個(gè)signed型數(shù)據(jù)賦給長(zhǎng)度相同的unsigned型變量時(shí),原樣賦值,內(nèi)部存儲(chǔ)形式不變,但輸出時(shí)是無符號(hào)數(shù)據(jù)。2022/12/2087(5)unsigned型整數(shù)與unsigned型整數(shù)20222022/12/2088#include<stdio.h>intmain(){charch1='A',ch2;inta,b,c=322;floatx,y=7.93;a=y;x=c;b=ch1;ch2=c;printf("a=%d,x=%f,b=%d,ch2=%c\n",a,x,b,ch2);return0;}【例2-16】類型轉(zhuǎn)換程序運(yùn)行結(jié)果為:a=7,x=322.000000,b=65,ch2=B2022/12/1688#include<stdio.h>2.3.5逗號(hào)運(yùn)算符及其表達(dá)式在C語(yǔ)言中逗號(hào)“,”也是一種運(yùn)算符,稱為逗號(hào)運(yùn)算符,它是C語(yǔ)言特有的雙目運(yùn)算符。逗號(hào)運(yùn)算符優(yōu)先級(jí)最低,具有左結(jié)合性。其功能是把兩個(gè)表達(dá)式連接起來組成一個(gè)表達(dá)式,稱為逗號(hào)表達(dá)式。兩個(gè)表達(dá)式的值分別計(jì)算,整個(gè)表達(dá)式的值是最后一個(gè)表達(dá)式的值。2022/12/20892.3.5逗號(hào)運(yùn)算符及其表達(dá)式在C語(yǔ)言中逗號(hào)“,”也是一當(dāng)以多個(gè)逗號(hào)將多個(gè)表達(dá)式分開時(shí),就形成復(fù)合逗號(hào)表達(dá)式。這些表達(dá)式的值自左向右依次分別計(jì)算,最后一個(gè)表達(dá)式的值是整個(gè)逗號(hào)表達(dá)式的值,其類型是整個(gè)逗號(hào)表達(dá)式的類型。逗號(hào)表達(dá)式一般形式為:
表達(dá)式1,表達(dá)式2,……,表達(dá)式n2022/12/2090當(dāng)以多個(gè)逗號(hào)將多個(gè)表達(dá)式分開時(shí),就形成復(fù)合逗號(hào)表達(dá)式。這些表有關(guān)逗號(hào)表達(dá)式需要注意以下幾點(diǎn):(1)逗號(hào)表達(dá)式又可以和另一個(gè)表達(dá)式組成一個(gè)新的逗號(hào)表達(dá)式。例如:(m=5,3*m),m+6
表達(dá)式1是(m=5,3*m),表達(dá)式2是m+6。先將5賦值給m,再計(jì)算3*m得15,m的值不變,最后計(jì)算m+6,得11。整個(gè)表達(dá)式的值是11。2022/12/2091有關(guān)逗號(hào)表達(dá)式需要注意以下幾點(diǎn):2022/12/1691(2)并不是所有出現(xiàn)的逗號(hào)都作為逗號(hào)運(yùn)算符。函數(shù)的參數(shù)之間也是用逗號(hào)分隔的。例如:printf("%d,%d,%d\n",(a,b,c),a,b)
其中“(a,b,c)”是一個(gè)逗號(hào)表達(dá)式,它的值是變量c的值,而后面的兩個(gè)逗號(hào)是參數(shù)的分隔符。(3)程序中使用逗號(hào)表達(dá)式,通常是要分別求逗號(hào)表達(dá)式內(nèi)各表達(dá)式的值,并不一定要求整個(gè)逗號(hào)表達(dá)式的值。例如兩數(shù)交換算法:t=a,a=b,b=t;這樣可以簡(jiǎn)化書寫,提高程序運(yùn)行效率。2022/12/2092(2)并不是所有出現(xiàn)的逗號(hào)都作為逗號(hào)運(yùn)算符。函數(shù)的參數(shù)之間也2022/12/2093#include<stdio.h>intmain(){inta=2,b=4,c=6,m,n,k;n=(m=a+b),(b+c);printf("m=%d,n=%d\n",m,n);printf("k=%d\n",k=(m=m+100,10+m));return0;}【例2-17】逗號(hào)表達(dá)式程序運(yùn)行結(jié)果為:m=6,n=6k=1162022/12/1693#include<stdio.h>【2.4類型轉(zhuǎn)換
在C語(yǔ)言中,各種不同類型的數(shù)據(jù)可以混合運(yùn)算。當(dāng)表達(dá)式中出現(xiàn)類型不同的數(shù)據(jù)時(shí)要進(jìn)行類型轉(zhuǎn)換,轉(zhuǎn)換的方法有兩種,一種是自動(dòng)類型轉(zhuǎn)換,一種是強(qiáng)制類型轉(zhuǎn)換。2022/12/20942.4類型轉(zhuǎn)換2022/12/16942.4.1自動(dòng)類型轉(zhuǎn)換不同類型的數(shù)據(jù)在運(yùn)算時(shí),首先進(jìn)行類型轉(zhuǎn)換,使之成為同類型數(shù)據(jù),然后再進(jìn)行運(yùn)算。這種轉(zhuǎn)換稱為自動(dòng)類型轉(zhuǎn)換。自動(dòng)類型轉(zhuǎn)換是編譯器自動(dòng)隱式地進(jìn)行的數(shù)據(jù)類型轉(zhuǎn)換,這種轉(zhuǎn)換不需要程序員干預(yù)。
對(duì)于自動(dòng)類型轉(zhuǎn)換,最常見的就是算術(shù)轉(zhuǎn)換、賦值轉(zhuǎn)換、輸出轉(zhuǎn)換。2022/12/20952.4.1自動(dòng)類型轉(zhuǎn)換不同類型的數(shù)據(jù)在運(yùn)算時(shí),首先進(jìn)行類1.算術(shù)轉(zhuǎn)換:進(jìn)行算術(shù)運(yùn)算(加、減、乘、除、取余以及符號(hào)運(yùn)算)時(shí),不同類型數(shù)據(jù)必須轉(zhuǎn)換成同一類型的數(shù)據(jù)才能運(yùn)算。(1)轉(zhuǎn)換按數(shù)據(jù)長(zhǎng)度增加的方向進(jìn)行,以保證精度不降低。如int型和long型運(yùn)算時(shí),先把int型轉(zhuǎn)成long型后再進(jìn)行運(yùn)算。(2)所有的浮點(diǎn)運(yùn)算都是以雙精度型進(jìn)行的,即使僅含float單精度數(shù)運(yùn)算的表達(dá)式,也要先轉(zhuǎn)換成double型,再作運(yùn)算。(3)char型和short型參與運(yùn)算時(shí),必須先轉(zhuǎn)換成int型。2022/12/20961.算術(shù)轉(zhuǎn)換:進(jìn)行算術(shù)運(yùn)算(加、減、乘、除、取余以及符號(hào)運(yùn)
在下圖中箭頭只是表示數(shù)據(jù)類型級(jí)別的高低,由低向高轉(zhuǎn)換,但并不需要逐級(jí)轉(zhuǎn)換而是直接進(jìn)行轉(zhuǎn)換。例如:一個(gè)int型數(shù)據(jù)和double型數(shù)據(jù)進(jìn)行運(yùn)算,運(yùn)算時(shí)是直接將int型轉(zhuǎn)換成double型而非先將int型轉(zhuǎn)換成unsignedint型,再轉(zhuǎn)成long型,再轉(zhuǎn)成double型。2022/12/2097在下圖中箭頭只是表示數(shù)據(jù)類型級(jí)別的高低,由低向2.賦值運(yùn)算:自動(dòng)把賦值號(hào)“=”右邊的表達(dá)式值的類型轉(zhuǎn)換成賦值號(hào)“=”左邊的變量的類型。3.輸出轉(zhuǎn)換:在程序中將數(shù)據(jù)用printf函數(shù)輸出時(shí),當(dāng)要輸出的數(shù)據(jù)類型與輸出格式不符時(shí),便自動(dòng)進(jìn)行類型轉(zhuǎn)換。如一個(gè)字符(char)型數(shù)據(jù)用整型格式輸出時(shí),相當(dāng)于將char型轉(zhuǎn)換成int型輸出。2022/12/20982.賦值運(yùn)算:自動(dòng)把賦值號(hào)“=”右邊的表達(dá)式值的類型轉(zhuǎn)換成2022/12/2099#include<stdio.h>#definePI3.14159intmain(){ints1,r=5;doubles2;s1=r*r*PI;s2=r*r*PI;printf("s1=%d,s2=%lf\n",s1,s2);return0;}【例2-18】自動(dòng)類型轉(zhuǎn)換程序運(yùn)行結(jié)果為:s1=78,s2=78.5397502022/12/1699#include<stdio.h>【2.4.2強(qiáng)制類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換是編譯器根據(jù)代碼的上下文環(huán)境自行判斷的結(jié)果,有時(shí)候并不是那么“智能”,不能滿足所有的需求。如果需要,程序員也可以自己在代碼中明確地提出要進(jìn)行類型轉(zhuǎn)換,這稱為強(qiáng)制類型轉(zhuǎn)換。2022/12/201002.4.2強(qiáng)制類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換是編譯器根據(jù)代碼的上下強(qiáng)制類型轉(zhuǎn)換的一般形式為:(類型說明符)(表達(dá)式)其功能是把表達(dá)式的運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成類型說明符所表示的類型。例如:(int)(x+7.4)/*把x+7.4的結(jié)果轉(zhuǎn)換為整型*/(long)a/*把a(bǔ)轉(zhuǎn)換為長(zhǎng)整型*/2022/12/20101強(qiáng)制類型轉(zhuǎn)換的一般形式為:2022/12/161012022/12/20102#include<stdio.h>intmain(){intsum=103;intcount=7;doubleaverage;average=(double)sum/count;printf("Averageis%lf!\n",average);return0;}【例2-19】強(qiáng)制類型轉(zhuǎn)換舉例程序運(yùn)行結(jié)果為:Averageis14.714286!2022/12/16102#include<stdio.h2022/12/20103使用強(qiáng)制轉(zhuǎn)換時(shí)應(yīng)注意“類型說明符”必須加括號(hào),表達(dá)式部分應(yīng)當(dāng)注意合理地使用括號(hào)。使用強(qiáng)制轉(zhuǎn)換時(shí)應(yīng)注意無論是自動(dòng)類型轉(zhuǎn)換還是強(qiáng)制類型轉(zhuǎn)換,都只是為了本次運(yùn)算而進(jìn)行的臨時(shí)性轉(zhuǎn)換,不會(huì)改變數(shù)據(jù)本來的類型或者值。2022/12/16103使用強(qiáng)制轉(zhuǎn)換時(shí)應(yīng)注意“類型說明符”2022/12/20104#include<stdio.h>intmain(){doubletotal=400.8,unit;inttotal_int,count=5;total_int=(int)total;unit=total/count;printf("total=%lf\ntotal_int=%d\nunit=%lf\n",total,total_int,unit);return0;}【例2-20】強(qiáng)制類型轉(zhuǎn)換程序運(yùn)行結(jié)果為:total=400.800000total_int=400unit=80.1600002022/12/16104#include<stdio.h2022/12/20105數(shù)據(jù)類型、運(yùn)算符與表達(dá)式是C語(yǔ)言的基礎(chǔ),是在學(xué)習(xí)程序設(shè)計(jì)的過程中必須熟練掌握的內(nèi)容。(1)C語(yǔ)言中的關(guān)鍵字、轉(zhuǎn)義字符、數(shù)據(jù)類型。(2)幾種常用的運(yùn)算符及其用法:算術(shù)運(yùn)算符、賦值運(yùn)算符以及逗號(hào)運(yùn)算符。(3)運(yùn)算符優(yōu)先級(jí)和結(jié)合性。一般優(yōu)先級(jí)順序?yàn)椋簡(jiǎn)文窟\(yùn)算符>算術(shù)運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算符>賦值運(yùn)算符>逗號(hào)運(yùn)算符。一般單目運(yùn)算符、三目運(yùn)算符、賦值運(yùn)算符及其擴(kuò)展運(yùn)算符的結(jié)合性是“右結(jié)合”;其余運(yùn)算符的結(jié)合性是“左結(jié)合”。本章小結(jié)2022/12/16105數(shù)據(jù)類型、運(yùn)算符與表達(dá)式是C語(yǔ)言的2022/12/20106(4)表達(dá)式:表達(dá)式是由運(yùn)算符連接常量、變量、函數(shù)所組成的式子。每個(gè)表達(dá)式都有一個(gè)值和類型。表達(dá)式求值按運(yùn)算符的優(yōu)先級(jí)和結(jié)合性所規(guī)定的順序進(jìn)行。(5)數(shù)據(jù)類型的自動(dòng)轉(zhuǎn)換:在不同類型數(shù)據(jù)的混合運(yùn)算中,由系統(tǒng)自動(dòng)實(shí)現(xiàn)轉(zhuǎn)換,由少字節(jié)類型向多字節(jié)類型轉(zhuǎn)換。不同類型的操作數(shù)相互賦值時(shí)也由系統(tǒng)自動(dòng)進(jìn)行轉(zhuǎn)換,把賦值號(hào)右邊的類型轉(zhuǎn)換為左邊的類型。本章小結(jié)2022/12/16106(4)表達(dá)式:表達(dá)式是由運(yùn)算符連接
程序設(shè)計(jì)技術(shù)基礎(chǔ)程序設(shè)計(jì)技術(shù)基礎(chǔ)第二章C語(yǔ)言程序的數(shù)據(jù)描述及數(shù)據(jù)運(yùn)算2.1C語(yǔ)言的基本元素2.2初識(shí)數(shù)據(jù)類型2.3C語(yǔ)言的運(yùn)算符和表達(dá)式2.4類型轉(zhuǎn)換2022/12/20108第二章C語(yǔ)言程序的數(shù)據(jù)描述及數(shù)據(jù)運(yùn)算2.1C語(yǔ)言的基2.1.1字符集字符是組成語(yǔ)言的最基本的元素。C語(yǔ)言字符集(即ASCII字符集)由字母、數(shù)字、空格、標(biāo)點(diǎn)和特殊字符組成(見附錄B)。主要分為以下幾類:(1)大小寫英文字母:a~z,A~Z;(2)數(shù)字:0~9;(3)鍵盤符號(hào):見書表2-1所示;(4)轉(zhuǎn)義字符:以字符“\”開頭,后跟一個(gè)或幾個(gè)字符的字符序列,通常用來表示鍵盤上的控制符或特殊符號(hào)。見書表2-2所示;2022/12/201092.1.1字符集字符是組成語(yǔ)言的最基本的元素。C語(yǔ)言字符2.1.2關(guān)鍵字所謂“關(guān)鍵字”就是已被C語(yǔ)言編譯工具本身使用,不能用作其它用途使用的字。主要用于構(gòu)成語(yǔ)句,進(jìn)行存儲(chǔ)類型和數(shù)據(jù)類型定義。所有的關(guān)鍵字均由小寫字母組成。根據(jù)關(guān)鍵字的作用,可分為數(shù)據(jù)類型關(guān)鍵字、控制語(yǔ)句關(guān)鍵字、存儲(chǔ)類型關(guān)鍵字、其它關(guān)鍵字四類。2022/12/201102.1.2關(guān)鍵字2022/12/1642022/12/20111short、int、long、signed、unsigned、float、double、char、struct、enum、union、void數(shù)據(jù)類型關(guān)鍵字if、else、switch、case、default、for、do、while、break、continue、goto、return控制語(yǔ)句關(guān)鍵字auto、static、extern、register存儲(chǔ)類型關(guān)鍵字const、sizeof、typedef、volatile其它關(guān)鍵字關(guān)鍵字2022/12/165數(shù)據(jù)類型關(guān)鍵字控制語(yǔ)句關(guān)鍵字auto、2.1.3標(biāo)識(shí)符所謂“標(biāo)識(shí)符”是用戶自己定義的一種字符序列,在計(jì)算機(jī)高級(jí)語(yǔ)言中,用來表示程序中需要辨認(rèn)的對(duì)象名稱。C語(yǔ)言規(guī)定,標(biāo)識(shí)符是由字母或下畫線開頭的字母、數(shù)字、下畫線組成的一串符號(hào)。下面列出的標(biāo)識(shí)符是合法的:sum,day1,Yang,_total,MONTH,Student_name_2下面是不合法的標(biāo)識(shí)符:2_day,list.er,$234,#3Df,last-3<42022/12/201122.1.3標(biāo)識(shí)符所謂“標(biāo)識(shí)符”是用戶自己定義的一種字符序2022/12/20113在標(biāo)識(shí)符中,大寫字母和小寫字母表示兩個(gè)不同的字符。C語(yǔ)言規(guī)定,用戶選取的標(biāo)識(shí)符不能是C語(yǔ)言規(guī)定的關(guān)鍵字。標(biāo)識(shí)符的命名應(yīng)盡量有相應(yīng)的意義,以便閱讀理解,做到“見名知意”。即選取有含義的英文單詞或其縮寫作為標(biāo)識(shí)符,例如:sum,num等。2022/12/167在標(biāo)識(shí)符中,大寫字母和小寫字母表示兩個(gè)2.2初識(shí)數(shù)據(jù)類型指定數(shù)據(jù)類型,主要是為了對(duì)數(shù)據(jù)分配存儲(chǔ)單元,包括存儲(chǔ)單元的長(zhǎng)度(占多少字節(jié))以及數(shù)據(jù)的存儲(chǔ)形式。對(duì)不同數(shù)據(jù)類型的數(shù)據(jù)分配不同的存儲(chǔ)單元長(zhǎng)度和存儲(chǔ)形式。不同數(shù)據(jù)類型的數(shù)據(jù)對(duì)應(yīng)的運(yùn)算種類也不同。在C語(yǔ)言中,數(shù)據(jù)類型可分為:基本數(shù)據(jù)類型、構(gòu)造數(shù)據(jù)類型、指針類型、空類型四大類。2022/12/201142.2初識(shí)數(shù)據(jù)類型指定數(shù)據(jù)類型,主要是為了對(duì)數(shù)據(jù)分配存儲(chǔ)2.2初識(shí)數(shù)據(jù)類型2022/12/201152.2初識(shí)數(shù)據(jù)類型2022/12/1692.2.1常量和變量數(shù)據(jù)按其取值是否可以改變分為常量和變量?jī)煞N。1.常量
在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量。它們可與數(shù)據(jù)類型結(jié)合起來進(jìn)行分類。在程序中,常量是可以不經(jīng)說明而直接引用的。2022/12/201162.2.1常量和變量2022/12/1610常用的常量有以下幾類:(1)字面常量(直接常量):
①整型常量:100、0、-15;
②實(shí)型常量:12.34、-0.5、3.24e5、-0.34E-6;
③字符型常量:'A'、'8'、'#'、'\t'、'\n'、'\101'、'\x41';(2)字符串常量:由一對(duì)雙引號(hào)("")括起的字符序列。例如:"BOY","Cprogram","12.5"等。2022/12/20117常用的常量有以下幾類:(1)字面常量(直接常量):2022/常用的常量有以下幾類:(3)符號(hào)常量:用#define命令,指定用一個(gè)符號(hào)名稱代表一個(gè)常量。符號(hào)常量在使用之前必須先定義。符號(hào)常量定義的一般形式為:
#define標(biāo)識(shí)符常量經(jīng)過定義,以后在程序中所有出現(xiàn)該標(biāo)識(shí)符的地方均代表該常量。2022/12/20118常用的常量有以下幾類:(3)符號(hào)常量:用#define命令,2022/12/20119#definePI3.14159#include<stdio.h>intmain(){doublec,r;r=5;c=2*PI*r;printf("c=%lf\n",c);return0;}【例2-1】求圓的周長(zhǎng)定義符號(hào)常量PI定義變量c、r用PI代替3.14159程序運(yùn)行的結(jié)果為:c=31.4159002022/12/1613#definePI3.141592022/12/20120使用符號(hào)常量的好處書寫簡(jiǎn)單不易出錯(cuò)。使用符號(hào)常量的好處含義清楚。使用符號(hào)常量的好處修改程序方便。2022/12/1614使用符號(hào)常量的好處書寫簡(jiǎn)單不易出錯(cuò)。2.2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 申報(bào)書項(xiàng)目課題命名
- 辦公軟件合同范本
- 課題申報(bào)書指導(dǎo)意見
- 北京買賣小產(chǎn)權(quán)合同范本
- 臨沂房地產(chǎn)抵押合同范本
- 住房公積金調(diào)整新規(guī) 助力住房市場(chǎng)健康發(fā)展
- 加工糾紛合同范本
- 廚師勞務(wù)合同范本簡(jiǎn)易
- 中山企業(yè)勞務(wù)派遣合同范本
- 支持民營(yíng)企業(yè)實(shí)現(xiàn)高質(zhì)量發(fā)展新路徑
- 2022塔式太陽(yáng)能熱發(fā)電站吸熱系統(tǒng)施工規(guī)范
- 康復(fù)治療技術(shù)(師)基礎(chǔ)知識(shí)考試考點(diǎn)內(nèi)容總結(jié)
- DB34T 4166-2022 0~3歲嬰幼兒家庭照護(hù)規(guī)范
- 七年級(jí)下學(xué)期數(shù)學(xué)開學(xué)第一課課件
- 《ISO 55013-2024 資產(chǎn)管理-數(shù)據(jù)資產(chǎn)管理指南》解讀和實(shí)施指導(dǎo)材料(雷澤佳編制-2024)
- 中小學(xué)、幼兒園安全防范要求
- 接從事管供水人員衛(wèi)生知識(shí)培訓(xùn)試題
- DB1506-T 53-2024 矛盾糾紛分級(jí)分類多元化解規(guī)范
- 江西新余特別重大火災(zāi)事故調(diào)查報(bào)告公布吸取教訓(xùn)研討發(fā)言稿
- 農(nóng)村建房的鄰居協(xié)議書模板
- ip形象設(shè)計(jì)合同協(xié)議書
評(píng)論
0/150
提交評(píng)論