C語言程序設計分支補充課件_第1頁
C語言程序設計分支補充課件_第2頁
C語言程序設計分支補充課件_第3頁
C語言程序設計分支補充課件_第4頁
C語言程序設計分支補充課件_第5頁
已閱讀5頁,還剩123頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

C語言程序設計分支補充C語言程序設計分支補充C語言程序設計分支補充第2章順序結構和選擇分支結構基本數(shù)據(jù)類型和輸入輸出輸入生日并顯示匯率換算字符加密考核通過了嗎?順序結構計算圓的周長和面積選擇分支結構判斷數(shù)字的奇偶性(if)今年是閏年嗎?(if-else)求解一元二次方程(if-elseif)四則運算(switch)計算存款利息(switch)可以構成三角形嗎?(綜合案例)C語言程序設計分支補充C語言程序設計分支補充C語言程序設計分1第2章順序結構和選擇分支結構基本數(shù)據(jù)類型和輸入輸出輸入生日并顯示匯率換算字符加密考核通過了嗎?順序結構計算圓的周長和面積選擇分支結構判斷數(shù)字的奇偶性(if)今年是閏年嗎?(if-else)求解一元二次方程(if-elseif)四則運算(switch)計算存款利息(switch)可以構成三角形嗎?(綜合案例)第2章順序結構和選擇分支結構基本數(shù)據(jù)類型和輸入輸出本章要點怎樣編寫程序,在屏幕上顯示一些信息?怎樣編寫程序,實現(xiàn)簡單的數(shù)據(jù)處理?什么是分支結構?它的作用是什么?switch語句中的break起什么作用?數(shù)據(jù)在內(nèi)存中是如何存儲的?本章要點怎樣編寫程序,在屏幕上顯示一些信息?導例:輸入生日并顯示1.問題描述

從鍵盤輸入個人生日信息,并在屏幕上顯示相應信息。2.問題分析

問題涉及到了輸入和輸出問題。

使用標準輸入函數(shù)scanf()接收鍵盤輸入的信息,

使用輸出函數(shù)printf()屏幕輸出。

從鍵盤輸入的信息要想輸出到屏幕上,需要先將數(shù)據(jù)存儲到內(nèi)存空間保存起來,然后對其輸出。因此需要定義一個變量用于保存鍵盤輸入的數(shù)。在這里可以定義兩個整型變量分別用于保存生日的月份和日期信息。導例:輸入生日并顯示1.問題描述3.算法描述

定義int變量month和day;

用printf()在屏幕上顯示提示信息“Enterthemonthandthedayofyourbirthday:”;

用scanf()從鍵盤輸入生日月份和日期,分別存儲在變量month和day中;

用printf()在屏幕上顯示生日信息。3.算法描述4.程序實現(xiàn)#include<stdio.h>/*編譯預處理命令*/intmain()/*定義了一個名字為main的函數(shù)*/{ intmonth,day;/*定義兩個整形變量month和day*/printf("Enterthemonthandthedayofyourbirthday:");scanf("%d%d",&month,&day);/*接收鍵盤輸入的兩個整數(shù)*/ printf("Yourbirthdayis:%d%d\n",month,day); return0;}5.運行結果4.程序實現(xiàn)5.運行結果標準輸入函數(shù)scanf()函數(shù)scanf()的一般調用格式為: scanf(“<格式控制字符串>”,地址列表)

格式說明符和地址列表在數(shù)量和類型上要一一對應。int型:%dfloat型:%fdouble型:%lf例如:intmonth,dayscanf("%d%d",&month,&day);“%d%d”是格式控制字符串,%d和%f是格式說明符&是地址符,&month表示變量month的存儲地址。標準輸入函數(shù)scanf()函數(shù)scanf()的一般調用格式為注意:普通字符:原樣輸入盡量不要出現(xiàn)普通字符例如:scanf("%lf",&x);scanf(“%d,%d,%d”,&x,&y,&z);scanf(“%d;%d;%d”,&x,&y,&z);scanf(“%d-%d-%d”,&x,&y,&z);scanf(“x=%dy=%dz=%d”,&x,&y,&z);“”內(nèi)最好不要加任何符號,如果要加提示,這些提示不會自動顯示出來,而必須由操作者手動輸入,否則出現(xiàn)數(shù)據(jù)錯誤。可以采用輸入提示的輸入方式:printf(“x=”);scanf(“%d”,&x);printf(“y=”);scanf(“%d”,&y);printf(“z=”);scanf(“%d”,&z);輸入:9.5輸入:9,5,7輸入:9;5;7輸入:9-5-7輸入:x=9y=5z=7注意:普通字符:原樣輸入盡量不要出現(xiàn)普通字符輸入:9標準輸出函數(shù)printf()函數(shù)printf()的一般調用格式為: printf(“<格式控制字符串>”,輸出列表)

在函數(shù)printf()中的格式控制字符串中還可以包含普通字符,在顯示中起到提示作用。例如: printf(“Yourbirthdayis:%d%d\n”,month,day);printf()的輸出參數(shù)也要和格式說明符一一對應。int型:%dfloatdouble型:%f標準輸出函數(shù)printf()函數(shù)printf()的一般調用格C程序的基本結構

