C語言程序設(shè)計 課件 第2章 順序結(jié)構(gòu)程序設(shè)計_第1頁
C語言程序設(shè)計 課件 第2章 順序結(jié)構(gòu)程序設(shè)計_第2頁
C語言程序設(shè)計 課件 第2章 順序結(jié)構(gòu)程序設(shè)計_第3頁
C語言程序設(shè)計 課件 第2章 順序結(jié)構(gòu)程序設(shè)計_第4頁
C語言程序設(shè)計 課件 第2章 順序結(jié)構(gòu)程序設(shè)計_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言程序設(shè)計第2章順序結(jié)構(gòu)程序設(shè)計脈絡(luò)導(dǎo)圖C語言程序設(shè)計技能目標(biāo)C語言程序設(shè)計(1)具有程序開發(fā)流程中的提出問題、分析問題和解決問題的能力。(2)能靈活正確運(yùn)用標(biāo)識符、數(shù)據(jù)類型、運(yùn)算符及表達(dá)式解決簡單的實際問題。(3)編寫程序力求代碼簡單、規(guī)范、程序運(yùn)行界面友好。素質(zhì)目標(biāo)C語言程序設(shè)計(1)通過整型數(shù)據(jù)的溢出,培養(yǎng)學(xué)生做任何事情都要有度,即情感和理智都要控制在平衡狀態(tài),不能過猶不及。(2)通過學(xué)習(xí)標(biāo)識符的命名規(guī)則,引導(dǎo)學(xué)生做人做事需要遵守規(guī)則,遵守國家法律法規(guī),做一個守法的好公民。(3)通過學(xué)習(xí)表達(dá)式,引導(dǎo)學(xué)生深諳大和小的辯證關(guān)系,大和小的智慧。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計C語言提供的基本數(shù)據(jù)類型比較豐富,它不僅能表達(dá)基本數(shù)據(jù)類型(如整型、實型、字符型),還提供了數(shù)組、結(jié)構(gòu)體、共用體和指針等數(shù)據(jù)類型,使程序員可以利用這些數(shù)據(jù)類型組織一些復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(鏈表、樹、圖等)。C語言數(shù)據(jù)類型簡介C語言程序設(shè)計【例2-1】C語言簡單例子。運(yùn)行結(jié)果語句編寫Entertwonumbers:23Thesumis11

2.1C語言的基本數(shù)據(jù)類型intmain() { inta,b,sum; /*定義3個整型變量*/printf("Entertwonumbers:"); /*提示輸入2個數(shù)*/scanf("%d%d",&a,&b);/*程序運(yùn)行時,分別輸入a,b整數(shù)值*/sum=a+b+6; /*計算a+b+6的值,將結(jié)果賦值給sum*/printf("Thesumis%d\n",sum); /*輸出結(jié)果sum的值*/return0; }

