數(shù)據(jù)描述與基本操作_第1頁(yè)
數(shù)據(jù)描述與基本操作_第2頁(yè)
數(shù)據(jù)描述與基本操作_第3頁(yè)
數(shù)據(jù)描述與基本操作_第4頁(yè)
數(shù)據(jù)描述與基本操作_第5頁(yè)
已閱讀5頁(yè),還剩100頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第二章數(shù)據(jù)描述與基本操作

本章學(xué)習(xí)重點(diǎn):

C語(yǔ)言的基本數(shù)據(jù)類型;

C語(yǔ)言的變量與常量;

運(yùn)算符與表達(dá)式以及數(shù)據(jù)類型的轉(zhuǎn)換;

掌握條件編譯的格式及使用方法。本章目錄第二講基本數(shù)據(jù)類型、變量與常量第三講運(yùn)算符與表達(dá)式、數(shù)據(jù)類型的轉(zhuǎn)換第四講數(shù)據(jù)的輸入與輸出本章小結(jié)結(jié)束第二講基本數(shù)據(jù)類型、變量與常量基本數(shù)據(jù)類型、變量與常量練一練本講小結(jié)返回到本章目錄基本數(shù)據(jù)類型、變量與常量【思考題2-1】

已知一個(gè)圓的半徑,求這個(gè)圓的周長(zhǎng)和面積。

(一)程序分析:如果我們用r代表圓的半徑,用l代表圓的周長(zhǎng),用s代表圓的面積,用PI代表圓周率π,那么圓的周長(zhǎng)公式是l=2πr,圓的面積公式是s=πrr。在這兩個(gè)公式里,PI是圓周率,固定不變的,而半徑是可變的,則圓的周長(zhǎng)與圓的面積也是可變的,那么,這些元素如何在C語(yǔ)言里進(jìn)行說(shuō)明并表示出來(lái)?這就是我們這一講要重點(diǎn)講述的內(nèi)容。

返回到本章目錄(二)編寫程序代碼如下:#include"stdio.h"/*文件包含命令*/#definePI3.14/*定義符號(hào)常量圓周率π*/main(){intr;/*定義圓的半徑r*/floatarea,length;/*定義圓的面積s和周長(zhǎng)l,為單精度浮點(diǎn)型*/r=3;/*為半徑變量r設(shè)置初始值*/length=2*PI*r;/*計(jì)算圓周長(zhǎng),并把結(jié)果賦值給l*/area=PI*r*r;/*計(jì)算圓的面積,并把結(jié)果賦值給s*/

printf("r=%d\nlength=%f\narea=%f\n",r,length,area);/*輸出運(yùn)算結(jié)果*/}

返回到本章目錄(三)調(diào)試程序及運(yùn)行結(jié)果按“Ctrl+F9”鍵,對(duì)程序進(jìn)行編譯,然后按“Alt+F5”鍵查看結(jié)果,程序運(yùn)行結(jié)果如下所示:返回到本章目錄1.標(biāo)識(shí)符(1)所謂標(biāo)識(shí)符,是指用來(lái)標(biāo)識(shí)程序中用到的變量、函數(shù)、類型、數(shù)組、文件以及符號(hào)常量等的有效字符序列。簡(jiǎn)言之,標(biāo)識(shí)符就是一個(gè)名字。C語(yǔ)言中的標(biāo)識(shí)符可以分為三類:即關(guān)鍵字、預(yù)定義標(biāo)識(shí)符和用戶自定義標(biāo)識(shí)符。返回到本章目錄(1)關(guān)鍵字(32個(gè))關(guān)鍵字又稱保留字,是C語(yǔ)言規(guī)定的具有特定意義的標(biāo)識(shí)符,它已被TurboC2.0本身使用,不能作其它用途使用,每個(gè)關(guān)鍵字都有固定的含義。C語(yǔ)言的關(guān)鍵字分為以下四類:①標(biāo)識(shí)數(shù)據(jù)類型的關(guān)鍵字(14個(gè))

int,long,short,char,float,double,signed,unsigned,struct,union,enum,void,volatile,const②標(biāo)識(shí)存儲(chǔ)類型的關(guān)鍵字(5個(gè))auto,static,register,extern,typedef返回到本章目錄③標(biāo)識(shí)流程控制的關(guān)鍵字(12)個(gè)

goto,return,break,continue,if,else,while,do,for,switch,case,default④標(biāo)識(shí)運(yùn)算符的關(guān)鍵字(1個(gè))

sizeof例如【思考題2-1】程序中的“float”就是數(shù)據(jù)類型的關(guān)鍵字,它表示單精度浮點(diǎn)型數(shù)據(jù)。返回到本章目錄(2)預(yù)定義標(biāo)識(shí)符預(yù)定義標(biāo)識(shí)符是一類具有特殊含義的標(biāo)識(shí)符,用于標(biāo)識(shí)庫(kù)函數(shù)名和編譯預(yù)處理命令。系統(tǒng)允許用戶把這些標(biāo)識(shí)符另作它用,但這將使這些標(biāo)識(shí)符失去系統(tǒng)規(guī)定的原意,為了避免誤解,建議不要將這些預(yù)定義標(biāo)識(shí)符另作它用。返回到本章目錄C語(yǔ)言中常見(jiàn)的有以下幾種:①編譯預(yù)處理命令define,ifdef,ifndef,endif,include,line,if,else等例如【思考題2-1】程序中的“include”和“define”就是兩個(gè)預(yù)定義標(biāo)識(shí)符,要在其前面加“#”號(hào),一般寫在主函數(shù)main的上面。②標(biāo)準(zhǔn)庫(kù)函數(shù)包括數(shù)學(xué)函數(shù):sqrt,fabs,sin,pow等,還有輸入輸出函數(shù):scanf,printf,getchar,putchar,gets,puts等。例如思考題例程中的“printf”就是一個(gè)輸出函數(shù),通過(guò)這個(gè)函數(shù)可以把結(jié)果在顯示器上顯示出來(lái)。返回到本章目錄(3)用戶定義標(biāo)識(shí)符用戶定義標(biāo)識(shí)符是程序員根據(jù)自己的需要定義的用于標(biāo)識(shí)變量、函數(shù)、數(shù)組等的一類標(biāo)識(shí)符。用戶在定義標(biāo)識(shí)符時(shí)應(yīng)符合C語(yǔ)言標(biāo)識(shí)符的命名規(guī)則。在C語(yǔ)言中,標(biāo)識(shí)符的命名規(guī)則如下:①只能由字母、數(shù)字和下劃線三種字符組成。②第一個(gè)字符必須為字母或下劃線。例如【思考題2-1】程序中的“PI,r,l,s“就是用戶自己定義的標(biāo)識(shí)符,只要符合C語(yǔ)言標(biāo)識(shí)符的命名規(guī)則即為合法。返回到本章目錄1.基本數(shù)據(jù)類型返回到本章目錄類型說(shuō)明內(nèi)存單元個(gè)數(shù)取值范圍char字符型1(8位)-128~127即-27