預編譯命令#include<stdio.h>函數(shù)類型main(函數(shù)參數(shù))intmain(){函數(shù)體開始{聲明部分intmonth,day;執(zhí)行部分printf("Enterthemonthandthedayofyourbirthday:");scanf("%d%d",&month,&dayprintf("Yourbirthdayis:%d%d",month,day);return0;}函數(shù)體結束}C程序的基本結構預編譯命令#include<stdio.h2.2基本數(shù)據(jù)類型與基本輸入輸出數(shù)據(jù)類型類型說明符字節(jié)數(shù)取值范圍字符型char1C字符集整型、長整型int、longint4-2147483648~2147483647即-231~(231-1)短整型shortint2-32768~32767即-215~(215-1)無符號整型unsignedint40~4294967295即0~(232-1)無符號短整型Unsignedshortint20~65535即0~(216-1)單精度型float4負數(shù):-3.4028235×1038~-1.401298×10-45正數(shù):1.401298×10-45~3.4028235×1038雙精度型double8負數(shù):-1.79769313486231570×10308~-4.94065645841246544×10-324正數(shù):4.94065645841246544×10-324~1.79769313486231570×10308長雙精度型Longdouble1610-4931~1049322.2基本數(shù)據(jù)類型與基本輸入輸出數(shù)據(jù)類型類型說明符字節(jié)數(shù)取值變量的定義變量定義的一般形式:類型名變量名表;例如:intmonth,day;//定義整型變量floatx;//定義單精度浮點型變量doublearea,length;//定義雙精度浮點型變量double型數(shù)據(jù)比float精度高,取值范圍大變量名:小寫字母;見名知義變量的定義變量定義的一般形式:變量名:小寫字母;見名知義變量的定義定義變量時要指定變量名和數(shù)據(jù)類型類型名變量名表;intmonth,day;floatx;doublearea,length;變量名代表內(nèi)存中的一個存儲單元存放該變量的值該存儲單元的大小由變量的數(shù)據(jù)類型決定C語言中的變量代表保存數(shù)據(jù)的存儲單元數(shù)學中的變量代表未知數(shù)x=x+1變量的定義定義變量時要指定變量名和數(shù)據(jù)類型變量的定義與使用#include<stdio.h>intmain(void){floatmath,computer,total;printf("Enteryourscore:");scanf("%d%d",&math,&computer);

total=math+computer;

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

return0;}一個變量名只能定義一次變量一般都定義在程序的頭上不能定義在程序的中間或后面應該先賦值,后引用變量必須先定義,后使用。變量的定義與使用#include<stdio.h>一個變量導例:匯率換算1.問題描述

假設人民幣對美元的匯率是0.1642,計算用戶輸入的人民幣值可以兌換多少美元。2.問題分析

人民幣兌換美元的計算公式為:dollar=rmb×rate3.算法描述

確定匯率,rate=0.1642;

接收用戶輸入的人民幣值,將其賦值給rmb;

計算公式:dollar=rmb*rate;

屏幕輸出結果。導例:匯率換算1.問題描述圖2-1匯率換算流程圖4.程序實現(xiàn)#include<stdio.h>main(){intrmb;/*定義整型變量,存放人民幣值*/floatrate;/*定義單雙精度浮點型變量,存放匯率值*/floatdollar;/*定義單精度浮點型變量,存放美元值*/rate=0.1642;/*對變量rate賦值*/printf("rmb=");scanf(“%d”,&rmb);/*接收用戶輸入*/dollar=rmb*rate;/*匯率換算*/printf("¥%dcanexchange$%.2f\n",rmb,dollar);/*調用printf()函數(shù)輸出結果*/}圖2-1匯率換算流程圖4.程序實現(xiàn)格式說明符功能說明%d輸入或輸出十進制整數(shù)%o輸入或輸出八進制整數(shù)%x輸入或輸出十六進制整數(shù)%f輸入或輸出實數(shù)%c輸入或輸出單個字符%s輸入或輸出字符串表2-5常用的格式說明符格式說明符功能說明%d輸入或輸出十進制整數(shù)%o輸入或輸出八進printf()函數(shù)有一些附加格式說明符,可用于修飾格式說明符,格式為:%m和%m.n。如“%.2f”中的“.2”表示輸出2位小數(shù);“%.2s”,則表示只輸出字符串的前兩個字符;“%-10.2f”表示該變量一共占10位,包括整數(shù)部分、小數(shù)點和小數(shù)點后位數(shù),且小數(shù)點后只能保留2位,“-”表示采用左對齊方式。printf()函數(shù)有一些附加格式說明符,可用于修飾格式說明1.問題描述

輸入字符,為其加密。2.問題分析

加密是保證信息安全的常用方法。選用一種最簡單的方式,就是字符變換,變換方式為:字母轉換為其后第三個字母,a變?yōu)閐,b變?yōu)閑,c變?yōu)閒……。3.算法描述接收用戶輸入的一個字符,將其賦值給ch;進行字符變換;屏幕輸出加密結果.導例:字符加密1.問題描述導例:字符加密4.程序實現(xiàn)#include<stdio.h>main(){charch;/*定義一個字符變量ch*/

ch=getchar();/*調用getchar()函數(shù),從鍵盤上輸入一個字符,賦值給ch*/ch=ch+3;/*為字符ch加密*/putchar(ch);/*調用putchar()函數(shù),輸出加密后的ch*/

putchar(‘\n’);}圖2-2為字符加密流程圖4.程序實現(xiàn)圖2-2為字符加密流程圖單字符輸入/輸出單字符輸入函數(shù)getchar()的一般調用格式為: getchar();getchar()函數(shù)為單個字符的輸入函數(shù),通常把輸入的字符賦值給一個字符變量,構成賦值語句。

例如:ch=getchar();單字符輸入/輸出單字符輸入函數(shù)getchar()的一般調用格單字符輸出函數(shù)putchar()的一般調用格式為: putchar(ch);

其中ch是一個字符變量或者常量,也可以是一個ASCII碼值(不大于255的整數(shù))。例如:

putchar(‘T’);/*輸出一個字符T,是一個字符常量*/ putchar(100);/*輸出一個ASCII值是100的字符,即d*/ putchar(‘\n’);/*輸出一個轉義字符,即換行符*/單字符輸出函數(shù)putchar()的一般調用格式為:輸入輸出字符scanf()和printf()%ccharch;scanf("%c",&ch);printf("%c",ch);getchar()和putchar()charch;ch=getchar();putchar(ch);輸入輸出一個字符輸入輸出字符scanf()和printf()輸入輸出字符示例#include<stdio.h>intmain(void){charch1,ch2;ch1=getchar();ch2=getchar();putchar(ch1);putchar('#');putchar(ch2);return0;}AbA#b輸入輸出字符示例#include<stdio.h>Ab輸入輸出字符示例#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輸入輸出字符示例#include<stdio.h>AbC字符運算大小寫英文字母轉換'b'-'a'='B'-'A'……'z'-'a'='Z'-'A''m''M''m'->'M''M'->'m''m'-'a'+'A'='M''M'-'A'+'a'='m''8'-'0'=88+'0'='8'數(shù)字字符和數(shù)字轉換9-0='9'-'0''9'=9+'0''8'8'8'->88->'8'字符運算大小寫英文字母轉換'm'->'M''m'-'導例:考核通過了嗎?1.問題描述

