全國計算機C語言程序設計講解_第1頁
全國計算機C語言程序設計講解_第2頁
全國計算機C語言程序設計講解_第3頁
全國計算機C語言程序設計講解_第4頁
全國計算機C語言程序設計講解_第5頁
已閱讀5頁,還剩28頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

全國計算機C語言程序設計講解第四章選擇結構程序設計if語句條件運算符和條件表達式switch語句程序舉例第一節if語句if語句的三種形式形式一:格式:if(表達式)

語句;表達式語句非0真=0形式二:格式:if(表達式)

語句1;else

語句2;表達式語句1語句2非0=0第一節if語句形式三:

格式:if(表達式1)語句1;elseif(表達式2)語句2;elseif(表達式3)語句3;…...else語句n;

第一節if語句說明:if后面的表達式類型任意else不是一條獨立的語句,它只是if語句的一部分

if(x)if(x!=0)

if(!x)

if(x==0)語句可以是復合語句——用{}內嵌結構中,else總是與前面最近的且未曾配對的if語句配對組成一對if-else語句如:if(a==b&&x==y)printf(“a=b,x=y”);if(3)printf(“OK”);if(‘a’)printf(“%d”,’a’);例考慮下面程序的輸出結果:#include<stdio.h>main(){intx,y;scanf(“%d,%d”,&x,&y);if(x>y)x--;y--;elsex++;y++;printf(“%d,%d\n”,x,y);}CompileError!編譯出錯#include<stdio.h>main(){intx,y;printf(“請輸入一個整數:");scanf("%d",&x);y=x;

if(y<0)y=-y;printf(“\n整數:%d的絕對值為:%d\n",x,y);}例:求一個數的絕對值請輸入一個整數:-12整數:-12的絕對值為:12/*變量定義*//*語句提示*//*鍵盤輸入一個數值*//*ch4_2.c*/#include<stdio.h>main(){inta,b;/*變量定義*/printf("Enterintegera:");/*語句提示*/scanf("%d",&a);/*鍵盤輸入一個數值*/printf("Enterintegerb:");/*語句提示*/scanf("%d",&b);/*鍵盤輸入一個數值*/

if(a==b)printf("a==b\n");elseprintf("a!=b\n");}例輸入兩個數并判斷兩數是否相等運行:Enterintegera:12

Enterintegerb:12a==b運行:Enterintegera:12

Enterintegerb:9a!=b#include<stdio.h>main(){intg;/*變量定義*/printf("Enterg:");/*語句提示*/scanf(“%d”,&g);/*從鍵盤輸入一個成績*/

printf(“g=%d:”,g);

/*輸出成績*/if(g>=90)printf(“A\n");elseif(g>=80)printf(“B\n");elseif(g>=70)printf(“C\n");elseif(g>=60)printf(“D\n");elseprintf(“E\n");}例根據輸入的學生成績給出相應的等級例考慮下面程序輸出結果:

main(){intx=100,a=10,b=20;intv1=5,v2=0;if(a<b)if(b!=15)if(!v1)x=1;elseif(v2)x=10;printf(“%d”,x);}結果:100第二節條件運算符和條件表達式條件運算符“:”是C語言中唯一的一個三目運算符用:將表達式連接起來的式子成為條件表達式一般形式:表達式1?表達式2:表達式3結合性:從右向左優先級:3條件運算符>>賦值運算符>>逗號運算符求值規則:先求<表達式1>的值,若其值為“真”,求出<表達式2>的值作為整個條件表達式的值;若其值為“假”,求出<表達式3>的值作為整個條件表達式的值。表達式1、表達式2、表達式3類型可不同,表達式值取較高類型a>ba:c>dc:da>ba:(c>dc:d)例:inta=2;floatb=5.2;表達式(!a?2*b:b)的結果是5.2例:x>y1:1.5/*x>y,值為1.0;x<y,值為1.5*/第三節switch語句switch(表達式){caseE1:語句組1;caseE2:語句組2;…….caseEn:語句組n;

[default:語句組;]}一般形式:執行過程:一、計算表達式二、找case三、從找到的case開始,往下全部執行四、若沒找到case,則從default開始往下全部執行,若沒default則結束switch語句。例switch(score){case5:printf(“Verygood!”);case4:printf(“Good!”);default:printf(“dataerror!”);case3:case2:printf(“Pass!”);case1:printf(“Fail!”);}break;break;break;break;break;字符型或整型沒有分號整型/字符型常量互不相同,必須有冒號必須有空格12345運行結果:score為5時,輸出:Verygood!Good!dataerror!Pass!Fail!運行結果:score為3時,輸出:Pass!Fail!運行結果:score為0時,輸出:dataerror!Pass!Fail!運行結果:score為5時,輸出:Verygood!運行結果:score為3時,輸出:Pass!運行結果:score為0時,輸出:dataerror!例

voidmain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf(“a=%d,b=%d”,a,b);}運行結果:a=2,b=1上機作業(使用選擇結構)1、給出一個數判斷是奇數還是偶數2、輸入三個數求出最大值或者是最小值第五章循環結構程序設計while語句do-while語句for循環語句循環嵌套語句輔助控制語句標號語句和goto語句一般形式:while(表達式)