~(27-1)unsignedchar無(wú)符號(hào)字符型1(8位)0~255即0~(28-1)signedchar有符號(hào)字符型1(8位)-128~127即-27~(27-1)int整型2(16位)-32768~32767即-215~(215-1)unsignedint無(wú)符號(hào)整型2(16位)0~65535即0~(216-1)signedint有符號(hào)整型2(16位)-32768~32767即-215~(215-1)shortint短整型2(16位)-32768~32767即-215~(215-1)unsignedshortint無(wú)符號(hào)短整型2(16位)0~65535即0~(216-1)signedshortint有符號(hào)短整型2(16位)-32768~32767即-215~(215-1)longint長(zhǎng)整型4(32位)-2147483648~2147483647即-231~(231-1)unsignedlongint無(wú)符號(hào)長(zhǎng)整型4(32位)0~4294967295即0~(232-1)signedlongint有符號(hào)長(zhǎng)整型4(32位)-2147483648~2147483647即-231~(231-1)float單精度實(shí)型4(32位)-3.4E+38~3.4E+38double雙精度實(shí)型8(64位)-1.7E+308~1.7E+308返回到本章目錄重點(diǎn):類型的關(guān)鍵字及范圍3.變量(所謂變量,是指在程序運(yùn)行過(guò)程中其值可以改變的量。一個(gè)變量應(yīng)該有一個(gè)名字,在內(nèi)存中占據(jù)一定的存儲(chǔ)單元。變量定義必須放在變量使用之前。一般放在函數(shù)體的開頭部分。

變量定義的格式如下:存儲(chǔ)類型符數(shù)據(jù)類型符變量名表;返回到本章目錄說(shuō)明:①存儲(chǔ)類型符用來(lái)說(shuō)明變量的存儲(chǔ)類型,存儲(chǔ)類型可以是自動(dòng)類型(auto),寄存器類型(register)、靜態(tài)類型(static)、外部類型(extern),默認(rèn)為自動(dòng)類型(auto),如果對(duì)存儲(chǔ)類型未做任何說(shuō)明,則按默認(rèn)的自動(dòng)類型處理。②數(shù)據(jù)類型符用來(lái)說(shuō)明變量的數(shù)據(jù)類型,數(shù)據(jù)類型可以是C語(yǔ)言中任意一種基本數(shù)據(jù)類型或構(gòu)造數(shù)據(jù)類型標(biāo)識(shí)符。選擇最合適的。③變量名表中可以只有一個(gè)變量,也可以有多個(gè)變量,如果有多個(gè)變量,變量之間用逗號(hào)隔開。返回到本章目錄(2)變量的賦值定義變量后,在使用之前需要給定一個(gè)初始值。在C語(yǔ)言中,可以通過(guò)賦值運(yùn)算符“=”給變量賦值。變量賦值語(yǔ)句的一般格式是:變量名=表達(dá)式;返回到本章目錄變量的賦值,一般有以下兩種情況:①先定義變量,后賦值。如【思考題2-1】程序開頭的部分代碼:intr;……r=1;②變量的初始化。

在定義變量的同時(shí)為其賦值,稱為變量的初始化。定義的變量可以全部初始化,也可以部分初始化。對(duì)于上面的程序段我們也可以這樣寫:intr=1;即定義了整型變量r的同時(shí),對(duì)其賦初值為1。返回到本章目錄賦值的注意事項(xiàng)在給變量賦值時(shí),應(yīng)注意以下幾個(gè)問(wèn)題:①變量在某一時(shí)刻只有一個(gè)確定的值,變量獲得新值后,其原值將不再存在。例如:intr;……r=1;r=2;該程序執(zhí)行后,變量r的值是2,而不是1。②定義多個(gè)同類型變量時(shí),如果給所有變量賦同一個(gè)值,只能逐個(gè)處理。如有三個(gè)整型變量x,y,z,且初值均為10,可以寫成下面的形式:intx=10,y=10,z=10;③如果變量的類型與所賦數(shù)據(jù)的類型不一致,所賦數(shù)據(jù)將被轉(zhuǎn)換成與變量相同的類型。例如,下面的定義是合法的:intx=10.5;longy=99;該程序執(zhí)行后,變量x的值是整數(shù)10(只將整數(shù)部分賦給變量x),變量y的值是長(zhǎng)整數(shù)99。返回到本章目錄常量又稱常數(shù),是指在程序運(yùn)行過(guò)程中其值不能改變的量。C語(yǔ)言中的常量又分字面常量和符號(hào)常量。字面常量又稱直接常量,就是常說(shuō)的常數(shù)。字面常量可以分為不同的類型:

整型常量、實(shí)型常量、字符型常量與字符串常量。

4.常量返回到本章目錄(1)整型常量整型常量又稱整數(shù),在C語(yǔ)言中,整數(shù)可以用三種數(shù)制來(lái)表示:①十進(jìn)制整常數(shù):十進(jìn)制整常數(shù)沒(méi)有前綴。其數(shù)碼為0~9。②八進(jìn)制整常數(shù):八進(jìn)制整常數(shù)必須以0開頭,即以0作為八進(jìn)制數(shù)的前綴。數(shù)碼取值為0~7。八進(jìn)制數(shù)通常是無(wú)符號(hào)數(shù)。③十六進(jìn)制整常數(shù):十六進(jìn)制整常數(shù)的前綴為0X或0x。其數(shù)碼取值為0~9,A~F或a~f。④整型常數(shù)的后綴:在16位字長(zhǎng)的機(jī)器上,基本整型的長(zhǎng)度也為16位,因此表示數(shù)的范圍也是有限定的。返回到本章目錄0XA0,07,7(2)實(shí)型(浮點(diǎn)型)常量實(shí)型也稱為浮點(diǎn)型,實(shí)型常量也稱為實(shí)數(shù)或者浮點(diǎn)數(shù)。在C語(yǔ)言中,實(shí)數(shù)只采用十進(jìn)制。它有兩種形式:十進(jìn)制小數(shù)形式和指數(shù)形式。①十進(jìn)制小數(shù)形式。小數(shù)形式是由數(shù)碼0~9和小數(shù)點(diǎn)組成(注意:必須有小數(shù)點(diǎn))。例如:6.789,.789,6.,0.0都是十進(jìn)制小數(shù)形式的合法表示。②指數(shù)形式。指數(shù)形式又稱科學(xué)計(jì)數(shù)法。由十進(jìn)制小數(shù)加上階碼標(biāo)志“e”或“E”以及階碼(只能為整數(shù),可以帶符號(hào))組成。其一般形式為:其中a為十進(jìn)制數(shù),n為十進(jìn)制整數(shù),其值為a*10n。aEn

返回到本章目錄(3)字符型常量①字符常量的定義字符常量是用單引號(hào)括起來(lái)的一個(gè)字符。例如:'a','A','@','?'等。②字符常量的特點(diǎn):字符常量只能用單引號(hào)括起來(lái),不能用雙引號(hào)或其它括號(hào)。單引號(hào)只是字符與其它符號(hào)的分隔符,或者說(shuō)是字符常量的定界符,不是字符常量的一部分,當(dāng)輸出一個(gè)字符常量時(shí)不輸出此單引號(hào)。字符常量只能是單個(gè)字符,不能是多個(gè)字符。字符可以是字符集中任意字符。但數(shù)字被定義為字符型之后就不能參與數(shù)值運(yùn)算。如'5'和5是不同的。'5'是字符常量,不能參與運(yùn)算。返回到本章目錄③字符型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式及使用方法每個(gè)字符變量被分配一個(gè)字節(jié)的內(nèi)存空間,因此只能存放一個(gè)字符。返回到本章目錄(4)字符串常量①字符串常量的定義字符串常量是用一對(duì)雙引號(hào)括起來(lái)的零個(gè)或多個(gè)字符序列。如:"hello","","abc","123"等。字符串以雙引號(hào)為定界符,但雙引號(hào)并不屬于字符串。要在字符串中插入雙引號(hào),應(yīng)該借助轉(zhuǎn)義字符'\"'才行。字符串的長(zhǎng)度等于字符串中包含的字符個(gè)數(shù)。例如字符串"hello"的長(zhǎng)度為5個(gè)字符。返回到本章目錄②字符常量與字符串常量的區(qū)別字符常量由單引號(hào)括起來(lái),字符串常量由雙引號(hào)括起來(lái)。字符常量只能是單個(gè)字符,字符串常量則可以含一個(gè)或多個(gè)字符。可以把一個(gè)字符常量賦予一個(gè)字符變量,但不能把一個(gè)字符串常量賦予一個(gè)字符變量。在C語(yǔ)言中沒(méi)有相應(yīng)的字符串變量。這是與BASIC語(yǔ)言不同的。但是可以用一個(gè)字符數(shù)組來(lái)存放一個(gè)字符串常量。在數(shù)組一章內(nèi)予以介紹。字符常量占一個(gè)字節(jié)的內(nèi)存空間。字符串常量占的內(nèi)存字節(jié)數(shù)等于字符串中字節(jié)數(shù)加1。增加的一個(gè)字節(jié)中存放字符'\0'(ASCII碼為0)。這是字符串結(jié)束的標(biāo)志。返回到本章目錄(5)符號(hào)常量在C語(yǔ)言中,也可以用一個(gè)標(biāo)識(shí)符來(lái)表示一個(gè)常量,稱之為符號(hào)常量。符號(hào)常量在使用之前必須先定義,其一般形式為:符號(hào)常量的特點(diǎn)是:①習(xí)慣上符號(hào)常量的標(biāo)識(shí)符用大寫字母,變量標(biāo)識(shí)符用小寫字母,以示區(qū)別。②符號(hào)常量與變量不同,它的值在其作用域內(nèi)不能改變,也不能再被賦值。使用符號(hào)常量的好處是:含義清楚,并且能做到“一改全改”。#define標(biāo)識(shí)符常量返回到本章目錄【練習(xí)2-1】請(qǐng)判斷下列哪些用戶自定義標(biāo)識(shí)符是合法的?()A)a&b,1_xy,e5,a.bB)exam,x1,int,defineC)ram,_mn,3ep,x*yD)ch,x_3_1,z2,num解:因?yàn)闃?biāo)識(shí)符只能由英文大小寫字母,數(shù)字和下劃線三種字符組成,且開頭字母只能由字母和下劃線組成。所以只有D中的所有標(biāo)識(shí)符是正確的。注意用戶自定義標(biāo)識(shí)符不能是系統(tǒng)的保留字(關(guān)鍵字),而C語(yǔ)言中的int和define是關(guān)鍵字,不能做標(biāo)識(shí)符,也是錯(cuò)誤的?!揪毩?xí)2-2】下面哪個(gè)是合法的字符串常量()

A)'a'B)'\076'C)"Hello"D)Hello解:因?yàn)樽址A渴怯靡粚?duì)單引號(hào)引起來(lái)的一個(gè)字符,字符串是用一對(duì)雙引號(hào)引起來(lái)的零個(gè)或多個(gè)字符序列。所以必須得有一對(duì)雙引號(hào),里面可以有n(n≥0)個(gè)字符的序列。所以選擇C。而A和B都是字符常量,D可以是一個(gè)標(biāo)識(shí)符。練一練返回到本章目錄【練習(xí)2-3】下面哪個(gè)表示浮點(diǎn)數(shù)的科學(xué)計(jì)數(shù)表示法是正確的?()

