版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式
數(shù)據(jù)類(lèi)型規(guī)定了程序中數(shù)據(jù)的組織形式和操作方法;運(yùn)算符提供了數(shù)據(jù)之間進(jìn)行各種運(yùn)算的方法;表達(dá)式描述了某種實(shí)際需求的計(jì)算形式。
本章重點(diǎn)介紹幾種構(gòu)成C語(yǔ)言程序的基本元素。2.1數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算進(jìn)制轉(zhuǎn)換C語(yǔ)言中常用的數(shù)據(jù)表示形式有二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制。常用的數(shù)據(jù)基本都是十進(jìn)制,而計(jì)算機(jī)中數(shù)據(jù)的存儲(chǔ)基本都采用二進(jìn)制,是'0'和'1'的組合。2492242122623210余1余0余0余0余1余1849860余1余61649163余1余30圖2.1十進(jìn)制數(shù)49轉(zhuǎn)換為二進(jìn)制、八進(jìn)制、十六進(jìn)制計(jì)算過(guò)程十進(jìn)制轉(zhuǎn)換為二進(jìn)制、八進(jìn)制、十六進(jìn)制方法:將十進(jìn)制數(shù)連續(xù)除以要轉(zhuǎn)換為的進(jìn)制數(shù),從低到高記錄余數(shù),直到商為0。例如:要將49轉(zhuǎn)換為二進(jìn)制,則連續(xù)除以2,以此類(lèi)推,八進(jìn)制則連續(xù)除以8,十六進(jìn)制則連續(xù)除以16,如圖2.1所示。將余數(shù)從低到高記錄下來(lái),得到110001就是49的二進(jìn)制,可以記作:(49)10=(110001)2=(61)8=(31)16二進(jìn)制、八進(jìn)制、十六進(jìn)制所謂的“X進(jìn)制”就是指“逢X進(jìn)一”。二進(jìn)制就是“逢二進(jìn)一”,每一位上用0-1計(jì)數(shù),到2的時(shí)候就進(jìn)一位,用10表示;八進(jìn)制就是“逢八進(jìn)一”,每一位上用0-7計(jì)數(shù),到8的時(shí)候就進(jìn)一位,用10表示;十六進(jìn)制就是“逢十六進(jìn)一”,每一位上用0-9,A-F(表示10-15)計(jì)數(shù),到16的時(shí)候就進(jìn)一位,用10表示。進(jìn)制轉(zhuǎn)換2.1數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算二進(jìn)制與八進(jìn)制、十六進(jìn)制的轉(zhuǎn)換①二進(jìn)制與八進(jìn)制之間的轉(zhuǎn)換
二進(jìn)制轉(zhuǎn)換成八進(jìn)制:從右向左,每3位一組(不足3位左補(bǔ)0),轉(zhuǎn)換成八進(jìn)制。
八進(jìn)制轉(zhuǎn)換成二進(jìn)制:用3位二進(jìn)制數(shù)代替每一位八進(jìn)制數(shù)。2=(001,010,111)2=(127)88=(101,010,110)2=(101010110)2②二進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換
二進(jìn)制轉(zhuǎn)換成十六進(jìn)制:從右向左,每4位一組(不足4位左補(bǔ)0),轉(zhuǎn)換成十六進(jìn)制。十六進(jìn)制轉(zhuǎn)換成二進(jìn)制:用4位二進(jìn)制數(shù)代替每一位十六進(jìn)制數(shù)。(10110101001111)2=(0010,1101,0100,1111)2=(2D4F)16(5C8E)16=(0101,1100,1000,1110)2=(101110010001110)2二進(jìn)制、八進(jìn)制、十六進(jìn)制轉(zhuǎn)換為十進(jìn)制方法:自右向左,當(dāng)前數(shù)位的數(shù)字乘以進(jìn)制的對(duì)應(yīng)次冪(從零開(kāi)始),累加求和。以上面的數(shù)字為例:2=1×20+0×21+0×22+0×23+1×24+1×25=(49)108=1×80+6×81=(49)1016=1×160+3×161=(49)10進(jìn)制轉(zhuǎn)換2.1數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算在存儲(chǔ)形式上,以整數(shù)為例,數(shù)據(jù)在內(nèi)存中是以二進(jìn)制補(bǔ)碼的形式存儲(chǔ)的。這里再說(shuō)明一下原碼、反碼和補(bǔ)碼的概念。1.原碼:最高位為符號(hào)位(正數(shù)為0,負(fù)數(shù)為1),其余各位為數(shù)值本身的絕對(duì)值。3.補(bǔ)碼:正數(shù)的補(bǔ)碼依然與原碼相同;負(fù)數(shù)的補(bǔ)碼是最高位為1,其余各位為對(duì)原碼取反,再對(duì)整個(gè)數(shù)加1,也就是負(fù)數(shù)的反碼加12.反碼:正數(shù)的反碼與原碼相同;負(fù)數(shù)的反碼是符號(hào)位為1,其余各位為對(duì)原碼取反;表2.1整數(shù)的原碼、反碼、補(bǔ)碼表示(按兩個(gè)字節(jié)16位存儲(chǔ)表示)數(shù)據(jù)原碼
反碼
補(bǔ)碼20000000000000010
0000000000000010
0000000000000010-21000000000000010
1111111111111101
11111111111111102.2數(shù)據(jù)類(lèi)型
在計(jì)算機(jī)系統(tǒng)中,數(shù)據(jù)的表現(xiàn)形式不同,有數(shù)字、文字、聲音、圖形、圖像等。但不論那種表現(xiàn)形式,在內(nèi)存中都是以二進(jìn)制的形式存儲(chǔ)的,那么形如00001000這個(gè)二進(jìn)制數(shù),是表示數(shù)字8,還是表示圖形中的某個(gè)顏色的像素點(diǎn),還是某個(gè)聲音呢?C語(yǔ)言是利用數(shù)據(jù)類(lèi)型這個(gè)概念,來(lái)聲明數(shù)據(jù)的類(lèi)型。數(shù)據(jù)類(lèi)型有三方面的含義:在該數(shù)據(jù)上可以進(jìn)行的操作。數(shù)據(jù)在計(jì)算機(jī)內(nèi)部的表示方式;數(shù)據(jù)的取值范圍;2.2數(shù)據(jù)類(lèi)型因此,數(shù)據(jù)類(lèi)型不僅僅是規(guī)定了一個(gè)數(shù)據(jù)是整數(shù)、浮點(diǎn)數(shù)或者其他類(lèi)型的數(shù)據(jù),而且還規(guī)定了數(shù)據(jù)的組織形式和操作方法。數(shù)據(jù)類(lèi)型基本類(lèi)型字符型實(shí)型(浮點(diǎn)型)單精度型雙精度型構(gòu)造類(lèi)型數(shù)組指針結(jié)構(gòu)體
共用體空類(lèi)型整型枚舉圖2.2C語(yǔ)言的數(shù)據(jù)類(lèi)型
在程序中對(duì)用到的所有數(shù)據(jù)都必須指定其數(shù)據(jù)類(lèi)型。在本章中主要介紹基本數(shù)據(jù)類(lèi)型。每種數(shù)據(jù)必須規(guī)定使用時(shí)在內(nèi)存中占中的存儲(chǔ)容量是多少;根據(jù)所占用的存儲(chǔ)容量的字節(jié)數(shù),可以計(jì)算出每種數(shù)據(jù)類(lèi)型的數(shù)據(jù)的取值范圍。2.2.1整型整型(在C語(yǔ)言中,使用關(guān)鍵字int表示整型),即整數(shù)類(lèi)型。按照其占用的內(nèi)存容量(通常稱(chēng)為字節(jié)長(zhǎng)度)劃分,有8位,16位,32位,64位,128位(大型機(jī))等等。每一種長(zhǎng)度又分為有符號(hào)(signed)和無(wú)符號(hào)(unsigned)兩種類(lèi)型,這里的符號(hào)是指數(shù)學(xué)中的正號(hào)'+'和負(fù)號(hào)'-',無(wú)符號(hào)就表示全部都是非負(fù)整數(shù)。一般情況下,默認(rèn)為有符號(hào)(signed)類(lèi)型。2.2.1整型類(lèi)型名稱(chēng)類(lèi)型關(guān)鍵字字節(jié)數(shù)位數(shù)表示范圍短整型signedshortint216-32768~32767無(wú)符號(hào)短整型unsignedshortint2160~65535整型signedint432-2147483648~2147483647無(wú)符號(hào)整型unsignedint4320~4294967295長(zhǎng)整型signedlongint864-9223372036854775808~9223372036854775807無(wú)符號(hào)長(zhǎng)整型unsignedlongint8640~18446744073709551615
根據(jù)其表示的長(zhǎng)度的不同和有無(wú)符號(hào)的區(qū)別,整型數(shù)據(jù)的表示范圍也不相同。
表2.2所列的各種整型數(shù)據(jù)是在linux的64位操作系統(tǒng)下給出的,在不同的操作系統(tǒng)中這些整型數(shù)據(jù)的長(zhǎng)度可能會(huì)有所不同,應(yīng)測(cè)試之后再使用??梢允褂胹izeof(類(lèi)型標(biāo)識(shí)符)運(yùn)算符測(cè)試。表2.2整型數(shù)據(jù)分類(lèi)表2.2.1整型【例2.1】sizeof的應(yīng)用舉例。#include<stdio.h>intmain(){printf("int字節(jié)數(shù):%d\n",sizeof(int));printf("shortint字節(jié)數(shù):%d\n",sizeof(shortint));printf("longint字節(jié)數(shù):%d\n",sizeof(longint));
return0;}無(wú)論在哪種操作系統(tǒng)中運(yùn)行,所有的編譯器都應(yīng)滿(mǎn)足C語(yǔ)言所規(guī)定的整數(shù)長(zhǎng)度關(guān)系式:shortint≤int≤longint圖2.3例2.1運(yùn)行結(jié)果2.2.2實(shí)型實(shí)型,也稱(chēng)浮點(diǎn)型,分為單精度浮點(diǎn)型(float)和雙精度浮點(diǎn)型(double)兩種。其實(shí)就是我們常見(jiàn)的帶小數(shù)形式的數(shù)據(jù)。
類(lèi)型名稱(chēng)類(lèi)型關(guān)鍵字字節(jié)數(shù)位數(shù)表示范圍單精度浮點(diǎn)數(shù)float4327位有效數(shù)字,-3.4×1038~3.4×1038雙精度浮點(diǎn)數(shù)double86415-16位有效數(shù)字,-1.7977×10308~1.7977×10308表2.3浮點(diǎn)型數(shù)據(jù)分類(lèi)表2.2.3字符型
字符型(char)是針對(duì)處理ASCII字符而設(shè)置的。它用由單引號(hào)括起來(lái)的單個(gè)字符來(lái)表示,表示范圍也是整型的子集。字符型由一個(gè)字節(jié)(8bit)組成,能表示256個(gè)值。在其有效范圍內(nèi),字符型可以參與到整型運(yùn)算中。例如:
inta;charb='h';a=b+1;
字符型和整型主要區(qū)別在輸出方式上,字符型輸出的結(jié)果不是整數(shù),而是整數(shù)所代表的ASCII碼字符。
字符型中有一種特殊形式表示的字符,在反斜線后面加一個(gè)字符或一個(gè)代碼值表示的字符,稱(chēng)為“轉(zhuǎn)義字符”,如:'\n','\101'等。轉(zhuǎn)義字符含義轉(zhuǎn)義字符含義\a響鈴\b退格\f換頁(yè)\n換行\(zhòng)r回車(chē)\t水平制表\v垂直制表\\反斜線\'單引號(hào)\"雙引號(hào)\ddd3位8進(jìn)制數(shù)代表的字符\xhh2位16進(jìn)制數(shù)代表的字符表2.4
常用的轉(zhuǎn)義字符2.2.3字符型【例2.2】觀察程序運(yùn)行結(jié)果。#include<stdio.h>intmain(){printf("\101\x42C\n");printf("Tom:\"Hello\"\n");printf("\\SQLServer\\\n");printf("\'code::blocks\'\n");return0;}圖2.4例2.2程序運(yùn)行結(jié)果2.2.4不同數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換
圖2.5中,自上而下的箭頭表示相應(yīng)的轉(zhuǎn)換是必定要執(zhí)行的,而自左向右的箭頭表示運(yùn)算對(duì)象類(lèi)型不同時(shí)的轉(zhuǎn)換。轉(zhuǎn)換時(shí)不需要按部就班一級(jí)一級(jí)轉(zhuǎn)換,可直接轉(zhuǎn)換為更高級(jí)別。
例如表達(dá)式:'A'+3.2,運(yùn)行結(jié)果是double類(lèi)型的。因?yàn)?A'為char型,按箭頭方向首先必須轉(zhuǎn)換為int,3.2為double類(lèi)型,int和double兩種不同類(lèi)型的數(shù)據(jù)進(jìn)行運(yùn)算,int需按箭頭方向轉(zhuǎn)換為double之后再進(jìn)行運(yùn)算。
數(shù)據(jù)類(lèi)型轉(zhuǎn)換是指不同數(shù)據(jù)類(lèi)型混合運(yùn)算時(shí),需要將運(yùn)算符兩側(cè)的數(shù)據(jù)轉(zhuǎn)換為同一類(lèi)型之后再進(jìn)行運(yùn)算。分為自動(dòng)類(lèi)型轉(zhuǎn)換和強(qiáng)制類(lèi)型轉(zhuǎn)換。
自動(dòng)類(lèi)型轉(zhuǎn)換是指在不同類(lèi)型的數(shù)據(jù)進(jìn)行混合運(yùn)算時(shí),C語(yǔ)言編譯器會(huì)自動(dòng)進(jìn)行類(lèi)型轉(zhuǎn)換。這里一般是指整型、實(shí)型、字符型數(shù)據(jù)之間的類(lèi)型轉(zhuǎn)換。自動(dòng)轉(zhuǎn)換時(shí)按照下面的標(biāo)準(zhǔn)執(zhí)行:圖2.5數(shù)據(jù)類(lèi)型自動(dòng)轉(zhuǎn)換規(guī)則2.3標(biāo)識(shí)符標(biāo)識(shí)符指的是用來(lái)給變量、常量、數(shù)組、函數(shù)等命名的,命名的規(guī)則如下:不能使用關(guān)鍵字,關(guān)鍵字是系統(tǒng)用來(lái)表示特定含義的一些字符序列,也稱(chēng)為保留字。04區(qū)分大小寫(xiě)字母,即相同的大小寫(xiě)字符序列代表不同內(nèi)容;03由字母、數(shù)字、下劃線組成;01第一個(gè)字符必須是字母或下劃線;02①見(jiàn)名知意,如score表示分?jǐn)?shù),data表示數(shù)據(jù)等等;②
不宜混淆,盡量不使用難分辨的字符,如l與1,o與0等。標(biāo)識(shí)符的命名一般要遵循以下原則:例如:sumyearSumH.F.JohnsonDate5cardsperson_name#demochara>b_above$888以上字符序列中,sum和Sum是兩個(gè)不同的標(biāo)識(shí)符,H.F.Johnson,5cards,#demo,char,a>b,$888為不合法標(biāo)識(shí)符。2.4常量常量,程序運(yùn)行時(shí)其值不能改變的量(即常數(shù))。C語(yǔ)言中分為整型常量、實(shí)型常量、字符常量、和字符串常量。
整型常量即整常數(shù),一般有三種表示形式:十進(jìn)制表示:由數(shù)字0~9和正負(fù)號(hào)表示。如123,-456,0等。八進(jìn)制表示:由數(shù)字0開(kāi)頭,后面是0~7表示。如0123,0107等。十六進(jìn)制表示:由0x開(kāi)頭,后面是0~9,a~f,A~F表示。如0x123,0xff等。整型常量的類(lèi)型是根據(jù)其值所在范圍確定其數(shù)據(jù)類(lèi)型的。1 字符常量字符常量是用單引號(hào)括起來(lái)的單個(gè)普通字符或轉(zhuǎn)義字符,它的值是該字符所對(duì)應(yīng)的ASCII碼值,如:'A'的值為65,'a'的值為97,'\102'的值為66,'\x43'的值為67等。3 常量的聲明在C語(yǔ)言中,聲明常量的格式如下:#define常量名常量值語(yǔ)法規(guī)則:①#define是關(guān)鍵字,表示要聲明常量;②常量名必須為合法的標(biāo)識(shí)符③這樣定義的常量值是沒(méi)有數(shù)據(jù)類(lèi)型的,程序編譯時(shí),會(huì)用常量值去替代常量名,替代之后,在具體的語(yǔ)句中,才能確定數(shù)據(jù)類(lèi)型。5
實(shí)型常量即實(shí)數(shù)或浮點(diǎn)數(shù),一般有兩種表示形式:十進(jìn)制數(shù)表示:(必須有小數(shù)點(diǎn))如0.123,123.,.123,123.0,0.0。指數(shù)表示:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))如63.3e5,456E2。實(shí)型常量的類(lèi)型默認(rèn)為double型,如果在實(shí)型常量后加字母f或F,則認(rèn)為它是float型,如:12.345默認(rèn)為double型,而12.345f則為float型。2
字符串常量字符串常量是由多個(gè)字符組成,并用雙引號(hào)("")括起來(lái)的字符序列,如:"china"。它和字符常量的主要差別是在存儲(chǔ)方式上:每個(gè)字符串在存儲(chǔ)時(shí),自動(dòng)在字符串最后加一個(gè)'\0'作為字符串結(jié)束標(biāo)志('\0'對(duì)應(yīng)的ASCII值為0)。
4'c''h''i''n''a''\0''a'和"a"在存儲(chǔ)上的區(qū)別是前者只占一個(gè)字節(jié),而后者則占用兩個(gè)字節(jié)。'a''a''\0'例如:#definePI3.14intmain(){intr=3;doublec;c=2*PI*r;
printf("圓的周長(zhǎng)為:%.2lf",c);return0;}定義常量PI時(shí),3.14并不表示一個(gè)實(shí)數(shù)。程序編譯時(shí),語(yǔ)句c=2*PI*r;中的PI會(huì)用3.14替換。2.5變量(1)變量的定義變量要先定義后使用,其一般定義形式為:[存儲(chǔ)類(lèi)型]數(shù)據(jù)類(lèi)型變量名列表;語(yǔ)法規(guī)則:①存儲(chǔ)類(lèi)型可以省略不寫(xiě),這部分知識(shí)將在第6章進(jìn)行介紹;②變量名列表中的變量至少要有一個(gè),若有多個(gè)變量,變量之間需用逗號(hào)間隔;③變量名要符合標(biāo)識(shí)符命名的規(guī)則;④最后的分號(hào)表示定義語(yǔ)句結(jié)束,不能省略。例如:intdata,year;floatscore;charc;(2)變量的初始化變量定義之后,必須賦值之后才能使用,未賦值的變量的值是隨機(jī)數(shù)。變量初始化的方式有兩種:1)在定義變量的同時(shí)進(jìn)行初始化,其一般形式為:[存儲(chǔ)類(lèi)型]數(shù)據(jù)類(lèi)型變量名=初始值;語(yǔ)法規(guī)則:①初始值可以是一個(gè)常量,也可以是一個(gè)表達(dá)式,但需數(shù)據(jù)類(lèi)型要與變量的數(shù)據(jù)類(lèi)型相匹配;②定義時(shí)若有多個(gè)變量,每個(gè)變量需單獨(dú)賦初始值,并用逗號(hào)分隔。例如:intdata=2,year=2021;floatf=3.78f;2)先定義,后初始化。即不在定義的同時(shí)初始化,在需要的時(shí)候再進(jìn)行初始化,例如:intdata,year;
data=2;year=2021;12變量,是指在程序的運(yùn)行過(guò)程中其值發(fā)生變化的量。變量根據(jù)存儲(chǔ)內(nèi)容的不同分為整型變量、實(shí)型變量和字符變量。2.6運(yùn)算符和表達(dá)式學(xué)習(xí)運(yùn)算符應(yīng)注意以下幾個(gè)問(wèn)題:01運(yùn)算符功能,即它可以實(shí)現(xiàn)什么樣的計(jì)算,例如“+”是求兩個(gè)數(shù)的和02與運(yùn)算量關(guān)系,包括要求參與運(yùn)算的運(yùn)算量的個(gè)數(shù)及其類(lèi)型,例如“%”要求參與運(yùn)算的兩個(gè)數(shù)必須為整型;03C語(yǔ)言中常用的運(yùn)算符有:算術(shù)運(yùn)算符:+-*/%自加自減運(yùn)算符:++--關(guān)系運(yùn)算符:<<===>>=!=邏輯運(yùn)算符:!&&||位運(yùn)算符:<<>>~|^&賦值運(yùn)算符:=及其擴(kuò)展條件運(yùn)算符:?:逗號(hào)運(yùn)算符:,指針運(yùn)算符:*&求字節(jié)數(shù):sizeof強(qiáng)制類(lèi)型轉(zhuǎn)換:(類(lèi)型)分量運(yùn)算符:.->變址運(yùn)算符:[]其它:()-本章將先介紹其中最基本的運(yùn)算符及其表達(dá)式。2.6運(yùn)算符和表達(dá)式2.6.1算術(shù)運(yùn)算符及其表達(dá)式2.6.2自加自減運(yùn)算符++,--算術(shù)運(yùn)算符包括:+-*/%5個(gè),分別實(shí)現(xiàn)加、減、乘、除、求模(取余)運(yùn)算,需要兩個(gè)數(shù)據(jù)參與運(yùn)算,是雙目運(yùn)算符,結(jié)合性為自左向右。由算術(shù)運(yùn)算符及操作對(duì)象組合在一起的有意義的式子,稱(chēng)為算術(shù)表達(dá)式。乘、除、求模3個(gè)運(yùn)算符的優(yōu)先級(jí)高于加和減兩個(gè)運(yùn)算符。其中,求模“%”運(yùn)算符要求參與運(yùn)算的數(shù)據(jù)必須為整型。例如:8%3是正確的算術(shù)表達(dá)式,結(jié)果為2,而6.0%4就是錯(cuò)誤的。另外,兩個(gè)整型數(shù)相除,結(jié)果也為整型。例如:7/2結(jié)果為3。這兩個(gè)運(yùn)算符的作用是使變量的值加1或者減1。根據(jù)它們與數(shù)據(jù)的相對(duì)位置的不同,具體作用略有差別。前置:++i,--i(先執(zhí)行i=i+1或i=i-1,再使用i值)
后置:i++,i--(先使用i值,再執(zhí)行i=i+1或i=i-1)例如:j=3;k=++j;//運(yùn)算結(jié)果,j=4,k=4
j=3;k=j++;//運(yùn)算結(jié)果,j=4,k=3
無(wú)論++運(yùn)算符前置還是后置,變量的值都要加1,所影響的是需要使用j的值的其他變量。++和--運(yùn)算符是一元運(yùn)算符,運(yùn)算數(shù)只能是變量,不能是常量或者表達(dá)式。例如:6++,(x+y)++,都是錯(cuò)誤的。2.6運(yùn)算符和表達(dá)式2.6.3賦值運(yùn)算符及其表達(dá)式①簡(jiǎn)單賦值運(yùn)算符就是常見(jiàn)的“=”格式為:變量名=表達(dá)式,作用是將“=”右邊的表達(dá)式的值賦值給“=”左邊的變量。例如:inta,b;a=3; //表示將3賦值給變量a,a的值就是3b=25/4; //表示將25/4的結(jié)果6賦值給變量b,b的值就是6使用賦值運(yùn)算符需要注意的是,“=”左邊必須是變量,不能是表達(dá)式,如:a+b=5;是錯(cuò)誤的賦值表達(dá)式,應(yīng)該寫(xiě)成a=5-b;如果“=”兩邊的數(shù)據(jù)類(lèi)型不一致,那么要使賦值號(hào)右邊表達(dá)式值自動(dòng)轉(zhuǎn)換成其左邊變量的類(lèi)型。例如:inti;i=2.56;//結(jié)果i=2②復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符是“=”與其他運(yùn)算符結(jié)合起來(lái)使用,常用的有:+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=等。其含義為:變量op=表達(dá)式等價(jià)于變量=變量op表達(dá)式例如:a+=5;等價(jià)于a=a+5;復(fù)合賦值運(yùn)算符的右側(cè)是一個(gè)整體,例如:b*=c+2;等價(jià)于b=b*(c+2);賦值表達(dá)式的值與變量值相等,且可嵌套。例如:inta=6;a*=a+=a-=a*=5;//結(jié)果a=0等價(jià)于a=a*(a=a+(a=a-(a=a*5)));2.6運(yùn)算符和表達(dá)式關(guān)系運(yùn)算符及其表達(dá)式邏輯運(yùn)算符及其表達(dá)式關(guān)系運(yùn)算符是指用來(lái)比較兩個(gè)運(yùn)算數(shù)大小的運(yùn)算符,包括:<,<=,>,>=,==(相等),!=(不等)。運(yùn)算時(shí)結(jié)合方向?yàn)樽宰笙蛴遥?lt;,<=,>,>=的優(yōu)先級(jí)高于==,!=。關(guān)系表達(dá)式的值:是邏輯值“真”或“假”,用1和0表示。例如:6>4//表達(dá)式的值為1,在C語(yǔ)言中允許出現(xiàn)連續(xù)的比較運(yùn)算,但是運(yùn)算時(shí)自左向右依次進(jìn)行。例如:10>6>4//表達(dá)式的值為0。先進(jìn)行10>6的比較,結(jié)果為1,再進(jìn)行1>4的比較,最后結(jié)果為0。邏輯運(yùn)算符包括:非(!),與(&&),或(||),在邏輯表達(dá)式中參與邏輯運(yùn)算的運(yùn)算量中0表示“假”,非0表示“真”,運(yùn)算結(jié)果0表示“假”,1表示“真”。運(yùn)算規(guī)則如表2.5所示。表2.5邏輯真值表ab!a!ba&&ba||b真真假假真真真假假真假真假真真假假真假假真真假假非(!)的優(yōu)先級(jí)最高,運(yùn)算時(shí)結(jié)合方向?yàn)樽杂蚁蜃螅?/p>
與(&&)的優(yōu)先級(jí)高于或(||),結(jié)合方向都是自左向右。邏輯表達(dá)式求解時(shí),并非所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的解時(shí),才執(zhí)行該運(yùn)算符,這個(gè)性質(zhì)被稱(chēng)為邏輯運(yùn)算的“短路特性”。例如:a&&b&&c//只在a為真時(shí),才判別b的值;只在a、b都為真時(shí),才判別c的值a||b||c//只在a為假時(shí),才判別b的值;只在a、b都為假時(shí),才判別c的值本章小結(jié)
01030204C語(yǔ)言的標(biāo)識(shí)符、常量、變量的定義和使用方法;C語(yǔ)言的基本數(shù)據(jù)類(lèi)型的種類(lèi),其中比較重要的是各種整型數(shù)據(jù)類(lèi)型的取值范圍,實(shí)型數(shù)據(jù)的有效數(shù)字位數(shù);C語(yǔ)言的各種運(yùn)算符和表達(dá)式的使用方法和優(yōu)先級(jí)等注意事項(xiàng)。C語(yǔ)言不同類(lèi)型數(shù)據(jù)之間混合運(yùn)算時(shí)的轉(zhuǎn)換規(guī)則;本章介紹了C語(yǔ)言的基礎(chǔ)知識(shí),主要內(nèi)容包括:
課程結(jié)束課程結(jié)束習(xí)題二一、選擇題2.若有代數(shù)式3×a×e÷(b×c),則不正確的C語(yǔ)言表達(dá)式是________。2.6.1AA)3*a*e/b/cB)3*a*e/b*cC)a*e/c/b*3D)a/b/c*e*31.以下能定義為用戶(hù)標(biāo)識(shí)符的是________。A)intB)scanfC)voidD)_3com_6.以下敘述正確的是________。A)可以把define和if定義為用戶(hù)標(biāo)識(shí)符B)可以把if定義為用戶(hù)標(biāo)識(shí)符,但不能把define定義為用戶(hù)標(biāo)識(shí)符C)可以把define定義為用戶(hù)標(biāo)識(shí)符,但不能把if定義為用戶(hù)標(biāo)識(shí)符D)define和if都不能定義為用戶(hù)標(biāo)識(shí)符5.設(shè)有說(shuō)明:charw;intx;floaty;doublez;則表達(dá)式w*x+z-y值的數(shù)據(jù)類(lèi)型為_(kāi)_______。A)floatB)doubleC)int
D)char4.若有定義:inta=8,b=5,c;執(zhí)行語(yǔ)句c=a/b+0.4;后c的值為_(kāi)_______。A)1.4B)2.0C)1
D)23.設(shè)以下變量均為int類(lèi)型,則值不等于7的表達(dá)式是________。A)(x=y=6,x+y,y+1)B)(x=6,x+l,y=6,x+y)C)(y=6,y+1,x=y,x+1)D)(x=y=6,x+y,x+1)習(xí)題二一、選擇題9.以下選項(xiàng)中,與k=n++完全等價(jià)的表達(dá)式是_______。A)k+=n+1B)n=n+1,k=nC)k=++nD)k=n,n=n+18.下面四個(gè)選項(xiàng)中,均是不合法的轉(zhuǎn)義字符的選項(xiàng)是________。A)'\''、'\\’、'\xf'
B)'\011'、'\f'、'\}'C)'\1011'、'\'、'\aa'D)'\abc'、'\101'、'x1f'13.下面四個(gè)選項(xiàng)中,均是正確的數(shù)值常量或字符常量的選項(xiàng)是_________。A)0.0、0f、8.9e3.1、'&’ B)+001、0xabcd、2e2、50C)'3'、011、0xFF00、0a D)"a"、3.9E-2.5、1e1、'\"'12.下面正確的字符常量是________。A)'W’B)'\\''C)"c"
D)''11.若以下變量(sum,num,sUM)均是整型,且num=sum=7;則計(jì)算表達(dá)式sUM=num++,sUM++,++num后sum的值為_(kāi)_______。2.5DA)10B)8C)9D)710.已有定義:intx=3,y=4,z=5;,則表達(dá)式!(x+y)+z-1&&y+z/2的值是______。2.6.6BA)6B)1C)2D)0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 煉鋼企業(yè)安全生產(chǎn)制度
- 電子廠生產(chǎn)車(chē)間規(guī)章制度
- 攔河堰安全生產(chǎn)管理制度
- 門(mén)窗生產(chǎn)加工6s管理制度
- 2026年IT大廠面試結(jié)構(gòu)化問(wèn)答寶典
- 2026年生物科技發(fā)展趨勢(shì)與應(yīng)用題
- 2026年醫(yī)藥銷(xiāo)售初級(jí)專(zhuān)業(yè)知識(shí)與技能測(cè)試題
- 2026年旅游規(guī)劃與目的地管理專(zhuān)業(yè)筆試模擬題
- 公司司法解散清算專(zhuān)項(xiàng)法律服務(wù)方案
- 濰坊鋼鐵集團(tuán)公司校園招聘模擬試題附帶答案詳解及答案詳解一套
- 大數(shù)據(jù)安全技術(shù)與管理
- 2026青島海發(fā)國(guó)有資本投資運(yùn)營(yíng)集團(tuán)有限公司招聘計(jì)劃筆試備考試題及答案解析
- 鼻飼技術(shù)操作課件
- 置景服務(wù)合同范本
- 隧道掛防水板及架設(shè)鋼筋臺(tái)車(chē)施工方案
- 2025年國(guó)家市場(chǎng)監(jiān)管總局公開(kāi)遴選公務(wù)員面試題及答案
- 碼頭租賃意向協(xié)議書(shū)
- 初一語(yǔ)文2025年上學(xué)期現(xiàn)代文閱讀真題(附答案)
- 2026屆浙江紹興市高三一模高考數(shù)學(xué)試卷試題(含答案)
- GB/T 33092-2016皮帶運(yùn)輸機(jī)清掃器聚氨酯刮刀
- 中學(xué)主題班會(huì)課:期末考試應(yīng)試技巧點(diǎn)撥(共34張PPT)
評(píng)論
0/150
提交評(píng)論