注意說明:該程序由不同的詞法單位組成,int是關(guān)鍵字,sum是標(biāo)識符,6是數(shù)字常量,"Entertwonumbers:"是字符串常量,“+”是運(yùn)算符,“(”是分隔符。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計關(guān)鍵字關(guān)鍵字是C語言中預(yù)定義的符號,它們有固定的含義,用戶定義的任何名稱都不得與關(guān)鍵字沖突。C語言的關(guān)鍵字共有32個,根據(jù)關(guān)鍵字的作用可分為數(shù)據(jù)類型關(guān)鍵字、控制語句關(guān)鍵字、存儲類型關(guān)鍵字和其他關(guān)鍵字4類。數(shù)據(jù)類型關(guān)鍵字(12個):char、double、enum、float、int、long、short、signed、struct、union、unsigned、void??刂普Z句關(guān)鍵字(12個):break、case、continue、default、do、else、for、goto、if、return、switch、while。存儲類型關(guān)鍵字(4個):auto、extern、register、static。其他關(guān)鍵字(4個):const、sizeof、typedef、volatile。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計標(biāo)識符在C語言中,標(biāo)識符應(yīng)遵循以下命名規(guī)則。標(biāo)識符只能由字母、下畫線、數(shù)字組成,且第一個字符必須是字母或下畫線,不能是數(shù)字。例如,str,_str1,str_2都是合法的標(biāo)識符,2str,2_str1,&456,-L2都是不合法的標(biāo)識符。標(biāo)識符區(qū)分英文字母大小寫。例如,score和Score是兩個不同的標(biāo)識符。用戶不能采用C語言已有的32個關(guān)鍵字作為同名的用戶標(biāo)識符。例如,int是C語言保留的關(guān)鍵字。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計名師點睛(1)應(yīng)盡量使標(biāo)識符具備相應(yīng)的意義,使其可以“見名知意”,從而提高程序的可讀性。例如,若要定義求和變量時,建議變量名為sum(在英語中sum有求和之意,而且較短,容易記憶)。(2)在C程序中,只能使用英文字母(大寫或小寫)、數(shù)字以及一些英文特殊符號(如!、#、&、%、,、|等)。在程序注釋及字符串常量中,可以使用任意字符,包括漢字及中文標(biāo)點。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計分割符分隔符用于分割各種詞法記號,常用的分割符如下:{} [] () * . = : #2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計常量常量(constant)是指在程序運(yùn)行過程中,其值不能改變的量。常量包括整型常量、實型常量、字符常量、字符串常量和符號常量。例如,2是整型常量、3.14是實型常量、'a'是字符常量、"hello,word"是字符串常量。符號常量定義的一般格式如下:#define 符號常量標(biāo)識符 數(shù)值例如,#definePI3.14定義符號常量標(biāo)識符PI,值為3.14。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計名師點睛常量可用宏定義命令#define來定義一個常量的標(biāo)識,且一旦定義后,該標(biāo)識將永久性代表此常量,常量標(biāo)識符一般用大寫字母表示。用宏定義命令定義常量的目的是,便于在大型程序中反復(fù)使用某一數(shù)值,這樣會帶來很多方便。C語言程序設(shè)計【例2-2】定義符號常量,并輸出結(jié)果。運(yùn)行結(jié)果語句編寫3.141593100QQuit

2.1C語言的基本數(shù)據(jù)類型#definePI3.1415926 /*實型常量*/#defineLENGTH100 /*整型常量*/#defineQ'Q' /*字符型常量*/#defineQUIT"Quit" /*字符串*/intmain(){printf("%f\n",PI); /*輸出實型常量*/printf("%d\n",LENGTH); /*輸出整型常量*/printf("%c\n",Q); /*輸出字符型常量*/printf("%s\n",QUIT); /*輸出字符串型常量*/return0;}

2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計變量變量(variable)是指程序在運(yùn)行過程中其值可以改變的量。C語言中的變量在使用之前必須先定義(也稱為變量聲明),否則系統(tǒng)將無法為變量分配合適的內(nèi)存單元。變量定義的一般格式如下:類型 變量名1,變量名2…;例如,inti,j,t; floata,b,c;2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計變量的初始化變量的初始化是指給變量賦初值。在定義/聲明一個變量時,系統(tǒng)將自動地根據(jù)變量類型分配合適的內(nèi)存單元。但是當(dāng)變量初始值沒有被指定時,系統(tǒng)將自動在其存儲單元中放入一個隨機(jī)(任意、不確定的)的值,所以一般來說,變量需要預(yù)置一個值,也就是所謂的賦值。賦值操作通過賦值符號“=”把其右邊的值賦給左邊的變量。變量賦值的一般格式如下:變量名=數(shù)值/表達(dá)式;例如,a=10;x=3*4+2.5; 2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計名師點睛(1)允許變量在定義的同時,進(jìn)行初始化。例如,“inta=3,b=4,c=5;”。(2)C語言中的“=”符號是賦值運(yùn)算符,不是“比較等”,也就是說完全不同于數(shù)學(xué)中(如3+4+5=12中的)“=”的意義。(3)賦值運(yùn)算符“=”左邊必須是變量,不能是常量或常數(shù),否則是錯誤的。例如,“int3=a,4=b,5=c;”。(4)初始化語句“inta=b=c=3;”是錯誤的,編譯器會顯示變量b、變量c是未定義類型的錯誤。(5)變量在賦值前已經(jīng)被定義類型,否則,程序是無法通過編譯的,即變量必須先定義后使用。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計基本數(shù)據(jù)類型類型名稱字節(jié)數(shù)取值范圍類型定義實例int整型2字節(jié)-32768~32767inta,b;float單精度實型4字節(jié)-3.4

10-38~3.4

1038,6位精度floatx,y;double雙精度實型8字節(jié)-1.7

10-308~1.7

10308,16位精度doublea,b;char字符型1字節(jié)-128~127chara,b;2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計整型常量在C語言中,整型常量有3種表示形式,在具體應(yīng)用中,往往根據(jù)需要進(jìn)行選用。十進(jìn)制整數(shù):由數(shù)字0~9和正負(fù)號表示。例如,1977,980,-3,0。八進(jìn)制整數(shù):由數(shù)字0開頭,后跟數(shù)字0~7表示。例如,0456,0661,011。十六進(jìn)制整數(shù):由0x或0X開頭,后跟0~9,a~f,A~F表示。例如,0x128,0Xcd。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計整型變量整型變量的基本類型符為int,要使變量成為整型,必須將其定義為整型。C語言程序設(shè)計【例2-3】定義變量a、變量b為整型,并輸出其值。運(yùn)行結(jié)果語句編寫23

2.1C語言的基本數(shù)據(jù)類型#include<stdio.h> intmain() { inta,b=3; /*定義整型變量a,b,并給變量b賦初值3*/ a=2; printf("%d%d",a,b); return0; }

2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計名師點睛整形數(shù)據(jù)輸出的格式控制符為"%d",有一個輸出變量就應(yīng)該有一個格式控制符與之對應(yīng)。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計實型常量實型常量也稱為浮點型常量、實數(shù)或浮點數(shù)。在C語言中,實數(shù)只采用十進(jìn)制格式,它由小數(shù)點和數(shù)字組成,讀者也許會認(rèn)為這與數(shù)學(xué)中的表示相同,實際上是有區(qū)別的。在C語言中,實數(shù)的小數(shù)點前允許沒有數(shù)字,它有兩種表示形式。十進(jìn)制數(shù)形式(必須有小數(shù)點)。例如,0.12、.789、123.0、0.0。指數(shù)形式。指數(shù)形式類似數(shù)學(xué)中的科學(xué)記數(shù)法,用e或E代替數(shù)學(xué)中的10,但是在C語言中e或E之前必須有數(shù)字,指數(shù)必須為整數(shù)。例如,123e3、-14、76.3E2、1.3e+2、1.9e-3都是合法的形式,而1.23e0.7、e3、-42E1/2都是不合法的形式。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計實型變量實型變量分為單精度(float)類型和雙精度(double)類型,變量使用之前,一定要先定義類型。C語言程序設(shè)計【例2-4】單精度和雙精度實型變量的應(yīng)用。運(yùn)行結(jié)果語句編寫3.700000127869291.9295000

2.1C語言的基本數(shù)據(jù)類型intmain() { floata,b; /*定義單精度變量a,b*/ doublec,d; /*定義雙精度變量c,d*/ a=b=3.7; /*變量a,b均賦值為3.7*/ c=127869288.225; /*變量c賦值為127869288.225*/ d=a+c; /*a+c的結(jié)果賦值給變量d*/ printf("%f%f",a,d); /*分別輸出變量a,d的值*/ return0; } 2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計字符型常量字符(char)型常量是指用一對單引號括起來的一個字符。字符常量中的單引號只起定界作用并不表示字符本身。例如,'a'、'F'、'8'、'→'。字符常量在計算機(jī)內(nèi)存儲時,并不是按其原貌存儲的,實際上存放的是該字符的ASCII碼值(即一個整數(shù))、占1字節(jié)的單元空間。例如,字符'a'的值是97,字符'A'的值是65。計算機(jī)要輸出字符常量時,自動地將ASCII碼值轉(zhuǎn)換為其所對應(yīng)的字符輸出。因此,字符型和整型的關(guān)系是非常密切,也可把字符型看作一種特殊的整型。事實上,字符型數(shù)據(jù)和整型數(shù)據(jù)經(jīng)常會混合使用。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計名師點睛(1)字符常量只包括一個字符。例如,'AB'是不合法的,因為有兩個字符。(2)字符常量區(qū)分大小寫字母。例如,'a'與'A'是兩個不同的字符常量。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計轉(zhuǎn)義字符轉(zhuǎn)義字符含義

轉(zhuǎn)義字符含義\n換行

\b退格\v豎向跳格

\f換頁符\r回車

\\反斜線\’單引號

\0空操作符\”雙引號

\ddd3位8進(jìn)制數(shù)代表的字符\t橫向跳格(Tab)

\xhh2位16進(jìn)制數(shù)代表的字符\?問號

轉(zhuǎn)義字符是一類特殊形式的字符常量,以'\'開頭。例如,'\n'代表一個“換行”符。轉(zhuǎn)義字符雖然包含兩個或多個字符,但它只代表一個字符。編譯系統(tǒng)在見到字符'\'時,會接著找它后面的字符,把它處理成一個字符,在內(nèi)存中只占1字節(jié)。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計名師點睛(1)8與'8'不相同,8是整數(shù),'8'是字符常量,其值為56,遠(yuǎn)遠(yuǎn)大于8。(2)c與'c'不相同,c是標(biāo)識符,可看作變量,其值由所賦的值決定。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計字符型變量字符型變量主要是為了存儲字符常量,用類型符號char定義字符變量。字符常量是以ASCII碼值的形式存儲的,占1字節(jié)的內(nèi)存單元。字符變量的定義一般格式如下。char 變量名;C語言程序設(shè)計【例2-5】字符型數(shù)據(jù)與整型數(shù)據(jù)賦值。運(yùn)行結(jié)果語句編寫c1=ac2=ba=97

2.1C語言的基本數(shù)據(jù)類型intmain() { charc1,c2; /*定義字符變量c1,c2*/ inta; c1='a',c2=98; /*'a'賦值給c1,98賦值給c2*/ a='a'; /*'a'賦值給變量a*/ printf("c1=%cc2=%ca=%d",c1,c2,a);/*分別輸出c1,c2,a的值*/ return0;}

程序說明:(1)整型變量a是整數(shù)97,最終也是以二進(jìn)制的形式存儲于內(nèi)存中。這樣,整型數(shù)據(jù)與字符型數(shù)據(jù)在內(nèi)存中沒有本質(zhì)區(qū)別。(2)整型數(shù)據(jù)與字符型數(shù)據(jù)輸出的形式取決于格式控制符。若以"%c"進(jìn)行格式控制,輸出字符;若以"%d"進(jìn)行格式控制,則輸出整數(shù)。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計字符串常量字符串(characterstring)常量是用雙引號括起來的字符序列。例如,"CHINA"、"ab$"、"IloveZhejiang!"都屬于字符串常量。字符串在存儲時,每一個字符元素占1字節(jié),但是整個字符串占用的內(nèi)存單元等于字符串中字符元素的個數(shù)加1,因為字符串有一個結(jié)束標(biāo)志'\0',要占1字節(jié)。例如,"CHINA"的存儲情況如圖2-2所示。

圖2-2字符串存儲情況CHINA\02.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計名師點睛(1)C語言中沒有專門的字符串變量,一般用字符數(shù)組來存放字符串。(2)"a"是字符串常量,'a'是字符常量,它們所占的內(nèi)存空間大小也不一樣。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計基本類型修飾符C語言提供的修飾符主要有signed(有符號)、unsigned(無符號)、long(長整型)、short(短整型)。類型字節(jié)數(shù)取值范圍signedint2字節(jié)-32768~32767unsignedint2字節(jié)0~65535signedshortint2字節(jié)-32768~32767unsignedshortint2字節(jié)0~65535longint4字節(jié)2147483648~2147483647unsignedlongint4字節(jié)0~42949672952.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計不同數(shù)據(jù)類型間的轉(zhuǎn)換在表達(dá)式中使用不同類型的常量及變量時,它們要轉(zhuǎn)換成同一類型后才能運(yùn)算。

轉(zhuǎn)換的方法有兩種,一種是自動類型轉(zhuǎn)換(隱式轉(zhuǎn)換),另一種是強(qiáng)制類型轉(zhuǎn)換(顯式轉(zhuǎn)換)。

(1)自動類型轉(zhuǎn)換。自動類型轉(zhuǎn)換是指不同類型數(shù)據(jù)進(jìn)行混合運(yùn)算時,編譯系統(tǒng)會自動將數(shù)據(jù)轉(zhuǎn)換為同一數(shù)據(jù)類型。轉(zhuǎn)換規(guī)則是:①所有char和shortint型將自動提升為int型。②若參加運(yùn)算的數(shù)據(jù)有float型或double型,則轉(zhuǎn)換成double型再運(yùn)算,結(jié)果為double型。③若運(yùn)算的數(shù)據(jù)中無float型或double型,但有l(wèi)ong型,數(shù)據(jù)自動轉(zhuǎn)換成long型再運(yùn)算,結(jié)果為long型。C語言程序設(shè)計【例2-6】自動類型轉(zhuǎn)換。運(yùn)行結(jié)果語句編寫72.500000

2.1C語言的基本數(shù)據(jù)類型intmain(){ inta=5; /*定義整型變量a*/ floatb=2.5; /*定義單精度變量b*/ charc='A'; /*定義字符變量c*/ printf("%f\n",b+(a+c));/*輸出b+(a+c)的結(jié)果*/ return0;}

程序說明:'A'對應(yīng)的ASCl1碼值為65,計算a+c時首先將char型轉(zhuǎn)化為int型,得到結(jié)果為整型數(shù)據(jù)70。然后,float型轉(zhuǎn)換為doule型,int型轉(zhuǎn)換為double型,得到最終結(jié)果為double型數(shù)據(jù)72.500000。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計不同數(shù)據(jù)類型間的轉(zhuǎn)換(2)強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換是使用類型轉(zhuǎn)換符強(qiáng)制使某一數(shù)據(jù)或表達(dá)式轉(zhuǎn)變?yōu)橹付愋汀?qiáng)制類型轉(zhuǎn)換一般格式如下:(類型轉(zhuǎn)換符)表達(dá)式C語言程序設(shè)計【例2-7】強(qiáng)制類型轉(zhuǎn)換。運(yùn)行結(jié)果語句編寫c=6,d=7,e=6

