C語言程序設(shè)計(jì) 課件 任務(wù)1.3 數(shù)據(jù)類型及轉(zhuǎn)換_第1頁
C語言程序設(shè)計(jì) 課件 任務(wù)1.3 數(shù)據(jù)類型及轉(zhuǎn)換_第2頁
C語言程序設(shè)計(jì) 課件 任務(wù)1.3 數(shù)據(jù)類型及轉(zhuǎn)換_第3頁
C語言程序設(shè)計(jì) 課件 任務(wù)1.3 數(shù)據(jù)類型及轉(zhuǎn)換_第4頁
C語言程序設(shè)計(jì) 課件 任務(wù)1.3 數(shù)據(jù)類型及轉(zhuǎn)換_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言程序設(shè)計(jì)基礎(chǔ)與實(shí)踐模塊一編程技術(shù)基礎(chǔ)任務(wù)1.3數(shù)據(jù)類型及轉(zhuǎn)換C語言程序設(shè)計(jì)基礎(chǔ)與實(shí)踐課程組04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS任務(wù)1.3數(shù)據(jù)類型及轉(zhuǎn)換01問題引入05技能點(diǎn)檢測一問題引入

數(shù)據(jù)是事實(shí)或觀察的結(jié)果,是對客觀事物的邏輯歸納,是用于表示客觀事物的未經(jīng)加工的原始素材。

數(shù)據(jù)是信息的表現(xiàn)形式和載體,可以是符號(hào)、文字、數(shù)字、語音、圖像、視頻等。在大數(shù)據(jù)的時(shí)代,所有數(shù)據(jù)都可以存儲(chǔ)到計(jì)算機(jī)系統(tǒng)中,那么數(shù)據(jù)在計(jì)算機(jī)系統(tǒng)內(nèi)是如何存儲(chǔ)的呢?04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS01問題引入05技能點(diǎn)檢測任務(wù)1.3數(shù)據(jù)類型及轉(zhuǎn)換二技能點(diǎn)分析1.了解C語言中的基本數(shù)據(jù)類型;2.掌握C語言中數(shù)據(jù)類型存儲(chǔ)格式;3.掌握運(yùn)算過程中數(shù)據(jù)類型轉(zhuǎn)換規(guī)律。學(xué)習(xí)目標(biāo)1.什么是數(shù)據(jù)類型?它有哪些種類?2.自動(dòng)數(shù)據(jù)類型轉(zhuǎn)換的規(guī)則是什么?3.強(qiáng)制類型轉(zhuǎn)換的格式是什么?學(xué)期預(yù)習(xí)04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS01問題引入05技能點(diǎn)檢測任務(wù)1.3數(shù)據(jù)類型及轉(zhuǎn)換三技能點(diǎn)詳解——1數(shù)據(jù)類型C語言中的數(shù)據(jù)類型可分為基本類型、構(gòu)造類型、指針類型和空類型四大類,其中基本類型、構(gòu)造類型又可細(xì)分,如圖1.3.1所示。圖1.3.1數(shù)據(jù)類型的分類三技能點(diǎn)詳解——2數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換就是將數(shù)據(jù)(變量、數(shù)值、表達(dá)式的結(jié)果等)從一種類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。類型轉(zhuǎn)換分為自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。1)自動(dòng)類型轉(zhuǎn)換

在不同類型的混合運(yùn)算或賦值運(yùn)算中,編譯器會(huì)按照一定規(guī)則自動(dòng)地轉(zhuǎn)換數(shù)據(jù)類型,將參與運(yùn)算的所有數(shù)據(jù)先轉(zhuǎn)換為同一種類型,然后再進(jìn)行計(jì)算或賦值。這種類型轉(zhuǎn)換是不需要程序員干預(yù),由編譯器自動(dòng)執(zhí)行,我們把它稱為自動(dòng)類型轉(zhuǎn)換。圖1.3.1數(shù)據(jù)類型的分類三技能點(diǎn)詳解——2數(shù)據(jù)類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換的規(guī)則是:(1)轉(zhuǎn)換按數(shù)據(jù)長度增加的方向進(jìn)行,以保證精度不降低。如int型和long型運(yùn)算時(shí),先把int量轉(zhuǎn)成long型后再進(jìn)行運(yùn)算。(2)所有的浮點(diǎn)運(yùn)算都是以雙精度進(jìn)行的,即使僅含float單精度量運(yùn)算的表達(dá)式,也要先轉(zhuǎn)換成double型,再作運(yùn)算。(3)char型和short型參與運(yùn)算時(shí),必須先轉(zhuǎn)換成int型。三技能點(diǎn)詳解——2數(shù)據(jù)類型轉(zhuǎn)換在不同類型的賦值運(yùn)算中的自動(dòng)類型轉(zhuǎn)換的規(guī)則是:賦值號(hào)兩邊量的數(shù)據(jù)類型不同時(shí),賦值號(hào)右邊量的類型將轉(zhuǎn)換為左邊量的類型。例如:

/*100是int類型的數(shù)據(jù),需要先轉(zhuǎn)換為float類型才能賦值給變量f。*/floatf=100;

如果右邊量的數(shù)據(jù)類型長度左邊長時(shí),將丟失一部分?jǐn)?shù)據(jù),這樣會(huì)降低精度,丟失的部分按四舍五入向前舍入。所以說,自動(dòng)類型轉(zhuǎn)換并不一定是安全的。對于不安全的類型轉(zhuǎn)換,編譯器一般會(huì)給出警告。三技能點(diǎn)詳解——2數(shù)據(jù)類型轉(zhuǎn)換2)強(qiáng)制類型轉(zhuǎn)換

自動(dòng)類型轉(zhuǎn)換是編譯器根據(jù)代碼的上下文環(huán)境自行判斷的結(jié)果,但有時(shí)并不是那么“智能”,不能滿足所有的需求,這時(shí)就需要程序員使用強(qiáng)制類型轉(zhuǎn)換來實(shí)現(xiàn)所需的轉(zhuǎn)換。強(qiáng)制類型轉(zhuǎn)換是顯式的,程序員通過在代碼中使用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符來指定類型轉(zhuǎn)換。強(qiáng)制類型轉(zhuǎn)換的一般格式為:(新類型符號(hào))表達(dá)式例如:(double)a;//將變量a強(qiáng)制轉(zhuǎn)換為double類型(int)(x+y);//把表達(dá)式x+y的結(jié)果強(qiáng)制轉(zhuǎn)換為int整型(float)100;//將數(shù)值100(默認(rèn)為int類型)強(qiáng)制轉(zhuǎn)換為float類型三技能點(diǎn)詳解——2數(shù)據(jù)類型轉(zhuǎn)換在使用強(qiáng)制轉(zhuǎn)換時(shí)應(yīng)注意以下問題:(1)類型說明符和表達(dá)式都必須加括號(hào)(單個(gè)變量可以不加括號(hào)),如把(int)(x+y)寫成(int)x+y則成了把x轉(zhuǎn)換成int型之后再與y相加了。(2)無論是強(qiáng)制轉(zhuǎn)換或是自動(dòng)轉(zhuǎn)換,都只是為了本次運(yùn)算的需要而對變量的數(shù)據(jù)長度進(jìn)行的臨時(shí)性轉(zhuǎn)換,而不改變數(shù)據(jù)說明時(shí)對該變量定義的類型。04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS01問題引入05技能點(diǎn)檢測任務(wù)1.3數(shù)據(jù)類型及轉(zhuǎn)換四技能點(diǎn)拓展——1Typedef自定義數(shù)據(jù)類型typedef

unsigned

intmy_type;

通過這種方式定義,程序后面就可以向使用unsignedint一樣的使用my_type。如果,在不同平臺(tái)上移植一段代碼,采用typedef格式能夠?qū)崿F(xiàn)一個(gè)自定義數(shù)據(jù)類型在不同平臺(tái)上代表不同的數(shù)據(jù)類型,實(shí)現(xiàn)跨平臺(tái)移植。例如,在A平臺(tái)上

typedef

unsigned

intmy_type;My_typea;//a的范圍是0-65536在B平臺(tái)上定義

typedef

unsigned

charmy_type;My_typea;//a的范圍是0-256Typedef自定義數(shù)據(jù)類型的格式:四技能點(diǎn)拓展——1define宏定義數(shù)據(jù)類型Typedef自定義數(shù)據(jù)類型的一般形式為:

#define

標(biāo)識(shí)符

常量

//注意,最后沒有分號(hào)………#undef

標(biāo)識(shí)符

//解除對應(yīng)的宏定義例如:#definePI3.1415926//用PI定義3.1415926,實(shí)現(xiàn)其功能………#undefPI//解除對應(yīng)的宏定義

就是將PI定義為后面的3.1415926,在不需要定義的位置,增加#undefPI,解除宏定義。我們采用宏定義的這種特性對數(shù)據(jù)類型進(jìn)行縮寫,簡化。例如:

#defineuintunsigned

int

//用uint定義為unsignedint,實(shí)現(xiàn)其功能#defineu8unsigned

char

//用u8定義為unsigned插入,實(shí)現(xiàn)其功能案例1.3.1數(shù)據(jù)的存儲(chǔ)本案例為了得到某個(gè)類型或某個(gè)變量在特定平臺(tái)上的準(zhǔn)確大小,可以使用

sizeof

運(yùn)算符。/********************************************************************內(nèi)容簡述:計(jì)算不同類型的存儲(chǔ)空間*******************************************************************/#include

<stdio.h>

//函數(shù)頭文件#include

<limits.h>

intmain(void)//主程序入口{printf("char存儲(chǔ)大小:%u\n",sizeof(char));//輸出字符型的存儲(chǔ)字節(jié)數(shù) printf("short存儲(chǔ)大小:%u\n",sizeof(short));//輸出短整型的存儲(chǔ)字節(jié)數(shù) printf("int存儲(chǔ)大小:%u\n",sizeof(int));//輸出整型的存儲(chǔ)字節(jié)數(shù) printf("long存儲(chǔ)大小:%u\n",sizeof(long));//輸出長整型的存儲(chǔ)字節(jié)數(shù)/*************輸出單精度型的存儲(chǔ)字節(jié)數(shù)*************/ printf("float存儲(chǔ)大小:%u\n",sizeof(float));/***********輸出雙精度型的存儲(chǔ)字節(jié)數(shù)*************/ printf("double存儲(chǔ)大小:%u\n",sizeof(double));

return0;}四技能點(diǎn)拓展——案例案例1.3.2數(shù)據(jù)的運(yùn)算求整型量10與字符’a’的和,并將它賦給浮點(diǎn)型變量輸出。/************************************************內(nèi)容簡述:求整型量10與字符’a’的和,并輸出************************************************/#include

<stdio.h>

intmain(void){

inti=10;

chara='a';//ascii值是97

floatsum;sum=i+a;printf("Valueofsum:%f\n",sum);

return0;}四技能點(diǎn)拓展——案例案例1.3.3數(shù)據(jù)的轉(zhuǎn)換某高校一學(xué)生在一周內(nèi)的總生活費(fèi)為200元,通過編程求該生的平均生活費(fèi)為多少元/天?/*****************************************************內(nèi)容簡述:某高校一學(xué)生在一周內(nèi)的總生活費(fèi)為200元*通過編程求該生的平均生活費(fèi)為多少元/天?*****************************************************/#include

<stdio.h>

intmain(void){

intsum=200;//總生活費(fèi)

intcount=7;//總天數(shù)

doubleaverage;//平均數(shù)

average=(double)sum/count;printf("Averageis%.2f\n",average);

return0;}四技能點(diǎn)拓展——案例案例1.3.4

數(shù)據(jù)的比較在本案例中,假設(shè)圓的半徑r=2,根據(jù)圓的面積公式s=πr2編寫程序計(jì)算該圓的面積,并將面積存于整型變量s1和浮點(diǎn)型變量s2中。/********************************************內(nèi)容簡述:假設(shè)圓的半徑r=2,根據(jù)圓的面積公式*s=πr2編寫程序計(jì)算該圓的面積********************************************/#include<stdio.h>

intmain(void){

floatpi=3.14159;//定義浮點(diǎn)型變量pi存放圓周率,圓周率取值為3.14159

ints1,r=2;//定義整型變量s1和r分別存放面積和半徑值

doubles2;//定義雙精度浮點(diǎn)型變量s2存放面積

s1=

溫馨提示

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

最新文檔

評論

0/150

提交評論