C語言程序設計(微課版)課件 第二章 數(shù)據(jù)類型、運算符及表達式_第1頁
C語言程序設計(微課版)課件 第二章 數(shù)據(jù)類型、運算符及表達式_第2頁
C語言程序設計(微課版)課件 第二章 數(shù)據(jù)類型、運算符及表達式_第3頁
C語言程序設計(微課版)課件 第二章 數(shù)據(jù)類型、運算符及表達式_第4頁
C語言程序設計(微課版)課件 第二章 數(shù)據(jù)類型、運算符及表達式_第5頁
已閱讀5頁,還剩98頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1頁第2章C語言基本概念本章概述主要內(nèi)容第2頁本章概述現(xiàn)在您一定很渴望開始編寫程序,與計算機進行實際的交互。但是,在開始編寫真正有用的程序之前,必須先學習一些與C語言有關的基本概念。常用數(shù)制及常用數(shù)制整數(shù)之間的轉換方法包括常量、變量、標識符、簡單數(shù)據(jù)類型運算符、表達式和類型轉換。這些都是進行C語言程序編寫的基礎知識,初學者會覺得這些知識點枯燥、瑣碎又難記憶,但是這些都很重要,需要熟練掌握。主要內(nèi)容2.1數(shù)制 2.2常量與變量 2.3標識符和關鍵字 2.4數(shù)據(jù)類型 2.5運算符及表達式 2.6數(shù)據(jù)類型的自動和強制轉換2.7本章小結 2.8編程經(jīng)驗 第3頁2.1數(shù)制數(shù)制也稱計數(shù)制,是指用一組有限的符號和統(tǒng)一的規(guī)則來表示數(shù)值的方法??墒褂脭?shù)字符號的數(shù)目稱為基數(shù),基數(shù)為n,即可稱為n進制。日常生活中常用的計數(shù)制是十進制,使用0~9這10個阿拉伯數(shù)字進行記數(shù)。除了可以用十進制計數(shù)以外,還有許多非十進制的計數(shù)方法。在計算機領域常見的計數(shù)制還有二進制、八進制和十六進制。對于任意一個數(shù),都可以用不同的進制來表示。比如:十進數(shù)(68)10,可以用二進制表示為(1000100)2,也可以用八進制表示為(104)8,用十六進制則表示為(44)16,它們所代表的數(shù)值都是十進制的68。第4頁第5頁常用數(shù)制數(shù)碼是數(shù)制中表示基本數(shù)值大小的不同數(shù)字符號。例如,十進制有10個數(shù)碼:0、1、2、3、4、5、6、7、8、9;二進制有2個數(shù)碼:0、1;八進制有8個數(shù)碼:0、1、2、3、4、5、6、7;十六進制有16個數(shù)碼:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F?;鶖?shù)是數(shù)制所使用數(shù)碼的個數(shù)。例如,二進制的基數(shù)為“2”,八進制的基數(shù)為“8”,十進制的基數(shù)為“10”,十六進制的基數(shù)是“16”。位權:數(shù)制中某一位上的1所表示數(shù)值的大?。ㄋ幬恢玫膬r值),對于N進制數(shù),整數(shù)部分第i位(從右向左數(shù))的位權為N(i-1)。例如,十進制數(shù)123中,3的位權是100=1,2的位權是101=10,1的位權是102=100。二進制數(shù)1011中,從右側開始第一個1的位權是20=1,第二個1的位權是21=2,0的位權是22=4,第三個1的位權是23=8。第6頁常用數(shù)制1.十進制

十進制是我們?nèi)粘I钪谐S玫挠嫈?shù)制,基數(shù)是10,它有10個數(shù)字符號,即0、1、2、3、4、5、6、7、8、9。其中最大數(shù)碼是“基數(shù)”減1,即10-1=9,最小數(shù)碼是0。2.二進制

二進制是計算機內(nèi)部所采用的計數(shù)制。二進制的基數(shù)是2,它只有兩個數(shù)字符號,即0和1。如果在給定的數(shù)中,除0和1外還有其它數(shù)字符號,如1061,就絕不會是一個二進制數(shù)。3.八進制

八進制的基數(shù)是8,它有8個數(shù)字符號,即0、1、2、3、4、5、6、7。當一個數(shù)中出現(xiàn)“8”或“9”時,如23459,就絕不是一個八進制數(shù)。八進制數(shù)的最大數(shù)碼是7,最小數(shù)碼是0。4.十六進制

十六進數(shù)制用得較多,它有16個數(shù)字符號依次是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。其中A至F分別代表十進制數(shù)的10至15。如果一個數(shù)字中出現(xiàn)了字母類符號,如63AB,則它一定不會是八進制數(shù),或十進制數(shù)。十六進制數(shù)的最大數(shù)碼是“基數(shù)”減1,即16-1=15(為F),最小數(shù)碼是0。第7頁十進制向二進制轉換十進制數(shù)轉換為二進制數(shù),采用“除2取余,逆序排列”法。具體做法是:用2整除十進制整數(shù),可以得到一個商和余數(shù);再用2去除商,又會得到一個商和余數(shù),如此進行,直到商為小于1時為止,然后把先得到的余數(shù)作為二進制數(shù)的低位有效位,后得到的余數(shù)作為二進制數(shù)的高位有效位,依次排列起來。第8頁非十進制向十進制轉換非十進制數(shù)轉換為十進制數(shù)方法是,將其按權位展開,然后各項相加,就得到相應的十進制數(shù)。這種方法被稱為“按權相加”法。例如:二進制數(shù)(1010)2按權展開為:1×23+0×22+1×21+0×20=8+0+2+0=(10)10八進制數(shù)(123)8按權展開為:1×82+2×81+3×80=64+16+3=(83)10十六進制數(shù)(12D)16按權展開為:1×162+2×161+13×160=256+32+13=(301)10第9頁二進制與八進制互換八進制數(shù)轉換成二進制數(shù)的方法是,將每1位八進制數(shù)直接寫成相應的3位二進制數(shù)。例如:(123)8=(001010011)2=(1010011)2二進制數(shù)轉換成八進制數(shù)的方法是:從右向左將每3位二進制數(shù)分成一組,若不足3位,則高位用0補足3位。然后,將每一組二進制數(shù)直接寫成相對應的八進制數(shù)。