2.1C語言的基本數(shù)據(jù)類型intmain(){ floata=3.6,b=3.7; /*定義單精度變量a,b*/ intc,d,e; /*定義整型變量c,d,e*/ c=(int)a+(int)b; /*計算變量c的值*/ d=(int)(a+b); /*計算變量d的值*/ e=(int)a+b; /*計算變量e的值*/ printf("c=%d,d=%d,e=%d\n",c,d,e);/*輸出變量c,d,e的值*/ return0;}程序說明:'A'對應(yīng)的ASCl1碼值為65,計算a+c時首先將char型轉(zhuǎn)化為int型,得到結(jié)果為整型數(shù)據(jù)70。然后,float型轉(zhuǎn)換為doule型,int型轉(zhuǎn)換為double型,得到最終結(jié)果為double型數(shù)據(jù)72.500000。2.1C語言的基本數(shù)據(jù)類型C語言程序設(shè)計名師點睛(1)(類型轉(zhuǎn)換符)中的類型必須是C語言支持的數(shù)據(jù)類型。(2)強(qiáng)制類型轉(zhuǎn)換在編譯時,不論是向高級類型轉(zhuǎn)換還是向低級類型轉(zhuǎn)換,編譯器不再發(fā)出警告。(3)類型轉(zhuǎn)換符是單目運(yùn)算符。2.2基本數(shù)據(jù)的輸入與輸出C語言程序設(shè)計格式輸入輸出函數(shù)在C語言中,輸入輸出是針對計算機(jī)主機(jī)而言,數(shù)據(jù)的輸入輸出是通過用戶與計算機(jī)進(jìn)行交互實現(xiàn)的。輸入是指用戶從外部輸入設(shè)備(如鍵盤、掃描儀等)向計算機(jī)輸入數(shù)據(jù)的過程。輸出是指從計算機(jī)向外部輸出設(shè)備(如顯示屏、打印機(jī)等)輸出數(shù)據(jù)的過程。C語言本身沒有輸入輸出語句,輸入輸出語句是由C函數(shù)庫提供的。C語言在其函數(shù)庫中提供了大量具有獨(dú)立功能的函數(shù)程序塊。在使用函數(shù)庫時,要用編譯預(yù)處理命令將有關(guān)的“頭文件”包含到用戶源程序文件中。調(diào)用標(biāo)準(zhǔn)函數(shù)庫中的輸入輸出函數(shù)時,應(yīng)該在源文件中使用預(yù)編譯命令。例如,#include<stdio.h>或#include"stdio.h"。2.2基本數(shù)據(jù)的輸入與輸出C語言程序設(shè)計格式輸出printf()函數(shù)printf()函數(shù)是格式輸出函數(shù),用來向終端(輸出設(shè)備)輸出若干個任意類型的數(shù)據(jù)。printf()函數(shù)一般格式如下:printf("非格式字符串");printf("格式字符串",輸出列表);其中,(1)"非格式字符串"指通常所說的普通字符,在輸出時會按原樣輸出的字符,一般是輸出時的提示性信息,也可以輸入空格和轉(zhuǎn)義字符。(2)"格式字符串"由普通字符和格式控制字符組成。格式控制字符由"%"和格式說明符兩部分組成,用以說明輸出數(shù)據(jù)的類型、形式、長度、小數(shù)位數(shù)等,如%d、%f等。(3)"輸出列表"是需要輸出的若干數(shù)據(jù)的列表,各項之間用逗號隔開,每一項可以是常量、變量,也可以是表達(dá)式,按照格式字符串規(guī)定的格式輸出具體的值。2.2基本數(shù)據(jù)的輸入與輸出C語言程序設(shè)計格式輸出printf()函數(shù)常見的格式說明符見表2-4所示。字符意義輸出語句格式輸出結(jié)果d十進(jìn)制整數(shù)inta=567;printf("%d",a);567u無符號十進(jìn)制整數(shù)inta=567;printf("%u",a);567o八進(jìn)制無符號整數(shù)inta=65;printf("%o",a);101x,X十六進(jìn)制無符號整數(shù)inta=255;printf("%x",a);fff小數(shù)形式浮點數(shù)floata=567.789;printf("%f",a);567.789000c單個字符chara=65;printf("%c",a);As字符串printf("%s","ABC");ABCe,E指數(shù)形式浮點數(shù)floata=567.789;printf("%e",a);5.67789e+02g,Ge和f中較短一種floata=567.789;printf("%g",a);567.789C語言程序設(shè)計【例2-8】輸出格式符的用法。運(yùn)行結(jié)果語句編寫aILoveChina!