給出三項考核成績,判定單項考核和綜合考核是否通過。2.問題分析假如考核通過標準線是60分,將考核成績與60進行比較,即可判定該項考核是否通過。如果每項考核成績都大于等于60分,則判定綜合考核通過;否則不通過。3.算法描述接收用戶輸入的三項考核成績,存入成績變量中score1、score2、score3;將各項成績與60進行比較,輸出比較結果。導例:考核通過了嗎?1.問題描述4.程序實現(xiàn)#include<stdio.h>main(){intscore1,score2,score3;/*定義各項考核成績變量*//*輸入考核成績*/printf("請輸入三項考核成績:");scanf("%d%d%d",&score1,&score2,&score3);/*輸出考核結果*/printf(“第一項考核結果:%d\n",score1>=60);printf("第二項考核結果:%d\n",score2>=60);printf("第三項考核結果:%d\n",score3>=60);printf("綜合考核結果:%d\n",(score1>=60)&&(score2>=60)&&(score3>=60));}圖2-3考核結果判斷流程圖4.程序實現(xiàn)圖2-3考核結果判斷流程圖運算符與表達式算術運算符

算術運算符用于各種數(shù)值運算,包括5個二元運算符:加(+)、減(-)、乘(*)、除(/)、求余(%),和2個一元運算符:自增(++)、自減(--)。例如: 34+23、23.4-32、54.3*3、80.1/4、100%34如果定義如下變量并賦值:intx;floaty;x=30;y=53.64;x+y、x*y、x/23.5注意/整數(shù)除整數(shù),得整數(shù)如:1/2=0,9/4=2%針對整型數(shù)據(jù)如:5%6=5,9%4=1,100%4=0雙目運算符兩側操作數(shù)的類型要相同運算符與表達式算術運算符注意運算符與表達式使用自增(++)、自減(--)這兩個一元運算符的運算只需一個操作數(shù),一般用于整型變量的加1、減1操作。例如intx;floaty;x=30;y=53.64;x++

x的值加1,變?yōu)?1。

(x++)+yx先與y相加,然后x再加1,表達式結果為83.64;

(++x)+yx先加1,然后再與y相加,結果為84.64。運算符與表達式使用自增(++)、自減(--)這兩個一元運算符運算符與表達式關系運算符

關系運算符用于比較運算,包括6個運算符:

大于(>)、小于(<)、大于等于(>=)、

小于等于(<=)、等于(==)和不等于(!=)。

這6個邏輯運算符運算結果為邏輯值:1或0當條件成立時為真,結果為1;當條件不成立時為假,結果為0。區(qū)分=和==運算符與表達式關系運算符區(qū)分=和==邏輯運算符

邏輯運算符用于邏輯運算,包括3個運算符:

非(!)、與(&&)、或(||

邏輯運算的結果均為邏輯值:1或0。操作數(shù)a操作數(shù)ba&&ba||b!a000010非0011非00010非0非0110運算符與表達式邏輯運算符操作數(shù)a操作數(shù)ba&&ba||b!a000010非在運算表達式中

算術運算符>關系運算符>邏輯運算符運算符的優(yōu)先級運算符功能

>大于

>=大于等于

<小于

<=小于等于

==等于

!=不等于高低優(yōu)先級運算符功能

!非

&&與

||或高低優(yōu)先級在運算表達式中運算符的優(yōu)先級運算符功能高低優(yōu)先級運算符2.3C程序的基本控制結構語句是構造C程序的最基本單位,程序運行的過程也就是語句執(zhí)行的過程,語句執(zhí)行的次序稱為流程控制。C程序有三種控制結構,分別是順序結構、選擇分支結構和循環(huán)結構。

順序結構是指按照語句的書寫順序依次執(zhí)行;

選擇分支結構是指通過對特定條件的判斷,選擇執(zhí)行一個分支;

循環(huán)結構是指在給定條件下,重復執(zhí)行某段程序,直到條件不滿足為止。2.3C程序的基本控制結構語句是構造C程序的最基本單位,程導例:計算圓的周長和面積1.問題描述

從鍵盤輸入圓的半徑,計算圓的周長和面積。2.問題分析

定義3個float型變量,分別用于存儲半徑、周長和面積,然后根據(jù)圓的周長公式perimeter=2πr,面積公式area=πr2進行計算。3.算法描述定義3個float變量r,perimeter和area。鍵盤輸入半徑r。利用公式perimeter=2πr計算周長。利用公式area=πr2計算面積。屏幕輸出周長perimeter和面積area。導例:計算圓的周長和面積1.問題描述4.程序實現(xiàn)#include<stdio.h>#definePI3.14/*宏定義*/main(){floatr,perimeter,area;

printf("Enterradius:");scanf("%f",&r);perimeter=2*PI*r;area=PI*r*r;printf("Perimeter=%.2f,Area=%.2f\n",perimeter,area);}結束輸出:perimeter,area輸入半徑開始計算perimeter計算area圖2-4計算周長和面積的算法流程圖4.程序實現(xiàn)結束輸出:perimeter,area輸入半徑判斷數(shù)字的奇偶性1、問題描述

輸入1個整數(shù),判斷該數(shù)是奇數(shù)還是偶數(shù)。2、問題分析

