C語言基礎(chǔ)與順序結(jié)構(gòu)課件_第1頁
C語言基礎(chǔ)與順序結(jié)構(gòu)課件_第2頁
C語言基礎(chǔ)與順序結(jié)構(gòu)課件_第3頁
C語言基礎(chǔ)與順序結(jié)構(gòu)課件_第4頁
C語言基礎(chǔ)與順序結(jié)構(gòu)課件_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言基礎(chǔ)與順序結(jié)構(gòu)C語言基礎(chǔ)與順序結(jié)構(gòu)學(xué)習(xí)目標(biāo)學(xué)會合理選用數(shù)據(jù)類型學(xué)會使用常用的運算符學(xué)會使用常用的標(biāo)準(zhǔn)輸入/輸出函數(shù)控制數(shù)據(jù)的輸入/輸出學(xué)會順序程序的設(shè)計方法學(xué)習(xí)目標(biāo)學(xué)會合理選用數(shù)據(jù)類型2.1C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef數(shù)值類型字符類型char枚舉類型enum整型浮點型單精度型float雙精度型double短整型short長整型long整型int數(shù)組結(jié)構(gòu)體struct共用體union數(shù)據(jù)類型決定:1.數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.其上可進(jìn)行的操作2.1C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義2.1.0預(yù)備知識計算機中數(shù)的表示及進(jìn)制轉(zhuǎn)換數(shù)碼、基與權(quán)數(shù)碼:表示數(shù)的符號基:數(shù)碼的個數(shù)權(quán):每一位所具有的值數(shù)制十進(jìn)制:0~9二進(jìn)制:0、1八進(jìn)制:0~7十六進(jìn)制:0~9,a~f2.1.0預(yù)備知識計算機中數(shù)的表示及進(jìn)制轉(zhuǎn)換各種進(jìn)制之間的轉(zhuǎn)換1、二進(jìn)制、八進(jìn)制、十六進(jìn)制轉(zhuǎn)換成十進(jìn)制

