版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
最簡(jiǎn)單的C程序設(shè)計(jì)—順序程序設(shè)計(jì)第3章最簡(jiǎn)單的C程序設(shè)計(jì)3.1順序程序設(shè)計(jì)舉例3.2數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算3.3C語(yǔ)句3.4數(shù)據(jù)的輸入輸出3.1順序程序設(shè)計(jì)舉例例3.1有人用溫度計(jì)測(cè)量出用華氏法表示的溫度(如
F,今要求把它轉(zhuǎn)換為以攝氏法表示的溫度(如
C)。解題思路:找到二者間的轉(zhuǎn)換公式f代表華氏溫度,c代表攝氏溫度3.1順序程序設(shè)計(jì)舉例算法:輸入f的值輸出c的值N-S圖3.1順序程序設(shè)計(jì)舉例#include<stdio.h>intmain(){floatf,c;//定義f和c為單精度浮點(diǎn)型變量
f=64.0;//指定f的值
c=(5.0/9)*(f-32);//計(jì)算c的值
printf("f=%f\nc=%f\n",f,c);//輸出f和c的值
return0;}變量常量3.2數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算3.2.1常量和變量3.2.2數(shù)據(jù)類型3.2.3整型數(shù)據(jù)3.2.4字符型數(shù)據(jù)3.2.5浮點(diǎn)型數(shù)據(jù)3.2.6怎樣確定常量的類型3.2.7運(yùn)算符和表達(dá)式3.2.1常量和變量1.常量:在程序運(yùn)行過(guò)程中,其值不能被改變的量整型常量:如1000,12345,0,-345實(shí)型常量:十進(jìn)制小數(shù)形式:如0.34-56.790.0指數(shù)形式:如12.34e3(代表12.34103)注意:字母e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù)1e31.8e-3-123e-6-.1e-3e32.1e3.5.e3e3.2.1常量和變量字符常量:如’?’普通字符,使用單撇號(hào)括起來(lái)’a’,’b’等。轉(zhuǎn)義字符:以‘\’開(kāi)頭的一些特殊字符,\n換行當(dāng)前位置移到下一行開(kāi)頭\t橫向跳格\r回車,當(dāng)前位置移到本行開(kāi)頭\\
反斜杠 \ddd
ddd表示1到3位八進(jìn)制數(shù)字,如’\101’代表ASCII碼為八進(jìn)制101的字符‘A’(十進(jìn)制65)\xhh
hh表示1到2位十六進(jìn)制數(shù)字,’\x41’也代表ASCII碼為十六進(jìn)制41的字符’A’(十進(jìn)制65)其余詳見(jiàn)P40頁(yè)表3.13.2.1常量和變量字符串常量:如”boy”,雙撇號(hào)作為字符串的定界符,但是不屬于字符串。符號(hào)常量:#definePI3.1415926535897#include<stdio.h>intmain(){ doublearea,girth,radius;
printf("inputradius:");
scanf("%lf",&radius); area=PI*radius*radius;//圓的面積
girth=2*PI*radius;//圓的周長(zhǎng)
printf("area=%f\ngirth=%f\n",area,girth); return0;}使用符號(hào)常量的好處:含義清楚:#definePI3.1415926便于修改,一次修改,全部改變。3.2.1常量和變量2.變量:在程序運(yùn)行期間,值可以改變的稱為變量變量必須先定義,后使用。保證名稱正確編譯時(shí)分配相應(yīng)的存儲(chǔ)空間編譯時(shí)檢查相應(yīng)運(yùn)算是否合法定義變量時(shí)指定該變量的名字和類型區(qū)分大小寫(xiě)。A和a是不同的變量名建議變量名的長(zhǎng)度最好不要超過(guò)8個(gè)字符。在選擇變量名和其它標(biāo)識(shí)符時(shí),應(yīng)注意做到“見(jiàn)名知意”,即選有含意的英文單詞(或其縮寫(xiě))作標(biāo)識(shí)符。變量命名的規(guī)定:C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線。例:sum_totalmonthStudent_namelotus_1_2_3BASICli_ling
(正確的命名方法)
M.D.John
¥1233D64a>b
(錯(cuò)誤的命名方法)3.2.1常量和變量2.變量代表內(nèi)存中具有特定屬性的一個(gè)存儲(chǔ)單元,用來(lái)存放數(shù)據(jù)(即變量的值);變量的值
在程序運(yùn)行期間,可以改變;變量名
以名字對(duì)應(yīng)代表一個(gè)地址,在程序編譯連接時(shí)由編譯系統(tǒng)給每一個(gè)變量名分配對(duì)應(yīng)的內(nèi)存地址;從變量中取值
通過(guò)變量名找到相應(yīng)的內(nèi)存地址,從該存儲(chǔ)單元中讀取數(shù)據(jù)。如右圖所示:3a變量名變量值存儲(chǔ)單元3.2.1常量和變量3.常變量:程序運(yùn)行過(guò)程中不允許值改變的變量。和符號(hào)常量有區(qū)別。constinta=3;4.標(biāo)識(shí)符:對(duì)變量、符號(hào)常量、函數(shù)、數(shù)組、自定義類型等的命名。C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且第一個(gè)字符必須為字母或下劃線合法的標(biāo)識(shí)符:如sum,average,_total,Class,day,BASIC,li_ling不合法的標(biāo)識(shí)符:M.D.John,¥123,#33,3D64,a>b3.2.2數(shù)據(jù)類型所謂類型,就是對(duì)數(shù)據(jù)分配存儲(chǔ)單元的安排,包括存儲(chǔ)單元的長(zhǎng)度(占多少字節(jié))以及數(shù)據(jù)的存儲(chǔ)形式。不同的類型分配不同的長(zhǎng)度和存儲(chǔ)形式。C語(yǔ)言中允許的數(shù)據(jù)類型詳見(jiàn)下圖3.2.2數(shù)據(jù)類型整型int數(shù)據(jù)類型派生類型指針類型空類型(無(wú)值類型)void數(shù)組類型結(jié)構(gòu)體類型struct共用體類型
union基本類型字符型char實(shí)型(浮點(diǎn)型)單精度實(shí)型
float雙精度實(shí)型
double枚舉類型enum3.2.3整型數(shù)據(jù)1.整型數(shù)據(jù)的分類,最基本的整型類型有:基本整型(int型):占2個(gè)或4個(gè)字節(jié)短整型(shortint):VC++6.0中占2個(gè)字節(jié)長(zhǎng)整型(longint):VC++6.0中占4個(gè)字節(jié)雙長(zhǎng)整型(longlongint):C99新增的3.2.3整型數(shù)據(jù)整型數(shù)據(jù)在內(nèi)存中的存放形式數(shù)據(jù)在內(nèi)存中是以二進(jìn)制形式存放的。如:inti;/*定義為整型變量*/i=10;/*給i賦以整數(shù)10*/
注意:十進(jìn)制數(shù)10的二進(jìn)制形式為1010,TurboC2.0和TurboC++3.0為一個(gè)整型變量在內(nèi)存中分配2個(gè)字節(jié)的存儲(chǔ)單元(不同的編譯系統(tǒng)為整型數(shù)據(jù)分配的字節(jié)數(shù)是不相同的,VC++6.0則分配4個(gè)字節(jié))。數(shù)值是以補(bǔ)碼(complement)表示的。3.2.3整型數(shù)據(jù)i=10原碼:0000,0000,0000,1010補(bǔ)碼:0000,0000,0000,1010i=-10其補(bǔ)碼為絕對(duì)值取反加1(二進(jìn)制)絕對(duì)值的原碼:0000,0000,0000,1010取反: 1111,1111,1111,0101加1: 1111,1111,1111,0110補(bǔ)碼: 1111,1111,1111,01103.2.3整型數(shù)據(jù)2.整型變量的符號(hào)屬性整型變量的值的范圍包括負(fù)數(shù)到正數(shù)可以將變量定義為“無(wú)符號(hào)”類型擴(kuò)充的整形類型:有符號(hào)基本整型
[signed]int;無(wú)符號(hào)基本整型
unsignedint;有符號(hào)短整型
[signed]short[int];無(wú)符號(hào)短整型
unsignedshort[int];有符號(hào)長(zhǎng)整型
[signed]long[int];無(wú)符號(hào)長(zhǎng)整型
unsignedlong[int];有符號(hào)雙長(zhǎng)整型
[signed]longlong[int];無(wú)符號(hào)雙長(zhǎng)整型
unsignedlonglong[int];3.2.3整型數(shù)據(jù)int
i,j;unsignedint
ui,uj;i=1 0000,0000,0000,0001ui=1 0000,0000,0000,00011111,1111,1111,1110 1111,1111,1111,1111-1的補(bǔ)碼j=-1 1111,1111,1111,0110代表-1uj=-1 1111,1111,1111,0110代表65535有符號(hào)整數(shù):無(wú)符號(hào)整數(shù):0(正)/1(負(fù))數(shù)據(jù)位整型變量的定義(聲明):C規(guī)定在程序中所用到的變量都必須在程序中定義,即“強(qiáng)制類型定義”。3.2.3整型數(shù)據(jù)大家可以考慮一下:1000,0000,0000,0000代表的是哪個(gè)數(shù)?3.2.3整型數(shù)據(jù)不同整型變量的取值范圍詳見(jiàn)表3.2一般系統(tǒng)對(duì)不同整數(shù)類型的存儲(chǔ)長(zhǎng)度定義如下:short型不大于int,long不小于int。類型長(zhǎng)度數(shù)的范圍基本型int4字節(jié)-231~231-1短整型short2字節(jié)-215~215-1長(zhǎng)整型long4字節(jié)-231~231-1雙長(zhǎng)整型longlong8字節(jié)-263~263-1無(wú)符號(hào)基本型unsignedint4字節(jié)-231~231-1無(wú)符號(hào)短整型unsignedshort2字節(jié)-215~215-1無(wú)符號(hào)長(zhǎng)整型unsignedlong4字節(jié)-231~231-1無(wú)符號(hào)雙長(zhǎng)整型unsignedlonglong8字節(jié)-263~263-1223.2.3整型數(shù)據(jù)例3.3整型數(shù)據(jù)的溢出
#include<stdio.h>
intmain()
{ inta,b;
a=32767;
b=a+1;
printf(“%d,%d\n”,a,b);
return0; }運(yùn)行結(jié)果:32767,-32768說(shuō)明:數(shù)值是以補(bǔ)碼表示的。一個(gè)整型變量只能容納-32768~32767范圍內(nèi)的數(shù),無(wú)法表示大于32767或小于-32768的數(shù)。遇此情況就發(fā)生“溢出”。32767011111111111111132767+11000000000000000減10111111111111111取反327681000000000000000(-32768)21474836472147483647,-21474836473.2.4字符型數(shù)據(jù)字符是按其代碼(整數(shù))形式存儲(chǔ)的。C99把字符型數(shù)據(jù)作為整數(shù)類型的一種。字符型數(shù)據(jù)在使用上有自己的特點(diǎn)。3.2.4字符型數(shù)據(jù)1.字符與字符代碼大多數(shù)系統(tǒng)采用ASCII字符集字母:A~Z,a~z數(shù)字:0~9專門符號(hào):29個(gè):!”#&‘()*等空格符:空格、水平制表符、換行等不能顯示的字符:空(null)字符(以‘\0’表示)、警告(以‘\a’表示)、退格(以‘\b’表示)、回車(以‘\r’表示)等3.2.4字符型數(shù)據(jù)字符’1’和整數(shù)1是不同的概念:字符’1’只是代表一個(gè)形狀為’1’的符號(hào),在需要時(shí)按原樣輸出,在內(nèi)存中以ASCII碼形式存儲(chǔ),占1個(gè)字節(jié)整數(shù)1是以整數(shù)存儲(chǔ)方式(二進(jìn)制補(bǔ)碼方式)存儲(chǔ)的,占2個(gè)或4個(gè)字節(jié)0011000100000000000000013.2.4字符型數(shù)據(jù)2.字符變量用類型符char定義字符變量
charc=’?’;系統(tǒng)把“?”的ASCII代碼63賦給變量c輸出時(shí)使用“%c”對(duì)字符型進(jìn)行輸出,也可以對(duì)字符型變量按照“%d”格式輸出。printf(”%d%c\n”,c,c);輸出結(jié)果是:
63?3.2.5浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)是用來(lái)表示具有小數(shù)點(diǎn)的實(shí)數(shù)float型(單精度浮點(diǎn)型)編譯系統(tǒng)為float型變量分配4個(gè)字節(jié)數(shù)值以規(guī)范化的二進(jìn)制數(shù)指數(shù)形式存放,6位有效數(shù)字double型(雙精度浮點(diǎn)型)編譯系統(tǒng)為double型變量分配8個(gè)字節(jié)15位有效數(shù)字longdouble(長(zhǎng)雙精度)型8個(gè)字節(jié),與double一樣(不同的編譯系統(tǒng)不同的分配方式)
+.3141591#include<stdio.h>
intmain()
{ floata,b;
a=123456.789e5;
b=a+20;
printf(“%f\n”,b);
return0;}
應(yīng)當(dāng)避免將一個(gè)很大的數(shù)和一個(gè)很小的數(shù)直接相加或相減,否則就會(huì)“丟失”小的數(shù)3.2.6怎樣確定常量的類型字符常量:由單撇號(hào)括起來(lái)的單個(gè)字符或轉(zhuǎn)義字符,如:‘b’,’\n’浮點(diǎn)型常量:凡以小數(shù)形式或指數(shù)形式出現(xiàn)的實(shí)數(shù),C編譯系統(tǒng)把浮點(diǎn)型常量都按雙精度處理,分配8個(gè)字節(jié)3.2.6怎樣確定常量的類型整型常量:不帶小數(shù)點(diǎn)的數(shù)值系統(tǒng)根據(jù)數(shù)值的大小確定int型還是long型等。系統(tǒng)根據(jù)后綴決定是何種存儲(chǔ)形式的整數(shù):12345u:unsignedint型常量,整常量后面加字母u或U,在內(nèi)存中按unsignedint規(guī)定的方式存放。12345l:longint型常量,整常量后面加字母l
或L。3.2.6怎樣確定常量的類型系統(tǒng)根據(jù)前綴決定是何種進(jìn)制的整數(shù)。十進(jìn)制整數(shù)。如:123,-456,4。八進(jìn)制整數(shù)。以0頭的數(shù)是八進(jìn)制數(shù)。如:0123表示八進(jìn)制數(shù)123,等于十進(jìn)制數(shù)83,-011表示八進(jìn)制數(shù)-11,即十進(jìn)制數(shù)-9。十六進(jìn)制整數(shù)。以0x開(kāi)頭的數(shù)是16進(jìn)制數(shù)。如:0x123,代表16進(jìn)制數(shù)123,等于十進(jìn)制數(shù)291。-0x12等于十進(jìn)制數(shù)-18。3.2.7運(yùn)算符和表達(dá)式1.基本的算術(shù)運(yùn)算符:+:正號(hào)運(yùn)算符(單目運(yùn)算符)-:負(fù)號(hào)運(yùn)算符(單目運(yùn)算符)*:乘法運(yùn)算符/:除法運(yùn)算符%:求余運(yùn)算符+:加法運(yùn)算符
-:減法運(yùn)算符3.2.7運(yùn)算符和表達(dá)式說(shuō)明兩個(gè)整數(shù)相除的結(jié)果為整數(shù)5/3=1,即舍去小數(shù)部分。-5/3=-1或-2,即除數(shù)或被除數(shù)中有一個(gè)為負(fù)值,舍入方向不固定。VC++采取“向零取整”的方法如5/3=1,-5/3=-1,取整后向零靠攏%運(yùn)算符要求參加運(yùn)算的運(yùn)算對(duì)象(即操作數(shù))為整數(shù),結(jié)果也是整數(shù)。如8%3,結(jié)果為2。3.2.7運(yùn)算符和表達(dá)式2.自增、自減運(yùn)算符:作用是使變量的值1或減1++i,--i:在使用i之前,先使i的值加(減)1i++,i--:在使用i之后,使i的值加(減)1如:i=3,則j=i++; j的值為j=++i; j的值為34只能用于變量3.2.7運(yùn)算符和表達(dá)式3.算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性:用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(也稱操作數(shù))連接起來(lái)的、符合C語(yǔ)法規(guī)則的式子,稱為C算術(shù)表達(dá)式。運(yùn)算對(duì)象包括常量、變量、函數(shù)等。C語(yǔ)言規(guī)定了運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。詳見(jiàn)附錄D3.2.7運(yùn)算符和表達(dá)式4.不同類型數(shù)據(jù)間的混合運(yùn)算:doublefloatlongunsignedintchar,short高低36§3.7各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算10+ ’a’+ 1.5- 8765.1234* ’b’intchar double double charint
int double double
double
int double double double double double double double double3.2.7運(yùn)算符和表達(dá)式(1)+、-、*、/運(yùn)算的兩個(gè)數(shù)中有一個(gè)數(shù)為float或double型,結(jié)果是double型。系統(tǒng)將float型數(shù)據(jù)都先轉(zhuǎn)換為double型,然后進(jìn)行運(yùn)算(2)如果int型與float或double型數(shù)據(jù)進(jìn)行運(yùn)算,先把int型和float型數(shù)據(jù)轉(zhuǎn)換為double型,然后進(jìn)行運(yùn)算,結(jié)果是double型(3)字符型數(shù)據(jù)與整型數(shù)據(jù)進(jìn)行運(yùn)算,就是把字符的ASCII代碼與整型數(shù)據(jù)進(jìn)行運(yùn)算3.2.7運(yùn)算符和表達(dá)式不同類型數(shù)據(jù)間的混合運(yùn)算舉例 例3.3給定一個(gè)大寫(xiě)字母,要求用小寫(xiě)字母輸出。解題思路:關(guān)鍵是找到大、小寫(xiě)字母間的內(nèi)在聯(lián)系同一個(gè)字母,用小寫(xiě)表示的字符的ASCII代碼比用大寫(xiě)表示的字符的ASCII代碼大32A65a973.2.7運(yùn)算符和表達(dá)式#include<stdio.h>intmain(){charc1,c2;c1=’A’;c2=c1+32;printf("%c\n",c2);printf(”%d\n”,c2);return0;}將字符‘A’的ASCII代碼65放到c1中將65+32的結(jié)果放到c2中用字符形式輸出用十進(jìn)制形式輸出3.2.7運(yùn)算符和表達(dá)式5.強(qiáng)制類型轉(zhuǎn)換運(yùn)算符強(qiáng)制類型轉(zhuǎn)換運(yùn)算符的一般形式為(類型名)(表達(dá)式)(double)a
(將a轉(zhuǎn)換成double類型)(int)(x+y)(將x+y的值轉(zhuǎn)換成int型)(float)(5%3) (將5%3的值轉(zhuǎn)換成float型)有兩種類型轉(zhuǎn)換系統(tǒng)自動(dòng)進(jìn)行的類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換3.2.7運(yùn)算符和表達(dá)式6.C運(yùn)算符(1)算術(shù)運(yùn)算符
+-*/%++--(2)關(guān)系運(yùn)算符
><==>=<=!=(3)邏輯運(yùn)算符
?。Γ|(4)位運(yùn)算符
<<>>~|∧&(5)賦值運(yùn)算符
=及其擴(kuò)展賦值運(yùn)算符(6)條件運(yùn)算符
?:3.2.7運(yùn)算符和表達(dá)式6.C運(yùn)算符(7)逗號(hào)運(yùn)算符
,(8)指針運(yùn)算符
*和&(9)求字節(jié)數(shù)運(yùn)算符
sizeof(10)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符
(類型)(11)成員運(yùn)算符
.->(12)下標(biāo)運(yùn)算符
[
](13)其他,如
函數(shù)調(diào)用運(yùn)算符()3.3C語(yǔ)句3.3.1C語(yǔ)句的作用和分類3.3.2最基本的語(yǔ)句----賦值語(yǔ)句3.3.1 C語(yǔ)句的作用和分類C語(yǔ)句分為以下5類:(1)控制語(yǔ)句:
if、switch、for、while、do…while、continue、break、return、goto等(2)函數(shù)調(diào)用語(yǔ)句
printf(“%d\n%d\n”,a,b);(3)表達(dá)式語(yǔ)句
a=3;(賦值表達(dá)式+分號(hào)構(gòu)成賦值語(yǔ)句)(4)空語(yǔ)句
;僅有分號(hào)(5)復(fù)合語(yǔ)句
{……}由花括號(hào)包含進(jìn)多條語(yǔ)句構(gòu)成的一條復(fù)合語(yǔ)句3.3.2最基本的語(yǔ)句----賦值語(yǔ)句在C程序中,最常用的語(yǔ)句是:賦值語(yǔ)句輸入輸出語(yǔ)句其中最基本的是賦值語(yǔ)句3.3.2最基本的語(yǔ)句----賦值語(yǔ)句例3.4給出三角形的三邊長(zhǎng),求三角形面積。解題思路:假設(shè)給定的三個(gè)邊符合構(gòu)成三角形的條件關(guān)鍵是找到求三角形面積的公式公式為:其中s=(a+b+c)/2#include<stdio.h>#include<math.h>intmain(){doublea,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%f\tb=%f\t%f\n",a,b,c);
printf("area=%f\n",area);return0;}對(duì)邊長(zhǎng)a、b、c賦值計(jì)算s計(jì)算area#include<stdio.h>#include<math.h>intmain(){doublea,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f\tb=%f\t%f\n",a,b,c);
printf("area=%f\n",area);return0;}數(shù)學(xué)函數(shù),計(jì)算平方根調(diào)用數(shù)學(xué)函數(shù)加此行#include<stdio.h>#include<math.h>intmain(){doublea,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f\tb=%f\t%f\n",a,b,c);
printf("area=%f\n",area);return0;}轉(zhuǎn)義字符,使輸出位置跳到下一個(gè)tab位置調(diào)用數(shù)學(xué)函數(shù)加此行歸納總結(jié):1.賦值運(yùn)算符“=”是賦值運(yùn)算符作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變量也可以將一個(gè)表達(dá)式的值賦給一個(gè)變量2.復(fù)合的賦值運(yùn)算符在賦值符“=”之前加上其他運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符a+=3 等價(jià)于
a=a+3a%=3 a=a%3a*=b a=a*b3.賦值表達(dá)式一般形式為:
變量
賦值運(yùn)算符
表達(dá)式
對(duì)賦值表達(dá)式求解的過(guò)程:(a=3+5*2)求賦值運(yùn)算符右側(cè)的“表達(dá)式”的值
3+5*2為13賦給賦值運(yùn)算符左側(cè)的變量 將13給a舉例a=b=c=5 值為5 a=5b=5a=5+(c=6) 值為:11 a=11c=6a=(b=4)+(c=6) 值為:10 a=10c=6b=4a=(b=10)/(c=2) 值為5a=5b=10c=2(a=3*5)=4*3如何運(yùn)算a=12a+=a-=a*a的值為?不能寫(xiě)成:a=3*5=4*3intmain(){ inta,b; printf("%d\n",(a=3*5)=4*3); printf("%d\n\n",a); return0;}4.賦值過(guò)程中的類型轉(zhuǎn)換(詳細(xì)見(jiàn)課本P62)兩側(cè)類型一致時(shí),直接賦值
a=3兩側(cè)類型不一致,但都是算術(shù)類型時(shí),自動(dòng)將右側(cè)的類型轉(zhuǎn)換為左側(cè)類型后賦值 a=1.5定義變量時(shí)要防止數(shù)據(jù)溢出,a=123456789012345675.賦值表達(dá)式和賦值語(yǔ)句賦值表達(dá)式的末尾沒(méi)有分號(hào),而賦值語(yǔ)句有分號(hào)一個(gè)表達(dá)式可以包含賦值表達(dá)式,但決不能包含賦值語(yǔ)句3+(a=5)的值為83+(a=5;)就不是表達(dá)式6.變量賦初值可以在說(shuō)明變量時(shí)賦以初值inta=3,b=4,c=5;inta=3,b=3,c=3;相當(dāng)于int
a,b,c;a=b=c=3;3.4數(shù)據(jù)的輸入輸出3.4.1輸入輸出舉例3.4.2有關(guān)數(shù)據(jù)輸入輸出的概念3.4.3用printf函數(shù)輸出數(shù)據(jù)3.4.4用scanf函數(shù)輸入數(shù)據(jù)3.4.5字符數(shù)據(jù)的輸入輸出3.4.1輸入輸出舉例例3.5求
方程的根。a、b、c由鍵盤輸入
設(shè)
>03.4.1輸入輸出舉例解題思路:首先要知道求方程式的根的方法。由數(shù)學(xué)知識(shí)已知:如果
≥0,則一元二次方程有兩個(gè)實(shí)根:若記#include<stdio.h>#include<math.h>intmain(){ doublea,b,c,disc,x1,x2,p,q;
scanf("%lf%lf%lf",&a,&b,&c); disc=b*b-4*a*c; p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q;x2=p-q; printf("x1=%7.2f\nx2=%7.2f\n",x1,x2); return0;}輸入a,b,c的值輸入的是雙精度型實(shí)數(shù)程序中調(diào)用數(shù)學(xué)函數(shù)sqrt#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,p,q;
scanf("%lf%lf%lf",&a,&b,&c);disc=b*b-4*a*c;p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);return0;}要求輸入3個(gè)實(shí)數(shù)自動(dòng)轉(zhuǎn)成實(shí)數(shù)后賦給a,b,c輸出數(shù)據(jù)占7列,其中小數(shù)占2列3.4.2有關(guān)數(shù)據(jù)輸入輸出的概念幾乎每一個(gè)C程序都包含輸入輸出,輸入輸出是程序中最基本的操作之一。(1)所謂輸入輸出是以計(jì)算機(jī)主機(jī)為主體而言的從計(jì)算機(jī)向輸出設(shè)備(如顯示器、打印機(jī)等)輸出數(shù)據(jù)稱為輸出從輸入設(shè)備(如鍵盤、磁盤、光盤、掃描儀等)向計(jì)算機(jī)輸入數(shù)據(jù)稱為輸入(2)C語(yǔ)言本身不提供輸入輸出語(yǔ)句輸入和輸出操作是由C標(biāo)準(zhǔn)函數(shù)庫(kù)中的函數(shù)來(lái)實(shí)現(xiàn)的printf和scanf不是C語(yǔ)言的關(guān)鍵字,而只是庫(kù)函數(shù)的名字還有putchar、getchar、puts、gets等3.4.2有關(guān)數(shù)據(jù)輸入輸出的概念(3)在使用輸入輸出函數(shù)時(shí),要在程序文件的開(kāi)頭用預(yù)編譯指令#include<stdio.h>或#include″stdio.h″3.4.3用printf函數(shù)輸出數(shù)據(jù)在C程序中用來(lái)實(shí)現(xiàn)輸出和輸入的,主要是printf函數(shù)和scanf函數(shù)這兩個(gè)函數(shù)是格式輸入輸出函數(shù),用這兩個(gè)函數(shù)時(shí),必須指定格式。1.printf函數(shù)的一般格式printf(格式控制,輸出表列)例如:printf(”i=%d,c=%c\n”,i,c);格式聲明普通字符可以是常量、變量或表達(dá)式格式控制:是由雙引號(hào)括起來(lái)的字符串,也稱為“轉(zhuǎn)換控制字符串”,包括兩種信息:格式說(shuō)明:%+格式字符,作用是將所對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出。普通字符:原樣輸出的字符printf(”i=%d,c=%c\n”,i,c);格式聲明普通字符可以是常量、變量或表達(dá)式常用的格式字符格式字符說(shuō)明d,i以帶符號(hào)的十進(jìn)制形式輸出整數(shù)o以八進(jìn)制無(wú)符號(hào)形式輸出整數(shù)x,X以十六進(jìn)制無(wú)符號(hào)形式輸出整數(shù)u以無(wú)符號(hào)十進(jìn)制形式輸出整數(shù)c以字符形式輸出,只輸出一個(gè)字符s輸出字符串f以小數(shù)形式輸出單,雙精度數(shù),隱含輸出六位小數(shù)e,E以指數(shù)形式輸出實(shí)數(shù)g,G選用%f或%e格式中輸出寬度較短的一種,不輸出無(wú)意義的03.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符d格式符:用來(lái)輸出十進(jìn)制整數(shù)。有以下幾種用法:
%d:按十進(jìn)制整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。%md:m為指定的輸出字段的寬度,是具體整數(shù)值。如果數(shù)據(jù)的位數(shù)小于m,則右對(duì)齊,左補(bǔ)空格。若數(shù)據(jù)實(shí)際位數(shù)大于m,則按實(shí)際位數(shù)輸出。例:a=123;d=12345;printf(“%4d,%4d”,a,b);輸出結(jié)果為:_123,12345%-md:與%md相似,只是輸出左對(duì)齊,即如果數(shù)據(jù)的位數(shù)小于m,則左對(duì)齊,右補(bǔ)空格。printf(“%-4d”,123);的輸出結(jié)果為:123_%ld:輸出長(zhǎng)整型數(shù)據(jù)。例:longa=135790 /*定義a為長(zhǎng)整型變量*/printf(“%ld”,a);可對(duì)格式字符進(jìn)行詳細(xì)修飾,用到了格式符的修飾符。字符說(shuō)明l用于長(zhǎng)整型整數(shù),可加在格式符d、o、x、u前面m(代表一個(gè)正整數(shù))數(shù)據(jù)的輸出寬度n(代表一個(gè)正整數(shù))對(duì)實(shí)數(shù)表示輸出n位小數(shù);對(duì)字符串表示截取的字符個(gè)數(shù)-輸出的數(shù)字或字符在域內(nèi)向左靠,即左對(duì)齊3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符c格式符。用來(lái)輸出一個(gè)字符。一個(gè)整數(shù),只要它的值在0~255范圍內(nèi),可以用“%c”使之按字符形式輸出。在輸出前,系統(tǒng)會(huì)將該整數(shù)作為ASCII碼轉(zhuǎn)換成相應(yīng)的字符;一個(gè)字符數(shù)據(jù)也可以用整數(shù)形式輸出,如:chard=‘a(chǎn)’; printf(“%c,%d\n”,d,d); //輸出結(jié)果:a,97intt=98; //0<t<255printf(“%c,%d\n”,t,t); //輸出結(jié)果:b,983.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符s格式符。用來(lái)輸出一個(gè)字符串printf(”%s”,”CHINA”);printf(“%10s,”CHINA”);printf(“%10.2s,”CHINA”);printf(“%-10.2s,”CHINA”);#include<stdio.h>intmain(){ printf(“%3s,%7.2s,%.4s,%-5.3s\n”,“CHINA”,“CHINA”,“CHINA”,“CHINA”);return0;}運(yùn)行結(jié)果:
CHINA,*****CH,CHIN,CHI**3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符f格式符。用來(lái)輸出實(shí)數(shù),以小數(shù)形式輸出①%f,不指定數(shù)據(jù)寬度和小數(shù)位數(shù)。例3.6用%f輸出實(shí)數(shù),只能得到6位小數(shù)。doublea=1.0;printf(”%f\n”,a/3);float型數(shù)據(jù)只能保證6位有效數(shù)字double型數(shù)據(jù)能保證15位有效數(shù)字計(jì)算機(jī)輸出的數(shù)字不都是絕對(duì)精確有效的3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符f格式符。用來(lái)輸出實(shí)數(shù),以小數(shù)形式輸出②%m.nf,指定數(shù)據(jù)寬度和小數(shù)位數(shù)。
printf("%20.15f\n",1/3);printf("%.0f\n”,10000/3.0);3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符f格式符。用來(lái)輸出實(shí)數(shù),以小數(shù)形式輸出③%-m.nf,輸出的數(shù)據(jù)向左對(duì)齊。3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符e格式符。指定以指數(shù)形式輸出實(shí)數(shù)%e,VC++給出小數(shù)位數(shù)為6位指數(shù)部分占5列小數(shù)點(diǎn)前必須有而且只有1位非零數(shù)字printf(”%e”,123.456);輸出:1.234560e+0023.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符e格式符。指定以指數(shù)形式輸出實(shí)數(shù)%m.neprintf(”%13.2e”,123.456);輸出:1.23e+002(前面有4個(gè)空格)3.4.4用scanf函數(shù)輸入數(shù)據(jù)1.scanf
函數(shù)的一般形式
scanf(格式控制,地址表列)含義同printf函數(shù)3.4.4用scanf函數(shù)輸入數(shù)據(jù)1.scanf
函數(shù)的一般形式
scanf(格式控制,地址表列)可以是變量的地址,或字符串的首地址3.4.4用scanf函數(shù)輸入數(shù)據(jù)2.scanf函數(shù)中的格式聲明與printf函數(shù)中的格式聲明相似以%開(kāi)始,以一個(gè)格式字符結(jié)束,中間可以插入附加的字符scanf("a=%f,b=%f,c=%f",&a,&b,&c);3.4.4用scanf函數(shù)輸入數(shù)據(jù)3.使用scanf函數(shù)時(shí)應(yīng)注意的問(wèn)題scanf(”%f%f%f”,&a,&b,&c);對(duì)scanf(”%f%f%f”,a,b,c);錯(cuò)對(duì)于scanf("a=%f,b=%f,c=%f",&a,&b,&c);132↙
錯(cuò)
a=1,b=3,c=2↙
對(duì)
a=1b=3c=2↙
錯(cuò)3.4.4用scanf函數(shù)輸入數(shù)據(jù)3.使用scanf函數(shù)時(shí)應(yīng)注意的問(wèn)題空格字符和“轉(zhuǎn)義字符”中的字符都作為有效字符輸入。對(duì)于scanf(”%c%c%c”,&c1,&c2,&c3);abc↙
對(duì)abc↙
錯(cuò)3.4.4用scanf函數(shù)輸入數(shù)據(jù)3.使用scanf函數(shù)時(shí)應(yīng)注意的問(wèn)題輸入數(shù)值時(shí)遇,非數(shù)值字符或非法字符,輸入結(jié)束。對(duì)于scanf(”%d%c%f”,&a,&b,&c);若輸入
1234a123o.26↙則a=1234,b=‘a(chǎn)’,c=123.003.4.5字符數(shù)據(jù)的輸入輸出1.用putchar函數(shù)輸出一個(gè)字符從計(jì)算機(jī)向顯示器輸出一個(gè)字符
putchar函數(shù)的一般形式為:putchar(c)3.4.5字符數(shù)據(jù)的輸入輸出例3.8先后輸出BOY三個(gè)字符。解題思路:定義3個(gè)字符變量,分別賦以初值B、O、Y用putchar函數(shù)輸出這3個(gè)字符變量的值3.4.5字符數(shù)據(jù)的輸入輸出#include<stdio.h>intmain(){chara='B',b='O',c='Y';
putchar(a);
putchar(b);
putchar(c);
putchar('\n');return0;}向顯示器輸出字符B向顯示器輸出換行符3.4.5字符數(shù)據(jù)的輸入輸出#include<stdio.h>intmain(){chara='B',b='O',c='Y';
putchar(a);
putchar(b);
putchar(c);
putchar('\n');return0;}改為inta=66,b=79,c=89;3.4.5字符數(shù)據(jù)的輸入輸出putchar(’\101’)
(輸出字符A)putchar(’\’’)
(輸出單撇號(hào)字符’)3.4.5字符數(shù)據(jù)的輸入輸出2.用getchar函數(shù)輸入一個(gè)字符向計(jì)算機(jī)輸入一個(gè)字符getchar函數(shù)的一般形式為:getchar()3.4.5字符數(shù)據(jù)的輸入輸出例3.9從鍵盤輸入BOY三個(gè)字符,然后把它們輸出到屏幕。解題思路:用3個(gè)getchar函數(shù)先后從鍵盤向計(jì)算機(jī)輸入BOY三個(gè)字符用putchar函數(shù)輸出3.4.5字符數(shù)據(jù)的輸入輸出#include<stdio.h>intmain(){chara,b,c;a=getchar();b=getchar();c=getchar();
putchar(a);putchar(b);putchar(c);
putchar('\n');return0;}輸入一個(gè)字符,送給變量a3.4.5字符數(shù)據(jù)的輸入輸出#include<stdio.h>
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 砌墻工程夜間施工合同
- 醫(yī)療健康合作項(xiàng)目協(xié)議模板
- 政府采購(gòu)按利服務(wù)協(xié)議
- 股票配資告知義務(wù)協(xié)議模板
- 工程砌墻工期延長(zhǎng)申請(qǐng)合同
- 第26課《詩(shī)詞五首:春望》教案+2024-2025學(xué)年統(tǒng)編版語(yǔ)文八年級(jí)上冊(cè)
- 按揭房產(chǎn)稅費(fèi)服務(wù)協(xié)議
- 2024年派出所內(nèi)勤的工作總結(jié)
- 物聯(lián)網(wǎng)服務(wù)協(xié)議
- 茶葉代銷協(xié)議模板
- 有機(jī)化學(xué)ppt課件(完整版)
- 口腔頜面外科 第五章 口腔種植外科
- 四個(gè)全面(概論)
- 2021年8月急診科規(guī)培護(hù)士入科考試試題及答案
- 最新人教版三年級(jí)上冊(cè)數(shù)學(xué)期中考試試題以及答案
- 環(huán)境影響評(píng)價(jià)評(píng)價(jià)內(nèi)部質(zhì)量控制體系
- 店長(zhǎng)離職交接表
- 古琴教學(xué)精品課件ppt
- 《走進(jìn)愛(ài)國(guó)主義教育基地》ppt
- 自考《學(xué)前教育研究方法》全套課件(完整版)
- 無(wú)痛宮腔鏡檢查日間手術(shù)臨床路徑及表單
評(píng)論
0/150
提交評(píng)論