如果輸入的整數(shù)能夠被2整除,則是偶數(shù),否則是奇數(shù)。3、算法描述輸入一個整數(shù)保存于整型變量number中。判斷條件:能被2整除,如果條件成立,則輸出:偶數(shù)。否則,輸出:奇數(shù)。判斷數(shù)字的奇偶性1、問題描述#include<stdio.h>intmain(void){intnumber;printf("Enteranumber:");scanf("%d",&number);if(number%2==0){printf(“偶數(shù).\n");}else{printf(“奇數(shù).\n");}return0;}falsetruenumber%2==0結束輸出:偶數(shù)輸出:奇數(shù)輸入number開始此處條件內(nèi)由于只有一條語句,故{}可省略#include<stdio.h>falsetruenu今年是閏年嗎?1.問題描述

從鍵盤輸入年份信息,判斷是否為閏年。2.問題分析

如果年份能夠滿足下述任意一個條件,就是閏年;如果兩個條件都不滿足,就不是閏年。

條件一:能被4整除且不能被100整除;

條件二:能被400整除。3.算法描述

輸入年份信息保存于整型變量year中。

判斷條件:能被4整除且不能被100整除或能被400整除,如果條件成立,則輸出:是。

否則,輸出:否。今年是閏年嗎?1.問題描述4.程序實現(xiàn)#include<stdio.h>main(){intyear;

printf("Enteryear:");scanf("%d",&year);

if(year%4==0&&year%100!=0||year%400==0)/*閏年的條件*/ printf("YES\n");else printf("NO\n");

}falsetrueyear%4==0&&year%100!=0||year%400==0結束輸出:YES輸出:NO輸入year開始4.程序實現(xiàn)falsetrueyear%4==0&&yea求解一元二次方程1.問題描述

從鍵盤輸入一元二次方程ax2+bx+c=0的3個系數(shù)a,b,c,編程計算該方程的解,并輸出之。2.問題分析

根據(jù)判別式b2-4ac的值不同,一元二次方程的解可分為以下3種情況:b2-4ac>0,方程有2個實數(shù)解,分別為b2-4ac=0,方程只有1個實數(shù)解,為b2-4ac<0,方程沒有實數(shù)解求解一元二次方程1.問題描述3.算法描述輸入一元二次方程的3個參數(shù)a,b,c。計算判別式b2-4ac,并將結果存在變量s中。根據(jù)判別式的值進行判斷:

如果s>0,輸出方程的2個實數(shù)解;

如果s=0,輸出方程唯一解;

否則(即s<0),輸出沒有實數(shù)解。truefalsetruefalse輸入a,b,c結束s>0輸出2個解開始b2-4acss=0輸出1個解輸出無解3.算法描述truefalsetruefalse輸入a,b,4、程序實現(xiàn)#include<stdio.h>#include<math.h>main(){inta,b,c,s;doublex1,x2;printf("Enter3integers:");scanf(“%d%d%d”,&a,&b,&c);s=b*b-4*a*c;/*條件判斷,輸出結果*/}/*條件判斷,輸出結果*/if(s>0){x1=(-b+sqrt(s))/(2*a);x2=(-b-sqrt(s))/(2*a);printf("x1=%lf,x2=%lf\n",x1,x2);}elseif(s==0){x1=x2=(-b)/(2.0*a);printf("x=%lf\n",x1);}elseprintf(“Nosolution\n”);4、程序實現(xiàn)/*條件判斷,輸出結果*/常用數(shù)學庫函數(shù)庫函數(shù)C語言處理系統(tǒng)提供事先編好的函數(shù),供用戶在編程時調用。scanf(),printf(),exp()在相應的系統(tǒng)文件(頭文件)中定義一些必需的信息。#include命令用戶調用庫函數(shù)時,將相應的頭文件包含到源程序中。例如調用scanf,printf,需要#include<stdio.h>調用sqrt,需要#include<math.h>常用數(shù)學庫函數(shù)庫函數(shù)常用數(shù)學庫函數(shù)平方根函數(shù)sqrt(x)

絕對值函數(shù)fabs(x)fabs(-3.56)的值為3.56冪函數(shù)pow(x,n):xnpow(1.1,2)的值為1.21(即1.12)指數(shù)函數(shù)exp(x):exexp(2.3)的值為e2.3以e為底的對數(shù)函數(shù)log(x):lnxlog(123.45)的值為4.815836以10為底的對數(shù)函數(shù)log10(x):log10xlog10(123.45)的值為2.091491。常用數(shù)學庫函數(shù)平方根函數(shù)sqrt(x)二分支結構和if-else語句if(表達式)

語句1else

語句2if(表達式)

