1.2.8數據類型與表達式 - 數據類型與表達式-專題輔導課件_第1頁
1.2.8數據類型與表達式 - 數據類型與表達式-專題輔導課件_第2頁
1.2.8數據類型與表達式 - 數據類型與表達式-專題輔導課件_第3頁
1.2.8數據類型與表達式 - 數據類型與表達式-專題輔導課件_第4頁
1.2.8數據類型與表達式 - 數據類型與表達式-專題輔導課件_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C程序設計課程輔導講座

數據類型與表達式數據類型和表達式主要內容◆數據的存儲和基本數據類型

◆常量和變量

◆數據的輸入和輸出◆類型轉換◆表達式◆選擇題訓練與答疑數據類型基本數據類型整型int實型(浮點型)floatdouble字符型char構造數據類型數組、結構、聯合、枚舉指針類型空類型數據的存儲整型數據設整數在內存中用2個字節存儲10000001100000010000000110000001符號位1:負數0:正數數據的存儲實型和字符型實型數據的存儲-1.2345e+02符號位階碼

尾數字符型數據的存儲一個字節存儲ASCII碼基本數據類型的表示方式整型有符號整型無符號整型數據長度int

unsigned[int]16或32位short[int]unsignedshort[int]16位long[int]unsignedlong[int]32位字符型char8位實型(浮點型)單精度浮點型float32位雙精度浮點型double64位整數類型的取值范圍int

32位

-231~231-1short[int]16位

-215~215-1long[int]32位

-231~231-1unsigned[int]32位

0

~232-1unsignedshort[int]16位

0

~216-1unsignedlong[int]32位

0

~232-1常量符號常量整型常量、實型常量、字符型常量

變量

變量的定義和使用常量和變量整型常量三種表現形式:十進制整數:正、負號,0-9,首位不是0八進制整數:正、負號,0-7,首位是016進制整數:正、負號,0-9,a-f,A-F,前綴是0x,0X實型常量實數的表示浮點表示法0.123123.412..12科學計數法6.026E-271.2e+301E-5字符型常量字符常量'a''A''9''+''$'ASCII字符集列出所有可用的字符(256個)每個字符:惟一的次序值(ASCII碼)'0'-'9'升序排列'A'-'Z''a'-'z'轉義字符反斜杠后跟一個字符或數字字符常量,代表一個字符

'\n'

'\101'

'\x41'

'A'所有字符都可以用轉義字符表示變量在程序運行過程中,其值可以被改變的量。變量必須先定義,后使用定義變量時要指定變量名和數據類型變量應該先賦值,后引用整型數據的輸入和輸出實型數據的輸入和輸出字符型數據的輸入和輸出數據的使用輸入和輸出

數據的輸入輸出函數調用◆printf

(格式控制,輸出參數1,...,輸出參數n);◆scanf

(格式控制,輸入參數1,...,輸入參數n);◆getchar()和putchar(char)格式控制說明%…十進制八進制十六進制int

%d%o%xlong%ld%lo%lxunsigned%u

%o%xunsignedlong%lu

%lo%lxfloat:%f或%e以小數或指數形式I/O一個單精度浮點數double:%lf或%le以小數或指數形式I/O一個雙精度浮點數char:%cI/O一個字符應用舉例:字符運算◆大小寫英文字母轉換

'b'-'a'='B'-'A'……'z'-'a'='Z'-'A''m'

'M''a'-'A''A'-'a''0''m'-'a'+'A'='M''M'-'A'+'a'='m''8'-'0'=88+'0'='8'◆數字字符和數字轉換

9-0='9'-'0''9'=9+'0''8'8不同類型數據的混合運算,先轉換為同一類型,再運算。◆

自動類型轉換◆

強制類型轉換數據類型的轉換自動類型轉換(非賦值運算)◆水平方向:自動◆垂直方向:低高

高double

float

unsignedlong

long

unsigned

unsignedshort

低int

char,short強制類型轉換強制類型轉換運算符

(類型名)表達式為什么要用強制類型轉換?◆自動類型轉換(隱式轉換)不能達到目的:

floatx; x%3不合法,而(int)x%3合法。◆在函數調用時,使實參與形參類型一致。

