c語(yǔ)言順序結(jié)構(gòu)程序設(shè)計(jì)_第1頁(yè)
c語(yǔ)言順序結(jié)構(gòu)程序設(shè)計(jì)_第2頁(yè)
c語(yǔ)言順序結(jié)構(gòu)程序設(shè)計(jì)_第3頁(yè)
c語(yǔ)言順序結(jié)構(gòu)程序設(shè)計(jì)_第4頁(yè)
c語(yǔ)言順序結(jié)構(gòu)程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩93頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1順序結(jié)構(gòu)程序設(shè)計(jì)

北京交通大學(xué)計(jì)算機(jī)學(xué)院計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程組2教學(xué)目標(biāo)使用c語(yǔ)言編寫出簡(jiǎn)單的順序結(jié)構(gòu)程序

了解結(jié)構(gòu)化程序的基本結(jié)構(gòu)

掌握基本的數(shù)據(jù)類型會(huì)定義變量并了解變量在內(nèi)存的存放及其作用會(huì)使用算術(shù)和賦值運(yùn)算符進(jìn)行計(jì)算能使用輸入輸出函數(shù)輸入輸出數(shù)據(jù)3數(shù)據(jù)的存儲(chǔ)和基本數(shù)據(jù)類型及數(shù)據(jù)類型轉(zhuǎn)換常量和變量

數(shù)據(jù)的輸入和輸出

表達(dá)式(算術(shù)和賦值表達(dá)式)常用數(shù)學(xué)函數(shù)教學(xué)內(nèi)容4復(fù)習(xí):c程序的基本結(jié)構(gòu)

程序的基本結(jié)構(gòu)程序說(shuō)明部分/*程序名:2_3.cpp*//*功能:計(jì)算兩個(gè)整數(shù)和并輸出結(jié)果*/預(yù)編譯命令#include<stdio.h>主程序區(qū)voidmain(){}函數(shù)定義區(qū)intadd(intx,inty){}由一個(gè)或若干個(gè)函數(shù)組成,其中必須有且只能有一個(gè)名字為main函數(shù)程序中的每條語(yǔ)句以分號(hào)(;)結(jié)尾程序中可以有不執(zhí)行的語(yǔ)句,這些語(yǔ)句為注釋語(yǔ)句,用/**/注釋5常見(jiàn)的幾種main函數(shù)寫法voidmain(){}intmain(){}return0;6計(jì)算機(jī)語(yǔ)言中數(shù)據(jù)的描述數(shù)據(jù)描述需要解決的兩個(gè)問(wèn)題問(wèn)題之一:有哪幾種數(shù)據(jù)?例:s=3.14159*r*r3.14159常量r變量在程序運(yùn)行中其值不可以改變,一般用于構(gòu)成表達(dá)式;在程序運(yùn)行中其存儲(chǔ)的值可以改變。一般用于描述待處理的數(shù)據(jù),中間結(jié)果和最后結(jié)果數(shù)據(jù)類型7問(wèn)題之二:如何規(guī)定數(shù)據(jù)的存儲(chǔ)空間和操作規(guī)則?為數(shù)據(jù)指明所屬數(shù)據(jù)類型常量通過(guò)書寫方式來(lái)指明其數(shù)據(jù)類型變量通過(guò)關(guān)鍵字來(lái)指明其數(shù)據(jù)類型數(shù)據(jù)類型81.基本數(shù)據(jù)類型

int

整型float

單精度浮點(diǎn)型char

字符型double

雙精度浮點(diǎn)型shortint(或short)短整型longint(或long)長(zhǎng)整型unsignedint無(wú)符號(hào)整型unsignedshort無(wú)符號(hào)短整型unsignedlong無(wú)符號(hào)長(zhǎng)整型數(shù)據(jù)類型9(1)整型

數(shù)據(jù)類型

數(shù)據(jù)類型最小取值范圍(vc++中)數(shù)據(jù)類型所占位數(shù)最小取值范圍int32(4字節(jié))-21億~21億short16-32768~32767long32-21億~21億unsignedint320~42億unsignedshort160~65535unsignedlong320~42億10數(shù)據(jù)類型所占字節(jié)跟語(yǔ)言和編譯系統(tǒng)有關(guān)在c語(yǔ)言中可以通過(guò)sizeof()函數(shù)得到該信息例:獲得int類型所占字節(jié)#include<stdio.h>voidmain(){ printf("%d\n",sizeof(int));}注意:該段程序在不同的編譯環(huán)境運(yùn)行結(jié)果不一致,在vc++環(huán)境為411以u(píng)nsignedshort類型為例unsignedShort類型為2字節(jié)(16位)最大取值的二進(jìn)制表示為:1111111111111111最小取值的二進(jìn)制表示為:0000000000000000655350取值范圍確定(由字節(jié)數(shù)決定)12以short類型為例,占兩個(gè)字節(jié)

