




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)1主要內(nèi)容⒈數(shù)據(jù)及其表示方法;
⒉數(shù)據(jù)的基本運(yùn)算;
⒊基本輸入輸出。程序是對(duì)數(shù)據(jù)按照算法處理,并輸出結(jié)果的過(guò)程,因此,以上三個(gè)問(wèn)題是程序設(shè)計(jì)的基本問(wèn)題。主要內(nèi)容⒈數(shù)據(jù)及其表示方法;程序是對(duì)數(shù)22.1數(shù)據(jù)類型1/2?
數(shù)據(jù)是對(duì)客觀事物特征抽象的符號(hào)化表示,客觀事物不同,表示的方法也不同(人數(shù)以整數(shù)表示,圓面積用小數(shù)表示,燈的狀態(tài)用開(kāi)關(guān)表示,信件要用文字表示),計(jì)算機(jī)的處理方法也不同,因此根據(jù)程序處理的數(shù)據(jù)對(duì)象,應(yīng)規(guī)定數(shù)據(jù)的類型。計(jì)算機(jī)由于工程的限制,只能在有限精度和有限范圍內(nèi)在工程上近似地描述操作的對(duì)象——數(shù)據(jù)。
數(shù)據(jù)類型決定了數(shù)據(jù)的如下特征:⑴數(shù)據(jù)的外部表示方式和內(nèi)部存儲(chǔ)方式不同;⑵表示的范圍和精度不同;⑶對(duì)數(shù)據(jù)的處理方式不同。2.1數(shù)據(jù)類型1/2?數(shù)據(jù)是對(duì)客觀事物特征抽象的3C語(yǔ)言的數(shù)據(jù)類型C語(yǔ)言的數(shù)據(jù)類型基本類型字符型char浮點(diǎn)型floatdouble構(gòu)造類型數(shù)組、結(jié)構(gòu)、聯(lián)合、枚舉型enum指針類型空類型void整型intC語(yǔ)言的數(shù)據(jù)類型C語(yǔ)言的數(shù)據(jù)類型基本類型字符型char浮點(diǎn)42.2常量(Constant)及其類型⒈常量的概念在程序中不能改變的量稱為常量。常量的類型由數(shù)據(jù)的外部表現(xiàn)形式確定。⒉常量的外部形式及其確定的類型⑴整型常量的表示整型常量根據(jù)表示的范圍可以有一般整型和長(zhǎng)整型,還可以表示為十進(jìn)制、八進(jìn)制、十六進(jìn)制形式。一般整型常量的表示進(jìn)制表示舉例范圍字節(jié)數(shù)十進(jìn)制2304-32768~+327672八進(jìn)制
044000~0177777
2十六進(jìn)制0xaa000x0000~0xffff2長(zhǎng)整型常量的表示進(jìn)制表示舉例范圍字節(jié)數(shù)十進(jìn)制-21234l
-231~+231-14八進(jìn)制
04400l
0~037777777777
4十六進(jìn)制0XAA00L
0x0000----0xffffffff42.2常量(Constant)及其類型⒈常量的5⑵浮點(diǎn)型常量的表示(只有十進(jìn)制表示)浮點(diǎn)型常量有兩種表示方式:小數(shù)表示方法,指數(shù)表示方法。不區(qū)分單、雙精度。小數(shù)表示方式規(guī)則:一個(gè)小數(shù)點(diǎn)、符號(hào)和至少一位數(shù)字。-2.01.0.11113-15.指數(shù)表示方式規(guī)則:規(guī)則:ne±m(xù)表示n×10mn小數(shù)部分,整型常量或小數(shù)形式表示的實(shí)型常量。指數(shù)部分,兩位整數(shù)。n決定精度,一般精度為7位;m決定范圍,范圍10-38到10+38,當(dāng)超過(guò)范圍時(shí)稱為“溢出”,小于10-38稱為下溢,當(dāng)0處理,大于10+38,稱為上溢,系統(tǒng)出錯(cuò)!表示為0.123456E+3-10000000表示為-1e7表示為⑵浮點(diǎn)型常量的表示(只有十進(jìn)制表示)浮點(diǎn)型常6⑶字符常量的表示表示ASCII字符集中的一個(gè)字符。字符有一個(gè)整型值,即該字符的ASCII碼值。表示方法:’a’、’!’。撇號(hào)定界的一個(gè)字符。值為:97⑷字符串常量的表示雙引號(hào)“定界的字符序列。系統(tǒng)會(huì)在最后一個(gè)字符后加NULL(ASCII碼值為0),標(biāo)志字符串的結(jié)束。如:”HEFEI””Hello!”’a’和”a”的區(qū)別??jī)?nèi)部’a’:97”a”:97NULL72101108108111330Hello!\0”Hello!”在內(nèi)存中的存儲(chǔ)結(jié)構(gòu):⑶字符常量的表示表示ASCII字符集中的一個(gè)字7⑸符號(hào)常量格式:#define符號(hào)常量名常量好處:(1)以簡(jiǎn)代繁;(2)一改全改。注意:常量符號(hào)名習(xí)慣用大寫字母。例如:說(shuō)明:必須先說(shuō)明,后使用。⑸符號(hào)常量格式:#define符號(hào)常量名常量好82.3變量(Variable)及其類型⒈變量的概念變量是在程序中可以改變的量,變量具有三個(gè)特征:
⑴變量有名,用標(biāo)識(shí)符命名;
⑵變量有類型;
⑶在程序中可以改變。
變量對(duì)應(yīng)于內(nèi)存中某一地址下的幾個(gè)單元,變量名作為程序引用變量的標(biāo)志。變量的類型確定了變量在內(nèi)存中所占單元的數(shù)量及其表示的方式。變量的地址可以通過(guò)&運(yùn)算獲得。內(nèi)存inta;a變量的引用標(biāo)志&a對(duì)應(yīng)a的地址。整型變量占兩個(gè)內(nèi)存單元。變量必須先說(shuō)明后使用!說(shuō)明的目的是確定變量的名字和類型。2.3變量(Variable)及其類型⒈變量9⒉變量的說(shuō)明形式:type變量名表;/*以,分隔的標(biāo)識(shí)符表*/inta,b,c;type是類型說(shuō)明詞,對(duì)于整型和字符型可加修飾說(shuō)明?;绢愋驼f(shuō)明符:int、char、float、double修飾說(shuō)明和基本說(shuō)明的對(duì)應(yīng)關(guān)系修飾說(shuō)明詞可用于修飾的基本類型singed/unsignedint、charshort/longintlonginta,b,c;⒉變量的說(shuō)明形式:inta,b,c;type是類型說(shuō)明詞10⑴整型變量說(shuō)明說(shuō)明詞及性質(zhì)如下:說(shuō)明詞含義范圍Byteint有符號(hào)一般整型-32768~327672short[int]有符號(hào)短整型-32768~327672long[int]有符號(hào)長(zhǎng)整型-231~+231-14unsigned無(wú)符號(hào)一般整型0~655352unsignedshort無(wú)符號(hào)短整型0~655352unsignedlong無(wú)符號(hào)長(zhǎng)整型0~232-14shorta,b,c;inte,f,g;long_qs,num;unsignedd,e,f;⑴整型變量說(shuō)明說(shuō)明詞及性質(zhì)如下:說(shuō)明詞含義范圍Byteint11⑵字符型變量的說(shuō)明說(shuō)明符所占字節(jié)數(shù) 范圍char 1 -128~+127unsignedchar 1 0~255⑶浮點(diǎn)型變量的說(shuō)明說(shuō)明符所占字節(jié)數(shù) 范圍精度f(wàn)loat 4 10-38~10+38 7位double 8 10-308~10+308 16位浮點(diǎn)型變量包含精度和范圍兩個(gè)概念。⑴超過(guò)精度位數(shù)后的位數(shù)值不確定。floata;1111;⑵超過(guò)范圍溢出(Overflow)。超出精度部分,不準(zhǔn)確。floata,b,c;a=1.234e+20;b=2.345e+21;c=a*b;超出1038,溢出。當(dāng)運(yùn)算結(jié)果大于10+38稱為上溢,系統(tǒng)出錯(cuò)。當(dāng)運(yùn)算結(jié)果小于10-38稱為下溢,當(dāng)0處理。⑵字符型變量的說(shuō)明說(shuō)明符所占字122.4運(yùn)算符與表達(dá)式程序的核心是對(duì)數(shù)據(jù)按照算法進(jìn)行處理(運(yùn)算)。C語(yǔ)言提供了強(qiáng)大的數(shù)據(jù)運(yùn)算功能。數(shù)據(jù)通過(guò)運(yùn)算符連接的式子稱為表達(dá)式,表達(dá)式根據(jù)運(yùn)算關(guān)系對(duì)數(shù)據(jù)運(yùn)算,并得到一個(gè)值。⒈變量賦值(Assignment)運(yùn)算格式:V=expression;/*將expression的值賦給變量V*/inta=2;/*說(shuō)明賦值,編譯時(shí)賦值。*/intb;b=3+2;/*說(shuō)明后賦值,執(zhí)行時(shí)賦值。*/說(shuō)明:⑴=是賦值號(hào)(動(dòng)詞);⑵賦值運(yùn)算的左值只能是變量。a=a+2;iCount=iCount+10;a+2=12;/*Error!*/⑶賦值號(hào)兩邊類型應(yīng)該一致,如不一致,以變量類型轉(zhuǎn)換。inta=2.5;/*2a*/2.4運(yùn)算符與表達(dá)式程序的核心是對(duì)數(shù)據(jù)按照13⒉算術(shù)運(yùn)算(Arithmeticoperators)功能:完成各種類型數(shù)據(jù)的加、減、乘、除及求余數(shù)運(yùn)算。⑴雙目算術(shù)運(yùn)算(兩個(gè)運(yùn)算對(duì)象參加的運(yùn)算)運(yùn)算運(yùn)算規(guī)則示例+加2+3-減a-b*乘2*(-a)/除12/3.0%求余數(shù)15%4只能對(duì)整型或字符型數(shù)據(jù)運(yùn)算。余數(shù)符號(hào)與被除數(shù)相同。注意:乘號(hào)不能省略!-12%5-2-12%(-5)1%2⒉算術(shù)運(yùn)算(Arithmeticoperators)功能14⑵自加、自減運(yùn)算(單目運(yùn)算)運(yùn)算符前置后置運(yùn)算關(guān)系++++aa++a=a+1
----aa--a=a-1說(shuō)明:①運(yùn)算對(duì)象只能是一個(gè)變量。②前置是先運(yùn)算,后引用,而后置則是先引用,后運(yùn)算。2++;/*Error!*/inti,x;i=5;x=i++;/*x=i;i=i+1;*/i=5;x=++i;/*i=i+1;x=i;*/#include<stdio.h>voidmain(void){inta=2,b=3,c;c=a+++b;printf(“%d”,c);}CHAP2EX1C語(yǔ)言盡可能多的從左向右結(jié)合符號(hào)形成運(yùn)算符。⑵自加、自減運(yùn)算(單目運(yùn)算)運(yùn)算符前置后置運(yùn)算關(guān)系++++a15⑶算術(shù)運(yùn)算賦值運(yùn)算符表達(dá)式示例運(yùn)算關(guān)系+=a+=3a=a+3-=b-=cb=b-c*=a*=2a=a*2/=s/=ts=s/t%=a%=5a=a%5說(shuō)明:①運(yùn)算對(duì)象的左值只能是一個(gè)變量。(a+2)+=5;/*Error!*/②%=運(yùn)算的對(duì)象,必須是整型或字符型。例:a=12;a+=a-=a*a//等價(jià)于a=a+(a=a-(a*a))A=-264③賦值表達(dá)式的值與變量值相等,且可嵌套。
⑶算術(shù)運(yùn)算賦值運(yùn)算符表達(dá)式示例運(yùn)算關(guān)系+=a+=3a=a+16⑷算術(shù)運(yùn)算的說(shuō)明①運(yùn)算中的類型問(wèn)題運(yùn)算對(duì)象的類型相同,運(yùn)算結(jié)果取運(yùn)算對(duì)象相同的類型。inta;floatb;b=2/3;/*0b0.0*/a=5.0/2.0;a2*/運(yùn)算對(duì)象的類型不同,先將低等類型轉(zhuǎn)換為高等類型后再進(jìn)行運(yùn)算,運(yùn)算結(jié)果取高等類型。等級(jí)原則如下:charintlongdoublefloat2*+doubledoubledouble運(yùn)算時(shí)可以實(shí)行類型的強(qiáng)制轉(zhuǎn)換,格式如下:(type)expression只對(duì)當(dāng)前表達(dá)式起作用。(float)a/(int)’c’+(float)(a+10)2+int(fSum)⑷算術(shù)運(yùn)算的說(shuō)明①運(yùn)算中的類型問(wèn)題運(yùn)算對(duì)象的類型相同,運(yùn)算結(jié)17類型轉(zhuǎn)換舉例inta;floatb;intc;c=a*1.0+b*5+(float)’A’;idfic
d
d
ff
d
dcint注意:賦值運(yùn)算右值表達(dá)式的類型轉(zhuǎn)換以左值變量的類型為準(zhǔn)。類型轉(zhuǎn)換舉例inta;idficddffddc18②運(yùn)算的優(yōu)先級(jí)表達(dá)式的運(yùn)算是分步驟進(jìn)行的。因此當(dāng)一個(gè)表達(dá)式中出現(xiàn)多種運(yùn)算時(shí),存在優(yōu)先級(jí)的問(wèn)題。算術(shù)運(yùn)算的優(yōu)先級(jí)如下:++、--、(type)單目運(yùn)算*、/、%+、-=、op=相同優(yōu)先級(jí),結(jié)合順序從左到右!3*4+6/a-6%3;相同優(yōu)先級(jí),結(jié)合順序從右到左!inta,b=2,c=2;a=b*=c+=2;可以用()調(diào)整優(yōu)先級(jí)。c=c+2;b=b*c;a=b;②運(yùn)算的優(yōu)先級(jí)表達(dá)式的運(yùn)算是分步驟進(jìn)行的。因此19⒊條件運(yùn)算運(yùn)算格式:e1?e2:e3e1、e2、e3為表達(dá)式,當(dāng)e1非0時(shí),運(yùn)算結(jié)果取e2的值;當(dāng)e1為0時(shí),取e3的值。inta=2,b=3,c=-1,d;d=a?b:c;/*d為3*/a=0;d=a?b:c;/*d為-1*/⒋逗號(hào)表達(dá)式格式:e1,e2,e3,…,en用,分隔的表達(dá)式,計(jì)算順序從左到右,表達(dá)式取值為en;⒌sizeof運(yùn)算形式:sizeof數(shù)據(jù)對(duì)象; sizeof(類型說(shuō)明符);inta,b,c;b=sizeofa;/*b的值為2*/c=sizeof(float);/*c的值為4*/x=(a=5,a+6)*10;⒊條件運(yùn)算運(yùn)算格式:e1、e2、e3為表達(dá)式,20C語(yǔ)言常用數(shù)學(xué)函數(shù)為方便用戶使用,C語(yǔ)言系統(tǒng)定義了大量函數(shù)。數(shù)學(xué)函數(shù)主要目的是求解常用數(shù)學(xué)函數(shù),如sinX等。數(shù)學(xué)函數(shù)的原型定義在系統(tǒng)的頭文件中。在使用此類函數(shù)時(shí),應(yīng)在程序的開(kāi)始出加如下語(yǔ)句:#include<math.h>使用方法:作為一個(gè)運(yùn)算項(xiàng)參加表達(dá)式運(yùn)算。函數(shù)的參數(shù)(自變量)、函數(shù)的值都是double類型。y=sqrt(sin(x)*sin(x)+cos(x)*cos(x))log10xlog10(x)lnxlog(x)sqrt(x)xypow(x,y)|x|fabs(x)tanXtan(x)cosXcos(x)sinXsin(x)數(shù)學(xué)含義函數(shù)C語(yǔ)言常用數(shù)學(xué)函數(shù)為方便用戶使用,C語(yǔ)212.5數(shù)據(jù)的輸入輸出Input&Output
C語(yǔ)言沒(méi)有輸入輸出語(yǔ)句,輸入輸出是通過(guò)系統(tǒng)定義的標(biāo)準(zhǔn)函數(shù)來(lái)實(shí)現(xiàn)的。I/O函數(shù)的原型定義在頭文件中,在引用I/O函數(shù)時(shí),應(yīng)應(yīng)在程序開(kāi)始處加預(yù)處理語(yǔ)句包含頭文件。#include<stdio.h>⒈輸入輸出的概念輸入輸出指的是內(nèi)存變量或程序和外部設(shè)備間的數(shù)據(jù)交換。內(nèi)存外設(shè)輸入輸出輸入輸出函數(shù)要描述:⑴輸入輸出的量;⑵輸入輸出的格式;⑶輸入輸出的設(shè)備。2.5數(shù)據(jù)的輸入輸出Input&Output222.字符輸入輸出函數(shù)(1)輸入:getchar()
從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀入一個(gè)字符。
調(diào)用格式:c=getchar();
c—為一字符型或整型變量。例:#include<stdio.h>main(){inta1,a2;charc1,c2;a1=97;a2=65;c1=‘a(chǎn)’;c2=‘A’;putchar(a1);putchar(a2);putchar(c1);putchar(c2);putchar(‘\n’);a1=getchar();c1=getchar();putchar(a1);putchar(‘\t’);putchar(c1);}(2)輸出:putchar()
向標(biāo)準(zhǔn)輸出設(shè)備(顯示器)輸出一個(gè)字符。
調(diào)用格式:putchar(c);
c—為一字符型或整型變量和常量。如:putchar(‘A’);putchar(65);均輸出字母A。
程序運(yùn)行結(jié)果:aAaA輸入:97972.字符輸入輸出函數(shù)(1)輸入:getchar()從標(biāo)23⒊格式輸入輸出函數(shù)⑴輸出函數(shù)printf()格式: printf(“輸出格式字符串”,輸出項(xiàng)列表);格式描述。用,分隔的常量、變量、表達(dá)式表。輸出格式字符串可包含以下內(nèi)容:①普通字符,如:a=②轉(zhuǎn)義字符,如:\n對(duì)于普通字符和轉(zhuǎn)義字符在相應(yīng)位置原樣輸出,其中%用%%。printf(“\nabcd%%”);輸出結(jié)果:abcd%③格式說(shuō)明符組,說(shuō)明輸出項(xiàng)列表中的各項(xiàng)的輸出格式。格式說(shuō)名符組用%為開(kāi)始標(biāo)志。內(nèi)容包含對(duì)一項(xiàng)輸出對(duì)象的格式說(shuō)明。%f⒊格式輸入輸出函數(shù)⑴輸出函數(shù)printf()格式:格式描述24格式說(shuō)明類型表格式說(shuō)明符說(shuō)明量的類型d、o、x、u整型c字符型s字符串f、e、g浮點(diǎn)型格式說(shuō)明符應(yīng)和輸出的列表項(xiàng)對(duì)應(yīng),產(chǎn)生相應(yīng)的輸出。其中輸出的表項(xiàng)應(yīng)與格式說(shuō)明符類型一致。printf(“a=%5d\nb=%f”,
2+3,
);輸出結(jié)果:a=5
格式說(shuō)明類型表格式說(shuō)明符說(shuō)明量的類型d、o、x、u整25格式說(shuō)明串的一般形式和意義%-
l
格式類型字符(一個(gè)字母)格式說(shuō)明標(biāo)志對(duì)齊方式:缺省為右對(duì)齊,-為左對(duì)齊。寬度.精度(位數(shù)),寬度:輸出總列數(shù),精度:小數(shù)位數(shù)(或字符位數(shù))。整型長(zhǎng)度,缺省短整型,l長(zhǎng)整型。#include<stdio.h>voidmain(void){floata;a=1.232326;printf(“a=”,a);}CHAP2EX2格式說(shuō)明串的一般形式和意義%-l格式類型26各種類型數(shù)據(jù)輸出舉例⑴字符型輸出charch=’b’;printf(“%5c,
%-5c,
%c”,ch,ch-32,’s’+1);輸出結(jié)果:b,B,t⑵字符串輸出#include<stdio.h>voidmain(void){charchString[]="China";printf("%s,%6s,%-6s\n",chString,chString,chString);printf(“%4s","Hefei","Hefei","Hefei");}China,
China,
China
HefeiHeHe寬度不夠,原樣輸出。,m為總輸出列數(shù),n截取輸出字符數(shù)。各種類型數(shù)據(jù)輸出舉例⑴字符型輸出char27⑶整型輸出#include<stdio.h>voidmain(void){unsignedinta=65535;intb=-2;printf("a=%d,%o,%x,%u",a,a,a,a);printf("\nb=%6d%8o%5X%6u",b,b,b,b);}a=-1,177777,ffff,65535b=-2177776FFFE65534⑶整型輸出#include<stdio.h>a=-1,1728⑷浮點(diǎn)數(shù)輸出include<stdio.h>voidmain(void){floatf=123.456;printf("%f,%10f,,\n",f,-f,f,-f);},,,
小數(shù)保留兩位,四舍五入截?cái)?。符?hào)占一位!⑷浮點(diǎn)數(shù)輸出include<stdio.h>,,,29⑵輸入函數(shù)scanf()格式:scanf(“格式說(shuō)明字符串”,輸入變量地址列表);說(shuō)明:①m域?qū)捒勺詣?dòng)截取,空格作為各數(shù)據(jù)項(xiàng)的分隔符。voidmain(void){inti,j;scanf("%3d%3d",&i,&j);printf("%d\n%d",i,j);}123456②實(shí)型變量輸入時(shí)不能規(guī)定精度;scanf(“%7.2f”,&a);ERROR!
③數(shù)據(jù)輸入用SPACE分隔,當(dāng)格式字符用其他字符隔離,輸入時(shí)也應(yīng)在對(duì)應(yīng)位置上輸入相同的字符;voidmain(void){inti,j;scanf("i=%d,j=%d",&i,&j);printf("\n%d\n%d",i,j);}④輸入項(xiàng)只能是變量,且必須用地址形式。⑵輸入函數(shù)scanf()格式:說(shuō)明:voidmain(v30程序設(shè)計(jì)舉例⒈已知:有一圓柱體,底半徑為r,圓柱高為h。
求:底面積、表面積,底周長(zhǎng)、體積。⑴定義變量fAread、fAreas,fLen,fV──輸出;r、h──輸入。rh建立模型fLen=2rfAread=r2,fAreas=2r2+2rh=2fAread+fLenhfV=fAreadh程序設(shè)計(jì)舉例⒈已知:有一圓柱體,底半徑為r,圓31程序如下:#include<>voidmain(void){floatfAread,fAreas,fLen,fV,r,h;/*說(shuō)明變量*/scanf(“%f,%f”,&r,&h);/*輸入原始數(shù)據(jù)*/fLen=2.*3.1415926*r;fAread=3.1415926*r*r;fAreas=2.0*fAread+fLen*h;fV=fAread*h;/*運(yùn)算,并賦給變量*/printf(“%f\n%f\n%f\n%f\n”,fLen,fAread,fAreas,fV);
/*輸出結(jié)果*/}CHAP2EX3程序如下:#include<>CHAP2EX3322.求一元二次方程ax2+bx+c=0的根。#include<math.h>#include<stdio.h>voidmain(void){floata,b,c,x1,x2;scanf(“%f,%f,%f”,&a,&b,&c);x1=(-b+sqrt(b*b-4.*a*c))/(2.0*a);x2=(-b-sqrt(b*b-4.*a*c))/(2.0*a);printf(“x1=%7.2f\nx2=%7.2f”,x1,x2);}CHAP2EX4b*b-4.*a*c<0問(wèn)題2.求一元二次方程ax2+bx+c=0的根。#includ33思考題總結(jié)各類型常量、變量的特征和操作方法。自己找一些代數(shù)式寫出對(duì)應(yīng)的C語(yǔ)言表達(dá)式。編程求圓錐體的體積。結(jié)合數(shù)學(xué)問(wèn)題用C編程求解。思考題總結(jié)各類型常量、變量的特征和操作方法。34第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)35主要內(nèi)容⒈數(shù)據(jù)及其表示方法;
⒉數(shù)據(jù)的基本運(yùn)算;
⒊基本輸入輸出。程序是對(duì)數(shù)據(jù)按照算法處理,并輸出結(jié)果的過(guò)程,因此,以上三個(gè)問(wèn)題是程序設(shè)計(jì)的基本問(wèn)題。主要內(nèi)容⒈數(shù)據(jù)及其表示方法;程序是對(duì)數(shù)362.1數(shù)據(jù)類型1/2?
數(shù)據(jù)是對(duì)客觀事物特征抽象的符號(hào)化表示,客觀事物不同,表示的方法也不同(人數(shù)以整數(shù)表示,圓面積用小數(shù)表示,燈的狀態(tài)用開(kāi)關(guān)表示,信件要用文字表示),計(jì)算機(jī)的處理方法也不同,因此根據(jù)程序處理的數(shù)據(jù)對(duì)象,應(yīng)規(guī)定數(shù)據(jù)的類型。計(jì)算機(jī)由于工程的限制,只能在有限精度和有限范圍內(nèi)在工程上近似地描述操作的對(duì)象——數(shù)據(jù)。
數(shù)據(jù)類型決定了數(shù)據(jù)的如下特征:⑴數(shù)據(jù)的外部表示方式和內(nèi)部存儲(chǔ)方式不同;⑵表示的范圍和精度不同;⑶對(duì)數(shù)據(jù)的處理方式不同。2.1數(shù)據(jù)類型1/2?數(shù)據(jù)是對(duì)客觀事物特征抽象的37C語(yǔ)言的數(shù)據(jù)類型C語(yǔ)言的數(shù)據(jù)類型基本類型字符型char浮點(diǎn)型floatdouble構(gòu)造類型數(shù)組、結(jié)構(gòu)、聯(lián)合、枚舉型enum指針類型空類型void整型intC語(yǔ)言的數(shù)據(jù)類型C語(yǔ)言的數(shù)據(jù)類型基本類型字符型char浮點(diǎn)382.2常量(Constant)及其類型⒈常量的概念在程序中不能改變的量稱為常量。常量的類型由數(shù)據(jù)的外部表現(xiàn)形式確定。⒉常量的外部形式及其確定的類型⑴整型常量的表示整型常量根據(jù)表示的范圍可以有一般整型和長(zhǎng)整型,還可以表示為十進(jìn)制、八進(jìn)制、十六進(jìn)制形式。一般整型常量的表示進(jìn)制表示舉例范圍字節(jié)數(shù)十進(jìn)制2304-32768~+327672八進(jìn)制
044000~0177777
2十六進(jìn)制0xaa000x0000~0xffff2長(zhǎng)整型常量的表示進(jìn)制表示舉例范圍字節(jié)數(shù)十進(jìn)制-21234l
-231~+231-14八進(jìn)制
04400l
0~037777777777
4十六進(jìn)制0XAA00L
0x0000----0xffffffff42.2常量(Constant)及其類型⒈常量的39⑵浮點(diǎn)型常量的表示(只有十進(jìn)制表示)浮點(diǎn)型常量有兩種表示方式:小數(shù)表示方法,指數(shù)表示方法。不區(qū)分單、雙精度。小數(shù)表示方式規(guī)則:一個(gè)小數(shù)點(diǎn)、符號(hào)和至少一位數(shù)字。-2.01.0.11113-15.指數(shù)表示方式規(guī)則:規(guī)則:ne±m(xù)表示n×10mn小數(shù)部分,整型常量或小數(shù)形式表示的實(shí)型常量。指數(shù)部分,兩位整數(shù)。n決定精度,一般精度為7位;m決定范圍,范圍10-38到10+38,當(dāng)超過(guò)范圍時(shí)稱為“溢出”,小于10-38稱為下溢,當(dāng)0處理,大于10+38,稱為上溢,系統(tǒng)出錯(cuò)!表示為0.123456E+3-10000000表示為-1e7表示為⑵浮點(diǎn)型常量的表示(只有十進(jìn)制表示)浮點(diǎn)型常40⑶字符常量的表示表示ASCII字符集中的一個(gè)字符。字符有一個(gè)整型值,即該字符的ASCII碼值。表示方法:’a’、’!’。撇號(hào)定界的一個(gè)字符。值為:97⑷字符串常量的表示雙引號(hào)“定界的字符序列。系統(tǒng)會(huì)在最后一個(gè)字符后加NULL(ASCII碼值為0),標(biāo)志字符串的結(jié)束。如:”HEFEI””Hello!”’a’和”a”的區(qū)別??jī)?nèi)部’a’:97”a”:97NULL72101108108111330Hello!\0”Hello!”在內(nèi)存中的存儲(chǔ)結(jié)構(gòu):⑶字符常量的表示表示ASCII字符集中的一個(gè)字41⑸符號(hào)常量格式:#define符號(hào)常量名常量好處:(1)以簡(jiǎn)代繁;(2)一改全改。注意:常量符號(hào)名習(xí)慣用大寫字母。例如:說(shuō)明:必須先說(shuō)明,后使用。⑸符號(hào)常量格式:#define符號(hào)常量名常量好422.3變量(Variable)及其類型⒈變量的概念變量是在程序中可以改變的量,變量具有三個(gè)特征:
⑴變量有名,用標(biāo)識(shí)符命名;
⑵變量有類型;
⑶在程序中可以改變。
變量對(duì)應(yīng)于內(nèi)存中某一地址下的幾個(gè)單元,變量名作為程序引用變量的標(biāo)志。變量的類型確定了變量在內(nèi)存中所占單元的數(shù)量及其表示的方式。變量的地址可以通過(guò)&運(yùn)算獲得。內(nèi)存inta;a變量的引用標(biāo)志&a對(duì)應(yīng)a的地址。整型變量占兩個(gè)內(nèi)存單元。變量必須先說(shuō)明后使用!說(shuō)明的目的是確定變量的名字和類型。2.3變量(Variable)及其類型⒈變量43⒉變量的說(shuō)明形式:type變量名表;/*以,分隔的標(biāo)識(shí)符表*/inta,b,c;type是類型說(shuō)明詞,對(duì)于整型和字符型可加修飾說(shuō)明?;绢愋驼f(shuō)明符:int、char、float、double修飾說(shuō)明和基本說(shuō)明的對(duì)應(yīng)關(guān)系修飾說(shuō)明詞可用于修飾的基本類型singed/unsignedint、charshort/longintlonginta,b,c;⒉變量的說(shuō)明形式:inta,b,c;type是類型說(shuō)明詞44⑴整型變量說(shuō)明說(shuō)明詞及性質(zhì)如下:說(shuō)明詞含義范圍Byteint有符號(hào)一般整型-32768~327672short[int]有符號(hào)短整型-32768~327672long[int]有符號(hào)長(zhǎng)整型-231~+231-14unsigned無(wú)符號(hào)一般整型0~655352unsignedshort無(wú)符號(hào)短整型0~655352unsignedlong無(wú)符號(hào)長(zhǎng)整型0~232-14shorta,b,c;inte,f,g;long_qs,num;unsignedd,e,f;⑴整型變量說(shuō)明說(shuō)明詞及性質(zhì)如下:說(shuō)明詞含義范圍Byteint45⑵字符型變量的說(shuō)明說(shuō)明符所占字節(jié)數(shù) 范圍char 1 -128~+127unsignedchar 1 0~255⑶浮點(diǎn)型變量的說(shuō)明說(shuō)明符所占字節(jié)數(shù) 范圍精度f(wàn)loat 4 10-38~10+38 7位double 8 10-308~10+308 16位浮點(diǎn)型變量包含精度和范圍兩個(gè)概念。⑴超過(guò)精度位數(shù)后的位數(shù)值不確定。floata;1111;⑵超過(guò)范圍溢出(Overflow)。超出精度部分,不準(zhǔn)確。floata,b,c;a=1.234e+20;b=2.345e+21;c=a*b;超出1038,溢出。當(dāng)運(yùn)算結(jié)果大于10+38稱為上溢,系統(tǒng)出錯(cuò)。當(dāng)運(yùn)算結(jié)果小于10-38稱為下溢,當(dāng)0處理。⑵字符型變量的說(shuō)明說(shuō)明符所占字462.4運(yùn)算符與表達(dá)式程序的核心是對(duì)數(shù)據(jù)按照算法進(jìn)行處理(運(yùn)算)。C語(yǔ)言提供了強(qiáng)大的數(shù)據(jù)運(yùn)算功能。數(shù)據(jù)通過(guò)運(yùn)算符連接的式子稱為表達(dá)式,表達(dá)式根據(jù)運(yùn)算關(guān)系對(duì)數(shù)據(jù)運(yùn)算,并得到一個(gè)值。⒈變量賦值(Assignment)運(yùn)算格式:V=expression;/*將expression的值賦給變量V*/inta=2;/*說(shuō)明賦值,編譯時(shí)賦值。*/intb;b=3+2;/*說(shuō)明后賦值,執(zhí)行時(shí)賦值。*/說(shuō)明:⑴=是賦值號(hào)(動(dòng)詞);⑵賦值運(yùn)算的左值只能是變量。a=a+2;iCount=iCount+10;a+2=12;/*Error!*/⑶賦值號(hào)兩邊類型應(yīng)該一致,如不一致,以變量類型轉(zhuǎn)換。inta=2.5;/*2a*/2.4運(yùn)算符與表達(dá)式程序的核心是對(duì)數(shù)據(jù)按照47⒉算術(shù)運(yùn)算(Arithmeticoperators)功能:完成各種類型數(shù)據(jù)的加、減、乘、除及求余數(shù)運(yùn)算。⑴雙目算術(shù)運(yùn)算(兩個(gè)運(yùn)算對(duì)象參加的運(yùn)算)運(yùn)算運(yùn)算規(guī)則示例+加2+3-減a-b*乘2*(-a)/除12/3.0%求余數(shù)15%4只能對(duì)整型或字符型數(shù)據(jù)運(yùn)算。余數(shù)符號(hào)與被除數(shù)相同。注意:乘號(hào)不能省略!-12%5-2-12%(-5)1%2⒉算術(shù)運(yùn)算(Arithmeticoperators)功能48⑵自加、自減運(yùn)算(單目運(yùn)算)運(yùn)算符前置后置運(yùn)算關(guān)系++++aa++a=a+1
----aa--a=a-1說(shuō)明:①運(yùn)算對(duì)象只能是一個(gè)變量。②前置是先運(yùn)算,后引用,而后置則是先引用,后運(yùn)算。2++;/*Error!*/inti,x;i=5;x=i++;/*x=i;i=i+1;*/i=5;x=++i;/*i=i+1;x=i;*/#include<stdio.h>voidmain(void){inta=2,b=3,c;c=a+++b;printf(“%d”,c);}CHAP2EX1C語(yǔ)言盡可能多的從左向右結(jié)合符號(hào)形成運(yùn)算符。⑵自加、自減運(yùn)算(單目運(yùn)算)運(yùn)算符前置后置運(yùn)算關(guān)系++++a49⑶算術(shù)運(yùn)算賦值運(yùn)算符表達(dá)式示例運(yùn)算關(guān)系+=a+=3a=a+3-=b-=cb=b-c*=a*=2a=a*2/=s/=ts=s/t%=a%=5a=a%5說(shuō)明:①運(yùn)算對(duì)象的左值只能是一個(gè)變量。(a+2)+=5;/*Error!*/②%=運(yùn)算的對(duì)象,必須是整型或字符型。例:a=12;a+=a-=a*a//等價(jià)于a=a+(a=a-(a*a))A=-264③賦值表達(dá)式的值與變量值相等,且可嵌套。
⑶算術(shù)運(yùn)算賦值運(yùn)算符表達(dá)式示例運(yùn)算關(guān)系+=a+=3a=a+50⑷算術(shù)運(yùn)算的說(shuō)明①運(yùn)算中的類型問(wèn)題運(yùn)算對(duì)象的類型相同,運(yùn)算結(jié)果取運(yùn)算對(duì)象相同的類型。inta;floatb;b=2/3;/*0b0.0*/a=5.0/2.0;a2*/運(yùn)算對(duì)象的類型不同,先將低等類型轉(zhuǎn)換為高等類型后再進(jìn)行運(yùn)算,運(yùn)算結(jié)果取高等類型。等級(jí)原則如下:charintlongdoublefloat2*+doubledoubledouble運(yùn)算時(shí)可以實(shí)行類型的強(qiáng)制轉(zhuǎn)換,格式如下:(type)expression只對(duì)當(dāng)前表達(dá)式起作用。(float)a/(int)’c’+(float)(a+10)2+int(fSum)⑷算術(shù)運(yùn)算的說(shuō)明①運(yùn)算中的類型問(wèn)題運(yùn)算對(duì)象的類型相同,運(yùn)算結(jié)51類型轉(zhuǎn)換舉例inta;floatb;intc;c=a*1.0+b*5+(float)’A’;idfic
d
d
ff
d
dcint注意:賦值運(yùn)算右值表達(dá)式的類型轉(zhuǎn)換以左值變量的類型為準(zhǔn)。類型轉(zhuǎn)換舉例inta;idficddffddc52②運(yùn)算的優(yōu)先級(jí)表達(dá)式的運(yùn)算是分步驟進(jìn)行的。因此當(dāng)一個(gè)表達(dá)式中出現(xiàn)多種運(yùn)算時(shí),存在優(yōu)先級(jí)的問(wèn)題。算術(shù)運(yùn)算的優(yōu)先級(jí)如下:++、--、(type)單目運(yùn)算*、/、%+、-=、op=相同優(yōu)先級(jí),結(jié)合順序從左到右!3*4+6/a-6%3;相同優(yōu)先級(jí),結(jié)合順序從右到左!inta,b=2,c=2;a=b*=c+=2;可以用()調(diào)整優(yōu)先級(jí)。c=c+2;b=b*c;a=b;②運(yùn)算的優(yōu)先級(jí)表達(dá)式的運(yùn)算是分步驟進(jìn)行的。因此53⒊條件運(yùn)算運(yùn)算格式:e1?e2:e3e1、e2、e3為表達(dá)式,當(dāng)e1非0時(shí),運(yùn)算結(jié)果取e2的值;當(dāng)e1為0時(shí),取e3的值。inta=2,b=3,c=-1,d;d=a?b:c;/*d為3*/a=0;d=a?b:c;/*d為-1*/⒋逗號(hào)表達(dá)式格式:e1,e2,e3,…,en用,分隔的表達(dá)式,計(jì)算順序從左到右,表達(dá)式取值為en;⒌sizeof運(yùn)算形式:sizeof數(shù)據(jù)對(duì)象; sizeof(類型說(shuō)明符);inta,b,c;b=sizeofa;/*b的值為2*/c=sizeof(float);/*c的值為4*/x=(a=5,a+6)*10;⒊條件運(yùn)算運(yùn)算格式:e1、e2、e3為表達(dá)式,54C語(yǔ)言常用數(shù)學(xué)函數(shù)為方便用戶使用,C語(yǔ)言系統(tǒng)定義了大量函數(shù)。數(shù)學(xué)函數(shù)主要目的是求解常用數(shù)學(xué)函數(shù),如sinX等。數(shù)學(xué)函數(shù)的原型定義在系統(tǒng)的頭文件中。在使用此類函數(shù)時(shí),應(yīng)在程序的開(kāi)始出加如下語(yǔ)句:#include<math.h>使用方法:作為一個(gè)運(yùn)算項(xiàng)參加表達(dá)式運(yùn)算。函數(shù)的參數(shù)(自變量)、函數(shù)的值都是double類型。y=sqrt(sin(x)*sin(x)+cos(x)*cos(x))log10xlog10(x)lnxlog(x)sqrt(x)xypow(x,y)|x|fabs(x)tanXtan(x)cosXcos(x)sinXsin(x)數(shù)學(xué)含義函數(shù)C語(yǔ)言常用數(shù)學(xué)函數(shù)為方便用戶使用,C語(yǔ)552.5數(shù)據(jù)的輸入輸出Input&Output
C語(yǔ)言沒(méi)有輸入輸出語(yǔ)句,輸入輸出是通過(guò)系統(tǒng)定義的標(biāo)準(zhǔn)函數(shù)來(lái)實(shí)現(xiàn)的。I/O函數(shù)的原型定義在頭文件中,在引用I/O函數(shù)時(shí),應(yīng)應(yīng)在程序開(kāi)始處加預(yù)處理語(yǔ)句包含頭文件。#include<stdio.h>⒈輸入輸出的概念輸入輸出指的是內(nèi)存變量或程序和外部設(shè)備間的數(shù)據(jù)交換。內(nèi)存外設(shè)輸入輸出輸入輸出函數(shù)要描述:⑴輸入輸出的量;⑵輸入輸出的格式;⑶輸入輸出的設(shè)備。2.5數(shù)據(jù)的輸入輸出Input&Output562.字符輸入輸出函數(shù)(1)輸入:getchar()
從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀入一個(gè)字符。
調(diào)用格式:c=getchar();
c—為一字符型或整型變量。例:#include<stdio.h>main(){inta1,a2;charc1,c2;a1=97;a2=65;c1=‘a(chǎn)’;c2=‘A’;putchar(a1);putchar(a2);putchar(c1);putchar(c2);putchar(‘\n’);a1=getchar();c1=getchar();putchar(a1);putchar(‘\t’);putchar(c1);}(2)輸出:putchar()
向標(biāo)準(zhǔn)輸出設(shè)備(顯示器)輸出一個(gè)字符。
調(diào)用格式:putchar(c);
c—為一字符型或整型變量和常量。如:putchar(‘A’);putchar(65);均輸出字母A。
程序運(yùn)行結(jié)果:aAaA輸入:97972.字符輸入輸出函數(shù)(1)輸入:getchar()從標(biāo)57⒊格式輸入輸出函數(shù)⑴輸出函數(shù)printf()格式: printf(“輸出格式字符串”,輸出項(xiàng)列表);格式描述。用,分隔的常量、變量、表達(dá)式表。輸出格式字符串可包含以下內(nèi)容:①普通字符,如:a=②轉(zhuǎn)義字符,如:\n對(duì)于普通字符和轉(zhuǎn)義字符在相應(yīng)位置原樣輸出,其中%用%%。printf(“\nabcd%%”);輸出結(jié)果:abcd%③格式說(shuō)明符組,說(shuō)明輸出項(xiàng)列表中的各項(xiàng)的輸出格式。格式說(shuō)名符組用%為開(kāi)始標(biāo)志。內(nèi)容包含對(duì)一項(xiàng)輸出對(duì)象的格式說(shuō)明。%f⒊格式輸入輸出函數(shù)⑴輸出函數(shù)printf()格式:格式描述58格式說(shuō)明類型表格式說(shuō)明符說(shuō)明量的類型d、o、x、u整型c字符型s字符串f、e、g浮點(diǎn)型格式說(shuō)明符應(yīng)和輸出的列表項(xiàng)對(duì)應(yīng),產(chǎn)生相應(yīng)的輸出。其中輸出的表項(xiàng)應(yīng)與格式說(shuō)明符類型一致。printf(“a=%5d\nb=%f”,
2+3,
);輸出結(jié)果:a=5
格式說(shuō)明類型表格式說(shuō)明符說(shuō)明量的類型d、o、x、u整59格式說(shuō)明串的一般形式和意義%-
l
格式類型字符(一個(gè)字母)格式說(shuō)明標(biāo)志對(duì)齊方式:缺省為右對(duì)齊,-為左對(duì)齊。寬度.精度(位數(shù)),寬度:輸出總列數(shù),精度:小數(shù)位數(shù)(或字符位數(shù))。整型長(zhǎng)度,缺省短整型,l長(zhǎng)整型。#include<stdio.h>voidmain(void){floata;a=1.232326;printf(“a=”,a);}CHAP2EX2格式說(shuō)明串的一般形式和意義%-l格式類型60各種類型數(shù)據(jù)輸出舉例⑴字符型輸出charch=’b’;printf(“%5c,
%-5c,
%c”,ch,ch-32,’s’+1);輸出結(jié)果:b,B,t⑵字符串輸出#include<stdio.h>voidmain(void){charchString[]="China";printf("%s,%6s,%-6s\n",chString,chString,chString);printf(“%4s","Hefei",
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 主播上崗考試題及答案
- 靜物寫生素描考試題及答案
- 宣傳接待崗面試題及答案
- 廣東省廣州市番禺育才2022-2023學(xué)年八年級(jí)下學(xué)期期中考試物理試題(含答案)
- 抗體檢驗(yàn)知識(shí)培訓(xùn)課件
- 創(chuàng)新型醫(yī)療器械研發(fā)協(xié)議
- 關(guān)于職場(chǎng)軟技能培養(yǎng)的建議與反思
- 小學(xué)生科學(xué)知識(shí)讀物征文
- 員工技能培訓(xùn)安排表
- 全球教育資源分布及質(zhì)量評(píng)估表
- 信息系統(tǒng)應(yīng)急響應(yīng)計(jì)劃制定指南考核試卷
- 酒店消防安全知識(shí)培訓(xùn)試題及答案
- 2024解析:第四章光現(xiàn)象-講核心(解析版)
- 2024解析:第十九章生活用電-講核心(解析版)
- BRC+Food+Safety+Standard+2024年培訓(xùn)課件全攻略
- 《公路橋梁掛籃設(shè)計(jì)與施工技術(shù)指南》
- 建筑工地安全風(fēng)險(xiǎn)分級(jí)管控方案
- 供熱管網(wǎng)維保服務(wù)方案
- 現(xiàn)代家政導(dǎo)論-課件 4.1.1認(rèn)識(shí)家政教育及意義
- 浙江省【高等職業(yè)技術(shù)教育招生考試】-商業(yè)類(電子商務(wù))-職業(yè)技能理論知識(shí)(一)(答案版)
- 人教版小學(xué)六年級(jí)下冊(cè)音樂(lè)教案全冊(cè)
評(píng)論
0/150
提交評(píng)論