版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1順序結(jié)構(gòu)程序設(shè)計(jì)
北京交通大學(xué)計(jì)算機(jī)學(xué)院計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程組2教學(xué)目標(biāo)使用c語言編寫出簡單的順序結(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)程序說明部分/*程序名:2_3.cpp*//*功能:計(jì)算兩個(gè)整數(shù)和并輸出結(jié)果*/預(yù)編譯命令#include<stdio.h>主程序區(qū)voidmain(){}函數(shù)定義區(qū)intadd(intx,inty){}由一個(gè)或若干個(gè)函數(shù)組成,其中必須有且只能有一個(gè)名字為main函數(shù)程序中的每條語句以分號(hào)(;)結(jié)尾程序中可以有不執(zhí)行的語句,這些語句為注釋語句,用/**/注釋5常見的幾種main函數(shù)寫法voidmain(){}intmain(){}return0;6計(jì)算機(jī)語言中數(shù)據(jù)的描述數(shù)據(jù)描述需要解決的兩個(gè)問題問題之一:有哪幾種數(shù)據(jù)?例:s=3.14159*r*r3.14159常量r變量在程序運(yùn)行中其值不可以改變,一般用于構(gòu)成表達(dá)式;在程序運(yùn)行中其存儲(chǔ)的值可以改變。一般用于描述待處理的數(shù)據(jù),中間結(jié)果和最后結(jié)果數(shù)據(jù)類型7問題之二:如何規(guī)定數(shù)據(jù)的存儲(chǔ)空間和操作規(guī)則?為數(shù)據(jù)指明所屬數(shù)據(jù)類型常量通過書寫方式來指明其數(shù)據(jù)類型變量通過關(guān)鍵字來指明其數(shù)據(jù)類型數(shù)據(jù)類型81.基本數(shù)據(jù)類型
int
整型float
單精度浮點(diǎn)型char
字符型double
雙精度浮點(diǎn)型shortint(或short)短整型longint(或long)長整型unsignedint無符號(hào)整型unsignedshort無符號(hào)短整型unsignedlong無符號(hào)長整型數(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é)跟語言和編譯系統(tǒng)有關(guān)在c語言中可以通過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美國標(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)過上面兩步操作,ch中得到的是‘A’202.變量變量是指程序運(yùn)行過程中可以發(fā)生變化的量C中的變量必須先定義后使用定義語法:數(shù)據(jù)類型
變量名例:inta;定義時(shí)注意兩點(diǎn)用關(guān)鍵字指明數(shù)據(jù)類型為變量起名起名規(guī)則為:由字母數(shù)字下劃線組成,以字母或下劃線開頭,不能使用c中的關(guān)鍵字,比如int等。變量應(yīng)該先賦值,后引用數(shù)據(jù)類型21(1)變量定義變量定義語法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.常量通過書寫方式表示數(shù)據(jù)的類型27(1)整型常量
整型常量即整數(shù)。基本整型常量可以使用三種形式表示:十進(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開始的數(shù)據(jù)是八進(jìn)制數(shù)。如0123代表八進(jìn)制數(shù)123,即十進(jìn)制數(shù)83。十六進(jìn)制數(shù)。以0x開始的數(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ù)的取值范圍比長整型數(shù)還要大的數(shù)只能用實(shí)數(shù)來表示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)括起來的一個(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)括起來的字符序列。如:
"Howdoyoudo."例:
voidmain(){printf("Thisismyfirstprogram");printf("inC/C++.\n");}輸出結(jié)果為
ThisismyfirstprograminC/C++.C中無字符串變量37(5)符號(hào)常量用一個(gè)標(biāo)識(shí)符代表一個(gè)常量,稱符號(hào)常量。定義語法:
#define標(biāo)識(shí)符
常量例:#definePI
3.14159
注意事項(xiàng):該語句無分號(hào)“;”一般符號(hào)常量用大寫,以跟普通變量區(qū)分符號(hào)常量是常量不能對(duì)其賦值38/*程序名:2_5.cpp*//*功能:符號(hào)常量的使用,計(jì)算圓的周長和面積*/#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)程序書寫簡便(2)程序修改簡便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)行中可變不可變分為常量和變量兩類數(shù)據(jù)通過數(shù)據(jù)類型來確定存儲(chǔ)空間大小和對(duì)其的操作規(guī)則變量通過關(guān)鍵字定義數(shù)據(jù)類型常量通過書寫格式指名數(shù)據(jù)類型424.格式輸出函數(shù)printf
printf函數(shù)一般格式:
printf(格式控制,輸出表列);43格式控制是由雙引號(hào)括起來的字符串,它包含三種信息:·格式說明:由“%”和格式字符組成,如%d,%f等。它的作用是將輸出的數(shù)據(jù)按照指定的格式輸出。·普通字符:需要原樣輸出的字符。·轉(zhuǎn)義字符:反斜杠后跟一個(gè)字符或數(shù)字,用于控制輸出。
普通字符轉(zhuǎn)義字符
printf("sum=%d\n",sum);
格式說明44輸出表列是一些要輸出的數(shù)據(jù),多個(gè)輸出數(shù)據(jù)用逗號(hào)隔開輸出數(shù)據(jù)可以是常量、變量或表達(dá)式。輸出數(shù)據(jù)的個(gè)數(shù)應(yīng)該跟格式控制中的格式說明符個(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使用相同的格式控制說明%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說明:(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è)格式說明構(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ù)和位置要與格式控制說明一一對(duì)應(yīng)scanf("%d%d%d",&a,&b,&c);用隱含的分隔符(空格或換行符)來輸入數(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注意空格也為字符輸入字符如果無顯式的分隔符,必須連著輸入字符,不能用空格或回車分開輸入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)括起來的字符串,它包含三種信息:·格式說明:由“%”和格式字符組成,如%d,%f等。它的作用是將輸出的數(shù)據(jù)按照指定的格式輸出?!て胀ㄗ址盒枰瓨虞敵龅淖址!まD(zhuǎn)義字符:用于控制輸出。輸出表列是一些要輸出的數(shù)據(jù),多個(gè)輸出數(shù)據(jù)用逗號(hào)隔開地址表列由若干個(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++語言提供了如下算術(shù)運(yùn)算符:單目+-++--雙目+-*/%/(除法運(yùn)算符):兩個(gè)整數(shù)相除結(jié)果還是整數(shù)
%(求余運(yùn)算符):求余運(yùn)算符要求%兩側(cè)都是整型數(shù)據(jù)70自增和自減運(yùn)算符++運(yùn)算符的作用是使變量的值增1。--運(yùn)算符的作用是使變量的值減1。常見的用法有:++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語句的執(zhí)行過程因環(huán)境而異Vc中運(yùn)行結(jié)果73回頭讀程序Vc環(huán)境中printf語句的執(zhí)行原則:在printf里的運(yùn)算順序是從右向左。然后等運(yùn)算完了再從左向右輸出
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ì)算圓的周長代數(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á)式簡單的賦值運(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á)式求解的過程是:將賦值運(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é)庫函數(shù)庫函數(shù)C語言處理系統(tǒng)提供事先編好的函數(shù),供用戶在編程時(shí)調(diào)用。scanf(),printf(),sqrt()用戶調(diào)用庫函數(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024股權(quán)質(zhì)押借款合同范本2
- 信用貸款合同模板
- 2024年國際買賣合同中英文
- 2024年建筑外墻節(jié)能保溫技術(shù)服務(wù)合同
- 2024規(guī)范的電子配件購銷合同模板
- 三輪摩托購車合同范本2024年
- 教育機(jī)構(gòu)合作契約
- 2024停車場(chǎng)場(chǎng)地協(xié)議書范文
- 網(wǎng)絡(luò)證券交易平臺(tái)服務(wù)協(xié)議
- 經(jīng)營托管合同范本
- 2024年秋季人教版新教材七年級(jí)上冊(cè)語文全冊(cè)教案(名師教學(xué)設(shè)計(jì)簡案)
- 有子女民政局常用協(xié)議離婚書格式2024年
- 中國介入醫(yī)學(xué)白皮書(2021 版)
- 2024中華人民共和國農(nóng)村集體經(jīng)濟(jì)組織法詳細(xì)解讀課件
- 代運(yùn)營合作服務(wù)協(xié)議
- 婚內(nèi)財(cái)產(chǎn)協(xié)議書(2024版)
- 有限空間作業(yè)應(yīng)急管理制度
- 2024全國普法知識(shí)考試題庫及答案
- 化工企業(yè)中試階段及試生產(chǎn)期間的產(chǎn)品能否對(duì)外銷售
- 籃球智慧樹知到期末考試答案章節(jié)答案2024年浙江大學(xué)
- 國開作業(yè)《公共關(guān)系學(xué)》實(shí)訓(xùn)項(xiàng)目1:公關(guān)三要素分析(六選一)參考552
評(píng)論
0/150
提交評(píng)論