(16位,最高位符號(hào)位)10000001100000010000000110000001符號(hào)位1:負(fù)數(shù)0:正數(shù)13數(shù)值的表示方法-原碼反碼補(bǔ)碼正數(shù)的原碼、反碼和補(bǔ)碼相同1

的補(bǔ)碼0000000000000001……32767

的補(bǔ)碼0111111111111111(215-1,2個(gè)字節(jié)的存儲(chǔ)單元能表示的最大正數(shù))負(fù)數(shù)的原碼、反碼和補(bǔ)碼不同

-1原碼1000000000000001反碼1111111111111110原碼取反補(bǔ)碼1111111111111111

反碼+114原碼反碼補(bǔ)碼32767補(bǔ)碼0111111111111111-32767原碼1111111111111111反碼1000000000000000原碼取反補(bǔ)碼1000000000000001

反碼+1-32768=-32767-1(兩者補(bǔ)碼相加)補(bǔ)碼1000000000000000(2個(gè)字節(jié)的存儲(chǔ)單元能表示的最小負(fù)數(shù))15-32768-10132767

32767

0111111111111111

……

1

0000000000000001

0

0000000000000000

-1

1111111111111111

-2

1111111111111110

……

-32767

1000000000000001

-32768

100000000000000032767

+1=32768?100000000000000=-32768-32768

-1=-32769?0111111111111111=3276716(2)浮點(diǎn)類型

float型數(shù)據(jù)在內(nèi)存中占用4個(gè)字節(jié)(32位),提供7位有效數(shù)字,可能的取值范圍在10-38~1038;double型數(shù)據(jù)占8個(gè)字節(jié),提供15~16位有效數(shù)據(jù),可能的取值約10-308~10308。數(shù)據(jù)類型17浮點(diǎn)型數(shù)據(jù)的存儲(chǔ)符合IEEE浮點(diǎn)數(shù)格式,如float型數(shù)據(jù),8位用于指數(shù),24位用于基數(shù)。例:實(shí)數(shù)123.4,二進(jìn)制形式1111011.0110011表示成0.11110110110011*27按float型存放:0.11110110110011用3字節(jié)7(二進(jìn)制形式)用1字節(jié)考慮按double類型存放的情況?并不是所有的實(shí)數(shù)都能在計(jì)算機(jī)中精確表示18(3)字符型

字符型數(shù)據(jù)存儲(chǔ)時(shí)占用8位,它實(shí)際存儲(chǔ)的是字符對(duì)應(yīng)的ASCII碼(AmericalStandardCodeforInformationInterchange美國(guó)標(biāo)準(zhǔn)信息交換碼)。如一個(gè)char型數(shù)據(jù)’A’,其ASCII碼為65,故實(shí)際存儲(chǔ)的內(nèi)容是65,二進(jìn)制形式為01000001。字符型數(shù)據(jù)與整型數(shù)據(jù)可以通用,字符型數(shù)據(jù)所有的性質(zhì)與一字節(jié)整型量相同。數(shù)據(jù)類型19例一intmy;my=‘a(chǎn)’解釋:my中的值是97例二charch;ch=66解釋:ch中的值是‘B’字符型數(shù)據(jù)與整型數(shù)據(jù)通用示例主要應(yīng)用是char型數(shù)據(jù)做加減運(yùn)算,作用是由當(dāng)前字母獲得其他字母例如:charch=‘a(chǎn)’;ch=ch-32;

解釋:經(jīng)過(guò)上面兩步操作,ch中得到的是‘A’202.變量變量是指程序運(yùn)行過(guò)程中可以發(fā)生變化的量C中的變量必須先定義后使用定義語(yǔ)法:數(shù)據(jù)類型