intn;

sqrt((double)n);強制類型轉換示例

#include<stdio.h>int

main(void){

inti;doublex;

x=3.8;i=(int)x;

printf("x=%f,i=%d\n",x,i);

printf("(double)(int)x=%f\n",(double)(int)x);

printf("xmod3=%d\n",(int)x%3);

return0;}注意:在強制類型轉換時,得到一個所需類型的中間變量,原來變量的類型未發生變化!

x=3.800000,i=3(double)(int)x=3.000000xmod3=0表達式:

運算符+運算對象(操作數)◆運算符:具有運算功能的符號◆運算對象:常量、變量和函數等表達式類型:

算術表達式、賦值表達式、關系表達式、邏輯表達式、條件表達式和逗號表達式等

表達式運算符的優先級和結合性()!-+++--(類型名)sizeof* /% + -<<=>>===!=&&||?:=+=-=*=/=%=,運算符匯總◆算術運算符單目+-++--雙目+-*/%◆賦值運算符=◆復合賦值運算符

expr1op=expr2<==> expr1=(expr1)op(expr2) where,expr1mustbeavariable.where,opisoneof +,-,*,/,%,<<,>>,&,^,|

◆關系運算符<<=>>=

==!=結果:真1假0

◆邏輯運算符&&||!邏輯運算結果:1(真)

0

(假)判斷邏輯量的真假:非0

(真)

0

(假)◆位運算位邏輯運算~

&

^

|移位運算<<>>

◆長度運算符

sizeof◆條件表達式exp1

?

exp2

:

exp3◆逗號表達式表達式1,

表達式2,……,

表達式n程序解析大小寫字母轉換

#include<stdio.h>int

main(void){

charch;

printf("inputcharacters:");

ch=getchar();

while(ch!='\n'){

if(ch>='A'&&ch<='Z')

ch=ch-'A'+'a';

elseif((ch>='a'&&ch<='z')

ch=ch-'a'+'A';

putchar(ch);

ch=getchar();}

rerurn0;}DADCDBDDACADDACDACBinput10characters:Reold123?rEOLD123?

while((ch=getchar())!='\n')(ch=getchar())!='\n'ch=getchar()!='\n'等價嗎?選擇題訓練與答疑◆下列運算符中,優先級最低的是_____。

A、*B、!=C、+D、=◆若變量已正確定義,表達式(j=3,j++)的值是_____。A、3B、4C、5D、0◆已知字符‘a’的ASCII碼為97,執行下列語句的輸出是_____。printf("%d,%c",’b’,’b’+1);A、98,bB、語句不合法C、98,99D、98,c◆判斷i和j至少有一個值為非0的表達式是_____。

A、i!=0&&j!=0B、i!=0||j!=0C、!(i==0||j==0)D、i&&j

◆以下選項中不正確的整型常量是_____。A.12LB.-10C.1,900D.123U◆表達式______的值是0。A.3%5B.3/5.0C.3/5D.3<5◆表達式!(x>0||y>0)等價于_____。A.!x>0||!y>0B.!(x>0)||!(y>0)C.!x>0&&!y>0D.!(x>0)&&!(y>0)◆若變量已正確定義并賦值,表達式______不符合C語言語法。A.4&&3B.+aC.a=b=5D.int(3.14)◆若變量已正確定義,執行語句scanf("%d%d%d",&k1,&k2,&k3);時,______是正確的輸入。

A.203040B.203040C.20,3040D.20,30,40◆執行語句printf("______",2);將得到出錯信息。A.%dB.%oC.%xD.%f◆若x是整型變量,表達式(x=10.0/4.0)的值是_____。A.2.5B.2.0C.3D.2◆若變量已正確定義并賦值,表達式-k++等價于______。A.-(k++)B.(-k)++C.-(k+1)D.-(++k)◆在C語言程序中,在函數內部定義的變量稱為______。A.全局變量B.外部變量C.局部變量D.內部變量◆下列運算符中,優先級從高到低依次排列為_____。A.!,&&,||B.||,&&,!C.&&,||,!D.&&,!,||◆下列那個選項不能作為字符常量()A.”1”

溫馨提示

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

評論

0/150

提交評論