A)3e2.5B)1.25eC)3.45e-5D)e+8解:因?yàn)榭茖W(xué)計(jì)數(shù)法有兩點(diǎn)要求:(1)e或E前后必須有數(shù)字,(2)e或E后的數(shù)字必須是整數(shù)。所以答案C是正確的。A錯(cuò)誤在于e后的數(shù)字為小數(shù),B錯(cuò)誤在于e后沒(méi)有數(shù)字,D錯(cuò)誤在于e前面沒(méi)有數(shù)字?!揪毩?xí)2-4】下面的變量定義及初始化語(yǔ)句哪個(gè)是正確的?()A)inta=3;b=5;B)inta=3b=5C)inta=3,b=5;D)inta==3,b==5;解:因?yàn)樽兞慷x及初始化語(yǔ)句格式是:類型符變量名1=初值1,變量名2=初值2,……;各變量之間用逗號(hào)分隔,語(yǔ)句結(jié)束標(biāo)志為分號(hào)“;”變量初始化的賦值運(yùn)算符為“=”,所以正確答案為C。

返回到本章目錄本講小結(jié)本次課主要介紹基本標(biāo)識(shí)符的定義及其分類情況,C語(yǔ)言的數(shù)據(jù)類型及各代表符號(hào),運(yùn)算符的使用,變量的定義、初始化、賦值,常量的定義與應(yīng)用。返回到本章目錄練習(xí)返回到本章目錄第三講 運(yùn)算符與表達(dá)式、數(shù)據(jù)類型的轉(zhuǎn)換一、