2.2基本數(shù)據(jù)的輸入與輸出intmain(){ charb; b=97; /*將97的字符賦給變量b*/ printf("%c\n",b); /*輸出變量b后換行*/ printf("%s","ILoveChina!");/*輸出字符串常量*/ return0;}

2.2基本數(shù)據(jù)的輸入與輸出C語言程序設(shè)計格式輸入scanf()函數(shù)scanf()函數(shù)是格式輸入函數(shù),用來接受用戶從鍵盤輸入若干個數(shù)據(jù)(可以是不同的數(shù)據(jù)類型),并送給指定的變量所分配的內(nèi)存單元中。scanf()函數(shù)一般格式如下:scanf("格式字符串",地址列表);其中,(1)"格式字符串"的含義與輸出printf()函數(shù)基本相同,由普通字符和格式控制字符組成,用來指定輸入的格式。(2)"地址列表"是由若干個地址組成的列表,每個變量名前加上字符“&”,用來表示變量的內(nèi)存地址。(3)程序運(yùn)行時,按照格式字符串的格式依次輸入數(shù)據(jù),其中普通字符要在輸入的時候原樣錄入,以“回車鍵”作為輸入結(jié)束的標(biāo)志。C語言程序設(shè)計【例2-9】輸出函數(shù)的用法。運(yùn)行結(jié)果語句編寫請按順序輸入你的德育、智育和能力素質(zhì)成績:969193你的綜合素質(zhì)測評成績?yōu)椋?2.90