語句1語句1表達式語句2真(非0)假(0)語句1表達式真(非0)假(0)一條語句二分支結構和if-else語句if(表達式)if(表多分支結構和else–if語句else-if語句是最常用的實現(xiàn)多分支(多路選擇)的方法。if(表達式1)語句1;elseif(表達式2)語句2;……elseif(表達式n-1)語句n-1;else語句n;一般格式為:多分支結構和else–if語句else-if語句是最假表達式1表達式2語句1語句2語句n-1語句n真表達式n-1假真假假真n個分支需要n-1次比較if(表達式1)語句1elseif(表達式2)語句2……elseif(表達式n-1)語句n-1else語句n多分支選擇結構還可使用switch語句或if-else語句的嵌套來實現(xiàn)。假表達式1表達式2語句1語句2語句n-1語句n真表達式n/*使用if-else語句的嵌套來實現(xiàn)求解*/if(s>0){x1=(-b+sqrt(s))/(2*a);x2=(-b-sqrt(s))/(2*a);printf("x1=%lf,x2=%lf\n",x1,x2);}elseif(s==0){x1=x2=(-b)/(2.0*a);printf("x=%lf\n",x1);}elseprintf(“Nosolution\n”);if(表達式)

語句1else

語句2if語句if語句/*使用if-else語句的嵌套來實現(xiàn)求解*/if(表達式if-else語句的嵌套的結構if(表達式1)if(表達式2)語句1else語句2elseif(表達式3)語句3else語句4表達式1表達式3語句4真假表達式2語句3語句1語句2真真假假if-else語句的嵌套的結構表達式1表達式3語句4真假表四則運算1、問題描述

求解簡單的四則運算表達式。2、問題分析輸入一個形式如“操作數(shù)運算符操作數(shù)”的四則運算表達式,根據(jù)輸入的運算符,做相應運算,輸出運算結果。3、算法分析鍵盤輸入形式如“操作數(shù)運算符操作數(shù)”的四則運算表達式。根據(jù)運算符的不同,做不同的計算。輸出運算結果。四則運算1、問題描述#include<stdio.h>intmain(void){doublevalue1,value2;charop;/*定義字符型的變量*/scanf("%lf%c%lf",&value1,&op,&value2);if(op=='+')printf("=%.2f\n",value1+value2);elseif(op=='-')printf("=%.2f\n",value1-value2);elseif(op=='*')printf("=%.2f\n",value1*value2);elseif(op=='/')printf("=%.2f\n",value1/value2);elseprintf("Unknownoperator\n");return0;}4、程序實現(xiàn)#include<stdio.h>4、程序實現(xiàn)字符常量'a''z''A''Z''0''9''''\n'ASCII字符集:列出所有可用的字符每個字符:惟一的次序值(ASCII碼)

區(qū)分數(shù)字1和數(shù)字字符'1'字符常量區(qū)分數(shù)字1和數(shù)字字符'1'使用switch語句實現(xiàn)四則運算#include<stdio.h>intmain(void){doublevalue1,value2;charop;scanf("%lf%c%lf",&value1,&op,&value2);switch(op){case'+':printf("=%.2f\n",value1+value2);break;

case'-':printf("=%.2f\n",value1-value2);break;case'*':printf("=%.2f\n",value1*value2);break;case'/':printf("=%.2f\n",value1/value2);break;default:printf("Unknownoperator\n");break;}return0;}使用switch語句實現(xiàn)四則運算#include<stdswitch語句處理多分支選擇問題,3種情況1、在switch語句的每個語句段中都使用break語句switch(表達式){case常量表達式1:語句段1;break;

case常量表達式2:語句段2;break;....

case常量表達式n:語句段n;break;

default:語句段n+1;break;}switch語句處理多分支選擇問題,3種情況計算存款利息1.問題描述

銀行對整存整取存款期限不同對應的存款利率也不同,鍵盤輸入存款本金和存期,計算到期時的利息及利息與本金的和。當前整存整取年息利率:一年:3.25%二年:3.75%三年:4.25%五年:4.75%2.問題分析

本導例需要根據(jù)不同的存款期限決定存款利率,考慮使用switch語句實現(xiàn)多分支選擇結構。計算存款利息1.問題描述3.算法描述鍵盤輸入存款本金和存期。根據(jù)存款期限的不同,按照不同的利率計算利息。輸出利息和本息合計。3.算法描述程序實現(xiàn)#include<stdio.h>main(){doublemoney,rate,rest,total;inttime;

printf("輸入本金:");scanf("%lf",&money);printf("請輸入存期:");scanf("%d",&time);

/*使用switch語句實現(xiàn)利率的選擇*/rest=money*rate*time;total=money+rest;