變量名例:inta;定義時(shí)注意兩點(diǎn)用關(guān)鍵字指明數(shù)據(jù)類型為變量起名起名規(guī)則為:由字母數(shù)字下劃線組成,以字母或下劃線開(kāi)頭,不能使用c中的關(guān)鍵字,比如int等。變量應(yīng)該先賦值,后引用數(shù)據(jù)類型21(1)變量定義變量定義語(yǔ)法inta,b,c;/*指定a,b,c為整型變量*/floatwidth;/*指定width為單精度實(shí)型量*/doublez;/*指定z為雙精度實(shí)型變量*/charc1,c2;/*指定c1,c2為字符型變量*/數(shù)據(jù)類型22變量的定義與使用變量必須先定義,后使用。#include<stdio.h>intmain(void){

int

celsius,fahr;fahr=100;celsius=5*(fahr-32)/9;printf("fahr=%d,celsius=%d\n",fahr,celsius);

return0;}一個(gè)變量名只能定義一次變量一般都定義在程序的頭上不能定義在程序的中間或后面應(yīng)該先賦值,后引用23(2)變量定義的含義

定義變量,編譯系統(tǒng)會(huì)在編譯時(shí)按照數(shù)據(jù)類型為其分配相應(yīng)的內(nèi)存空間,并將該內(nèi)存空間命名為變量名在程序中操作變量名即為操作該存儲(chǔ)空間比如:inti1,i2;i1=4;

i2=5;2.2數(shù)據(jù)類型i2i14524(3)變量的賦值方法變量賦初值:在定義變量時(shí)對(duì)它賦值inta=5,b=3;賦值表達(dá)式inta,b;a=5;b=3;輸入inta,b;scanf("%d%d",&a,&b);25(4)變量的作用存放數(shù)據(jù)待處理的中間數(shù)據(jù)最后結(jié)果263.常量通過(guò)書寫方式表示數(shù)據(jù)的類型27(1)整型常量

整型常量即整數(shù)?;菊统A靠梢允褂萌N形式表示:十進(jìn)制數(shù)、八進(jìn)制數(shù)、十六進(jìn)制數(shù)。每種進(jìn)制形式的數(shù)據(jù)都有特殊標(biāo)記。十進(jìn)制數(shù)。如128、-60、0。八進(jìn)制數(shù)。以0開(kāi)始的數(shù)據(jù)是八進(jìn)制數(shù)。如0123代表八進(jìn)制數(shù)123,即十進(jìn)制數(shù)83。十六進(jìn)制數(shù)。以0x開(kāi)始的數(shù)是十六進(jìn)制數(shù)。如-0x128代表十六進(jìn)制數(shù)-128,即十進(jìn)制數(shù)-296。數(shù)據(jù)類型28整型常量的寫法舉例123=01111011(B)二進(jìn)制

=173(O)八進(jìn)制

=7B(X)十六進(jìn)制12301730x7b160200x10100120XA100100x10不能超出整型數(shù)據(jù)的取值范圍比長(zhǎng)整型數(shù)還要大的數(shù)只能用實(shí)數(shù)來(lái)表示29整數(shù)的類型其他整型數(shù)的表示加字母后綴123L(0173L)

long123U

unsigned123LU

unsigned

long30(2)實(shí)型常量

實(shí)型常量又稱實(shí)數(shù)或浮點(diǎn)數(shù)。實(shí)數(shù)有兩種表示形式:十進(jìn)制形式。包括整數(shù)部分、小數(shù)點(diǎn)、小數(shù)部分,當(dāng)整數(shù)或小數(shù)部分為0時(shí)可以省略,但小數(shù)點(diǎn)不能省略。如128.0、.128、128.5、128.、0.0等都是十進(jìn)制數(shù)形式。指數(shù)形式。包括尾數(shù)、字符e(或E)、指數(shù)。它適用于表示較大或較小的數(shù)。e之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù)。如128e2或128E2都代表128×102。31默認(rèn)情況下所有實(shí)型常量編譯器都會(huì)處理為double型,如果實(shí)型常量后綴加上“f”或“F”,才會(huì)被當(dāng)成float型。

例:floata;a=3.5;編譯時(shí)會(huì)出現(xiàn)warning,原因是3.5系統(tǒng)解釋為double,而a是float,所以警告你將double賦給float會(huì)丟失數(shù)據(jù)消除warning方式:(1)floata;a=3.5f;(2)doublea;a=3.5;32(3)字符常量

字符常量是用單引號(hào)括起來(lái)的一個(gè)字符,如‘A’、‘a(chǎn)’、‘?’、‘0’等。字符常量的值的是機(jī)器字符集中字符的數(shù)字值,如字符常量'0',其ASCII為48,所以存儲(chǔ)的實(shí)際內(nèi)容為48。