2.2基本數(shù)據(jù)的輸入與輸出intmain(){ floata,b,c; doublescore; printf("請按順序輸入你的德育、智育和能力素質(zhì)成績:\n"); scanf("%f%f%f",&a,&b,&c); /*輸入變量a,b,c的值*/ score=0.3*a+0.5*b+0.2*c; printf("你的綜合素質(zhì)測評成績?yōu)椋?5.2f\n",score); return0;}2.2基本數(shù)據(jù)的輸入與輸出C語言程序設(shè)計名師點睛(1)若在兩個格式說明之間沒有其他字符,則在輸入時,兩個數(shù)據(jù)之間可以是若干空格、Tab或回車鍵分割,切記不能用逗號分隔。(2)如兩個格式說明之間用","分隔,則數(shù)據(jù)輸入時,數(shù)據(jù)之間只能用逗號作為間隔,而不能用其他作為分隔符。2.2基本數(shù)據(jù)的輸入與輸出C語言程序設(shè)計字符數(shù)據(jù)專用輸入輸出函數(shù)C語言專門提供了字符輸入輸出函數(shù),這兩個函數(shù)也包含在頭文件stdio.h中,在使用時,必須在程序的main()函數(shù)前加上#include<stdio.h>或#include<"stdio.h"。2.2基本數(shù)據(jù)的輸入與輸出C語言程序設(shè)計putchar()函數(shù)putchar()函數(shù)是字符輸出函數(shù),是在顯示器上輸出單個字符變量的值。putchar()函數(shù)一般格式如下:putchar(字符變量);例如,putchar('\n');是輸出一個換行符。C語言程序設(shè)計【例2-10】putchar()函數(shù)的用法。運(yùn)行結(jié)果語句編寫ILOVECHINA