例如:(11110101)2=(011110101)2=(365)8第10頁二進制與十六進制互換十六進制數(shù)轉換成二進制數(shù)的方法是,將每1位十六進制數(shù)直接寫成相應的4位二進制數(shù)。例如:(4DF)16=(010011011111)2=(10011011111)2二進制數(shù)轉換成十六進制數(shù)的方法是:從右向左將每4位二進制數(shù)分成一組,若不足4位,則高位用0補足4位,然后將每一組二進制數(shù)直接寫成相應的十六進制數(shù)。例如:(100010110011101)2=(0100010110011101)2=(459D)16主要內(nèi)容2.1數(shù)制 2.2常量與變量

2.3標識符和關鍵字 2.4數(shù)據(jù)類型 2.5運算符及表達式 2.6數(shù)據(jù)類型的自動和強制轉換2.7本章小結 2.8編程經(jīng)驗 第11頁第12頁2.2常量與變量C語言中存在著兩種表征數(shù)據(jù)的形式:常量和變量。常量用來表征數(shù)據(jù)的值,變量不但可以用來表征數(shù)據(jù)的值,還可以用來存放數(shù)據(jù)。第13頁常量

在程序的運行過程中,其值不能改變的量稱為常量,或常數(shù)。常量有兩種類型:直接常量和符號常量。1.直接常量直接常量,又稱值常量。根據(jù)數(shù)據(jù)類型不同,可以有:(1)整型常量:如12、0、028。(2)實型常量:如4.6、-1.2、3.14、78e2。(3)字符常量:如'A'、'z'、'n'。(4)字符串常量:如"Whatawonderfulday!"。第14頁常量2.符號常量在C語言中,還可以用標識符來表示常量,稱之為符號常量。符號常量使用前需要明確定義,定義符號常量需要在源文件的開頭使用宏命令,即#define命令。使用#define宏命令定義符號常量的形式如下:#define符號常量名

常量//注意行尾沒有分號,也不指定常量數(shù)據(jù)類型第15頁常量【例2-1】符號常量的使用。#include<stdio.h>#definePRICE100#defineDISCOUNT0.8voidmain(){ inttotal; total=10*PRICE*DISCOUNT; printf("total=%d\n",total); total=100*PRICE*DISCOUNT; printf("total=%d\n",total);}使用符號常量的好處有以下兩點:首先是含義清楚,本例中,凡是出現(xiàn)PRICE的地方就可知道它是代表“100”;其次是,當符號常量被多次引用時可以簡化程序的數(shù)據(jù)輸入,需要修改常量值時,只需要在常量定義位置做出修改即可。第16頁常量注意:(1)#define是宏命令而非C語句,所以行末尾不加分號。(2)推薦用大寫字母定義符號常量名,目的是方便地和變量標識符區(qū)分開來,當然也可以小寫,但前后必須一致,因為C語言嚴格區(qū)分字母的大小寫形式。(3)不要使用賦值語句給符號常量賦值,如果不小心書寫了對符號常量賦值的語句,編譯器會報編譯錯誤。(4)不要指定符號常量數(shù)據(jù)類型,也不要在常量名和常量值之間添等號“=”。

例如:#definePRICE=100是錯誤的#defineintPRICE100也是錯誤的使用符號常量時,需要特別注意符號常量定義格式,避免出現(xiàn)上述錯誤。第17頁變量在程序的運行過程中,其值可以改變的量稱為變量。定義一個變量需要先給它取一個名字,變量定義后會擁有一個具有特定屬性的內(nèi)存存儲單元,這個內(nèi)存存儲單元用來存放數(shù)據(jù)。在C語言中規(guī)定:變量必須先定義,后使用。變量定義的一般格式:數(shù)據(jù)類型變量1[,變量2,…,變量n];如變量定義語句:inta,b=10;第18頁變量變量的三要素是:變量名、變量在內(nèi)存中占據(jù)的存儲單元、變量值。變量名在程序運行過程中不會被改變,但是變量的值是可以改變的。第19頁變量注意:(1)給變量命名要遵守標識符定義規(guī)則,習慣上變量名用小寫字母表示,為增加程序的可讀性,所用標識符最好能“見名知意”。例如,表示年級的變量名用grade就比用a的效果要好。(2)再強調(diào)一次,在C語言中規(guī)定所用到的變量必須“先定義,后使用”。通常在函數(shù)開頭定義局部變量,在源文件的開頭定義全局變量。(3)避免使用C語言關鍵字、保留字命名變量。(4)C語言是大小寫敏感的語言,例如,有變量名PRICE、Price和prcie,那么這是三個不同的變量名,書寫時請注意保持大小寫格式一致。第20頁變量初始化有如下4條語句,按順序執(zhí)行:intCats;printf("%d\n",Cats);//通常會在屏幕上顯示一個大的整數(shù)Cats=2;

//將變量Cats的值設為2printf("%d\n",Cats);請問,在Cats=2;這條語句執(zhí)行之前,變量Cats的值是什么?主要內(nèi)容2.1數(shù)制 2.2常量與變量 2.3標識符和關鍵字 2.4數(shù)據(jù)類型 2.5運算符及表達式 2.6數(shù)據(jù)類型的自動和強制轉換2.7本章小結 2.8編程經(jīng)驗 第21頁第22頁標識符簡單地說,標識符就是對象的名字,定義標識符就是給對象取名字。前面用到的變量名a、b,符號常量名PRICE、DISCOUNT,函數(shù)名printf等都是標識符。C語言中標識符的定義規(guī)則如下:(1)標識符中只能包含字母、數(shù)字和下劃線3種字符,第一個字符必須是字母或下劃線,即不能用數(shù)字開頭。合法的標識符:sum,average,_total,Class,day,stu_name,p4050不合法的標識符:M.D.John$123#333D64