算術(shù)運(yùn)算與賦值運(yùn)算二、關(guān)系運(yùn)算、邏輯運(yùn)算與條件運(yùn)算三、圓括號(hào)運(yùn)算符、逗號(hào)運(yùn)算符和sizeof運(yùn)算符練一練本章小節(jié)返回到本章目錄第三講 運(yùn)算符與表達(dá)式、數(shù)據(jù)類型的轉(zhuǎn)換要求:熟悉各種運(yùn)算符及作用; 在將來(lái)使用時(shí)有據(jù)可查。返回到本章目錄一、算術(shù)運(yùn)算與賦值運(yùn)算【思考題2-2】有兩個(gè)變量x、y,x的初始值為9,y的初始值為4,分別求出x與y的和、差、積、商與余數(shù)。(一)程序分析通過(guò)上一講中我們講了變量的聲明與初始化,可以對(duì)變量x與y進(jìn)行聲明與初始化,用變量a、b、c、d、e分別表示x與y的和、差、積、商與余數(shù)。返回到本章目錄(二)編寫程序代碼main(){intx=9,y=4,a,b,c,d,e;a=x+y;b=x-y;c=x*y;d=x/y;e=x%y;printf("x+y=%d\nx-y=%d\nx*y=%d\nx/y=%d\nx%%y=%d\n",a,b,c,d,e);}返回到本章目錄(三)調(diào)試程序及運(yùn)行結(jié)果程序運(yùn)行結(jié)果如下:返回到本章目錄(1)x/y的結(jié)果為2,而不是2.25,這是因?yàn)椤?”號(hào)在C語(yǔ)言中的除法有兩種運(yùn)算:

如果兩個(gè)運(yùn)算符都為整型變量時(shí),結(jié)果為舍去取整。

如果兩個(gè)運(yùn)算符中有一個(gè)為小數(shù)(即浮點(diǎn)型變量)時(shí),結(jié)果為正常的小數(shù)。(2)輸出“x%y”時(shí),輸出的格式“x%%y=%d”。因?yàn)椤?”為格式化輸入輸出時(shí)的起始字符,所以要在屏幕上輸出“%”可以連續(xù)打兩個(gè)“%”,就可以在屏幕上顯示一個(gè)“%”字符。返回到本章目錄1.算術(shù)運(yùn)算符及算術(shù)表達(dá)式運(yùn)算符名稱運(yùn)算類型示例功能+正號(hào)運(yùn)算符單目運(yùn)算符+5取正數(shù)5-負(fù)號(hào)運(yùn)算符單目運(yùn)算符-5取負(fù)數(shù)5+加法運(yùn)算符雙目運(yùn)算符a+b求a與b之和-減法運(yùn)算符雙目運(yùn)算符a-b求a與b之差*乘法運(yùn)算符雙目運(yùn)算符a*b求a與b之積/除法運(yùn)算符雙目運(yùn)算符a/b求a與b之商%求余運(yùn)算符雙目運(yùn)算符a%b求a除以b的余數(shù)++自增運(yùn)算符單目運(yùn)算符++a將a的值加1--自減運(yùn)算符單目運(yùn)算符--a將a的值減1返回到本章目錄(1)求余運(yùn)算符“%”又稱取模運(yùn)算符,要求“%”的兩側(cè)必須為整型數(shù),它的作用是取兩個(gè)整型數(shù)相除的余數(shù),余數(shù)的符號(hào)與被除數(shù)的符號(hào)相同。例如【思考題2-2】中的e=x%y,x的值為9,y的值為4,因此e=x%y即相當(dāng)于e=9%4,它的結(jié)果是1?,F(xiàn)在假設(shè)x的值為-9,則-9%4的結(jié)果就是-1,如果x不變,y為-4,則-9%-4的結(jié)果是-1。返回到本章目錄(2)除法運(yùn)算符“/”當(dāng)兩個(gè)操作數(shù)都是整數(shù)時(shí),運(yùn)算的結(jié)果是整數(shù)(舍去取整),即表示“整除”。如果參加運(yùn)算的兩個(gè)數(shù)中有一個(gè)是實(shí)數(shù),則結(jié)果是實(shí)數(shù)。在【思考題2-2】中,x與y分別是9和4,是兩個(gè)整數(shù),x/y的結(jié)果是2,那么,如果把x定義為:floatx=9.0,則x/y的結(jié)果就變?yōu)?.250000。返回到本章目錄(3)自增運(yùn)算符“++”或自減運(yùn)算符“--”自增運(yùn)算符“++”或自減運(yùn)算符“--的作用是使運(yùn)算對(duì)象的值增1或減1。它們既可以作前綴運(yùn)算符(位于運(yùn)算對(duì)象的前面),例如++x和—x,也可以作后綴運(yùn)算符(位于運(yùn)算對(duì)象的后面),例如x++和x--。++x表示x=x+1返回到本章目錄使用自增運(yùn)算符或自減運(yùn)算符,應(yīng)注意以下幾個(gè)問(wèn)題:①使用自增或自減運(yùn)算符只適合用于整型或字符型變量,而不能用于常量或表達(dá)式。例如(x+y)++和++9都是不合法的。返回到本章目錄②自增或自減運(yùn)算符,通常用于循環(huán)語(yǔ)句中,使循環(huán)語(yǔ)句的值加1或減1,也可以用于指針變量,使指針變量指向下一個(gè)地址或前一個(gè)地址。③在只需對(duì)變量本身進(jìn)行加1或減1而不考慮表達(dá)式值的情況下,前綴運(yùn)算和后綴運(yùn)算的效果完全相同,否則,結(jié)果是有不一樣的:返回到本章目錄④自增(減)運(yùn)算符的結(jié)合性是“自右向左”。例:inti=2,j;

j=-i++;運(yùn)行結(jié)果是什么?返回到本章目錄2.賦值運(yùn)算符與賦值表達(dá)式“=”是C語(yǔ)言的賦值運(yùn)算符,在【思考題2-2】中,語(yǔ)句a=x+y中“=”就是賦值符號(hào),而不是我們數(shù)學(xué)意義上的“等于號(hào)”,數(shù)學(xué)上的“等于號(hào)”(相當(dāng)于關(guān)系運(yùn)算符中的“比較等于”)在C語(yǔ)言中用“==”表示。C語(yǔ)言允許在賦值運(yùn)算符“=”之前加上其他運(yùn)算符,構(gòu)成復(fù)合賦值運(yùn)算符。C語(yǔ)言共有10種復(fù)合賦值運(yùn)算符,如下表所示:返回到本章目錄名稱運(yùn)算符示例等價(jià)于加賦值運(yùn)算符+=a+=ba=a+b減賦值運(yùn)算符-=a-=ba=a-b乘賦值運(yùn)算符*=a*=ba=a*b除賦值運(yùn)算符/=a/=ba=a/b取余賦值運(yùn)算符%=a%=ba=a%b位與賦值運(yùn)算符&=a&=ba=a&b位或賦值運(yùn)算符|=a|=ba=a|b異或賦值運(yùn)算符∧=a∧=ba=a∧b左移賦值運(yùn)算符<<=a<<=ba=a<<b右移賦值運(yùn)算符>>=a>>=ba=>>b返回到本章目錄注意:(1)賦值運(yùn)算符和復(fù)合賦值運(yùn)算符的結(jié)合方向均為從右到左,優(yōu)先級(jí)只高于逗號(hào)運(yùn)算符,而比其他運(yùn)算符的優(yōu)先級(jí)都低。例如:表達(dá)式x*=y+2等價(jià)于x=x*(y+2)。賦值表達(dá)式是由賦值運(yùn)算符“=”將一個(gè)變量和表達(dá)式連接起來(lái)的式子。賦值表達(dá)式的一般格式為:(2)賦值運(yùn)算符左邊必須是變量。賦值表達(dá)式的值就是被賦值后的變量值。如果一個(gè)語(yǔ)句中出現(xiàn)多個(gè)復(fù)合賦值表達(dá)式時(shí),從右向左依次進(jìn)行賦值。變量名=表達(dá)式返回到本章目錄注意:如果一個(gè)語(yǔ)句中出現(xiàn)多個(gè)復(fù)合賦值表達(dá)式時(shí),從右向左依次進(jìn)行賦值。例:inta=12;