方法:按權(quán)相加各種進(jìn)制之間的轉(zhuǎn)換1、二進(jìn)制、八進(jìn)制、十六進(jìn)制轉(zhuǎn)換成十進(jìn)制2、十進(jìn)制轉(zhuǎn)換成二進(jìn)制、八進(jìn)制、十六進(jìn)制方法:連續(xù)除以基,從低到高記錄余數(shù),直至商為02、十進(jìn)制轉(zhuǎn)換成二進(jìn)制、八進(jìn)制、十六進(jìn)制例把十進(jìn)制數(shù)459轉(zhuǎn)換成二進(jìn)制數(shù)2459余12229余1114余0257余128余0214余07余123余11余120(459)10=(111001011)2例把十進(jìn)制數(shù)459轉(zhuǎn)換成二進(jìn)制數(shù)2459例把十進(jìn)制數(shù)459轉(zhuǎn)換成八進(jìn)制數(shù)4598578780(459)10=(713)8713余3余1余7例把十進(jìn)制數(shù)459轉(zhuǎn)換成八進(jìn)制數(shù)4598578780(例把十進(jìn)制數(shù)459轉(zhuǎn)換成十六進(jìn)制數(shù)4591628161160(459)10=(1CB)161CB余11余12余1例把十進(jìn)制數(shù)459轉(zhuǎn)換成十六進(jìn)制數(shù)45916281613、二進(jìn)制與八進(jìn)制之間的轉(zhuǎn)換二進(jìn)制轉(zhuǎn)換成八進(jìn)制:從右向左,每3位一組(不足3位左補0),轉(zhuǎn)換成八進(jìn)制八進(jìn)制轉(zhuǎn)換成二進(jìn)制:用3位二進(jìn)制數(shù)代替每一位八進(jìn)制數(shù)000~0001~1010~2011~3100~4101~5110~6111~7例(1101001)2=(001,101,001)2=(151)8例(246)8=(010,100,110)2=(10100110)23、二進(jìn)制與八進(jìn)制之間的轉(zhuǎn)換000~0例(110104、二進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換二進(jìn)制轉(zhuǎn)換成十六進(jìn)制從右向左,每4位一組(不足4位左補0),轉(zhuǎn)換成十六進(jìn)制十六進(jìn)制轉(zhuǎn)換成二進(jìn)制:用4位二進(jìn)制數(shù)代替每一位十六進(jìn)制數(shù)0000~00001~10010~20011~30100~40101~50110~60111~71000~81001~91010~A1011~B1100~C1101~D1110~E1111~F例(11010101111101)2=(0011,0101,0111,1101)2=(357D)16例(4B9E)16=(0100,1011,1001,1110)2=(100101110011110)24、二進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換0000~0例(110字節(jié)和位內(nèi)存以字節(jié)為單元組成每個字節(jié)有一個地址一個字節(jié)一般由8個二進(jìn)制位組成每個二進(jìn)位的值是0或17643251字節(jié)和位內(nèi)存以字節(jié)為單元組成7643251數(shù)值的表示方法——原碼、反碼和補碼(二進(jìn)制)原碼反碼補碼正數(shù)01111001最高位為符號位0,其余各位為數(shù)值本身的絕對值與原碼相同與原碼相同負(fù)數(shù)11111001最高位為符號位1,其余各位為數(shù)值本身的絕對值11111001符號位為1,其余位對原碼取反10000110最高位為1,其余位為原碼取反,再對整個數(shù)加110000111數(shù)值的表示方法——原碼、反碼和補碼(二進(jìn)制)原碼反碼補碼正數(shù)2.1.1整型數(shù)據(jù)整型常量十進(jìn)制整數(shù):由數(shù)字0~9和正負(fù)號表示.如123,-456,0八進(jìn)制整數(shù):由數(shù)字0開頭,后跟數(shù)字0~7表示.如0123,011十六進(jìn)制整數(shù):由0x開頭,后跟0~9,a~f,A~F表示.如0x123,0Xff2.1.1整型數(shù)據(jù)整型常量整型變量二進(jìn)制形式表示TC2.0中,在內(nèi)存中占2個字節(jié)的存儲單元符號關(guān)鍵字占字節(jié)數(shù)的表示范圍有[signed]int2-215~215-1[signed]short2-215~215-1[signed]long4-231~231-1無unsignedint20~216-1unsignedshort20~216-1unsignedlong40~232-1整型變量符號關(guān)鍵字占字節(jié)數(shù)的表示范圍有[signed]int整型變量的定義和賦值inta,b;a=3;b=4;或

inta=3,b=4;longe=123L;整型變量的定義和賦值舉例2-1:從鍵盤輸入兩個整數(shù),求它們的和#include<stdio.h>main(){inta,b,sum;scanf(“a=%d,b=%d”,&a,&b);sum=a+b;printf(“a+b=%d\n”,sum);}變量聲明輸入語句執(zhí)行語句輸出語句舉例2-1:從鍵盤輸入兩個整數(shù),求它們的和#include<練習(xí)11、求32766+1與32767+1的和2、從鍵盤上輸入數(shù)據(jù),求四則運算(a+b)*c/(d-e)的結(jié)果#include<stdio.h>main(){

int

a;

intb; a=32767; b=a+1;

printf("%d\n",b);}#include<stdio.h>main(){

inta;

longb; a=32767; b=a+1L;

printf("%ld\n",b);}-32768練習(xí)11、求32766+1與32767+1的和#includ課后作業(yè)P.11習(xí)題課后作業(yè)P.11習(xí)題2.1.2浮點型數(shù)據(jù)浮點型常量十進(jìn)制數(shù)形式:(必須有小數(shù)點)如0.123,.123,123.0,0.0,123.指數(shù)形式:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))如12.3e3,123E2,1.23e4

e-5,1.2E-3.5(×)2.1.2浮點型數(shù)據(jù)浮點型常量浮點型變量一般占4個字節(jié)類型字節(jié)有效數(shù)字float46-7double815-16longdouble1618-19浮點型變量類型字節(jié)有效數(shù)字float46-7double81浮點數(shù)變量定義和賦值floata,b;floatc=123456.789e3;浮點數(shù)變量定義和賦值舉例2-2:從鍵盤輸入兩個浮點數(shù),求它們的積#include<stdio.h>main(){floata,b,c;scanf(“a=%f,b=%f”,&a,&b);c=a*b;printf(“a*b=%10.2f\n”,c);}舉例2-2:從鍵盤輸入兩個浮點數(shù),求它們的積#include練習(xí)21、求一個較大的浮點數(shù)(上例中的c)與一個較小數(shù)(20)的和2、求一個整數(shù)與一個浮點數(shù)的和3、將第2題結(jié)果轉(zhuǎn)換為整數(shù)類型輸出練習(xí)21、求一個較大的浮點數(shù)(上例中的c)與一個較小數(shù)(20float型數(shù)據(jù)提供7位有效數(shù)字double型數(shù)據(jù)提供16位有效數(shù)字使用不當(dāng)導(dǎo)致舍入誤差#include<stdio.h>main(){

floata;

floatb; a=123456.789e3; b=a+20;

printf("%f\n",a,b);}#include<stdio.h>main(){

