版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
CompanyLogo教材、參考書與課時(shí)安排參考書1、全國計(jì)算機(jī)等級考試二級教程—C語言程序設(shè)計(jì)
教育部考試中心高等教育出版社2、二級C語言高頻考題導(dǎo)航南開大學(xué)出版社3、C語言真題分析與實(shí)戰(zhàn)訓(xùn)練清華大學(xué)出版社課時(shí)安排授課:28學(xué)時(shí)往年考題講解:4學(xué)時(shí)第一頁,共807頁。第一頁,共807頁。CompanyLogo考試大綱◆基本要求
1.熟悉VisualC++6.0集成開發(fā)環(huán)境。
2.掌握結(jié)構(gòu)化程序設(shè)計(jì)的方法,具有良好的程序設(shè)計(jì)風(fēng)格。
3.掌握程序設(shè)計(jì)中簡單的數(shù)據(jù)結(jié)構(gòu)和算法并能閱讀簡單的程序。
4.在VisualC++6.0集成環(huán)境下,能夠編寫簡單的C程序,并具有基本的糾錯(cuò)和調(diào)試程序的能力第二頁,共807頁。第二頁,共807頁。CompanyLogo目錄1.程序設(shè)計(jì)基本概念2.C程序設(shè)計(jì)的初步知識3.順序結(jié)構(gòu)4.選擇結(jié)構(gòu)5.循環(huán)結(jié)構(gòu)6.字符型數(shù)據(jù)7.函數(shù)8.地址和指針9.數(shù)組10.字符串11.對函數(shù)的進(jìn)一步討論12.用戶標(biāo)識符的作用域和存儲類13.編譯預(yù)處理和動(dòng)態(tài)存儲分配14.結(jié)構(gòu)體、共用體和用戶定義類型15.位運(yùn)算16.文件第三頁,共807頁。第三頁,共807頁。CompanyLogo第1章程序設(shè)計(jì)基本概念Top1:各種“程序”的概念Top3:結(jié)構(gòu)化程序設(shè)計(jì)Top2:算法的特性C程序的上機(jī)步驟第四頁,共807頁。第四頁,共807頁。CompanyLogo什么是程序??Top1:各種“程序”的概念人們把需要用計(jì)算機(jī)完成的工作寫成一條條指令,并把這些指令存儲在內(nèi)存中,當(dāng)人們給出執(zhí)行命令后,計(jì)算機(jī)就按指令順序自動(dòng)進(jìn)行操作。這些可以連續(xù)執(zhí)行的一條條指令的集合稱為“程序”。第五頁,共807頁。第五頁,共807頁。CompanyLogo機(jī)器語言匯編語言高級語言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加
10010000減用助記符號描述的指令系統(tǒng)如ADDA,B程序設(shè)計(jì)是數(shù)據(jù)被加工的過程客觀世界可以分類,對象是類的實(shí)例對象是數(shù)據(jù)和方法的封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類,并由類派生對象程序設(shè)計(jì)語言的發(fā)展Top1:各種“程序”的概念第六頁,共807頁。第六頁,共807頁。CompanyLogo程序的“轉(zhuǎn)換”機(jī)器語言匯編語言高級語言C語言編譯匯編源程序目標(biāo)程序.OBJTop1:各種“程序”的概念可執(zhí)行程序.exe鏈接二進(jìn)制語言第七頁,共807頁。第七頁,共807頁。CompanyLogoTop1:各種“程序”的概念真題分析(2007年4月)下列敘述中錯(cuò)誤的是______A、計(jì)算機(jī)不能直接執(zhí)行用C語言編寫的源程序B、C程序經(jīng)編譯后,生成后綴為.Obj的文件是一個(gè)二進(jìn)制文件C、后綴為.Obj的文件,經(jīng)連接程序生成后綴為.Exe的文件是一個(gè)二進(jìn)制文件D、后綴為.Obj和.Exe的二進(jìn)制文件都可以直接運(yùn)行D第八頁,共807頁。第八頁,共807頁。CompanyLogoTop1:各種“程序”的概念真題分析(2006年4月)以下敘述中錯(cuò)誤的是______A、C語言源程序經(jīng)編譯后生成后綴為.OBJ的目標(biāo)程序B、C程序經(jīng)過編譯、連接步驟之后才能形成一個(gè)真正可以執(zhí)行的二進(jìn)制機(jī)器指令文件C、用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中D、C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將轉(zhuǎn)換成二進(jìn)制的機(jī)器指令D只有二進(jìn)制語句才最終被轉(zhuǎn)換成二進(jìn)制機(jī)器指令第九頁,共807頁。第九頁,共807頁。CompanyLogoTop1:各種“程序”的概念真題分析(2008年9月)計(jì)算機(jī)能直接執(zhí)行的程序是____A、源程序B、目標(biāo)程序C、匯編程序D、可執(zhí)行程序D第十頁,共807頁。第十頁,共807頁。CompanyLogoTop1:各種“程序”的概念真題分析(2007年9月)C語言源程序的后綴是_____A、.exeB、.cC、.objD、.cpB第十一頁,共807頁。第十一頁,共807頁。CompanyLogoTop1:各種“程序”的概念真題分析(2006年9月)以下說明中正確的是_____A、C語言比其它語言高級B、C語言可以不用編譯就能被計(jì)算機(jī)執(zhí)行C、C語言以接近英語和數(shù)學(xué)言語作為語言的表達(dá)式D、C語言出現(xiàn)最晚,具有其它語言的一切優(yōu)點(diǎn)C第十二頁,共807頁。第十二頁,共807頁。CompanyLogoTop1:各種“程序”的概念真題分析(2011年3月)計(jì)算機(jī)高級語言程序的運(yùn)行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的是_____(選擇題第11題)A)C語言程序僅可以編譯執(zhí)行B)C語言程序僅可以解釋執(zhí)行C)C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D)以上說法都不對C第十三頁,共807頁。第十三頁,共807頁。CompanyLogoTop1:各種“程序”的概念真題分析(2011年3月)以下敘述中錯(cuò)誤的是_____(選擇題第12題)A)C語言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的B)用C語言編寫的源程序不能直接在計(jì)算機(jī)上運(yùn)行C)通過編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行D)在沒有安裝C語言集成開發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的.exe文件D第十四頁,共807頁。第十四頁,共807頁。CompanyLogoTop1:各種“程序”的概念練習(xí)題1、以下敘述中正確的是_____A、C語言的源程序不必通過編譯就可以直接運(yùn)行B、C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令C、C程序經(jīng)編譯形成的二進(jìn)制代碼可直接執(zhí)行D、C語言中的函數(shù)不可以單獨(dú)進(jìn)行編譯B第十五頁,共807頁。第十五頁,共807頁。CompanyLogoTop2:算法的特性什么是算法?算法是指為解決某個(gè)特定問題而采取的確定且有限的步驟。?第十六頁,共807頁。第十六頁,共807頁。CompanyLogo算法應(yīng)具有以下五個(gè)特點(diǎn):1有窮性:一個(gè)算法包含的步驟是有限的。即在若干個(gè)步驟后結(jié)束,并且每一步都在合理時(shí)間內(nèi)完成2確定性:算法中每一條指令必須有確切的含義,不能有二義性,對于相同的輸入必能得出相同的執(zhí)行結(jié)果。3可行性:算法中指定的操作,都可以通過已經(jīng)驗(yàn)證可以實(shí)現(xiàn)的基本運(yùn)算執(zhí)行有限次后實(shí)現(xiàn)。5有一個(gè)或多個(gè)輸出:算法的目的是為了求解。這些“解”只有通過輸出得到。4有零個(gè)或多個(gè)輸入:算法都是用來處理數(shù)據(jù)對象的,通常情況下這些數(shù)據(jù)對象需要通過輸入來得到。Top2:算法的特性第十七頁,共807頁。第十七頁,共807頁。CompanyLogo如何評價(jià)算法??時(shí)間復(fù)雜度1空間復(fù)雜度2對算法的要求有:必須是正確的,必須能高效率執(zhí)行,即占用內(nèi)存空間少,所需運(yùn)行時(shí)間短。于是,對算法的評價(jià)可以從兩個(gè)方面進(jìn)行:Top2:算法的特性第十八頁,共807頁。第十八頁,共807頁。CompanyLogoTop2:算法的特性真題分析(2007年4月)算法中,對需要執(zhí)行的每一步驟操作,必須給出清楚、嚴(yán)格的規(guī)定,這屬于算法的是_____A、正當(dāng)性B、可行性C、確定性D、有窮性C第十九頁,共807頁。第十九頁,共807頁。CompanyLogoTop2:算法的特性真題分析(2006年4月)以下敘述中錯(cuò)誤的是_____A、算法正確的程序最終一定會(huì)結(jié)束B、算法正確的程序可以有零個(gè)輸出C、算法正確的程序可以有零個(gè)輸入D、算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果B算法必須有一個(gè)或多個(gè)輸出第二十頁,共807頁。第二十頁,共807頁。CompanyLogoTop2:算法的特性練習(xí)題1、一個(gè)算法應(yīng)該具有“確定性”等5個(gè)特性,下面對另外4個(gè)特性的描述中錯(cuò)誤的是_____A、有零個(gè)或多個(gè)輸入B、有零個(gè)或多個(gè)輸出C、有窮性D、可行性B第二十一頁,共807頁。第二十一頁,共807頁。CompanyLogoTop3:結(jié)構(gòu)化程序設(shè)計(jì)和模塊化結(jié)構(gòu)執(zhí)行時(shí)按順序逐條執(zhí)行,沒有分支,沒有轉(zhuǎn)移??捎少x值語句、輸入/輸出語句等構(gòu)成。順序結(jié)構(gòu)根據(jù)不同的條件執(zhí)行不同分支中的語句。可由if語句、switch語句等構(gòu)成。選擇結(jié)構(gòu)根據(jù)各自的條件使一組語句重復(fù)執(zhí)行多次或一次也不執(zhí)行。可由for語句、while語句等構(gòu)成。循環(huán)結(jié)構(gòu)第二十二頁,共807頁。第二十二頁,共807頁。CompanyLogo什么是模塊化結(jié)構(gòu)??將復(fù)雜任務(wù)分解成若干個(gè)子任務(wù),每個(gè)子任務(wù)又可分解成多個(gè)小子任務(wù),每個(gè)小子任務(wù)只需完成一個(gè)簡單的功能。在程序設(shè)計(jì)時(shí)用一個(gè)小模塊實(shí)現(xiàn)這些功能。稱這樣的程序設(shè)計(jì)方法為“模塊化”方法,由一個(gè)個(gè)功能模塊構(gòu)成的程序結(jié)構(gòu)為模塊化結(jié)構(gòu)。Top3:結(jié)構(gòu)化程序設(shè)計(jì)和模塊化結(jié)構(gòu)第二十三頁,共807頁。第二十三頁,共807頁。CompanyLogoTop3:結(jié)構(gòu)化程序設(shè)計(jì)和模塊化結(jié)構(gòu)真題分析(2007年4月)以下敘述中錯(cuò)誤的是_____A、C語言是一種結(jié)構(gòu)化的程序設(shè)計(jì)語言B、結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成C、使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題D、結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法C第二十四頁,共807頁。第二十四頁,共807頁。CompanyLogoTop3:結(jié)構(gòu)化程序設(shè)計(jì)和模塊化結(jié)構(gòu)真題分析(2011年9月)以下選項(xiàng)中關(guān)于程序模塊化的敘述錯(cuò)誤的是____。(選擇題12題)A)把程序分成若干相對獨(dú)立的模塊,便于編碼和調(diào)試B)把程序分成若干相對獨(dú)立、功能單一的模塊,可便于重復(fù)使用這些模塊C)可采用自底向上、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序D)可采用自頂向下、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序C第二十五頁,共807頁。第二十五頁,共807頁。CompanyLogo開始結(jié)束編輯編譯連接運(yùn)行運(yùn)行結(jié)果可執(zhí)行文件(.exe)源程序文件(.c)目標(biāo)文件(.obj)圖C程序上機(jī)調(diào)試過程此兩種代碼不能執(zhí)行C程序的上機(jī)步驟第二十六頁,共807頁。第二十六頁,共807頁。CompanyLogo第2章C程序設(shè)計(jì)的初步知識Top4:C程序的結(jié)構(gòu)和格式Top5:標(biāo)識符的命名規(guī)則Top6:C語言基本數(shù)據(jù)類型及其定義規(guī)則Top7:基本類型數(shù)據(jù)的相互轉(zhuǎn)換Top8:常見算術(shù)運(yùn)算符的使用Top9:算術(shù)運(yùn)算符的優(yōu)先級順序Top12:自加自減運(yùn)算符Top10:賦值表達(dá)式的求值規(guī)則Top11:逗號表達(dá)式的求值規(guī)則第二十七頁,共807頁。第二十七頁,共807頁。CompanyLogo例2.1第一個(gè)程序Hello,World!/*example1.1ThefirstCProgram*/#include<stdio.h>main(){printf(“Hello,World!”);}注釋編譯預(yù)處理函數(shù)語句輸出:Hello,World!Top4:C語言程序的構(gòu)成和格式第二十八頁,共807頁。第二十八頁,共807頁。CompanyLogo例2.2/*example1.1calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){inta,b,sum;
a=10;b=24;sum=add(a,b);printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/intadd(intx,inty){intz;z=x+y;return(z);}運(yùn)行結(jié)果:sum=34函數(shù)語句預(yù)處理命令注釋第二十九頁,共807頁。第二十九頁,共807頁。CompanyLogo格式特點(diǎn)習(xí)慣用小寫字母,大小寫敏感不使用行號,無程序行概念可使用空行和空格常用鋸齒形書寫格式<>main(){
……………….………………
…………..…………..
……………….
………………………….
……………….………………..}main(){
inti,j,sum;sum=0;for(i=1;i<10;i++){for(j=1;j<10;j++){sum+=i*j;}}printf(“%d\n”,sum);}優(yōu)秀程序員的素質(zhì)之一:使用TAB縮進(jìn){}對齊有足夠的注釋有合適的空行Top4:C語言程序的構(gòu)成和格式第三十頁,共807頁。第三十頁,共807頁。CompanyLogo結(jié)構(gòu)特點(diǎn)函數(shù)與主函數(shù)程序由一個(gè)或多個(gè)函數(shù)組成必須有且只能有一個(gè)主函數(shù)main()程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。程序語句C程序由語句組成用“;”作為語句終止符注釋/**/為注釋,不能嵌套不產(chǎn)生編譯代碼例:/*Thisisthemain/*ofexample1.1*/*/非法編譯預(yù)處理命令Top4:C語言程序的構(gòu)成和格式例:#include“stdio.h”命令行,不是C語句第三十一頁,共807頁。第三十一頁,共807頁。CompanyLogo真題分析(2011年9月)以上敘述中錯(cuò)誤的是____(選擇題11題)。A)C語言編寫的函數(shù)源程序,其文件名后綴可以是CB)C語言編寫的函數(shù)都可以作為一個(gè)獨(dú)立的源程序文件C)C語言編寫的每個(gè)函數(shù)都可以進(jìn)行獨(dú)立的編譯并執(zhí)行D)一個(gè)C語言程序只能有一個(gè)主函數(shù)Top4:C語言程序的構(gòu)成和格式C第三十二頁,共807頁。第三十二頁,共807頁。CompanyLogo真題分析(2007年4月)對于一個(gè)正常運(yùn)行的C程序,以下敘述中正確的是_____A、程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束B、程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在main函數(shù)中結(jié)束C、程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束。D、程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束。Top4:C語言程序的構(gòu)成和格式A第三十三頁,共807頁。第三十三頁,共807頁。CompanyLogoTop4:C語言程序的構(gòu)成和格式真題分析(2005年9月)以下關(guān)于函數(shù)的敘述中正確的是_____A、每個(gè)函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))B、每個(gè)函數(shù)都可以被單獨(dú)編譯C、每個(gè)函數(shù)都可以單獨(dú)運(yùn)行D、在一個(gè)函數(shù)內(nèi)部可以定義另一個(gè)函數(shù)B第三十四頁,共807頁。第三十四頁,共807頁。CompanyLogoTop4:C語言程序的構(gòu)成和格式真題分析(2007年9月)以下敘述中正確的是_____A、C語言程序?qū)脑闯绦蛑械谝粋€(gè)函數(shù)開始執(zhí)行B、可以在程序中由用戶指定任意一個(gè)函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行C、C語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行,在此結(jié)束D、main可作為用戶標(biāo)識符,用以命名任意一個(gè)函數(shù)作為主函數(shù)C第三十五頁,共807頁。第三十五頁,共807頁。CompanyLogoTop4:C語言程序的構(gòu)成和格式真題分析(2008年9月)以下敘述中正確的是_____A、C程序的基本組成單位是語句B、C程序中每一行只能寫一條語句C、簡單C語句必須以分號結(jié)束D、C語句必須在一行內(nèi)寫完C第三十六頁,共807頁。第三十六頁,共807頁。CompanyLogoTop4:C語言程序的構(gòu)成和格式練習(xí)題1、在一個(gè)程序中,_____A、main函數(shù)必須出現(xiàn)在所有函數(shù)之前B、main函數(shù)可以在任何地方出現(xiàn)C、main函數(shù)必須出現(xiàn)在所有函數(shù)之后D、main函數(shù)必須出現(xiàn)在固定位置B第三十七頁,共807頁。第三十七頁,共807頁。CompanyLogoTop5:標(biāo)識符的命名規(guī)則什么是標(biāo)識符??標(biāo)識符是用來標(biāo)識變量、符號常量、函數(shù)、數(shù)組、類型、標(biāo)號以及一些具有專門含義的有效字符序列。通俗地講,標(biāo)識符就是一個(gè)名字。第三十八頁,共807頁。第三十八頁,共807頁。CompanyLogo標(biāo)識分為三類:②預(yù)定義標(biāo)識符③用戶標(biāo)識符①關(guān)鍵字(1)數(shù)據(jù)類型關(guān)鍵字12個(gè)(2)控制語句關(guān)鍵字12個(gè)(3)存儲類型關(guān)鍵字4個(gè)(4)其它關(guān)鍵字4個(gè)一般指C語言提供的庫函數(shù)名和編譯預(yù)處理命令。在編程時(shí),需要用戶給一些變量、函數(shù)、數(shù)組等命名,這類由用戶根據(jù)需要自定義的標(biāo)識符稱為用戶標(biāo)識符Top5:標(biāo)識符的命名規(guī)則第三十九頁,共807頁。第三十九頁,共807頁。CompanyLogo組成:只能由字母、數(shù)字、下劃線組成,且第一個(gè)字母必須是字母或下劃線大小寫敏感不能使用關(guān)鍵字長度:最長32個(gè)字符命名原則:見名知意不宜混淆如l與I,o與0例:判斷下列標(biāo)識符號合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3chara>b_above$1233days#33char$123a>b如何命名標(biāo)識符??第四十頁,共807頁。第四十頁,共807頁。CompanyLogo真題分析(2006年9月)下列定義變量的語句中錯(cuò)誤的是_____A、int_int;B、doubleint_;C、charFor;D、floatUS$;Top5:標(biāo)識符的命名規(guī)則D第四十一頁,共807頁。第四十一頁,共807頁。CompanyLogoTop5:標(biāo)識符的命名規(guī)則真題分析(2005年9月)以下敘述中錯(cuò)誤的是_____A、用戶所定義的標(biāo)識符允許使用關(guān)鍵字B、用戶所定義的標(biāo)識符應(yīng)盡量做到“見名知意”C、用戶所定義的標(biāo)識符必須以字母或下劃線開頭D、用戶定義的標(biāo)識符中大、小寫字母代表不同標(biāo)識A第四十二頁,共807頁。第四十二頁,共807頁。CompanyLogoTop5:標(biāo)識符的命名規(guī)則真題分析(2006年4月)下列不合法的用戶標(biāo)識符是____A、j2_KEYB、DoubleC、4dD、_8_C第四十三頁,共807頁。第四十三頁,共807頁。CompanyLogoTop5:標(biāo)識符的命名規(guī)則真題分析(2007年4月)按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是:_____A、大寫字母B、連接符C、數(shù)字字符D、下劃線B第四十四頁,共807頁。第四十四頁,共807頁。CompanyLogoTop5:標(biāo)識符的命名規(guī)則真題分析(2007年9月)可在C程序中用做用戶標(biāo)識符的一組標(biāo)識符是_____A第四十五頁,共807頁。第四十五頁,共807頁。CompanyLogoTop5:標(biāo)識符的命名規(guī)則真題分析(2008年4月)以下選項(xiàng)中不合法的標(biāo)識符是_____A、printB、FORC、&aD、_00C第四十六頁,共807頁。第四十六頁,共807頁。Top5:標(biāo)識符的命名規(guī)則真題分析(2009年4月)以下選項(xiàng)中合法的標(biāo)識符是____A)1_1B)1-1C)_11D)1__CompanyLogoC第四十七頁,共807頁。第四十七頁,共807頁。CompanyLogo一般用大寫字母是宏定義預(yù)處理命令,不是C語句直接常量:整型常量實(shí)型常量字符常量字符串常量如#definePRICE30常量定義:程序運(yùn)行時(shí)其值不能改變的量(即常數(shù))分類:符號常量:用標(biāo)識符代表常量定義格式:#define
符號常量常量>>>>例符號常量舉例#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf("total=%d",total);}運(yùn)行結(jié)果:total=300Top6:C語言基本數(shù)據(jù)類型及其定義規(guī)則第四十八頁,共807頁。第四十八頁,共807頁。CompanyLogo整型常量(整常數(shù))三種形式:十進(jìn)制整數(shù):由數(shù)字0~9和正負(fù)號表示.如123,-456,0八進(jìn)制整數(shù):由數(shù)字0開頭,后跟數(shù)字0~7表示.如0123,011十六進(jìn)制整數(shù):由0x開頭,后跟0~9,a~f,A~F表示.如0x123,0Xff問題:0123=()100x123=()100Xff=()1083291255問題:0123=()100x123=()100Xff=()10Top6:C語言基本數(shù)據(jù)類型及其定義規(guī)則第四十九頁,共807頁。第四十九頁,共807頁。CompanyLogo數(shù)制基權(quán)表示數(shù)碼特點(diǎn)10o,101,102,…十進(jìn)制數(shù)0~910逢十進(jìn)一二進(jìn)制數(shù)0~122o,21,22,…逢二進(jìn)一八進(jìn)制數(shù)0~788o,81,82,…逢八進(jìn)一十六進(jìn)制數(shù)0~9,A~F,a~f1616o,161,162,…逢十六進(jìn)一十進(jìn)制:4956=4103+9102+5101+610o二進(jìn)制:1011=123+022+121+12o十六進(jìn)制:81AE=8163+1162+10161+1416o八進(jìn)制:4275=483+282+781+58oTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則第五十頁,共807頁。第五十頁,共807頁。CompanyLogo整型常量的類型根據(jù)其值所在范圍確定其數(shù)據(jù)類型在整常量后加字母l或L,認(rèn)為它是longint
型常量整型常量(整常數(shù))三種形式:十進(jìn)制整數(shù):由數(shù)字0~9和正負(fù)號表示.如123,-456,0八進(jìn)制整數(shù):由數(shù)字0開頭,后跟數(shù)字0~7表示.如0123,011十六進(jìn)制整數(shù):由0x開頭,后跟0~9,a~f,A~F表示.如0x123,0Xff例30000為int型65536為longint型例12與12LTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則32767-32768
0
0120160x100X23FD0568o45ox12t-0X12只能是正數(shù)第五十一頁,共807頁。第五十一頁,共807頁。CompanyLogo整數(shù)在內(nèi)存中的存儲形式7654321000000000000001011111111111111111FF01FF02FF03FF04+5-11111111111111111FF05FF0665535Top6:C語言基本數(shù)據(jù)類型及其定義規(guī)則第五十二頁,共807頁。第五十二頁,共807頁。CompanyLogo實(shí)型常量(實(shí)數(shù)或浮點(diǎn)數(shù))表示形式:十進(jìn)制數(shù)形式:(必須有小數(shù)點(diǎn))如0.123,.123,123.0,0.0,123.指數(shù)形式:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))如12.3e3,123E2,1.23e4,e-5,實(shí)型常量的類型默認(rèn)double型在實(shí)型常量后加字母f或F,認(rèn)為它是float型Top6:C語言基本數(shù)據(jù)類型及其定義規(guī)則X在內(nèi)存中,實(shí)數(shù)一律是以指數(shù)形式存儲的1計(jì)算機(jī)中存儲整數(shù)不會(huì)出現(xiàn)誤差,存儲實(shí)型數(shù)往往存入誤差。2!注意:第五十三頁,共807頁。第五十三頁,共807頁。CompanyLogo54字符常量定義:用單引號括起來的單個(gè)普通字符或轉(zhuǎn)義字符.
字符常量的值:該字符的ASCII碼值<轉(zhuǎn)義字符及其含義:轉(zhuǎn)義字符含義\n\v\r\a\‘\ddd\t\b\f\\\“\xhh轉(zhuǎn)義字符含義換行垂直制表回車響鈴單引號3位8進(jìn)制數(shù)代表的字符水平制表退格換頁反斜線雙引號2位16進(jìn)制數(shù)代表的字符如‘\101’-----------‘A’‘\012’-----------’\n’‘\376’-----------’’‘\x61’-----------’a’‘\60’-----------’0’‘\483’----------()例:‘A’-------’\101’-------’\x41’--------65如‘A’——65,‘a(chǎn)’——97,
‘0’——48,‘\n’——10如‘a(chǎn)’‘A’‘?’‘\n’‘\101’轉(zhuǎn)義字符:反斜線后面跟一個(gè)字符或一個(gè)代碼值表示例轉(zhuǎn)義字符舉例
main(){printf("\101\x42C\n");printf("Isay:\"Howareyou?\"\n");printf("\\CProgram\\\n");printf("Turbo\'C\'");}運(yùn)行結(jié)果:(屏幕顯示)ABCIsay:”Howareyou?”\CProgram\Turbo‘C’Top6:C語言基本數(shù)據(jù)類型及其定義規(guī)則第五十四頁,共807頁。第五十四頁,共807頁。CompanyLogo字符常量與字符串常量不同字符串常量定義:用雙引號(“”)括起來的字符序列存儲:每個(gè)字符串尾自動(dòng)加一個(gè)‘\0’作為字符串結(jié)束標(biāo)志hello\0例字符串“hello”在內(nèi)存中aa\0例‘a(chǎn)’“a”例空串“”\0例:charch;ch=“A”;例:charch;ch=‘A’;Top6:C語言基本數(shù)據(jù)類型及其定義規(guī)則第五十五頁,共807頁。第五十五頁,共807頁。CompanyLogo編譯程序根據(jù)變量定義為其分配指定字節(jié)的內(nèi)存單元…...地址inta=1,b=-3,c;abc2字節(jié)2字節(jié)2字節(jié)地址地址…...內(nèi)存1-3隨機(jī)數(shù)變量概念:其值可以改變的量變量的定義變量初始化:定義時(shí)賦初值例:inta,b,c;floatdata;例:inta=2,b,c=4;floatdata=3.67;charch=‘A’;intx=1,y=1,z=1;
intx=y=z=1;變量的使用:先定義,后使用例1intstudent;stadent=19;//Undefinedsymbol‘statent’infunctionmain
例2floata,b,c;c=a%b;//Illegaluseoffloatingpointinfunctionmain
變量定義位置:一般放在函數(shù)開頭main(){inta,b=2;floatdata;a=1;data=(a+b)*1.2;printf(“data=%f\n”,data);}變量定義可執(zhí)行語句main(){inta,b=2;a=1;floatdata;data=(a+b)*1.2;printf(“data=%f\n”,data);}Top6:C語言基本數(shù)據(jù)類型及其定義規(guī)則第五十六頁,共807頁。第五十六頁,共807頁。CompanyLogo整型變量占字節(jié)數(shù)隨機(jī)器不同而不同,一般占一個(gè)機(jī)器字short≤int≤long可用sizeof(類型標(biāo)識符)測量實(shí)型變量float:占4字節(jié),提供7位有效數(shù)字double:占8字節(jié),提供15~16位有效數(shù)字字符型變量字符變量存放字符ASCII碼char與int數(shù)據(jù)間可進(jìn)行算術(shù)運(yùn)算例floata;a=111111.111;/*a=111111.1*/doubleb;b=111111.111;/*b=111111.111*/例a=‘D’;/*a=68;*/x=‘A’+5;/*x=65+5;*/s=‘!’+‘G’/*s=33+71;*/沒有字符串變量,用字符數(shù)組存放Top6:C語言基本數(shù)據(jù)類型及其定義規(guī)則第五十七頁,共807頁。第五十七頁,共807頁。CompanyLogoTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則真題分析(2007年4月)有以下程序,其中%u表示按無符號整數(shù)輸出,程序運(yùn)行后的輸出結(jié)果是:_____#include“stdio.h”main(){unsignedintx=oxFFFF;/*x的初值為16進(jìn)制數(shù)*/printf(“%u\n”,x);}-1A.65535B.32767C.D.0xFFFFB第五十八頁,共807頁。第五十八頁,共807頁。CompanyLogoTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則真題分析(2006年4月)下列不合法的數(shù)值常量是_____A、011B、1e1C、D、0xabcdC第五十九頁,共807頁。第五十九頁,共807頁。CompanyLogoTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則真題分析(2005年9月)以下程序運(yùn)行后的輸出結(jié)果是_____
main(){intx=0210;printf("%X\n",x);}0210010八進(jìn)制數(shù)001000000880二進(jìn)制數(shù)88第六十頁,共807頁。第六十頁,共807頁。mpanyLogoTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則真題分析(2011年3月)以下選項(xiàng)中不能用作C程序合法常量的是_____(選擇題13題)A)1.234B)'123'C)123D)"\x7G"B第六十一頁,共807頁。第六十一頁,共807頁。mpanyLogoTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則真題分析(2011年3月)以下選項(xiàng)中可用作C程序合法實(shí)數(shù)的是____(選擇題14題)A).1e0C)E9D)9.12EA第六十二頁,共807頁。第六十二頁,共807頁。mpanyLogoTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則真題分析(2011年9月)以下選項(xiàng)中關(guān)于C語言常量的敘述錯(cuò)誤的是___(選擇題13題)A)所謂常量,是指在程序運(yùn)行過程中,其值不能被改變的量B)常量分為整型常量、實(shí)型常量、字符常量和字符串常量C)常量可分為數(shù)值型常量和非數(shù)值型常量D)經(jīng)常被使用的變量可以定義成常量D常量是指在程序中不變的量,既然程序中已定義為變量,則不可能再定義為常量第六十三頁,共807頁。第六十三頁,共807頁。CompanyLogoTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則練習(xí)題1、以下選項(xiàng)中,不能作為合法常量的是____A、1.234e04B、C、1.234e+4D、1.234e0B第六十四頁,共807頁。第六十四頁,共807頁。CompanyLogoTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則練習(xí)題2、以下選項(xiàng)中,可作為C語言合法整數(shù)的是_____A、1011BB、0386C、0xffaD、x2a2C第六十五頁,共807頁。第六十五頁,共807頁。CompanyLogo隱式轉(zhuǎn)換什么情況下發(fā)生運(yùn)算轉(zhuǎn)換-----不同類型數(shù)據(jù)混合運(yùn)算時(shí)賦值轉(zhuǎn)換----把一個(gè)值賦給與其類型不同的變量時(shí)輸出轉(zhuǎn)換------輸出時(shí)轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換------實(shí)參與形參類型不一致時(shí)轉(zhuǎn)換運(yùn)算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)運(yùn)算時(shí)先自動(dòng)轉(zhuǎn)換成同一類型Top7:基本數(shù)據(jù)類型間的轉(zhuǎn)換第六十六頁,共807頁。第六十六頁,共807頁。CompanyLogodoublefloatlongunsignedintchar,short低高說明:必定的轉(zhuǎn)換運(yùn)算對象類型不同時(shí)轉(zhuǎn)換例charch;inti;floatf;doubled;ch/i+f*d-(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+‘a(chǎn)’+i*f-d/l例inti;floatf;doubled;longl;第六十七頁,共807頁。第六十七頁,共807頁。CompanyLogo顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換)一般形式:(類型名)(表達(dá)式)例(int)(x+y)(int)x+y(double)(3/2)(int)3.6說明:強(qiáng)制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變例main(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}結(jié)果:x=3.600000,i=3精度損失問題較高類型向較低類型轉(zhuǎn)換時(shí)可能發(fā)生Top7:基本數(shù)據(jù)類型間的轉(zhuǎn)換第六十八頁,共807頁。第六十八頁,共807頁。CompanyLogo真題分析(2006年9月)以下選項(xiàng)中值為1的表達(dá)式是_____A、1-'0'B、1-'\0'C、'1'-0D、'\0'-'0'Top7:基本數(shù)據(jù)類型間的轉(zhuǎn)換1是整型,’0’、’\0’、’1’都是字符型?!?’換成整型的ASCII碼值為48,’1’為49‘\0’是轉(zhuǎn)義字符,表示0或空。B第六十九頁,共807頁。第六十九頁,共807頁。CompanyLogo真題分析(2006年9月)設(shè)有定義:floatx=123.4567;,則執(zhí)行下列語句printf("%f\n",(int)(x*100+0.5)/100.0);
后的輸出結(jié)果是_________Top7:基本數(shù)據(jù)類型間的轉(zhuǎn)換(int)(x*100+0.5)/100.0(x*100+0.5)(123.4567*100+0.5)12345.67+0.512346.17int12346100.0123.46123.460000第七十頁,共807頁。第七十頁,共807頁。CompanyLogo真題分析(2005年9月)設(shè)有定義:intk=1,m=2;floatf=7;則下列選項(xiàng)中錯(cuò)誤的表達(dá)式是_______A、k=k>=kB、-k++C、k%int(f)D、k>=f>=mTop7:基本數(shù)據(jù)類型間的轉(zhuǎn)換C%(求余運(yùn)算符)的兩邊都必須是整型。f為float型,需要強(qiáng)制轉(zhuǎn)換為int型。正確的寫法為(int)f而不是int(f)第七十一頁,共807頁。第七十一頁,共807頁。CompanyLogo真題分析(2005年9月)已經(jīng)字母A的ASCII碼為65。以下程序運(yùn)行后的輸出結(jié)果為_______main(){chara,b;a='A'+'5'-'3';b=a+'6'-'2';printf("%d%c\n",a,b);}Top7:基本數(shù)據(jù)類型間的轉(zhuǎn)換dca='A'+'5'-'3';a=‘C’67b=a+‘6'-‘2';a=67+4G67G第七十二頁,共807頁。第七十二頁,共807頁。Top7:基本數(shù)據(jù)類型間的轉(zhuǎn)換真題分析(2011年9月)若有定義語句:inta=10;doubleb=3.14;,則表達(dá)式‘A’+a+b值的類型是_____。(選擇題14題)A).charB)intC)doubleD)floatCompanyLogoC第七十三頁,共807頁。第七十三頁,共807頁。CompanyLogo練習(xí)題1、以下程序運(yùn)行后的輸出結(jié)果是__________main(){inta,b,c;a=25;b=025;c=0x25;printf(“%d%d%d\n”,a,b,c);}Top7:基本數(shù)據(jù)類型間的轉(zhuǎn)換0252*81+5*80210x252*161+5*16037252137第七十四頁,共807頁。第七十四頁,共807頁。CompanyLogoC運(yùn)算符算術(shù)運(yùn)算符:(+-*/%++--)關(guān)系運(yùn)算符:(<<===>>=!=)邏輯運(yùn)算符:(!&&||)位運(yùn)算符:(<<>>~|^&)賦值運(yùn)算符:(=及其擴(kuò)展)條件運(yùn)算符:(?:)逗號運(yùn)算符:(,)指針運(yùn)算符:(*&)求字節(jié)數(shù):(sizeof)強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:(.->)下標(biāo)運(yùn)算符:([])其它:(()-)Top8:常見算術(shù)運(yùn)算符的使用第七十五頁,共807頁。第七十五頁,共807頁。CompanyLogo學(xué)習(xí)運(yùn)算符應(yīng)注意:運(yùn)算符功能與運(yùn)算量關(guān)系要求運(yùn)算量個(gè)數(shù)要求運(yùn)算量類型運(yùn)算符優(yōu)先級別結(jié)合方向結(jié)果的類型Top8:常見算術(shù)運(yùn)算符的使用第七十六頁,共807頁。第七十六頁,共807頁。CompanyLogoTop8:常見算術(shù)運(yùn)算符的使用知識點(diǎn)1、基本的算術(shù)運(yùn)算符有:+、-(減法/取負(fù))
、*、/、%(取余數(shù))2、關(guān)于除法運(yùn)算/C語言規(guī)定:兩個(gè)整數(shù)相除,其商為整數(shù),小數(shù)部分被舍棄。例5/2=-5/2.0=例5/2=2
-5/2.0=-2.53、關(guān)于求余數(shù)運(yùn)算%
要求兩側(cè)的操作數(shù)均為整型數(shù)據(jù),否則出錯(cuò)。例5%2=-5%2=1%10=
5%1=5.5%2例5%2=1
-5%2=-11%10=
1
5%1=
05.5%2()第七十七頁,共807頁。第七十七頁,共807頁。CompanyLogo4、關(guān)于兩邊運(yùn)算數(shù)類型不一致系統(tǒng)將自動(dòng)進(jìn)行轉(zhuǎn)換,使兩邊一致后再進(jìn)行運(yùn)算。5、所有實(shí)型數(shù)的運(yùn)算均以雙精度方式進(jìn)行,若是單精度,則在尾數(shù)部分添0,轉(zhuǎn)換為雙精度。Top8:常見算術(shù)運(yùn)算符的使用6、算術(shù)表達(dá)式的概念(1)表達(dá)式的概念用運(yùn)算符和括號將運(yùn)算對象(常量、變量和函數(shù)等)連接起來的、符合C語言語法規(guī)則的式子,稱為表達(dá)式。(2)算術(shù)表達(dá)式的概念表達(dá)式中的運(yùn)算符都是算術(shù)運(yùn)算符。例如:3+6*9、(x+y)/2-1等,都是算術(shù)表達(dá)式。第七十八頁,共807頁。第七十八頁,共807頁。CompanyLogoTop8:常見算術(shù)運(yùn)算符的使用7、強(qiáng)制類型轉(zhuǎn)換表達(dá)式轉(zhuǎn)換格式為:
(要轉(zhuǎn)換成的數(shù)據(jù)類型)(被轉(zhuǎn)換的表達(dá)式)(double)a等價(jià)于(double)(a))(int)(x+y) (float)5/2等價(jià)于(float)(5)/2(float)(5/2) 注意:強(qiáng)制轉(zhuǎn)換類型得到的是一個(gè)所需類型的中間量,原表達(dá)式類型并不發(fā)生變化。例如,(double)a只是將變量a的值轉(zhuǎn)換成一個(gè)double型的中間量,其數(shù)據(jù)類型并未轉(zhuǎn)換成double型。 第七十九頁,共807頁。第七十九頁,共807頁。Top8:常見算術(shù)運(yùn)算符的使用真題分析(2011年9月)若有定義語句:intx=12,y=8,z;在其后執(zhí)行語句z=0.9+x/y;則z的值為___________。(選擇題15題)A)1.9B)1C)2D)2.4CompanyLogoB“/”為整除運(yùn)算符,兩邊的運(yùn)算對象都為整數(shù)時(shí),運(yùn)算結(jié)果為整型。Z為整型,所以最終結(jié)果為整數(shù)。第八十頁,共807頁。第八十頁,共807頁。CompanyLogoTop8:常見算術(shù)運(yùn)算符的使用真題分析(2007年4月)以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),數(shù)為0的表達(dá)式為______A、x%2==1B、x/2C、x%2!=0D、x%2==0D%(求余運(yùn)算符)的兩邊都必須是整型。大于1的奇數(shù)除以2,余數(shù)必為1。表達(dá)式成立時(shí),整個(gè)表達(dá)式邏輯值為1表達(dá)式不成立時(shí),整個(gè)表達(dá)式邏輯值為0。第八十一頁,共807頁。第八十一頁,共807頁。Top8:常見算術(shù)運(yùn)算符的使用真題分析(2011年3月)以下程序運(yùn)行后的輸出結(jié)果是_____(填空題第6題)。#includemain(){inta;a=(int)((double)(3/2)+0.5+(int)1.99*2);printf("%d\n",a);}CompanyLogo3第八十二頁,共807頁。第八十二頁,共807頁。CompanyLogoTop8:常見算術(shù)運(yùn)算符的使用練習(xí)題1、設(shè)變量x為float型且已經(jīng)賦值,則以下語句中能將x中的數(shù)值保留到小數(shù)點(diǎn)后兩位,并將第三位四舍五入的是______A、x=x*100+0.5/100.0B、x=(x*100+0.5)/100.0C、x=(int)(x*100+0.5)/100.0D、x=(x/100+0.5)*100.0C第八十三頁,共807頁。第八十三頁,共807頁。CompanyLogoTop8:常見算術(shù)運(yùn)算符的使用練習(xí)題2、若有語句inti=-19,j=i%4;printf(“%d\n”,j);則輸出結(jié)果是_______-3第八十四頁,共807頁。第八十四頁,共807頁。CompanyLogo1、算術(shù)運(yùn)算符的優(yōu)先級()+-
*/
%+-單目雙目高低Top9:算術(shù)運(yùn)算符的優(yōu)先級順序2、算術(shù)運(yùn)算符和圓括號的結(jié)合性所謂結(jié)合性是指,當(dāng)一個(gè)操作數(shù)兩側(cè)的運(yùn)算符具有相同的優(yōu)先級時(shí),該操作數(shù)是先與左邊的運(yùn)算符結(jié)合,還是先與右邊的運(yùn)算符結(jié)合。自左至右的結(jié)合方向,稱為左結(jié)合性。反之,稱為右結(jié)合性。結(jié)合性是C語言的獨(dú)有概念。除單目運(yùn)算符、賦值運(yùn)算符和條件運(yùn)算符是右結(jié)合性外,其它運(yùn)算符都是左結(jié)合性。例如,算術(shù)運(yùn)算符的結(jié)合方向是“自左至右”,即:在執(zhí)行“a–b+c”時(shí),變量b先與減號結(jié)合,執(zhí)行“a-b”;然后再執(zhí)行加c的運(yùn)算。第八十五頁,共807頁。第八十五頁,共807頁。CompanyLogoTop9:算術(shù)運(yùn)算符的優(yōu)先級順序真題分析(2006年4月)表達(dá)式3.6-5/2+1.2+5%2的值是___A、4.3B、4.8C、3.3D、3.83.6-5/2+1.2+5%221.62.813.8D第八十六頁,共807頁。第八十六頁,共807頁。CompanyLogoTop9:算術(shù)運(yùn)算符的優(yōu)先級順序真題分析(2005年9月)下列不能正確計(jì)算代數(shù)式sin2(1/2)/3值的C語言表達(dá)式是____1/3*sin(1/2)*sin(1/2)A.sin(0.5)*sin(0.5)/3B.pow(sin(0.5),2)/3C.1/3.0*pow(sin(1.0/2),2)D.1/3*sin(0)*sin(0)0.0766160.000000A第八十七頁,共807頁。第八十七頁,共807頁。CompanyLogoTop9:算術(shù)運(yùn)算符的優(yōu)先級順序練習(xí)題1、設(shè)有定義:floata=2,b=4,h=3;以下C語言表達(dá)式與代數(shù)式計(jì)算結(jié)果不相符的是______A、(a+b)*h/2B、(1/2)*(a+b)*hC、(a+b)*h*1/2D、h/2*(a+b)B第八十八頁,共807頁。第八十八頁,共807頁。CompanyLogo賦值運(yùn)算1賦值符號“=”就是賦值運(yùn)算符,它的作用是將一個(gè)表達(dá)式的值賦給一個(gè)變量。賦值運(yùn)算符的一般形式為:如果表達(dá)式值的類型,與被賦值變量的類型不一致,但都是數(shù)值型或字符型時(shí),系統(tǒng)自動(dòng)地將表達(dá)式的值轉(zhuǎn)換成被賦值變量的數(shù)據(jù)類型,然后再賦值給變量.例a=3;d=func();c=d+2;b=a;Top10:賦值表達(dá)式的求值規(guī)則變量=賦值表達(dá)式
第八十九頁,共807頁。第八十九頁,共807頁。CompanyLogo幾點(diǎn)說明:(1)賦值運(yùn)算符的優(yōu)先級只高于逗號運(yùn)算符,比其它的運(yùn)算符優(yōu)先級都低,且具有自右向左的結(jié)合性。 如:a=2+7/3(2)賦值運(yùn)算符不是數(shù)學(xué)中的“等于號”,而是進(jìn)行“賦予”操作。(3)表達(dá)式x=y讀作“將y的值賦給變量x”而不讀作”x等于y“(4)賦值運(yùn)算符左邊只能是變量,不能是常量或是表達(dá)式。如a+b=c就是錯(cuò)誤的。(5)賦值運(yùn)算符右邊也可以是賦值表達(dá)式。如a=b=7+1,而a=7+1=b則是錯(cuò)誤的。(6)”=“視作運(yùn)算符,a=19是一個(gè)表達(dá)式,C語言規(guī)定最左邊變量中所得到的新值就是賦值表達(dá)式的值。Top10:賦值表達(dá)式的求值規(guī)則第九十頁,共807頁。第九十頁,共807頁。CompanyLogo復(fù)合賦值表達(dá)式2復(fù)合賦值運(yùn)算符是由賦值運(yùn)算符之前再加一個(gè)雙目運(yùn)算符構(gòu)成的。復(fù)合賦值運(yùn)算的一般格式為:變量雙目運(yùn)算符=表達(dá)式└──┬──┘復(fù)合賦值運(yùn)算符等價(jià)于:變量
=變量雙目運(yùn)算符(表達(dá)式)。當(dāng)表達(dá)式為簡單表達(dá)式時(shí),表達(dá)式外的一對圓括號才可缺省,否則可能出錯(cuò)。例:x+=3x=x+3y*=x+6 y=y*(x+6)Top10:賦值表達(dá)式的求值規(guī)則第九十一頁,共807頁。第九十一頁,共807頁。CompanyLogo說明:結(jié)合方向:自右向左左側(cè)必須是變量,不能是常量或表達(dá)式賦值表達(dá)式的值與變量值相等,且可嵌套賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達(dá)式值自動(dòng)轉(zhuǎn)換成其左邊變量的類型例3=x-2*y;a+b=3;例
floatf;inti;i=10;f=i;則
f=10.0例inti;i=2.56;//結(jié)果i=2;例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)//表達(dá)式值為5,a,b,c值為5//b=5;a=5//表達(dá)式值11,c=6,a=11//表達(dá)式值10,a=10,b=4,c=6//表達(dá)式值5,a=5,b=10,c=2Top10:賦值表達(dá)式的求值規(guī)則X第九十二頁,共807頁。第九十二頁,共807頁。CompanyLogo思考2:
a=12;a+=a-=a*a思考3:inta=2;a%=4-1;a+=a*=a-=a*=3;//a=-264等價(jià)于a=a+(a=a-(a*a))//a=0等價(jià)于a=a+(a=a*(a=a-(a=a*3)))思考1:已有變量a,其值為9,計(jì)算表達(dá)式a+=a-=a+a(1)a+a=9+9,表達(dá)式的值為18,但是a的值不變,仍為9(2)a=a-18,表達(dá)式的值為-9,a的值變?yōu)椋?。(3)a=a+a,表達(dá)式的值為-18,a的值為-18Top10:賦值表達(dá)式的求值規(guī)則第九十三頁,共807頁。第九十三頁,共807頁。CompanyLogo賦值運(yùn)算中的類型轉(zhuǎn)換3在C語言的賦值表達(dá)式中,賦值號右邊的值先轉(zhuǎn)換成與左邊的變量相同的類型,然后進(jìn)行賦值。注意:(1)當(dāng)賦值號左邊的變量為短整型,右邊的值為長整型時(shí),短整型變量只能接受長整型數(shù)據(jù)低位上的兩個(gè)字節(jié)的數(shù)據(jù),高位上的數(shù)據(jù)將丟失。也就是說,右邊的值不能超過短整型的數(shù)值范圍。Top10:賦值表達(dá)式的求值規(guī)則第九十四頁,共807頁。第九十四頁,共807頁。CompanyLogo例:shorta;unsignedlongb;b=98304;a=b;printf(“%d\n”,a);00000000000000011000000000000000高16位低16位結(jié)果Top10:賦值表達(dá)式的求值規(guī)則第九十五頁,共807頁。第九十五頁,共807頁。CompanyLogo(2)當(dāng)賦值號左邊的變量為無符號整型,右邊的值為有符號整型時(shí),則把內(nèi)存中的內(nèi)容原樣復(fù)制。右邊數(shù)據(jù)的范圍不應(yīng)超出左邊變量可以接受的數(shù)據(jù)范圍。同時(shí)要注意,這時(shí)負(fù)數(shù)將轉(zhuǎn)換為正數(shù)。例:unsigneda;a=-1;printf(“%d\n”,a);1111111111111111-1的補(bǔ)碼結(jié)果=65535Top10:賦值表達(dá)式的求值規(guī)則第九十六頁,共807頁。第九十六頁,共807頁。CompanyLogo(3)當(dāng)賦值號左邊的變量為有符號整型,右邊的值為無符號整型時(shí),復(fù)制的機(jī)制同上,這時(shí),若符號位為1,將按負(fù)數(shù)處理。例:inta;unsignedb;a=b;printf(“%d\n”,a);1000000000000000結(jié)果=-32786Top10:賦值表達(dá)式的求值規(guī)則第九十七頁,共807頁。第九十七頁,共807頁。CompanyLogoTop10:賦值表達(dá)式的求值規(guī)則真題分析(2006年4月)以下敘述中錯(cuò)誤的是_____A、C程序中的#include和#define均不是C語句B、除逗號運(yùn)算符外,賦值運(yùn)算符的優(yōu)先級最低C、C程序中,j++;是賦值語句D、C程序中,+、-、*、/、%是算術(shù)運(yùn)算符,可用于整型和實(shí)型數(shù)的運(yùn)算。D第九十八頁,共807頁。第九十八頁,共807頁。CompanyLogoTop10:賦值表達(dá)式的求值規(guī)則真題分析(2005年9月)下列能正確定義且賦初值的語句是_____A、intnl=n2=10;B、charc=32;C、floatf=f+1.1;D、doublex=12.3E2.5;C語言規(guī)定,變量必須先定義,后使用。A、C錯(cuò)誤。A如果寫成:intn1,n2;對待n1=n2=10;則正確C如果寫成:floatf;f=f+1.1;則正確選項(xiàng)D中,E后面必須為整數(shù),不能是實(shí)數(shù)。B第九十九頁,共807頁。第九十九頁,共807頁。CompanyLogoTop10:賦值表達(dá)式的求值規(guī)則真題分析(2006年9月)若變量x、y已正確定義并賦值,下列符合C語言語法的表達(dá)式是_____A、++x,y=x--B、x+1=yC、x=x+10=x+yD、double(x)/10A賦值表達(dá)式的左邊必須是變量,不能是常量或表達(dá)式。所以B,C錯(cuò)誤。D選項(xiàng)中,強(qiáng)制類型轉(zhuǎn)換應(yīng)該寫成:(double)x/10第一百頁,共807頁。第一百頁,共807頁。CompanyLogoTop10:賦值表達(dá)式的求值規(guī)則真題分析(2011年3月)若有定義語句:inta=3,b=2,c=1;,以下選項(xiàng)中錯(cuò)誤的賦值表達(dá)式是______(選擇題15題)A)a=(b=4)=3;B)a=b=c+1;C)a=(b=4)+c;D)a=1+(b=c=4);A賦值運(yùn)算符左邊只能是變量,不能是常量或是表達(dá)式第一百零一頁,共807頁。第一百零一頁,共807頁。CompanyLogoTop10:賦值表達(dá)式的求值規(guī)則練習(xí)題1、以下選項(xiàng)中,非法的表達(dá)式是______A、0<=x<100B、i=j==0C、(char)(65+3)D、x+1=x+1D第一百零二頁,共807頁。第一百零二頁,共807頁。CompanyLogoTop11逗號表達(dá)式的運(yùn)算規(guī)則形式:表達(dá)式1,表達(dá)式2,……表達(dá)式n結(jié)合性:從左向右優(yōu)先級:所有運(yùn)算符中,逗號運(yùn)算符優(yōu)先級最低逗號表達(dá)式的值:等于表達(dá)式n的值用途:常用于循環(huán)for語句中例a=3*5,a*4a=3*5,a*4,a+5例x=(a=3,6*3)x=a=3,6*a例a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);//a=15,表達(dá)式值60//a=15,表達(dá)式值20//賦值表達(dá)式,表達(dá)式值18,x=18//逗號表達(dá)式,表達(dá)式值18,x=3//1,2,3//3,2,3第一百零三頁,共807頁。第一百零三頁,共807頁。CompanyLogo例:#include<stdio.h>main(){intx,y=7;floatz=4;x=(y=y+6,y/z);printf("x=%d\n",x);}運(yùn)行結(jié)果:x=3形式:表達(dá)式1,表達(dá)式2,……表達(dá)式n結(jié)合性:從左向右優(yōu)先級:所有運(yùn)算符中,逗號運(yùn)算符優(yōu)先級最低逗號表達(dá)式的值:等于表達(dá)式n的值用途:常用于循環(huán)for語句中Top11逗號表達(dá)式的運(yùn)算規(guī)則第一百零四頁,共807頁。第一百零四頁,共807頁。CompanyLogoTop11逗號表達(dá)式的運(yùn)算規(guī)則考點(diǎn)逗號運(yùn)算符的結(jié)合性為從左到右,先計(jì)算表達(dá)式1,最后計(jì)算表達(dá)式n,最后一個(gè)表達(dá)式的值即為該逗號表達(dá)式的值。逗號運(yùn)算符在所有運(yùn)算符中,優(yōu)先級最低。第一百零五頁,共807頁。第一百零五頁,共807頁。CompanyLogoTop11逗號表達(dá)式的運(yùn)算規(guī)則真題分析(2007年4月)執(zhí)行以下程序后的輸出結(jié)果是_____main(){ inta=10;
a=(3*5,a+4); printf("a=%d\n",a);}
a=(3*5,a+4);①15②10+41414第一百零六頁,共807頁。第一百零六頁,共807頁。CompanyLogoTop11逗號表達(dá)式的運(yùn)算規(guī)則真題分析(2005年9月)有以下程序,main(){chara1='M',a2='m';printf(“%c\n”,(a1,a2));}則下列說法正確的是_____A、程序輸出大寫字母MB、程序輸出小寫字母mC、格式說明符不足,編譯出錯(cuò)D、程序運(yùn)行時(shí)產(chǎn)生出錯(cuò)信息B第一百零七頁,共807頁。第一百零七頁,共807頁。CompanyLogoTop11逗號表達(dá)式的運(yùn)算規(guī)則練習(xí)題1、有如下程序,運(yùn)行該程序的輸出結(jié)果是_____main(){inty=3,x=3,z=1;printf(“%d%d\n”,(++x,y++),z+2);}A、34 B、42 C、43 D、33D第一百零八頁,共807頁。第一百零八頁,共807頁。CompanyLogoTop12自加、自減運(yùn)算符自加運(yùn)算符++、自減運(yùn)算符--1i++(或i--)表示在使用該表達(dá)式值之后將i值加1(或減1)。++i(或--i)表示在使用該表達(dá)式值之前將i值加1(或減1)說明:(1)++和--僅適用于變量(整型和實(shí)型),不能用于常量或表達(dá)式。(2)++和--運(yùn)算符的結(jié)合方向是“至右向左”。例-i++-(i++)i=3;printf(“%d,%d”,-i++,i);
//-3,4例j+++k;(j++)+k;例-i++i=3;printf(“%d,%d”,-i++,i);第一百零九頁,共807頁。第一百零九頁,共807頁。CompanyLogo例自增、自減運(yùn)算符的用法與運(yùn)算規(guī)則示例。
main(){inta=100;printf(“a++=%d\n”,a++);
printf(“++a=%d\n”,++a);
printf(“a--=%d\n”,a--);
printf(“--a=%d\n”,--a);}/*輸出a++=100,a的值變?yōu)?01*/ /*輸出++a=102,a的值變?yōu)?02*/ /*輸出a--=102,a的值變?yōu)?
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《編碼理論》課件第3章
- 《人力資源匯報(bào)》課件
- 2025年云南貨運(yùn)從業(yè)資格證模擬考試題答案
- 2025福建省茶葉買賣合同(示范文本)
- 2025年周口普通貨運(yùn)從業(yè)資格證考試
- 2025年赤峰道路運(yùn)輸貨運(yùn)從業(yè)資格證考試項(xiàng)目
- 2025年東莞貨運(yùn)從業(yè)資格證繼續(xù)再教育考試答案
- 中國防滴漏器項(xiàng)目投資可行性研究報(bào)告
- 民用吊燈行業(yè)深度研究報(bào)告
- 2025工作合同(附帶)員工合同
- 《地方導(dǎo)游基礎(chǔ)知識》期末考試試卷及答案(2卷)
- 婦科腫瘤微創(chuàng)手術(shù)
- 前列腺癌2024治療指南
- 生態(tài)學(xué)概論智慧樹知到期末考試答案2024年
- 鄉(xiāng)鎮(zhèn)綜治工作業(yè)務(wù)培訓(xùn)
- 鋼管架搭設(shè)施工方案
- 2021血管壓力治療中國專家共識解讀
- 職業(yè)安全健康知識培訓(xùn)
- 兒童康復(fù)家庭指導(dǎo)培訓(xùn)課件
- 大客戶管理制度(管理經(jīng)驗(yàn))
- 學(xué)校領(lǐng)導(dǎo)迎新年詩歌朗誦稿
評論
0/150
提交評論