a+=a-=a*=a 求a的值。返回到本章目錄二、關(guān)系運(yùn)算、邏輯運(yùn)算與條件運(yùn)算【思考題2-3】輸入一個(gè)字母,判斷它是否是小寫字母,若是則轉(zhuǎn)換成大寫字母,否則不轉(zhuǎn)換,并輸出所得的結(jié)果。(一)程序分析在輸入一個(gè)字符時(shí),先判斷它的取值區(qū)間,如果是大寫字母“A~Z”,則它的ASCII值是65~90,如果是小寫字母“a~z”的ASCII碼值是97~122,大小寫字母ASCII碼的差值為32,因此半小寫字母轉(zhuǎn)換成大寫字母只需將其ASCII碼減去32即可,反之將大寫字母轉(zhuǎn)換成小寫字母只需將其ASCII碼加上32即可。返回到本章目錄(二)編寫程序代碼main(){charc;/*定義變量c為字符數(shù)據(jù)類型*/

printf("\ninputchar:");

scanf("%c",&c);/*輸入字符c*/c=(c>='a'&&c<='z')?c-32:c;/*若c在'a'~'z'范圍內(nèi),轉(zhuǎn)換成大寫字母*/

printf("\noutput

char:%c\n",c);/*輸出轉(zhuǎn)變后的結(jié)果c*/}(三)調(diào)試運(yùn)行程序程序運(yùn)行結(jié)果如下:返回到本章目錄3.關(guān)系運(yùn)算與關(guān)系表達(dá)式C語(yǔ)言的關(guān)系運(yùn)算符表運(yùn)算符名稱運(yùn)算類型示例功能<小于運(yùn)算符雙目運(yùn)算符a<b判斷a是否小于b<=小于等于運(yùn)算符雙目運(yùn)算符a<=b判斷a是否小于等于b>大于運(yùn)算符雙目運(yùn)算符a>b判斷a是否大于b>=大于等于運(yùn)算符雙目運(yùn)算符a>=b判斷a是否大于等于b==等于運(yùn)算符雙目運(yùn)算符a==b判斷a和b是否相等!=不等于運(yùn)算符雙目運(yùn)算符a!=b判斷a和b是否不相等返回到本章目錄使用關(guān)系運(yùn)算符時(shí),應(yīng)注意以下幾個(gè)問(wèn)題:(1)在上述6個(gè)運(yùn)算符中,前4個(gè)運(yùn)算符的優(yōu)先級(jí)高于后兩個(gè)運(yùn)算符的優(yōu)先級(jí)。(2)應(yīng)將等于關(guān)系運(yùn)算符“==”與賦值運(yùn)算符“=”相區(qū)別?!?=”是關(guān)系運(yùn)算符,用于比較運(yùn)算,而“=”是賦值運(yùn)算符,用于賦值運(yùn)算。(3)關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符而高于賦值運(yùn)算符。它們的結(jié)合性是自左至右。返回到本章目錄例:charc=‘d’;intm=2,n=5;求下列表達(dá)式的值:(1)c+1==‘e’(2)c+‘A’-’a’!=‘D’(3)m-2*n<=n+9(4)m==2<n返回到本章目錄4.邏輯運(yùn)算符與邏輯表達(dá)式

C語(yǔ)言的邏輯運(yùn)算符及功能

運(yùn)算符名稱運(yùn)算類型示例功能!邏輯非單目運(yùn)算符!a若a為真,則!a為假,否則!a為真&&邏輯與雙目運(yùn)算符a&&b若a,b均為真,則a&&b為真,否則a&&b為假|(zhì)|邏輯或雙目運(yùn)算符a||b若a,b均為假,則a||b為假,否則a||b為真返回到本章目錄使用邏輯運(yùn)算符,應(yīng)注意以下幾個(gè)問(wèn)題:(1)三個(gè)邏輯運(yùn)算符的優(yōu)先次序?yàn)椋?(邏輯非)→&&(邏輯與)→||(邏輯或),即邏輯非“!”最高,邏輯與“&&”次之,邏輯或“||”最低。(2)邏輯非“!”的優(yōu)先級(jí)高于算術(shù)運(yùn)算符,邏輯與“&&”和邏輯或“||”的優(yōu)先級(jí)低于算術(shù)運(yùn)算符和關(guān)系運(yùn)算符,高于賦值運(yùn)算符。在c>='a'&&c<='z'中,就要先進(jìn)行“c>='a'”和“c<='z'”的關(guān)系運(yùn)算,再進(jìn)行邏輯與運(yùn)算。(3)邏輯運(yùn)算符中邏輯非“!”的結(jié)合方向是自右至左,邏輯“&&”和邏輯或“||”的結(jié)合方向是自左至右。返回到本章目錄邏輯運(yùn)算的真假值表ab!a!ba&&ba||b真真假假真真真假假真假真假真真假假真假假真真假假返回到本章目錄5.條件運(yùn)算符與條件表達(dá)式條件運(yùn)算符是由字符“?”和“:”組成的,要求有三個(gè)運(yùn)算對(duì)象,是C語(yǔ)言中惟一的三目運(yùn)算符。條件運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算和逗號(hào)運(yùn)算符,而低于其他運(yùn)算符。其結(jié)合性為自右至左。條件表達(dá)式是由條件運(yùn)算符將運(yùn)算對(duì)象連接起來(lái)的式子。它的一般格式為:表達(dá)式1?表達(dá)式2:表達(dá)式3返回到本章目錄條件表達(dá)式的求解過(guò)程為:先求解表達(dá)式1,若表達(dá)式的值為1(真),則求解表達(dá)式2,并將其作為整個(gè)表達(dá)式的值;如表達(dá)式的值為0(假),則求解表達(dá)式3,并將其作為整個(gè)表達(dá)式的值。P29思考題。三、圓括號(hào)運(yùn)算符、逗號(hào)運(yùn)算符和sizeof運(yùn)算符

【思考題2-4】設(shè)a,b,c三個(gè)整數(shù)變量,初始值分別為1、2和3,計(jì)算a*(b+c)的值,要求使用逗號(hào)運(yùn)算符來(lái)寫出表達(dá)式。(一)程序分析在這個(gè)數(shù)學(xué)算式中,應(yīng)該先計(jì)算b+c的值,再將和與a相乘,最后輸出結(jié)果。我們將賦值表達(dá)式和計(jì)算表達(dá)式都寫在一起,構(gòu)成逗號(hào)表達(dá)式,并將這個(gè)表達(dá)式的結(jié)果賦給變量s,注意書寫格式和最后賦值是哪個(gè)表達(dá)式。返回到本章目錄(二)編寫程序代碼main(){int

s,a,b,c;s=(a=1,b=2,c=3,a*(b+c));

printf("a=%d\nb=%d\nc=%f\na*(b+c)=%d\n",a,b,c,s);}(三)調(diào)試運(yùn)行程序程序運(yùn)行結(jié)果如下:

返回到本章目錄6.圓括號(hào)運(yùn)算符圓括號(hào)運(yùn)算符是“()”,其優(yōu)先級(jí)最高,用它將某些運(yùn)算符和運(yùn)算對(duì)象括起來(lái)以后,這些括起來(lái)的運(yùn)算符和運(yùn)算對(duì)象要優(yōu)先運(yùn)算。例如【思考題2-4】中,語(yǔ)句代碼s=(a=1,b=2,c=3,c=a*(b+c));中,盡管運(yùn)算符“*”的優(yōu)先級(jí)比運(yùn)算符的“+”的優(yōu)先級(jí)更高,但由于(b+c)使用了圓括號(hào)運(yùn)算符,故應(yīng)優(yōu)先運(yùn)行b+c。在這個(gè)語(yǔ)句中,我們使用了兩個(gè)“()”運(yùn)算符,應(yīng)先計(jì)算最里面的圓括號(hào),再計(jì)算外面的,如果兩個(gè)“()”并列排列,則應(yīng)遵循由左向右的優(yōu)先原則。返回到本章目錄7.逗號(hào)運(yùn)算符

在【思考題2-4】中,語(yǔ)句s=(a=1,b=2,c=3,c=a*(b+c));中的“,”代表了逗號(hào)運(yùn)算符。在C語(yǔ)言中,符號(hào)“,”除了作分隔符外,還可以作為運(yùn)算符將若干個(gè)表達(dá)式連接在一起形成逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的一般格式為:逗號(hào)表達(dá)式的運(yùn)算規(guī)則是:先求解表達(dá)式1,再求解表達(dá)式2,依次求解到表達(dá)式n。最后一個(gè)表達(dá)式的值就是整個(gè)逗號(hào)表達(dá)式的值。逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低,結(jié)合性為自左至右。表達(dá)式1,表達(dá)式2,…,表達(dá)式n返回到本章目錄8.求字節(jié)運(yùn)算符sizeof

sizeof的定義格式如下(2)功能

測(cè)定某一種類型數(shù)據(jù)所占存儲(chǔ)空間長(zhǎng)度,結(jié)果是該類型在內(nèi)存中所占的字節(jié)數(shù)。括號(hào)內(nèi)可以是該數(shù)據(jù)類型名或是該類型的變量名。sizeof(數(shù)據(jù)類型名)或sizeof(變量名)返回到本章目錄9.?dāng)?shù)據(jù)類型的轉(zhuǎn)換在C語(yǔ)言中,數(shù)據(jù)類型轉(zhuǎn)換方式有兩種:自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。所謂自動(dòng)類型轉(zhuǎn)換指在C語(yǔ)言中,不同的數(shù)據(jù)可以出現(xiàn)在同一個(gè)表達(dá)式中。在進(jìn)行運(yùn)算時(shí),C語(yǔ)言自動(dòng)進(jìn)行必要的數(shù)據(jù)類型轉(zhuǎn)換,以完成表達(dá)式的求值。當(dāng)與一個(gè)運(yùn)算符相關(guān)聯(lián)的兩個(gè)運(yùn)算對(duì)象的類型不同時(shí),其中的一個(gè)運(yùn)算對(duì)象的類型將轉(zhuǎn)換成與另一個(gè)運(yùn)算對(duì)象的類型相同。返回到本章目錄轉(zhuǎn)換的優(yōu)先順序如圖所示:返回到本章目錄練一練