doublea;

doubleb; a=123456.789e3; b=a+20;

printf("%lf\n",a,b);}12345678848.000000float型數(shù)據(jù)提供7位有效數(shù)字#include<stdi2.1.3字符型數(shù)據(jù)字符常量用單引號括起來的單個普通字符或轉(zhuǎn)義字符字符串常量用雙引號括起來的字符序列如‘a(chǎn)’‘A’‘?’‘\n’‘\101’如:“hello”hello\02.1.3字符型數(shù)據(jù)字符常量如‘a(chǎn)’‘A’轉(zhuǎn)義字符<反斜線后面跟一個字符或一個代碼值表示轉(zhuǎn)義字符含義\n\v\r\a\‘\ddd\t\b\f\\\“\xhh轉(zhuǎn)義字符含義換行垂直制表回車響鈴單引號3位8進(jìn)制數(shù)代表的字符水平制表退格換頁反斜線雙引號2位16進(jìn)制數(shù)代表的字符轉(zhuǎn)義字符<反斜線后面跟一個字符或一個代碼值表示轉(zhuǎn)義字符含義\符號常量(宏常量)一般采用大寫字母表示#define標(biāo)識符字符串不是語句,而是一種編譯預(yù)處理命令宏替換(MacroSubstitulition)#include<stdio.h>#definePI3.14159#defineR5.3main(){

printf("area=%f\n",PI*R*R);

printf("circumference=%f\n",2*PI*R);}符號常量(宏常量)#include<stdio.h>字符變量一般占1個字節(jié)將該字符的相應(yīng)的ASCII碼值放到存儲單元中(參見P.251附錄A)用來表示256個ASCII字符,或者0~255的整數(shù)字符變量第2章C語言基礎(chǔ)與順序結(jié)構(gòu)課件字符變量定義和賦值charc1,c2;c1=‘a(chǎn)’;c2=‘\”’;c1=‘a(chǎn)’;與c1=97;等價c1=c1+1;c1=?大小寫字母如何轉(zhuǎn)換?c1=c1-32;字符變量定義和賦值舉例2-3:大小寫字母的轉(zhuǎn)換#include<stdio.h>main(){charc1,c2;c1=‘a(chǎn)’;c2=‘b’;c1=c1-32;c2=c2-32;printf(“%c%c\n”,c1,c2);}運行結(jié)果:AB舉例2-3:大小寫字母的轉(zhuǎn)換#include<stdio.h類型轉(zhuǎn)換自動類型轉(zhuǎn)換ch/i+f*d-(f+i)強制類型轉(zhuǎn)換i=(int)f;(int)9.6%4doublefloatlongunsignedintchar,short低高類型轉(zhuǎn)換自動類型轉(zhuǎn)換doublefloatlongunsig同種數(shù)據(jù)類型的運算結(jié)果,還是該類型不同種數(shù)據(jù)類型的運算結(jié)果,是兩種類型中取值范圍更大的那種long