循環體語句;執行流程:表達式循環體假(0)真(非0)while第一節while語句特點:先判斷表達式,后執行循環體說明:

☆循環體有可能一次也不執行。

☆循環體只能是一條語句,如果包含一條以上的語句,應該用{}。

☆循環體中一般有使循環趨向結束的語句,不可無限循環,如k=0;while(k<10){printf(“*”);k++;}

程序將重復執行輸出語句printf,輸出10個*號。

第一節while語句#include<stdio.h>main(){inta;a=1;if(a<=10)a++;printf(“a=%d\n”,a);}區分if語句和while語句.#include<stdio.h>main(){inta;a=1;while(a<=10)a++;printf(“a=%d\n”,a);}一般形式:do

循環體語句;while(表達式);執行流程:do循環體表達式假(0)真(非0)while第二節do-while語句分號不能少!!特點:先執行循環體,后判斷表達式說明:至少執行一次循環體#include<stdio.h>main(){inta;scanf(“%d”,&a);doa++;while(a<=10);printf(“a=%d\n”,a);}#include<stdio.h>main(){inta;scanf(“%d”,&a);while(a<=10)a++;printf(“a=%d\n”,a);}結論:當while后面的表達式的值為“真”時,兩種循環得到的結果相同。否則,兩者結果不相同。while和do-while的比較一般形式:for([表達式1];[表達式2];[表達式3])

循環體語句;執行流程:表達式2循環體假(0)真(非0)for表達式1表達式3第三節for語句說明:for語句中表達式1,表達式2,表達式3類型任意,

都可省略,但他們之間分號;不可省無限循環:for(;;)for語句可以轉換成while結構表達式1;while(表達式2){ 循環體語句; 表達式3;}for(循環變量賦初值;循環條件;循環變量增值){ 循環體語句;}for語句一般應用形式:例:#include<stdio.h>main(){inti;

for(i=0;i<10;i++)printf(“%d”,i);}例:#include<stdio.h>main(){inti=0;

for(;i<10;)

printf(“%d”,i++);}只要在進入循環之前將控制變量定義并賦初值,并在循環體中將控制變量的值進行改變即可。循環條件不可少!分號不可少#include<stdio.h>main(){inti,j,k;

for(i=0,j=100;i<=j;i++,j--){k=i+j; printf("%d+%d=%d\n",i,j,k);}}例表達式1和表達式3可以是簡單表達式,也可以是逗號表達式例分別用while

、do-while

和for

循環求

#include<stdio.h>main(){inti,sum=0;i=1;while(i<=100){sum+=i;i++;}printf("%d",sum);}#include<stdio.h>main(){inti,sum=0;i=1;do{sum+=i;i++;}while(i<=100);printf("%d",sum);}#include<stdio.h>main(){inti,sum=0;for(i=1;i<=100;i++)sum+=i;printf("%d",sum);}三種循環可互相嵌套,層數不限外層循環可包含兩個以上內循環,但不能相互交叉(1)while(){……while(){……}…...}(2)do{……do{……}while();…...}while();(3)while(){……do{……}while();…….}(4)for(;;){……do{……}while();……while(){……}…...}內循環外循環內循環第四節循環嵌套語句有以下程序段:inti,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf(“%d”,m);程序段的輸出結果是()A12B15C20D25C第五節輔助控制語句※break語句功能:在循環語句和switch語句中,終止并跳出循環體,即提前結束循環,接著執行循環下面的語句。說明:break只能終止并跳出最近一層的結構break只能用于循環語句和sw

溫馨提示

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

評論

0/150

提交評論