33轉(zhuǎn)義字符反斜杠后跟一個(gè)字符或數(shù)字字符常量,代表一個(gè)字符

'\n''\101''\x41'

'A'所有字符都可以用轉(zhuǎn)義字符表示‘\101’或’\x41’都表示字母A34例:轉(zhuǎn)義字符‘’輸出#include<stdio.h>voidmain(){ printf("\’hello\’");}運(yùn)行結(jié)果:’hello’35/*功能:使用轉(zhuǎn)義字符控制數(shù)據(jù)的輸出*/#include<stdio.h>voidmain(){charc1='A',c2='N';printf("a\tbc\tABC\n");printf("xyz\t%c%c",c1,c2);}運(yùn)行結(jié)果:

abcABCxyzAN36(4)字符串常量

一對(duì)雙引號(hào)括起來(lái)的字符序列。如:

"Howdoyoudo."例:

voidmain(){printf("Thisismyfirstprogram");printf("inC/C++.\n");}輸出結(jié)果為

ThisismyfirstprograminC/C++.C中無(wú)字符串變量37(5)符號(hào)常量用一個(gè)標(biāo)識(shí)符代表一個(gè)常量,稱符號(hào)常量。定義語(yǔ)法:

#define標(biāo)識(shí)符

常量例:#definePI

3.14159

注意事項(xiàng):該語(yǔ)句無(wú)分號(hào)“;”一般符號(hào)常量用大寫,以跟普通變量區(qū)分符號(hào)常量是常量不能對(duì)其賦值38/*程序名:2_5.cpp*//*功能:符號(hào)常量的使用,計(jì)算圓的周長(zhǎng)和面積*/#include<stdio.h>#definePI

3.14159/*定義PI代表串3.14159*/voidmain(){floatr,s,area;scanf("%f",&r);s=2*PI*r;area=PI*r*r;printf("s=%7.2f,area=%7.2f",s,area);}使用符號(hào)常量的益處:(1)程序書寫簡(jiǎn)便(2)程序修改簡(jiǎn)便39符號(hào)常量的優(yōu)點(diǎn)#include<stdio.h>intmain(void){doubler,

s,v;

scanf("%lf",

&r);

s=4.0*r*r*3.14

;

v=4.0/3.0*r*r*r*3.14

;......return0;}#include<stdio.h>#definePI

3.14intmain(void){doubler,

s,v;

scanf("%lf",

&r);

s=4.0*PI*r*r;

v=4.0/3.0*PI*r*r*r;......return0;}3.141593.141593.1415940符號(hào)常量的使用場(chǎng)合常量非常復(fù)雜,而且在程序中多次使用;常量在程序中多次使用,而且后續(xù)程序維護(hù)有可能需要改變?cè)摮A康闹担?1數(shù)據(jù)類型\常量\變量小節(jié)程序中的數(shù)據(jù)按照運(yùn)行中可變不可變分為常量和變量?jī)深悢?shù)據(jù)通過(guò)數(shù)據(jù)類型來(lái)確定存儲(chǔ)空間大小和對(duì)其的操作規(guī)則變量通過(guò)關(guān)鍵字定義數(shù)據(jù)類型常量通過(guò)書寫格式指名數(shù)據(jù)類型424.格式輸出函數(shù)printf

printf函數(shù)一般格式:

printf(格式控制,輸出表列);43格式控制是由雙引號(hào)括起來(lái)的字符串,它包含三種信息:·格式說(shuō)明:由“%”和格式字符組成,如%d,%f等。它的作用是將輸出的數(shù)據(jù)按照指定的格式輸出?!て胀ㄗ址盒枰瓨虞敵龅淖址??!まD(zhuǎn)義字符:反斜杠后跟一個(gè)字符或數(shù)字,用于控制輸出。

普通字符轉(zhuǎn)義字符

printf("sum=%d\n",sum);

格式說(shuō)明44輸出表列是一些要輸出的數(shù)據(jù),多個(gè)輸出數(shù)據(jù)用逗號(hào)隔開(kāi)輸出數(shù)據(jù)可以是常量、變量或表達(dá)式。輸出數(shù)據(jù)的個(gè)數(shù)應(yīng)該跟格式控制中的格式說(shuō)明符個(gè)數(shù)保持一致

輸出數(shù)據(jù)

printf("sum=%d\n",sum);