【練習(xí)2-5】假設(shè)a,b,c均為整數(shù),用C語(yǔ)言描述下列命題:(1)a小于b或小于c。(2)a或b都大于c。(3)a和b中至少有一個(gè)小于c。(4)a是非正數(shù)。(5)a是奇數(shù)。(6)a不能被b整除。解:描述如下:(1)a<b||a<c(2)a>c||b>c(3)(a<c&&b<c)||(a<c&&b>c)||(a>c&&b<c)(4)a<=0(5)a%2!=0或a%2==1(6)a%b!=0【練習(xí)2-6】假設(shè)x=3,y=z=4,求下列表達(dá)式的值。(1)(z>=y&&z>=x)?1:0(2)z>=y&&y>=x解:描述如下:(1)1(2)1返回到本章目錄本講小結(jié)C語(yǔ)言的運(yùn)算符,不同的運(yùn)算符具有不同的優(yōu)先級(jí)和結(jié)合性表達(dá)式以及表達(dá)式的求值數(shù)據(jù)類型轉(zhuǎn)換的兩種方式有兩種:自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。返回到本章目錄第四講數(shù)據(jù)的輸入與輸出一、字符輸入、輸出二、標(biāo)準(zhǔn)輸入、輸出函數(shù)三、練一練四、本講小結(jié)返回到本章目錄一、字符串的輸入、輸出【思考題2-5】從鍵盤上輸入一個(gè)字符,將該字符存到計(jì)算機(jī)內(nèi)并顯示在屏幕上,并輸出一個(gè)換行符。然后再輸入一個(gè)字符并直接輸出(不存入任何變量),再輸出一個(gè)回車換行符。(一)程序分析從鍵盤輸入一個(gè)字符并顯示到屏幕,需要用到單個(gè)字符的輸入函數(shù)和字符輸出函數(shù)。注意這兩個(gè)函數(shù)的使用格式和參數(shù)形式。返回到本章目錄(二)編寫程序代碼main(){charch;

printf("Pleaseinputtwocharacters:");

ch=getchar(); /*從鍵盤輸入一個(gè)字符并賦給變量ch*/

putchar(ch);putchar('\n');

putchar(getchar()); /*從鍵盤輸入一個(gè)字符并直接輸出*/

putchar('\n');}返回到本章目錄(三)調(diào)試運(yùn)行程序從鍵盤上輸入兩個(gè)字符a和b,程序運(yùn)行結(jié)果如下:返回到本章目錄1.字符輸入函數(shù)getchar(1)字符輸入函數(shù)getchar()的格式如下:(2)功能函數(shù)getchar()功能是從鍵盤上接收輸入的一個(gè)字符。(3)說(shuō)明調(diào)用函數(shù)時(shí),當(dāng)程序執(zhí)行到getchar函數(shù)調(diào)用語(yǔ)句時(shí),將等待輸入,只有當(dāng)用戶輸入字符,并按回車鍵后,才接收輸入的第1個(gè)字符,并在屏幕上回顯該字符,同時(shí)送到內(nèi)存的緩沖區(qū),準(zhǔn)備賦給指定的變量。并且對(duì)空格符、制表符(Tab鍵)和回車換行符(Enter鍵)都被當(dāng)作有效字符讀入。getch()函數(shù)是立即接收用戶來(lái)自鍵盤上的輸入,不把字符回顯到屏幕上。getchar()或getch()返回到本章目錄2.字符輸出函數(shù)putchar

