版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
會計學(xué)1C語言初級教程數(shù)據(jù)類型運(yùn)算符和表達(dá)式內(nèi)容提要基本數(shù)據(jù)類型;常量和變量;標(biāo)識符命名;常用運(yùn)算符和表達(dá)式;運(yùn)算符的優(yōu)先級與結(jié)合性第1頁/共43頁一個簡單的C程序例子#include<stdio.h>/*函數(shù)功能:計算兩個整數(shù)相加之和
入口參數(shù):整型數(shù)據(jù)a和b
返回值:整型數(shù)a和b之和*/int
Add(inta,intb){
return(a+b);}/*主函數(shù)*/main(){
intx,y,sum=0; printf("Inputtwointegers:"); scanf("%d%d",&x,&y);/*輸入兩個整型數(shù)x和y*/ sum=Add(x,y);/*調(diào)用函數(shù)Add計算x和y相加之和*/ printf("sum=%d\n",sum);/*輸出x和y相加之和*/}第2頁/共43頁C程序常見符號分類關(guān)鍵字(Keyword)又稱為保留字,C語言中預(yù)先規(guī)定的具有固定含義的一些單詞標(biāo)識符(Identifier)系統(tǒng)預(yù)定義標(biāo)識符用戶自定義標(biāo)識符運(yùn)算符(Operator)34種,詳見附錄D
分隔符(Separator)空格、回車/換行、逗號等其它符號大花括號“{”和“}”通常用于標(biāo)識函數(shù)體或者一個語句塊“/*”和“*/”是程序注釋所需的定界符數(shù)據(jù)(Data)變量(Variable)常量(Constant)第3頁/共43頁數(shù)據(jù)類型(DataType)數(shù)據(jù)為什么要區(qū)分類型?不同類型的數(shù)據(jù)代表不同的數(shù)據(jù)表示形式合法的取值范圍占用內(nèi)存空間大小可參與的運(yùn)算種類從基本數(shù)據(jù)類型到抽象數(shù)據(jù)類型無數(shù)據(jù)類型基本數(shù)據(jù)類型構(gòu)造數(shù)據(jù)類型抽象數(shù)據(jù)類型第4頁/共43頁數(shù)據(jù)類型(DataType)數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型整型實(shí)型(浮點(diǎn)型)字符型枚舉類型數(shù)組類型結(jié)構(gòu)體類型共用體類型單精度實(shí)型雙精度實(shí)型基本整型長整型短整型無符號整型第5頁/共43頁標(biāo)識符命名變量名函數(shù)名由英文字母、數(shù)字和下劃線組成,但不可以是數(shù)字開頭,大小寫敏感直觀,見名知意,便于記憶和閱讀最好使用英文單詞或其組合切忌使用漢語拼音下劃線和大小寫通常用來增強(qiáng)可讀性variablenamevariable_nameVariableName,variableName不允許使用關(guān)鍵字作為標(biāo)識符的名字
int,float,for,while,if等某些功能的變量采用習(xí)慣命名如:for語句所采用的循環(huán)變量習(xí)慣用i,j,kWindows風(fēng)格UNIX風(fēng)格第6頁/共43頁b,B,KB,MB,GB,TBMegabyte(MB),中文叫法:兆Kilobyte(KB),中文叫法:
KByte,中文叫法:字節(jié)bit,中文叫法:位Gigabyte(GB),中文叫法:GTerabyte(TB),中文叫法:T1TB==
1,024GB1GB
==
1,024MB1MB
==
1,024KB1KB
==
1,024B1B==
8b第7頁/共43頁b,B,KB,MB,GB,TB一個位有多大?只能是“0”或者“1”,這叫二進(jìn)制一個字節(jié)有多大?保存一個字符(英文字母、數(shù)字、符號)ASCII(美國標(biāo)準(zhǔn)信息交換碼)編碼兩個字節(jié)保存一個漢字GB編碼可以表示數(shù)字0~255第8頁/共43頁基本數(shù)據(jù)類型int整數(shù),在目前絕大多數(shù)機(jī)器上占4個字節(jié)。float單精度浮點(diǎn)數(shù),一般是4個字節(jié)長。double雙精度浮點(diǎn)數(shù),一般是8個字節(jié)長。char字符,一般是1個字節(jié)長。用來表示256個ASCII字符,或者0~255的整數(shù)。第9頁/共43頁數(shù)據(jù)類型修飾符shortshort
int,短整數(shù),一般2個字節(jié)長。通常簡寫為shortlonglong
int,長整數(shù),一般是4個字節(jié)長。通常簡寫為longlong
double,長雙精度(高精度)浮點(diǎn)數(shù),一般是10個字節(jié)長。signed用來修飾char、int、short和long,說明他們是有符號的整數(shù)(正整數(shù)、0和負(fù)整數(shù))。一般缺省都是有符號的,所以這個修飾符通常省略unsigned用來修飾char、int、short和long,說明他們是無符號的整數(shù)(正整數(shù)和0)第10頁/共43頁使用變量要注意區(qū)分變量名和變量值的概念不要對變量所占的內(nèi)存空間字節(jié)數(shù)想當(dāng)然用sizeof獲得變量或者數(shù)據(jù)類型的長度注意!#include<stdio.h>main(){
printf("DatatypeNumberofbytes\n");
printf("---------------------------------\n");
printf("char%d\n",sizeof(char));
printf("int%d\n",sizeof(int));
printf("shortint%d\n",sizeof(short));
printf("longint%d\n",sizeof(long));
printf("float%d\n",sizeof(float));
printf("double%d\n",sizeof(double));}第11頁/共43頁變量聲明使用變量的基本原則變量必須先定義,后使用所有變量必須在第一條可執(zhí)行語句前定義聲明的順序無關(guān)緊要一條聲明語句可聲明若干個同類型的變量聲明變量,是初始化變量的最好時機(jī)不被初始化的變量,其值為危險的隨機(jī)數(shù) charesc='a'; inti=1; intsum=0; floateps=1.0e-5;第12頁/共43頁實(shí)型數(shù)據(jù)提供的有效數(shù)字位數(shù)float型數(shù)據(jù)提供7位有效數(shù)字double型數(shù)據(jù)提供16位有效數(shù)字使用不當(dāng)導(dǎo)致舍入誤差#include<stdio.h>main(){
floata;
doubleb; a=123456.789e4; b=123456.789e4;
printf("%f\n%f\n",a,b);}第13頁/共43頁數(shù)據(jù)在內(nèi)存中的存儲格式整型字符型實(shí)型階碼符號階碼的數(shù)值尾數(shù)符號尾數(shù)的數(shù)值階碼j尾數(shù)S第14頁/共43頁char型與int型之間的關(guān)系小寫字母轉(zhuǎn)換為大寫字母#include<stdio.h>main(){
charch='b';
ch='b'-32;
printf("%c,%d\n",ch,ch);}#include<stdio.h>main(){
charch='b';
ch='b'-('a'-'A')
;
printf("%c,%d\n",ch,ch);}第15頁/共43頁常數(shù)(Constant)整型常數(shù)18、-31長整型常量123l、123L、123456l、123456L無符號型常量123u、123U浮點(diǎn)常數(shù)十進(jìn)制小數(shù)形式123.45、456.78指數(shù)形式1e-2、4.5e3單精度實(shí)型常量123.45f、456.78F、1e-2f、4.5e3F長雙精度型常量123.45l、456.78L、1e-2l、4.5e3L第16頁/共43頁八進(jìn)制與十六進(jìn)制常數(shù)以數(shù)字“0”開始的整型常數(shù)是八進(jìn)制數(shù)022、-037010和10大小不一樣因?yàn)榘诉M(jìn)制并不常用,所以此種表示法比較少見以“0x”或者“0X”開始的整型常數(shù)是十六進(jìn)制A~F和a~f用來表示十進(jìn)制的10~15十六進(jìn)制的形式比較常用,尤其在進(jìn)行位一級的控制的時候0x12、-0x1F,-0x1f第17頁/共43頁字符(Character)常數(shù)字符常數(shù)的表示方法’a’,’A’,’5’,’%’,’$’……單引號內(nèi)只能有一個字符,除非用“\”開頭就是一個普通整數(shù),也可以參與各種數(shù)學(xué)運(yùn)算每個字符具有一個0~255之間的數(shù)值,可從ASCII表查出注意:’5’和整數(shù)5的區(qū)別字符的數(shù)學(xué)運(yùn)算在密碼學(xué)內(nèi)用得比較多第18頁/共43頁字符常數(shù)轉(zhuǎn)義字符一些特殊字符(無法從鍵盤輸入或者另有它用)用轉(zhuǎn)義字符表示第19頁/共43頁字符串(String)常數(shù)用雙引號括住的由0個或多個字符組成的字符序列"Iamastring"""表示空字符串轉(zhuǎn)義字符也可以在字符串中使用引號只作為字符串開始和結(jié)束的標(biāo)志C語言內(nèi)部用’\0’表示字符串的結(jié)束除注釋外,是唯一可以出現(xiàn)中文的地方"x"和’x’是不同的<string.h>里定義了一系列專門的字符串處理函數(shù)第20頁/共43頁枚舉(Enumeration)常量一個被遺忘的角色從程序來窺其一斑
enumweeks{MON,TUE,WED,THU,FRI,SAT,SUN};
enumweekstoday;enumresponse{no,yes,none};enumresponseanswer;today=TUE;answer=yes;
if(answer==yes)printf("TodayisTuesday.\n");
elseprintf("TodayisNOTTuesday.\n");第21頁/共43頁宏常量宏常量也稱符號常量一般采用大寫字母表示#define標(biāo)識符字符串不是語句,而是一種編譯預(yù)處理命令宏替換(MacroSubstitulition)#include<stdio.h>#definePI3.14159#defineR5.3main(){
printf("area=%f\n",PI*R*R);
printf("circumference=%f\n",2*PI*R);}#include<stdio.h>#definePI3.14159#defineR5.3main(){
printf("PI*R*R=%f\n",PI*R*R);
printf("2*PI*R=%f\n",2*PI*R);}第22頁/共43頁const常量用const修飾定義的為常量const
floatpi=3.1425926;
常量只能在定義時賦值,然后不能再改變其值常數(shù)、const常量、宏常量和枚舉常量,都可以用來表示一個永遠(yuǎn)不會改變的數(shù)前者不建議直接使用,而用后三者代替第23頁/共43頁算術(shù)運(yùn)算符+,-,*,/加、減、乘、除運(yùn)算先乘除,后加減,按從左向右的順序計算,左結(jié)合兩個整數(shù)相除時,商為整數(shù)%求余運(yùn)算,兩個操作數(shù)必須全為整數(shù)常用的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)計算cosx的值,x為弧度值cos(x)計算lgx的值log10(x)計算sinx的值,x為弧度值sin(x)計算lnx的值log(x)計算xy的值pow(x,y)計算x的絕對值fabs(x)計算ex的值exp(x)計算x的平方根,x應(yīng)大于等于0sqrt(x)功能函數(shù)名功能函數(shù)名第24頁/共43頁關(guān)系運(yùn)算符>,>=,<,<=,==,!=大于,大于等于,小于,小于等于,等于,不等于優(yōu)先級:前4個優(yōu)先級相同,后兩個優(yōu)先級相同,前者優(yōu)先級高關(guān)系運(yùn)算符運(yùn)算出的結(jié)果為0和非00,表示假,即該關(guān)系不成立非0,表示真,即該關(guān)系成立絕大多數(shù)編譯器,關(guān)系運(yùn)算得到的非0結(jié)果為1,但是不要利用這個1第25頁/共43頁邏輯運(yùn)算符邏輯運(yùn)算也被稱為布爾(Boolean)運(yùn)算&&與運(yùn)算:(a>b&&b>c);a大于b,并且b大于c||或運(yùn)算:(a>b||b>c);a大于b,或者b大于c!求反:(!a);如果a是0,結(jié)果非0;如果a是非0,結(jié)果是0,但并不改變a的值在計算邏輯表達(dá)式時,只有在必須執(zhí)行下一個表達(dá)式才能求解時,才求解該表達(dá)式(即并不是所有的表達(dá)式都被求解)。第26頁/共43頁實(shí)例ch是英文大寫字母(ch>='A')&&(ch<='Z')判斷某一年year是否是閏年的條件是滿足下列兩個條件之一:能被4整除,但不能被100整除;能被400整除;((year%4==0)&&(year%100!=0))||(year%400==0)第27頁/共43頁增一和減一運(yùn)算符n++,n--,++n,--n++讓參與運(yùn)算的變量加1,--讓參與運(yùn)算的變量減1作為后綴運(yùn)算符時,先取n的值,然后加/減1作為前綴運(yùn)算符時,先加/減1,然后取n的值m=n++;
等價于m=n;n++;m=++n;
等價于n++;m=n;第28頁/共43頁增一和減一運(yùn)算符良好的程序設(shè)計風(fēng)格提倡:在一行語句中,一個變量只能出現(xiàn)一次加1或者減1運(yùn)算過多的加1和減1運(yùn)算混合,不僅可讀性差,而且因?yàn)榫幾g器實(shí)現(xiàn)的方法不同,導(dǎo)致不同編譯器產(chǎn)生不同的運(yùn)行結(jié)果第29頁/共43頁位操作運(yùn)算符&按位與運(yùn)算|按位或運(yùn)算^按位異或運(yùn)算<<按位左移運(yùn)算>>按位右移運(yùn)算~按位求反第30頁/共43頁賦值運(yùn)算符下面兩個語句是等價的i=i+2;i+=2;+、-、*、/、%、<<、>>、&、^、|運(yùn)算符都可以按此種方式處理這種形式看起來更直觀,而且執(zhí)行效率一般也能更高一些第31頁/共43頁逗號運(yùn)算符表達(dá)式1,表達(dá)式2,…..,表達(dá)式n整個逗號表達(dá)式的值,是最后一個表達(dá)式n的值,但多數(shù)情況下,并不使用整個逗號表達(dá)式的值,更常見的情況是要分別得到各表達(dá)式的值主要用在循環(huán)語句中,同時對多個變量賦初值等
for(i=0,j=0;i<j;i++,j++)第32頁/共43頁條件表達(dá)式把a(bǔ)和b中的最大值放入z中if(a>b)
z=a;
else
z=b;
z=(a>b)?a:b;
條件表達(dá)式的一般形式:
表達(dá)式1?表達(dá)式2:表達(dá)式3條件運(yùn)算符的優(yōu)先級僅高于賦值運(yùn)算符和逗號運(yùn)算符,并且結(jié)合性為自右向左。此種表達(dá)式切忌用得過于繁雜第33頁/共43頁優(yōu)先級()[]->.!~++--+-*&(類型)sizeof*/%+-<<>><<=>>===!=&^|&&||?:=+=-=*=/=%=&=^=|=<<=>>=,
!非
高
算術(shù)運(yùn)算符關(guān)系運(yùn)算符
&&
||賦值運(yùn)算符優(yōu)先級關(guān)系低第34頁/共43頁優(yōu)先級能背下優(yōu)先級表的人鳳毛麟角用括號來控制運(yùn)算順序更直觀、方便,并減少出錯的概率第35頁/共43頁結(jié)合性多數(shù)運(yùn)算符為左結(jié)合少數(shù)為右結(jié)合:一元運(yùn)算符賦值運(yùn)算符條件運(yùn)算符第36頁/共43頁類型轉(zhuǎn)換在進(jìn)行賦值操作時,會發(fā)生類型轉(zhuǎn)換將取值范圍小的類型轉(zhuǎn)為取值范圍大的類型是安全的反之是不安全的如果大類型的值在小類型能容納的范圍之內(nèi),則平安無事但是,浮點(diǎn)數(shù)轉(zhuǎn)為整數(shù),會丟失小數(shù)部分,非四舍五入反之,轉(zhuǎn)換后的結(jié)果必然是錯誤的,具體結(jié)果與機(jī)器和實(shí)現(xiàn)方式有關(guān)。避免如此使用第37頁/共43頁字符串與數(shù)值類型之間的轉(zhuǎn)換inti="123"這樣用是不行地atof(),atoi(),atol()把字符串轉(zhuǎn)為double,int和long定義在stdl
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025四川廣安安創(chuàng)人力資源有限公司招聘勞務(wù)派遣工作人員1人考試筆試模擬試題及答案解析
- 2025廣西百色市西林縣民族高級中學(xué)招聘后勤工作人員1人考試筆試備考題庫及答案解析
- 智慧醫(yī)療監(jiān)管互聯(lián)網(wǎng)行業(yè)方案
- 貨物破損損壞賠償合同
- 工牌標(biāo)識設(shè)計修改協(xié)議
- 神秘客戶行為模式協(xié)議
- 區(qū)塊鏈藥品溯源信息共享協(xié)議
- 膠帶質(zhì)量檢驗(yàn)協(xié)議
- 委托合同協(xié)議常見問題
- 微生物檢驗(yàn)技術(shù)更新方案
- 醫(yī)用耗材管理辦法原文
- 高州市緬茄杯數(shù)學(xué)試卷
- 傳承紅色基因鑄就黨紀(jì)之魂建黨104周年七一黨課
- 詩詞大會搶答題庫及答案
- 立式油罐知識培訓(xùn)課件
- 口腔健康科普指南
- 2025年《智能客戶服務(wù)實(shí)務(wù)》課程標(biāo)準(zhǔn)
- 公司便民雨傘管理制度
- 醫(yī)院購買電腦管理制度
- 編制竣工圖合同范本
- 新22J01 工程做法圖集
評論
0/150
提交評論