




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目錄4.1順序結構C
ONTENTS4.2選擇結構4.3循環結構4.4本章常見問題集錦4.5實踐拓展第4章 C語言程序基本結構本章思維導圖4.1順序結構第2章Word2010高級應用4.1.1知識點介紹1. C語言的基本語句2. 數據的格式輸入與輸出3. 字符的輸入與輸出4. 順序結構1.C語言的基本語句C語言規定,一個語句必須以分號作為結束。2.數據的格式輸入與輸出預處理部分#include<stdio.h>或#include"stdio.h"一般格式printf("格式控制串"[,輸出表列]);說
明示
例屏幕顯示輸出格式控制串普通字符或轉義字符%格式說明輸出表列輸出的數據表列,在個數上,順序上,類型上與%格式說明一一對應2.數據的格式輸入與輸出預處理部分#include<stdio.h>或#include"stdio.h"scanf("格式控制串",地址表列);說明格式控制串普通字符用戶原樣輸入的字符序列,一般情況不建議使用%格式說明變量的地址用“&變量”表示,如:地址表列變量的地址,在個數上,順序上,類型上與%格式說明一一對應連續多個數據輸入的分隔符使用規則示
例數據輸入說
明雙引號格式控制符中原樣輸入的逗號為兩數值型數據的分隔符雙引號格式控制符中只有%d或%f時,數值型數據分隔符為空格或Tab鍵或Enter鍵先輸入數值型數據,再輸入字符型數據時,無分隔符先輸入字符型數據,再輸入數值型數據,分隔符為空格或Tab鍵或Enter鍵連續輸入字符型數據時,無分隔符%格式說明%格式說明含
義舉
例結
果%d十進制整數%x十六進制無符號整數%o八進制無符號整數%u無符號十進制整數
%f單精度小數形式浮點數%lf雙精度小數形式浮點數%格式說明%格式說明含
義舉
例結
果%e或%E指數形式浮點數%c單一字符%s字符串%ge和f中較短一種%%百分號本身%格式修飾符修飾符功
能舉例m輸入輸出數據域寬,數據長度小于m,則左補空格;否則按實際輸入輸出%5d.n對實數,指定小數點后位數為n,第n+1位小數四舍五入%6.2f對字符串,從左到右指定實際輸出位數%5.3s-輸出數據在域內左對齊,右補空格,缺省右對齊,左補空格%-5d+指定在有符號數的正數前顯示正號(+)%+5d0輸出數值時指定左邊空位置自動填0,而不是填空格%05d#在八進制數前顯示前導符0,十六進制數前顯示前導符0x%#o%#xl在d,o,x,u前,指定輸出精度為long型%ld在e,f,g前,指定輸出精度為double型%lf3.字符的輸入與輸出
字符輸入函數getchar字符輸出函數putchar一般形式getchar()putchar(字符);功能讀入用戶從鍵盤上輸入的一個字符將括號中的“字符”顯示輸出到屏幕函數參數無參函數字符常量或字符變量或整型常量或整型變量函數值輸入字符的ASCII代碼輸出字符的ASCII代碼示
例4.順序結構順序結構是程序設計語言最基本的結構,其包含的語句是按照書寫的順序依次執行,且每條語句都將被執行,其N-S流程圖如圖所示,圖中A塊和B塊是順序執行的結構關系。4.1.2
實驗部分實驗目的實驗內容實驗目的(1) 掌握C語言的基本語句。(2) 掌握格式輸入輸出函數調用的格式和應用。(3) 掌握字符輸入輸出函數調用的格式和應用。(4) 掌握簡單的順序結構程序設計方法。實驗內容程序結構為典型順序結構程序主要是關于int、float、double、char數據類型數據對應的“%格式說明”的使用為使數據按照指定格式輸出,在“%”與“格式說明”之間加了修飾符“%格式說明”除了“%e”可以寫為“%E”外,其余的都為小寫字母。且“%”與字母之間不能有空格程序中有6個printf函數,運行程序,思考每個printf函數對應的輸出內容所對應的%格式控制符的含義。實驗內容第10行,“%c”輸入字符時,直接輸入字符本身,不需要輸入單引號。輸入數據時應嚴格按所定義的格式輸入,scanf函數中,雙引號內原樣輸入的字符序列,如a=、b=、x=、y=、c1=、c2=,都必須原樣輸入,雙引號內′\t′輸入“Tab鍵”表示。第14行,轉義字符′\′′表示單引號字符,在程序中用轉義字符′\′′輸出單引號符號。實驗內容請仔細閱讀、理解每個語句的注釋!連續輸入兩個字符型數據時,兩字符之間無分隔符,如輸入程序中有9個putchar函數,運行程序,思考每個putchar函數對應輸出的字符是什么?實驗內容程序設計思路:分析題目,確定所需數據結構;給參與運算的變量賦初值;利用三種基本結構解決問題;輸出結果。實驗內容數字字符與數字在內存中的存儲數字字符在內存中存放ASCII碼數字在內存中存放′0′0011000048000000000000000000000000000000000′1′0011000149100000000000000000000000000000001′2′0011001050200000000000000000000000000000010′3′0011001151300000000000000000000000000000011′4′0011010052400000000000000000000000000000100′5′0011010153500000000000000000000000000000101′6′0011011054600000000000000000000000000000110′7′0011011155700000000000000000000000000000111′8′0011100056800000000000000000000000000001000′9′0011100157900000000000000000000000000001001數字字符與數字之間的轉換關系,即:數字=數字字符-48,48也可以寫為字符′0′。4.1.3
練習與思考單選題填空題練習與思考,以鞏固基本知識點和強化程序設計閱讀為目的,請同學們利用課外時間認真完成。4.1.4
綜合應用為了鞏固和加深對本部分基本知識的理解和掌握,提高解決實際問題的能力,設置了4個綜合應用題目,請同學們結合實驗提示,利用課余時間認真完成綜合應用的每一個題目。4.2選擇結構第2章Word2010高級應用4.2.1知識點介紹1. 關系運算與邏輯運算2. if語句3. 條件運算4. if語句的嵌套5. switch語句6. switch語句與if語句1.關系運算與邏輯運算(1)關系運算運算符號>>=<<===!=運算符功能左右兩邊數據大小比較判斷左右兩邊是否相等判斷左右兩邊是否不等運算對象雙目運算,運算對象可以是任意變量或常量或表達式結合方向從左向右結合優先級表達式的值為邏輯值,即1與0,表達式成立,則表達式的值為1;表達式不成立,則表達式的值為01.關系運算與邏輯運算(2)邏輯運算運算符號!&&||運算符功能邏輯非運算邏輯與運算邏輯或運算運算對象單目運算雙目運算運算對象為邏輯量,即非0任意值表示邏輯真,0表示邏輯假結合方向從右向左結合從左向右結合優先級表達式的值為邏輯值,即1與0,表達式成立,則表達式的值為1;表達式不成立,則表達式的值為01.關系運算與邏輯運算(2)邏輯運算——真值表ab!a!ba&&ba||b非0非00011非0001010非01001001100表達式a&&ba||b簡化運算若a為0,則不求解b,表達式值為0若a為非0,則不求解b,表達式值為1示
例運行結果1.關系運算與邏輯運算(2)邏輯運算——邏輯與(&&)和邏輯或(||)的簡化運算2.if語句if語句一般形式N-S結構流程圖形式一if(表達式)語句;形式二if(表達式)語句1;else
語句2;形式三if(表達式1)語句1;elseif(表達式2)語句2;elseif(表達式3)語句3;……elseif(表達式n-1)語句n-1;else語句n;3.條件運算一般形式表達式1?表達式2:表達式3示
例運算符號?
:運算符功能相當于if…else語句的功能運算對象三目運算,三個運算對象可以是符合C語言語法規則的任意表達式結合方向從右向左結合優先級僅高于賦值運算和逗號運算表達式的值表達式1為非0時,則計算表達式2,表達式2的值為整個條件表達式的值;若表達式1為0時,則計算表達式3,表達式3的值為整個條件表達式的值。4.if語句的嵌套if(表達式1)
if表達式2)語句1
else語句2else
if(表達式3)語句3
else語句4如果程序中有多個if和else,當沒有用花括號指定配對關系時,系統默認else與它前面相距最近的,且沒有與其它else配對的if配對。5.switch語句switch語句一般形式N-S結構流程圖switch(表達式){case常量表達式E1:
語句組1;break;case常量表達式E2:語句組2;break;……case常量表達式En:語句組n;break;default:語句組n+1;}6.switch語句與if語句在多分支選擇結構中,如果需要計算多個表達式的值,然后根據計算的結果選擇執行某個操作,一般使用嵌套的if語句;如果只需要計算一個表達式,然后根據表達式的結果選擇執行某個操作,一般使用switch語句。4.2.2
實驗部分實驗目的實驗內容實驗目的(1)進一步熟悉VisualStudio2010環境下C程序編輯、調試的基本操作方法。(2)熟練掌握if語句與switch語句的使用方法及執行過程。(3)熟練掌握關系運算、邏輯運算、條件運算的使用。(4)熟練掌握選擇結構嵌套的使用方法及執行過程。(5)掌握選擇結構程序設計的方法。(6)學會使用N-S結構流程圖表示選擇結構算法。實驗內容程序的執行從main函數開始執行,輸入x,調用fun函數,實參x傳遞給形參x,執行fun函數,將函數值返回到main函數,輸出結果,結束程序運行。程序中需要用到數學函數sin(x)函數,因此第2行#include"math.h"不可少。求絕對值可以利用數學的方法,也可以直接利用數學函數fabs。實驗內容xyc=x/10x<0y=0-10≤x<10y=x010≤x<20y=10120≤x<40y=-0.5x+202,3x≥40無值4,5,6,……表達式c=x/10的值為一系列整型常量求switch括號中的表達式用switch語句求y值輸出結果y=-2;表示y無值的標志定義變量輸入數據實驗內容注意if語句的嵌套使用及層次對應關系。if語句中的表達式必須用小括號括起來。判斷一個實數a是否為0,一般不用a==0來判斷,而要用|a|≤ε判斷。推而廣之,判斷實數x1與x2是否相等的方法是什么?if、elseif、else后的語句可以是一個語句,也可以是一個用大括號括號括起來的復合語句。思考利用計算機求解二次方程的根的方法與數學求解的方法是否一致?輸出方程式子判斷a是否為0若a是為0,則輸出不是一元二次方程否則是一元二次方程求判別式判斷判別式是否為0判斷判別式是否大于0否則判別式小于0定義變量輸入數據分母為表達式時要有括號實驗內容main函數描述的是解決問題的總體框架,即:輸入數據—調用子函數—輸出數據。子函數fun的功能是處理數據,是核心部分,描述的是問題解決的詳細步驟。fun函數的功能是處理數據,是核心部分,描述的是問題解決的詳細步驟。同構數的判斷方法:如果x是1位數,則表達式(x*x)%10的值為x;如果x是2位數,則表達式(x*x)%100的值為x。在此將程序補充完整fun函數體定義flag存放函數值。在BEGIN與END之間補充程序判斷x是否是同構數,若是,則flag=1,否則,flag=0。最后,使用return語句將函數值flag,返回main函數調用之處。4.2.3
練習與思考單選題填空題練習與思考,以鞏固基本知識點和強化程序設計閱讀為目的,請同學們利用課外時間認真完成。4.2.4
綜合應用為了鞏固和加深對本部分基本知識的理解和掌握,提高解決實際問題的能力,設置了4個綜合應用題目,請同學們結合實驗提示,利用課余時間認真完成綜合應用的每一個題目。4.3循環結構第2章Word2010高級應用4.3.1知識點介紹1. 循環結構的三種實現形式2. break與continue語句3. 循環的嵌套1.循環結構的三種實現形式循環語句一般形式N-S結構流程圖示
例while語句do-while語句for語句2.break與continue語句循環語句一般形式作
用break語句break;switch語句中使用break語句跳出switch結構,結束switch語句執行循環結構中使用break語句跳出循環,終止整個循環continue語句continue;跳過循環體中尚未執行的語句結束本次循環,進入下一次循環條件判斷(1)break語句可以用在switch結構和循環結構之中,continue語句只能用在循環結構之中。(2)循環結構中使用break與continue語句,一般需要與if語句一起使用。3.循環的嵌套一個循環體內又包含另一個完整的循環結構,稱為循環的嵌套。內嵌的循環中還可以嵌套循環,這就是多重循環。while循環、do-while循環和for循環可以互相嵌套。4.3.2
實驗部分實驗目的實驗內容實驗目的(1)進一步熟悉VisualStudio2010環境下C程序編輯、調試的基本操作方法。(2)學會使用while、do-while與for語句,掌握循環結構程序設計方法及執行過程。(3)掌握順序結構、選擇結構、循環結構的綜合應用。(4)學會靈活使用break語句和continue語句。(5)掌握窮舉法、二分法、迭代法、素數判斷、求階乘、求和等常用算法。(6)學會使用N-S結構流程圖描述循環結構算法。實驗內容本程序采用窮舉法,統計1-300中能被7或17整除的偶數的個數及其和。窮舉法通常應用循環結構來實現。n存放符合條件的數的個數,sum存放符合條件的數之和,n與sum都需要求和,求和累加變量初值一般為0。for實現1-300循環求和累加變量賦初值為0求和累加變量賦初值為0判斷i能否被7或17整除判斷i是否是偶數判斷n是否能被5整除用求余方法實現一行輸出5個數,即個數n除以5的余數若為0,則輸出回車換行。循環體為法if的嵌套,注意每個if的作用及嵌套關系。實驗內容一個偶數可能會分解成多組素數之和a=m1+m2判斷m1是否是素數判斷m2=a-m1是否是素數調用子函數子函數形參為a,函數值類型為void,函數體內不需要return語句輸入數據實驗內容fun函數N-S流程圖實驗內容牛頓迭代公式為常用算法之一,當|xn-xn-1|<ε
成立時,表示此時的xn即為所求開平方。do-while循環實現迭代法開平方如果|x-x0|>ε,則用新值x迭代舊值x0do-while循環輸入a值,直到a>=0,即負數不能開平方注意:不是數值1f,而是lfj統計迭代次數調用fun函數將函數值x返回調用之處關聯思考:修改程序中的主函數,實現求1~10的平方根,并上機調試運行。fun函數首部實驗內容fun函數中while(1)表示的是無限循環,循環的終止由循環體中的輔助控制語句實現,注意正確使用輔助控制語句break與continue。關聯思考:把fun函數中的循環條件改為while(j<=n)或for(j=1;j<=n;j++)后,程序如何修改才能正常運行,請修改程序并上機調試。統計項數求每一項求和調用fun函數將函數值s返回調用之處fun函數首部輸入數據定義j存放求和的項數t存放每一項的值;s存放fun函數值,即累加和。輸出數據實驗內容fun函數為無參函數a為分子,b為分母,c為中間變量,i循環控制變量s求和,t表示每一項在此將程序補充完整t用于求每一項的值,注意:整型數除以整型數商為整型數,此處需要利用強制類型轉換避免整型數除以整型數。調用fun函數fun函數首部將函數值s返回調用之處輸出數據求分數序列前20項之和,顯然需要用到循環結構,可以分別用while語句、do-while語句、for語句實現。循環體為多條語句,需要用大括號括起來構成復合語句。實驗內容根據求階乘的方法,求1的階乘到n的階乘之和,可以利用一個循環實現,也可以利用雙重循環實現。建議同學們利用兩種方法分別實現。輸入數據fun函數形參為n在此將程序補充完整調用fun函數,實參為nfun函數首部將函數值s返回調用之處輸出數據4.3.3
練習與思考單選題填空題練習與思考,以鞏固基本知識點和強化程序設計閱讀為目的,請同學們利用課外時間認真完成。4.3.4
綜合應用為了鞏固和加深對本部分基本知識的理解和掌握,提高解決實際問題的能力,設置了4個綜合應用題目,請同學們結合實驗提示,利用課余時間認真完成綜合應用的每一個題目。4.4本章常見問題集錦第2章Word2010高級應用順序結構常見問題集錦常見錯誤實例常見錯誤描述錯誤類型doublea,b,c;scanf("%f,%f,%f",a,b,c);輸入項掉了取地址運算符&%格式控制符與數據類型不一致編譯錯誤printf(inputn:);printf函數格式控制串沒有用雙引號引起來編譯錯誤printf("a=%d,b=%d,a,b");printf函數中的右雙引號打錯了位置運行錯誤printf("a=%d,b=%d,a,b);printf函數中的左雙引號沒有右雙引號匹配編譯錯誤printf("a=%d,b=%d",a);printf函數中輸出項沒有與“%格式控制符”在個數上匹配編譯錯誤printf("a=%D,b=%D",a,b);“%D”應為小寫字母d運行錯誤scanf("%d,%d",&a,&b);輸入兩個數據時用空格分隔,或者用中文逗號分隔運行錯誤scanf("%d%d",&a,&b);輸入兩個數據時用逗號分隔,而沒有用空格或回車鍵分隔運行錯誤scanf("%c%c",&a,&b);輸入兩個字符時,中間加了分隔符運行錯誤scanf("%d\n",&a);scanf函數中使用了′\n′轉義字符運行錯誤getchar(c);getchar函數應該是無參函數編譯錯誤選擇結構常見問題集錦常見錯誤實例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論