(1)格式字符輸出函數(shù)putchar()的定義格式如下(2)功能其作用是將參數(shù)代表的字符在標(biāo)準(zhǔn)輸出設(shè)備(通常是顯示器)上加以輸出。(3)說(shuō)明參數(shù)ch可以是字符常量、字符變量或整型表達(dá)式,其功能等價(jià)于:printf("%c",ch);/*標(biāo)準(zhǔn)輸出函數(shù)printf()會(huì)在本節(jié)后面講解*/putchar(ch)返回到本章目錄putchar函數(shù)也可以輸出一些特殊字符(控制字符),如在思考題2-5中的語(yǔ)句:putchar('\n');作用是輸出一個(gè)“回車換行”字符。putchar()函數(shù)的參數(shù)也可以是一個(gè)函數(shù),如思考題2-6中語(yǔ)句:putchar(getchar());就是用getchar()從鍵盤中讀入一個(gè)字符,然后直接使用該字符作為putchar()函數(shù)的參數(shù),輸出到屏幕上。返回到本章目錄二、標(biāo)準(zhǔn)輸入、輸出函數(shù)

【思考題2-6】分析下列程序,觀察運(yùn)行結(jié)果。源程序如下:main(){charch='a';/*定義變量并賦值*/inta=98;unsignedb=1000;longc=123456789;floatx=3.14;doubley=1.2345678;printf("(1)a=%d,a=%c,ch=%d,ch=%c\n",a,a,ch,ch);printf("(2)b=%u\n",b);printf("(3)c=%ld\n",c);printf("(4)x=%f,y=%f\n",x,y);printf("(5)x=%e,y=%e\n",x,y);printf("(6)y=%-10.2f\n",y);}返回到本章目錄(一)程序分析變量a為整型,所以程序第一行前兩項(xiàng)是輸出變量a的整數(shù)值和對(duì)應(yīng)其ASCII碼的字符;變量ch為字符型,程序第一行后兩項(xiàng)輸出變量ch的整數(shù)值和對(duì)應(yīng)其ASCII碼的字符。因?yàn)樽址谟?jì)算機(jī)中是以ASCII碼形式存儲(chǔ)的,所以可以以整數(shù)和字符兩種形式輸出。變量b為無(wú)符號(hào)整型變量,1000為正整數(shù),所以第二行直接原樣輸出b。變量c為長(zhǎng)整型變量,123456789的大小不超過(guò)長(zhǎng)整型變量的最大值,所以第三行原樣輸出c。返回到本章目錄變量x為單精度浮點(diǎn)型變量,變量y為雙單精度浮點(diǎn)型變量,所以在輸出時(shí)默認(rèn)是小數(shù)點(diǎn)后保留6位,所以第四行以%f格式輸出和y時(shí)保留小數(shù)點(diǎn)后6位,初始化值不足6位由系統(tǒng)自動(dòng)補(bǔ)足6位。第5行是將變量x和y以科學(xué)計(jì)數(shù)法形式輸出,e(或E)前的小數(shù)為整數(shù)位只有一位的純小數(shù),e后為科學(xué)計(jì)數(shù)法的10的次冪數(shù)。第6行是將變量y以10位數(shù),保留小數(shù)點(diǎn)后兩位數(shù)的形式輸出。返回到本章目錄(二)調(diào)試運(yùn)行程序程序運(yùn)行結(jié)果如下:返回到本章目錄3.格式輸入函數(shù)scanf(1)格式控制函數(shù)scanf的調(diào)用格式如下:(2)功能用來(lái)輸入任何類型數(shù)據(jù),可同時(shí)輸入多個(gè)類型或不同類型的數(shù)據(jù)。scanf("格式控制字符串",輸入地址列表);返回到本章目錄(3)“格式控制字符串”說(shuō)明格式字符串的一般形式為:其中有方括號(hào)[]的項(xiàng)為任選項(xiàng)(可寫可不寫)。%[*][輸入數(shù)據(jù)寬度][長(zhǎng)度]類型返回到本章目錄①類型:表示輸入數(shù)據(jù)的類型,其格式符和意義如下表所示例如,程序段:charch='A';printf("%c",ch);程序輸出結(jié)果是輸出字符A。格式字符意義d輸入十進(jìn)制整數(shù)o輸入八進(jìn)制整數(shù)x輸入十六進(jìn)制整數(shù)u輸入無(wú)符號(hào)十進(jìn)制整數(shù)f或e輸入實(shí)數(shù)(用小數(shù)形式或指數(shù)形式)c輸入單個(gè)字符s輸入字符串返回到本章目錄②“*”符:用以表示該輸入項(xiàng),讀入后不賦予相應(yīng)的變量,即跳過(guò)該輸入值。例如有如下輸入語(yǔ)句:

scanf("%d%*d%d",&a,&b);當(dāng)輸入為:123時(shí),將1賦予a,2被跳過(guò),3賦予b。返回到本章目錄③輸入數(shù)據(jù)寬度:用十進(jìn)制整數(shù)指定輸入的寬度(即字符數(shù))。例如:scanf("%5d",&a);輸入:12345678↙只把12345賦予變量a,其余部分被截去。④長(zhǎng)度:長(zhǎng)度格式符為l和h,l表示輸入長(zhǎng)整型數(shù)據(jù)(如%ld)和雙精度浮點(diǎn)數(shù)(如%lf)。h表示輸入短整型數(shù)據(jù)。返回到本章目錄(4)地址表列中給出各變量的地址。地址是由地址運(yùn)算符“&”后跟變量名組成的。在C語(yǔ)言中,使用了地址這個(gè)概念,應(yīng)該把變量的值和變量的地址這兩個(gè)不同的概念區(qū)別開來(lái)。變量的地址是C編譯系統(tǒng)分配的,用戶不必關(guān)心具體的地址是多少。例如:&a和&b分別表示變量a和變量b的地址,這個(gè)地址是編譯系統(tǒng)在內(nèi)存中為變量a、b分配的地址。在賦值語(yǔ)句中給變量賦值,例如:a=567;

