版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
語言程序設(shè)計電子與教案第三章簡單的C程序設(shè)計——順序3.1順序程序設(shè)計舉例3.2數(shù)據(jù)的表現(xiàn)形式及其運算
常量、變量
整形、字符型、浮點型
運算符及表達式3.3C語句——賦值語句3.4數(shù)據(jù)的輸入和輸出
scanf
和printf
getchar和putchar小結(jié)順序程序設(shè)計舉例#include<>intmain(){floatf,c;f=68.0;c=(5/9)*(f–32);printf("f=%f\nc=%f\n",f,c);return0;}A0301華氏溫度(如68℉)轉(zhuǎn)為攝氏溫度(如20℃)輸入f的值輸出c的值C=順序程序設(shè)計舉例intmain(){floatr,a,b;r=2;a=2*PI*r;b=PI*r*r;printf(“半徑=%f\n周長=%f\n面積=%f\n",r,a,b);return0;}A0302例:根據(jù)圓半徑,求圓周長和圓面積。輸入半徑r的值輸出a、b的值半徑周長面積周長a=2*pi*r面積b=pi*r*rscanf("%f",&r);鍵盤輸入一、數(shù)據(jù)的概念在計算機科學中,數(shù)據(jù)是指能由程序處理的對象。日常生活中的數(shù)字、字符、圖形圖象及聲音等,在計算機中均作為數(shù)據(jù)看待。二、數(shù)據(jù)的類型在高級語言中,每一個數(shù)據(jù)都屬于一個特定的類型。不同類型的數(shù)據(jù)的表示、存儲及操作不相同。3.2數(shù)據(jù)的表現(xiàn)形式及其運算姓名Alice性別F年齡20英語80數(shù)學85平均字符串字符整型實型實型實型3.2.1常量與變量3.3.1常量和符號常量
1、常量:在程序運行過程中,其值不能被改變的量。常量說明關(guān)鍵字:const。
2、常量的分類:1)整型常量。如:1234,562)實型常量。如:3)字符常量。如:‘A’,‘a(chǎn)’,‘m'4)字符串常量。如:"A","China"5)轉(zhuǎn)義字符。如:'\n','\t','\123','\xF9'6)符號常量。如:#defineN30轉(zhuǎn)義字符例:在屏幕上輸出一個笑臉(ASCII碼值為2)#include<>voidmain(){printf("%c\n",2);/*輸出"笑臉"字符*/
}增加一個轉(zhuǎn)義字符的圖符號常量概念:用一個標識符表示常量#define標識符常量表達式
例:注意:1)標識符一般用大寫2)不能給符號常量賦值例:PI=6;錯誤常用于:(1)把有意義的常數(shù)定義為符號常量(2)在程序中多次出現(xiàn)的常數(shù),定義為符號常量優(yōu)點:含義清晰;一改全改#include<>main(){floatr,area;printf("pleaseenterr:");
scanf("%f",&r);area=PI*r*r;printf("Theareais%f",a);}符號常量的應用例2.3錄入50個學生的成績,統(tǒng)計100~90,89~80,79~70,69~60,59~0個分數(shù)段學生的人數(shù),并顯示統(tǒng)計結(jié)果(統(tǒng)計結(jié)果記為count)自頂向下:1:錄入50個學生的成績2:統(tǒng)計個分數(shù)段學生的人數(shù)3:顯示統(tǒng)計結(jié)果S1.1:使i=1S1.2:輸入ni學生的成績S1.3:i=i+1S1.4:如果i≦50,執(zhí)行S1.2S2.1:使i=1S2.2:判斷ni學生的屬于哪個分數(shù)段,該分數(shù)段人數(shù)+1S2.3:i=i+1S2.4:如果i≦50,執(zhí)行S2.2S3.1:使i=1S3.2:顯示countiS3.3:i=i+1S3.4:如果i≦5,執(zhí)行S3.2#defineN5030303030NN3.2.2標示符與變量1、變量變量:在程序執(zhí)行過程中其值可以改變的存儲單元,該存儲單元的名字稱為變量名。變量有不同的類型,存放不同類型的數(shù)據(jù)。注意:變量要先定義再使用定義變量:類型變量名表;abc變量名變量值inta,b,c;a=3;b=8;c=a+b;a=5;存儲單元38115變量的命名規(guī)則標示符
用于命名程序中的實體對象(如變量,符號常量函數(shù),數(shù)組等)(1)標示符是以字母或下劃線開頭,由字母、數(shù)字及下劃線等組成的字符序列,如:abc,_x1,AB67,NAME2;(2)序列長度最大值依編譯系統(tǒng)而定;(3)區(qū)分大小寫字母,如abc和Abc是不同的變量(4)不允許使用關(guān)鍵字作變量名。例:123dr+43auto5A*2#88(錯誤)_123dr_43Auto(正確)C語言的數(shù)據(jù)類型圖構(gòu)造類型數(shù)組結(jié)構(gòu)(struct)共用體(union)其它類型指針(point)空類型(void)基本數(shù)據(jù)類型數(shù)值型整型基本型(int)短整型(short)長整型(long)無符號型(unsigned)浮點型單精度(float)雙精度(double)長雙精度(longdouble)枚舉型(enum)字符型(char)字符字符串在C語言中,數(shù)據(jù)類型用相應的關(guān)鍵字表示3.2.3整型類型存儲大小取值范圍int2字節(jié)-215~215-1-32768~32768short2字節(jié)-215~215-1-32768~32768long4字節(jié)-231~231-1longlong8字節(jié)-263~263-1身份證號,學號?------沒有負數(shù)!符號位數(shù)值位115C語言的unsigned和signed數(shù)對整型和字符型1、signed:有符號數(shù)可以存放正數(shù)和負數(shù)2、unsigned:無符號數(shù)只能存放正數(shù)(實數(shù)沒有unsigned和signed的區(qū)分)如:身份證號,學號等。
取消符號位,與右邊的各位一起用來表示數(shù)值本身。數(shù)值位16符號位數(shù)值位115整型默認有符號型3.2.3整型unsignedint0~216-10~65535unsignedshortint0~216-10~65535unsignedlongint0~232-1類型存儲大小取值范圍int16bit-215~215-1-32768~32768shortint16bit-215~215-1-32768~32768longint32bit-231~231-1intmain(){charc1,c2;c1='a';c2=98;printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);return0;}3.2.4字符型數(shù)據(jù)c1c2變量名變量值a98存儲單元97(1)可以是轉(zhuǎn)義字符\n(2)存儲:字符的ASCII碼(3)輸出:整數(shù)或字符(4)允許對字符進行算術(shù)運算(即對ASCII碼值進行算術(shù)運算)字符變量:關(guān)鍵字char,占1字節(jié)字符常量:用單引號括起來的單個字符A0303例:字符數(shù)據(jù)的算術(shù)運算。3.2.4字符型數(shù)據(jù)intmain(){charc1,c2;c1='a';c2=98;printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);return0;}運行結(jié)果:ab9798c1c2變量名變量值a98存儲單元97字符ASCII碼a97b98c99c1+1;'a'+1;以字符方式輸出以整數(shù)方式輸出A0303例:字符數(shù)據(jù)的算術(shù)運算。課堂練習:給定一個小寫字母,輸出大寫字母。
#include<>intmain()
{charc1,c2;c1=‘a(chǎn)’;c2=c1-32;printf("%c",c2);return0;} 運行結(jié)果:Pleaseinputachar:a(輸入)A(輸出)3.2.4字符型數(shù)據(jù)3.2.5浮點型數(shù)據(jù)實型變量分為三種:1、單精度:float(有效數(shù)字7位)2、雙精度:double(有效數(shù)字16位)3、長雙精度:longdouble(有效數(shù)字19位)。3.4.2舍入誤差intmain(){floata,b;b=a+20;
printf("%f\n",b);return0;}實際:期望:錯誤原因:float有效數(shù)字7位,后面的數(shù)字無意義。如何得到正確計算結(jié)果?doubleA0304例:數(shù)據(jù)有效長度數(shù)據(jù)在內(nèi)存中的存儲方式1.內(nèi)存單元的地址:內(nèi)存單元的編號,與變量名對應。2.內(nèi)存單元的內(nèi)容:變量的值。例:對如下定義:inta,b;charc;floatx;變量a,b,c,x的內(nèi)存分配情況:abxc基本數(shù)據(jù)類型練習1.以下正確的字符常量是()A)‘A’B)’\398’C)"A"D)’\xgh’2.以下正確的整數(shù)常量是()
3.以下是正確的實型常量是()A)9.0B)0.5eC)1.2e+2.6D)e-24.設(shè)有chara=‘a(chǎn)’;inti=2;printf("%c",a+i)的結(jié)果為:A)‘c’B)‘d’C)‘r’D)'g‘5、以下轉(zhuǎn)義字符用于換行的是()。A)'\r'B)'\t'C)'\n'D)'\\'3.2.7運算符和表達式運算符的優(yōu)先級為:()*,/高低%+,-1基本算數(shù)運算符+(加),-(減法/取負),*(乘),/(除),%(模運算,即求余數(shù))關(guān)于除法運算"/"的說明a/b:
①a,b都是整數(shù),其商取整數(shù),小數(shù)部分舍棄例:5/2=2結(jié)果取整商值‘a(chǎn)’/2=4897/2的整商值
②a,b其一是實型,另一個自動轉(zhuǎn)換為實型例如:5./2=2.5;例如:1/2=0;關(guān)于求余數(shù)運算符"%"的說明a%b:
求a除以b的余數(shù)。
①a,b均為整型,或者單字符數(shù)據(jù)②運算結(jié)果為整數(shù),結(jié)果為a除以b的余數(shù)。例:5%2=1‘a(chǎn)’%2=197%25.0%2錯
自增(++)、自減(--)運算實例A0305例:自增自減運算符intmain(){inta,b,c,d;a=5;b=5;c=++a;d=b++;printf("c=%d\n",c);printf("d=%d\n",d);printf("a=%d,b=%d
\n",a,b);return0;}先將a值自加1,再將增加后的a值賦值給c先將b的值賦給d,然后b再自加1輸出結(jié)果:c=6d=5a=6,b=6++ii=i+1,使i的值增1--ii=i-1,使i的值減1自增(++)、自減(--)運算2、用法與運算規(guī)則
(1)前置運算:++i、--i;即先增減、后運算先使i增(減)1,再以增、減后的值參與其它運算
(2)后置運算:i++、i--。即先運算、后增減變量先參與其它運算,然后再使變量的值增、減1【自增、自減運算的幾點說明】1)++、--只能用于變量,不能用于常量和表達式。例1:5++、--(a+b)錯誤2)其結(jié)合方向是從右到左,注意前置、后置問題。例2:inta=5,b;b=-a++;運算結(jié)果:a=6b=-5(a++:后置運算,先引用變量的值,然后變量值加1)3)在表達式中,避免這種用法x+++x+++x++算術(shù)表達式例:設(shè)有定義:floata=2,b=4,h=3;,以下C語言表達式與代數(shù)式結(jié)果不同的是()A.(a+b)*h/2B.(1/2)*(a+b)*hC.(a+b)*h*1/2D.h/2*(a+b)例:a/*簡單表達式*/2/*簡單表達式*/(x+y)/2–1/*復雜算術(shù)表達式*/(1)概念:用運算符和括號將運算對象(常量、變量和函數(shù)等)連接起來的、符合語法規(guī)則的式子,稱為表達式。(2)表達式求值:按運算符的優(yōu)先級高低次序執(zhí)行算術(shù)表達式常用函數(shù):1)冪次方用函數(shù)pow()3)平方根用函數(shù)sqrt()表示使用以上數(shù)學函數(shù)需要#include<>例1:代數(shù)式3x3+x-2算術(shù)表達式:3*pow(x,3)+x-2例2代數(shù)式
算術(shù)表達式:a/2-(6*y)/(5*x)例:inti;floatf;doubled;longe如何計算:10+’a’+i*f-d/e?3.7不同類型數(shù)據(jù)之間的轉(zhuǎn)化1.自動轉(zhuǎn)化
2.類型強制轉(zhuǎn)化混合運算的轉(zhuǎn)化規(guī)則轉(zhuǎn)化規(guī)則:運算符兩側(cè)的操作數(shù)的數(shù)據(jù)類型不同,則系統(tǒng)"先轉(zhuǎn)換、后運算",首先將數(shù)據(jù)自動轉(zhuǎn)換成同一類型,然后在同一類型數(shù)據(jù)間進行運算。double←float↑long↑unsigned↑int←char,short1)←表示必須的轉(zhuǎn)換。char和short型必須轉(zhuǎn)換成int型,float型必須轉(zhuǎn)換成double型。2)↑表示不同類型的轉(zhuǎn)換方向。3.7不同類型數(shù)據(jù)之間的轉(zhuǎn)化類型強制轉(zhuǎn)化和自動轉(zhuǎn)化實例inti;floatf;doubled;longe10+’a’+i*f-d/e計算機從左到右掃描1)10+’a’10+97=107i*fi,f轉(zhuǎn)為double運算107轉(zhuǎn)為double+i*fe轉(zhuǎn)為double上述類型轉(zhuǎn)換為系統(tǒng)自動進行。double←float↑long↑unsigned↑int←char,short數(shù)據(jù)類型強制性轉(zhuǎn)化y=3A0306例:取整運算main();inty;y=(int)x;printf("y=%d",y);printf("x=%f",x);}強制轉(zhuǎn)換:轉(zhuǎn)化為為指定的數(shù)據(jù)類型。格式:
(要轉(zhuǎn)換成的數(shù)據(jù)類型)(被轉(zhuǎn)換的表達式)強制轉(zhuǎn)換類型得到的是一個所需類型的中間量,原表達式類型并不發(fā)生變化。將轉(zhuǎn)化為整型數(shù)賦值給y,但x本身的類型和其值未改變(1)類型名稱必須用()括號括起來(2)強制轉(zhuǎn)換類型得到的是一個所需類型的中間量,原表達式類型并不發(fā)生變化。(3)當被轉(zhuǎn)換的表達式是一個簡單表達式(如簡單變量)時,外面的一對圓括號可以缺省。數(shù)據(jù)類型強制性轉(zhuǎn)化說明(double)a(float)5/2(float)(5/2)(double)(a)(float)(5)/2將5轉(zhuǎn)換成實型再除以2;()(float)(5/2)將5整除2的結(jié)果轉(zhuǎn)換成實型算數(shù)運算符練習(1)1.設(shè)intx,y=3;執(zhí)行x=y++之后,x,y的值分別為:A)3,5B)4,5C)3,4D)4,42.設(shè)有intm,i=5;執(zhí)行m=++i之后,m,i的值分別為:A)5,5B)5,6C)6,6D)6,53.表達式7%5的值為:()A)1B)2.5C)2D)04.設(shè)有;表達式(float)a+b/2+(int)x%2的結(jié)果值為:()A)3B)5C)5.0D)75、,y=3.6,則表達式(int)(x+y)的結(jié)果值為:()A)6B)4C)3D)76、,y=3.6,則表達式(int)x+y的結(jié)果值為:()A)7B)4C)3.6D)7、設(shè)有chara='A';inti=a/2;printf("%d",i)的結(jié)果為:()A)65B)66C)32D)67算數(shù)運算符練習(2)3.3C語言的語句1.控制語句:(1)選擇結(jié)構(gòu)控制語句:if()~else~,switch()~(2)循環(huán)結(jié)構(gòu)控制語句:do~while(),for()~,while()~,break,continue(3)其它控制語句:goto,return2.函數(shù)調(diào)用語句:由一次函數(shù)調(diào)用加一個分號構(gòu)成。例如,printf("ThisisaCfunctionstatement.");3.表達式語句:表達式后加一個分號構(gòu)成。例如:num=5;是一個賦值語句。4.空語句:僅由一個分號構(gòu)成,不執(zhí)行任何操作。例:;5.復合語句:由大括號括起來的一組語句構(gòu)成。例如:main(){……{……}/*復合語句。。*/……}3.2C語言的語句注意:沒有分號賦值語句及賦值運算符賦值運算符:=
變量=表達式將表達式的值賦給變量例1:t=x+5p=q=r=9x=(y=1)-(z=2)P=9x=-1注意:賦值運算符按自右而左的結(jié)合順序例:floatf;f=23;/*計算機中f=23.00000*/注意:將右邊表達式類型轉(zhuǎn)化為左邊變量的類型例:a+=2a=a+2a*=3a=a*3x+=y+7x=x+(y+7)a*=5+6a=a*(5+6)a/=3*5a=a/(3*5)復合賦值運算+=-=*=/=%=<<=>>=&=^=|=運算時要把整個表達式當做一個整體3.4數(shù)據(jù)輸出/輸入1)C語言中本身不提供輸入/輸出語句,所有的輸入/輸出操作都是由函數(shù)來實現(xiàn)的。printf,scanf,putchar,getchar2)使用輸入輸出庫函數(shù)時,必須#include<>3.4數(shù)據(jù)的輸入輸出#include<>intmain(){floata,b,c,disc,x1,x2,p,q;printf("輸入abc:");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;}A0307例:求ax2+bx+c=0方程的根。設(shè)b2-4ac>0
a,b,c由鍵盤輸入計算disc=b2-4ac計算根x1和x2輸入abc輸出x1,x2計算p和qprintf函數(shù)輸出數(shù)據(jù)功能:向屏幕輸出一個或多個任意類型的數(shù)據(jù)。
語法:printf(格式控制字符串,輸出項表列);例:printf("max=%d",c);原樣輸出的字符串格式字符串輸出列表:變量或表達式
printf("Theareais%f",a);printf("%c%c\n",c1,c2);printf("Pleaseinputachar:");整形實型字符型多用于提示信息
printf("sum=%d",a+b);printf函數(shù)輸出數(shù)據(jù)(1)常用格式符之一%d,按整型數(shù)的實際長度輸出十進制數(shù)%f,輸出實數(shù)(單、雙精度),以小數(shù)形式輸出%c,輸出一個字符%s,輸出一個字符串A0308例:輸出不同類型的數(shù)據(jù)#include<>voidmain(){inti=2;charc=′H′;floatx=3.14;printf("i=%d,c=%c,x=%f\n",i,c,x);}輸出結(jié)果i=2,c=H,xprintf格式字符說明%f,不指定字段寬度,整數(shù)全部輸出,并輸出6位小數(shù)%,指定輸出共m列,其中小數(shù)n位例:輸出實數(shù)#include<>voidmain(){floatx,y;;;printf("%f\n",x+y);}運行結(jié)果只有前7位有效運行結(jié)果scanf函數(shù)輸入數(shù)據(jù)功能:從標準輸入設(shè)備中讀字符串語法:scanf(控制字符串,參數(shù)1,參數(shù)2,…)1)輸入的數(shù)據(jù)存放在參數(shù)列表中,參數(shù)必須是地址(&變量)若控制字符串中包含普通字符,則輸入時必須與其對應格式說明,用"%d%d"格式輸入時,不能用逗號作為數(shù)據(jù)分割符,可以用回車和tab鍵例:scanf("%d,%d",&a,&b);例452:inta,b;scanf("%d,%d",&a,&b);printf("a=%d,b=%d",a,b);輸入:100,200輸出:a=100,b=2001.輸入變量前要加符號&2.輸入函數(shù)格式要求嚴格3.類型必須匹配4.控制串中的普通字符必須原樣一起輸入floatffff輸入函數(shù)scanf例452:inta,b;scanf("%d%d",&a,&b);printf("a=%d,b=%d",a,b);輸入:100□
200輸出:a=100,b=200用系統(tǒng)默認的分隔符:回車、tab鍵、空格
例如:scanf("a=%d,b=%d",&a,&b);輸入a=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《針灸按摩基礎(chǔ)》課件
- 2020-2021學年遼寧省鐵嶺市六校高一下學期期末聯(lián)考地理試題
- 小學一年級口算題:20以內(nèi)的加減混合
- 小學一年級20以內(nèi)加減法試題口算速算練習題
- 2020年石油知識競賽試題215題及答案
- 三年級上冊25 灰雀
- 《紅樹灣營銷報告》課件
- 《騰訊內(nèi)外環(huán)境分析》課件
- 人的生殖和發(fā)育北師大版-課件
- 《焦點課題模板PU生產(chǎn)模式改善和環(huán)境治理》課件
- 2024-2025學年 數(shù)學二年級上冊冀教版期末測試卷(含答案)
- 2024年1月遼寧省普通高中學業(yè)水平合格性考試物理試題(含答案解析)
- 期末測試卷(試題)-2024-2025學年四年級上冊數(shù)學滬教版
- 泰安市生育保險待遇申報表
- 5WHY分析報告模板-改進版
- 移動式虹吸管防汛搶險設(shè)備(移動式虹吸搶險泵)
- 魯教版選修《將軍族》原文閱讀
- FAF、PAF型電站動葉可調(diào)軸流式送風機、一次風機安裝和使用維護說明書B本(1)
- 南京工程學院圖書館地源熱泵
- 宮頸癌篩查健康宣講PPT優(yōu)秀課件
- 輔警年度考核登記表
評論
0/150
提交評論