




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
高級語言程序設計揭安全jieanquan@163.com江西師范大學計算機信息工程學院高級語言程序設計——基于計算思維能力培養高級語言程序設計——基于計算思維能力培養第2章數據類型、運算符與表達式揭安全jieanquan@163.com江西師范大學計算機信息工程學院主要內容C程序基本結構C程序中常見的符號數據類型常量與變量運算符與表達式本章思維導圖C程序基本結構2.1#include<stdio.h>/*
@函數名稱:getMax
@入口參數:兩個整型形式參數a,b
@函數功能:返回兩個形式參數中的較大者 @文件名:2_1.c*/注釋【例2.1】C語言程序示例。2.1C程序基本結構intgetMax(inta,intb){intm;if(a>b)m=a;else m=b;returnm; /*如果a>b,則返回a,否則返回b*/}函數名稱函數體2.1C程序基本結構/* @函數名稱:main()
@函數功能:主函數*/intmain(){intx,y,z; /*變量定義*/printf("Pleaseinputtwointegers:");scanf("%d%d",&x,&y); /*輸入兩個整數*/
2.1C程序基本結構z=getMax(x,y);/*調用函數max求x,y中的較大者存入z*/printf("較大的數是:%d\n",z);
/*輸出z的值*/return0;}函數調用z=max(x,y);intmax(inta,intb){…returnm;}2.1C程序基本結構語句分隔符;2.1C程序基本結構主要內容C程序基本結構C程序中常見的符號數據類型常量與變量運算符與表達式C程序中
常見的符號2.21、標識符:用于標識程序中的函數、變量等對象的名稱統稱標識符。系統預定義標識符用戶自定義標識符2.2C程序中常見的符號命名規則:(1)英文字母或下劃線開頭,中間可以是數字或英文字線、下劃線等。(2)見名知意例:max,a,b,m,sum,_price,my@name,9cd2.2C程序中常見的符號2、關鍵字:又稱保留字,它們是C語言中預先規定的具有固定含義的標識符。 int表示整數類型char表示字符類型return表示返回主調函數。
用戶在自定義標識符不能與關鍵字相同。例如:2.2C程序中常見的符號
3、運算符:C語言的運算符有34種,如加、減、乘、除,分別表示為:+、-、*、/按運算對象分:單目運算符,如求負(-),自增(++)等雙目運算符,如+、-三目運算符,唯一一個,條件運算符?:2.2C程序中常見的符號4、數據:程序的加工對象,分為常量與變量。常量是指程序運行過程中保持不變的量。如:"Pleaseinputtwointegers:"2.2C程序中常見的符號4、數據:程序的加工對象,分為常量與變量。變量是指程序運行過程中可以修改的數據,一般對應內存單元。如:intx,y,z;2.2C程序中常見的符號5、分隔符與其它符號空格、回車、逗號、分號都是有效的分隔符。{、}、/*和*/等具有特定含義的符號塊注釋則包含在“/*”與“*/”之間。2.2C程序中常見的符號1.下列選項中不是C語言合法的自定義標識符的是()。sum01Flagpriceofbeef_priceABCD提交單選題5分主要內容C程序基本結構C程序中常見的符號數據類型常量與變量運算符與表達式數據類型2.3處理輸入設備輸出設備數據數據2.3數據類型(1)將牛肉切成大小適中的小塊(2)將每個土豆均勻切成4小塊(3)倒入50ml油,大火加熱…數據處理步驟2.3數據類型2.3數據類型基本數據類型和構造數據類型整數型、浮點型、字符型、字符串型和布爾型。數據類型決定了:該變量能夠存放數據的類型該變量占用內存占用的空間大小能夠對該變量執行的操作為何要區分數據類型?2.3數據類型圖2-5炊具和餐具的類型決定了其功能與用途2.3數據類型高級語言中的同一種數據類型又根據需要存儲數據的范圍區分成了不同的類別。如,在C語言中整型可分為:基本整型(int)短整型(shortint)長整型(longint)2.3數據類型2.3數據類型int整數,在目前絕大多數機器上占4個字節float單精度浮點數,4個字節double雙精度浮點數,8個字節2.3數據類型char字符,1個字節,表示256個ASCII字符,或0~255的整數shortshortint,簡寫為short,短整數,2個字節2.3數據類型longlongint,簡寫為long,長整數,4個字節Longlongint,8個字節longdouble,長雙精度(高精度)浮點數,10個字節unsigned用來修飾char、int、short和long無符號整數(正整數和0)2.3數據類型類型名范圍存儲大小char0~2551個字節shortint-215(-32768)~215-1(32767)2個字節int-231(-2147483648)~231-1(2147483647)4個字節unsignedint0~232-14個字節longlonglong-231(-2147483648)~231-1(2147483647)-263~263-14個字節8個字節float-3.4×10-38~3.4×1038精度為6位有效數字4個字節double-1.7×10-308~1.7×10308精度為15位有效數字8個字節如何知道變量占用的內存大小?2.C語言中,錯誤的int類型的常數是()。1E500370xafABCD提交單選題5分sizeof是C語言的運算符,并非函數,用于計算類型占用的字節數用法:sizeof(類型)結果為類型占用的字節數sizeof(變量名)結果為表達式值所屬類型占用的字節數2.3數據類型#include<stdio.h>intmain(){ printf("數據類型
字節\n"); printf("char%d\n",sizeof(char)); printf("short %d\n",sizeof(short)); printf("int %d\n",sizeof(int)); printf("unsigned %d\n",sizeof(unsigned)); printf("long %d\n",sizeof(long)); printf("longlong%d\n
",sizeof(longlong)); printf("float %d\n",sizeof(float)); printf("double %d\n",sizeof(double)); return0;}【例2.2】測試各種數據類型占用的內存空間數據類型
字節char 1short 2int 4unsigned 4long 4longlong 8float 4double 82.3數據類型主要內容C程序基本結構C程序中常見的符號數據類型常量與變量運算符與表達式常量2.4整型常量字符型常量實型常量字符串常量2.4常量整型常數的表示形式(1)十進制整數:
如2008、+1975、-1,18u,123L,140Lu(2)八進制整數:
例如,012表示(12)8,-020表示(-20)8。(3)十六進制整數:
例如,0x20表示十六進制的(20)16,同理0x2A3B表示十六進制數(2A3B)16整型常量默認為int型2.4.1整型常量實型常量的表示形式(1)十進制小數表示形式
如.56、3.1415926、-96.25f、20.(2)指數形式
例如,314.15926e-2、0.031415926E2。注意:e4,2E4.5,.e8都是不合法的表示形式。浮點型常量默認為double型2.4.2實型常量C語言中用單引號括起來的單個字符為字符常量。如‘A’,‘9’等。ASCII碼
b7b6b5b4b3b2b1b001000001附錄B是常用字符的ASCII碼表2.4.3字符常量小寫字母‘a’的ASCII碼為97大寫字母‘A’的ASCII碼為65大寫字母與其對應的小寫字母的ASCII碼相差32。將一個大寫字母的ASCII碼加上32可以將它轉換成對應的小寫字母;數字字符‘0’的ASCII碼為48。
2.4.3字符常量字符含義字符含義‘\n’換行(Newline)‘\a’響鈴報警提示音(AlertorBell)‘\r’回車(不換行)(CarriageReturn)‘\”’一個雙引號(DoubleQuotationMark)‘\0’空字符,通常用作字符串結束標志‘\’’單引號(SingleQuotationMark)‘\t’水平制表(HorizontalTabulation)‘\\’一個反斜線(Backslash)‘\v’垂直制表(VerticalTabulation)‘\?’問號(QuestionMark)‘\b’退格(Backspace)‘\ddd’1到3位八進制ASCII碼值所代表的字符‘\f’走紙換頁(FormFeed)‘\xhh’1到2位十六進制ASCII碼值所代表的字符轉義字符‘\n’:換行‘\t’:水平制表‘\b’:退格‘\ddd’‘\xhh’3.下列轉義字符中錯誤的是()。'\000''\r''\x111''\2'ABCD提交單選題5分例如:printf(“Hesaid\”Ilikeclanguageverymuch.\”\n”);輸出結果為:Hesaid”Ilikeclanguageverymuch.”轉義字符用雙引號括起來的串如:"Helloworld!","a","中國","3.14159"等。
2.4.4字符串常量可用#define宏定義宏常量例如,若有定義:#definePI3.1415926則area=PI*10.2*10.2;等價于area=3.1415926*10.2*10.2;
注意:后面不需加;號2.4.5宏常量變量2.5變量的本質是內存或CPU中的寄存器,其值可以改變。使用變量前要需根據存儲的數據類型與數據范圍選擇相應的變量類型。2.5變量例如:intlength;floatarea,volume;charanswer,selection;ANSIC變量使用基本原則變量必須先聲明,后使用;所有變量必須在第一條可執行語句前聲明;聲明的順序無關緊要;一條聲明語句可聲明若干個同類型的變量。2.5.1變量的聲明每一條完整的聲明語句都要以分號結尾;在同一個函數中,不能聲明同名的多個變量。變量的命名規則同用戶自定義標識符的命名規則,同時遵循見名知意的原則。
2.5.1變量的聲明新定義的變量其值為不確定數據。inta,b;charc;floatarea;2.5.2變量初始化inta=20,b=30;charc=‘A’;floatarea;2.5.2變量初始化新定義的變量其值為不確定數據。簡單賦值語句語法:
變量=
表達式;Don’tforgetthesemicolon!!Everyassignmentexpressionhasavalue2.5.3變量的訪問與使用例如:a=b; 30b=0; c=c+1;0662.5.3變量的訪問與使用對變量進行賦值時,賦值語句右邊的表達式類型應該與賦值語句左邊的變量類型相容。ValidExample: InvalidExample:
intx; charc; x=20; c=“Hello”;2.5.3變量的訪問與使用多重賦值語句語法:變量1=
變量2=
表達式;Don’tforgetthesemicolon!!右結合:從右向左賦值變量1=(變量2=表達式);2.5.3變量的訪問與使用Example:inta,b;intc;a=b=c=0;b??a??
c??0002.5.3變量的訪問與使用多重賦值語句顯示變量的值printf(“a:%d\n”,a);a:30注意:%d僅用于int型變量,如果要顯示字符型,可以用%c來代替%d。如果要顯示float型變量,則需要用%f。默認情況下,%f會顯示出小數點后6位數字。2.5.3變量的訪問與使用4.下列選項中正確的變量聲明與初始化語句是()。inta=b=10;chara='我';floata=10;doublea=∞;ABCD提交單選題5分5.下列數據中,不是C語言常量的是()。'\n'"a"e-2012ABCD提交單選題5分主要內容C程序基本結構C程序中常見的符號數據類型常量與變量運算符與表達式運算符與表達式2.6算術運算符關系運算符邏輯運算符賦值運算符條件運算符逗號運算符指針運算符自增(自減)運算符求字節運算符和特殊運算符2.6運算符與表達式Example:x+y操作數(Operand)運算符(Operator)操作數(Operand)2.6運算符與表達式2.6.1算術運算符Addition(+)Subtraction(-)Multiplication(*)Division(/)Modulus(%)(x+y)/2-(a*b-(a+b))/(x-y)(x+y)/2-(a*b-a-b)/(x-y)2.6.1算術運算符除法/Division浮點數除法(FloatingDivision)xoryorbotharefloats整數除法(IntegerDivision)xandyareintegersExample:x/y除法/DivisionExample:anintegeraninteger
theresultisalsoaninteger11/2=5除法/DivisionExample:andoubleaninteger
theresultisalsoandouble11.0/2=5.5求余%(Modulus)操作數必須為整數Example:11%3=2anintegeranintegertheresultistheremainderof11/3113392remainderresult求余(Modulus)余數符號與被除數同號Example:-26%-8=-2anintegeraninteger-26-83-24-2remainderresulttheresultistheremainderof-26/-8求余(Modulus)Example:15%-4=3anintegeraninteger15-4-3123remainderresulttheresultistheremainderof15/-4余數符號與被除數同號#include<stdio.h>intmain(){inta=17,integerResult;floatb=17.0,floatResult;integerResult=a/2;printf("integerResult:%d\n",integerResult);floatResult=b/2;printf("floatResult:%f\n",floatResult);printf("Remainderof(7+79)and24is:%d",(7+79)%24);return0;}integerResult:8floatResult:8.500000Remainderof(7+79)and24is:14【例2.3】寫出下面程序的輸出結果。如何分離個位、十位、百位數字?個位:153%10
=3十位:153/10%10=5百位:153/100=1【例2.4】利用算術運算符求一個三位整數的百位數、十位數和個位數,并輸出它們和與乘積。#include<stdio.h>intmain(){intx,b0,b1,b2,sum,product;x=153;b0=x%10;
//求個位數b1=x/10%10;
//求十位數b2=x/100;
//求百位數sum=b0+b1+b2;product=b0*b1*b2;printf("b2=%d\tb1=%d\tb0=%d\n",b2,b1,b0);printf("sum=%d\tproduct=%d\n",sum,product);return0;}b2=1b1=5b0=3sum=9product=157.設floatc,f;,將數學表達式c=(f-32)正確表示成C語言賦值表達式的是()。c=5*(f-32)/9c=5/9(f-32)c=5/9*(f-32)c=5/(9*(f-32))ABCD提交單選題5分2.6.2運算符的優先級與結合性當算術表達式包含兩個或兩個以上的算術運算符時
首先要確定運算順序所有的運算符都有一個優先級
(OrderofPrecedence)
附錄C——運算符的優先級與結合性不同優先級時的運算順序:——從高到低
例如:*,/,%
優先級大于+、-相同優先級時的運算順序:——左結合為從左到右,右結合為從右到左例如:算術運算為左結合,賦值運算為右結合2.6.2運算符的優先級與結合性除后置++、--運算符之外的一元運算符和三元運算符均為右結合;除賦值運算符之外的所有二元運算符均為左結合。自增和自減運算符(++和--)用作后綴運算符時(比如x++)具有較高的優先級。運算符的優先級不需要去死記硬背,編寫程序時可以通過使用()來改變表達式的計算順序。2.6.2運算符的優先級與結合性5+2+4*3-6=?例:算術表達式計算順序71219-6=13=135+2+4*(3–6)=?利用()改變計算順序:7-3=-5-12=-572.6.3關系運算符運算符意義范例結果<
小于10<90<=小于或等于8<=201>
大于10>81>=大于或等于8>=100==等于10==101!=不等于9!=90例如,表達式10+30<10+40等價于(10+30)<(10+40)。2.6.3關系運算符注意不要直接判斷兩個浮點數是否相等。注意區別C語言的關系表達式與數學中的關系表達式。在數學中10<x<20,表示x∈(10,20)在C語言中能用10<x<20表示x∈(10,20)嗎?2.6.4復合賦值運算符Syntax:
變量x=變量x
運算符op
表達式;
變量x
運算符op=表達式;例如:
x=x+10;可寫成:x+=10;2.6.4復合賦值運算符Example:num=num+2;num15
15+2
1717Example:num+=2;similarto
num=num+2shorthandassignmentoperator2.6.4復合賦值運算符運算符復合賦值運算例子計算過程+=num+=2;num=num+2;-=num-=2;num=num–2;*=num*=a+b;num=num*(a+b);/=num/=a-b;num=num/(a-b);%=num%=2;num=num%2;2.6.4復合賦值運算符例如,若有變量定義intx=10;則表達式: x*=2+3;等價于: x=x*(2+3); (x的結果為50)而不是: x=x*2+3;
(x的結果為23)例如,若有變量定義inta=10,b=20,c=30;表達式a+=b+=c;等價于a+=(b+=c); //執行完后a的值為60,b的值為50,c的值為30執行后,a,b,c的值分別是?2.6.4復合賦值運算符再如,若有變量定義inta=3;表達式 a+=a*=a-=1;的計算順序為:a-=1; //a=2a*=a; //a=4a+=a;
//a=82.6.4復合賦值運算符8.設floatm=4.0,n=4.0;,使m為10.0的表達式是()。m-=n*2.5m/=n+9m*=n-6m+=n+2ABCD提交單選題5分2.6.5++和--運算符x++,x--,++x,--x++讓參與運算的變量加1,--讓參與運算的變量減1作為后綴(postfix)運算符時,先取x的值參與表達式計算,然后x自身加/減1y=x++;y=x;x=x+1;2.6.5++和--運算符x++,x--,++x,--x++讓參與運算的變量加1,--讓參與運算的變量減1作為前綴(prefix)運算符時,先將x的值加1,然后再取x的值參與表達式計算y=++x;x=x+1;y=x;Example:y=x++-2x10similartoy=x–2;x=x+1;后綴(Postfix)增1和減1運算符y??811Example:y=++x-2x10similartox=x+1;y=x–2;y??911前綴(Prefix)增1和減1運算符y=-x++; printf("x:%d,y:%d\n",x,y); x10similartoy=-(x++);后綴(Postfix)增1和減1運算符11y10-10x=x+1;printf(“x:%d,y:%d\n",x,y);x:11,y:-102.6.5++和--運算符良好的程序設計風格提倡:在一行語句中,一個變量只能出現一次增1或者減1運算過多的增1和減1運算混合,不僅可讀性差,而且因為編譯器實現的方法不同,導致不同編譯器產生不同的運行結果9.若定義了inta,x,y;,則下列語句中不正確的是()。x=y=5;++x;x=y+=x*30;a=y+x=30;ABCD提交單選題5分表達式的類型轉換2.72.7表達式的類型轉換賦值表達式的類型轉換char,shortintunsignedlongunsignedlonglonglonglongdoubledoublefloat2.7表達式的類型轉換不當的賦值將導致溢出2.7表達式的類型轉換例如,有變量定義:inta=2;longb=10;doublec=25;floatsum=0;sum=‘A'+2*a+b*c的計算過程:2.7表達式的類型轉換強制類型轉換
(類型說明符)表達式(float)(x+y) 將x+y的值轉換成float類型。(int)a+b 將a的值取出轉換為int型再與b相加。(double)b 取出變量b的值轉換為double型#include<stdio.h>intmain(){constfloatpi=3.1415926;//定義const常量floatr=5.0;doublelength,area;length=2.0*pi*r; //計算圓的周長area=pi*r*r; //計算圓的面積printf("length=%f\n",length);//輸出圓的周長printf("area=%f\n",area);//輸出圓的面積retu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣深鐵路股份2024年度社會責任報告-ESG
- 2025游泳池防腐施工合同
- 語言表達的修辭解碼知到課后答案智慧樹章節測試答案2025年春湘潭大學
- 2025ss房屋裝修合同書樣本
- 2024年自然資源部第一海洋研究所招聘工作人員真題
- 2024年長沙縣中醫院招聘專業技術人員真題
- 2024年鹽城市衛生健康委直屬事業單位招聘專業技術人員真題
- 2024年通山縣財政局所屬事業單位招聘工作人員真題
- 2025勞動合同書模板2
- 貴港市養牛合同范本
- 實習協議書簡單模板
- 2025屆高三部分重點中學3月聯合測評(T8聯考)地理試卷(河北版含答案)
- 小學一年級數學下冊口算題卡
- 肝功能檢查的試題及答案
- 生豬屠宰獸醫衛生檢驗人員理論考試題及答案
- 2023-2024學年下學期高一思想政治課《心理健康與職業生涯》期中模擬考試卷答案
- SWITCH塞爾達傳說曠野之息-1.6金手指127項修改使用說明教程
- 一年級上冊科學課件-1.3 觀察葉(3) l 教科版 (共14張PPT)
- 課間操評分辦法及評分表(共4頁)
- (完整版)全程成本控制流程圖
- 除塵工程設計手冊
評論
0/150
提交評論