printf("到期利息:%.2f\n",rest);printf("本息合計:%.2f\n",total);}switch(time){case1:rate=0.0325;break;case2:rate=0.0375;break;case3:rate=0.0425;break;case5:rate=0.0475;break;default:rate=0;}程序實現(xiàn)switch(time){2、在switch中不使用breakswitch(表達式){case常量表達式1:語句段1;

case常量表達式2:語句段2;....

case常量表達式n:語句段n;

default:語句段n+1;}表達式的值=常量表達式2的值表達式語句段1語句段2語句段n語句段n+1表達式的值=常量表達式1的值表達式的值=常量表達式n的值其他switch(time){case1:rate=0.0325;case2:rate=0.0375;case3:rate=0.0425;case5:rate=0.0475;default:rate=0;}rate=?2、在switch中不使用break表達式的值=常量表達式3、在switch的某些語句段中使用break

輸入1個字符,輸出該字符所屬的種類,如空格或回車、數(shù)字字符,其他字符。intmain(void){intblank,digit,i,other;charch;blank=digit=other=0;

printf("Enter10characters:");ch=getchar();switch(ch){case'':case'\n':printf(“該字符是空格或回車”);break;case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':printf(“該字符是數(shù)字字符”);break;default:printf(“該字符是其他字符”);break;}return0;}3、在switch的某些語句段中使用breakintmai可以構成三角形嗎?1.問題描述輸入三條邊,判斷它們能否構成三角形,若能則指出是何種三角形。2.問題分析給定的三條邊,只要兩邊之和大于第三邊即可構成三角形,否則不能構成三角形。在能構成三角形的情況下,如果三邊相等,則是等邊三角形;如果只有兩邊相等,則是等腰三角形??梢钥闯鲞@是多重判斷,需要多次運用if-else語句來實現(xiàn)??梢詷嫵扇切螁??1.問題描述3、算法描述上述問題求解過程以算法的形式描述為:(1)輸入三條邊的值,分別保存于變量a、b、c中;(2)如果a<(b+c),b<(a+c),c<(a+b)三個條件同時成立,則執(zhí)行(3);否則輸出“不能構成三角形!”;(3)如果a=b,b=c,a=c三個條件中至少有一個成立,則執(zhí)行(4);否則輸出“可以構成不等邊三角形!”;(4)如果a=b且b=c,則輸出“可以構成等邊三角形!”;否則輸出“可以構成等腰三角形!”;3、算法描述4.程序實現(xiàn)#include<stdio.h>main(){floata,b,c;printf("請輸入三條邊的值:\n");scanf("%f%f%f",&a,&b,&c);if(((b+c)<a)||((a+c)<b)||((a+b)<c)) printf("不能構成三角形!\n");else if(a!=b&&b!=c&&a!=c) printf("可以構成不等邊三角形!\n"); else if(a==b&&b==c) printf("可以構成等邊三角形!\n"); else if(a==b||b==c||a==c)printf("可以構成等腰三角形!\n");}4.程序實現(xiàn)謝謝!謝謝!64C語言程序設計分支補充C語言程序設計分支補充C語言程序設計分支補充第2章順序結構和選擇分支結構基本數(shù)據(jù)類型和輸入輸出輸入生日并顯示匯率換算字符加密考核通過了嗎?順序結構計算圓的周長和面積選擇分支結構判斷數(shù)字的奇偶性(if)今年是閏年嗎?(if-else)求解一元二次方程(if-elseif)四則運算(switch)計算存款利息(switch)可以構成三角形嗎?(綜合案例)C語言程序設計分支補充C語言程序設計分支補充C語言程序設計分65第2章順序結構和選擇分支結構基本數(shù)據(jù)類型和輸入輸出輸入生日并顯示匯率換算字符加密考核通過了嗎?順序結構計算圓的周長和面積選擇分支結構判斷數(shù)字的奇偶性(if)今年是閏年嗎?(if-else)求解一元二次方程(if-elseif)四則運算(switch)計算存款利息(switch)可以構成三角形嗎?(綜合案例)第2章順序結構和選擇分支結構基本數(shù)據(jù)類型和輸入輸出本章要點怎樣編寫程序,在屏幕上顯示一些信息?怎樣編寫程序,實現(xiàn)簡單的數(shù)據(jù)處理?什么是分支結構?它的作用是什么?switch語句中的break起什么作用?數(shù)據(jù)在內(nèi)存中是如何存儲的?本章要點怎樣編寫程序,在屏幕上顯示一些信息?導例:輸入生日并顯示1.問題描述

從鍵盤輸入個人生日信息,并在屏幕上顯示相應信息。2.問題分析

問題涉及到了輸入和輸出問題。

使用標準輸入函數(shù)scanf()接收鍵盤輸入的信息,

使用輸出函數(shù)printf()屏幕輸出。

從鍵盤輸入的信息要想輸出到屏幕上,需要先將數(shù)據(jù)存儲到內(nèi)存空間保存起來,然后對其輸出。因此需要定義一個變量用于保存鍵盤輸入的數(shù)。在這里可以定義兩個整型變量分別用于保存生日的月份和日期信息。導例:輸入生日并顯示1.問題描述3.算法描述

定義int變量month和day;

用printf()在屏幕上顯示提示信息“Enterthemonthandthedayofyourbirthday:”;

用scanf()從鍵盤輸入生日月份和日期,分別存儲在變量month和day中;

用printf()在屏幕上顯示生日信息。3.算法描述4.程序實現(xiàn)#include<stdio.h>/*編譯預處理命令*/intmain()/*定義了一個名字為main的函數(shù)*/{ intmonth,day;/*定義兩個整形變量month和day*/printf("Enterthemonthandthedayofyourbirthday:");scanf("%d%d",&month,&day);/*接收鍵盤輸入的兩個整數(shù)*/ printf("Yourbirthdayis:%d%d\n",month,day); return0;}5.運行結果4.程序實現(xiàn)5.運行結果標準輸入函數(shù)scanf()函數(shù)scanf()的一般調用格式為: scanf(“<格式控制字符串>”,地址列表)

格式說明符和地址列表在數(shù)量和類型上要一一對應。int型:%dfloat型:%fdouble型:%lf例如:intmonth,dayscanf("%d%d",&month,&day);“%d%d”是格式控制字符串,%d和%f是格式說明符&是地址符,&month表示變量month的存儲地址。標準輸入函數(shù)scanf()函數(shù)scanf()的一般調用格式為注意:普通字符:原樣輸入盡量不要出現(xiàn)普通字符例如:scanf("%lf",&x);scanf(“%d,%d,%d”,&x,&y,&z);scanf(“%d;%d;%d”,&x,&y,&z);scanf(“%d-%d-%d”,&x,&y,&z);scanf(“x=%dy=%dz=%d”,&x,&y,&z);“”內(nèi)最好不要加任何符號,如果要加提示,這些提示不會自動顯示出來,而必須由操作者手動輸入,否則出現(xiàn)數(shù)據(jù)錯誤??梢圆捎幂斎胩崾镜妮斎敕绞剑簆rintf(“x=”);scanf(“%d”,&x);printf(“y=”);scanf(“%d”,&y);printf(“z=”);scanf(“%d”,&z);輸入:9.5輸入:9,5,7輸入:9;5;7輸入:9-5-7輸入:x=9y=5z=7注意:普通字符:原樣輸入盡量不要出現(xiàn)普通字符輸入:9標準輸出函數(shù)printf()函數(shù)printf()的一般調用格式為: printf(“<格式控制字符串>”,輸出列表)

在函數(shù)printf()中的格式控制字符串中還可以包含普通字符,在顯示中起到提示作用。例如: printf(“Yourbirthdayis:%d%d\n”,month,day);printf()的輸出參數(shù)也要和格式說明符一一對應。int型:%dfloatdouble型:%f標準輸出函數(shù)printf()函數(shù)printf()的一般調用格C程序的基本結構

預編譯命令#include<stdio.h>函數(shù)類型main(函數(shù)參數(shù))intmain(){函數(shù)體開始{聲明部分intmonth,day;執(zhí)行部分printf("Enterthemonthandthedayofyourbirthday:");scanf("%d%d",&month,&dayprintf("Yourbirthdayis:%d%d",month,day);return0;}函數(shù)體結束}C程序的基本結構預編譯命令#include<stdio.h2.2基本數(shù)據(jù)類型與基本輸入輸出數(shù)據(jù)類型類型說明符字節(jié)數(shù)取值范圍字符型char1C字符集整型、長整型int、longint4-2147483648~2147483647即-231~(231-1)短整型shortint2-32768~32767即-215~(215-1)無符號整型unsignedint40~4294967295即0~(232-1)無符號短整型Unsignedshortint20~65535即0~(216-1)單精度型float4負數(shù):-3.4028235×1038~-1.401298×10-45正數(shù):1.401298×10-45~3.4028235×1038雙精度型double8負數(shù):-1.79769313486231570×10308~-4.94065645841246544×10-324正數(shù):4.94065645841246544×10-324~1.79769313486231570×10308長雙精度型Longdouble1610-4931~1049322.2基本數(shù)據(jù)類型與基本輸入輸出數(shù)據(jù)類型類型說明符字節(jié)數(shù)取值變量的定義變量定義的一般形式:類型名變量名表;例如:intmonth,day;//定義整型變量floatx;//定義單精度浮點型變量doublearea,length;//定義雙精度浮點型變量double型數(shù)據(jù)比float精度高,取值范圍大變量名:小寫字母;見名知義變量的定義變量定義的一般形式:變量名:小寫字母;見名知義變量的定義定義變量時要指定變量名和數(shù)據(jù)類型類型名變量名表;intmonth,day;floatx;doublearea,length;變量名代表內(nèi)存中的一個存儲單元存放該變量的值該存儲單元的大小由變量的數(shù)據(jù)類型決定C語言中的變量代表保存數(shù)據(jù)的存儲單元數(shù)學中的變量代表未知數(shù)x=x+1變量的定義定義變量時要指定變量名和數(shù)據(jù)類型變量的定義與使用#include<stdio.h>intmain(void){floatmath,computer,total;printf("Enteryourscore:");scanf("%d%d",&math,&computer);

total=math+computer;

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

return0;}一個變量名只能定義一次變量一般都定義在程序的頭上不能定義在程序的中間或后面應該先賦值,后引用變量必須先定義,后使用。變量的定義與使用#include<stdio.h>一個變量導例:匯率換算1.問題描述

假設人民幣對美元的匯率是0.1642,計算用戶輸入的人民幣值可以兌換多少美元。2.問題分析

人民幣兌換美元的計算公式為:dollar=rmb×rate3.算法描述

確定匯率,rate=0.1642;

接收用戶輸入的人民幣值,將其賦值給rmb;

計算公式:dollar=rmb*rate;

屏幕輸出結果。導例:匯率換算1.問題描述圖2-1匯率換算流程圖4.程序實現(xiàn)#include<stdio.h>main(){intrmb;/*定義整型變量,存放人民幣值*/floatrate;/*定義單雙精度浮點型變量,存放匯率值*/floatdollar;/*定義單精度浮點型變量,存放美元值*/rate=0.1642;/*對變量rate賦值*/printf("rmb=");scanf(“%d”,&rmb);/*接收用戶輸入*/dollar=rmb*rate;/*匯率換算*/printf("¥%dcanexchange$%.2f\n",rmb,dollar);/*調用printf()函數(shù)輸出結果*/}圖2-1匯率換算流程圖4.程序實現(xiàn)格式說明符功能說明%d輸入或輸出十進制整數(shù)%o輸入或輸出八進制整數(shù)%x輸入或輸出十六進制整數(shù)%f輸入或輸出實數(shù)%c輸入或輸出單個字符%s輸入或輸出字符串表2-5常用的格式說明符格式說明符功能說明%d輸入或輸出十進制整數(shù)%o輸入或輸出八進printf()函數(shù)有一些附加格式說明符,可用于修飾格式說明符,格式為:%m和%m.n。如“%.2f”中的“.2”表示輸出2位小數(shù);“%.2s”,則表示只輸出字符串的前兩個字符;“%-10.2f”表示該變量一共占10位,包括整數(shù)部分、小數(shù)點和小數(shù)點后位數(shù),且小數(shù)點后只能保留2位,“-”表示采用左對齊方式。printf()函數(shù)有一些附加格式說明符,可用于修飾格式說明1.問題描述

輸入字符,為其加密。2.問題分析

加密是保證信息安全的常用方法。選用一種最簡單的方式,就是字符變換,變換方式為:字母轉換為其后第三個字母,a變?yōu)閐,b變?yōu)閑,c變?yōu)閒……。3.算法描述接收用戶輸入的一個字符,將其賦值給ch;進行字符變換;屏幕輸出加密結果.導例:字符加密1.問題描述導例:字符加密4.程序實現(xiàn)#include<stdio.h>main(){charch;/*定義一個字符變量ch*/