double>double>float>long>int>short>char把數(shù)據(jù)賦值給另外一種類型變量也會發(fā)生自動類型轉(zhuǎn)換從小到大,順利轉(zhuǎn)換從大到小,可能丟失信息強制類型轉(zhuǎn)換可以消除從大到小轉(zhuǎn)換時的警告同種數(shù)據(jù)類型的運算結(jié)果,還是該類型變量聲明總結(jié)使用變量的基本原則變量必須先定義,后使用所有變量必須在第一條可執(zhí)行語句前定義聲明的順序無關(guān)緊要一條聲明語句可聲明若干個同類型的變量聲明變量,是初始化變量的最好時機不被初始化的變量,其值為危險的隨機數(shù)變量聲明總結(jié)使用變量的基本原則課后作業(yè)P.40習(xí)題課后作業(yè)P.40習(xí)題2.2運算符與表達(dá)式C運算符算術(shù)運算符:(+-*/%)關(guān)系運算符:(<<===>>=!=)邏輯運算符:(!&&||)位運算符:(<<>>~|^&)賦值運算符:(=及其擴展)條件運算符:(?:)逗號運算符:(,)指針運算符:(*&)求字節(jié)數(shù):(sizeof)強制類型轉(zhuǎn)換:((類型))分量運算符:(.)下標(biāo)運算符:([])其它:(()-)2.2運算符與表達(dá)式C算術(shù)運算符:(+-*/2.2.1算術(shù)運算符+-*/%四則混合運算中,先算乘除,后算加減,

按從左向右的順序計算,左結(jié)合數(shù)學(xué)中3ab,在C語言中應(yīng)寫為3*a*b兩整數(shù)相除,結(jié)果為整數(shù)%要求兩側(cè)均為整型數(shù)據(jù)例

5/2=-5/2.0=2-2.5例

5%2=-5%2=1%10=

5%1=5.5%21-110()2.2.1算術(shù)運算符+-*/%例5/2自增、自減運算符n++,n--,++n,--n++讓參與運算的變量加1,--讓參與運算的變量減1作為后綴運算符時,先取n的值,然后加/減1作為前綴運算符時,先加/減1,然后取n的值m=n++;

等價于m=n;n++;m=++n;

等價于n++;m=n;自增、自減運算符例j=3;k=++j;j=3;k=j++;j=3;printf(“%d”,++j);j=3;printf(“%d”,j++);a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;//k=4,j=4//k=3,j=4//4//3//c=20,a=4//c=15,a=4例j=3;k=++j;//k=4,j=4//k=32.2.2賦值運算符下面兩個語句是等價的i=i+2;i+=2;+、-、*、/、%、<<、>>、&、^、|運算符都可以按此種方式處理這種形式看起來更直觀,而且執(zhí)行效率一般也能更高一些2.2.2賦值運算符下面兩個語句是等價的2.2.3逗號運算符表達(dá)式1,表達(dá)式2,…,表達(dá)式n最終結(jié)果是表達(dá)式n的值例:intx,y=7;floatz=4;x=(y=y+6,y/z);例:inta=5,b;b=(a=a+4,a*4,a+15);2.2.3逗號運算符表達(dá)式1,表達(dá)式2,…,表達(dá)式n2.2.4sizeof運算符sizeof用于獲得變量或者數(shù)據(jù)類型的長度#include<stdio.h>main(){

printf("DatatypeNumberofbytes\n");

printf("------------------------\n");

printf("char%d\n",sizeof(char));

printf("int%d\n",sizeof(int));

printf("shortint%d\n",sizeof(short));

printf("longint%d\n",sizeof(long));

printf("float%d\n",sizeof(float));

printf("double%d\n",sizeof(double));}2.2.4sizeof運算符sizeof用于獲得變量或者數(shù)2.2.5邏輯運算符邏輯運算也被稱為布爾(Boolean)運算&&與運算(a>b&&b>c);a大于b,并且b大于c||或運算(a>b||b>c);a大于b,或者b大于c!求反(!a);如果a是0,結(jié)果非0;如果a是非0,結(jié)果是0并不改變a的值2.2.5邏輯運算符邏輯運算也被稱為布爾(Boolean)2.3輸入/輸出函數(shù)格式輸入輸出函數(shù)字符輸入輸出函數(shù)2.3輸入/輸出函數(shù)格式輸入輸出函數(shù)調(diào)用標(biāo)準(zhǔn)I/O函數(shù)時,應(yīng)在程序首位設(shè)置以下的預(yù)處理命令:#include"stdio.h"