第23頁標識符(2)C語言是大小寫字母敏感的語言。如果標識符中同一字母的大小寫形式不同將被看作不同標識符,例如,a和A是兩個不同的標識符,name、Name、NAME、naMe和nMAE也是互不相同的標識符。因此,編寫程序時,請注意保持大小寫書寫格式一致。(3)標識符可以包含的字符個數(shù)取決于編譯器,遵循C語言標準的編譯器至少支持31個字符,通常不超過這個長度就沒問題。但各個編譯系統(tǒng)都有自己的規(guī)定和限制。例如,若某編譯系統(tǒng)規(guī)定8個字符有效,這時,標識符student_name和student_number是兩個相同的標識符。(4)標識符不能與C語言的關鍵字同名,也不能與系統(tǒng)預先定義的標識符同名。第24頁關鍵字C語言關鍵字共32個:基本類型關鍵字(5個):void、char、int、float、double類型修飾關鍵字(4個):short、long、signed、unsigned復雜類型關鍵字(5個):struct、union、enum、typedef、sizeof存儲級別關鍵字(6個):auto、static、register、extern、const、volatile跳轉結構關鍵字(4個):return、continue、break、goto分支結構關鍵字(5個):if、else、switch、case、default循環(huán)結構關鍵字(3個):do、for、while第25頁預定義標識符預定義標識符主要有:#define#endif#ifdef#ifndef#include#line#undef主要內(nèi)容2.1數(shù)制 2.2常量與變量 2.3標識符和關鍵字 2.4數(shù)據(jù)類型 2.5運算符及表達式 2.6數(shù)據(jù)類型的自動和強制轉換2.7本章小結 2.8編程經(jīng)驗 第26頁第27頁2.4數(shù)據(jù)類型 第28頁整型數(shù)據(jù)1.整型常量的表示方法C語言中整型常量可以分別用十進制、八進制和十六進制形式進行表示,具的方法如下:(1)十進制整數(shù),不以數(shù)字0開頭。例如:123,-456,0(2)八進制整數(shù),以數(shù)字0開頭。例如:0123=(123)8=(83)10-011=(-11)8=(-9)10(3)十六進制整數(shù),0x或0X開頭。例如:0x123=(123)16=(291)10-0x12=(-12)16=(-18)10第29頁整型數(shù)據(jù)2.整型數(shù)據(jù)在內(nèi)存中的存放形式整型數(shù)據(jù)在內(nèi)存中以二進制形式存放,事實上正整數(shù)以“原碼”形式存放,負整數(shù)以“補碼”形式存放。補碼計算方法:一個正數(shù)的補碼就是此數(shù)的二進制形式,即這個正數(shù)的原碼,符號位用0表示。如果是一個負數(shù),先將此數(shù)的絕對值寫成二進制形式(原碼),然后對其所有二進制位按位取反加1,符號位用1表示。例如,整數(shù)10和-10的補碼分別為:10=(1010)2=(0000,0000,0000,1010)原=(0000,0000,0000,1010)補-10=(-1010)2=(1000,0000,0000,1010)原=(1111,1111,1111,0110)補從10和-10的補碼比較可以看出正數(shù)和它對應的負數(shù)的補碼看上去明顯不同。第30頁整型數(shù)據(jù)常用整型變量定義格式如下:(1)基本整型(int):基本整型變量占用4個字節(jié)空間,常用定義格式為:int變量名表;//定義有符號整型變量unsignedint變量名表;//定義無符號整型變量(2)短整型(shortint):短整型變量占用2個字節(jié)空間,常用定義格式為:short變量名表;//定義有符號短整型變量unsignedshort變量名表;//定義無符號短整型變量(3)長整型(long):長整型變量占用4個字節(jié)空間,常用定義格式為:long變量名表;//定義有符號長整型變量unsignedlong變量名表;//定義無符號長整型變量第31頁整型數(shù)據(jù)【例2-2】整型變量定義。#include<stdio.h>voidmain(){ inta,b,c,d; a=7; b=-7; c=a+b; d=b-a; printf("%d,%d\n",c,d);}第32頁整型數(shù)據(jù)注意:(1)定義變量時,數(shù)據(jù)類型說明符與變量名之間至少有一個空格分開,最后一個變量名之后必須用分號結尾。(2)可以一次定義多個相同類型的變量,各變量之間需用逗號作間隔符。(3)變量定義必須在變量使用之前。(4)可以在定義變量的同時對變量進行賦值。(5)在VisualC++6.0中,由于int型和longint型的數(shù)據(jù)都是分配4個字節(jié),因此int型和longint型變量取值范圍一致,一般使用int型變量即可。第33頁整型數(shù)據(jù)類型占用字節(jié)數(shù)數(shù)值范圍[signed]int4-2147483648~2147483647,即-231~(231-1)[signed]short[int]2-32768~32767,即-215~(215-1)[signed]long[int]4-2147483648~2147483647,即-231~(231-1)[signed]longlong8-9223372036854775808~9223372036854775808,即-263~(263-1)unsigned[int]40~4294967295,即0~(232-1)unsignedshort[int]20~65535,即0~(216-1)unsignedlong[int]40~4294967295,即0~(232-1)unsignedlonglong80~18446744073709551615,即0~(264-1)第34頁實型數(shù)據(jù)實型數(shù)又稱浮點數(shù),它是用來表示具有小數(shù)點的數(shù)據(jù)。1.實型常量的表示方法實型常量有兩種表示方法:(1)小數(shù)形式,這種實型常量由數(shù)字和小數(shù)點組成(必須有小數(shù)點)。例如:1.234、1234.、123.4、0.0(2)指數(shù)形式,這種形式類似數(shù)學中的指數(shù)形式,其格式為:aEn,表示a×10n。例如:1.23e2表示1.23×102,567e8表示567×108注意:(1)用指數(shù)形式表示實數(shù)時,字母e或E之前必須有數(shù)字,e后面的指數(shù)必須為整數(shù)。例如:e3、2.1e3.5、.e3、e都不是合法的指數(shù)形式。(2)規(guī)范化的指數(shù)形式,在字母e或E之前的數(shù)用小數(shù)表示,小數(shù)點左邊應當有且只有一位非0數(shù)字。例如,2.3478e2、3.0999E5、6.46832e12都屬于規(guī)范化的指數(shù)形式。(3)編譯系統(tǒng)會將實型常量作為雙精度實數(shù)來處理。在實型常量的后面加小寫字母f或大字母F,如1.65f、654.87F,編譯系統(tǒng)將按單精度處理實數(shù)。在實型常量的后面加小寫字母l或大寫字母L,如1.65l、654.87L,編譯系統(tǒng)將按長雙精度處理實數(shù)。第35頁實型數(shù)據(jù)2.實型數(shù)據(jù)在內(nèi)存中的存放形式一個float型數(shù)據(jù)一般在內(nèi)存中占4個字節(jié)(32bit)存儲空間。與整數(shù)存儲方式不同,實型數(shù)據(jù)是按照指數(shù)形式存儲的。系統(tǒng)將實型數(shù)據(jù)分為小數(shù)部分和指數(shù)部分分別存放。第36頁實型數(shù)據(jù)3.實型變量的定義C語言中實型變量分為:單精度(float)、雙精度(double)和長雙精度(longdouble)三種,其變量定義格式如下。(1)單精度實型(float):單精度實型變量占用4個字節(jié)存儲空間,定義格式為:float變量名表;(2)雙精度實型(double):雙精度實型變量占用8個字節(jié)存儲空間,定義格式為:double變量名表;(3)長雙精度實型(longdouble):長雙精度實型變量占用16個字節(jié)存儲空間,定義格式為:longdouble變量名表;實型數(shù)據(jù)類型占用字節(jié)數(shù)有效數(shù)字位數(shù)數(shù)值范圍float46-3.4e38~3.4e38double815-1.7e308~1.7e308longdouble815-1.7e308~1.7e3081619-3.4e4932~3.4e4932第37頁(1)實型變量也應該先定義后使用。(2)在VisualC++6.0中,所有float型數(shù)據(jù)會被自動轉換成double型處理。(3)不同的編譯系統(tǒng)對longdouble型的處理方法不同,TurboC對longdouble型分配16個字節(jié)。而VisualC++6.0則對longdouble型和double型一樣處理,分配8個字節(jié)。請讀者在使用不同的編譯系統(tǒng)時注意其差別。第38頁實型數(shù)據(jù)4.實型數(shù)據(jù)的精度在計算機中數(shù)據(jù)是用有限的存儲單元存儲的,因此實型數(shù)據(jù)提供的有效數(shù)字位數(shù)是有限的,在有效位以外的數(shù)字將會不準確,由此會引起實型數(shù)據(jù)的舍入誤差?!纠?-3】將一個有效數(shù)字位數(shù)超過7位的數(shù)賦值給float型變量時,會引起實型數(shù)據(jù)的舍入誤差,這并不是程序的BUG。#include<stdio.h>voidmain(){ floatx=123456789; doubley=123456789; x=x-50; y=y-50; printf("\nx=%f,y=%f",x,y);}第39頁字符型數(shù)據(jù)1.字符型變量C語言中,字符型變量用關鍵字char進行定義,在定義的同時可以賦初值。字符型變量定義的一般形式如下:char變量名表;在定義字符型變量時,應注意變量的命名應符合標識符的命名規(guī)則。下面是字符型變量的定義范例:charc1,c2='s';這條語句定義了兩個字符型變量c1和c2,同時給變量c2賦值為's'。第40頁字符型數(shù)據(jù)2.普通字符常量有兩種形式的字符常量:一種是普通字符常量,另一種是轉義字符常量。普通字符常量是用單引號括起來的一個字符,如'a'、'Z'、'3'、'?'、'#',不能寫成'ab'或'12'。請注意,單引號只是界限符,字符常量只能是一個字符,不包括單引號。字符常量存儲在計算機存儲單元中時,并不是存儲字符本身(如a,Z,#等),而是以其代碼(一般采用ASCII代碼)存儲的。例如,字符'a'的ASCII代碼是97,因此,在存儲單元中存放的是97(以二進制形式存放)。說明:(1)單引號中的字符如果大小寫形式不同,則代表不同的字符。例如,'a'和'A'是不同的字符常量。(2)空格字符('')也是一個字符常量,不能寫成兩個連續(xù)的單引號('')。(3)字符常量只能包括一個字符,所以c1='a',c2='A'就是合法的,而c1='ok',c2='we'就是非法的。(4)字符常量只能用單引號括起來,不能用雙引號括起來。所以"A"不是字符常量,而是一個字符串。第41頁字符型數(shù)據(jù)3.轉義字符常量以反斜杠(\)開頭的字符序列。例如,前面已經(jīng)遇到過的,在printf函數(shù)中的'\n'它代表一個“換行”符。另外如'\t'代表將輸出的位置跳到下一個制表位置。這是一種在屏幕上無法顯示的“控制字符”,在程序中也無法用一個一般形式的字符來表示,只能采用這樣的特殊形式來表示。也可以這樣理解,當計算機遇到反斜杠(\)開頭的字符序列時將會進行轉義處理。第42頁字符型數(shù)據(jù)【例2-4】使用轉義字符控制輸出。