45整型數(shù)據(jù)的輸出整型格式控制符十進(jìn)制八進(jìn)制十六進(jìn)制int%d%o%xlong%ld%lo%lxunsigned%u%o%xunsignedlong%lu%lo%lx%nd:表示數(shù)據(jù)輸出的最小寬度為n。46例輸出整型數(shù)據(jù)#include<stdio.h>intmain(void){printf("%d,%o,%x\n",10,10,10);printf("%d,%d,%d\n",10,010,0x10);printf("%d,%x\n",012,012);

return0;}

0……0101010,12,a10,8,1610,a47例如:inta=-1,b=25,c=125;longx=356142;printf("%d,%5d\n",a,b);printf("%5d,%2d\n",c,c);printf("%ld",x);

輸出結(jié)果為:-1,25125,125356142關(guān)于%nd(1)如果輸出的數(shù)位數(shù)比n小,則左側(cè)加空格;(2)如果輸出的數(shù)位數(shù)比n大或相等,則原樣輸出;(3)負(fù)號(hào)占一位48實(shí)型數(shù)據(jù)的輸出float和double使用相同的格式控制說(shuō)明%f以小數(shù)形式輸出浮點(diǎn)數(shù),保留6位小數(shù)%e以指數(shù)形式輸出,形式為:尾數(shù)e指數(shù)其中指數(shù)為帶符號(hào)的3位整數(shù),尾數(shù)整數(shù)部分1位,小數(shù)位數(shù)6位49%n.mf例:floatx=3.5;printf(“%3.1f”,x);輸出結(jié)果:3.5說(shuō)明:(1)如果輸出的數(shù)保證了小數(shù)位數(shù)后,總位數(shù)比n小,則左側(cè)加空格;

例如:

%4.1f(2)如果輸出的數(shù)保證了小數(shù)位數(shù)后位數(shù)比n大或相等,則整數(shù)部分

原樣輸出;例如:12.56(3)小數(shù)部分保證m位,不夠右補(bǔ)0,多的四舍五入;

例如:12.56(4)小數(shù)點(diǎn)占一位(5)n可省略,表示只限制小數(shù)位。例如;%.1f50實(shí)型數(shù)據(jù)輸出示例#include<stdio.h>intmain(void) {doubled=3.1415926;printf("%f,%e\n",d,d);printf("%5.3f,%5.2f,%.2f\n",d,d,d);return0;}

3.141593,3.141593e+0003.142,3.14,3.14一共5位,小數(shù)3位,小數(shù)點(diǎn)一位51字符型數(shù)據(jù)輸出printf()格式控制符%ccharch=‘A’;printf("%c",ch);putchar()charch=‘B’;putchar(ch);輸出一個(gè)字符例:回頭讀控制格式符的選擇52(1)根據(jù)數(shù)據(jù)的數(shù)據(jù)類型選擇相應(yīng)的控制格式,否則不能正確顯示數(shù)據(jù);(2)有一特例:整型和字符類型的數(shù),輸出時(shí)可以選用對(duì)方的控制格式,即%d和%c可以同時(shí)使用于這兩種類型。53例輸出數(shù)據(jù)'b'的ASCII碼98#include<stdio.h>intmain(void){charch='b';printf("%c,%d\n",'b','b');printf("%c,%d\n",98,98);printf("%c,%d\n",97,'b'-1);printf("%c,%d\n",ch-'a'+'A',ch-'a'+'A');return0;}01100010'b'98'b'98b,98b,98a,97B,66545.格式輸入函數(shù)scanf

scanf函數(shù)一般格式:

scanf(格式控制,地址表列);scanf函數(shù)的功能是按照指定的格式輸入數(shù)據(jù),可以輸入任意類型的多個(gè)數(shù)據(jù)。55格式控制與printf函數(shù)含義相同,它由若干個(gè)格式說(shuō)明構(gòu)成,其作用是控制轉(zhuǎn)換輸入數(shù)據(jù)的類型。地址表列由若干個(gè)地址構(gòu)成,它們可以是變量的地址,也可以是字符串的首地址。(由三部分構(gòu)成,請(qǐng)回顧)56變量取地址符號(hào)為“&”例:scanf(“%d,%d”,&i1,&i2);比如要輸入23和45分別賦值給i1,i2,輸入格式如下:23,45scanf(“i1=%d,i2=%d”,&i1,&i2);考慮:1、寫法正確嗎?2、如果正確,輸入時(shí)應(yīng)該如何輸入?57格式控制字符串中的普通字符:原樣輸入例如:scanf("%lf",&x);輸入:9.5scanf("x=%lf",&x);輸入:x=9.5除了%格式符和必要的分隔符(如逗號(hào))外,盡量不要出現(xiàn)普通字符

