




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
主講:劉永春
校內郵箱:liuychu@
辦公地點:理工樓4—31室聯系電話:(辦)6288891
(手機/p>
C程序設計教程
2第1章課程內容復習第2章數據類型、運算符與表達式
2.1C語言的數據類型
2.2常量與變量2.3整型數據2.4浮點型數據2.5字符型數據2.6各類數值型數據間的混合運算2.7算術運算符和算術表達式2.8逗號運算符和逗號表達式32.1C語言的數據類型數據類型基本類型整型短整型(short)整型(int)長整型(long)字符型(char)浮點型單精度浮點型(float)雙精度浮點型(double)空類型(void)枚舉型(enum)結構體類型(struct)共同體類型(union)構造類型指針類型(T*)41.常量的概念在程序運行過程中,其值不能被改變的量稱為常量。
常量的類型,可通過書寫形式來判別。常量的分類:表達形式:
(1)整型常量
6、432、76543、546783424
(2)實型常量
2.23、546.2487615247、
3.057439E+5
(3)字符常量
‘a’
、‘
c’
、‘
6’
、'M'
(4)符號常量
WHI
#defineWHI"Iamastudent."
WHI是符號常量。2.2常量與變量5
2.變量的概念在程序運行過程中,其值可以被改變的量稱為變量。變量的三個要素:
(1)變量名。每個變量都必須有一個名稱。
(2)變量值。在程序運行過程中,變量值存儲在內存中。在程序中,通過變量名來引用變量的值。(3)變量的類型。例如:數值為23的整型變量a,可以定義為:
inta;a=23;也可以定義為:inta=23;
a:變量名字;23:變量的值;int:變量的類型,它在計算機內存中占32個位存儲單元,即4個字節。0000000000------0000000000010111(4個字節)32位二進制數值6變量的命名:只能由字母、數字和下劃線組成,必須以字母或者下劃線開頭,不能以數字開頭。
變量的定義:類型+名字。類型有:int,float,char。比如:inta,floatb,charc。*
C語言的關鍵字(不能用來作變量)
C語言的關鍵字共有32個。(1)數據類型關鍵字(12個)
char,double,enum,float,int,long,short,signed,struct,union,unsigned,void;(2)控制語句關鍵字(12個)
break,case,continue,default,do,else,for,goto,if,return,switch,while;7(3)存儲類型關鍵字(4個)
auto,extern,register,static(4)其它關鍵字(4個)
const,sizeof,typedef,volatile(易變)(5)
C語言中使用的特定字
C語言中使用的具有特定含義的標識符,稱為特定字。C語言中使用的特定字:
include,define,ifdef,
ifndef,endif,line
特定標識符主要用在C語言的編譯預處理命令中。8
一.整型常量(類型為:int)三種表示形式(1)十進制例如:10
、36
(2)八進制(以數字0開頭)例如:012(十進制10)(3)十六進制(以數字0小寫字母x開頭)例如:0x36(十進制54)
二.整型常量分類(1)基本整型:其數據范圍-32768
~32767
(與int
型變量一樣)(2)長整型(在數值后面加字母L(小寫字母l)):其取值范圍可達:-231
~(231-1)例如:32769、123L、315L
等。2.3整型數據9三、整型變量占用內存字節數與值域
1.整型變量占用的內存字節數(VC6.0系統)
int
型變量占4個字節值域占32位
short型變量占2字節值域占16位
long型變量占4字節值域占32位
2.不同類型的整型變量值域占用內存位數為n的整型變量其值域:有符號為:-2n-1
~
(
2n–1-1)無符號為:0~(2n-1)0010
四.整型數據在內存中的存放,數值是以補碼表示的。
一個正數的補碼與原碼相同;一個負數的補碼求法:原碼的二進制形式,取反求得反碼,再加1,得到負數的補碼。例如:-8的補碼。-8的原碼100000
00
00
001000求反碼011111
11
11
110111補碼011111
11
11
111000-865528112.4浮點型數據
1.浮點型常量的表示形式
(1)十進制形式例如:3.14、9.8
(2)指數形式例如:3.02465E+5
2.
浮點型變量(1)浮點型變量分類
﹡單精度(float型),4個字節,有效數字是7位。
﹡雙精度(double型),8個字節,
﹡長雙精度(long
double型),16個字節。小數點前只能有一位有效數字指數必須是整數12
(2)浮點型數據在內存中的存放形式
浮點型數據(類型為:float)按照指數形式存儲。例如:3.1415926的存放形式為:+.314159261↑↑↑符號小數部分指數∣∣∣
+.31415926×101→3.1415926在計算機內部實際上是用二進制來表示小數部分的。
(3)浮點型數據的舍入誤差(只有7位有效數字)例如:輸入3.1415926,輸出為:3.141593132.5字符型數據1.字符常量:用一對單引號括起來的單個字符稱為字符常量。字符變量不用擴起來。例如:‘A’、‘7’、‘+’等。2.轉義字符在C語言中可以使用一種特殊形式的字符常量,就是以反斜杠“\
”開頭的轉義字符。比如:
\n\b\r\t\f\0(字符串結束標志)\’\”\v\ddd\xhh
注意:若反斜杠或單引號本身要作為字符常量時,必須使用轉義字符:\\、\’
。1314
3.以“\”開頭的字符在printf
函數中控制輸出格式與功能含義:\n 換行ASCⅡ:10\t 橫向跳格(下一個制表位<8列
>)9\v 豎向跳行
\a發出鈴聲7\b 退格8\r 回車(將光標返回到當前行的左邊)13\f 打印機走紙換頁12\\ 反斜杠字符\92\’ 單引號’39\ddd
1到3位8進制數所代表的字符。如:‘\101’=‘A’\xhh
1到2位16進制數所代表的字符。
具體的使用可以根據程序輸出的需要來確定。1515
例2.1
要輸出349、-9和字符常量M,怎樣編程?#include〈stdio.h〉voidmain(){
printf(“%d\n”,349);
printf(“%d\n”,-9);
printf(“%c\n”,‘M’);}運行結果:349-9M常數直接輸出的格式1616
例2.2
符號常量WHI的使用。格式控制字符串中的普通字符,直接照原樣輸出
#include〈stdio.h〉#defineWHI"Iamastudent."voidmain(){
printf(“Iamastudent.\n”);
printf(“%s\n”,“Iamastudent.”);
printf("%s\n",WHI);}
運行結果:
Iamastudent.
Iamastudent.Iamastudent.字符串的輸出格式1717
#include〈stdio.h〉voidmain(){intx,y;x=5;y=3;
printf(“%d-----%d\n”,x,y);x=1;y=2;
printf(“%d-----%d\n”,x,y);}
運行結果:5-----31-----2例2.3
分別輸出變量x=5,y=3和x=1,y=2的值,怎樣編程?第一次賦值第二次賦值1818例2.4
怎樣將16進制的整型常量80,8進制的常量200和10進制的常量128按照10進制的形式輸出?并將10進制的常量128以8進制形式輸出?不輸出前綴數字0以數字0開頭字母O#include<stdio.h>voidmain(){printf(“0x80----%d\n",0x80);printf(“0200----%d\n",0200);printf("128-----%d\n",128);printf("128-----%o\n",128);}運行結果:0x80----1280200----128128-----128128-----200說明“%d”是10進制整數的輸出格式整數十進制輸出格式為:%d;整數八進制輸出格式為:%o;整數十六進制輸出格式為:%x。1919例2.5x=42.67,y=12.3,求x/y,y/x浮點型變量數據的值,并輸出其結果。怎樣編程?小數點后6位#include<stdio.h>voidmain(){floatx,y,z;x=42.67;y=12.3;z=x/y;printf(“z1=%f\n",z);z=y/x;printf(“z2=%f\n",z);}
程序運行結果:
z1=3.469106z2=0.288259浮點數的輸出格式20#include<stdio.h>voidmain()
{
printf(“ABC\tabc\txyz\n”);
printf(“ABC\babc\bxyz\n”);}
程序運行結果如下:
ABC abc xyz
ABabxyz
\b作用是退格\t作用是跳列例2.6
有“ABC”、“abc”、“xyz”三組字符串,要輸出為:“ABCabcxyz”和“ABabxyz”的形式,怎樣用轉義字符輸出和編程?214.
字符變量(類型為:char)
字符變量→存儲字符常量,只能存儲一個字符。字符變量:每個字符占用1個字節的內存。
(1)變量值的存儲
將一個字符常量存儲到一個字符變量中,實際上是將該字符的ASCII碼值(無符號整數)存儲到內存單元中。
(2)變量值的特性字符數據在內存中存儲的是字符的ASCII碼(一個無符號整數),其形式與整數的存儲形式一樣。22例如:charch1,ch2;
/*定義字符變量:ch1,ch2*/ch1='a';/*給字符變量賦值*/ch2='b';
字符數據'a'、'b'的ASCII碼值97、98(一個無符號整數)分別存放在變量ch1,ch2所占用內存存儲單元中,其形式與整數的存儲形式一樣。
ch1ch2979823(3)一個字符型數據,既可以字符形式輸出,也可以整數形式輸出。
例2.7
假設兩個字符變量,以字符形式和整數形式怎樣輸出?同學們在上機練習。表示以字符形式輸出表示以十進制數字形式輸出#include<stdio.h>
void
main(){charch1,ch2;
ch1='a';ch2='b';printf(“ch1=%c,ch2=%c\n”,ch1,ch2);
printf(“ch1=%d,ch2=%d\n”,ch1,ch2);
}
程序運行結果:
ch1=a,ch2=b
ch1=97,ch2=9824(4)允許對字符數據進行算術運算,此時就是對它們的ASCII碼值進行算術運算。例2.8
將字符數據’a’、’B’進行大小寫轉換。#include<stdio.h>void
main(){charch1,ch2;
ch1=‘a’;ch2=‘B’;/*給字符變量賦初值*/
printf(“ch1=%d,”,ch1-32);/*字母的大小寫轉換*/printf(“ch2=%d\n”,ch2+32);
printf(“ch1=%c,ch2=%c\n”,ch1-32,ch2+32);
}
運行結果:ch1=65,ch2=98ch1=A,ch2=b255.
字符串常量(1)字符串常量的概念和字符串長度字符串常量:是用一對雙引號括起來的若干字符序列。字符串長度:字符串中字符的個數。空串:長度為0,一個字符也沒有,表示為“”。例如字符串常量:“Howdoyoudo.”
長度為14(空格也是一個字符)
“Goodmorning.”
長度為13
如果要輸出下面的兩行字符應當怎樣編程?①C:\msdos\v6.22→
②
Isay:"Goodbye!"→"C:\\msdos\\v6.22“"Isay:\"Goodbye!\""26
例2.9
通過指針輸出字符串常量。(第8章學習暫時不講)S表示輸出的是字符串#include<stdio.h>voidmain(){char*p;/*定義一個字符指針變量*/
p=“Iamastudent.”;
/*給指針變量賦初值*/
printf("%s\n",p);
printf("%s\n","Isay:\"Goodbye!\"");}運行結果:
Iamastudent.Isay:"Goodbye!"276.字符串的存儲C語言規定:在存儲字符串常量時,由系統在字符串的末尾自動加一個‘\0’作為字符串的結束標志。如果有一個字符串為“CHINA”,則它在內存中的實際存儲如下所示:
CHINA\0最后一個字符'\0'是系統自動加上的,它占用6字節而非5字節內存空間。287.字符常量'A'與字符串常量"A"的區別:(1)定界符不同:
字符常量使用單引號‘A’,而字符串常量使用雙引號"";(2)長度不同:字符常量的長度固定為1,而字符串常量的長度,可以是0,也可以是某個整數;(3)存儲要求不同:
字符常量存儲的是字符的ASCII碼值,而字符串常量,除了要存儲有效字符的ASCII碼值外,還要存儲一個結束標志‘\0
'。292.6各類數值型數據間的混合運算例如:10+‵a′+1.5-8765.1234﹡‵b′
在本例的計算中,既有數字,也有字符,在C語言中這是合法的。字符的計算實際上是用它的ASCⅡ值進行計算,但要歸結為同一類型進行計算。不同數據類型計算時的轉換規則為:向最高級靠攏。double←float高↑
long↑unsigned↑低int←char,short302.7算術運算符與算術表達式一、C語言運算符和C算術表達式簡介
1.C語言運算符:(有13種類型)(1)算術運算符:(+、-、*、/、%)(2)關系運算符:(>、<、==、>=、<=、!=)
(3)邏輯運算符:(!、&&、||)
(4)位運算符:(<<、>>、~、︱、∧、&)
(5)賦值運算符:(=、+=、-=、*=、/=、%=)
(6)條件運算符:(?:)
(7)逗號運算符:(,)
(8)指針運算符:(*、&)
(9)求字節數運算符:(sizeof
)
(10)強制類型轉換運算符:((類型))
(11)分量運算符:(.->)
(12)下標運算符:([])
(13)其他運算符:(函數調用運算符())312.C表達式:(1)算術表達式:如:2+6.7﹡3.5+sin(0.5)(2)關系表達式:如:x
>0,y<z+
6
(3)邏輯表達式:如:x>0&&y<0表示兩式成立,&&(與)
(4)賦值表達式:如:a=3+6
(5)逗號表達式:如:a=3,y=6,z=8(順序計算,值取最后一個)二、主要的算術運算符和算術表達式
1.基本的算術運算符+、-、﹡、/、%(求余計算)。(1)求余運算時,兩側都必須是整型數據,否則會出錯。如:3%2.5是錯的。(2)除法運算時,兩個整數相除的結果是整數,小數部分被舍去。如:5/3=1。(3)負數的除法結果不確定,原則是“向零取整”。(4)如有float或者double數據參與計算,都要先強制轉換為double數據再進行計算,結果是double數據。32算術表達式和運算符的優先級與結合性(1)定義:
用算術運算符和括號將運算對象連接起來、并符合C語法規則的式子,稱為C算術表達式。運算對象包括常量、變量、函數等。
(2)算術運算符的優先級:
先取負、再乘、除、求余,最后加、減法。(3)運算符的結合性:自左至右的結合方向。強制類型轉換運算符
在運算對象的前面加上一對小括號,并注明數據類型就是強制轉換。inta,而(double)a,將a可強制轉換為雙整型。334.自增、自減運算符(只適用于變量和循環語句)(1)自增(++)、自減(--)運算:
自增運算使單個變量的值增1,自減運算使單個變量的值減1。(2)用法與運算規則:
前置運算──++變量、--變量;前置運算:先增、減,后運算。
后置運算──變量++、變量--;后置運算:先運算,后增、減。(3)結合方向:右→左。34例2.10
分析下面自增自減運算程序的結果。#include<stdio.h>voidmain(){
intx=6,y;
printf("x=%d\n",x);/*輸出x的初值*/y=++x; /*前置運算*/
printf("y=++x:x=%d,y=%d\n",x,y);y=x--;/*后置運算*/
printf("y=x--:x=%d,y=%d\n",x,y);}
程序運行結果:
x=6y=++x:x=7,y=7y=x--:x=6,y=7352.8逗號運算符與逗號表達式逗號表達式的一般形式:表達式1,表達式2,…,表達式n
運算規則:從左到右分別計算每個表達式的值,最后一個表達式的值就是整個逗號表達式的值。例如:a=2,b=3,逗號表達式c=a+b,d=a-b,y=a*b
即:c=5,d=-1,y=6。而表達式的值就是6。36本章小結C語言的數據類型有:基本類型、結構類型和指針類型。其中指針類型就是地址,結構類型就是表格,基本類型主要有整型、浮點型和字符型。常量:其值不能被改變的量;變量其值可以改變。常量有:整型、浮點型、字符型和符號常量4種。字符型常量只能是一個字符,并且要用單引號括起來。符號常量是用宏定義命名的字符串或者常數。整型常量有十進制、八進制、十六進制等形式。十進制直接寫,八進制前面要加數字0,十六進制前面要加數字0和小寫的字母x。比如:12,012,0x12。變量有三要素:類型、名字、變量的值。類型有3種:整型int,浮點型float,字符型char。整型、浮點型各占4個字節的內存,字符型只占1個字節的內存。變量的名字只能用字母、下劃線和數字組成,而且數字不能做開頭。比如:inta;floatb;charc。375.計算機采用二進制存放數據,一個二進制整數的最高位即第15位是符號位,0表示正數,1表示負數。計算機不能存放負數,所以,只能以補碼的形式存放數據。正數的補碼與原碼相同,負數的補碼要對原碼先求反再加1。6.浮點數的指數形式由小數和指數兩部分組成,小數點前只能有一位有效數字,小數部分最多7位有效數字。指數部分由e(E)和指數組成,指數可正、可負,但必須是整數。比如:2.30789E+3,5.20563e-2。7.C語言運算符總共13種:主要有算術運算符、關系運算符、邏輯運算符、賦值運算符等。表達式:運算符與運算對象的結合。8.自增、自減運算符與運算規則
前置運算:++變量、--變量,先增、減,后運算;
后置運算:變量++、變量--,先運算,后增、減。
38課堂練習(3)整形數據定義用
,浮點型定義用
,字符型定義用
。字符常量用
界定,字符串常量用
界定,字符常量是
個字節,字符串常量要
個字節
。算術運算符是
,邏輯運算符是
,關系運算符是
。自增、自減前置運算規則是
,自增、自減后置運算規則是
。5.++i、--i與i++、i--都相當于i=i+1和i=i-1。如果i=3,j=++i,則i=
、j=
;如果i=3,k=i++,則i=
、k=
;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現代藥劑學的發展趨勢
- 崗前培訓醫保政策解讀與實務操作
- 數字智慧方案化工行業信息化
- 數字智慧方案互聯網+智慧能源與能源工業40暉保智能總經理
- 2025年Web考試相關知識點試題及答案匯編
- 景區墳地監管方案(3篇)
- 學校消防專項方案(3篇)
- 大學生醫學導論課程框架
- 2025年嵌入式系統考試指導試題及答案
- 2025年四級考試新穎試題及答案
- 醫院保安服務項目實施方案
- 《檳榔的危害》課件
- 高考前家長會課件
- 外陰及陰道炎癥護理課件
- 2024年中國智慧港口行業市場全景評估及未來投資趨勢預測報告(智研咨詢)
- 圍產期奶牛的飼養管理(內訓)
- 音視頻系統培訓資料-(內部)
- 隧道截水溝施工
- 錨桿施工方案
- 專業方向證明
- 十萬個為什么問題大全及答案
評論
0/150
提交評論