#include<stdio.h>voidmain(){ printf("\n\t\101");//光標到下一行行首,再到下一個制表位,輸出A

//(101)8=(65)10,對應A的ASCII代碼 printf("\n\t\bb");//光標到下一行行首,再到下個制表位,

//然后光標后退一格,輸出b printf("\n\\*hello*\\");//光標到下一行行首,輸出\*hello*\ printf("\n\t\x41");

//光標到下一行行首,再到下一個制表位,

//(41)16=(65)10,對應A的ASCII代碼 printf("\a\a\a");

//如果電腦聲音設備打開,可以聽到3聲報警音 printf("\n");

//光標到下一行行首}第43頁字符型數(shù)據(jù)非法轉義字符常量錯誤原因'\197'9不能充當八進制數(shù)的數(shù)位'\1673'\后面最多跟3位八進制數(shù)'\abc'\后面漏掉了x,并且位數(shù)超過了3位'ab'普通字符常量,單引號中間只能有一個字符'\x1fc'\x后面最多跟2位十六進制數(shù)幾種常見非法轉義字符舉例第44頁字符型數(shù)據(jù)4.字符型數(shù)據(jù)的運算字符型數(shù)據(jù)以ASCII代碼存儲的形式與整數(shù)的存儲形式類似,因此還可以把字符型數(shù)據(jù)當做一個較短的整型數(shù)據(jù)來使用。由于字符型變量只占1個字節(jié)空間,如果將其作為整型變量使用,其取值范圍為0~255(無符號)和-128~127(有符號)。說明:(1)字符型變量有雙重性,可以把它解釋為一個字符,也可以解釋為一個整數(shù)。(2)可以對字符型數(shù)據(jù)進行算術運算,相當于對它所對應的ASCII代碼值進行算術運算。(3)一個字符型數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出。例如:charc='A';

