![《新概念C語言能力教程(第2版)》全套教學(xué)課件_第1頁](http://file4.renrendoc.com/view14/M0B/13/1C/wKhkGWbWjI6AZwz7AAERgARvF70101.jpg)
![《新概念C語言能力教程(第2版)》全套教學(xué)課件_第2頁](http://file4.renrendoc.com/view14/M0B/13/1C/wKhkGWbWjI6AZwz7AAERgARvF701012.jpg)
![《新概念C語言能力教程(第2版)》全套教學(xué)課件_第3頁](http://file4.renrendoc.com/view14/M0B/13/1C/wKhkGWbWjI6AZwz7AAERgARvF701013.jpg)
![《新概念C語言能力教程(第2版)》全套教學(xué)課件_第4頁](http://file4.renrendoc.com/view14/M0B/13/1C/wKhkGWbWjI6AZwz7AAERgARvF701014.jpg)
![《新概念C語言能力教程(第2版)》全套教學(xué)課件_第5頁](http://file4.renrendoc.com/view14/M0B/13/1C/wKhkGWbWjI6AZwz7AAERgARvF701015.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第1章計(jì)算機(jī)和C語言新概念C語言能力教程(第2版)01第1章計(jì)算機(jī)和C語言02第2章基本數(shù)據(jù)類型03第3章表達(dá)式04第4章邏輯運(yùn)算和選擇結(jié)構(gòu)05第5章循環(huán)結(jié)構(gòu)06第6章數(shù)組07第7章函數(shù)08第8章預(yù)處理09第9章指針10第10章自定義數(shù)據(jù)類型11第11章文件12第12章位運(yùn)算13第13章數(shù)字化信息編碼全套可編輯PPT課件第1章計(jì)算機(jī)和C語言01程序員的工作:設(shè)計(jì)算法02程序員的工作:實(shí)現(xiàn)算法03C語言語句分析04算法可行嗎05自定義命令:函數(shù)+06C語言程序07編譯程序08printf函數(shù)的用法09觀察程序的運(yùn)行過程++全套可編輯PPT課件設(shè)計(jì)算法全套可編輯PPT課件用戶、計(jì)算機(jī)和程序員用戶是計(jì)算機(jī)的使用者,提供輸入(數(shù)據(jù)),獲得輸出(結(jié)果)。但用戶通常不關(guān)心計(jì)算機(jī)把輸入變成輸出的過程。計(jì)算機(jī)是機(jī)器,只會執(zhí)行指令。程序員的工作就是設(shè)計(jì)一系列指令,指揮計(jì)算機(jī)把用戶的輸入數(shù)據(jù)加工成輸出結(jié)果。解決問題的一系列指令就是算法。結(jié)果輸出加工存儲計(jì)算機(jī)由五大部件組成結(jié)果輸出加工存儲求兩個(gè)整數(shù)的和的程序程序運(yùn)行時(shí),計(jì)算機(jī)會提示用戶輸入兩個(gè)整數(shù)。當(dāng)用戶輸入完成后,計(jì)算機(jī)會求和,并把結(jié)果通過輸出設(shè)備反饋給用戶。用戶:使用鍵盤輸入兩個(gè)整數(shù);在顯示器上得到兩個(gè)整數(shù)的和。設(shè)計(jì)算法是程序員的工作。程序員需分析求和過程中計(jì)算機(jī)要完成的操作,設(shè)計(jì)出對應(yīng)的指令。求兩個(gè)整數(shù)的和的算法第一步:命令計(jì)算機(jī)在顯示器上顯示一行提示信息“請輸入兩個(gè)整數(shù):”;第二步:(用戶輸入完成后)命令計(jì)算機(jī)把用戶輸入的數(shù)據(jù)存儲到內(nèi)存中;第三步:命令計(jì)算機(jī)用運(yùn)算器求和,并把和轉(zhuǎn)存到內(nèi)存中;第四步:命令計(jì)算機(jī)在顯示器上輸出計(jì)算結(jié)果。求兩個(gè)整數(shù)的和的算法整理后的算法:1.在顯示器上提示用戶輸入兩個(gè)整數(shù);2.獲得用戶的輸入,并把輸入存儲到內(nèi)存中;3.運(yùn)算器求和,并把計(jì)算結(jié)果轉(zhuǎn)存到內(nèi)存中;4.在顯示器上輸出計(jì)算結(jié)果。小結(jié)程序員的工作就是設(shè)計(jì)算法,指揮計(jì)算機(jī)把用戶輸入的數(shù)據(jù)加工成用戶所需的輸出結(jié)果。程序員眼中的計(jì)算機(jī)由五大部件組成,算法中的每一步都與計(jì)算機(jī)的某個(gè)部件有關(guān)。1.在顯示器上提示用戶輸入兩個(gè)整數(shù);2.獲得用戶的輸入,并把輸入存儲到內(nèi)存中;3.運(yùn)算器求和,并把計(jì)算結(jié)果轉(zhuǎn)存到內(nèi)存中;4.在顯示器上輸出計(jì)算結(jié)果。實(shí)現(xiàn)算法C語言求兩個(gè)整數(shù)和的算法是用自然語言描述的,計(jì)算機(jī)不能理解和執(zhí)行。C語言是編程語言,計(jì)算機(jī)能夠理解并執(zhí)行C語言命令。程序員還需把求和算法翻譯成C語言語句。設(shè)計(jì)算法,即設(shè)計(jì)加工處理的步驟,是程序員的工作;實(shí)現(xiàn)算法,即把算法的每一步都翻譯成C語言語句,也是程序員的工作。1.在顯示器上提示用戶輸入兩個(gè)整數(shù);2.獲得用戶的輸入,并把輸入存儲到內(nèi)存中;3.運(yùn)算器求和,并把計(jì)算結(jié)果轉(zhuǎn)存到內(nèi)存中;4.在顯示器上輸出計(jì)算結(jié)果。1.在顯示器上提示用戶輸入兩個(gè)整數(shù);C語言中使用printf函數(shù)可以“命令”計(jì)算機(jī)在輸出設(shè)備上顯示信息。此步驟可翻譯成C語言語句:printf("請輸入兩個(gè)整數(shù):\n");C語言中以函數(shù)名加一對圓括號的方式使用函數(shù)命令。圓括號中有一對雙撇號,計(jì)算機(jī)執(zhí)行時(shí),雙撇號中的內(nèi)容就出現(xiàn)在顯示器上該程序的運(yùn)行窗口中,其中\(zhòng)n代表回車鍵。C語言語句通常以分號結(jié)尾。2.獲得用戶的輸入,并把輸入數(shù)據(jù)存儲到內(nèi)存中。C語言中使用scanf函數(shù)可以獲得用戶輸入的數(shù)據(jù)。scanf函數(shù)執(zhí)行時(shí),程序通常會暫停運(yùn)行等待用戶輸入。當(dāng)用戶以按下回車鍵的方式表示輸入完成后,scanf函數(shù)就會獲得用戶的輸入。scanf函數(shù)的用法計(jì)算機(jī)中的數(shù)據(jù)有明確的類型,整數(shù)2和小數(shù)2.0是兩種不同類型的數(shù)據(jù)。使用scanf函數(shù)時(shí),需向計(jì)算機(jī)明確獲得數(shù)據(jù)的類型??捎?d表示整數(shù),可用%f表示小數(shù),可用%c表示字符。除了數(shù)據(jù)類型,還需要明確獲得數(shù)據(jù)的個(gè)數(shù),獲得兩個(gè)整數(shù)就用"%d%d"。最后還需明確獲得的輸入數(shù)據(jù)存放在內(nèi)存中的具體地址。使用內(nèi)存內(nèi)存中的存儲單元用于存放數(shù)據(jù)。存儲單元分類型,整型存儲單元只能存儲整數(shù)(如2)而不能存儲小數(shù)(如2.0)。常用的存儲單元還有用于存小數(shù)的浮點(diǎn)型存儲單元和字符型存儲單元。存儲單元需提前申請,申請存儲單元類似于預(yù)定酒店的房間。為便于使用,程序員可以給申請的存儲單元命名。存儲單元在C語言中稱為變量。變量名由字母、數(shù)字或下劃線組成,但第一個(gè)字符不能是數(shù)字。如i,a0,sum都是合法的變量名。申請變量用語句inti;可向計(jì)算機(jī)申請一個(gè)整型的存儲單元,該存儲單元在程序中用變量i標(biāo)識,即整型變量i。int是C語言中預(yù)先規(guī)定的命令,常稱為關(guān)鍵字。關(guān)鍵字int與整型或整數(shù)相關(guān)。程序中使用變量i,計(jì)算機(jī)會操作
內(nèi)存中與變量i關(guān)聯(lián)的存儲單元。程序員通常只從C語言的角度
以變量的方式使用內(nèi)存。使用變量語句i=5;把整數(shù)5存入整型變量i中,讀作“變量i賦值為5”。語句中的=是操作符命令,=操作符用于給變量賦值,故稱=操作符為賦值操作符。賦值之后變量i的值為5,即i==5的值為真。等于操作符==用于比較兩個(gè)值是否相等,初學(xué)者
常習(xí)慣性地將賦值操作符=讀作等于。2.獲得用戶的輸入,并把輸入數(shù)據(jù)存儲到內(nèi)存中??捎谜Z句inta,b;申請兩個(gè)整型變量以存放用戶輸入的兩個(gè)整數(shù)。C語言語句scanf("%d%d",&a,&b);命令計(jì)算機(jī)獲得用戶輸入的兩個(gè)整數(shù),并存到整型變量a和整型變量b中。語句中的&也是C語言操作符命令,用于獲得變量所標(biāo)識的存儲單元在內(nèi)存中的具體地址。3.運(yùn)算器求和,并把計(jì)算結(jié)果轉(zhuǎn)存到內(nèi)存中。讓運(yùn)算器求和用+操作符。用戶輸入的兩個(gè)整數(shù)分別存在變量a和b中,用a+b即可讓運(yùn)算器求出用戶輸入的兩個(gè)整數(shù)的和。用語句intc;定義一個(gè)整型變量c保存計(jì)算結(jié)果,則此步驟可翻譯成C語言語句c=a+b;,讀作變量c賦值為變量a與變量b的和。語句中有+和=兩個(gè)操作符命令。4.在顯示器上輸出計(jì)算結(jié)果。輸出結(jié)果仍需使用printf函數(shù)。語句printf("和為c");不會輸出變量c的值,只會輸出:和為c。雙撇號中的c不是變量,只是普通的字母c,雙撇號中的內(nèi)容會“原樣輸出”。輸出整型變量c的值需用語句printf("和為%d",c);。其中的%d表示一個(gè)整數(shù),與逗號后面的整型變量c對應(yīng),輸出時(shí)%d會被整型變量c的值替換。語句的執(zhí)行結(jié)果如圖最后一行所示。算法與實(shí)現(xiàn)算法1.在顯示器上提示用戶輸入兩個(gè)整數(shù);2.獲得用戶的輸入,并把輸入數(shù)據(jù)存儲到內(nèi)存中;3.運(yùn)算器求和,并把計(jì)算結(jié)果轉(zhuǎn)存到內(nèi)存中;4.在顯示器上輸出計(jì)算結(jié)果。對應(yīng)的C語言語句inta,b,c;1.printf("請輸入兩個(gè)整數(shù):\n");2.scanf("%d%d",&a,&b);3.c=a+b;4.printf("和為%d",c);C語言中的計(jì)算機(jī)scanf函數(shù)對應(yīng)輸入設(shè)備;變量對應(yīng)內(nèi)存中的存儲單元;操作符對應(yīng)運(yùn)算器;printf對應(yīng)輸出設(shè)備;C語言命令由控制器分析執(zhí)行。C語言語句分析C語言語句中的命令C語言語句用于指揮計(jì)算機(jī)工作,每條語句中都有命令。C語言命令有三種:關(guān)鍵字命令、函數(shù)命令和操作符命令。關(guān)鍵字:事先已有約定,具有特定的含義。如int與整型相關(guān),float與小數(shù)相關(guān),char與字符相關(guān)。語句intsum;使用關(guān)鍵字命令int向計(jì)算機(jī)申請一個(gè)整型存儲單元,即定義了一個(gè)整型變量sum。語句floatf1,f2;使用關(guān)鍵字命令float向計(jì)算機(jī)申請兩個(gè)浮點(diǎn)型存儲單元,即定義了兩個(gè)浮點(diǎn)型變量f1和f2。inta,b,c;1.printf("請輸入兩個(gè)整數(shù):\n");2.scanf("%d%d",&a,&b);3.c=a+b;4.printf("和為%d",c);函數(shù)命令與操作符命令函數(shù)是完成特定功能的一系列指令的集合,如printf函數(shù)與輸出相關(guān),可用于輸出數(shù)據(jù);scanf函數(shù)與輸入相關(guān),可用于獲得用戶輸入的數(shù)據(jù)。函數(shù)的語法特點(diǎn)是函數(shù)名總與一對圓括號相連。表示命令的一些符號稱為操作符命令,如+,-,*,/分別用于命令計(jì)算機(jī)的運(yùn)算器求和,求差,求積,求商。個(gè)別常見符號在C語言有特殊的含義,如數(shù)學(xué)上的=在C語言中表示賦值,是賦值號。i=5;變量i賦值為5;i==5;變量i等于5。操作符命令&可用于求變量相關(guān)的存儲單元在內(nèi)存中的實(shí)際地址。C語言語句中的字符(串)根據(jù)是否位于一對雙撇號內(nèi)可將字符(串)分成兩類。在一對雙撇號內(nèi)的字符通常為生活中的普通字符。如"abc"就是字母a,字母b和字母c;"="就是等號。少數(shù)特殊的字符串有特定的含義,如\n常表示回車鍵;%d表示一個(gè)整數(shù)。不在一對雙撇號內(nèi)的字符(串)是C語言的語言成分,用于表示命令或標(biāo)識存儲單元,是關(guān)鍵字、函數(shù)或變量。關(guān)鍵字是規(guī)定好的字符串。函數(shù)常與小括號相連。inta,b,c;1.printf("請輸入兩個(gè)整數(shù):\n");2.scanf("%d%d",&a,&b);3.c=a+b;4.printf("和為%d",c);C語言語法規(guī)則1.C程序書寫格式自由。但是在多數(shù)情況下,一行寫一條語句。2.C語言語句以分號結(jié)束。3.關(guān)鍵字是C語言中預(yù)先定義了的有特定功能的標(biāo)識符,不能作為變量或函數(shù)的名字。4.C語言中使用英文符號(半角符號),如不能把語句結(jié)束標(biāo)志的分號“;”誤作中文的標(biāo)點(diǎn)符號“;”(全角符號)。“Ctrl+空格鍵”可用于中英文輸入法的切換。C語言語法規(guī)則5.注釋是對程序中的內(nèi)容提供解釋說明,方便程序的閱讀和理解,不會被執(zhí)行。注釋內(nèi)容用/*和*/界定。注釋可單行也可多行。/*這是一個(gè)單行注釋的示例*//*
這是一個(gè)
多行注釋的示例
*/VC6.0中單行注釋也可用//。scanf("%d%d",&a,&b);//操作符命令&用于獲得變量在內(nèi)存中的具體地址思考題分析下列語句的組成和作用。1.floatx,y;2.printf("請輸入一個(gè)小數(shù):\n");3.scanf("%f",&x);4.y=-x;//操作符命令-用于求相反數(shù)5.printf("%f的相反數(shù)是%f\n",x,y);求一個(gè)整數(shù)的絕對值,
算法可行嗎?求一個(gè)整數(shù)的絕對值的算法第一步:提示用戶輸入一個(gè)整數(shù);第二步:獲得用戶的輸入,并把輸入數(shù)據(jù)存儲到內(nèi)存中;第三步:求出絕對值,并把它轉(zhuǎn)存到內(nèi)存中;第四步:在顯示器上輸出絕對值。算法中需要定義兩個(gè)整型變量保存數(shù)據(jù)。實(shí)現(xiàn)算法用intm,n;定義兩個(gè)整型變量m和n。第一步:提示用戶輸入一個(gè)整數(shù);可翻譯成printf("請輸入一個(gè)整數(shù):\n");第二步:獲得用戶的輸入,并把輸入數(shù)據(jù)存儲到內(nèi)存中;可翻譯成scanf("%d",&n);第三步:求出絕對值,并把它轉(zhuǎn)存到內(nèi)存中;求整型變量n的絕對值用什么命令呢,關(guān)鍵字,操作符,還是函數(shù)?若沒有求絕對值的C語言命令,則這個(gè)求絕對值算法就不可行。關(guān)鍵字命令和操作符命令沒有可用于求一個(gè)整數(shù)絕對值的關(guān)鍵字。C語言操作符表中也找不到求絕對值的操作符命令。運(yùn)算器只能進(jìn)行基礎(chǔ)的算術(shù)運(yùn)算,比如加減乘除,不會直接求一個(gè)整數(shù)的絕對值。從關(guān)鍵字命令和操作符命令的角度分析,這個(gè)算法不可行。算法中求絕對值的步驟需要進(jìn)一步分解,當(dāng)分解后的每個(gè)步驟都能用關(guān)鍵字命令或操作符命令實(shí)現(xiàn)時(shí),算法才可行。函數(shù)命令函數(shù)是完成特定功能的一系列指令的集合。abs函數(shù)的功能是求一個(gè)整數(shù)的絕對值。用abs(-3)可求出整數(shù)-3的絕對值。abs函數(shù)指揮計(jì)算機(jī)執(zhí)行定義好的指令序列,得到-3的絕對值3,最后把整數(shù)3作為abs(-3)的執(zhí)行結(jié)果。第三步:求出絕對值,并把它轉(zhuǎn)存到內(nèi)存中;可翻譯成m=abs(n);使用函數(shù)命令可以讓計(jì)算機(jī)執(zhí)行定義好的指令序列完成特定功能,提高程序開發(fā)的效率。實(shí)現(xiàn)算法第四步:在顯示器上輸出絕對值。可翻譯成printf("%d的絕對值為%d",n,m);雙撇號中第一個(gè)%d會被變量n的值代替;第二個(gè)%d會被變量m的值代替。求一個(gè)整數(shù)的絕對值算法第一步:提示用戶輸入一個(gè)整數(shù);第二步:獲得用戶的輸入,并把輸入數(shù)據(jù)存儲到內(nèi)存中;第三步:求出絕對值,并把它轉(zhuǎn)存到內(nèi)存中;第四步:在顯示器上輸出絕對值。對應(yīng)的C語言語句intm,n;printf("請輸入一個(gè)整數(shù):\n");scanf("%d",&n);m=abs(n);printf("%d的絕對值為%d",n,m);自定義命令:函數(shù)自定義命令:函數(shù)函數(shù)是完成特定功能的一系列指令的集合。函數(shù)實(shí)現(xiàn)的功能通常都需要復(fù)雜的算法,不需要重新設(shè)計(jì)和實(shí)現(xiàn)算法,只需借助函數(shù)名就可以使用已經(jīng)定義好的算法,完成特定的功能,因此,函數(shù)極大地提高了程序開發(fā)的效率。如使用printf函數(shù)在顯示器上輸出信息,使用scanf函數(shù)獲得用戶的輸入等。printf("Hello,World!\n);,scanf("%d%d",&m,&n);。函數(shù)由程序員定義,因此,函數(shù)又稱為自定義命令。求兩個(gè)整數(shù)的和的函數(shù)定義函數(shù)時(shí),根據(jù)功能,程序員先設(shè)計(jì)算法,再按照函數(shù)的語法實(shí)現(xiàn)算法。下面以求兩個(gè)整數(shù)的和的函數(shù)為例來介紹定義函數(shù)的語法。若給函數(shù)起名為sum,則用sum(5,3);可求出整數(shù)5和3的和,程序員在使用函數(shù)時(shí)會直接提供輸入數(shù)據(jù),因此,函數(shù)中無需用scanf函數(shù)獲得輸入。sum函數(shù)需定義兩個(gè)整型變量保存輸入數(shù)據(jù),即兩個(gè)加數(shù),還要約定一個(gè)整型存儲單元存放函數(shù)的執(zhí)行結(jié)果,即和。sum函數(shù)定義的第一行為intsum(intx,inty)sum函數(shù)的首部函數(shù)首部即函數(shù)定義的第一行,格式為:
函數(shù)返回值類型函數(shù)名(函數(shù)的參數(shù))函數(shù)返回值即函數(shù)的執(zhí)行結(jié)果,也稱為函數(shù)值。函數(shù)返回值類型規(guī)定了函數(shù)會返回什么樣的數(shù)據(jù)。sum函數(shù)中返回值類型int申請了一個(gè)匿名的int型存儲單元,函數(shù)執(zhí)行完畢,函數(shù)的使用者在這個(gè)匿名的存儲單元中獲得函數(shù)的執(zhí)行結(jié)果。函數(shù)的參數(shù)是指首部圓括號中定義的變量,用于存儲函數(shù)需處理的輸入數(shù)據(jù)。intsum(intx,inty)sum函數(shù)的函數(shù)體函數(shù)定義由兩部分組成:函數(shù)的首部和函數(shù)體。函數(shù)體緊接函數(shù)的首部,由一對花括號界定。函數(shù)執(zhí)行時(shí),函數(shù)體中的語句序列會自上而下依次執(zhí)行。函數(shù)體中的算法將參數(shù)中存儲的輸入數(shù)據(jù)加工成輸出結(jié)果,并將最終的結(jié)果返回到約定的匿名存儲單元中。求和函數(shù)sum的輸入在參數(shù)x與參數(shù)y中存儲,
函數(shù)體中求出變量x和變量y的和即可。intsum(intx,inty){
intz;z=x+y;returnz;}return關(guān)鍵字語句returnz;中的return是C語言關(guān)鍵字。return命令用于立即結(jié)束函數(shù)的執(zhí)行,函數(shù)體中return語句后面的語句不會再執(zhí)行。沒有return命令時(shí),函數(shù)將自上而下依次執(zhí)行語句,在界定函數(shù)結(jié)束的右花括號處返回。語句returnz;結(jié)束函數(shù)的執(zhí)行,并將
變量z的值作為函數(shù)的執(zhí)行結(jié)果,
存入約定的匿名存儲單元中。intsum(intx,inty){
intz;z=x+y;returnz;}函數(shù)調(diào)用sum(5,3)的執(zhí)行過程1.把輸入數(shù)據(jù)存入?yún)?shù)(變量);2.函數(shù)體中語句自上而下依次執(zhí)行;2.1定義整型變量z2.2求和,并轉(zhuǎn)存到變量z中,2.3結(jié)束函數(shù)的執(zhí)行,并將z的值返回,3.函數(shù)執(zhí)行完畢,約定的整型存儲單元的值為8,即函數(shù)的返回值為8。intsum(intx,inty){
intz;z=x+y;returnz;}sum函數(shù)函數(shù)的功能體現(xiàn)為由輸入(3和5)得到輸出(8)。思考題分析比較sum函數(shù)命令與操作符命令+。1.sum函數(shù)由程序員定義,是自定義命令;而操作符命令+由C語言提供;2.sum函數(shù)和+操作符的功能均為求和,但sum函數(shù)命令只能求兩個(gè)整數(shù)的和,而+操作符還可以求兩個(gè)小數(shù)的和,如1.2+2.3;sum函數(shù)的功能是多余的,定義sum函數(shù)的目的是學(xué)習(xí)定義函數(shù)的語法,分區(qū)函數(shù)執(zhí)行的過程。思考題1.語句8;中有命令嗎?這條語句會怎么執(zhí)行?怎樣理解函數(shù)調(diào)用sum(3,5)的執(zhí)行結(jié)果?2.分析語句printf("%d",sum(3,-5));的執(zhí)行順序及結(jié)果;3.用兩次+操作符可求3個(gè)數(shù)的和,如1+2+3,用sum函數(shù)怎樣求1,2,3的和?sum(1,sum(2,3))或sum(sum(1,2),3)C語言程序C語言程序C語言程序由函數(shù)組成。C語言規(guī)定,程序中必須有且僅有一個(gè)名為main的函數(shù)。main函數(shù)即主函數(shù),C語言程序從main函數(shù)開始運(yùn)行,main函數(shù)執(zhí)行完畢,程序運(yùn)行結(jié)束。對于初學(xué)者,可簡單地認(rèn)為main函數(shù)沒有返回值,即函數(shù)的返回值類型為空,用關(guān)鍵字void表示。main函數(shù)的首部voidmain()。圓括號中沒有定義參數(shù)表明main函數(shù)不需要輸入,使用函數(shù)時(shí)也只用一對圓括號,如main(),不能有輸入數(shù)據(jù)。求兩個(gè)整數(shù)的和的程序?qū)⑶髢蓚€(gè)整數(shù)的和的C語言語句置于main函數(shù)的函數(shù)體中,就可以得到求兩個(gè)整數(shù)的和的程序。inta,b,c;1.printf("請輸入兩個(gè)整數(shù):\n");2.scanf("%d%d",&a,&b);3.c=a+b;4.printf("和為%d",c);printf函數(shù)和scanf函數(shù)的定義printf函數(shù)和scanf函數(shù)由C語言提供,可以簡單地認(rèn)為它們在stdio.h文件中定義。(std-standard標(biāo)準(zhǔn);io-input/output輸入輸出;h-header
頭;即標(biāo)準(zhǔn)輸入輸出頭文件)C語言中,函數(shù)需先定義再使用。先找到stdio.h文件,再找到printf函數(shù)和scanf函數(shù)的定義,把這兩個(gè)函數(shù)的定義拷貝到main函數(shù)定義的前面,就可以在main函數(shù)中使用了。使用庫函數(shù)C語言提供的函數(shù)又稱為庫函數(shù)。使用庫函數(shù)printf函數(shù)和scanf函數(shù)時(shí),只需在程序中加入#include<stdio.h>即可引入函數(shù)的定義。#include的作用是找到尖括號中的文件,并用文件內(nèi)容替換掉該行代碼。完整的程序如圖所示。abs函數(shù)也是庫函數(shù)abs函數(shù)也是庫函數(shù),在math.h(即數(shù)學(xué)庫)中定義。數(shù)學(xué)庫中還有求平方根的sqrt函數(shù),求正弦值的sin函數(shù)等。求一個(gè)整數(shù)的絕對值的完整程序如下所示。思考題討論求兩個(gè)整數(shù)的和的程序與求兩個(gè)整數(shù)的和的函數(shù)的異同intsum(intx,inty){
intz;z=x+y;returnz;}思考題程序與函數(shù)的異同1.相同點(diǎn):兩者功能相同,程序和函數(shù)都可以求出兩個(gè)整數(shù)的和;它們都需要兩個(gè)整數(shù)作為輸入,它們都會輸出一個(gè)整數(shù)作為結(jié)果。2不同點(diǎn):2.1使用者不同,
程序的使用者是用戶;函數(shù)的使用者是程序員;程序與函數(shù)的異同2.2獲得輸入數(shù)據(jù)的方式不同程序借助scanf函數(shù)獲得用戶通過輸入設(shè)備提供的輸入;函數(shù)借助參數(shù)獲得程序員直接提供的輸入;2.3提供輸出結(jié)果的方式不同程序借助printf函數(shù)在輸出設(shè)備上顯示結(jié)果讓用戶查看;函數(shù)把結(jié)果存入約定的匿名存儲單元中讓程序員(調(diào)用函數(shù))使用;編譯程序編譯程序計(jì)算機(jī)只能理解執(zhí)行用機(jī)器語言編寫的程序。C語言是高級語言,用高級語言編寫的程序稱為源程序。盡管計(jì)算機(jī)不能直接執(zhí)行C語言程序,但由于利用編譯程序可以方便地將C語言程序翻譯成機(jī)器語言程序,由此認(rèn)為計(jì)算機(jī)能理解并執(zhí)行C語言程序。本書利用VC6.0編譯C語言源程序。VisualC++6.0(簡稱VC6.0)VC6.0是微軟公司提供的在Windows環(huán)境下進(jìn)行應(yīng)用程序開發(fā)的C/C++編譯器系統(tǒng)。VC6.0中編譯程序先新建工程再新建源文件最后編譯執(zhí)行。新建工程1.選擇正確的工程類型2.輸入工程名稱選擇默認(rèn)的控制臺程序的類型,即“空工程”查看新建工程信息匯總新建一個(gè)工程名為1的空控制臺程序后VC6.0的界面再次單擊文件菜單中的新建命令此時(shí)會彈出新建對話框并自動定位到文件標(biāo)簽。選擇文件類型,輸入文件名可以在編輯窗口輸入程序了再次編譯其它程序一個(gè)工程只能有一個(gè)main函數(shù),再次編譯其它程序之前需要關(guān)閉當(dāng)前工程。單擊文件菜單,選擇“關(guān)閉工作空間”命令,即可關(guān)閉當(dāng)前工程。編譯程序時(shí)遇到錯(cuò)誤編譯程序時(shí)遇到錯(cuò)誤,首先在信息輸出窗口找到第一個(gè)錯(cuò)誤提示,接著用鼠標(biāo)左鍵雙擊該提示,此時(shí)編程器會自動定位出現(xiàn)錯(cuò)誤的位置,最后就是結(jié)合錯(cuò)誤提示信息細(xì)心查找出錯(cuò)原因了。修正一個(gè)錯(cuò)誤后通常要再次嘗試運(yùn)行程序,不要急著修改下一個(gè)錯(cuò)誤。printf函數(shù)的用法標(biāo)識起始位置的光標(biāo)程序運(yùn)行窗口中閃爍的光標(biāo)是輸入或輸出的起始位置,程序開始運(yùn)行時(shí),標(biāo)識起始位置的光標(biāo)位于窗口中的第一行第一列。當(dāng)用戶輸入數(shù)據(jù)或程序中使用printf函數(shù)輸出數(shù)據(jù)時(shí),光標(biāo)會自動調(diào)整位置,它始終指示下一次輸入或輸出的起始位置。printf函數(shù)從光標(biāo)指示的位置開始輸出數(shù)據(jù)。分析下面程序的輸出。特殊字符組合使用printf函數(shù)時(shí),一對雙撇號內(nèi)的字符會原樣輸出,但有兩類特殊的字符組合例外。反斜杠\和下一個(gè)字符的組合稱為“轉(zhuǎn)義序列”,有著特殊的含義。如\"表示一個(gè)雙撇號";\\表示一個(gè)反斜杠\;\n在VC6.0中表示回車鍵。語句printf("Hi,\nWelcometoC!");的輸出結(jié)果如圖所示。思考題請用printf函數(shù)分別輸出如圖所示的字符串。printf("\"");printf("\\n");printf("\"C\"");占位序列占位序列可用于輸出數(shù)據(jù),由百分號%和相鄰的字符組成。遇到占位序列時(shí),printf函數(shù)會用對應(yīng)位置上的數(shù)據(jù)代替占位序列。語句printf("%d\n",3+2);中的+操作符命令讓計(jì)算機(jī)求出3與2的和,即5;原語句轉(zhuǎn)化為printf("%d\n",5);,執(zhí)行結(jié)果為5↙。↙表示回車。格式字符串不同類型的數(shù)據(jù)需用不同的占位序列,整數(shù)用%d,浮點(diǎn)數(shù)用%f,字符用%c,因此,占位序列也稱格式字符串。語句printf("%f",1.1+2.2);的輸出結(jié)果為3.300000。printf函數(shù)輸出小數(shù)時(shí),小數(shù)點(diǎn)后默認(rèn)有6位。分析下面程序的執(zhí)行結(jié)果分析下面程序的執(zhí)行結(jié)果思考題:分析printf函數(shù)的輸出結(jié)果printf("%d",3);printf("3");printf("%d",3+5);
printf("3+5");printf("%d\n",3+5);printf("3+2=%d\n",3+2);3383+58↙3+2=5↙觀察程序的運(yùn)行過程++分析下面程序的運(yùn)行過程程序的兩種運(yùn)行方式在VC6.0中程序有兩種方式:執(zhí)行(快捷鍵Ctrl+F5)和調(diào)試執(zhí)行(快捷鍵F5)。執(zhí)行程序時(shí),程序中的語句會連續(xù)執(zhí)行。調(diào)試執(zhí)行程序時(shí),遇到含有斷點(diǎn)的語句,程序就會暫停執(zhí)行。若程序中沒有“斷點(diǎn)”,則調(diào)試執(zhí)行時(shí),程序會連續(xù)執(zhí)行。插入斷點(diǎn)插入斷點(diǎn)調(diào)試執(zhí)行程序程序在斷點(diǎn)處暫停執(zhí)行調(diào)試工具欄暫停程序執(zhí)行后,可以通過調(diào)試工具欄控制程序的執(zhí)行過程常用的有三個(gè)命令:StopDebugging結(jié)束調(diào)試執(zhí)行,回到編輯源程序狀態(tài)StepInto單步執(zhí)行程序,即程序執(zhí)行“一條語句”后再次進(jìn)入暫停狀態(tài)。StepOver也是單步執(zhí)行程序,但語句中有函數(shù)調(diào)用時(shí),StepOver會連續(xù)執(zhí)行被調(diào)用函數(shù),而StepInto會調(diào)試執(zhí)行被調(diào)用函數(shù)。單步執(zhí)行(StepInto)快捷鍵F11程序執(zhí)行完語句a=23;后,再次暫停。函數(shù)調(diào)用sum(a,b)函數(shù)調(diào)用sum(a,b)函數(shù)執(zhí)行的過程:1.對輸入求值;sum(a,b)實(shí)為sum(23,-5)2.把值存儲到參數(shù)中sum函數(shù)中參數(shù)也是變量x的值變?yōu)?3,變量y的值變?yōu)?5。3.main函數(shù)暫停執(zhí)行,自上而下依次執(zhí)行sum函數(shù)函數(shù)體中的語句執(zhí)行函數(shù)調(diào)用sum(a,b)執(zhí)行函數(shù)調(diào)用sum(a,b)main函數(shù)即將繼續(xù)執(zhí)行調(diào)試庫函數(shù)?沒有必要調(diào)試執(zhí)行庫函數(shù)第14行語句將調(diào)用執(zhí)行printf函數(shù),如果使用StepInto命令(按下快捷鍵F11),則將調(diào)試執(zhí)行printf函數(shù)。沒有必要調(diào)試執(zhí)行庫函數(shù),因此,這里應(yīng)使用StepOver命令(快捷鍵F10)來進(jìn)行單步調(diào)試執(zhí)行。結(jié)束調(diào)試執(zhí)行C語言教程第2章基本數(shù)據(jù)類型01存儲單元的特點(diǎn)02整型03整型字面量04整型的輸入輸出05scanf函數(shù)的用法+06整型的使用07浮點(diǎn)型08字符型09字符型的輸入輸出10再談printf函數(shù)11典型例題存儲單元的特點(diǎn)二進(jìn)制計(jì)算機(jī)采用二進(jìn)制。二進(jìn)制數(shù)最容易實(shí)現(xiàn),如用開關(guān)的接通表示1,斷開表示0。一個(gè)開關(guān)可表示一位(bit),如圖所示的數(shù)據(jù)是01011010,共8位。8(23)位一組,稱為字節(jié)(Byte)。字節(jié)用B表示,位用b表示,如4B=32b。常用的其它單位還有KB,MB和GB。1KB=210B,1MB=220B,1GB=230B計(jì)算機(jī)內(nèi)存中的存儲單元以字節(jié)為單位。編碼和解碼現(xiàn)實(shí)世界中的數(shù)據(jù)轉(zhuǎn)換成由0和1組成的二進(jìn)制串,計(jì)算機(jī)才能存儲和處理。由數(shù)據(jù)得到01串稱為編碼;由01串得到數(shù)據(jù)稱為解碼。每類數(shù)據(jù)都各有特點(diǎn),只用一種編碼規(guī)則統(tǒng)一編碼是不現(xiàn)實(shí)的。不同類型的數(shù)據(jù)如整數(shù)和小數(shù),采用了不同的編碼規(guī)則。多種編碼規(guī)則導(dǎo)致不同數(shù)據(jù)的編碼結(jié)果可能相同,因此,只有確定了編碼規(guī)則,才能正確解碼。解碼數(shù)據(jù)編碼規(guī)則不同,就會出現(xiàn)整數(shù)90、小數(shù)0.703125和字符Z編碼后的01串都是01011010。解碼01011010時(shí)顯然需要知道編碼規(guī)則,即存儲單元的類型。若是整型存儲單元,則值為90;若是浮點(diǎn)型存儲單元,則值為0.703125;若是字符型存儲單元,則值為字符Z。由于編碼規(guī)則不同,整型存儲單元只能存儲整數(shù)2,不能存儲小數(shù)2.0。或者說整型存儲單元只按整型的編碼規(guī)則解碼,結(jié)果只會是整數(shù)。變量的類型計(jì)算機(jī)內(nèi)存中的存儲單元在C語言中用變量標(biāo)識。變量的類型就是相關(guān)存儲單元的類型,也就是編碼規(guī)則。申請變量時(shí),需明確變量的類型。每個(gè)變量都有確定的類型,因此,變量的值總是確定的。編程時(shí),通常無需考慮編碼結(jié)果,即計(jì)算機(jī)內(nèi)存中實(shí)際存儲的01串。若有inta=90;,則C語言中變量a的值就是90。存儲單元的長度為便于計(jì)算機(jī)存取數(shù)據(jù),同類型存儲單元的長度相同。若存儲單元的長度為1個(gè)字節(jié),則可存儲的數(shù)據(jù)從00000000至11111111,一共有256(28)種狀態(tài)。一種狀態(tài)對應(yīng)一個(gè)數(shù),1B的存儲單元可存儲的數(shù)只有256個(gè)。確定長度的存儲單元能存儲的數(shù)據(jù)的個(gè)數(shù)固定,因此,變量的取值范圍有限。4個(gè)字節(jié)的存儲單元若存儲單元的長度是4個(gè)字節(jié),則有232
(232=4294967296)種狀態(tài),可存儲的數(shù)有232個(gè)。用于存儲整數(shù)時(shí),整數(shù)的取值范圍可能是0到232-1;也可能是-216至216-1。用于存儲小數(shù)時(shí),232個(gè)小數(shù)實(shí)在太少了。盡管0.1至0.2間就有無數(shù)個(gè)小數(shù),但常用到的0.1至0.2間的小數(shù)并不多。C語言中變量的取值范圍有明確的規(guī)定。思考題分析C語言中的變量a與數(shù)學(xué)中的未知數(shù)x的異同。不同點(diǎn):變量a是具體的,有關(guān)聯(lián)的存儲單元;未知數(shù)x是抽象的。變量a有類型限制,有取值范圍的限制;未知數(shù)x可表示任何一個(gè)數(shù)。相同點(diǎn):都是字母代表“數(shù)”。整型short型short型,短整型,是shortint的簡寫。short型變量長度2個(gè)字節(jié),取值范圍-215至215-1,-32768至32767。語句shorta=-1;定義了一個(gè)短整型變量a,且變量a被初始化為-1,即變量a的值是-1。分析語句a=50000;。整數(shù)可以賦值給整型變量,這條語句沒有語法錯(cuò)誤,可以執(zhí)行。但50000超出了變量a的取值范圍,賦值后,short型變量a的實(shí)際值不可能是50000。這條語句有邏輯錯(cuò)誤。unsingedshort型unsingedshort型,無符號短整型,是unsignedshortint的簡寫。編碼長度也是2個(gè)字節(jié),但取值范圍0至216-1,即0至65535。語句unsingedshortu=50000;定義了一個(gè)無符號短整型變量u,且被初始化為50000,即變量u的值為50000。語句正確,既沒有語法錯(cuò)誤,也沒有邏輯錯(cuò)誤。long型long型,長整型,是longint的簡寫。long型變量的長度為4個(gè)字節(jié),取值范圍-231至231-1,約為-21億至21億。語句long
m=-50000;定義了長整型變量m,且被初始化為-50000,即變量m的值為-50000。在VC6.0中,int型與long型相同,長度4個(gè)字節(jié),取值范圍是-231至231-1。unsignedlong型unsignedlong型,
無符號長整型,是的unsingedlongint的簡寫。編碼長度4個(gè)字節(jié),取值范圍0至232-1,即0至4294967295。語句unsingedlongul=-2;定義了一個(gè)無符號長整型變量ul,且被初始化-2。這條語句有邏輯錯(cuò)誤,ul的值不會是-2。unsignedint,無符號整型,在VC6.0中長度也是4個(gè)字節(jié),與unsignedlong相同。整型小結(jié)類型名稱簡稱取值范圍長度整數(shù)的個(gè)數(shù)shortshort有符號短整型短整型-32768~327672個(gè)字節(jié)65536unsignedshort無符號短整型無0~65535longlong有符號長整型長整型-231~231-14個(gè)字節(jié)232unsignedlong無符號長整型無0~232-1intint有符號整型整型-231~231-14個(gè)字節(jié)232unsignedint無符號整型無0~232-1思考題:分析下面的語句有無邏輯錯(cuò)誤。shortsum=-23;unsignedshorta2=50000;longb=65536;unsignedlongul=-5;整型字面量字面量字面量是固定值的表示方法。語句a=sum+23;中,23就是一個(gè)整型字面量。字面量也需存儲,字面量的類型就是存儲字面量的存儲單元的類型。VC6.0中,整型字面量是int型。已知longa,sum=5;,分析語句a=sum+2300000000;。int型字面量23億超出了int型的取值范圍,因此,這條語句有邏輯錯(cuò)誤。沒必要分析邏輯錯(cuò)誤的語句的執(zhí)行結(jié)果。分析字面量2300000000和2300000000u整數(shù)23億的類型是int型,int型的值不會是23億,這個(gè)字面量有邏輯錯(cuò)誤。字面量2300000000u中的u稱為后綴,后綴u表示需用unsignedint型存儲單元存放該整型字面量。unsignedint型的取值范圍0到42億,因此,字面量2300000000u的實(shí)際值就是23億,沒有問題。也可寫作2300000000U。用作后綴時(shí),u和U沒有區(qū)別。例2-1
C語言中,-1u大于0嗎?-1是負(fù)數(shù),后綴u表示字面量-1是無符號數(shù),而無符號數(shù)不會是負(fù)的,-1u這種寫法似乎有問題。計(jì)算機(jī)中沒有負(fù)號,只有編碼后的01串。-1u表示用unsignedint存儲單元存儲-1的編碼。-1的編碼非常特殊是32個(gè)1。int型時(shí),32個(gè)1的值是-1;unsignedint型時(shí),32個(gè)1的值是最大的整數(shù),232-1。因此,常用-1u表示最大的整數(shù)。注意:只可用-1u表示最大的整數(shù),-2u就有邏輯錯(cuò)誤。整型字面量的前綴整型字面量默認(rèn)是十進(jìn)制,可以用前綴改變進(jìn)制。前綴為0的整數(shù)是八進(jìn)制數(shù)。027=2×8+7×1=23前綴為0x或0X的整數(shù)是十六進(jìn)制數(shù)。0x17=1×16+7×1=23語句inti=027,j=0x17,k=0X17;定義了三個(gè)整型變量i、j、k,且它們的值都被初始化成了23。思考題:分析下面語句有無邏輯錯(cuò)誤。shortm=65535;longn=65535;變量m不能取值65535,語句有邏輯錯(cuò)誤。變量n的值為65535。unsignedshorti=-1u;longj=-1;變量i的值是65535,即短整型中最大的整數(shù)。變量j的值是-1。unsignedshorta=-2;shortb=32768;兩條語句都有邏輯錯(cuò)誤。無符號變量a不能取負(fù)值。32768超出了短整型變量b的取值范圍。整型的輸入輸出格式字符串scanf函數(shù)和printf函數(shù)常見的調(diào)用方式為scanf(格式字符串,輸入列表)和printf(格式字符串,輸出列表),其中的格式字符串需和數(shù)據(jù)的類型相匹配。int型用d,short型用hd,long型用ld,unsignedint型用u,unsignedshort型用hu,unsignedlong型用lu。其中的l(long)和h(short)稱為長度修飾符,是附加的格式說明符。格式字符串與數(shù)據(jù)類型unsignedshorta=-1u;語句printf("%hu",a);中格式字符串hu(無符號短整型)準(zhǔn)確地匹配了變量a的類型,printf函數(shù)正確地輸出變量a的實(shí)際值65535。語句printf("%hd",a);中格式字符串hd(短整型)與變量a的類型不匹配,printf函數(shù)不會輸出a的實(shí)際值。這條語句有邏輯錯(cuò)誤。語句printf("%ld",2200000000);中由于22億超出了長整型ld的取值范圍,故printf函數(shù)的輸出結(jié)果不會是22億。這條語句有邏輯錯(cuò)誤。分析下面語句的輸出結(jié)果。printf("%lu",2200000000);printf("%ld",-1);printf("%lu",-1u);printf("%hd",-1);printf("%hu",-1u);printf("%hu",-2);格式字符o和x格式字符d對應(yīng)于十進(jìn)制的有符號整型,格式字符u對應(yīng)于十進(jìn)制的無符號整型。格式字符o(或O)對應(yīng)于八進(jìn)制整型。遇到格式字符o時(shí),printf函數(shù)會以無符號整型解碼數(shù)據(jù)并以八進(jìn)制形式輸出。格式字符o可用于查看整數(shù)的編碼。格式字符x(或X)對應(yīng)于十六進(jìn)制整型。scanf函數(shù)的用法輸入緩沖區(qū)用戶的輸入會保存在一塊稱作輸入緩沖區(qū)的內(nèi)存中,scanf函數(shù)從輸入緩沖區(qū)中讀取數(shù)據(jù)。當(dāng)輸入緩沖區(qū)中有數(shù)據(jù)時(shí),scanf函數(shù)會直接從輸入緩沖區(qū)中取走數(shù)據(jù)。只有輸入緩沖區(qū)中沒有數(shù)據(jù)時(shí),程序才會暫停執(zhí)行,等待用戶向輸入緩沖區(qū)中輸入數(shù)據(jù)。當(dāng)用戶輸入完成后,scanf函數(shù)會再次嘗試從輸入緩沖區(qū)中讀取數(shù)據(jù)。如何編程測試呢?scanf函數(shù)識別數(shù)據(jù)scanf函數(shù)會根據(jù)格式字符串,依次匹配輸入的數(shù)據(jù),遇到回車和空格時(shí),正常結(jié)束識別;遇到非法數(shù)據(jù)時(shí),也會結(jié)束識別,且使用已成功識別的數(shù)據(jù)。scanf("%d%d",&a,&b);,當(dāng)用戶輸入2332↙時(shí),%d對應(yīng)整數(shù),依次匹配2,3,遇到空格時(shí),正常結(jié)束一次識別,整數(shù)23賦值給變量a。接下來匹配第2個(gè)%d,先匹配空格,忽略,接著匹配3,2,遇到↙時(shí),正常結(jié)束一次識別,整數(shù)32賦值給變量b。scanf函數(shù)會從輸入緩沖區(qū)中取走識別成功的數(shù)據(jù)。識別舉例shortm=3;scanf("%hd",&m);當(dāng)用戶輸入-2↙時(shí),識別成功,變量m的值變?yōu)?2。當(dāng)用戶輸入x16↙時(shí),非法的x導(dǎo)致匹配失敗,識別結(jié)束,沒有成功的匹配,變量m值不變,仍為3。當(dāng)用戶輸入16x↙時(shí),非法的x導(dǎo)致匹配失敗,識別結(jié)束,變量m值變?yōu)橐殉晒Φ淖R別的16。當(dāng)用戶輸入32789↙時(shí),全部識別成功,但短整型變量m的實(shí)際值不會是32789,用戶的輸入“非法”。有shorti,j,k;
scanf("%ho%hx%hX",&i,&j,&k);,當(dāng)用戶輸入78956↙時(shí),分析變量i,j,k的值。由格式字符串可知,輸入應(yīng)為一個(gè)八進(jìn)制整數(shù)和兩個(gè)十六進(jìn)制整數(shù)。第一次識別時(shí),八進(jìn)制數(shù),字符7合法,字符8非法,識別結(jié)束,變量i的值為7。第二次識別時(shí)輸入緩沖區(qū)中有8956↙。8合法,9合法,遇到空格,結(jié)束本次識別,故變量j的值為137(0x89=8×16+9=137)。第三次識別后,變量k的值為5。識別舉例有inta,b;
scanf("%d%d",&a,&b);,當(dāng)用戶輸入0x17027↙時(shí),變量a和b的值是多少?由格式字符串可知,輸入應(yīng)為兩個(gè)十進(jìn)制整數(shù)。第一次識別時(shí),0合法,x非法,本次識別結(jié)束,變量a的值為0。第二次識別時(shí),輸入緩沖區(qū)中有x17027↙。x非法,本次識別結(jié)束,由于沒有成功的匹配,故變量b的值沒有改變。再談格式字符串輸入數(shù)據(jù)需嚴(yán)格匹配格式字符串。格式字符串為"%d%d"時(shí),輸入應(yīng)為兩個(gè)十進(jìn)制整數(shù),可用空格或回車分隔。格式字符串為"%d,%d"時(shí),輸入應(yīng)為一個(gè)十進(jìn)制整數(shù)一個(gè)逗號和一個(gè)十進(jìn)制整數(shù)。正確的輸入類似于27,17↙。思考題有inta,b;
scanf("%d,%d",&a,&b);,
用戶輸入2717↙時(shí)會怎樣識別?遇到空格時(shí),識別結(jié)束,變量a的值是27。再次識別時(shí),空格與逗號不匹配,非法數(shù)據(jù),結(jié)束識別。變量b的值沒有改變。格式字符串為"%d\n"時(shí),什么樣的輸入才能匹配成功?整型的使用整型的選用short,long,unsignedshort和unsignedlong變量的取值范圍不同,編程時(shí)先根據(jù)算法確定需存儲數(shù)據(jù)的取值范圍,然后再選用合適的整型變量。需用整型變量保存學(xué)生的數(shù)學(xué)成績,選用short型變量即可,當(dāng)然也可以選用long型。某個(gè)車間的月產(chǎn)量可用unsignedshort型變量,年產(chǎn)量可用unsignedlong型變量。整型數(shù)據(jù)的輸入輸出輸入輸出整型數(shù)據(jù)時(shí)一定要選用匹配的格式字符串。d對應(yīng)于有符號的十進(jìn)制整數(shù);u對應(yīng)于無符號的十進(jìn)制整數(shù);O(O)對應(yīng)于八進(jìn)制整數(shù);x(X)對應(yīng)于十六進(jìn)制整數(shù);只有使用匹配的格式字符串,printf函數(shù)才能輸出數(shù)據(jù)的實(shí)際值。整數(shù)乘法C語言中用星號(*)代替乘號(×)。變量n乘2時(shí)不能省略乘號,需寫成2*n或n*2。若有short
n=20000;,分析語句n=n*2;變量n乘2的積是40000,而short型變量n的取值范圍是-32768至32767,40000賦值給變量n有邏輯錯(cuò)誤。整數(shù)除法的商C語言中用斜杠(/)代替除號(÷)。兩個(gè)整數(shù)進(jìn)行除法運(yùn)算,商只保留整數(shù)部分,小數(shù)部分會被截掉。3/2的商為1,2/3的商為0,3/-2的商為-1。直接去掉商的小數(shù)部分,正數(shù)變小,負(fù)數(shù)變大,即“向零取整”。整數(shù)除法的余數(shù)求余操作符%可求出兩個(gè)整數(shù)相除的余數(shù)。3%2的值是1,即3除以2的余數(shù)為1。4%2的值是0。求余操作符%只用于整數(shù),不能用于小數(shù)。3%-2的值可根據(jù)余數(shù)=被除數(shù)-商×除數(shù)求得,3/-2=-1,
3%-2=3-(-1)×(-2)=1。-1u是最大的整數(shù)-1u是最大的整數(shù),可用于給無符號整型變量賦值。若有unsignedshortui=-1u;unsignedlonguj=-1u;,則變量ui的值為65535,變量uj的值4294967295。上述賦值語句也可簡寫為unsignedshortui=-1;unsignedlonguj=-1;,但可讀性變差。-1u是特殊用法。用超出取值范圍的整數(shù)給整型變量賦值時(shí),賦值語句多有邏輯錯(cuò)誤。思考題求-3%2和-3%-2的值?!?3/2=-1,∴-3%2=-3–2*(-1)=-1∵-3/-2=1,∴-3%-2=-3–(-2)*1=-1浮點(diǎn)型浮點(diǎn)型簡介浮點(diǎn)型變量用于存儲小數(shù)。常用的浮點(diǎn)型有兩類:float型和double型。float型長度4個(gè)字節(jié),又稱為單精度;double型長度8個(gè)字節(jié),又稱為雙精度。與整型不同,浮點(diǎn)型的取值范圍非常大。類型字節(jié)精度取值范圍float(單精度)46~7-3.4×10-38~3.4×1038double(雙精度)815~16-1.7×10-308~1.7×10308浮點(diǎn)型的精度小數(shù)在計(jì)算機(jī)中多為近似數(shù)。float型變量存儲小數(shù)時(shí),精度至少可以保證6位或7位。double型變量的精度至少可以保證15位或16位。例2-6有floatf=0.1;doublelf=0.1;,通過輸出可知單精度變量f和雙精度變量lf的實(shí)際值如圖所示。浮點(diǎn)型字面量浮點(diǎn)型字面量有兩種:一般形式的字面量,如0.25,-3.0,和指數(shù)形式的字面量。為便于輸入輸出,指數(shù)形式的字面量省略了底數(shù)10,并用e或E把小數(shù)部分與指數(shù)隔開。如-1.23×10-2可寫作-1.23e-2,0.023×103可寫作0.023E3。浮點(diǎn)型字面量默認(rèn)是雙精度數(shù),可加后綴f或F改為單精度數(shù)。如0.25是雙精度數(shù)占8個(gè)字節(jié),而0.023E3F是單精度數(shù)占4個(gè)字節(jié)。浮點(diǎn)型數(shù)據(jù)的輸入格式字符f、e和E對應(yīng)于單精度浮點(diǎn)型;雙精度浮點(diǎn)型須在格式字符前面加長度修飾符l。用戶輸入小數(shù)時(shí)可用一般形式,也可用指數(shù)形式。當(dāng)輸入12時(shí),會被識別成浮點(diǎn)數(shù)12.0。輸入時(shí),格式字符f、e和E沒有區(qū)別,三者可互換使用。例2-7浮點(diǎn)型數(shù)據(jù)的輸入用戶輸入小數(shù)時(shí),缺少整數(shù)部分或小數(shù)部分的浮點(diǎn)數(shù)也可正確識別,如.8或2.被識別成了0.8和2.0。浮點(diǎn)型數(shù)據(jù)的輸出輸出時(shí),格式字符f、e或E不同。格式字符f以一般形式輸出浮點(diǎn)型數(shù)據(jù),且默認(rèn)小數(shù)點(diǎn)后有6位。格式字符e或E以規(guī)范的指數(shù)形式輸出浮點(diǎn)型數(shù)據(jù),兩者不同之處在于是用e還是用E分隔小數(shù)部分和指數(shù)部分。規(guī)范的指數(shù)形式中,小數(shù)部分的絕對值大于0小于10;指數(shù)部分與編譯程序相關(guān)。VC6.0中,指數(shù)2會輸出成+002。例2-8浮點(diǎn)型數(shù)據(jù)的輸出變量fa的輸出結(jié)果是123.789001,其小數(shù)點(diǎn)后第6位是1,與單精度的精度至少是6位或7位不矛盾。浮點(diǎn)型的精度是指規(guī)范指數(shù)形式中小數(shù)部分的精度??刂聘↑c(diǎn)型數(shù)據(jù)輸出中小數(shù)點(diǎn)后面的位數(shù)在%和格式字符f、e或E之間插入.n形式的修飾符,其中n為正整數(shù),輸出時(shí)小數(shù)點(diǎn)后面會有n位,第n+1位四舍五入。123.789對應(yīng)格式字符串"%.1f"的輸出為123.8,小數(shù)點(diǎn)后第2位四舍五入。盡管可以輸出浮點(diǎn)型數(shù)據(jù)全部的小數(shù)部分,但超出精度的小數(shù)部分沒有實(shí)際意義。思考題計(jì)算機(jī)中0.1×6的積一定是0.6嗎?字符型字符C語言中的字符是指英文字符,包括英文字母、數(shù)字、標(biāo)點(diǎn)符號、運(yùn)算符號(+,-,*,/)等。編碼字符時(shí)會對字符排序編號,編號的編碼就是字符的編碼。如字符0的編號是48,則48就是字符0的編碼,48號字符就是字符0。C語言中字符用ASCII碼。ASCII碼表中字符編碼從0至127,共編碼了128個(gè)字符。字符型長度1個(gè)字節(jié)。關(guān)鍵字char定義字符型變量用關(guān)鍵字char。語句chara;就定義了一個(gè)字符型變量a,長度為1個(gè)字節(jié)。語句a='a';把字母a存入字符型變量a中。C語言語句中的單個(gè)字母應(yīng)理解為變量名或函數(shù)名,因此,字符型字面量需加一對單撇號予以區(qū)分。語句a=a;把變量a的值賦給變量a;語句a='a';把字母a存入變量a中。字符型變量的值語句a='a';執(zhí)行后,字符型變量a的值就是字母a,但由字符型編碼規(guī)則可知,變量a存儲的是字符a的編碼(編號)。查表可知字母a的編碼是97,變量a實(shí)際上存儲的是整數(shù)97,但由于變量a是字符型,故變量a的值是97號字符,即字母a。語句charcb='A';執(zhí)行后,字符型變量cb的值就是字母A。查表可知,字母A編碼是65,因此,字符型變量cb的值是65號字符,即字母A。不必記字符的編碼,字符型變量a的值是字母a,而非其編號。例2-11比較語句shorti=9;和語句charc='9';。短整型變量i,兩個(gè)字節(jié),值是整數(shù)9。字符型變量c,一個(gè)字節(jié),值是字符9。i*10就是9*10,值為90。c*10為'9'*10,盡管執(zhí)行時(shí)會用字符9的編碼(57)乘10,但由于字符作乘法沒有實(shí)際意義,且結(jié)果也不是90,因此,這個(gè)表達(dá)式有邏輯錯(cuò)誤。例2-12字符型變量ca中存儲了一個(gè)大字字母,怎么將其轉(zhuǎn)換為小寫字母呢?若ca中存儲了'A',則需將其轉(zhuǎn)換為'a'。查表可知,'A'的編號65,'a'的編號97,大小寫字母轉(zhuǎn)換其實(shí)就是將ca的存儲狀態(tài)由65變成97,即由65號字符變成97號字符,所以用語句ca=ca+32;就可以完成轉(zhuǎn)換。由于每個(gè)大寫字母的編碼比其小寫字母的小32,因此,無論變量ca中存儲了哪個(gè)大字字母,語句ca=ca+32;都可將其轉(zhuǎn)換為小字字母。字符型變量的值是字符,但實(shí)際存儲了字符的編號,可以進(jìn)行算術(shù)運(yùn)算,需強(qiáng)調(diào)的是字符參與算術(shù)運(yùn)算時(shí)一定要有實(shí)際意義。編碼形式的字符型字面量可以直接使用編碼表示字符。用編碼表示字符時(shí),編碼須為八進(jìn)制形式或以x開頭的十六進(jìn)制形式,并以反斜杠\開頭。語句charca='\10';把字符型變量ca初始化為8號字符。(010=1×8+0=8)字符型字面量'\x30'是48號字符,即字符0。(0x30=3×16+0=48)ca=
'0';也可寫為ca='\x30';,但前者的可讀性顯然更好。字符型字面量'\0'是0號字符。轉(zhuǎn)義序列用編碼直接表示字符,既難記,可讀性又差。對那些經(jīng)常使用但又只能用編碼表示的字符,可以用第1章講到的轉(zhuǎn)義序列表示。序列含義ASCII碼等價(jià)形式\b退格,將輸入輸出光標(biāo)移到本行的前一列8\10(\x8)\t相當(dāng)于按下Tab鍵,將輸入輸出光標(biāo)移到下一個(gè)第8*n+1列9\11(\x9)\n換行,將輸入輸出光標(biāo)移到下一行的第一列10\12(\xa)\r回車,將輸入輸出光標(biāo)移到本行的第一列13\15(\xd)\'單撇號(')39\47(\x27)\"雙撇號(")34\42(\x22)\\反斜杠(\)92\134(\x5c)字符串C語言中用一對雙撇號界定字符串。由七個(gè)字符'9'、'
'、'A'、'\''、'\12'、'*'和'\\'組成的字符串可寫作"9A\'\12*\\"或"9A'\12*\\"。printf函數(shù)只是輸出一個(gè)字符串。如語句printf("3+5=%d\n",3+5);執(zhí)行時(shí)會得到一個(gè)字符串"3+5=8\n",然后printf函數(shù)依次輸出每個(gè)字符。字符和字符串是字面量,而非C語言中用于標(biāo)識存儲單元或函數(shù)的標(biāo)識符。思考題分析下面語句或表達(dá)式的作用。
(1)ca=ca–'a'+'A';字符型變量ca中存儲了一個(gè)小寫字母
(2)('9'-'0')*10+('8'-'0')(1)ca–'a'求出了變量ca中的小寫字母與字母'a'的偏移量,再加上'A'即可得到對應(yīng)的大寫字母。'c'–'a'的值是2,2+'A'即是'C'。將字符型變量ca中的小寫字母轉(zhuǎn)換為大寫字母。(2)('9'-'0')*10中'9'-'0'得到了兩個(gè)字符的偏移量,即整數(shù)9,再乘10,結(jié)果是90。由字符'9''8'得到整數(shù)98。
字符型的輸入輸出字符型數(shù)據(jù)的輸出與字符型數(shù)據(jù)對應(yīng)的格式字符是c。charca='9';,則語句printf("%c",ca);的輸出結(jié)果是9。語句printf("%c",'A');的輸出結(jié)果是A。stdio.h中的庫函數(shù)putchar可用于單個(gè)字符的輸出。上面兩條輸出語句可改寫為putchar(ca);和putchar('A');。輸出字符的編碼利用格式字符d可以輸出字符的編碼。語句printf("%d",'0');的輸出結(jié)果是48,即字符0是48號字符。printf("%d",'\n');的輸出結(jié)果為10,即VC6.0中與回車鍵對應(yīng)的是10號字符。printf("%c",'\n');的輸出結(jié)果相當(dāng)于按下回車鍵。字符型數(shù)據(jù)的輸入對于格式字符c,用戶按下的任意一個(gè)鍵都是有效的輸入。語句scanf("%c",&ca);可以把用戶輸入的一個(gè)字符存入變量ca中。當(dāng)用戶直接按下回車鍵時(shí),字符型變量ca的值是'\n',即10號字符。例2-13輸入“Ze↙”時(shí),分析程序的運(yùn)行結(jié)果stdio.h中的庫函數(shù)getchar利用getchar函數(shù)可以獲得用戶輸入的一個(gè)字符。語句scanf("%c",&ca);可用語句ca=getchar();代替。與scanf函數(shù)一樣,getchar函數(shù)也從輸入緩沖區(qū)中讀取數(shù)據(jù),且用戶按下的任意一個(gè)鍵都是有效的輸入。例2-15getchar函數(shù)的用法用戶輸入Zzj↙時(shí),分析程序的運(yùn)行結(jié)果。思考題討論:怎樣理解計(jì)算機(jī)通過字符型與用戶交互?請用戶輸入兩個(gè)整數(shù)時(shí),用戶輸入2332↙,其實(shí)用戶只是輸出了一串字符"2332\n"。語句scanf("%d%d",&a,&b);執(zhí)行時(shí),scanf函數(shù)匹配字符,將字符轉(zhuǎn)化為整數(shù)。輸出結(jié)果時(shí),語句printf("和為%d",c);執(zhí)行時(shí),printf函數(shù)先得到字符串"和為55",再在屏幕上顯示每個(gè)字符。用戶看到后,會認(rèn)為和是整數(shù)55。字符到整數(shù)'9'-'0';整數(shù)到字符9+'0'。再談printf函數(shù)printf函數(shù)printf函數(shù)常見的調(diào)用方式為:printf(格式字符串,輸出列表);printf函數(shù)的作用是將由格式字符串產(chǎn)生的“輸出字符串”在指定的輸出設(shè)備上顯示。格式字符串由三類字符(串)組成:普通字符、轉(zhuǎn)義序列和占位序列。普通字符和轉(zhuǎn)義序列對應(yīng)的字符會直接作為輸出字符串的一部分;占位序列則需要把輸出列表中的值轉(zhuǎn)換為相應(yīng)的字符串后才能作為輸出字符串的一部分。占位序列占位序列的組成:%[修飾標(biāo)記][域?qū)抅[.精度][長度修飾符]格式字符。方括號中的部分可選,但可選項(xiàng)的次序是固定的。長度修飾符指l(long)和h(short)。long型、unsignedlong型和double型數(shù)據(jù)需要長度修飾符l,如ld、lu和lf。.精度可用.n形式表示,其中n為正整數(shù),多用于浮點(diǎn)型數(shù)據(jù),輸出時(shí)小數(shù)點(diǎn)后面會有n位,第n+1位四舍五入。域?qū)捄托揎棙?biāo)記域?qū)捒捎胢表示,m為一個(gè)正整數(shù),限定了輸出結(jié)果所占的最小寬度,即輸出的字符至少有m列。當(dāng)寬度不足m列時(shí),需用填充字符(默認(rèn)為空格)湊夠m列。在輸出的左側(cè)填充空格時(shí)稱為右對齊;在輸出的右側(cè)填充空格時(shí)稱為左對齊。默認(rèn)是右對齊。當(dāng)修飾標(biāo)記為負(fù)號(-)時(shí),是左對齊。當(dāng)修飾標(biāo)記為0時(shí),填充字符就會由空格變?yōu)?。例2-16已知floatf=123.0;intj=123;,分析下面語句的輸出結(jié)果。printf("%11.2e\n",f);printf("%11.2f\n",f);printf("%-11.2e\n",f);printf("%-11.2f\n",f);printf("%11d\n",j);printf("%-11d\n",j); printf("%-1d\n",j);思考題了解第13章數(shù)字化信息編碼中字形碼的知識。字庫中存儲了所有字符的字形碼。輸出字符的過程可簡述為:先由字符編碼找到字庫中對應(yīng)的字形碼,再根據(jù)字形碼將屏幕上的像素設(shè)置成不同的顏色。典型例題輸入為5x↙時(shí),分析變量i和ca的值。scanf函數(shù)第一次執(zhí)行時(shí)輸入緩沖區(qū)為空,程序暫停運(yùn)行,等待用戶輸入。scanf函數(shù)識別整數(shù)時(shí)遇到空格結(jié)束,變量i的值為5,但并沒有取走空格。當(dāng)再次識別字符時(shí),scanf函數(shù)直接取走空格作為變量ca的值。當(dāng)用戶輸入5↙時(shí),分析程序的運(yùn)行過程。例2-18倒序輸出用戶輸入的一個(gè)三位正整數(shù),如用戶輸入123,程序輸出321??稍O(shè)計(jì)如下的算法。第一步:提示用戶輸入一個(gè)三位的正整數(shù);第二步:用short型變量n保存用戶的輸入;第三步:求出變量n的倒序數(shù);第四步:輸出倒序數(shù)。
第一次第二次第三次
用戶可能的輸入123230523n程序預(yù)期的輸出32132325?怎樣求變量i的倒序數(shù)?求出變量i百位上,十位上和個(gè)位上的數(shù),然后在顯示器上輸出倒序數(shù)。設(shè)變量n百位上,十位上和個(gè)位上的數(shù)分別是1,2和3,則語句printf("%d",3*100+2*10+1);輸出了倒序數(shù)。語句printf("%d%d%d",3,2,1);也輸出了倒序數(shù)。怎樣求變量i百位上,十位上和個(gè)位上的數(shù)?可以借助算術(shù)運(yùn)算,比如n%10的值就是個(gè)位上的數(shù)。不用算術(shù)運(yùn)算可以嗎?換一種思路看到提示信息“請輸入一個(gè)三位的正整數(shù)”后,若用戶輸入了123↙。從用戶的角度看,輸入了個(gè)三位的正整數(shù)123,但輸入緩沖區(qū)中只是1,2,3,↙四個(gè)字符。若用scanf("%d",&n);,即用%d識別用戶的輸入,則整型變量n的值就是整數(shù)123;若用scanf("%c%c%c",&a,&b,&c);,即用%c識別用戶的輸入,則字符型變量a,b,c的值就是字符1,2和3。例2-18倒序輸出用戶輸入的一個(gè)三位正整數(shù),如用戶輸入123,程序輸出321。新的算法如下。第一步:提示用戶輸入一個(gè)三位的正整數(shù);第二步:獲得用戶輸入的三個(gè)字符;第三步:倒序輸出三個(gè)字符輸入和輸出
第一次第二次第三次變量用戶可能的輸入123230523cb,cs,cg程序預(yù)期的輸出32132325?分析下面的程序思考題當(dāng)用戶輸入230時(shí),程序的輸出為032,怎樣改進(jìn)算法,使得程序的輸出為32?第3章表達(dá)式新概念C語言能力教程(第2版)第3章表達(dá)式01表達(dá)式概述02賦值表達(dá)式03算術(shù)表達(dá)式04強(qiáng)制類型轉(zhuǎn)換及自增自減05逗號表達(dá)式06典型例題表達(dá)式概述表達(dá)式表達(dá)式由操作符和操作數(shù)兩部分組成。操作符是C語言命令。操作數(shù)是操作符命令作用的對象。操作數(shù)可以是變量、字面量和有返回值的函數(shù)調(diào)用。根據(jù)操作數(shù)的個(gè)數(shù),操作符分為單目操作符、雙目操作符和三目操作符。單目操作符如取地址操作符&,&a,求相反數(shù)操作符-,-a等;雙目操作符較常見,如加法操作符+,a+b等。三目操作符只有一個(gè)。根據(jù)功能,操作符分為賦值操作符、算術(shù)操作符、邏輯操作符等。優(yōu)先級操作符名
稱分
類結(jié)合性1()圓括號
左結(jié)合[]下標(biāo)運(yùn)算操作符下標(biāo)->指向結(jié)構(gòu)體成員操作符分量.結(jié)構(gòu)體成員操作符2!邏輯非操作符邏輯單目操作符右結(jié)合~按位取反操作符位++自增操作符
--自減操作符
-負(fù)號操作符
(類型)強(qiáng)制類型轉(zhuǎn)換操作符
*間接引用操作符指針&取地址操作符sizeof求內(nèi)存字節(jié)數(shù)操作符
3*乘法操作符算術(shù)雙目左結(jié)合/除法操作符%求余操作符4+加法操作符算術(shù)雙目左結(jié)合-減法操作符5<<
左移操作符位雙目左結(jié)合>>
右移操作符6<
小于操作符關(guān)系雙目左結(jié)合<=小于等于操作符>
大于操作符>=大于等于操作符7==等于操作符關(guān)系雙目左結(jié)合!=不等于操作符8&按位與操作符位雙目左結(jié)合9^按位異或操作符位雙目左結(jié)合10|按位或操作符位雙目左結(jié)合11&&邏輯與操作符邏輯雙目左結(jié)合12||邏輯或操作符邏輯雙目左結(jié)合13?:條件操作符條件三目右結(jié)合14=+=-=*=/=%=>>=<<=&=^=|=賦值操作符賦值雙目右結(jié)合15,逗號操作符逗號雙目左結(jié)合每個(gè)表達(dá)式都有值按照求值規(guī)則執(zhí)行表達(dá)式中的操作符,最終得到的結(jié)果就是表達(dá)式的值。執(zhí)行表達(dá)式的過程就是對表達(dá)式求值的過程。表達(dá)式求值的兩條主要規(guī)則是優(yōu)先級高的操作符先執(zhí)行和優(yōu)先級相同的相鄰操作符根據(jù)結(jié)合性確定執(zhí)行順序。表達(dá)式的求值規(guī)則與四則混合運(yùn)算的規(guī)則類似。“先乘除,后加減”與優(yōu)先級有關(guān)?!爸挥屑訙p或乘除時(shí),從左到右依次計(jì)算”與結(jié)合性有關(guān)。求表達(dá)式3-2/5的值表達(dá)式3-2/5中有減法-和除法/兩個(gè)操作符,除法/的優(yōu)先級高先執(zhí)行。除法/的操作數(shù)是2和5,子表達(dá)式2/5先求值。2/5的值是0,int型。原表達(dá)式變?yōu)?–0,值為3,int。故原表達(dá)式的值為3,int。圓括號的優(yōu)先級最高,可以用加圓括號的方式明確表達(dá)式的求值順序,如表達(dá)式3-2/5的求值順序?yàn)?3-(2/5))。表達(dá)式3-2/5中減法操作符的兩個(gè)操作數(shù)是3和2/5的結(jié)果。表達(dá)式3/2*2的求值表達(dá)式中除法/和乘法*的優(yōu)先級相同,結(jié)合性為左結(jié)合,求值順序?yàn)閺淖蟮接乙来螆?zhí)行操作符。3/2*2?1*2?2,int型。表達(dá)式3/2*2的求值順序?yàn)?(3/2)*2)右結(jié)合操作符是左結(jié)合時(shí),左邊的操作符先執(zhí)行;是右結(jié)合時(shí),右邊的操作符先執(zhí)行。常見的操作符都是左結(jié)合。當(dāng)賦值操作符=為左結(jié)合時(shí),表達(dá)式a=b=c=23的求值順序是(((a=b)=c)=23)。
當(dāng)賦值操作符=為右結(jié)合時(shí),表達(dá)式a=b=c=23的求值順序是(a=(b=(c=23)))。例3-1查表并用加圓括號的方式確定下面表達(dá)式的求值順序。i=j=k=23求值順序?yàn)?i=(j=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手貨物交易合同樣本
- 個(gè)人對個(gè)人貸款合同樣本參考
- XX區(qū)青少年活動中心建設(shè)項(xiàng)目合同
- 專項(xiàng)建筑企業(yè)流動資金貸款合同
- 個(gè)人間借款合同格式及條款解析
- 中外貿(mào)易合作合同條款
- 產(chǎn)品試用合同范本
- VI設(shè)計(jì)合同模板及條款范例
- 二手車買賣正式合同書模板
- 個(gè)人與貸款公司借款合同細(xì)則
- 2024年安徽省中考數(shù)學(xué)試卷含答案
- 2024年湖南省公務(wù)員錄用考試《行測》真題及答案解析
- 心尖球形綜合征
- DBJT 13-460-2024 既有多層住宅建筑增設(shè)電梯工程技術(shù)標(biāo)準(zhǔn)
- 中國證監(jiān)會證券市場交易結(jié)算資金監(jiān)控系統(tǒng)證券公司接口規(guī)范
- 2025屆天津市部分學(xué)校高三年級八校聯(lián)考英語試題含解析
- 微項(xiàng)目 探討如何利用工業(yè)廢氣中的二氧化碳合成甲醇-2025年高考化學(xué)選擇性必修第一冊(魯科版)
- 廣東省廣州市黃埔區(qū)2024-2025學(xué)年八年級物理上學(xué)期教學(xué)質(zhì)量監(jiān)測試題
- 水產(chǎn)品冷凍加工原料處理與加工技術(shù)考核試卷
- 全新保密協(xié)議模板公安下載(2024版)
- 財(cái)務(wù)管理學(xué)(第10版)課件 第1章 總論
評論
0/150
提交評論