C語言課件第2章基本數(shù)據(jù)類型.ppt
《C語言課件第2章基本數(shù)據(jù)類型.ppt》由會員分享,可在線閱讀,更多相關《C語言課件第2章基本數(shù)據(jù)類型.ppt(58頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1,第2章,基本數(shù)據(jù)類型,2,一、數(shù)據(jù)類型概述二、標識符、常量和變量三、基本數(shù)據(jù)類型——整型、實型、字符型四、數(shù)據(jù)的輸入與輸出,主要內容,3,在程序中對用到的所有數(shù)據(jù)都必須指定其數(shù)據(jù)類型.,?,不同類型的數(shù)據(jù),所占內存的字節(jié)數(shù)不同,對應的操作也不相同。,一、數(shù)據(jù)類型概述,4,1、標識符2、常量3、變量,二、標識符、常量和變量,5,1、標識符,標識符identifier,(1)標識符就是一個名字(如常量名、變量名、函數(shù)名……)。(2)組成:只能由字母、數(shù)字、下劃線組成。且第一個字符必須為字母或下劃線。(3)長度:標識符的有效長度隨系統(tǒng)而異,如果超長,則超長部分被舍棄。VC++6.0中規(guī)定最大長度為255個字符。(4)標識符大小寫是有區(qū)別的。例如:SUM和sum是不同的標識符(5)標識符命名的良好習慣──見名知意例如,name(姓名)、age(年齡),6,標識符的分類,根據(jù)不同的用處,標識符分為:,(1)關鍵字,由程序員自己定義的變量名、符號常量名、數(shù)組名、函數(shù)名等。,(2)預定義標識符,(3)用戶標識符,C語言中有特定含義的標識符,主要用于描述庫函數(shù)名(如printf、scanf等)和編譯預處理命令名(如define、include等)。,又叫保留字,是指C語言規(guī)定的、有特殊含義和專門用途的標識符,主要用于描述數(shù)據(jù)類型、存儲類型、類型定義和語句控制。C語言中規(guī)定的關鍵字有32個。,用戶標識符不能使用關鍵字,盡量避免使用預定義標識符。,7,下列用戶標識符是否合法,為什么?suma1b2s_name123#ssa.b.c1a8bc,思考?,合法,不合法,8,,概念,在程序運行過程中,其值不能被改變的量。,分類,字面常量(直接常量):12-44.6a"Hello!"符號常量:用一個標識符代表一個常量。,字符串常量,符號常量的定義,格式:#define符號常量常量舉例:#definePRICE100#definePI3.14#defineC1’a’,習慣上常量名用大寫,變量名用小寫。,意義,1、含義清楚。2、在需要改變一個常量時,能夠做到“一改全改”。,符號常量的定義放在函數(shù)外面。,2、常量,9,概念,其值可以改變的量稱為變量。,3、變量,要素,(1)變量名。每個變量都必須有一個名字──變量名,變量命名遵循標識符命名規(guī)則。(2)變量值。在程序運行過程中,變量值存儲在內存中。在程序中,通過變量名來引用變量的值。(3)變量的數(shù)據(jù)類型。用來確定變量所占存儲空間的大小以及可進行的操作種類。,10,變量的聲明,數(shù)據(jù)類型變量名[,變量名2……];,,inta1,a2;floatx1,x2;doubley1,y2;charc1,c2;,習慣上,變量名用小寫字母。常量名用大寫字母。,11,在聲明變量的同時為其賦初值,稱為變量的初始化。例如:intlength=100;,變量的初始化,,如果要對幾個同類型變量賦相同的初值,必須各自分別賦初值,不能連寫。,例如:inta=0,b=0;//正確inta=b=0;//錯誤,12,舉例,#includeintmain(){intstudent,age;intif=adrress=1;floatscore=90;stadent=2;Age=20.7;printf("%d%d%d%f",if,student,age,score);return0;},本程序中有幾處錯誤?,,,,undeclaredidentifier,,13,例2.1常量和變量的使用。,#include"stdio.h"#defineWIDTH80//定義符號常量WIDTHintmain(){intlength=100,circumference,area;//聲明變量circumference=(length+WIDTH)*2;area=WIDTH*length;printf("circumference=%d,area=%d\n",area);return0;},circumference=360,area=8000,運行結果:,14,1、整型2、實型3、字符型,三、基本數(shù)據(jù)類型,15,SizesofFundamentalTypesinMicrosoftC++.,16,十進制:123,-456,0八進制:0123,-0456十六進制:0 x123,-0 x456,以數(shù)字0開頭,以0 x或0X開頭,1、整型,例2.2以下整型常量哪些是合法的,哪些是非法的。-297,029,0625,O11,0 x35BH,0XFF,-0 x53,0 x1F2d,合法的整型常量:-297,0625,0XFF,-0 x53,0 x1F2d非法的整型常量:029,O11,0 x35BH,(1)整型常量的表示,17,(2)整型變量,整型變量的分類、取值范圍,int32-231~231-1unsignedint320~4294967295,short16-32768~32767unsignedshort160~65535,long32-231~231-1unsignedlong320~4294967295(0~232-1),各類型整型變量占用的內存字節(jié)數(shù),隨系統(tǒng)而異。,18,注意:整型常量分為基本整型和長整型。,整型常量的分類,,基本整型(數(shù)據(jù)范圍與int型一樣)長整型(在數(shù)值后面加“L(l)”,數(shù)據(jù)范圍與longint型一樣),如123l,315L,19,#includeintmain(){longintc,d=9L;unsignedinte=-3,f;f=5;c=-6;printf("%ld\n%ld\n%u\n%u",c,d,e,f);return0;},舉例,,-6942949672935,,運行結果,20,整型數(shù)據(jù)在內存中是以補碼表示的。,(3)整型數(shù)據(jù)在內存中的存放形式,21,12和-12在內存中的存放形式,22,n位無符號整數(shù)的取值范圍:,n位帶符號整數(shù)的取值范圍:,即-2n-1~2n-1-1,即0~2n-1,23,整數(shù)類型——溢出舉例,#includevoidmain(){inta,b;a=2147483647;b=a+1;printf("%d\n%d",a,b);},2147483647-2147483648,,運行結果,24,表示方法,,十進制小數(shù)形式:123.34,-0.0045,0.0指數(shù)形式:E(e)如0.23e2,-0.45e-3,3.0E+5,規(guī)范化指數(shù)形式,數(shù)字和小數(shù)點組成,2.實型,關于分類,C編譯系統(tǒng)將實型常量作為雙精度來處理。一個實型常量,可以賦給一個實型變量(float型或double型)。,(1)實型常量的表示,25,指數(shù)形式(數(shù)符+小數(shù)部分+指數(shù)部分),小數(shù)部分占的位數(shù)越多,數(shù)的有效數(shù)字越多,精度越高.指數(shù)部分占的位數(shù)越多,表示的數(shù)值范圍越大.,(2)實型數(shù)據(jù)在內存中的存放形式,實型數(shù)據(jù)在內存中是按指數(shù)形式存儲的。,規(guī)范化指數(shù)形式:小數(shù)部分有且僅有1位非0數(shù)字。,IEEE754標準,轉換成十進制底計算公式,float,double,s*2(E-127)*(1.M)B,26,分類及取值范圍,(3)實型變量,實型常量默認是double類型,27,3、字符型,存儲方式,以ASCII碼存儲,占一個字節(jié),注意:字符型數(shù)據(jù)與整型數(shù)據(jù)在存儲方式上的相似性使得兩者之間可以通用。但字符型數(shù)據(jù)的表示范圍是:0~255。,字符變量ch中存放字符a,其ASCII碼為97,在內存中以二進制形式存放,其格式如下:,01100001,ch,舉例,28,字符常量,用單撇號括起來的一個字符.aA9=?,,\n換行,從當前位置移到下一行開頭\t水平制表(跳到下一個tab位置)\單撇號字符\\反斜杠字符\"雙撇號字符\ddd1~3位8進制數(shù)所代表的字符\xhh1~2位16進制數(shù)所代表的字符…………,C語言還允許使用一種特殊形式的字符常量,就是以反斜杠‘\’開頭的轉義字符。,將\后面的字符轉換為另外的意義.即是一種控制符號.,不同的兩個字符,轉義字符,表示方法,29,#includeintmain(){printf("\x4F\x4B\x21\n");/*等價于printf(“OK!\n”);*/printf(“\x15\xAB\n”);/*等價于什么?*/return0;},OK!,程序運行結果:,舉例,30,字符變量,類型標識符,char,舉例,charch1=a,ch2;,存放數(shù)據(jù)范圍,大小寫英文字母、數(shù)字、運算符、標點符號等,31,[例]字符變量的字符形式輸出和整數(shù)形式輸出。#includevoidmain(){charch1,ch2;ch1=a;ch2=b;printf("ch1=%c,ch2=%c\n",ch1,ch2);printf("ch1=%d,ch2=%d\n",ch1,ch2);},字符類型——舉例1,一個字符型數(shù)據(jù),既可以字符形式輸出,也可以整數(shù)形式輸出,ch1=a,ch2=bch1=97,ch2=98,程序運行結果:,32,字符類型——舉例2,允許對字符數(shù)據(jù)進行算術運算,此時就是對它們的ASCII碼值進行算術運算,[例]字符數(shù)據(jù)的算術運算(參考教材附錄的ASCII碼表)。#includevoidmain(){charch1,ch2;ch1=a;ch2=B;/*字母的大小寫轉換*/printf("ch1=%c,ch2=%c\n",ch1-32,ch2+32);/*用字符形式輸出一個大于256的數(shù)值*/printf("ch1+200=%d\n",ch1+200);printf("ch1+200=%c\n",ch1+200);printf("ch1+256=%d\n",ch1+256);printf("ch1+256=%c\n",ch1+256);},ch1=A,ch2=bch1+200=297ch1+200=)ch1+256=353ch1+256=a,程序運行結果:,33,概念,字符串常量,用一對雙撇號""括起來的若干字符序列,字符串長度,字符串中字符的個數(shù)。長度為0的字符串(即一個字符都沒有的字符串)稱為空串,表示為""(一對緊連的雙撇號)。,存儲方式,C語言規(guī)定:在存儲字符串常量時,由系統(tǒng)在字符串的末尾自動加一個\0作為字符串的結束標志。,舉例,"hello"、"a"、"a*b3\n",34,思考?,1、字符串常量"Howdoyoudo."和"Goodmorning."的長度分別是多少?,2、字符串C:\msdos\v6.22和Isay:"Goodbye!"在C語言中的字符串常量形式如何表示?,3、字符串"CHINA"在內存中的實際存儲形式是怎樣的?占用多少個字節(jié)的內存空間?,14和13,"C:\\msdos\\v6.22"和"Isay:\"Goodbye!\"",占用6字節(jié)而非5字節(jié)內存空間,35,注意:1、a是字符,"a"是字符串。2、不能把一個字符串賦給一個字符變量。如c="a"、c="Hello!"都是錯誤的。3、C語言中沒有字符串變量,可以用字符數(shù)組來表示。,36,總結:字符與字符串的區(qū)別有哪些?,定界符不同:字符常量使用單引號,而字符串常量使用雙引號;長度不同:字符常量的長度固定為1,而字符串常量的長度,可以是0,也可以是某個整數(shù);存儲要求不同:字符常量存儲的是字符的ASCII碼值,而字符串常量,除了要存儲有效的字符外,還要存儲一個結束標志’\0’。,37,(一)、C的輸入與輸出(二)、單個字符的輸出(三)、單個字符的輸入(四)、格式化輸出(五)、格式化輸入,四、數(shù)據(jù)輸入與輸出,38,說明,1、所謂輸入輸出是以計算機為主體而言的。2、輸入輸出操作是由函數(shù)實現(xiàn)的。,標準輸入輸出函數(shù),putchar()getchar()puts()gets()printf()scanf(),預編譯命令,在使用C語言庫函數(shù)時,要用預編譯命令“#include”將有關的“頭文件”包括到用戶源文件中。,舉例,#include“stdio.h”intmain(){printf(“Hello!”);return0;},#include,(一)、C的輸入與輸出,39,作用,向終端(或系統(tǒng)默認的輸出設備)輸出一個字符。,(二)、單個字符的輸出——putchar函數(shù),顯示器,格式,putchar(ch);,?,A,注:其中ch可以是一個字符型(整型)變量、常量或表達式,也可以是一個轉義字符,如putchar(\n)、putchar(\101)。,40,#include"stdio.h"intmain(){charch1=B,ch2=o,ch3=k;putchar(ch1);putchar(ch2);putchar(ch2);putchar(ch3);putchar(\t);putchar(ch1+32);putchar(ch2);putchar(ch2);putchar(ch3);putchar(\n);putchar(ch2-32);putchar(ch3-32);return0;},例2.2,BookbookOK,41,作用,從終端(或系統(tǒng)默認的輸入設備)輸入一個字符。,鍵盤,(三)、單個字符的輸入——getchar函數(shù),格式,getchar();,getchar函數(shù)沒有參數(shù),返回值為輸入的字符。,#include"stdio.h"intmain(){charch;ch=getchar();putchar(ch);return0;},例2.3,輸入:a?,a,42,#include"stdio.h"intmain(){charch1,ch2,ch3,ch4,ch5;ch1=getchar();ch2=getchar();ch3=getchar();ch4=getchar(),ch5=getchar();putchar(ch1);putchar(ch2);putchar(ch3);putchar(ch4);putchar(ch5);return0;},a︺b↙c︺d︺e↙,a︺bc,輸入:,?,43,格式,printf(“格式控制字符串”[,輸出列表]);,說明,1、“格式控制字符串“是用雙撇號引起來的字符串,包括三種信息:(1)格式說明:由%和格式字符組成。(如%d、%7.2f)(2)轉義字符:(如\t、\n、\b、\r等)(3)普通字符:需要按原樣輸出的字符。2、可以沒有輸出列表,只用來輸出字符串常量。如:printf("helloworld!");3、“輸出列表”是需要輸出的一些數(shù)據(jù),可以是表達式。,將輸出的數(shù)據(jù)轉換為指定的格式輸出。,(四)格式化輸出——printf函數(shù),作用,向顯示器輸出若干個任意類型的數(shù)據(jù)。,44,例2.5,#includeintmain(){inta,b;a=3;b=4;printf(“輸出結果為:”);printf(“%d%d\n”,a,b);printf(“a=%d,b=%d\n”,a,b);printf(“a+b=%d”,a+b);return0;},輸出結果為:34a=3,b=4a+b=7_,舉例,printf(“sum=%d\n%c”,x,ch);,普通字符,格式說明,轉義字符,如果x=100,ch=‘A’,那么下面的輸出語句將輸出什么結果?,輸出列表,sum=100A_,45,格式說明必須以%開始,以格式字符結束。一般形式如下:%[標志][寬度][.精度][l][格式字符],輸出數(shù)據(jù)向左靠攏,輸出數(shù)據(jù)最小寬度,對實數(shù):輸出小數(shù)點位數(shù);對字符串:截取字符的個數(shù),格式說明的一般形式,46,格式字符,,,,附加格式說明字符,格式字符,47,格式輸出舉例——d格式符,%d,%md,%-md,100︺20,100,20,10020,︺100︺︺20,10020,100︺20︺︺,48,#include"stdio.h"intmain(){floatx,y;x=111111.111;y=222222.222;printf("%f",x+y);return0;},輸出,333333.328125,整數(shù)部分全部輸出,小數(shù)部分輸出6位,因有效位數(shù)為7位,因此后面數(shù)字不準確。,格式輸出舉例——f格式符,%f,例2.6,49,#include"stdio.h"intmain(){floaty=12.6789;printf("%f,%10f,%10.2f,%.2f,%-10.2f",y,y,y,y,y);return0;},輸出,12.678900,?12.678900,?????12.68,12.68,12.68?????,實數(shù)最常用的兩種輸出格式,格式輸出舉例——f格式符,%.nf%m.nf%-m.nf,例2.7,50,格式輸出舉例——c格式符,#includeintmain(){charc=A;inti=65;printf("%c,%d\n",ch,ch);printf("%c,%d",a,a);return0;},A,65A,65,注意,在C語言中,整數(shù)可以用字符形式輸出,字符數(shù)據(jù)也可以用整數(shù)形式輸出。將整數(shù)用字符形式輸出時,系統(tǒng)首先求該數(shù)與256的余數(shù),然后將余數(shù)作為ASCII碼,轉換成相應的字符輸出。,例2.8,51,格式,scanf(“格式控制字符串”[,地址列表]);,說明,1、“格式控制字符串”與printf函數(shù)類似??梢园韵氯N類型的信息:格式說明:與printf類似,以%開始,以一個格式字符結束;空白字符(空格、\t、\n):輸入多個數(shù)據(jù)時的缺省分隔符,可以省略,在輸入數(shù)據(jù)時可以以任一種空白字符分隔;普通字符(照原樣輸入)。2、“地址表列”是由若干個地址組成的列表,各地址之間用逗號分隔。如變量的地址表示為:scanf(“%d%d”,,,10?20?10,20,inta,b;scanf(“%d,%d”,,,10,20?10,20,格式輸入舉例——d格式符,注意,舉例,當輸入多個數(shù)據(jù)時,若各個格式說明之間沒有其他字符,則系統(tǒng)默認使用空格鍵、回車鍵和Tab鍵進行間隔;若格式說明之間有其他字符,則必須照原樣輸入。,10?20?10,20,,53,inta,b;printf(“Pleaseinput2integers:”);scanf(“%d%d”,,建議,,Pleaseinput2integers:,在輸入語句之前配上一條printf語句,用來顯示輸入提示。,舉例,1020?,10,20,54,floata;scanf(“%f”,,輸入:3.2?,floata;scanf(“%3.2f”,,格式輸入舉例——f格式符,舉例,3.200000,輸出:,輸入:3.218?,-107374176.000000,輸出:,注意,當輸入實型數(shù)據(jù)時,不能規(guī)定精度。如果指定了精度,編譯時不會報錯,但輸入的數(shù)據(jù)將不可預知。,55,doublea;scanf(“%f”,,doublea;scanf(“%lf”,,格式輸入舉例——f格式符,舉例,輸入:3.2?,3.200000,輸出:,注意,當輸入雙精度實型數(shù)據(jù)時,使用%lf;當輸出雙精度實型數(shù)據(jù)時,使用%f或%lf。當輸入/出單精度實型數(shù)據(jù)時,使用%f;,56,charch1,ch2,ch3;scanf(“%c%c%c”,,格式輸入舉例——c格式符,注意,舉例,使用格式說明符“%c”輸入單個字符時,空格和轉義字符均作為有效字符被輸入。,輸入:a?b?c?,ch1=a,ch2=,ch3=b,輸出:,其中:ch2的值為空格。,57,使用scanf時,雙引號的格式控制字符串中建議只寫格式說明符,不要加入其他字符。,inta,b;printf("Pleaseinput2integers:\n");scanf("%d%d",,inta,b;printf("Pleaseinputa,b:\n");scanf(“%d,%d",,inta,b;printf("Pleaseinputa=,b=\n");scanf(“a=%d,b=%d",,Pleaseinput2integers:,Pleaseinputa,b:,Pleaseinputa=,b=,推薦1,推薦2,不推薦,35?,3,5?,a=3,b=5?,58,作業(yè),……,- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 語言 課件 基本 數(shù)據(jù)類型
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經上傳用戶書面授權,請勿作他用。
相關資源
更多
正為您匹配相似的精品文檔
相關搜索
鏈接地址:http://www.3dchina-expo.com/p-11494941.html