printf("%d\n",c);//輸出數(shù)字65

printf("%c\n",c);//輸出字母A第45頁字符型數(shù)據(jù)【例2-5】字符'a'的各種表達方法,理解把字符型變量當整型變量使用。#include<stdio.h>voidmain(){ charc1='a';

//a的ASCII代碼為97 charc2='\x61';//字符'a'的十六進制表示

charc3='\141';//字符'a'的八進制表示

charc4=97;

//(97)10 charc5=0x61;//(0x61)16=(97)10 charc6=0141;//(0141)8=(97)10 printf("\nc1=%c,c2=%c,c3=%c,c4=%c,c5=%c,c6=%c\n",c1,c2,c3,c4,c5,c6); printf("c1=%d,c2=%d,c3=%d,c4=%d,c5=%d,c6=%d\n",c1,c2,c3,c4,c5,c6);}第46頁字符型數(shù)據(jù)【例2-6】將字母進行大小寫轉換。提示:ASCII代碼表中小寫字母比對應的大寫字母的ASCII代碼的值大32。#include<stdio.h>voidmain(){ charc1,c2; c1='a'; c2='B'; c1=c1-32; c2=c2+32; printf("c1=%c,c2=%c\n",c1,c2); c1=c1+3; c2=c2+3; printf("c1=%c,c2=%c\n",c1,c2);}第47頁字符串常量字符串常量是由一對雙引號("")括起來的字符序列。例如,"Howareyou?","CHINA","a","C語言程序設計"。C語言中有字符串常量但并沒有字符串變量,如果需要處理字符串數(shù)據(jù)可以使用后續(xù)章節(jié)中介紹到的字符數(shù)組和指針等內(nèi)容。說明:(1)請注意區(qū)分字符常量與字符串常量。例如,"a"是一個字符串常量,而'a'是一個字符常量。(2)C語言規(guī)定以'\0'(ASCII代碼值為0)字符作為字符串結束標志。例如,“CHINA”在內(nèi)存中占用的存儲空間大小是6字節(jié)。(3)不能把字符串常量賦給字符型變量。例如,c為字符型變量,則c="a";是錯誤的。(4)C語言中沒有字符串變量,可以使用字符數(shù)組或指針處理字符串數(shù)據(jù)。(5)兩個連續(xù)的雙引號("")也是一個字符串常量,稱為“空串”,但要占用一個字節(jié)的存儲空間來存放'\0'。主要內(nèi)容2.1數(shù)制 2.2常量與變量 2.3標識符和關鍵字 2.4數(shù)據(jù)類型 2.5運算符及表達式 2.6數(shù)據(jù)類型的自動和強制轉換2.7本章小結 2.8編程經(jīng)驗 第48頁第49頁2.5運算符及表達式運算符是構建表達式的基本工具,以下這些運算符在大多數(shù)編程語言中都有:(1)算術運算符,包括加、減、乘和除。(2)關系運算符進行諸如“i比0大”這樣的關系比較運算。(3)邏輯運算符實現(xiàn)諸如“i比0大并且i比10小”這樣的邏輯運算。除此之外,還有許多其它運算符。雖然掌握如此眾多的運算符是一件非常繁瑣的事,但是對于編寫程序是特別重要的。第50頁運算符分類1.按功能分類(1)算術運算符:用于各類數(shù)值運算。包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運算%)、自增(++)和自減(--),共7種。(2)關系運算符:用于比較運算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=),共6種。(3)邏輯運算符:用于邏輯運算。包括與(&&)、或(||)和非(!),共3種。(4)位操作運算符:按二進制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)和右移(>>),共6種。(5)賦值運算符:用于賦值運算。包括簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類,共11種。(6)條件運算符:記為(?:),這是一個三目運算符,用于條件求值。(7)逗號運算符:記為(,),用于把若干表達式組合成一個表達式。(8)指針運算符:取值運算符(*)和取地址運算符(&)。(9)求字節(jié)數(shù)運算符:記為(sizeof),用于計算數(shù)據(jù)類型所占的字節(jié)數(shù)。(10)特殊運算符:下標運算符([])、指向運算符(->)和成員運算符(.)。第51頁運算符分類2.按操作數(shù)分類操作數(shù)是指運算符連接的對象個數(shù),按操作數(shù)分類是指按照運算符連接對象個數(shù)分類。(1)單目運算符(帶1個操作數(shù))!~++---*&sizeof(2)雙目運算符(帶2個操作數(shù))+-*/%<<=>>===!=<<>>&^∣&&‖(3)三目運算符(帶3個操作數(shù))?:(4)其它運算符[].->第52頁表達式與運算符的優(yōu)先級和結合性每個運算符都有一個優(yōu)先級。優(yōu)先級是指在表達式中存在多種運算符時,應該根據(jù)每個運算符的優(yōu)先級順序決定哪些運算符先參與運算,哪些運算符后參與運算。即優(yōu)先級用來標志運算符在表達式中參與運算的順序。例如,在表達式a-b*c中,乘號優(yōu)先級高于減號,因此,相當于a-(b*c)。C語言規(guī)定了各種運算符的結合方向,即結合性,包括左結合性和右結合性。最典型的右結合性運算符是賦值運算符。如x=y=z,由于“=”的結合方向為右結合性,所以應先執(zhí)行y=z再執(zhí)行x=(y=z)運算。第53頁算術運算符及其表達式算術運算符含義操作數(shù)舉例結果+正號運算單目+aa的值加法運算雙目a+ba和b的和-負號運算單目a-ba和b的差減法運算雙目-aa的算數(shù)負值*乘法運算雙目a*ba和b的乘積/除法運算雙目a/ba和b的商%取余運算雙目a%ba除以b的余數(shù)第54頁算術運算符及其表達式說明:(1)若算術運算符的兩個操作數(shù)均為整數(shù),則結果為整型數(shù)值。進行除法運算時,如果兩個操作數(shù)均為整數(shù),結果會被截斷式取整。例如,3/4=0,11/6=1。(2)取余運算的運算對象只能是整數(shù),運算的結果是兩個整數(shù)相除后所得的余數(shù)。余數(shù)的正負號與被除數(shù)的正負號保持一致。例如,7%3=1,3%7=3,7%-3=1,-7%3=-1。(3)參與運算的操作數(shù)中只要有一個數(shù)為實數(shù),則運算結果就為double型。例如,7.0/2=3.5。(4)單目運算符是只帶一個操作數(shù)的運算符。單目運算符“+”表示正號運算,單目運算符“-”表示負號運算。單目運算符的優(yōu)先級要比雙目運算符高。(5)由于鍵盤上沒有“×”,所有用“*”表示乘法;鍵盤上沒有“÷”所有用“/”表示除法。第55頁算術運算符及其表達式2.算術表達式算術表達式是用算術運算符和括號將運算對象連接起來并符合C語法規(guī)則的式子。一個算數(shù)表達式有一個計算結果,這個計算結果就是算數(shù)表達式的值。表達式求值按運算符的優(yōu)先級和結合性規(guī)定的順序進行。單個的常量、變量和函數(shù)可以看作是表達式的特例。以下是算術表達式的例子:a+b(b*5)/s(x+y)*8-7sin(x)+sin(y)第56頁關系運算符及其表達式關系運算符說明舉例(設a=1,b=2,c=1)<