ch=getchar();/*調用getchar()函數(shù),從鍵盤上輸入一個字符,賦值給ch*/ch=ch+3;/*為字符ch加密*/putchar(ch);/*調用putchar()函數(shù),輸出加密后的ch*/

putchar(‘\n’);}圖2-2為字符加密流程圖4.程序實現(xiàn)圖2-2為字符加密流程圖單字符輸入/輸出單字符輸入函數(shù)getchar()的一般調用格式為: getchar();getchar()函數(shù)為單個字符的輸入函數(shù),通常把輸入的字符賦值給一個字符變量,構成賦值語句。

例如:ch=getchar();單字符輸入/輸出單字符輸入函數(shù)getchar()的一般調用格單字符輸出函數(shù)putchar()的一般調用格式為: putchar(ch);

其中ch是一個字符變量或者常量,也可以是一個ASCII碼值(不大于255的整數(shù))。例如:

putchar(‘T’);/*輸出一個字符T,是一個字符常量*/ putchar(100);/*輸出一個ASCII值是100的字符,即d*/ putchar(‘\n’);/*輸出一個轉義字符,即換行符*/單字符輸出函數(shù)putchar()的一般調用格式為:輸入輸出字符scanf()和printf()%ccharch;scanf("%c",&ch);printf("%c",ch);getchar()和putchar()charch;ch=getchar();putchar(ch);輸入輸出一個字符輸入輸出字符scanf()和printf()輸入輸出字符示例#include<stdio.h>intmain(void){charch1,ch2;ch1=getchar();ch2=getchar();putchar(ch1);putchar('#');putchar(ch2);return0;}AbA#b輸入輸出字符示例#include<stdio.h>Ab輸入輸出字符示例#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輸入輸出字符示例#include<stdio.h>AbC字符運算大小寫英文字母轉換'b'-'a'='B'-'A'……'z'-'a'='Z'-'A''m''M''m'->'M''M'->'m''m'-'a'+'A'='M''M'-'A'+'a'='m''8'-'0'=88+'0'='8'數(shù)字字符和數(shù)字轉換9-0='9'-'0''9'=9+'0''8'8'8'->88->'8'字符運算大小寫英文字母轉換'm'->'M''m'-'導例:考核通過了嗎?1.問題描述