2.2基本數(shù)據(jù)的輸入與輸出intmain(){ chara,b,c,d,e; a='C',b='H',c='I',d='N',e='A'; printf("%s","ILOVE"); /*輸出字符串常量*/ putchar(a); putchar(b); putchar(c);/*依次輸出字符變量a,bc,d,e的值*/ putchar(d); putchar(e); return0; }2.2基本數(shù)據(jù)的輸入與輸出C語言程序設(shè)計名師點睛(1)putchar()函數(shù)每次只能輸出一個字符。例如,putchar(a,b),這樣輸出多個變量值的做法是錯誤的。(2)直接用printf()函數(shù)以字符串的方式輸出ILOVECHINA反而更方便。2.2基本數(shù)據(jù)的輸入與輸出C語言程序設(shè)計getchar()函數(shù)getchar()函數(shù)是字符輸入函數(shù),是從鍵盤上輸入一個字符。getchar()函數(shù)一般格式如下:getchar();例如,charc; … c=getchar();C語言程序設(shè)計【例2-11】getchar()函數(shù)的用法。運(yùn)行結(jié)果語句編寫請輸入一個小寫字母:a對應(yīng)的大寫字母是:A

2.2基本數(shù)據(jù)的輸入與輸出intmain(){ chara; printf("請輸入一個小寫字母:"); a=getchar(); /*接收到的字符存儲在變量a中*/ putchar(a); /*輸出變量a的內(nèi)容*/ printf("對應(yīng)的大寫字母是:%c",a-32); /*輸出a-32的值*/ return0;}2.2基本數(shù)據(jù)的輸入與輸出C語言程序設(shè)計名師點睛(1)putchar()函數(shù)和getchar()函數(shù)每次只能處理一個字符,且getchar()函數(shù)沒有參數(shù)。(2)getchar()函數(shù)接收的字符可以賦值給一個字符型或整型變量,也可以不賦給任何變量,而作為表達(dá)式的一部分。2.3運(yùn)算符和表達(dá)式C語言程序設(shè)計算術(shù)運(yùn)算符算術(shù)運(yùn)算符是算術(shù)運(yùn)算的基本元素。C語言中的算術(shù)運(yùn)算符如表2-5所示。操作符作用示例-減法5-3、-2、a-b、9-7+加法12+2.1、7+a*乘法123*5、7.8*2/除法78/3、78.0/3%求模(求余)78%32.3運(yùn)算符和表達(dá)式C語言程序設(shè)計名師點睛(1)由于鍵盤中沒有“”和“”,運(yùn)算符用“*”和“/”代替。(2)對于除法運(yùn)算符“/”,若兩個整數(shù)相除,結(jié)果只能為整,小數(shù)全舍。例如,7/2=3,而不是3.5。(3)求模運(yùn)算符“%”只適用于兩個整數(shù)求余,其兩個運(yùn)算變量只能是整型或字符型(ASCII碼),而不能是其他類型。余數(shù)結(jié)果的符號由被除數(shù)決定。例如,8%(-3)=2,而(-8)%3=-2。2.3運(yùn)算符和表達(dá)式C語言程序設(shè)計算術(shù)表達(dá)式算術(shù)表達(dá)式是指用算術(shù)運(yùn)算符和括號將數(shù)據(jù)對象連接起來的式子。表達(dá)式的運(yùn)算按照運(yùn)算符的結(jié)合性和優(yōu)先級來進(jìn)行。C語言規(guī)定了運(yùn)算符的結(jié)合方向,即結(jié)合性。如果只有結(jié)合性顯然不夠,例如,表達(dá)式7+9*2就不能只考慮運(yùn)算的結(jié)合性,而要考慮運(yùn)算符的優(yōu)先級問題了。C語言算術(shù)運(yùn)算符的優(yōu)先級與數(shù)學(xué)中的混合運(yùn)算規(guī)則大致相同,即優(yōu)先級從高到低是:()→負(fù)號→*、/、%→+、-其中,*、/、%優(yōu)先級相同,+、-優(yōu)先級相同。表達(dá)式求值時,先按運(yùn)算符優(yōu)先級別高低依次執(zhí)行,遇到相同優(yōu)先級的運(yùn)算符時,則按“左結(jié)合”處理。例如,表達(dá)式a+b*c/2,其運(yùn)算符執(zhí)行順序為:*→/→+。C語言程序設(shè)計【例2-12】運(yùn)算符"/"和"%"的用法。運(yùn)行結(jié)果語句編寫a=1,b=2,c=1.666667