小于a>b運算結果為0a>c運算結果為0>

大于a<b運算結果為1a<c運算結果為0>=大于或等于a>=b運算結果為0a>=c運算結果為1<=小于或等于a<=b運算結果為1a<=c運算結果為1==等于a==b運算結果為0a==c運算結果為1第57頁關系運算符及其表達式說明:(1)兩個字符組成的運算符中間不允許有空格。表中等于(==)運算符是兩個連續(xù)的等號,而不是一個等號(=),一個等號不表示比較,而是表示賦值。(2)關系運算符都是雙目運算符,具有左結合性。(3)關系運算實質(zhì)是進行操作數(shù)間的比較,以判斷兩個操作數(shù)是否符合給定的關系。如符合給定關系,運算的結果為1,代表關系成立(“真”),否則,運算的結果0,代表關系不成立(“假”)。第58頁關系運算符及其表達式(4)關系運算符、算術運算符和賦值運算符之間的優(yōu)先級順序是:算術運算符>關系運算符>賦值運算符(5)在C語言中,沒有專門用于表示“真”、“假”的邏輯數(shù)據(jù)類型,規(guī)定用數(shù)值“0”表示“假”,用“非0”表示“真”。例如:inta=3,b=5;a==3

//其計算結果為1,表示關系成立(“真”)(a<b)>10//a<b成立,計算結果為1,1>10不成立計算結果為0,

//表達式最終計算結果為0第59頁關系運算符及其表達式2.關系表達式由關系運算符構成的表達式,稱之為關系表達式。在關系表達式的一般形式中,操作數(shù)也可以是表達式,因此會出現(xiàn)嵌套的情況。例如:a+b>c-dx>3/2在關系表達式中,運算符<,<=,>,>=的優(yōu)先級高于運算符==,!=的優(yōu)先級。第60頁關系運算符及其表達式【例2-7】求各種關系表達式的值。#include<stdio.h>voidmain(){ charc='k'; inti=1,j=2,k=3; floatx=3e+5,y=0.85; printf("%d,%d\n",'a'+5<c,-i-2*j>=k+1); //輸出1,0 printf("%d,%d\n",1<j<5,x-5.25<=x+y); //輸出1,1 printf("%d,%d\n",i+j+k==-2*j,k==j==i+5); //輸出0,0}第61頁邏輯運算符及其表達式關系運算符只能對單一條件進行判斷,如a>b,a<c等。如果要在一條語句中進行多個條件的判斷,如a>b且同時a<c,就需要使用邏輯運算符來完成。1.邏輯運算符C語言中提供了3種邏輯運算符:邏輯與(&&)、邏輯或(‖)和邏輯非(!)。邏輯與運算符(&&)和邏輯或運算符(‖)均為雙目運算符,具有左結合性。邏輯非運算符(!)為單目運算符,具有右結合性。第62頁邏輯運算符及其表達式2.邏輯運算規(guī)則(1)a&&b:當a與b的值均為真時,運算結果為真,否則為假。(2)a‖b:當a與b的值均為假時,運算結果為假,否則為真。(3)!a:當a值為真時,結果為假,當a值為假時,結果為真。邏輯運算計算操作數(shù)間的邏輯關系,其運算結果只能是1或0,即真或假。a的取值b的取值a&&ba‖b!a!b0非01100非0001010非00110000011第63頁邏輯運算符及其表達式3.邏輯表達式由邏輯運算符和運算對象構成的表達式是邏輯表達式,邏輯表達式的運算對象可以是C語言中任意合法的表達式。邏輯表達式一般用于連接多個關系判斷,多用于分支結構和循環(huán)結構中,邏輯表達式的值是式中各種邏輯運算的最后值。邏輯表達式的格式為:表達式邏輯運算符表達式例如:b>0&&a<0n%5==0‖n%5==0!(a>b)根據(jù)邏輯運算符的左結合性,(a&&b)&&c也可寫為a&&b&&c。第64頁邏輯運算符及其表達式【例2-8】計算邏輯表達式的值。#include<stdio.h>voidmain(){ inta=3,b=4,c=5,x,y; printf("%d",a+b>c&&b==c);//a+b>c值為1,b==c的值為0 printf("%d",a||b+c&&b-c);//等價于1||9&&-1,注意&&優(yōu)先級高于|| printf("%d",!(a>b)&&!c||1);//!(a>b)值為1,!c的值為0 printf("%d",!(x=a)&&(y=b)&&0);//!(x=a)值為0,(y=b)是賦值語句