在當(dāng)前目錄和TC指定的目錄中找該文件#include<stdio.h>

在由TC指定的文件目錄中找該文件調(diào)用標(biāo)準(zhǔn)I/O函數(shù)時,應(yīng)在程序首位設(shè)置以下的預(yù)處理命令:格式輸出函數(shù)格式輸出函數(shù)printf(“格式控制”,輸出項表列);輸出若干個任意類型的數(shù)據(jù)printf("a=%db=%f",a,b);P.31例2-7函數(shù)名輸出項表列普通字符格式控制格式輸出函數(shù)格式輸出函數(shù)函數(shù)名輸普通字符格式控制舉例2-4#include<stdio.h>main(){

floatf1=100.15799,f2=12.55,f3=1.7;

intn1=123,n2=45,n3=3456;printf("%5.2f\n%6.1f\n%3.0f\n",f1,f2,f3);printf("%5d\n%-6d\n%3d\n\n",n1,n2,n3);}100.16@@12.6@@2@@12345@@@@3456舉例2-4#include<stdio.h>100.16格式輸入函數(shù)格式輸入函數(shù)scanf(“格式控制”,地址表列);scanf("%d,%f”,&a,&b);非格式字符格式說明地址表列格式輸入函數(shù)格式輸入函數(shù)非格式字符格式說明地址表列格式輸入函數(shù)常見錯誤scanf("%d,%f\n”,&a,&b);scanf("%d,%f”,a,b);scanf("%7.2f",&a);格式輸入函數(shù)常見錯誤輸入數(shù)據(jù)時,遇以下情況時該數(shù)據(jù)認(rèn)為結(jié)束遇空格、回車、TAB鍵遇寬度:%3d遇非法輸入輸入數(shù)據(jù)時,遇以下情況時該數(shù)據(jù)認(rèn)為結(jié)束舉例2-5#include<stdio.h>main(){

chara,b; printf("Pleaseinputaandb:"); scanf("%c%c",&a,&b); printf("a=%c,b=%c\n",a,b);}Pleaseinputaandb:a=A,b=BAB↙舉例2-5#include<stdio.h>Please舉例2-6#include<stdio.h>main(){

inta,b;longc; printf("Pleaseinputa,b,c:"); scanf("a=%d,%d,%ld",&a,&b,&c); printf("a=%d,b=%d,c=%ld\n",a,b,c);}Pleaseinputa,b,c:a=12,b=34,c=56a=12,34,56↙舉例2-6#include<stdio.h>Please舉例2-7#include<stdio.h>main(){

floata,b;doublec; printf("Pleaseinputa,b,c:"); scanf(“%f,%e,%lf",&a,&b,&c); printf("a=%f,b=%e,c=%lf\n",a,b,c);}Pleaseinputa,b,c:a=5.2,b=1.2e3,c=7.895.2,1.2e3,7.89↙舉例2-7#include<stdio.h>Please舉例2-8#include<stdio.h>main(){

inta,b; printf("Pleaseinputaandb:"); scanf("%2d%*2d%2d",&a,&b); printf("a=%d,b=%d,a+b=%d\n",a,b,a+b);}Pleaseinputaandb:a=12,b=56,a+b=68123456↙虛讀,即跳過本輸入項舉例2-8#include<stdio.h>Please常用格式說明類型格式說明整型int%d整型long%ld長整型實型float%f小數(shù)形式%e指數(shù)形式double%lf小數(shù)形式%le指數(shù)形式字符型char%c字符型常用格式說明類型格式說明整型int%d整型long%ld長整字符輸入輸出函

溫馨提示

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

評論

0/150

提交評論