2.3運(yùn)算符和表達(dá)式intmain(){ inta,b; floatc; a=5/3; b=5%3; /*運(yùn)算符%要求操作數(shù)必須為整型*/ c=5/3.0; printf("a=%d,b=%d,c=%f",a,b,c); return0;}2.3運(yùn)算符和表達(dá)式C語言程序設(shè)計賦值運(yùn)算最基本的賦值運(yùn)算符是“=”,是將一個數(shù)據(jù)賦給一個變量。由賦值運(yùn)算符組成的表達(dá)式稱為賦值表達(dá)式。賦值表達(dá)式的一般格式如下:變量=表達(dá)式;賦值表達(dá)式的計算順序是:先計算“=”右邊的表達(dá)式,再將表達(dá)式的值賦值給“=”左邊的變量。賦值表達(dá)式的作用是將一個表達(dá)式的值賦給一個變量,因此,賦值表達(dá)式具有計算和賦值兩個功能。例如,“a=4+5”是一個賦值表達(dá)式,其求解過程是先求賦值運(yùn)算右側(cè)的表達(dá)式“4+5”的值(9),然后再將9賦給賦值表達(dá)式左側(cè)的變量a。在賦值表達(dá)式后加上分號就構(gòu)成了賦值語句。例如,“a=b=c=0;”。2.3運(yùn)算符和表達(dá)式C語言程序設(shè)計名師點睛在為變量賦初始值時,如果要對幾個變量賦予同一個初值,可采用“inta=0,b=0,c=0;”但是不能寫成“inta=b=c=0;”。2.3運(yùn)算符和表達(dá)式C語言程序設(shè)計復(fù)合賦值賦值運(yùn)算符可以與其他部分運(yùn)算符結(jié)合起來,構(gòu)成復(fù)合賦值運(yùn)算符。復(fù)合賦值運(yùn)算符名稱舉例意義+=賦值a+=b等價于a=a+b-=加賦值a-=b等價于a=a-b*=減賦值a*=b等價于a=a*b/=乘賦值a/=b等價于a=a/b%=除賦值a%=b等價于a=a%bC語言程序設(shè)計【例2-13】賦值運(yùn)算的結(jié)合性。運(yùn)行結(jié)果語句編寫a=16

2.3運(yùn)算符和表達(dá)式intmain(){ inta=1; a*=a-=5; printf("a=%d\n",a); return0;}程序說明:因為賦值運(yùn)算符為右結(jié)合性,在表達(dá)式a*=a-=5中,故先計算a-=5,等價于a=a-5,則a變?yōu)?4;再計算a*=a,等價于a=(-4)*(-4),所以最后結(jié)果為a=16。2.3運(yùn)算符和表達(dá)式C語言程序設(shè)計自增和自減符C語言提供了其他語言一般不支持的兩種非常實用的操作符,即自增運(yùn)算符“++”和自減運(yùn)算符“--”,其作用是讓變量的值加1或減1。但自增自減運(yùn)算符都有前置與后置之分,前置后置決定了變量使用與計算的順序。(1)自增運(yùn)算符前置,如++i,是先將i的值加1,再使用加1后i的值。(2)自增運(yùn)算符后置,如i++,是先使用i當(dāng)前的值,再將i的值加1。(3)自減運(yùn)算符前置,如--i,是先將i的值減1,再使用減1后i的值。(4)自減運(yùn)算符后置,如i--,是先使用i當(dāng)前的值,再將i的值減1。2.3運(yùn)算符和表達(dá)式C語言程序設(shè)計名師點睛(1)自增自減運(yùn)算符只能作用于變量,不能用于常量或表達(dá)式。例如,3++,(a+b)--都是不合法的。(2)自增自減運(yùn)算符在算術(shù)運(yùn)算符中的優(yōu)先級最高。(3)自增自減運(yùn)算符常用于循環(huán)語句中,使循環(huán)變量自動加1;也用于指針變量,使指針指向下一個地址。C語言程序設(shè)計【例2-14】自增與自減的使用方法。運(yùn)行結(jié)果語句編寫a=4b=5c=15a=5b=5c=25

2.3運(yùn)算符和表達(dá)式intmain(){ inta=2,b=4,c; a++; ++b; c=(a++)*b; printf("a=%db=%dc=%d\n",a,b,c); c=(++a)*b; printf("a=%db=%dc=%d\n",a,b,c); return0;}2.3運(yùn)算符和表達(dá)式C語言程序設(shè)計關(guān)系運(yùn)算符關(guān)系運(yùn)算符是用于比較運(yùn)算符左右兩個操作數(shù)的大小關(guān)系。因此,關(guān)系運(yùn)算符實際上就是“比較運(yùn)算”,是將兩個值進(jìn)行比較,判斷是否符合或滿足給定的條件。判斷的結(jié)果要么是“真”,要么是“假”。在C在語言中,“真”用數(shù)字1表示,“假”用數(shù)字0表示。C語言提供的關(guān)系運(yùn)算符及其優(yōu)先級如表2-7所示。運(yùn)算符含義優(yōu)先級<

小于優(yōu)先級相同

低<=小于等于>

