版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第3章最簡單的C程序設(shè)計3.1C的數(shù)據(jù)類型3.2常量與變量3.3整型數(shù)據(jù)3.4浮點型數(shù)據(jù)3.5字符型數(shù)據(jù)3.6各類數(shù)值型數(shù)據(jù)間的混合運算3.7運算符和表達式3.8數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)
本章要點數(shù)據(jù)的描述規(guī)則數(shù)據(jù)的操作規(guī)則學(xué)習(xí)目標掌握C的數(shù)據(jù)類型掌握常量、變量的概念及應(yīng)用和運算符的應(yīng)用掌握各種表達式的應(yīng)用重點難點重點:C的數(shù)據(jù)類型、常量、變量、算術(shù)運算與算術(shù)表達式、賦值運算符與賦值表達式。難點:變量的含義和使用。C語言提供了以下一些數(shù)據(jù)類型。
數(shù)據(jù)類型構(gòu)造類型指針類型空類型(無值類型)void枚舉類型enum數(shù)組類型結(jié)構(gòu)類型struct聯(lián)合類型union基本類型整型int字符型char實型(浮點型)單精度實型float雙精度實型double3.1C的數(shù)據(jù)類型有符號基本整型有符號短整型有符號長整型無符號基本整型無符號短整型無符號長整型(signed)int(signed)short(int)(signed)long(int)unsignedintunsignedshort(int)unsignedlong(int)整型100,125,-100,0實型3.14,0.125,-3.789字符型’
a’,’b’,’2’字符串”
a”,”
ab”,”1232”3.2常量與變量常量和符號常量在程序運行過程中,其值不能被改變的量稱為常量常量區(qū)分為不同的類型:例3.1符號常量的使用
#definePRICE30
#include<stdio.h>
voidmain()
{
intnum,total;
num=10;
total=num*PRICE;
printf(″total=%d\n″,total);
}#define語句定義一個符號常量PRICE,其值等于30。該值在程序運行過程中不能被改變。符號常量通常用大寫字母表示。編譯程序在翻譯本源程序文件時,符號常量PRICE用其值30替換。程序運行結(jié)果是:
total=300思考:為什么要定義符號常量?變量變量代表內(nèi)存中具有特定屬性的一個存儲單元,它用來存放數(shù)據(jù),這就是變量的值,在程序運行期間,這些值是可以改變的。變量名實際上是一個以一個名字對應(yīng)代表一個地址,在對程序編譯連接時由編譯系統(tǒng)給每一個變量名分配對應(yīng)的內(nèi)存地址。從變量中取值,實際上是通過變量名找到相應(yīng)的內(nèi)存地址,從該存儲單元中讀取數(shù)據(jù)。total80變量名(符號地址)變量值存儲單元變量名(符號地址)變量名(符號地址)變量命名的規(guī)定:C語言規(guī)定標識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線。例:sum,_total,month,Student_name,
lotus_1_2_3,BASIC,li_lingM.D.John,¥123,3D64,a>b
32個關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)autobreakcasecharconst
continuedefaultdodoubleelse enum externfloatforgoto ifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile注意:編譯系統(tǒng)將大寫字母和小寫字母認為是兩個不同的字符。建議變量名的長度最好不要超過8個字符。在選擇變量名和其它標識符時,應(yīng)注意做到“見名知意”,即選有含意的英文單詞(或其縮寫)作標識符。要求對所有用到的變量作強制定義,也就是“先定義,后使用”。整型常量的表示方法整型常量即整常數(shù)。在C語言中,整常數(shù)可用以下三種形式表示:(1)十進制整數(shù)。(2)八進制整數(shù)。以0頭的數(shù)是八進制數(shù)。(3)十六進制整數(shù)。以0x開頭的數(shù)是16進制數(shù)。整型變量
(1)整型數(shù)據(jù)在內(nèi)存中的存放形式數(shù)據(jù)在內(nèi)存中是以二進制形式存放的。如:inti;/*定義為整型變量*/i=10;/*給i賦以整數(shù)10*/3.3整型數(shù)據(jù)兩種表示形式小數(shù)指數(shù)0.1233e-3注意:字母e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù)1e3、1.8e-3、-123e-6、-.1e-3e3、2.1e3.5、.e3、e
3.4浮點型數(shù)據(jù)浮點型常量的表示方法規(guī)范化的指數(shù)形式:在字母e(或E)之前的小數(shù)部分中,小數(shù)點左邊應(yīng)有一位(且只能有一位)非零的數(shù)字.例‘a(chǎn)’,’A’,‘1’‘a(chǎn)bc’、“a”3.5字符型數(shù)據(jù)字符常量(1)用單引號包含的一個字符是字符型常量(2)只能包含一個字符√
有些以“\”開頭的特殊字符稱為轉(zhuǎn)義字符\n換行\(zhòng)t橫向跳格\r回車\\反斜杠\dddddd表示1到3位八進制數(shù)字\xhhhh表示1到2位十六進制數(shù)字字符變量 字符型變量用來存放字符常量,注意只能放一個字符。字符變量的定義形式如下:charc1,c2;在本函數(shù)中可以用下面語句對c1,c2賦值:
c1=‘a(chǎn)’;c2=‘b’
;一個字符變量在內(nèi)存中占一個字節(jié)。字符數(shù)據(jù)在內(nèi)存中的存儲形式及其使用方法將一個字符常量放到一個字符變量中,實際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應(yīng)的ASCII代碼放到存儲單元中。例3.2向字符變量賦以整數(shù)。
#include<stdio.h>
voidmain()
{charc1,c2;
c1=97;
c2=98;
printf(“%c%c\n”,c1,c2);
printf(“%d%d\n”,c1,c2);
}運行結(jié)果:ab
9798字符串常量字符串常量是一對雙撇號括起來的字符序列.合法的字符串常量:
“Howdoyoudo.”,“CHINA”,“a”
,“$123.45”可以輸出一個字符串,如
printf(“Howdoyoudo.”);
‘a’是字符常量,”a”是字符串常量,二者不同。如:假設(shè)C被指定為字符變量
:charcc=’a’;c=”a”;c=”CHINA”;
結(jié)論:不能把一個字符串常量賦給一個字符變量。C規(guī)定:在每一個字符串常量的結(jié)尾加一個“字符串結(jié)束標志”,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。C規(guī)定以字符’\0’作為字符串結(jié)束標志?;旌线\算:整型(包括int,short,long)、浮點型(包括float,double)可以混合運算。在進行運算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進行運算.說明:這種類型轉(zhuǎn)換是由系統(tǒng)自動進行的。3.6各類數(shù)值型數(shù)據(jù)間的混合運算
例3.3有人用溫度計測量出用華氏法表示的溫度(如F,今要求把它轉(zhuǎn)換為以攝氏法表示的溫度(如C)。轉(zhuǎn)換公式f代表華氏溫度,c代表攝氏溫度#include<stdio.h>intmain(){floatf,c;f=64.0;c=(5.0/9)*(f-32);printf("f=%f\nc=%f\n",f,c);return0;}定義f和c為單精度浮點型變量指定f的值計算c的值輸出f和c的值
例3.4計算存款利息。有1000元,想存一年。有三種方法可選:(1)活期,年利率為r1(2)一年期定期,年利率為r2(3)存兩次半年定期,年利率為r3
請分別計算出一年后按三種方法所得到的本息和。#include<stdio.h>intmain(){floatp0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;p1=p0*(1+r1);p2=p0*(1+r2);p3=p0*(1+r3/2)*(1+r3/2);printf(”%f\n%f\n%f\n”,p1,p2,p3);return0;}定義變量同時賦予初值C運算符簡介
C的運算符有以下幾類:(1)算術(shù)運算符(+、-、*、/、%)(2)關(guān)系運算符(>、<、>=、<=、==、?。剑?3)邏輯運算符(!、&&、||)(4)位運算符(<<、>>、~、|、∧、&)(5)賦值運算符(=及其擴展賦值運算符)(6)條件運算符(?:)(7)逗號運算符(,)(8)指針運算符(*、&)(9)求字節(jié)數(shù)運算符(sizeof)(10)強制類型轉(zhuǎn)換運算符((類型))(11)分量運算符(.->)(12)下標運算符([])(13)其他(如函數(shù)調(diào)用運算符())3.7運算符和表達式(1)算術(shù)表達式和運算符的優(yōu)先級與結(jié)合性基本的算術(shù)運算符:
用算術(shù)運算符和括號將運算對象(也稱操作數(shù))連接起來的、符合C語法規(guī)則的式子,稱為C算術(shù)表達式。運算對象包括常量、變量、函數(shù)等。例如:
a*b/c-1.5+′a′
是一個合法的表達式算術(shù)表達式和運算符C語言規(guī)定了運算符的優(yōu)先級和結(jié)合性。在表達式求值時,先按運算符的優(yōu)先級別高低次序執(zhí)行,例如先乘除后加減。C規(guī)定了各種運算符的結(jié)合方向(結(jié)合性)
算術(shù)運算符的結(jié)合方向為“自左至右”,即先左后右。(2)強制類型轉(zhuǎn)換運算符可以利用強制類型轉(zhuǎn)換運算符將一個表達式轉(zhuǎn)換成所需類型。一般形式:(類型名)(表達式)例如:(double)a將a轉(zhuǎn)換成double類型(int)(x+y)將x+y的值轉(zhuǎn)換成整型(float)(5%3)將5%3的值轉(zhuǎn)換成float型(3)自增、自減運算符作用是使變量的值增1或減1如:++i,--i(在使用i之前,先使i的值加(減)1)i++,i--(在使用i之后,使i的值加(減)1)注意:
(1)自增運算符(++),自減運算符(--),只能用于變量,而不能用于常量或表達式,
(2)++和--的結(jié)合方向是“自右至左”。自增(減)運算符常用于循環(huán)語句中使循環(huán)變量自動加1。也用于指針變量,使指針指向下一個地址賦值運算符和賦值表達式(1)賦值運算符 賦值符號“=”就是賦值運算符,它的作用是將一個數(shù)據(jù)賦給一個變量。 如“a=3”的作用是執(zhí)行一次賦值操作(或稱賦值運算)。把常量3賦給變量a。 也可以將一個表達式的值賦給一個變量.(2)類型轉(zhuǎn)換 如果賦值運算符兩側(cè)的類型不一致,但都是數(shù)值型或字符型時,在賦值時要進行類型轉(zhuǎn)換。(3)復(fù)合的賦值運算符在賦值符“=”之前加上其他運算符,可以構(gòu)成復(fù)合的運算符。例如:a+=3等價于a=a+3(4)賦值表達式一般形式為:<變量><賦值運算符><表達式>逗號運算符:將兩個表達式連接起來,又稱為“順序求值運算符”
如:3+5,6+8一般形式:
表達式1,表達式2求解過程:先求解表達式1,再求解表達式2。整個逗號表達式的值是表達式2的值。例:逗號表達式a=3*5,a*4逗號運算符和逗號表達式1.關(guān)系運算符及其優(yōu)先次序<(小于)<=(小于或等于)>(大于)>=(大于或等于)==(等于)!=(不等于)優(yōu)先級相同(高)優(yōu)先級相同(低)說明:關(guān)系運算符的優(yōu)先級低于算術(shù)運算符關(guān)系運算符的優(yōu)先級高于賦值運算符關(guān)系運算符和關(guān)系表達式C語言中沒有專用的邏輯值,1代表真,0代表假2.關(guān)系表達式 用關(guān)系運算符將兩個表達式(可以是算術(shù)表達式或關(guān)系表達式,邏輯表達式,賦值表達式,字符表達式)接起來的式子,稱關(guān)系表達式例:a>b,a+b>b+c,(a=3)>(b=5),’a’<‘b’,(a>b)>(b<c)關(guān)系表達式的值是一個邏輯值,即“真”或“假”。例:關(guān)系表達式”a>b”的值為“真”,表達式的值為1。算術(shù)運算符 高關(guān)系運算符賦值運算符低(優(yōu)先級關(guān)系)邏輯運算符和邏輯表達式1.邏輯運算符及其優(yōu)先次序
!(邏輯非)相當(dāng)于其他語言中的NOT &&(邏輯與)相當(dāng)于其他語言中的AND ||(邏輯或)相當(dāng)于其他語言中的OR
例:a&&b若a,b為真,則a&&b為真。
a||b若a,b之一為真,則a||b為真。!a若a為真,則!a為假。優(yōu)先次序:
!非高
算術(shù)運算符關(guān)系運算符
&&||賦值運算符低優(yōu)先級關(guān)系2.邏輯表達式 用邏輯運算符將關(guān)系表達式或邏輯量連接起來的式子就是邏輯表達式。 邏輯表達式的值應(yīng)該是一個邏輯量“真”或“假”。例:設(shè)a=4,b=5:!a的值為0a&&b的值為1a||b的值為1!a||b的值為14&&0||2的值為1任何非零的數(shù)值被認作“真”3.8數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)(一).所謂輸入輸出是以計算機主機為主體而言的輸出:從計算機向外部輸出設(shè)備(顯示器,打印機)
輸出數(shù)據(jù)輸入:從輸入設(shè)備(鍵盤,鼠標,掃描儀)向計算機輸入數(shù)據(jù).(二).C語言本身不提供輸入輸出語句,輸入和輸出操作是由C函數(shù)庫中的函數(shù)來實現(xiàn)的例如:字符輸入函數(shù):getchar字符輸出函數(shù):putchar格式輸入函數(shù):scanf格式輸出函數(shù):printf字符串輸入函數(shù):gets字符串輸出函數(shù):puts(三).在使用系統(tǒng)庫函數(shù)時,要用預(yù)編譯命令“#include”將有關(guān)的“頭文件”包括到用戶源文件中.例如:在調(diào)用標準輸入輸出庫函數(shù)時,文件開頭應(yīng)該有:
#include“stdio.h”
或:
#include<stdio.h>頭文件3.8-1字符數(shù)據(jù)的輸入輸出(一).字符輸出函數(shù)一般形式:putchar(c)
函數(shù)作用:向終端輸出一個字符
例3.5輸出單個字符。
#include<stdio.h>
voidmain()
{
chara,b,c;
a=‘B’;b=‘O’;c=‘Y’;
putchar(a);putchar(b);putchar(c);putchar(‘\n’);
}
運行結(jié)果:BOYputchar(a);putchar(‘\n’);putchar(b);putchar(‘\n’);putchar(c);putchar(‘\n’);運行結(jié)果:BOY(二).字符輸入函數(shù)一般形式:getchar()函數(shù)作用:從終端輸入一個字符。函數(shù)值:從輸入設(shè)備得到的字符。例3.6輸入單個字符。
#include<stdio.h>
voidmain()
{
charc;
c=getchar();
putchar(c);
putchar(‘\n’);
}3.8-2格式輸入與輸出(一).格式輸出函數(shù)函數(shù)作用:向終端(或系統(tǒng)隱含指定的輸出設(shè)備)輸出若干個任意類型的數(shù)據(jù)。一般格式:printf(格式控制,輸出表列)%d:以帶符號的十進制形式輸出整數(shù)%o:以八進制無符號形式輸出整數(shù)%x:以十六進制無符號形式輸出整數(shù)%u:以無符號十進制形式輸出整數(shù)%c:以字符形式輸出,只輸出一個字符%s:輸出字符串%f:以小數(shù)形式輸出單,雙精度數(shù),隱含輸出六位小數(shù)%e:以指數(shù)形式輸出實數(shù)%g:選用%f或%e格式中輸出寬度較短的一種格式,不輸出無意義的0幾種常見的格式符的修飾符:l:用于長整型整數(shù),可加在格式符d,o,x,u前面m(代表一個正整數(shù)):數(shù)據(jù)最小寬度n(代表一個正整數(shù)):對實數(shù),表示輸出n位小數(shù);對字符串,表示截取的字符個數(shù)—:輸出的數(shù)字或字符在域內(nèi)向左靠(1)d格式符。用來輸出十進制整數(shù)。幾種用法:①%d:按十進制整型數(shù)據(jù)的實際長度輸出。②%md:m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左端補以空格,若大于m,則按實際位數(shù)輸出。例:printf(“%4d,%4d”,a,b);
若a=123,d=12345,則輸出結(jié)果為123,12345③%ld:輸出長整型數(shù)據(jù)。例:longa=13579;/*定義a為長整型變量*/printf(“%ld”,a);(2)o格式符。以八進制整數(shù)形式輸出。輸出的數(shù)值不帶符號,符號位也一起作為八進制數(shù)的一部分輸出。例:inta=-1;printf("%d,%o",a,a);-1在內(nèi)存單元中的存放形式(以補碼形式存放)如下:1111111111111111
輸出為:-1,177777不會輸出帶負號的八進制整數(shù)。對長整數(shù)(long型)可以用“%lo”格式輸出。還可以指定字段寬度,例:printf(“%8o“,a);
輸出為:177777。(數(shù)字前有2個空格)(3)x格式符。以十六進制數(shù)形式輸出整數(shù)。同樣不會出現(xiàn)負的十六進制數(shù)。例:inta=-1;
printf(“%x,%o,%d”,a,a,a);輸出結(jié)果為:ffff,177777,-1可以用“%lx”輸出長整型數(shù),也可以指定輸出字段的寬度例:“%l2x”(4)u格式符,用來輸出unsigned型數(shù)據(jù).一個有符號整數(shù)(int型)也可以用%u格式輸出;一unsigned型數(shù)據(jù)也可以用%d格式輸出。unsigned型數(shù)據(jù)也可用%o或%x格式輸出。(5)c格式符,用來輸出一個字符。如:chard=′a′;
printf(″%c″,d);輸出字符′a′.
一個整數(shù),只要它的值在0-255范圍內(nèi),可以用“%c”使之按字符形式輸出,在輸出前,系統(tǒng)會將該整數(shù)作為ASCII碼轉(zhuǎn)換成相應(yīng)的字符;一個字符數(shù)據(jù)也可以用整數(shù)形式輸出。運行結(jié)果:
a=-1,177777,ffff,65535
b=-2,177776,fffe,65534
c=a,97
i=a,97例3.7無符號數(shù)據(jù)的輸出。
#include<stdio.h>
voidmain()
{unsignedinta=65535;intb=-2,i=97;char=‘a(chǎn)’;
printf(“a=%d,%o,%x,%u\n”,a,a,a,a);
printf(“b=%d,%o,%x,%u\n”,b,b,b,b);
printf(“c=%c,%d\n”,c,c);
printf(“i=%c,%d\n”,i,i);}(6)s格式符輸出字符串.①%s。例如:
printf(″%s″,″CHINA″)輸出字符串“CHINA”(不包括雙引號)。②%ms,輸出的字符串占m列,若串長大于m,則全部輸出,若串長小于m,則左補空格。③%-ms,若串長小于m,字符串向左靠,右補空格。④%m.ns,輸出占m列,只取字符串中左端n個字符,輸出在m列的右側(cè),左補空格。⑤%-m.ns,n個字符輸出在m列的左側(cè),右補空格,若n〉m,m自動取n值。運行結(jié)果:
CHINA,
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025民間的借款合同范本2
- 2025搬家貨運合同模板
- 2025年度年度水利工程設(shè)施維修管理協(xié)議3篇
- 二零二五年度2025年農(nóng)業(yè)合作社合伙人合同協(xié)議3篇
- 2025年度農(nóng)村房屋買賣合同(含房屋附屬設(shè)施及土地開發(fā))
- 二零二五年度農(nóng)村住房建設(shè)智能化系統(tǒng)安裝合同
- 2025年度大學(xué)畢業(yè)生就業(yè)意向與培養(yǎng)協(xié)議3篇
- 2025年度出差環(huán)境保護與可持續(xù)發(fā)展協(xié)議3篇
- 二零二五年度新型農(nóng)村機井承包管理協(xié)議
- 2025年度體育用品商鋪租賃合同范本(含賽事贊助合作)3篇
- ANSYS有限元技術(shù)分析優(yōu)化
- 模具專業(yè)英語完整版電子課件
- 小學(xué)數(shù)學(xué)北師大四年級上冊四運算律運算定律復(fù)習(xí)課PPT
- 個人社保代繳協(xié)議合同模板
- C4支持學(xué)生創(chuàng)造性學(xué)習(xí)與表達作業(yè)1-設(shè)計方案
- 給水排水管道工程外觀質(zhì)量檢查記錄
- 2022年國家電力公司火力發(fā)電廠勞動定員標準
- 危險化學(xué)品水路運輸安全管理規(guī)定
- 教育中的心理效應(yīng)
- 考古繪圖(課堂PPT)
- PE管熱熔對接施工方案完整
評論
0/150
提交評論