//取等號左邊的值作為表達式的值

printf("%d",!(a+b)+c-1&&b+c/2);//!(a+b)+c-1的值為4(非0),

//b+c/2的值為6(非0)

printf("\n");}第65頁邏輯運算符與其它運算符優(yōu)先級關系比較同一表達式中含有多種類型的運算符時,必須確立不同類型運算符之間的優(yōu)先級順序。一般來說,算術運算符、關系運算符和邏輯運算符之間的優(yōu)先級具有如下關系:邏輯非!>算術運算符>關系運算符>邏輯與&&和邏輯或||>賦值運算符按照運算符的優(yōu)先順序可以得出:a>b&&c>d

等價于(a>b)&&(c>d)!b==c‖d<a

等價于((!b)==c)‖(d<a)a+b>c&&x+y<b等價于((a+b)>c)&&((x+y)<b)第66頁邏輯運算短路特性

(1)邏輯與(&&)運算符短路情況:

a&&b&&c//只在a為真時,才判別b的值

//只在a、b都為真時,才判別c的值(2)邏輯或(||)運算符短路情況:

a||b||c//只要a為真,就不必判斷b和c的值

//只有a為假,才判斷b,a和b都為假才判斷c第67頁賦值運算符及表達式

1.賦值運算符賦值運算符就是一個“=”,作用是將一個數(shù)據(jù)賦給一個變量。如a=3的作用是執(zhí)行一次賦值操作,把常量3賦給變量a。也可以將一個表達式的值賦給一個變量。例如:a=10;w=x+y;第68頁賦值運算符及表達式2.賦值表達式由賦值運算符將一個變量和一個表達式連接起來的式子稱為賦值表達式。它的一般形式為:變量賦值運算符表達式賦值表達式的作用是將一個表達式的值賦給一個變量,因此賦值表達式具有計算和賦值的雙重功能。既然是一個表達式,就應該有一個值。例如,賦值表達式a=2+3的值為5。對表達式求解后,變量a的值和表達式的值都是5。賦值運算符具有右結合性。因此,a=b=c=5可理解為:a=(b=(c=5))賦值運算符的優(yōu)先級除了高于逗號運算符外,比任何其它運算符的優(yōu)先級都低。第69頁賦值運算符及表達式3.賦值過程中的類型轉換如果賦值運算符兩邊的數(shù)據(jù)類型不相同,系統(tǒng)將自動進行類型轉換,即把賦值運算符右邊的類型換成左邊的類型。具體規(guī)定如下:(1)實型賦予整型,舍去小數(shù)部分。(2)整型賦予實型,數(shù)值不變,但將以實型形式存放,即增加小數(shù)部分(小數(shù)部分的值為0)。(3)字符型賦予整型,由于字符型數(shù)據(jù)為1個字節(jié),而整型數(shù)據(jù)為2或4個字節(jié),故將字符的ASCII代碼值放到整型變量的低八位中,高八位為0。整型賦予字符型,只把低八位賦予字符型變量。第70頁賦值運算符及表達式【例2-9】賦值過程中的數(shù)據(jù)類型轉換。#include<stdio.h>voidmain(){ inta,b=322,c; floatx,y=8.88; charc1='k',c2; a=y;//實型數(shù)賦給整型變量,a值為8 x=b;//整型數(shù)賦給實型變量,x值為322.0 c=c1;//字符型數(shù)賦給整型變量,a值為'k'的ASCⅡ碼值

c2=b;//整型數(shù)賦給字符型變量,c2值為0x42 //322的二進制表示(101000010)=0x42=66 printf("%d,%f,%d,%c\n",a,x,c,c2);}第71頁賦值運算符及表達式4.復合賦值運算符在賦值運算符“=”之前加上其它二目運算符可構成復合賦值運算符。如“+=”,“-=”,“*=”,“/=”,“%=”,“<<=”,“>>=”,“&=”,“^=”,“|=”。構成復合賦值表達式的一般形式為:變量其它運算符=表達式等效于變量=變量其它運算符表達式例如:a+=5等價于a=a+5x*=y+7等價于x=x*(y+7)r%=p等價于r=r%p第72頁自增運算符和自減運算符自增運算符(++),其功能是使變量的值自增1。自減運算符(--),其功能是使變量值自減1。(1)自增運算符和自減運算符均為單目運算,都具有右結合性??捎幸韵聨追N形式:++ii自增1后再參與其它運算--ii自減1后再參與其它運算i++i參與運算后,i的值再自增1i--i參與運算后,i的值再自減1第73頁自增運算符和自減運算符(2)自增運算符和自減運算符的操作數(shù)可以是整型變量,也可以是實型變量,但不能是常量或表達式。例如,++5,(a+b)++都是不合法的。(3)用自增和自減運算符構成表達式時,首先要清楚是以前綴形式出現(xiàn)的還是以后綴形式出現(xiàn)。當它們出現(xiàn)在較復雜的表達式或語句中時,常常難于弄清,因此應仔細分析。例如:

j=3;k=++j;//k=4,j=4j=3;k=j++;//k=3,j=4j=3;printf(“%d”,++j);//4j=3;printf(“%d”,j++);//3a=3;b=5;c=(++a)*b;//c=20,a=4a=3;b=5;c=(a++)*b;//c=15,a=4第74頁自增運算符和自減運算符【例2-10】自增自減運算。#include<stdio.h>voidmain(){ inti=5,j=5,p,q; p=(i++)+(i++)+(i++); q=(++j)+(++j)+(++j); printf("%d,%d,%d,%d",p,q,i,j);}第75頁逗號運算符及其表達式逗號運算符(,),其功能是把多個表達式連接起來組成一個表達式,稱為逗號表達式。其一般形式為:表達式1,表達式2,…,表達式k說明:(1)逗號運算符具有左結合性,因此逗號表達式將從左到右計算。先計算表達式1,然后計算表達式2,最后計算表達式k。最后一個表達式k的值就是此逗號表達式的值。逗號表達式還可以嵌套。例如:(a=3*5,a*4),a+5;先計算a=3*5得到a的值等于15,再進行a*4的計算得60(但a值未變,仍為15),再計算a+5得20,即整個逗號表達式的值為20。第76頁逗號運算符及其表達式(2)在所有運算符中,逗號運算符的優(yōu)先級最低。(3)并不是在所有出現(xiàn)逗號的地方都組成逗號表達式,如在變量說明中,函數(shù)參數(shù)表中逗號只是用作各變量之間的間隔符。(4)逗號表達式通常用于循環(huán)語句中。建議讀者不要隨便使用逗號表達式,因為它會降低程序的可讀性。第77頁條件運算符及其表達式條件運算符記為(?:),它是一個三目運算符,即有三個操作數(shù)。其一般形式如下:x=<表達式1>?<表達式2>:<表達式3>其求值規(guī)則為:如果表達式1的值為真(非0)時,求出表達式2的值,此時以表達式2的值作為整個條件表達式的值;如果表達式1的值為假(0)時,求表達式3的值,這時把表達式3的值作為整個條件表達式的值??谠E:前真后假。第78頁條件運算符及其表達式條件表達式通常用于賦值語句之中。例如:if(a>b)max=a;elsemax=b;可用條件表達式寫為:max=(a>b)?a:b;執(zhí)行該語句的順序是:如a>b為真,則把a賦予max,否則把b賦予max。第79頁條件運算符及其表達式

使用條件表達式時,還應注意以下幾點:(1)條件運算符的運算優(yōu)先級低于關系運算符和算術運算符,但高于賦值運算符。例如:max=(a>b)?a:b可以寫為:max=a>b?a:b(2)?和:是一對運算符,不能分開單獨使用。(3)條件運算符的結合方向是右結合。例如:

a>b?a:c>d?c:d應理解為:a>b?a:(c>d?c:d)第80頁條件運算符及其表達式【例2-11】輸入一個字符,判斷它是否為大寫字母,如果是將它轉換成小寫字母,如果不是則不轉換,并輸出最后得到的字符。#include<stdio.h>voidmain(){ charch; scanf("%c",&ch); ch=(ch>='A'&&ch<='Z')?(ch+32):ch; printf("%c\n",ch);}

第81頁位運算符及其表達式C語言提供了位運算來完成對操作數(shù)按照對應的二進制數(shù)位運算的操作,這些運算包括:位與(&)、位或(|)、位取反(~)、位異或(^)、左移(<<)和右移(>>)六種。這些位運算只有位取反運算是單目運算,其它均為雙目運算。各雙目位運算符與賦值運算符結合可以組成復合賦值運算符。位運算只能作用于整型和字符型數(shù)據(jù)。

第82頁位運算符及其表達式1.位與運算位與運算(&)的功能是將參與運算的兩數(shù)各對應的二進制位相與。只有對應的兩個二進制位均為1時,結果位才為1,否則為0。操作數(shù)以補碼形式參與運算。例如,9&5可寫算式如下:

00001001(9的二進制補碼)

&00000101(5的二進制補碼)00000001(1的二進制補碼)可見9&5=1。位與運算可以用于將某些位清零,而其余位不變。把要清零的位和0與,其余位和1與。例如把變量i的高八位清0,保留低八位,可作i&255運算,因為255用二進制數(shù)表示為:0000000011111111。

第83頁位運算符及其表達式【例2-12】5和9的位與運算。#include<stdio.h>voidmain(){inta=9,b=5,c;c=a&b;printf("a=%d\nb=%d\na&b=%d\n",a,b,c);}

第84頁位運算符及其表達式2.位或運算位或運算(|)的功能是將參與運算的兩數(shù)各對應的二進制位相或。只要對應的兩個二進制位有一個為1時,結果位就為1。操作數(shù)以補碼形式參與運算。例如,9|5可寫算式如下:

00001001(9的二進制補碼)

|00000101(5的二進制補碼)00001101(1的二進制補碼)可見9|5=13。位或運算可以用于將某些位置1,而其余位不變。把要置1的位和1或,保持不變的位和0或。例如,把變量i的高八位保持不變,低八位置1,可作i|255運算。

第85頁位運算符及其表達式【例2-13】5和9的位或運算。#include<stdio.h>voidmain(){inta=9,b=5,c;c=a|b;printf("a=%d\nb=%d\na|b=%d\n",a,b,c);}

第86頁位運算符及其表達式3.位異或運算位異或運算(^)的功能是將參與運算的兩數(shù)各對應的二進制位相異或,當兩數(shù)對應的二進制位相異時結果位為1,相同時結果位為0。例如,9^5可寫成算式如下:

00001001(9的二進制補碼)

^00000101(5的二進制補碼)00001100(1的二進制補碼)可見9^5=12。位異或運算有些特殊的性質(zhì)。例如,對于任何數(shù)x,都有x^x=0,x^0=x,同自己求位異或為0,同0求位異或為自己;位異或運算還有自反性A^B^B=A^0=A,即連續(xù)和同一個因子做位異或運算,最終結果為自己。

第87頁位運算符及其表達式【例2-14】位異或運算。#include<stdio.h>voidmain(){ inta=9,b=9,c=9; a=a^0; printf("9^0=%d\n",a); b=b^5; printf("9^5=%d\n",b); c=c^5^5; printf("9^5^5=%d\n",c);}

第88頁位運算符及其表達式4.位取反運算位取反運算(~)的功能是將參與運算數(shù)據(jù)的各二進制位按位求反。例如,~9的運算為:~(0000000000001001),結果為:11111111111101105.左移運算左移運算(<<)的功能是把<<左邊的操作數(shù)的各二進制位全部左移若干位,由<<右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。例如:a<<4含義是把a的各二進制位向左移動4位。如a=11000011(十進制195),左移4位后為00110000(十進制48)。

第89頁位運算符及其表達式6.右移運算右移運算(>>)的功能是把>>左邊的操作數(shù)的各二進制位全部右移若干位,>>右邊的數(shù)指定移動的位數(shù),低位丟棄,高位補0或補1

溫馨提示

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

評論

0/150

提交評論