01
成都創(chuàng)新互聯(lián)公司-成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站營銷推廣,域名注冊,虛擬主機(jī),網(wǎng)站改版維護(hù)有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問題,請聯(lián)系成都創(chuàng)新互聯(lián)公司。
c語言入門基礎(chǔ)知識點(diǎn)有:c語言的命名;變量及賦值;基本數(shù)據(jù)類型;格式化輸出語句;強(qiáng)制類型轉(zhuǎn)換;不可改變的常量;自動(dòng)類型轉(zhuǎn)換。C語言是一種通用的、面向過程式的計(jì)算機(jī)程序設(shè)計(jì)語言。
C語言是一門面向過程的、抽象化的通用程序設(shè)計(jì)語言,廣泛應(yīng)用于底層開發(fā)。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產(chǎn)生少量的機(jī)器語言以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的高效率程序設(shè)計(jì)語言。盡管C語言提供了許多低級處理的功能,但仍然保持著跨平臺的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在包括類似嵌入式處理器以及超級計(jì)算機(jī)等作業(yè)平臺的許多計(jì)算機(jī)平臺上進(jìn)行編譯。
c語言入門基礎(chǔ)知識:
1、c語言的命名編程時(shí)給變量或者函數(shù)起的名字就是標(biāo)識符。C語言的標(biāo)識符是不可以隨便起名字的,必須遵守一定的規(guī)則。C 語言規(guī)定,標(biāo)識符可以是字母(A~Z,a~z)、數(shù)字(0~9)、下劃線_組成的字符串,并且第一個(gè)字符必須是字母或下劃線。
在使用標(biāo)識符時(shí)還有注意以下幾點(diǎn):
(1)標(biāo)識符的長度最好不要超過8位,因?yàn)樵谀承┌姹镜腃中規(guī)定標(biāo)識符前8位有效,當(dāng)兩個(gè)標(biāo)識符前8位相同時(shí),則被認(rèn)為是同一個(gè)標(biāo)識符。
(2)標(biāo)識符是嚴(yán)格區(qū)分大小寫的。例如Imooc和imooc 是兩個(gè)不同的標(biāo)識符。
(3)標(biāo)識符最好選擇有意義的英文單詞組成做到"見名知意",不要使用中文。
(4)標(biāo)識符不能是C語言的關(guān)鍵字。想了解更多C語言關(guān)鍵字的知識,請查閱WIKI。
2、變量及賦值變量就是可以變化的量,而每個(gè)變量都會(huì)有一個(gè)名字(標(biāo)識符)。變量占據(jù)內(nèi)存中一定的存儲單元。使用變量之前必須先定義變量,要區(qū)分變量名和變量值是兩個(gè)不同的概念。就好比:住在房間里的客人與房間號是兩個(gè)不同的概念。變量定義的一般形式為:數(shù)據(jù)類型 變量名;多個(gè)類型相同的變量:數(shù)據(jù)類型 變量名, 變量名, 變量名...;變量名和標(biāo)識符的命名規(guī)范完全相同。
注意:在定義中不允許連續(xù)賦值,如int a=b=c=5;是不合法的。
變量的賦值分為兩種方式:1.先聲明再賦值2.聲明的同時(shí)賦值。
3、基本數(shù)據(jù)類型C語言中的數(shù)據(jù)也是有類型的,C語言中,數(shù)據(jù)類型可分為:基本數(shù)據(jù)類型,構(gòu)造數(shù)據(jù)類型,指針類型,空類型四大類。
4、格式化輸出語句格式化輸出語句,也可以說是占位輸出,是將各種類型的數(shù)據(jù)按照格式化后的類型及指定的位置從計(jì)算機(jī)上顯示。這樣做的好處,是有利于計(jì)算機(jī)能夠準(zhǔn)確的將我們所要類型數(shù)據(jù)給我們。其格式為:printf("輸出格式符",輸出項(xiàng));
5、不可改變的常量在程序執(zhí)行過程中,值不發(fā)生改變的量稱為常量。C語言的常量可以分為直接常量和符號常量。直接常量也稱為字面量,是可以直接拿來使用,無需說明的量,比如:整型常量:13、0、-13;實(shí)型常量:13.33、-24.4;字符常量:‘a(chǎn)’、‘M’字符串常量:”I love php!”在C語言中,可以用一個(gè)標(biāo)識符來表示一個(gè)常量,稱之為符號常量。符號常量在使用之前必須先定義,其一般形式為:#define 標(biāo)識符 常量值;符號常量的標(biāo)示符一般習(xí)慣使用大寫字母,變量的標(biāo)示符一般習(xí)慣使用小寫字母,加以區(qū)分。
6、自動(dòng)類型轉(zhuǎn)換數(shù)據(jù)類型存在自動(dòng)轉(zhuǎn)換的情況,自動(dòng)轉(zhuǎn)換發(fā)生在不同數(shù)據(jù)類型運(yùn)算時(shí),在編譯的時(shí)候自動(dòng)完成。自動(dòng)轉(zhuǎn)換遵循的規(guī)則就好比小盒子可以放進(jìn)大盒子里面一樣,下圖表示了類型自動(dòng)轉(zhuǎn)換的規(guī)則。
7、強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換是通過定義類型轉(zhuǎn)換運(yùn)算來實(shí)現(xiàn)的。其一般形式為:(數(shù)據(jù)類型) (表達(dá)式);其作用是把表達(dá)式的運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成類型說明符所表示的類型。
注意:double類型的數(shù)據(jù)的格式符 %f或%lf。
計(jì)算機(jī)c語言的特性
C語言是世界上最流行、使用最廣泛的高級程序設(shè)計(jì)語言之一。在操作系統(tǒng)和系統(tǒng)使用程序以及需要對硬件進(jìn)行操作的場合,用C語言明顯優(yōu)于其它高級語言,許多大型應(yīng)用軟件都是用C語言編寫的。C語言的主要特性有以下幾種:
1、C是高級語言:它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實(shí)用性結(jié)合起來。
2、C是結(jié)構(gòu)式語言:結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。
3、C語言功能齊全:具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程序效率更高。而且計(jì)算功能、邏輯判斷功能也比較強(qiáng)大,可以實(shí)現(xiàn)決策目的的游戲。
4、C語言適用范圍大:適合于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機(jī)型。
5、C語言應(yīng)用指針:可以直接進(jìn)行靠近硬件的操作,但是C的指針操作不做保護(hù),也給它帶來了很多不安全的因素。C++在這方面做了改進(jìn),在保留了指針操作的同時(shí)又增強(qiáng)了安全性。
6、C語言創(chuàng)始人D.M.Ritchie6、C語言文件由數(shù)據(jù)序列組成:可以構(gòu)成二進(jìn)制文件或文本文件常用的C語言IDE有Microsoft Visual C++,Dev-C++,Code::Blocks,Borland C++,Watcom C++,Borland C++ Builder,GNU DJGPP C++,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc,xcode等。
計(jì)算機(jī)c語言的語法結(jié)構(gòu)
1.順序結(jié)構(gòu)
順序結(jié)構(gòu)的程序設(shè)計(jì)是最簡單的,只要按照解決問題的順序?qū)懗鱿鄳?yīng)的語句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。順序結(jié)構(gòu)可以獨(dú)立使用構(gòu)成一個(gè)簡單的完整程序,常見的輸入、計(jì)算,輸出三步曲的程序就是順序結(jié)構(gòu)。
2.選擇結(jié)構(gòu)
選擇結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴(yán)格按照語句出現(xiàn)的物理順序。選擇結(jié)構(gòu)的程序設(shè)計(jì)方法的關(guān)鍵在于構(gòu)造合適的分支條件和分析程序流程,根據(jù)不同的程序流程選擇適當(dāng)?shù)倪x擇語句。
3.循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)可以減少源程序重復(fù)書寫的工作量,用來描述重復(fù)執(zhí)行某段算法的問題,這是程序設(shè)計(jì)中最能發(fā)揮計(jì)算機(jī)特長的程序結(jié)構(gòu),C語言中提供四種循環(huán),即goto循環(huán)、while循環(huán)、do while循環(huán)和for循環(huán)。
4.模塊化程序結(jié)構(gòu)
C語言的模塊化程序結(jié)構(gòu)用函數(shù)來實(shí)現(xiàn),即將復(fù)雜的C程序分為若干模塊,每個(gè)模塊都編寫成一個(gè)C函數(shù),然后通過主函數(shù)調(diào)用函數(shù)及函數(shù)調(diào)用函數(shù)來實(shí)現(xiàn)一大型問題的C程序編寫,因此常說:C程序=主函數(shù)+子函數(shù)。因此,對函數(shù)的定義、調(diào)用、值的返回等中要尤其注重理解和應(yīng)用,并通過上機(jī)調(diào)試加以鞏固。
計(jì)算機(jī)c語言基礎(chǔ)知識
【知識點(diǎn)1】C程序
C語言程序結(jié)構(gòu)有三種: 順序結(jié)構(gòu) , 循環(huán)結(jié)構(gòu)(三個(gè)循環(huán)結(jié)構(gòu)), 選擇結(jié)構(gòu)(if 和 switch)
【知識點(diǎn)2】main函數(shù)
每個(gè)C語言程序中main 函數(shù)是有且只有一個(gè)。讀程序都要從main()入口, 然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)。
【知識點(diǎn)3】存儲形式
計(jì)算機(jī)的數(shù)據(jù)在電腦中是以二進(jìn)制的形式保存。最低的存儲單元是bit(位),位是由為 0 或者1構(gòu)成。 byte 是指字節(jié), 一個(gè)字節(jié) = 八個(gè)位。數(shù)據(jù)存放的位置就是它的地址。
【知識點(diǎn)4】注釋
是對程序的說明,可出現(xiàn)在程序中任意合適的地方,注釋從“/*”開始到最近一個(gè)“*/”結(jié)束,其間任何內(nèi)容都不會(huì)被計(jì)算機(jī)執(zhí)行,注釋不可以嵌套。
【知識點(diǎn)5】書寫格式
每條語句的后面必須有一個(gè)分號,分號是語句的一部分。一行內(nèi)可寫多條語句,一個(gè)語句可寫在多行上。
【知識點(diǎn)6】標(biāo)識符
合法的用戶標(biāo)識符考查:
合法的要求是由字母,數(shù)字,下劃線組成。有其它元素就錯(cuò)了。
并且第一個(gè)必須為字母或則是下劃線。第一個(gè)為數(shù)字就錯(cuò)了。
C語言標(biāo)識符分如下3類
(1)關(guān)鍵字。它們在程序中有固定的含義,不能另作他用。如int、for、switch等。
(2)預(yù)定義標(biāo)識符。預(yù)先定義并具有特定含義的標(biāo)識符。如define、include等。
(3)用戶標(biāo)識符。用戶根據(jù)需要定義的標(biāo)識符,符合命名規(guī)則且不與關(guān)鍵字相同。
關(guān)鍵字不可以作為用戶標(biāo)識符號。main define scanf printf 都不是關(guān)鍵字。迷惑你的地方If 是可以做為用戶標(biāo)識符。因?yàn)镮f 中的'第一個(gè)字母大寫了,所以不是關(guān)鍵字。
【知識點(diǎn)7】實(shí)型數(shù)據(jù)
實(shí)型數(shù)據(jù)的合法形式:小數(shù)形式和指數(shù)形式。掌握判定指數(shù)形式合法性。
2.333e-1 就是合法的,且數(shù)據(jù)是2.333×10-1。
考試口訣:e 前e 后必有數(shù),e 后必為整數(shù)。
【知識點(diǎn)8】字符
字符數(shù)據(jù)的合法形式::
'1' 是字符占一個(gè)字節(jié),"1"是字符串占兩個(gè)字節(jié)(含有一個(gè)結(jié)束符號)。
'0' 的ASCII 數(shù)值表示為48,'a' 的ASCII 數(shù)值是97,'A'的ASCII 數(shù)值是65。
字符型和整數(shù)是近親:
char a = 65 ;
printf(“%c”, a); 得到的輸出結(jié)果:a
printf(“%d”, a); 得到的輸出結(jié)果:65
一般考試表示單個(gè)字符錯(cuò)誤的形式:'65' "1"
字符是可以進(jìn)行算術(shù)運(yùn)算的,記?。?'0'-0=48
大寫字母和小寫字母轉(zhuǎn)換的方法: 'A'+32='a' 相互之間一般是相差32。
【知識點(diǎn)9】整型數(shù)據(jù)
整型一般是兩個(gè)字節(jié), 字符型是一個(gè)字節(jié),雙精度一般是4 個(gè)字節(jié):
考試時(shí)候一般會(huì)說,在16 位編譯系統(tǒng),或者是32 位系統(tǒng)。碰到這種情況,不要去管,
一樣做題。掌握整型一般是兩個(gè)字節(jié), 字符型是一個(gè)字節(jié),雙精度一般是4 個(gè)字節(jié)就可以了。
【知識點(diǎn)10】轉(zhuǎn)義字符
轉(zhuǎn)義字符的考查:
在程序中 int a = 0x6d,是把一個(gè)十六進(jìn)制的數(shù)給變量a 注意這里的0x 必須存在。
在程序中 int a = 06d, 是一個(gè)八進(jìn)制的形式。
在轉(zhuǎn)義字符中, ’x6d’ 才是合法的,0 不能寫,并且x 是小寫。
‘141’ 是合法的, 0 是不能寫的。
‘108’是非法的,因?yàn)椴豢梢猿霈F(xiàn)8。
【知識點(diǎn)11】算術(shù)運(yùn)算
算術(shù)運(yùn)算符一共有+、—、*、/、%這五個(gè)。%符號兩邊要求是整數(shù)。不是整數(shù)就錯(cuò)了。
三種取整丟小數(shù)的情況:不是四舍五入是舍掉小數(shù)部分。
1、int a =1.6;
2、(int)a;
3、1/2; 3/2;
【知識點(diǎn)12】強(qiáng)制類型轉(zhuǎn)換
將一個(gè)運(yùn)算對象轉(zhuǎn)換成指定類型,格式為(類型名)表達(dá)式
一定是 (int)a 不是 int(a),注意類型上一定有括號的。
注意(int)(a+b) 和(int)a+b 的區(qū)別。前是把a(bǔ)+b 轉(zhuǎn)型,后是把a(bǔ) 轉(zhuǎn)型再加b。
【知識點(diǎn)13】賦值
是表達(dá)式就一定有數(shù)值。
賦值表達(dá)式:表達(dá)式數(shù)值是最左邊的數(shù)值,a=b=5;該表達(dá)式為5,常量不可以賦值。
復(fù)合賦值運(yùn)算符:注意:a*=m+2 是 a=a*(m+2)
自加、自減表達(dá)式:假設(shè)a=5,++a(表達(dá)式的值為6), a++(表達(dá)式的值為5);
j=a++;等價(jià)于j=a;a=a+1; 而j=++a;等價(jià)于a=a+1;j=a;。
考試口訣:++在前先加后用,++在后先用后加。
【知識點(diǎn)14】逗號運(yùn)算
逗號表達(dá)式:優(yōu)先級別最低; 表達(dá)式的數(shù)值逗號最右邊的那個(gè)表達(dá)式的數(shù)值。
(2,3,4)的表達(dá)式的數(shù)值就是4。
【知識點(diǎn)15】數(shù)制轉(zhuǎn)換
一定要記住二進(jìn)制 如何轉(zhuǎn)換成十進(jìn)制。
八進(jìn)制是沒有8 的,逢8 進(jìn)1,018 的數(shù)值是非法的。
【知識點(diǎn)16】位運(yùn)算
會(huì)有一到二題考試題目。
C語言提供6種位運(yùn)算符:按位求反~,按位左移,按位右移,按位與,按位異或|,按位或^。
總的處理方法:幾乎所有的位運(yùn)算的題目都要按這個(gè)流程來處理(先把十進(jìn)制變成二進(jìn)制再變成十進(jìn)制)。
異或運(yùn)算的規(guī)則:0異或1得到1,0異或0得到0,1異或1得到0。可記為“相同為0,不同為1”。
在沒有舍去數(shù)據(jù)的時(shí)候,左移一位表示乘以2;右移一位表示除以2。
一、算法結(jié)構(gòu)
1、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu);
2、循環(huán)結(jié)構(gòu)又分為while型、until型、for循環(huán)結(jié)構(gòu);
二、數(shù)據(jù)類型
1、常量:常量包括字面常量、直接常量和符號常量;
2、變量:C語言規(guī)定標(biāo)志符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須是字母或者下劃線;必須壓迫先定義后使用;每一個(gè)變量被定義以確定類型后,在編譯時(shí)就能為其分配相應(yīng)的存儲單元;
3、整數(shù)類型:整數(shù)常量有十進(jìn)制、八進(jìn)制和十六進(jìn)制;“%d”
4、整形變量:數(shù)據(jù)在內(nèi)存中存放形式是以二進(jìn)制形式存放;有int型、shortint型和longint型,無符號整型變量的范圍是-32768—32767,有符號型為0~65535.通常把long定義為32位,把short定義為16位,int可以是32位也可以為16位,這都主要取決于機(jī)器字長。
三、運(yùn)算符
1、算術(shù)運(yùn)算符(+-*/%)結(jié)合方向自左向右
2、關(guān)系運(yùn)算符( == = = !=)
3、邏輯運(yùn)算符(! ||)
4、位運(yùn)算符( ~ | ^ )
5、賦值運(yùn)算符(=及符號擴(kuò)展賦值運(yùn)算符)
6、條件運(yùn)算符(?:)
7、逗號運(yùn)算符(,)
8、指針運(yùn)算符(* )
四、控制語句
完成一定的控制功能。
1、if()~else~
2、for()~
3、while()~
4、do~while()
5、continue
6、break
7、switch
8、goto
9、return
五、數(shù)組
一維數(shù)組的定義:類型說明符數(shù)組名【常量表達(dá)式】;先定義后引用;一維數(shù)組初始化時(shí)可以只對一部分元素初始化,在對全部數(shù)組元素初始化的時(shí)候可以部規(guī)定長度;但是若被定義的數(shù)組長度與提供的初始值不一樣時(shí),則數(shù)組長度不能省略。
二維數(shù)組的定義:類型說明符數(shù)組名【常量表達(dá)式】【常量表達(dá)式】C語言中存放二維數(shù)組是先存放第一行的元素,緊接著是第二行,其實(shí)也是以一維的方式存放。如果初始化時(shí)能指定所有元素的初始值,第一維大小可以省略,但是第二維不能省略。
字符數(shù)組:定義和初始化跟數(shù)組差不多,只是需要加單引號。字符和字符串結(jié)束標(biāo)志,C語言規(guī)定,以‘\0’代表。
六、函數(shù)
1、一個(gè)源程序由多個(gè)函數(shù)組成。
2、C程序的執(zhí)行從main()函數(shù)開始;
3、所有函數(shù)都是平行的;
4、函數(shù)分類;可以分為標(biāo)準(zhǔn)和自定義,還可以分為有參函數(shù)和無參函數(shù)。
七、指針
指針是指向一片內(nèi)存空間的地址,指針變量是變量,是存放一片內(nèi)存空間首地址的變量,我們一般所說的指針都是指針變量。
?1 C語言程序的結(jié)構(gòu)認(rèn)識
用一個(gè)簡單的c程序例子,介紹c語言的基本構(gòu)成、格式、以及良好的書寫風(fēng)格,使讀者對c語言有個(gè)初步認(rèn)識。
例1 計(jì)算兩個(gè)整數(shù)之和的c程序:
1、任何一個(gè)c語言程序都必須包括以下格式:
這是c語言的基本結(jié)構(gòu),任何一個(gè)程序都必須包含這個(gè)機(jī)構(gòu)。括號內(nèi)可以不寫任何內(nèi)容,那么該程序?qū)⒉粓?zhí)行任何結(jié)果。
2、main()----在c語言中稱之為“主函數(shù)”,一個(gè)c程序有且僅有一個(gè)main函數(shù),任何一個(gè)c程序總是從main函數(shù)開始執(zhí)行,main函數(shù)后面的一對圓括號不能省略。
3、被大括號{ }括起來的內(nèi)容稱為main函數(shù)的函數(shù)體,這部分內(nèi)容就是計(jì)算機(jī)要執(zhí)行的內(nèi)容。
4、在{ ?}里面每一句話后面都有一個(gè)分號(;),在c語言中,我們把以一個(gè)分號結(jié)尾的一句話叫做一個(gè)c語言的語句,分號是語句結(jié)束的標(biāo)志。
5、printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); ----通過執(zhí)行這條c語言系統(tǒng)提供給我們直接使用的屏幕輸出函數(shù),用戶即可看到運(yùn)行結(jié)果,本程序運(yùn)行后,將在顯示器上顯示如下結(jié)果:
6、#include
7、程序中以 /*開頭并且以*/結(jié)尾的部分表示程序的注釋部分,注釋可以添加在程序的任何位置,為了提高程序的可讀性而添加,但計(jì)算機(jī)在執(zhí)行主函數(shù)內(nèi)容時(shí)完全忽略注釋部分,換而言之就是計(jì)算機(jī)當(dāng)做注釋部分不存在于主函數(shù)中。
? ?2 C程序的生成過程
C程序是先由源文件經(jīng)編譯生成目標(biāo)文件,然后經(jīng)過連接生成可執(zhí)行文件,如圖所示。
? ? ? ? ? ? ? ? ? ? ? ? ? 編譯過程
? 3 標(biāo)識符
在編寫程序時(shí),必須為函數(shù)、變量等命名,這個(gè)名字稱為標(biāo)識符。C語言中標(biāo)識符的命名規(guī)則如下:
標(biāo)識符不能與程序中具有特殊意義的關(guān)鍵字相同,不能與用戶編制的函數(shù)名、C語言庫函數(shù)相同,在程序中各種標(biāo)識符盡量不要重復(fù),以便區(qū)分。選擇變量名和其他標(biāo)識符時(shí),應(yīng)注意做到 “見名知義”。
標(biāo)識符分為如下三類:
1、關(guān)鍵字
3、用戶標(biāo)識符
用戶根據(jù)需要自己定義的標(biāo)識符稱為用戶標(biāo)識符。無論如何自定義標(biāo)識符,都必須符合標(biāo)識符的三條命名規(guī)則。
? 4 常量
在程序運(yùn)行中,其值不能被改變的量稱為常量。常量有5種類型:整型常量、實(shí)型常量、字符常量、字符串常量和符號常量。
(一)數(shù)值轉(zhuǎn)換
數(shù)字的四種表現(xiàn)形式:
在計(jì)算機(jī)內(nèi)部,數(shù)字均以二進(jìn)制形式表示和存放,用戶輸入的普通十進(jìn)制數(shù)字都要被計(jì)算機(jī)轉(zhuǎn)換成二進(jìn)制才能在計(jì)算機(jī)內(nèi)部存儲,同樣計(jì)算機(jī)的運(yùn)算結(jié)果也為二進(jìn)制,一般要將其轉(zhuǎn)換成十進(jìn)制數(shù)再輸出給用戶閱讀,這種轉(zhuǎn)換通常由計(jì)算機(jī)自動(dòng)實(shí)現(xiàn)。
(1)將十進(jìn)制轉(zhuǎn)換二進(jìn)制、八進(jìn)制和十六進(jìn)制
除法:將十進(jìn)制數(shù)除以2,記錄余數(shù),得到的商繼續(xù)除以2,直到商為0,然后將各次相處所得的余數(shù)從后往前逆序排列,所得余數(shù)數(shù)字序列就是該十進(jìn)制數(shù)對應(yīng)的二進(jìn)制數(shù)。八進(jìn)制和十六進(jìn)制轉(zhuǎn)換方法同上。
例:十進(jìn)制數(shù)13轉(zhuǎn)換成二進(jìn)制數(shù)的值為1101,轉(zhuǎn)換八進(jìn)制為015,轉(zhuǎn)換成十六進(jìn)制為D.
(2)將二進(jìn)制、八進(jìn)制和十六進(jìn)制轉(zhuǎn)換成十進(jìn)制
乘積求和:將二進(jìn)制的每一位從低位到高位(右邊為低位,左邊為高位)分別乘以20,21,22。。。。,然后將這些積求和。
例如:(1101)2=(13)10 ? ? (317)8=(207)10 ? ? (23E)16=(574)10
(3)二進(jìn)制與八進(jìn)制、十六進(jìn)制數(shù)之間的相互轉(zhuǎn)換
(二)整型常量
整型常量有3種形式:十進(jìn)制整型常量、八進(jìn)制整型常量和十六進(jìn)制整型常量。
書寫方式如下:
(三)實(shí)型常量
實(shí)型常量有兩種表示形式:小數(shù)形式和指數(shù)形式。
(四)字符常量
(2)由一對單引號括起來,以反斜杠\開頭,后跟若干數(shù)字或者字母,比如‘\n’,其中“\“是轉(zhuǎn)義的意思,后面跟不同的字符表示不同的意思,這類字符常量叫轉(zhuǎn)義字符。具體如圖所示 。
(五)字符串常量
C語言中,以雙引號括起來的,由若干個(gè)字符組成的序列即為字符串常量。
例:“ni hao” ? “happy”等等。
(六)符號常量
例:計(jì)算圓的面積的c程序。
說明:
? 5 變量
變量就是其值可以改變的量。變量要有變量名,在內(nèi)存中占據(jù)一定的存儲單元,存儲單元里存放的是該變量的值。不同類型的變量其存儲單元的大小不同,變量在使用前必須定義。
(一)整型變量
不同的編譯系統(tǒng)對上述四種整型數(shù)據(jù)所占用的位數(shù)和數(shù)值范圍有不同的規(guī)定。
類型說明符
說明:
(二)實(shí)型變量
C語言中,實(shí)型變量分為單精度類型( float )和雙精度類型( double )兩種。如:
在vc中,float 型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié)(32位),double型數(shù)據(jù)占8個(gè)字節(jié)。單精度實(shí)數(shù)提供7位有效數(shù)字,雙精度實(shí)數(shù)提供15~16位有效數(shù)字。實(shí)型常量不分float型和double型,一個(gè)實(shí)型常量可以賦給一個(gè)float 型或double型變量,但變量根據(jù)其類型截取實(shí)型常量中相應(yīng)的有效數(shù)字。
注意:實(shí)型變量只能存放實(shí)型值,不能用整型變量存放實(shí)型值,也不能用實(shí)型變量存放整型值。
(三)字符變量
字符變量用來存放字符常量,定義形式:
char ?變量名;
其中關(guān)鍵字char定義字符型數(shù)據(jù)類型,占用一個(gè)字節(jié)的存儲單元。
將一個(gè)字符賦給一個(gè)字符變量時(shí),并不是將該字符本身存儲到內(nèi)存中,而是將該字符對應(yīng)的ASCII碼存儲到內(nèi)存單元中。例如,字符 ′A′ 的ASCII碼為65,在內(nèi)存中的存放形式如下:01000001
由于在內(nèi)存中字符以ASCII碼存放,它的存儲形式和整數(shù)的存儲形式類似,所以C語言中字符型數(shù)據(jù)與整型數(shù)據(jù)之間可以通用,一個(gè)字符能用字符的形式輸出,也能用整數(shù)的形式輸出,字符數(shù)據(jù)也能進(jìn)行算術(shù)運(yùn)算,此時(shí)相當(dāng)于對它們的ASCII碼進(jìn)行運(yùn)算。
?6 類型的自動(dòng)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換
當(dāng)同一表達(dá)式中各數(shù)據(jù)的類型不同時(shí),編譯程序會(huì)自動(dòng)把它們轉(zhuǎn)變成同一類型后再進(jìn)行計(jì)算。轉(zhuǎn)換優(yōu)先級為:
即左邊級別“低“的類型向右邊轉(zhuǎn)換。具體地說,若在表達(dá)式中優(yōu)先級最高的數(shù)據(jù)是double型,則此表達(dá)式中的其他數(shù)據(jù)均被轉(zhuǎn)換成double型,且計(jì)算結(jié)果也是double型;若在表達(dá)式中優(yōu)先級最高的數(shù)據(jù)是float型,則此表達(dá)式中的其他數(shù)據(jù)均被轉(zhuǎn)換成float型,且計(jì)算結(jié)果也是float型。
在做賦值運(yùn)算時(shí),若賦值號左右兩邊的類型不同,則賦值號右邊的類型向左邊的類型轉(zhuǎn)換;當(dāng)右邊的類型高于左邊的類型時(shí),則在轉(zhuǎn)換時(shí)對右邊的數(shù)據(jù)進(jìn)行截取。
除自動(dòng)轉(zhuǎn)換外,還有強(qiáng)制轉(zhuǎn)換,表示形式是:
討論:當(dāng)a值賦值為3.4,b值賦值為2.7,(int)(a+b)和(int)a+b的值分別為多少?
? 7 ?C運(yùn)算符認(rèn)識
C語言的運(yùn)算符范圍很廣,可分為以下幾類:
1、算術(shù)運(yùn)算符:用于各類數(shù)值運(yùn)算。包括加(+)、減(-)、乘(*)、除(/)、求余(%)、自增(++)、自減(--)共七種。
2、賦值運(yùn)算符:用于賦值運(yùn)算,分為簡單賦值(=)、復(fù)合算術(shù)賦值(+=,-=,*=,/=,%=)和復(fù)合位運(yùn)算賦值(=,|=,^=,=,=)三類共十一種。
3、逗號運(yùn)算符:用于把若干表達(dá)式組合成一個(gè)表達(dá)式(,)。
4、關(guān)系運(yùn)算符:用于比較運(yùn)算。包括大于()、小于()、等于(==)、 大于等于(=)、小于等于(=)和不等于(!=)六種。
5、邏輯運(yùn)算符:用于邏輯運(yùn)算。包括與()、或(||)、非(!)三種。
6、條件運(yùn)算符:這是一個(gè)三目運(yùn)算符,用于條件求值(?:)。
7、位操作運(yùn)算符:參與運(yùn)算的量,按二進(jìn)制位進(jìn)行運(yùn)算。包括位與()、位或(|)、位非(~)、位異或(^)、左移()、右移()六種。
8、指針運(yùn)算符:用于取內(nèi)容(*)和取地址()二種運(yùn)算。
9.、求字節(jié)數(shù)運(yùn)算符:用于計(jì)算數(shù)據(jù)類型所占的字節(jié)數(shù)(sizeof)。
10、特殊運(yùn)算符:有括號(),下標(biāo)[],成員(→,.)等幾種。
另外,按參與運(yùn)算的對象個(gè)數(shù),C語言運(yùn)算符可分為:單目運(yùn)算符 (如 !)、雙目運(yùn)算符 (如+,- )和三目運(yùn)算符 (如 ? ?: )。
一、 ? 基本的算術(shù)運(yùn)算符
(1)+(加法運(yùn)算符或正值運(yùn)算符,如2+5)。
(2)-(減法運(yùn)算符或負(fù)值運(yùn)算符,如4-2)。
(3)*(乘法運(yùn)算符,如3*8)。
(4)/(除法運(yùn)算符,如11/5)。
/的運(yùn)算分為兩種情況:
(5)%(模運(yùn)算符或稱求余運(yùn)算符,%兩側(cè)均應(yīng)為整型數(shù)據(jù),如9%7的值為2)。
需要說明的是:當(dāng)運(yùn)算對象為負(fù)數(shù)時(shí),所得結(jié)果隨編譯器不同而不同,在vc中,結(jié)果的符號與被除數(shù)相同,比如:13%-2值為1,而-15%2值為-1.
二、 ? 算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級與結(jié)合性
算術(shù)表達(dá)式是用算術(shù)運(yùn)算符和括號將運(yùn)算量(也稱操作數(shù))連接起來的、符合C語言語法規(guī)則的表達(dá)式。運(yùn)算對象包括函數(shù)、常量和變量等。
在計(jì)算機(jī)語言中,算術(shù)表達(dá)式的求值規(guī)律與數(shù)學(xué)中的四則運(yùn)算的規(guī)律類似,其運(yùn)算規(guī)則和要求如下。
(1)在算術(shù)表達(dá)式中,可使用多層圓括號,但括號必須配對。運(yùn)算時(shí)從內(nèi)層圓括號開始,由內(nèi)向外依次計(jì)算各表達(dá)式的值。
(2)在算術(shù)表達(dá)式中,對于不同優(yōu)先級的運(yùn)算符,可按運(yùn)算符的優(yōu)先級由高到低進(jìn)行運(yùn)算,若表達(dá)式中運(yùn)算符的優(yōu)先級相同,則按運(yùn)算符的結(jié)合方向進(jìn)行運(yùn)算。
(3)如果一個(gè)運(yùn)算符兩側(cè)的操作數(shù)類型不同,則先利用自動(dòng)轉(zhuǎn)換或強(qiáng)制類型轉(zhuǎn)換,使兩者具有相同類型,然后進(jìn)行運(yùn)算。
三、 ? 自增自減運(yùn)算符
作用:使變量的值增1或減1。
(1)只有變量才能用自增運(yùn)算符 (++)和自減運(yùn)算符(--),而常量或表達(dá)式不能用,如10++或(x+y)++都是不合法的。
(2)++和--的結(jié)合方向是“自右向左“,如 -i++ ,i的左邊是負(fù)號運(yùn)算符,右邊是自增運(yùn)算符,負(fù)號運(yùn)算和自增運(yùn)算都是 “自右向左“結(jié)合的,相當(dāng)于 -(i++)。
在循環(huán)語句中常用到自增(減)運(yùn)算符,在指針中也常用到該運(yùn)算符,考生要弄清楚“i++”和“++i”及“i--”和“--i”的區(qū)別,特別弄清楚表達(dá)式的值和變量的值。
例:變量n的初始值為2,則
例:有以下程序
程序運(yùn)行后的輸出結(jié)果是_____
A.12 ?35 ?13 ?35 ?14 ?36 ? ? B. 12 ?35 ?14 ?35 ?14 ?36
C.12 ?35 ?14 ?36 ?14 ?36 ? ? D. 12 ?35 ?14 ?35 ?14 ?35
解析:自增自減運(yùn)算需要注意區(qū)分表達(dá)式的值和變量的值,表達(dá)式運(yùn)算后,變量會(huì)自增自減運(yùn)算,表達(dá)式和變量變化如下:
??9 賦值運(yùn)算符與賦值表達(dá)式
一、賦值運(yùn)算符與賦值表達(dá)式
賦值符號 “=“就是賦值運(yùn)算符,作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變量或?qū)⒁粋€(gè)變量的值賦給另一個(gè)變量,由賦值運(yùn)算符組成的表達(dá)式稱為賦值表達(dá)式。一般形式為:
變量名 = 表達(dá)式
在程序中可以多次給一個(gè)變量賦值,每賦一次值,與它相應(yīng)的存儲單元中的數(shù)據(jù)就被更新一次,內(nèi)存中當(dāng)前的數(shù)據(jù)就是最后一次所賦值的那個(gè)數(shù)據(jù)。
說明:
a、如果賦值號兩邊的運(yùn)算對象類型不一致,系統(tǒng)會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換,轉(zhuǎn)換的規(guī)則:將賦值號右邊表達(dá)式的值的類型轉(zhuǎn)換成賦值號左邊變量的類型,
b、 可以將復(fù)制表達(dá)式的值再賦值給變量,形成連續(xù)賦值。
二、復(fù)合的賦值運(yùn)算符
在賦值運(yùn)算符之前加上其他運(yùn)算符可以構(gòu)成復(fù)合賦值運(yùn)算符。其中與算術(shù)運(yùn)算有關(guān)的復(fù)合運(yùn)算符是:+=,-=,*=,/=,%= 。
兩個(gè)符號之間不可以有空格,復(fù)合賦值運(yùn)算符的優(yōu)先級與賦值運(yùn)算符的相同。表達(dá)式n+=1等價(jià)于n=n+1,作用是取變量n中的值增1再賦給變量n,其他復(fù)合的賦值運(yùn)算符的運(yùn)算規(guī)則依次類推。
如求表達(dá)a+=a-=a*a 的值,其中a的初值為12 。
步驟:
?10 ?逗號運(yùn)算符和逗號表達(dá)式
在c語言中,逗號除了作為分隔符,還可以用作一種運(yùn)算符----逗號運(yùn)算符,用逗號運(yùn)算符將幾個(gè)表達(dá)式連接起來,例如a=b+c,a=b*c等稱為逗號表達(dá)式。
一般形式為:
表達(dá)式1 ,表達(dá)式2 ,表達(dá)式3 , …,表達(dá)式n
例:x=2,y=3,z=4
逗號表達(dá)式具有從左至右的結(jié)合性,即先求解表達(dá)式1,然后依次求解表達(dá)式2,直到表達(dá)式n的值。表達(dá)式n的值就是整個(gè)逗號表達(dá)式的值。上述的逗號表達(dá)式的值就是表達(dá)式z=4的值4.需要注意的是,逗號運(yùn)算符是所有運(yùn)算符中級別最低的。
例:有如下程序段:
程序顯示結(jié)果為:y=6,x=6
討論:將y=(x=a+b),(b+c);改為y=((x=a+b),b+c) 的程序結(jié)果?
? 11 關(guān)系運(yùn)算符和關(guān)系表達(dá)式
一、 ? C語言中的邏輯值
C語言中的邏輯值只有兩個(gè):真(true)和假(flase)。用非零代表真,用零代表假。因此,對于任意一個(gè)表達(dá)式,如果它的值為零,就代表一個(gè)假值,如果它的值為非零,就代表一個(gè)真值。只要值不是零,不管是正數(shù),負(fù)數(shù),整數(shù),實(shí)數(shù),都代表一個(gè)真值。例如-5的邏輯值為真。
二、 ? 關(guān)系運(yùn)算符及其優(yōu)先次序
C語言提供了6種關(guān)系運(yùn)算符,見表
由兩個(gè)字符組成的運(yùn)算符之間不可以加空格,關(guān)系運(yùn)算符都是雙目運(yùn)算符。
(1)結(jié)合性:自左向右。
(2)優(yōu)先次序:前4種關(guān)系運(yùn)算符( ,=,=, )的優(yōu)先級別相同,后兩種 (==,!=)優(yōu)先級相同,且前4種優(yōu)先級高于后兩種;關(guān)系運(yùn)算符的優(yōu)先級低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符。
三、 ? 關(guān)系表達(dá)式
由關(guān)系運(yùn)算符連接而成的表達(dá)式稱為關(guān)系表達(dá)式。
例如:ab,(a=7)(b=10)等都是合法的關(guān)系表達(dá)式。
關(guān)系表達(dá)式的結(jié)果有兩個(gè):0和1,。其中0表示假,1表示真。如果關(guān)系表達(dá)式成立,則值為真,如果關(guān)系表達(dá)式不成立,則值為假。
例:變量a的值為5,b的值為6,那么關(guān)系表達(dá)式ab的值為假,即為0.而關(guān)系表達(dá)式
(a=13)(b=10)的值為真,即為1。
當(dāng)關(guān)系運(yùn)算符兩邊值的類型不一致時(shí),若一邊是整型,一邊是實(shí)型,系統(tǒng)將自動(dòng)把整型數(shù)轉(zhuǎn)化為實(shí)型數(shù),然后再進(jìn)行比較。
?12 邏輯運(yùn)算符和邏輯表達(dá)式
一、 ? 邏輯運(yùn)算符及其優(yōu)先級
C語言提供了3種邏輯運(yùn)算符,如下表。
二、 ? 邏輯表達(dá)式
“”和“||”的運(yùn)算對象有兩個(gè),故它們都是雙目運(yùn)算符,而!的運(yùn)算對象只有一個(gè),因此它是單目運(yùn)算符。邏輯運(yùn)算舉例如下:
(1)ab: 當(dāng)兩邊都為“真”時(shí),表達(dá)式ab的值才是真。
值得注意的是:在數(shù)學(xué)中,關(guān)系式0
(2)a||b: 當(dāng)||兩邊有一個(gè)為“真”時(shí),表達(dá)式a||b的值就是真。
(3)!a: ? 表示取反,如果a為真,則!A為假,反之亦然。例如!-5的值就為0.
在C語言中,由或||組成的邏輯表達(dá)式,在某些特定情況下會(huì)產(chǎn)生“短路“現(xiàn)象。
(1)x y z ,只有當(dāng)x為真(非0)時(shí),才需要判別y的值;只有x和y都為真時(shí),才需要去判別z的值;只要x為假就不必判別y和z,整個(gè)表達(dá)式的值為0??谠E:“一假必假”。
例:(!5==1)(++i==0) ?(!5==1)表達(dá)式的值為0,所以計(jì)算機(jī)運(yùn)行中就跳過(++i==0)此表達(dá)式,(!5==1)(++i==0)表達(dá)式的值為0.
(2)x||y||z ,只要x的值為真(非零),就不必判別y和z的值 ,整個(gè)表達(dá)式的值為1,只有x的值為假,才需要判別y的值,只有x和y的值同時(shí)為假才需要判別z的值,口訣:“一真必真”。
?13 位運(yùn)算
一、 ? 位運(yùn)算符
在計(jì)算機(jī)中,數(shù)據(jù)都是以二進(jìn)制數(shù)形式存放的,位運(yùn)算就是指對存儲單元中二進(jìn)制位的運(yùn)算。C語言提供6種位運(yùn)算符。
二、位運(yùn)算
位運(yùn)算符 ?|~ ? ?∧ 按優(yōu)先級從高到低排列的順序是:
位運(yùn)算符中求反運(yùn)算“~“優(yōu)先級最高,而左移和右移相同,居于第二,接下來的順序是按位與 ““、按位異或 “∧“和按位或 “|“。順序?yàn)閪 ? ? ? ?∧ ?| ?。
例1左移運(yùn)算符“”是雙目運(yùn)算符。其功能把“ ”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“”右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0。
例 2右移運(yùn)算符“”是雙目運(yùn)算符。其功能是把“ ”左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位,“”右邊的數(shù)指定移動(dòng)的位數(shù)。
應(yīng)該說明的是,對于有符號數(shù),在右移時(shí),符號位將隨同移動(dòng)。當(dāng)為正數(shù)時(shí),最高位補(bǔ)0,而為負(fù)數(shù)時(shí),符號位為1,最高位是補(bǔ)0或是補(bǔ)1 取決于編譯系統(tǒng)的規(guī)定。
例 3 設(shè)二進(jìn)制數(shù)a是00101101 ,若通過異或運(yùn)算a∧b 使a的高4位取反,低4位不變,則二進(jìn)制數(shù)b是。
解析:異或運(yùn)算常用來使特定位翻轉(zhuǎn),只要使需翻轉(zhuǎn)的位與1進(jìn)行異或操作就可以了,因?yàn)樵瓟?shù)中值為1的位與1進(jìn)行異或運(yùn)算得0 ,原數(shù)中值為0的位與1進(jìn)行異或運(yùn)算結(jié)果得1。而與0進(jìn)行異或的位將保持原值。異或運(yùn)算還可用來交換兩個(gè)值,不用臨時(shí)變量。
所以本題的答案為: 11110000 。