printf(”enterx:”);scanf("%lf",&x);58scanf可以同時(shí)輸入若干個(gè)數(shù)據(jù),輸入數(shù)據(jù)的類型、個(gè)數(shù)和位置要與格式控制說(shuō)明一一對(duì)應(yīng)scanf("%d%d%d",&a,&b,&c);用隱含的分隔符(空格或換行符)來(lái)輸入數(shù)據(jù)。例如:輸入數(shù)據(jù)

345

或輸入

345

則a=3,b=4,c=559整型數(shù)據(jù)的輸入整型格式控制符十進(jìn)制八進(jìn)制十六進(jìn)制int%d%o%xlong%ld%lo%lxunsigned%u%o%xunsignedlong%lu%lo%lx60例整型數(shù)據(jù)的輸入#include<stdio.h>intmain(void){

inta,b;

printf("inputa,b:");scanf("%o%d",&a,&b);printf("%d%5d\n",a,b);printf("%x,%d\n",a,b);return0;}

inputa,b:17171517f,17%x%d61實(shí)型數(shù)據(jù)的輸入float:%f或%e以小數(shù)或指數(shù)形式輸入一個(gè)單精度浮點(diǎn)數(shù)double:%lf或%le以小數(shù)或指數(shù)形式輸入一個(gè)雙精度浮點(diǎn)數(shù)62實(shí)型數(shù)據(jù)輸入輸出示例假定float的精度為7位,double的精度為16位

#include<stdio.h>intmain(void)

{

floatf;

doubled;printf("inputf,d:");scanf("%f%lf",&f,&d);printf("f=%f\nd=%f\n",f,d);d=1234567890123.12;printf("d=%f\n",d);return0;}inputf,d:1234567890123.1234561234567890123.123456f=1234567954432.000000d=1234567890123.123540d=1234567890123.12012063字符型數(shù)據(jù)輸入scanf()%ccharch;scanf("%c",&ch);getchar()charch;ch=getchar();輸入一個(gè)字符注意:輸入字符時(shí),只能用%c,不能與%d互換64例1輸入輸出字符示例(使用函數(shù))#include<stdio.h>intmain(void){charch1,ch2;ch1=getchar();ch2=getchar();putchar(ch1);putchar('#');putchar(ch2);return0;}AbA#b65例2輸入輸出字符示例#include<stdio.h>intmain(void){charch1,ch2,ch3;scanf("%c%c%c",&ch1,&ch2,&ch3);printf("%c%c%c%c%c",ch1,'#',ch2,'#',ch3);return0;}AbCA#b#CAbCA##b注意空格也為字符輸入字符如果無(wú)顯式的分隔符,必須連著輸入字符,不能用空格或回車分開(kāi)輸入66#include<stdio.h>intmain(){charch;ch='b';printf("%c,%d\n",ch,ch);return0;}01100010'b'9814262'b'9801420x62printf'b'%cputchar98%d142%o62%xscanf'b'%cgetchar98%d142%o62%xscanf("%c",&ch);例3:字符和整型的通用例67數(shù)據(jù)輸入輸出小節(jié)printf函數(shù)一般格式:

printf(格式控制,輸出表列);scanf函數(shù)一般格式:

scanf(格式控制,地址表列);格式控制是由雙引號(hào)括起來(lái)的字符串,它包含三種信息:·格式說(shuō)明:由“%”和格式字符組成,如%d,%f等。它的作用是將輸出的數(shù)據(jù)按照指定的格式輸出?!て胀ㄗ址盒枰瓨虞敵龅淖址?。·轉(zhuǎn)義字符:用于控制輸出。輸出表列是一些要輸出的數(shù)據(jù),多個(gè)輸出數(shù)據(jù)用逗號(hào)隔開(kāi)地址表列由若干個(gè)地址構(gòu)成,它們可以是變量的地址,也可以是字符串的首地址。68表達(dá)式:由運(yùn)算符和運(yùn)算對(duì)象(操作數(shù))組成的有意義的運(yùn)算式子,它的值和類型由參加運(yùn)算的運(yùn)算符和運(yùn)算對(duì)象決定。運(yùn)算符:具有運(yùn)算功能的符號(hào)運(yùn)算對(duì)象:常量、變量和函數(shù)等表達(dá)式6算術(shù)表達(dá)式和賦值表達(dá)式696.1算術(shù)運(yùn)算符和算術(shù)表達(dá)式C/C++語(yǔ)言提供了如下算術(shù)運(yùn)算符:?jiǎn)文?-++--雙目+-*/%/(除法運(yùn)算符):兩個(gè)整數(shù)相除結(jié)果還是整數(shù)