則a為變量名,567是變量的值,&a表示變量a的地址。但在賦值號(hào)左邊是變量名,不能寫地址,而scanf函數(shù)在本質(zhì)上也是給變量賦值,但要求寫變量的地址,如&a。這兩者在形式上是不同的。&是一個(gè)取地址運(yùn)算符,&a是一個(gè)表達(dá)式,其功能是求變量的地址。返回到本章目錄(5)使用scanf函數(shù)還必須注意以下幾點(diǎn):①在用scanf函數(shù)輸入數(shù)據(jù)時(shí),不能規(guī)定精度。例如,在輸入時(shí)不能設(shè)浮點(diǎn)型數(shù)據(jù)的小數(shù)位數(shù),如:floatf;scanf("%7.2f",&f);是不對(duì)的,只能寫成:scanf("%f",&f);②scanf中要求給出變量地址,如給出變量名則會(huì)出錯(cuò)。例如scanf("%d",a);是非法的,應(yīng)改為scnaf("%d",&a);才是合法的。返回到本章目錄③在輸入多個(gè)數(shù)值數(shù)據(jù)時(shí),若格式控制串中沒(méi)有非格式字符作輸入數(shù)據(jù)之間的間隔則可用空格,TAB或回車作間隔。C編譯在碰到空格、TAB、回車或非法數(shù)據(jù)(如對(duì)“%d”輸入“12A”時(shí),A即為非法數(shù)據(jù))時(shí)即認(rèn)為該數(shù)據(jù)結(jié)束。④在輸入字符數(shù)據(jù)時(shí),若格式控制串中無(wú)非格式字符,則認(rèn)為所有輸入的字符均為有效字符。返回到本章目錄⑤如果格式控制串中有非格式字符則輸入時(shí)也要輸入該非格式字符。⑥注意用scanf函數(shù)(使用“%s”格式)讀入字符串時(shí),如果輸入的字符串有空格或Tab鍵時(shí),只將空格之前的所有字符讀入,之后的字符串并不讀入。所以用這種格式不能讀入帶空格的字符串。如果想讀入帶空格的字符串可使用gets函數(shù)(在后面第4章的字符數(shù)組有講解)。⑦在scanf函數(shù)中不使用%u說(shuō)明符,對(duì)unsigned型數(shù)據(jù),以%d或%o、%x格式輸入。返回到本章目錄4.格式輸出函數(shù)printf(1)printf函數(shù)調(diào)用的形式:printf中的輸出項(xiàng)是和前面的格式控制字符串按順序一一對(duì)應(yīng)的。“項(xiàng)”可以是常量、變量、表達(dá)式、數(shù)組和函數(shù)調(diào)用,其值應(yīng)和格式說(shuō)明相容。

printf("格式控制字符串",輸出項(xiàng)列表);或printf("字符串");返回到本章目錄(2)格式控制字符串格式字符串的一般形式為:其中有方括號(hào)[]的項(xiàng)為任選項(xiàng)。各項(xiàng)的意義如下:%[標(biāo)志][輸出最小寬度][.精度][長(zhǎng)度]類型返回到本章目錄①類型:類型字符用以表示輸出數(shù)據(jù)的類型,其格式符和意義如書中P36頁(yè)表2-8所示。②標(biāo)志:標(biāo)志字符為-、+、空格、0和#五種,其意義如P37頁(yè)表2-9所示。返回到本章目錄③輸出最小寬度:用十進(jìn)制整數(shù)來(lái)表示輸出的最少位數(shù)。若實(shí)際位數(shù)多于定義的寬度,則按實(shí)際位數(shù)輸出,若實(shí)際位數(shù)少于定義的寬度則補(bǔ)以空格或0。④精度:精度格式符以“.”開頭,后跟十進(jìn)制整數(shù)。本項(xiàng)的意義是:如果輸出數(shù)字,則表示小數(shù)的位數(shù);如果輸出的是字符,則表示輸出字符的個(gè)數(shù);若實(shí)際位數(shù)大于所定義的精度數(shù),則截去超過(guò)的部分。⑤長(zhǎng)度:長(zhǎng)度格式符為h,l兩種,h表示按短整型量輸出,l表示按長(zhǎng)整型量輸出。返回到本章目錄(3)printf函數(shù)中的“輸出表”部分由表達(dá)式組成,這些表達(dá)式應(yīng)與“格式控制”字符串中的格式說(shuō)明符的類型一一對(duì)應(yīng),若“輸出表”中有多個(gè)表達(dá)式,則每個(gè)表達(dá)式之間應(yīng)由逗號(hào)隔開。(4)在顯示數(shù)據(jù)時(shí),可以不指定輸出字段的寬度,而直接利用系統(tǒng)隱含的輸出寬度。返回到本章目錄我們?cè)賮?lái)分析下面這個(gè)程序的輸出結(jié)果,注意其中的浮點(diǎn)型數(shù)據(jù)。main(){floatx;doubley;x=11111.1111;y=11111.1111;

printf("x=%f\ny=%f\n",x,y);}程序運(yùn)行結(jié)果如下:返回到本章目錄請(qǐng)仔細(xì)分析以下程序的運(yùn)行結(jié)果。例如:main(){inti=5;

printf("\n%d,%d,%d",++i,++i,++i);i=5;

printf("\n%d,%d,%d",i++,i++,i++);}程序運(yùn)行結(jié)果是:返回到本章目錄練一練

【練習(xí)2-7】分析下列程序的輸出結(jié)果,注意其中的數(shù)據(jù)類型轉(zhuǎn)換。main(){intb;longc;floatf=123.456;b=12;c=1234567;printf("%d,%4d,%-4d,%04d\n",b,b,b,b);printf("%ld,%7ld,%-7ld,%07ld\n",c,c,c,c);printf("%s,%10s,%-10s,%10.4s,%-10.4s\n","string","string","string","string","string");printf("%10.2f,%-10.2f,%.2f\n",f,f,f);}返回到本章目錄解:在輸出函數(shù)中,%md之間的數(shù)字m表示按m位來(lái)輸出該數(shù)據(jù);%0md表示按m位來(lái)輸出該數(shù)據(jù),不足的位補(bǔ)0;%-mld表示按m位來(lái)輸出長(zhǎng)整型數(shù)據(jù),“-”號(hào)表示按左對(duì)齊方式輸出(默認(rèn)是右對(duì)齊方式輸出)。程序運(yùn)行結(jié)果如下:返回到本章目錄【練習(xí)2-8】分析下列程序的輸出結(jié)果,注意其中的數(shù)據(jù)類型轉(zhuǎn)換。ma

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論