大于>=大于等于==等于優(yōu)先級相同!=不等于2.3運(yùn)算符和表達(dá)式C語言程序設(shè)計名師點睛(1)關(guān)系運(yùn)算符的優(yōu)先級低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符。(2)關(guān)系運(yùn)算的結(jié)合性也是“左結(jié)合性”。(3)C語言中的等于關(guān)系用“==”表示,而不是“=”。賦值運(yùn)算是將右側(cè)的值賦給左邊變量,賦值運(yùn)算符沒有比較的意義。2.3運(yùn)算符和表達(dá)式C語言程序設(shè)計關(guān)系表達(dá)式關(guān)系表達(dá)式是指用關(guān)系運(yùn)算符將變量、常量、表達(dá)式連接起來的式子。關(guān)系表達(dá)式的一般格式如下:表達(dá)式1關(guān)系運(yùn)算符表達(dá)式2關(guān)系運(yùn)算符兩邊的“表達(dá)式”可以是C語言中任意合法的表達(dá)式。既可以為算術(shù)表達(dá)式、逗號表達(dá)式、賦值表達(dá)式、關(guān)系表達(dá)式和邏輯表達(dá)式,也可以是變量和函數(shù)等。關(guān)系表達(dá)式的值指關(guān)系運(yùn)算的結(jié)果,為邏輯值“真”或“假”,用數(shù)字1或0表示。C語言程序設(shè)計【例2-15】關(guān)系運(yùn)算符的運(yùn)用。運(yùn)行結(jié)果語句編寫0,0,1,1,0,1

2.3運(yùn)算符和表達(dá)式intmain(){ inta=3,b=2; printf("%d,%d,%d,%d,%d,%d",a<b,a<=b,a>b,a>=b,a==b,a!=b); return0;}2.3運(yùn)算符和表達(dá)式C語言程序設(shè)計邏輯運(yùn)算符邏輯運(yùn)算表示兩個數(shù)據(jù)或表達(dá)式之間的邏輯關(guān)系。C語言提供的邏輯運(yùn)算符及其優(yōu)先級如表2-8所示。運(yùn)算符含義類型舉例說明優(yōu)先級!邏輯非單目!X當(dāng)X為真時,!X為假;當(dāng)X為假時,!X為真

低&&邏輯與雙目X&&Y僅X與Y均為真時,X&&Y為真,否則為假|(zhì)|邏輯或雙目X||YX與Y至少一個為真,X||Y就為真,否則為假2.3運(yùn)算符和表達(dá)式C語言程序設(shè)計名師點睛(1)!是單目運(yùn)算符(只有一個運(yùn)算量),格式為:“!表達(dá)式”。(2)!的結(jié)合性為“從右向左”,&&和||的結(jié)合性仍為“從左往右”。2.3運(yùn)算符和表達(dá)式C語言程序設(shè)計邏輯表達(dá)式邏輯表達(dá)式是指用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來的式子。邏輯表達(dá)式的一般格式如下:表達(dá)式1邏輯運(yùn)算符表達(dá)式2邏輯表達(dá)式的值指邏輯運(yùn)算的結(jié)果,為邏輯值“真”或“假”,用數(shù)字1或0表示。ab!a!ba&&ba||b0011000非01001非000101非0非000112.3運(yùn)算符和表達(dá)式C語言程序設(shè)計逗號運(yùn)算逗號運(yùn)算符是將兩個表達(dá)式用“,”連接起來,實現(xiàn)特定的作用,用逗號運(yùn)算符把兩個表達(dá)式連接起來的式子就成為逗號表達(dá)式。逗號表達(dá)式一般格式如下:表達(dá)式1,表達(dá)式2,表達(dá)式3,……,表達(dá)式n;逗號表達(dá)式的值是最后一個表達(dá)式n的值,其求解過程是:從左到右依次求解表達(dá)式1,表達(dá)式2,……,表達(dá)式n。例如,逗號表達(dá)式a=3*8,a+2;先求a=3*8,得24,然后求解a+2,得26,因此整個逗號表達(dá)式的值為26。2.3運(yùn)算符和表達(dá)式C語言程序設(shè)計名師點睛(1)逗號運(yùn)算符的優(yōu)先級是所有運(yùn)算符中級別最低的,其優(yōu)先級低于賦值運(yùn)算符。(2)并非出現(xiàn)逗號的地方都是逗號表達(dá)式,在定義變量的時候,可以使用逗號。例如,inta,b;這里的逗號就不是運(yùn)算符,它只是個分隔符。(3)逗號表達(dá)式的結(jié)合性為“從左往右”。2.3運(yùn)算符和表達(dá)式C語言程序設(shè)計條件運(yùn)算條件運(yùn)算符是C語言中唯一的三目運(yùn)算符,即它需要3個數(shù)據(jù)或表達(dá)式構(gòu)成條件表達(dá)式。條件運(yùn)算一般格式如下:表達(dá)式1?表達(dá)式2:表達(dá)式3如果表達(dá)式1成立,則表達(dá)式2的值是整個表達(dá)式的值,否則表達(dá)式3的值是整個表達(dá)式的值。例如,將變量a、變量b中最大的放在變量max中,利用條件運(yùn)算完成:max=a>b?a:b;2.3運(yùn)算符和表達(dá)式C語言程序設(shè)計名師點睛條件運(yùn)算符的結(jié)合方向為從右向左。例如,a>b?a:b>c?b:c等價于a>b?a:(b>c?b:c)。C語言程序

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論