給出三項考核成績,判定單項考核和綜合考核是否通過。2.問題分析假如考核通過標準線是60分,將考核成績與60進行比較,即可判定該項考核是否通過。如果每項考核成績都大于等于60分,則判定綜合考核通過;否則不通過。3.算法描述接收用戶輸入的三項考核成績,存入成績變量中score1、score2、score3;將各項成績與60進行比較,輸出比較結果。導例:考核通過了嗎?1.問題描述4.程序實現(xiàn)#include<stdio.h>main(){intscore1,score2,score3;/*定義各項考核成績變量*//*輸入考核成績*/printf("請輸入三項考核成績:");scanf("%d%d%d",&score1,&score2,&score3);/*輸出考核結果*/printf(“第一項考核結果:%d\n",score1>=60);printf("第二項考核結果:%d\n",score2>=60);printf("第三項考核結果:%d\n",score3>=60);printf("綜合考核結果:%d\n",(score1>=60)&&(score2>=60)&&(score3>=60));}圖2-3考核結果判斷流程圖4.程序實現(xiàn)圖2-3考核結果判斷流程圖運算符與表達式算術運算符

算術運算符用于各種數(shù)值運算,包括5個二元運算符:加(+)、減(-)、乘(*)、除(/)、求余(%),和2個一元運算符:自增(++)、自減(--)。例如: 34+23、23.4-32、54.3*3、80.1/4、100%34如果定義如下變量并賦值:intx;floaty;x=30;y=53.64;x+y、x*y、x/23.5注意/整數(shù)除整數(shù),得整數(shù)如:1/2=0,9/4=2%針對整型數(shù)據(jù)如:5%6=5,9%4=1,100%4=0雙目運算符兩側操作數(shù)的類型要相同運算符與表達式算術運算符注意運算符與表達式使用自增(++)、自減(--)這兩個一元運算符的運算只需一個操作數(shù),一般用于整型變量的加1、減1操作。例如intx;floaty;x=30;y=53.64;x++

x的值加1,變?yōu)?1。

(x++)+yx先與y相加,然后x再加1,表達式結果為83.64;

(++x)+yx先加1,然后再與y相加,結果為84.64。運算符與表達式使用自增(++)、自減(--)這兩個一元運算符運算符與表達式關系運算符

關系運算符用于比較運算,包括6個運算符:

大于(>)、小于(<)、大于等于(>=)、

小于等于(<=)、等于(==)和不等于(!=)。

這6個邏輯運算符運算結果為邏輯值:1或0當條件成立時為真,結果為1;當條件不成立時為假,結果為0。區(qū)分=和==運算符與表達式關系運算符區(qū)分=和==邏輯運算符

邏輯運算符用于邏輯運算,包括3個運算符:

非(!)、與(&&)、或(||

邏輯運算的結果均為邏輯值:1或0。操作數(shù)a操作數(shù)ba&&ba||b!a000010非0011非00010非0非0110運算符與表達式邏輯運算符操作數(shù)a操作數(shù)ba&&ba||b!a000010非在運算表達式中

算術運算符>關系運算符>邏輯運算符運算符的優(yōu)先級運算符功能

>大于

>=大于等于

<小于

<=小于等于

==等于

!=不等于高低優(yōu)先級運算符功能

!非

&&與

||或高低優(yōu)先級在運算表達式中運算符的優(yōu)先級運算符功能高低優(yōu)先級運算符2.3C程序的基本控制結構語句是構造C程序的最基本單位,程序運行的過程也就是語句執(zhí)行的過程,語句執(zhí)行的次序稱為流程控制。C程序有三種控制結構,分別是順序結構、選擇分支結構和循環(huán)結構。

順序結構是指按照語句的書寫順序依次執(zhí)行;

選擇分支結構是指通過對特定條件的判斷,選擇執(zhí)行一個分支;

循環(huán)結構是指在給定條件下,重復執(zhí)行某段程序,直到條件不滿足為止。2.3C程序的基本控制結構語句是構造C程序的最基本單位,程導例:計算圓的周長和面積1.問題描述

從鍵盤輸入圓的半徑,計算圓的周長和面積。2.問題分析

定義3個float型變量,分別用于存儲半徑、周長和面積,然后根據(jù)圓的周長公式perimeter=2πr,面積公式area=πr2進行計算。3.算法描述定義3個float變量r,perimeter和area。鍵盤輸入半徑r。利用公式perimeter=2πr計算周長。利用公式area=πr2計算面積。屏幕輸出周長perimeter和面積area。導例:計算圓的周長和面積1.問題描述4.程序實現(xiàn)#include<stdio.h>#definePI3.14/*宏定義*/main(){floatr,perimeter,area;

printf("Enterradius:");scanf("%f",&r);perimeter=2*PI*r;area=PI*r*r;printf("Perimeter=%.2f,Area=%.2f\n",perimeter,area);}結束輸出:perimeter,area輸入半徑開始計算perimeter計算area圖2-4計算周長和面積的算法流程圖4.程序實現(xiàn)結束輸出:perimeter,area輸入半徑判斷數(shù)字的奇偶性1、問題描述

輸入1個整數(shù),判斷該數(shù)是奇數(shù)還是偶數(shù)。2、問題分析

如果輸入的整數(shù)能夠被2整除,則是偶數(shù),否則是奇數(shù)。3、算法描述輸入一個整數(shù)保存于整型變量number中。判斷條件:能被2整除,如果條件成立,則輸出:偶數(shù)。否則,輸出:奇數(shù)。判斷數(shù)字的奇偶性1、問題描述#include<stdio.h>intmain(void){intnumber;printf("Enteranumber:");scanf("%d",&number);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論