




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C語言程序設計基礎與實踐模塊一編程技術基礎任務1.3數據類型及轉換C語言程序設計基礎與實踐課程組04技能點拓展03技能點詳解02技能點分析目錄CONTENTS任務1.3數據類型及轉換01問題引入05技能點檢測一問題引入
數據是事實或觀察的結果,是對客觀事物的邏輯歸納,是用于表示客觀事物的未經加工的原始素材。
數據是信息的表現形式和載體,可以是符號、文字、數字、語音、圖像、視頻等。在大數據的時代,所有數據都可以存儲到計算機系統中,那么數據在計算機系統內是如何存儲的呢?04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務1.3數據類型及轉換二技能點分析1.了解C語言中的基本數據類型;2.掌握C語言中數據類型存儲格式;3.掌握運算過程中數據類型轉換規律。學習目標1.什么是數據類型?它有哪些種類?2.自動數據類型轉換的規則是什么?3.強制類型轉換的格式是什么?學期預習04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務1.3數據類型及轉換三技能點詳解——1數據類型C語言中的數據類型可分為基本類型、構造類型、指針類型和空類型四大類,其中基本類型、構造類型又可細分,如圖1.3.1所示。圖1.3.1數據類型的分類三技能點詳解——2數據類型轉換數據類型轉換就是將數據(變量、數值、表達式的結果等)從一種類型轉換為另一種數據類型。類型轉換分為自動類型轉換和強制類型轉換。1)自動類型轉換
在不同類型的混合運算或賦值運算中,編譯器會按照一定規則自動地轉換數據類型,將參與運算的所有數據先轉換為同一種類型,然后再進行計算或賦值。這種類型轉換是不需要程序員干預,由編譯器自動執行,我們把它稱為自動類型轉換。圖1.3.1數據類型的分類三技能點詳解——2數據類型轉換自動類型轉換的規則是:(1)轉換按數據長度增加的方向進行,以保證精度不降低。如int型和long型運算時,先把int量轉成long型后再進行運算。(2)所有的浮點運算都是以雙精度進行的,即使僅含float單精度量運算的表達式,也要先轉換成double型,再作運算。(3)char型和short型參與運算時,必須先轉換成int型。三技能點詳解——2數據類型轉換在不同類型的賦值運算中的自動類型轉換的規則是:賦值號兩邊量的數據類型不同時,賦值號右邊量的類型將轉換為左邊量的類型。例如:
/*100是int類型的數據,需要先轉換為float類型才能賦值給變量f。*/floatf=100;
如果右邊量的數據類型長度左邊長時,將丟失一部分數據,這樣會降低精度,丟失的部分按四舍五入向前舍入。所以說,自動類型轉換并不一定是安全的。對于不安全的類型轉換,編譯器一般會給出警告。三技能點詳解——2數據類型轉換2)強制類型轉換
自動類型轉換是編譯器根據代碼的上下文環境自行判斷的結果,但有時并不是那么“智能”,不能滿足所有的需求,這時就需要程序員使用強制類型轉換來實現所需的轉換。強制類型轉換是顯式的,程序員通過在代碼中使用強制類型轉換運算符來指定類型轉換。強制類型轉換的一般格式為:(新類型符號)表達式例如:(double)a;//將變量a強制轉換為double類型(int)(x+y);//把表達式x+y的結果強制轉換為int整型(float)100;//將數值100(默認為int類型)強制轉換為float類型三技能點詳解——2數據類型轉換在使用強制轉換時應注意以下問題:(1)類型說明符和表達式都必須加括號(單個變量可以不加括號),如把(int)(x+y)寫成(int)x+y則成了把x轉換成int型之后再與y相加了。(2)無論是強制轉換或是自動轉換,都只是為了本次運算的需要而對變量的數據長度進行的臨時性轉換,而不改變數據說明時對該變量定義的類型。04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務1.3數據類型及轉換四技能點拓展——1Typedef自定義數據類型typedef
unsigned
intmy_type;
通過這種方式定義,程序后面就可以向使用unsignedint一樣的使用my_type。如果,在不同平臺上移植一段代碼,采用typedef格式能夠實現一個自定義數據類型在不同平臺上代表不同的數據類型,實現跨平臺移植。例如,在A平臺上
typedef
unsigned
intmy_type;My_typea;//a的范圍是0-65536在B平臺上定義
typedef
unsigned
charmy_type;My_typea;//a的范圍是0-256Typedef自定義數據類型的格式:四技能點拓展——1define宏定義數據類型Typedef自定義數據類型的一般形式為:
#define
標識符
常量
//注意,最后沒有分號………#undef
標識符
//解除對應的宏定義例如:#definePI3.1415926//用PI定義3.1415926,實現其功能………#undefPI//解除對應的宏定義
就是將PI定義為后面的3.1415926,在不需要定義的位置,增加#undefPI,解除宏定義。我們采用宏定義的這種特性對數據類型進行縮寫,簡化。例如:
#defineuintunsigned
int
//用uint定義為unsignedint,實現其功能#defineu8unsigned
char
//用u8定義為unsigned插入,實現其功能案例1.3.1數據的存儲本案例為了得到某個類型或某個變量在特定平臺上的準確大小,可以使用
sizeof
運算符。/********************************************************************內容簡述:計算不同類型的存儲空間*******************************************************************/#include
<stdio.h>
//函數頭文件#include
<limits.h>
intmain(void)//主程序入口{printf("char存儲大小:%u\n",sizeof(char));//輸出字符型的存儲字節數 printf("short存儲大小:%u\n",sizeof(short));//輸出短整型的存儲字節數 printf("int存儲大小:%u\n",sizeof(int));//輸出整型的存儲字節數 printf("long存儲大小:%u\n",sizeof(long));//輸出長整型的存儲字節數/*************輸出單精度型的存儲字節數*************/ printf("float存儲大小:%u\n",sizeof(float));/***********輸出雙精度型的存儲字節數*************/ printf("double存儲大小:%u\n",sizeof(double));
return0;}四技能點拓展——案例案例1.3.2數據的運算求整型量10與字符’a’的和,并將它賦給浮點型變量輸出。/************************************************內容簡述:求整型量10與字符’a’的和,并輸出************************************************/#include
<stdio.h>
intmain(void){
inti=10;
chara='a';//ascii值是97
floatsum;sum=i+a;printf("Valueofsum:%f\n",sum);
return0;}四技能點拓展——案例案例1.3.3數據的轉換某高校一學生在一周內的總生活費為200元,通過編程求該生的平均生活費為多少元/天?/*****************************************************內容簡述:某高校一學生在一周內的總生活費為200元*通過編程求該生的平均生活費為多少元/天?*****************************************************/#include
<stdio.h>
intmain(void){
intsum=200;//總生活費
intcount=7;//總天數
doubleaverage;//平均數
average=(double)sum/count;printf("Averageis%.2f\n",average);
return0;}四技能點拓展——案例案例1.3.4
數據的比較在本案例中,假設圓的半徑r=2,根據圓的面積公式s=πr2編寫程序計算該圓的面積,并將面積存于整型變量s1和浮點型變量s2中。/********************************************內容簡述:假設圓的半徑r=2,根據圓的面積公式*s=πr2編寫程序計算該圓的面積********************************************/#include<stdio.h>
intmain(void){
floatpi=3.14159;//定義浮點型變量pi存放圓周率,圓周率取值為3.14159
ints1,r=2;//定義整型變量s1和r分別存放面積和半徑值
doubles2;//定義雙精度浮點型變量s2存放面積
s1=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨國商標保護與維權合作協議
- 2025屆小學畢業典禮主持詞-剩下的話留給盛夏
- 生物制藥技術秘密保護與市場調研合作協議
- 網絡小說改編影視作品優先權轉讓協議
- 網絡文學版權注冊處租賃與著作維護協議書
- 高效節能工業設備租賃融資擔保服務協議
- 船舶儀器校準檢測與航行安全協議
- 生物樣本庫建設與人才培養合作協議
- 快遞業員工協議書
- 自駕去西藏免責協議書
- 基于“生活教育”理念下部編小學語文教材中“小練筆”教學策略研究 論文
- 高中生物必修一實驗通知單
- 課件:第四章 社會工作項目的執行(《社會工作項目策劃與評估》課程)
- 冷庫施工組織設計施工方案
- 咯血診斷與治療課件
- 醫學影像專業個人簡歷
- 檢驗科 醫院感染管理質量督查評分表
- 獨立性檢驗 公開課比賽一等獎-完整版獲獎課件
- 網絡信息系統癱瘓演練PDCA改進
- 高分子材料成型加工基礎添加劑及配方設計課件
- 水泥水化熱實驗原始記錄
評論
0/150
提交評論