%(求余運(yùn)算符):求余運(yùn)算符要求%兩側(cè)都是整型數(shù)據(jù)70自增和自減運(yùn)算符++運(yùn)算符的作用是使變量的值增1。--運(yùn)算符的作用是使變量的值減1。常見(jiàn)的用法有:++i,--i在使用i前,先使i的值加(減)1i++,i--在使用i后,先使i的值加(減)171例如:已知i=5j=i++;j=?i=?j=++i;j=?i=?566672讀程序#include<stdio.h>voidmain(){inti=8;printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);printf("%d",i);}明確一點(diǎn):執(zhí)行結(jié)果跟編譯環(huán)境有關(guān),原因是printf語(yǔ)句的執(zhí)行過(guò)程因環(huán)境而異Vc中運(yùn)行結(jié)果73回頭讀程序Vc環(huán)境中printf語(yǔ)句的執(zhí)行原則:在printf里的運(yùn)算順序是從右向左。然后等運(yùn)算完了再?gòu)淖笙蛴逸敵?/p>

74算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性單目+-++--雙目*/%雙目+-高低從右向左-5+3%2=(-5)+(3%2)=-43*5%3=(3*5)%3=0-i++-(i++)75(1)求三個(gè)數(shù)的算術(shù)平均值代數(shù)表達(dá)式:ave=(2)根據(jù)三角形三邊計(jì)算三角形面積代數(shù)表達(dá)式:(3)根據(jù)半徑計(jì)算圓的周長(zhǎng)代數(shù)表達(dá)式:s=2πr算術(shù)表達(dá)式算術(shù)表達(dá)式:ave=(a+b+c)/3算術(shù)表達(dá)式:sqrt(s*(s-a)*(s-b)*(s-c))算術(shù)表達(dá)式:s=2*3.14159*r766.2賦值運(yùn)算符和賦值表達(dá)式簡(jiǎn)單的賦值運(yùn)算符:把一個(gè)表達(dá)式的值賦給一個(gè)變量,格式為:變量名=表達(dá)式如:

i=1/*將數(shù)值1賦給變量i*/count=count+1/*計(jì)算count+1的值并賦給變量count*/sum=i1+i2/*計(jì)算i1+i2的值并賦給變量sum左邊必須是變量77復(fù)合的賦值運(yùn)算符:算術(shù)運(yùn)算符與“=”結(jié)合在一起,形成復(fù)合的賦值運(yùn)算符。復(fù)合算術(shù)賦值運(yùn)算符+=-=*=/=%=例如:

i+=2等價(jià)于i=i+2a%=3等價(jià)于a=a%3a*=b+5等價(jià)于a=a*(b+5)左邊必須是變量78賦值表達(dá)式賦值表達(dá)式的計(jì)算對(duì)賦值表達(dá)式求解的過(guò)程是:將賦值運(yùn)算符右側(cè)的表達(dá)式的值賦給左側(cè)的變量。賦值表達(dá)式的值就是被賦值的變量的值。例如”x=3”這個(gè)賦值表達(dá)式的值為3,而變量x的值也是3。賦值運(yùn)算符按照“自右向左”的結(jié)合順序

791、運(yùn)算符兩側(cè)的數(shù)據(jù)類型不同時(shí),它們會(huì)按照提升規(guī)則自動(dòng)進(jìn)行類型轉(zhuǎn)換7數(shù)據(jù)類型不同的數(shù)據(jù)混合運(yùn)算規(guī)則------類型轉(zhuǎn)換80轉(zhuǎn)換規(guī)則如下:水平方向:自動(dòng)垂直方向:低高

高double

float

unsignedlonglong

unsignedunsignedshort

低intchar,short81自動(dòng)類型轉(zhuǎn)換例'A'+12–10.05657766.95高double

float

unsignedlonglong

unsignedunsignedshort

低intchar,short82數(shù)據(jù)類型不同的數(shù)據(jù)混合運(yùn)算規(guī)則------類型轉(zhuǎn)換2、進(jìn)行賦值運(yùn)算時(shí)也發(fā)生類型轉(zhuǎn)換,右側(cè)的類型自動(dòng)轉(zhuǎn)換為左側(cè)的類型。例:intx;

floaty=5.4;

x=y;結(jié)果:x的值為583賦值運(yùn)算中的自動(dòng)類型轉(zhuǎn)換例doublex;x=1;x=1.0shorta=1000;charb='A';longc;c=a+b;c=1065intai;ai=2.56;ai=2shortbi;bi=0x12345678Lbi=ox5678不做四舍五入843、任何表達(dá)式中都可以強(qiáng)制類型進(jìn)行轉(zhuǎn)換。其形式為:

(類型名)表達(dá)式例:intx;

floaty=5.4;

x=(int)y;結(jié)果:x的值為5數(shù)據(jù)類型不同的數(shù)據(jù)混合運(yùn)算規(guī)則------類型轉(zhuǎn)換3.032.02.5(double)3(int)3.8(double)(5/2)(double)5/285強(qiáng)制類型轉(zhuǎn)換示例#include<stdio.h>intmain(void){

inti;doublex;

x=3.8;i=(int)x;printf("x=%f,i=%d\n",x,i);printf("(double)(int)x=%f\n",(double)(int)x);printf("xmod3=%d\n",(int)x%3);return0;}x=3.800000,i=3(double)(int)x=3.000000xmod3=0868程序舉例

8.1求華氏溫度100°F對(duì)應(yīng)的攝氏溫度

轉(zhuǎn)換公式如下:攝氏溫度C=(5/9)(F-32)87程序解析例求華氏溫度100°F對(duì)應(yīng)的攝氏溫度。攝氏溫度C=(5/9)(F-32)#include<stdio.h>intmain(void){intcelsius,fahr;變量定義

fahr=100;變量使用

celsius=5*(fahr-32)/9;printf("fahr=%d,celsius=%d\n",fahr,celsius);輸出結(jié)果

return0;}輸出:fahr=100,celsius=37修改程序完成求任意華氏溫度對(duì)應(yīng)的攝氏溫度改為celsius=5/9*(fahr-32)正確嗎;88分析:程序需要三個(gè)整型變量分別存放三個(gè)整數(shù),考慮到三個(gè)整數(shù)的平均數(shù)不一定為整數(shù),所以存放平均值的變量定義為實(shí)型。/*程序名:2_6.cpp*//*功能:求三個(gè)整數(shù)的平均數(shù)*/#include<stdio.h>voidmain(){inta,b,c;/*定義三個(gè)整型變量分別存放三個(gè)整數(shù)*/floatave;/*定義一個(gè)實(shí)型變量分別平均值*/scanf("%d,%d,%d",&a,&b,&c);/*任意輸入三個(gè)整數(shù)*/ave=(a+b+c)/3.0;/*計(jì)算平均值*/printf("ave=%7.2f\n",ave);/*輸出計(jì)算結(jié)果*/}8.2求三個(gè)整數(shù)的平均數(shù)。899常用數(shù)學(xué)庫(kù)函數(shù)庫(kù)函數(shù)C語(yǔ)言處理系統(tǒng)提供事先編好的函數(shù),供用戶在編程時(shí)調(diào)用。scanf(),printf(),sqrt()用戶調(diào)用庫(kù)函數(shù)時(shí),用#include命令將相應(yīng)的頭文件包含到源程序中。例如調(diào)用scanf,printf,需要#include<stdio.h>調(diào)用數(shù)學(xué)函數(shù),需要#include<math.h>90常用數(shù)學(xué)函數(shù)函數(shù)名功能舉例fabs(x)計(jì)算x的絕對(duì)值fabs(-3.5)等于3.5sqrt(x)計(jì)算x的非負(fù)平方根sqrt(16.0)等于4.0exp(x)計(jì)算指數(shù)函數(shù)exexp(1.0)等于2.71828log(x)計(jì)算x的自然對(duì)數(shù)lnxlog(2.718282)等于1.0log10(x)計(jì)算以10為底的對(duì)數(shù)函數(shù)log10xLog10(10.0)等于1.0pow(x,y)計(jì)算xypow(2.0,3.0)等于8.0sin(x)正弦函數(shù)sin(0.0)等于0.0cos(x)余弦函數(shù)cos(0.0)等于1.091調(diào)用數(shù)學(xué)函數(shù)格式函數(shù)名(參數(shù))參數(shù)可以是常量、變量

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論