




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
語言程序設計電子與教案第三章簡單的C程序設計——順序3.1順序程序設計舉例3.2數據的表現形式及其運算
常量、變量
整形、字符型、浮點型
運算符及表達式3.3C語句——賦值語句3.4數據的輸入和輸出
scanf
和printf
getchar和putchar小結順序程序設計舉例#include<>intmain(){floatf,c;f=68.0;c=(5/9)*(f–32);printf("f=%f\nc=%f\n",f,c);return0;}A0301華氏溫度(如68℉)轉為攝氏溫度(如20℃)輸入f的值輸出c的值C=順序程序設計舉例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例:根據圓半徑,求圓周長和圓面積。輸入半徑r的值輸出a、b的值半徑周長面積周長a=2*pi*r面積b=pi*r*rscanf("%f",&r);鍵盤輸入一、數據的概念在計算機科學中,數據是指能由程序處理的對象。日常生活中的數字、字符、圖形圖象及聲音等,在計算機中均作為數據看待。二、數據的類型在高級語言中,每一個數據都屬于一個特定的類型。不同類型的數據的表示、存儲及操作不相同。3.2數據的表現形式及其運算姓名Alice性別F年齡20英語80數學85平均字符串字符整型實型實型實型3.2.1常量與變量3.3.1常量和符號常量
1、常量:在程序運行過程中,其值不能被改變的量。常量說明關鍵字:const。
2、常量的分類:1)整型常量。如:1234,562)實型常量。如:3)字符常量。如:‘A’,‘a’,‘m'4)字符串常量。如:"A","China"5)轉義字符。如:'\n','\t','\123','\xF9'6)符號常量。如:#defineN30轉義字符例:在屏幕上輸出一個笑臉(ASCII碼值為2)#include<>voidmain(){printf("%c\n",2);/*輸出"笑臉"字符*/
}增加一個轉義字符的圖符號常量概念:用一個標識符表示常量#define標識符常量表達式
例:注意:1)標識符一般用大寫2)不能給符號常量賦值例:PI=6;錯誤常用于:(1)把有意義的常數定義為符號常量(2)在程序中多次出現的常數,定義為符號常量優點:含義清晰;一改全改#include<>main(){floatr,area;printf("pleaseenterr:");
scanf("%f",&r);area=PI*r*r;printf("Theareais%f",a);}符號常量的應用例2.3錄入50個學生的成績,統計100~90,89~80,79~70,69~60,59~0個分數段學生的人數,并顯示統計結果(統計結果記為count)自頂向下:1:錄入50個學生的成績2:統計個分數段學生的人數3:顯示統計結果S1.1:使i=1S1.2:輸入ni學生的成績S1.3:i=i+1S1.4:如果i≦50,執行S1.2S2.1:使i=1S2.2:判斷ni學生的屬于哪個分數段,該分數段人數+1S2.3:i=i+1S2.4:如果i≦50,執行S2.2S3.1:使i=1S3.2:顯示countiS3.3:i=i+1S3.4:如果i≦5,執行S3.2#defineN5030303030NN3.2.2標示符與變量1、變量變量:在程序執行過程中其值可以改變的存儲單元,該存儲單元的名字稱為變量名。變量有不同的類型,存放不同類型的數據。注意:變量要先定義再使用定義變量:類型變量名表;abc變量名變量值inta,b,c;a=3;b=8;c=a+b;a=5;存儲單元38115變量的命名規則標示符
用于命名程序中的實體對象(如變量,符號常量函數,數組等)(1)標示符是以字母或下劃線開頭,由字母、數字及下劃線等組成的字符序列,如:abc,_x1,AB67,NAME2;(2)序列長度最大值依編譯系統而定;(3)區分大小寫字母,如abc和Abc是不同的變量(4)不允許使用關鍵字作變量名。例:123dr+43auto5A*2#88(錯誤)_123dr_43Auto(正確)C語言的數據類型圖構造類型數組結構(struct)共用體(union)其它類型指針(point)空類型(void)基本數據類型數值型整型基本型(int)短整型(short)長整型(long)無符號型(unsigned)浮點型單精度(float)雙精度(double)長雙精度(longdouble)枚舉型(enum)字符型(char)字符字符串在C語言中,數據類型用相應的關鍵字表示3.2.3整型類型存儲大小取值范圍int2字節-215~215-1-32768~32768short2字節-215~215-1-32768~32768long4字節-231~231-1longlong8字節-263~263-1身份證號,學號?------沒有負數!符號位數值位115C語言的unsigned和signed數對整型和字符型1、signed:有符號數可以存放正數和負數2、unsigned:無符號數只能存放正數(實數沒有unsigned和signed的區分)如:身份證號,學號等。
取消符號位,與右邊的各位一起用來表示數值本身。數值位16符號位數值位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字符型數據c1c2變量名變量值a98存儲單元97(1)可以是轉義字符\n(2)存儲:字符的ASCII碼(3)輸出:整數或字符(4)允許對字符進行算術運算(即對ASCII碼值進行算術運算)字符變量:關鍵字char,占1字節字符常量:用單引號括起來的單個字符A0303例:字符數據的算術運算。3.2.4字符型數據intmain(){charc1,c2;c1='a';c2=98;printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);return0;}運行結果:ab9798c1c2變量名變量值a98存儲單元97字符ASCII碼a97b98c99c1+1;'a'+1;以字符方式輸出以整數方式輸出A0303例:字符數據的算術運算。課堂練習:給定一個小寫字母,輸出大寫字母。
#include<>intmain()
{charc1,c2;c1=‘a’;c2=c1-32;printf("%c",c2);return0;} 運行結果:Pleaseinputachar:a(輸入)A(輸出)3.2.4字符型數據3.2.5浮點型數據實型變量分為三種:1、單精度:float(有效數字7位)2、雙精度:double(有效數字16位)3、長雙精度:longdouble(有效數字19位)。3.4.2舍入誤差intmain(){floata,b;b=a+20;
printf("%f\n",b);return0;}實際:期望:錯誤原因:float有效數字7位,后面的數字無意義。如何得到正確計算結果?doubleA0304例:數據有效長度數據在內存中的存儲方式1.內存單元的地址:內存單元的編號,與變量名對應。2.內存單元的內容:變量的值。例:對如下定義:inta,b;charc;floatx;變量a,b,c,x的內存分配情況:abxc基本數據類型練習1.以下正確的字符常量是()A)‘A’B)’\398’C)"A"D)’\xgh’2.以下正確的整數常量是()
3.以下是正確的實型常量是()A)9.0B)0.5eC)1.2e+2.6D)e-24.設有chara=‘a’;inti=2;printf("%c",a+i)的結果為:A)‘c’B)‘d’C)‘r’D)'g‘5、以下轉義字符用于換行的是()。A)'\r'B)'\t'C)'\n'D)'\\'3.2.7運算符和表達式運算符的優先級為:()*,/高低%+,-1基本算數運算符+(加),-(減法/取負),*(乘),/(除),%(模運算,即求余數)關于除法運算"/"的說明a/b:
①a,b都是整數,其商取整數,小數部分舍棄例:5/2=2結果取整商值‘a’/2=4897/2的整商值
②a,b其一是實型,另一個自動轉換為實型例如:5./2=2.5;例如:1/2=0;關于求余數運算符"%"的說明a%b:
求a除以b的余數。
①a,b均為整型,或者單字符數據②運算結果為整數,結果為a除以b的余數。例:5%2=1‘a’%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輸出結果:c=6d=5a=6,b=6++ii=i+1,使i的值增1--ii=i-1,使i的值減1自增(++)、自減(--)運算2、用法與運算規則
(1)前置運算:++i、--i;即先增減、后運算先使i增(減)1,再以增、減后的值參與其它運算
(2)后置運算:i++、i--。即先運算、后增減變量先參與其它運算,然后再使變量的值增、減1【自增、自減運算的幾點說明】1)++、--只能用于變量,不能用于常量和表達式。例1:5++、--(a+b)錯誤2)其結合方向是從右到左,注意前置、后置問題。例2:inta=5,b;b=-a++;運算結果:a=6b=-5(a++:后置運算,先引用變量的值,然后變量值加1)3)在表達式中,避免這種用法x+++x+++x++算術表達式例:設有定義:floata=2,b=4,h=3;,以下C語言表達式與代數式結果不同的是()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/*復雜算術表達式*/(1)概念:用運算符和括號將運算對象(常量、變量和函數等)連接起來的、符合語法規則的式子,稱為表達式。(2)表達式求值:按運算符的優先級高低次序執行算術表達式常用函數:1)冪次方用函數pow()3)平方根用函數sqrt()表示使用以上數學函數需要#include<>例1:代數式3x3+x-2算術表達式:3*pow(x,3)+x-2例2代數式
算術表達式:a/2-(6*y)/(5*x)例:inti;floatf;doubled;longe如何計算:10+’a’+i*f-d/e?3.7不同類型數據之間的轉化1.自動轉化
2.類型強制轉化混合運算的轉化規則轉化規則:運算符兩側的操作數的數據類型不同,則系統"先轉換、后運算",首先將數據自動轉換成同一類型,然后在同一類型數據間進行運算。double←float↑long↑unsigned↑int←char,short1)←表示必須的轉換。char和short型必須轉換成int型,float型必須轉換成double型。2)↑表示不同類型的轉換方向。3.7不同類型數據之間的轉化類型強制轉化和自動轉化實例inti;floatf;doubled;longe10+’a’+i*f-d/e計算機從左到右掃描1)10+’a’10+97=107i*fi,f轉為double運算107轉為double+i*fe轉為double上述類型轉換為系統自動進行。double←float↑long↑unsigned↑int←char,short數據類型強制性轉化y=3A0306例:取整運算main();inty;y=(int)x;printf("y=%d",y);printf("x=%f",x);}強制轉換:轉化為為指定的數據類型。格式:
(要轉換成的數據類型)(被轉換的表達式)強制轉換類型得到的是一個所需類型的中間量,原表達式類型并不發生變化。將轉化為整型數賦值給y,但x本身的類型和其值未改變(1)類型名稱必須用()括號括起來(2)強制轉換類型得到的是一個所需類型的中間量,原表達式類型并不發生變化。(3)當被轉換的表達式是一個簡單表達式(如簡單變量)時,外面的一對圓括號可以缺省。數據類型強制性轉化說明(double)a(float)5/2(float)(5/2)(double)(a)(float)(5)/2將5轉換成實型再除以2;()(float)(5/2)將5整除2的結果轉換成實型算數運算符練習(1)1.設intx,y=3;執行x=y++之后,x,y的值分別為:A)3,5B)4,5C)3,4D)4,42.設有intm,i=5;執行m=++i之后,m,i的值分別為:A)5,5B)5,6C)6,6D)6,53.表達式7%5的值為:()A)1B)2.5C)2D)04.設有;表達式(float)a+b/2+(int)x%2的結果值為:()A)3B)5C)5.0D)75、,y=3.6,則表達式(int)(x+y)的結果值為:()A)6B)4C)3D)76、,y=3.6,則表達式(int)x+y的結果值為:()A)7B)4C)3.6D)7、設有chara='A';inti=a/2;printf("%d",i)的結果為:()A)65B)66C)32D)67算數運算符練習(2)3.3C語言的語句1.控制語句:(1)選擇結構控制語句:if()~else~,switch()~(2)循環結構控制語句:do~while(),for()~,while()~,break,continue(3)其它控制語句:goto,return2.函數調用語句:由一次函數調用加一個分號構成。例如,printf("ThisisaCfunctionstatement.");3.表達式語句:表達式后加一個分號構成。例如:num=5;是一個賦值語句。4.空語句:僅由一個分號構成,不執行任何操作。例:;5.復合語句:由大括號括起來的一組語句構成。例如:main(){……{……}/*復合語句。。*/……}3.2C語言的語句注意:沒有分號賦值語句及賦值運算符賦值運算符:=
變量=表達式將表達式的值賦給變量例1:t=x+5p=q=r=9x=(y=1)-(z=2)P=9x=-1注意:賦值運算符按自右而左的結合順序例:floatf;f=23;/*計算機中f=23.00000*/注意:將右邊表達式類型轉化為左邊變量的類型例: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數據輸出/輸入1)C語言中本身不提供輸入/輸出語句,所有的輸入/輸出操作都是由函數來實現的。printf,scanf,putchar,getchar2)使用輸入輸出庫函數時,必須#include<>3.4數據的輸入輸出#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方程的根。設b2-4ac>0
a,b,c由鍵盤輸入計算disc=b2-4ac計算根x1和x2輸入abc輸出x1,x2計算p和qprintf函數輸出數據功能:向屏幕輸出一個或多個任意類型的數據。
語法:printf(格式控制字符串,輸出項表列);例:printf("max=%d",c);原樣輸出的字符串格式字符串輸出列表:變量或表達式
printf("Theareais%f",a);printf("%c%c\n",c1,c2);printf("Pleaseinputachar:");整形實型字符型多用于提示信息
printf("sum=%d",a+b);printf函數輸出數據(1)常用格式符之一%d,按整型數的實際長度輸出十進制數%f,輸出實數(單、雙精度),以小數形式輸出%c,輸出一個字符%s,輸出一個字符串A0308例:輸出不同類型的數據#include<>voidmain(){inti=2;charc=′H′;floatx=3.14;printf("i=%d,c=%c,x=%f\n",i,c,x);}輸出結果i=2,c=H,xprintf格式字符說明%f,不指定字段寬度,整數全部輸出,并輸出6位小數%,指定輸出共m列,其中小數n位例:輸出實數#include<>voidmain(){floatx,y;;;printf("%f\n",x+y);}運行結果只有前7位有效運行結果scanf函數輸入數據功能:從標準輸入設備中讀字符串語法:scanf(控制字符串,參數1,參數2,…)1)輸入的數據存放在參數列表中,參數必須是地址(&變量)若控制字符串中包含普通字符,則輸入時必須與其對應格式說明,用"%d%d"格式輸入時,不能用逗號作為數據分割符,可以用回車和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.輸入函數格式要求嚴格3.類型必須匹配4.控制串中的普通字符必須原樣一起輸入floatffff輸入函數scanf例452:inta,b;scanf("%d%d",&a,&b);printf("a=%d,b=%d",a,b);輸入:100□
200輸出:a=100,b=200用系統默認的分隔符:回車、tab鍵、空格
例如:scanf("a=%d,b=%d",&a,&b);輸入a=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CECS 10365-2024太陽能光伏投光燈
- T/CECS 10353-2024內墻用藝術裝飾涂料
- T/CECS 10316-2023建筑用一體化智慧能源站
- T/CECS 10158-2021天冬聚脲美縫劑
- T/CECS 10107-2020超高性能混凝土(UHPC)技術要求
- T/CCS 071-2023井工煤礦智能化帶式輸送機運維管理規范
- T/CCOA 44-2023稻谷清理干燥技術規程
- T/CBTMA 0001-2019技術轉移服務人員職業規范
- T/CASTEM 1008-2023科技評估質量控制規范
- T/CARSA 2-2022微納衛星高光譜影像數據基礎產品規范
- 《危重病人護理常規》課件
- 小學生認識醫生的課件
- 2023-2024學年人教版數學八年級下冊期末復習試卷(含答案)
- 2025中國華電集團限公司校招+社招高頻重點提升(共500題)附帶答案詳解
- 2024年高級測井工職業技能鑒定理論知識考試題庫(含答案)
- 中國科學院大學《機器學習(一級核心)》2021-2022學年第一學期期末試卷
- 防返貧業務培訓
- 綜合智慧零碳園區項目可行性研究報告寫作模板-備案審批
- 變更管理安全控制要點
- 一次函數應用說課比賽課件
- TSXCAS 015-2023 全固廢低碳膠凝材料應用技術標準
評論
0/150
提交評論