《C語言程序設計基礎》教案_第1頁
《C語言程序設計基礎》教案_第2頁
《C語言程序設計基礎》教案_第3頁
《C語言程序設計基礎》教案_第4頁
《C語言程序設計基礎》教案_第5頁
已閱讀5頁,還剩71頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

C語言教案教學課題C程序結構課題類型理論課時安排2上課時間教學目標掌握C語言源程序的組成2.掌握C語言源程序結構特征教學重點掌握C語言源程序的組成掌握C語言源程序結構特征教學難點掌握C語言源程序結構特征作業布置教學方法教授法教學后記復習引入C語言程序的結構有自身的特點,在編寫C語言程序時必須遵守C語言的語法要求,這是編寫正確的C程序的最基本要求。本模塊為大家提供C語言源程序結構的特性描述、在編寫C語言程序時允許使用的字符集,并介紹如何在C語言程序開發環境TurboC2.0中快速運行C語言程序。教師活動教學過程師生互動活動設計提問:進入課題:任務一考察并描述C源程序的組成1.下面的程序完全遵守C語言語法規則和書寫規范,請仔細觀察并分析其組成和結構,按要求填空。該程序實現從鍵盤輸入2個整數a、b,然后輸出兩數之和的功能。#include"stdio.h"/*預編譯命令*/main()/*函數頭*/{/*{函數體開始標志*/inta,b,s;/*定義3個整型變量a,b,s*/printf("輸入兩個整數a,b\n");/*輸出提示信息*/scanf("%d%d",&a,&b);/*輸入2個整數a,b*/s=a+b;/*計算a、b的和存入s中*/printf("a+b=%d",s);/*輸出變量s的值*/}/*}函數體結束標志*/(1)函數是,由和組成。(2)函數體中的程序行稱為,它的結束字符是。2.請分析下面程序的組成,然后解決表中的問題。該程序實現輸入2個數a、b,然后輸出兩數中較大者的功能。#include"stdio.h"main(){ inta,b,m;scanf("%d%d",&a,&b);學生回答分析提問:m=max(a,b);printf("max=%d\n",m);}intmax(intx,inty){ intt;if(x>y)t=x;elset=y;returnt;}(1)用框線標出程序中的函數及它們的函數頭和函數體。(2)寫下程序中函數的函數頭,進行比較,并寫出你的比較結果。(3)max函數的函數體語句行沒有對整齊,你認為這樣好嗎?(4)在C語言程序中必須要有一個名為main的函數,此說法對嗎?知識點,提示學生注意(1)在C程序中/*…*/是注釋符,它用于標志程序注釋的開始和結束,注釋可以增強程序的可讀性,它不影響程序語句的執行。在程序中添加簡潔、清晰的注釋是一種良好的編程習慣。(2)在調試程序時,可以把暫時不需要執行的語句放在/*…*/之中,C編譯器不會對/*…*/的任何內容進行編譯,需要時只需刪除語句前后的/*和*/即可,這比不用時刪除這些語句,需要的時候再重新錄入有更高的效率。3.根據你對C語言源程序的認識,與同學們討論完成填空。(1)C語言源程序是由組成的,它們的數目可以有個。(2)在C程序中學生回答注意記憶討論完成提問:(是/不是)必須有一個函數名為main的函數。上面例程中main函數后的小括號()沒有任何內容,它(可以/不可以)省略。(3)C程序中的語句用結束,你認為在一個程序行上可以寫個語句,一個C語句(能/不能)寫在多個程序行上。請觀察并分析下面的程序在書寫上存在什么問題?完成下面表中提出的要求。該程序實現輸入圓的半徑,計算并輸出圓的面積和周長的功能。#include"stdio.h"#definePI3.14floatarea_of_circle(floatr);floats;s=PI*r*r;returns;floatgirth_of_circle(floatr)floatc;c=2*PI*r;returnc;}main{floatcsccradius;scanf("%f",&radius)cs=area_of_circle(radius);cc=girth_of_circle(radius);printf("圓的面積是:%f,圓的周長是:%f\n",cs,cc);}請在程序中標出你認為有問題的地方,并指出在書寫程序時要特別注意的事項:知識歸納:C語言程序由一個或多個函數組成,函數是一段具有特定格式的,實現了一定功能的程序段。函數是C語言程序的基本單位。其中有且僅有一個main函數。C函數由函數頭和函數體2部分組成。函數名后必須跟有一對小括號,小括號是函數的標志;函數體由一對大括號括起來的語句序列組成。分號“;”是C語句的結束符。C編譯器以分號來識別一個語句是否結束,因此,一行可寫多個語句,一個語句也可以寫在多個程序行上。做一做識記C語言教案教學課題C程序結構課題類型理論課時安排2上課時間教學目標學會正確使用合法的字符和標識符了解在TurboC2.0中快速地運行C語言程序并查看程序結果教學重點學會正確使用合法的字符和標識符了解在TurboC2.0中快速地運行C語言程序并查看程序結果教學難點學會正確使用合法的字符和標識符作業布置教學方法教授法教學后記復習引入上節課程我們學習了C語言的結構,那C語言是如何構成的呢?構成C語言的組成又有什么要求,現在我們一起來學習教師活動教學過程師生互動活動設計練習任務二分析C語言程序的組成元素1.請觀察并分析程序中用到了哪些字符(你現在不必讀懂這個程序)。然后完成表中的要求。#include"stdio.h"main(){inttimes15;floatsum_of_num=0,fvar;times15=1;while(times15<=5){scanf("%f",&fvar);if(fvar>0)sum_of_num+=fvar;times15++;}printf("輸入的數中大于0的數之和是:%f",sum_of_num);}學生練習,完成下表:C語言可用字符統計表字符類別名程序中的示例字符字符集合2.觀察并分析程序中的標識符。填表提問:歸納在程序中用命令來表示計算機要執行的操作,通過調用函數來完成所需的功能,使用變量來臨時存儲待處理的數據,命令、函數和變量等是組成程序的基本對象,每一個程序對象都需要一個名字來標識,程序對象的名稱就是標識符。請列出上面程序中的標識符,試按標識符所表示的對象不同進行分類,完成下表。知識提醒:標識符必須采用半角西文字符(即純西文字符),不能用全角的西文字符。在中文環境下要特別注意,避免在中文輸入狀態下錄入程序。在C語言中標識符分為用戶自定義標識符和系統標識符。用戶自定義標識符是指在程序中由用戶為變量、函數、數組等程序對象命名的標識符;系統標識符是C語言編譯系統內部預定義的用于表示命令、數據類型的標識符,又稱為保留字。保留字不能用作用戶標識符。3.請研究用戶標識符的命名規則。上機實驗是探索標識符命名規則的最佳途徑,或請教有經驗的C語言程序設計員以及你的C語言課程教師,完成下表中提出的問題。(1)對下列問題進行討論①標識符中可允許使用的字符有哪些?②標識符中的第一個字符有什么要求嗎?③標識符中區分字母大小寫嗎?如Fab與fab,它們是相同還是不同的標識符?④命名標識符時要用多少字符才恰當?⑤一個標識符可以隨意用一些字符構成嗎?這樣的標識符便于使用嗎?⑥保留字可用于用戶標識符嗎?○能○不能(2)歸納標識符的命名規則知識歸納:C語言的基本字符集英文字母:a~z和A~Z識記學生回答阿拉伯數字:0~9其他符號:()、[]、+、-、*、/、%、<、<=、>、>=、==、!=、!、&&、||、++、--、+=、-=、*=、/=、%=等,它們一般由1~2個符號組成用作C語言的運算符;還包括空格、換行符、回車符、單雙引號、大括號、逗號、分號、反斜線等符號。標識符是用于標識命令、變量、函數、數組、數據類型等程序對象的名稱的字符序列。用戶標識符的命名規則標識符可由字母、數字、下劃線3種字符組成。標識符的第一個字符必須是字母或下劃線。保留字不能用作用戶標識符,C語言的關鍵字請見附錄3。標識符區分字母的大小寫,time、Time、TIME是3個完全不同的標識符。標識符由一個或多個字符組成,但一般只有前8個字符有效(TurboC的標識符前32個字符有效)。標識符宜選取能反映所標識的對象的有意義的英文單詞(或縮寫),做到見名知意,提高程序的可讀性。標識符的選擇應遵循“常用取簡,專用取繁”的原則,一般在6個字符以內就能適應各種應用的需求。提醒注意:C語言的基本字符都是半角西文字符(即純西文字符)。用戶標識符的命名規則中前三條用于判定一個用戶標識符的合法性,后面四條規則校驗標識符的可讀性和易用性。任務三執行一個C語言程序TurboC是在PC機上廣泛使用的基于DOS操作系統的C語言處理程序,它向用戶提供了一個集成的開發環境,即它把程序的編輯、編譯、連接、運行等操作全都集中在一個界面下完成。現假定計算機的操作系統是Windows2000,TurboC安裝在計算機的D盤,安裝目錄為根目錄下的tc文件夾。1.啟動TurboC2.0集成開發環境①單擊“開始”—“程序”—“附件”—“命令提示符”,進入DOS系統環境。②在DOS系統提示符后依次輸入“d:”→“cdtc”→“tc”,進入TurboC的集成開發環境。2.編輯C語言源程序記憶理解注意①按功能鍵F10激活菜單,執行“File”—“New”新建一個程序文件,如圖1.2所示。②在編輯窗口中輸入C語言源程序。此處輸入任務一中第一個程序代碼。3.保存C程序文件①在編輯狀態下按功能鍵<F2>。②在彈出的對話框中輸入程序文件名(擴展名“.C”可以不輸入,編輯器會自動添加),然后按回車鍵即可。4.編譯運行程序①仔細檢查程序代碼是否有語法和邏輯錯誤。②按快捷鍵<Ctrl>+<F9>,TurboC依次自動完成當前程序的編譯、連接并運行程序。5.查看程序運行結果①按快捷鍵<Alt>+<F5>切換至用戶屏幕觀察程序運行結果。②觀察完畢,按任意鍵返回編輯窗口。6.請根據實驗完成下面的題目(1)C程序從哪里開始執行,在哪里結束程序?①在TurboC中新建一個程序文件,輸入并運行任務一中第二個程序,觀察并記錄程序語句執行的先后順序。②交換任務一中第二個程序中main和max2個函數的位置,執行修改后的程序,仍關注程序語句執行的先后順序。③根據這兩次程序執行的情況,你的結論是:

。(2)C語言源程序運行的過程C語言源程序的運行要經過、、和,每步生成的文件擴展名分別是、、。(4)TurboC編譯器操作①請描述編譯器窗口菜單的操作要點。②快捷鍵能夠提高操作的效率,請找出實現下面操作的快捷鍵。做一做程序文件存盤:編譯運行程序:查看用戶屏幕:打開程序文件:退出編譯器:小結:本章節主要學習了C語言程序的結構和組成。學習了標識符的命名規則。了解了C語言執行的過程。C語言教案教學課題C程序基本數據對象基本數據類型課題類型理論課時安排2上課時間教學目標掌握C語言基本數據類型掌握C語言基本數據類型的特性會正確的使用數據類型教學重點掌握C語言基本數據類型掌握C語言基本數據類型的特性教學難點掌握C語言基本數據類型的特性作業布置方法教學教授法教學后記復習引入程序加工處理的對象是數據。人們用數據來記錄和描述事物及它們的相關特性,事物不同或描述的方面不同,所采用的數據的形式和相關的處理方法也不同,這就產生了數據類型。本模塊將討論C語言程序中的基本數據對象的類型,如何在程序中使用常數和變量2種形式的數據對象。教師活動教學過程師生互動活動設計進入課題任務一對數據進行分類1.請收集下面所列對象的相關數據,并完成下表提出的要求。在一頁紙上列出描述下列對象的數據:中央電視臺提供的節目套數你的身高(m)和體重(kg)你所在班的人數一次英語教師為你的作業評定的等級你的身份證號碼、電話號碼中國的英語拼寫形式光的傳播速度……(請你補充)描述對象屬性數據電視臺節目套數 人身高 人體重 班級人數 作業等級 電話號碼 收集數據補充學習練習教師歸納國家(中國)英語拼寫形式光傳播速度 2.對收集到的數據進行分類,分析數據的組成形式、可以進行的操作等特性,按要求填寫下表。(1)數據的基本特性數據組成是否用小數點能否算術運算描述的對象屬性單位是否可分知識歸納:C語言中數據的基本類型名稱標識符長度(字節)取值范圍描述整型數據基本整型int2-32768~32767填表注意記憶用于描述事物對象個數、數目等不可分的屬性的數據被稱為整型數據,簡稱整數長整型long4-2147483648

~2147483647無符號整型unsigned20~65535只能表示非負整數實型單精度實型float43.4e-38~3.4e+38記錄事物對象的長度、重量等屬性的帶小數點的數據被稱為實型數據,簡稱實數雙精度實型double81.7e-308~1.7e+308字符型char1事物對象的名稱、代號以及其他屬性的文字性描述被稱為字符型數據本章節主要學習了C語言的基本數據類型,了解了他們的特性。學會了怎樣正確的使用數據。小結C語言教案教學課題C程序基本數據對象常量書寫規則課題類型理論課時安排2上課時間教學目標了解常量的概念在語言程序中正確規范書寫各種類型的常量教學重點了解常量的概念在語言程序中正確規范書寫各種類型的常量教學難點在語言程序中正確規范書寫各種類型的常量作業布置教學方法教學后記復習引入常量是指從字面上即可直接識別該數據的類型和數據值的數據對象。它在程序的整個運行過程中其值不會發生變化。每種類型的數據都有常量形式,它們在程序中都有相應的書寫要求。教師活動教學過程師生互動活動設計進入課題提問任務二正確書寫C程序中的常量1.請觀察下面程序中出現的整型常量,并描述它們的組成和書寫格式。#include"stdio.h"main(){intpn,ox,adr;pn=-563;ox=037;adr=0x3f4d;printf("%d",pn+ox-adr);}(1)在程序中標出常量對象。(2)這些常量中有小數點嗎?○有○沒有(3)請描述整型常量的書寫要求形式組成元素書寫規則十進制八進制十六進制(4)請寫幾個正確的整型常量:做一做提示提問(5)請寫幾個錯誤的整型常量:在整型常量后面加字母l或L表示這是一個長整型常量,如56l或56L。這種書寫格式常用于函數的調用中,C語言要求調用函數時實參類型必須與形參類型相同,如果函數的形參是long型,則要求實參也為long型,此時若用整型常量345作實參就不行,而要用345l作實參。2.請運行下面的程序,觀察程序中出現的實型常量,并描述它們的組成和正確書寫格式。#include"stdio.h"main(){floatfv1,fv2;doubledv1,dv2;fv1=5.672;fv2=321E-24;dv1=-.125;dv2=2.97e5;printf("%f%f\n",fv1,fv2);printf("%f%f",dv1,dv2);}提問:(1)在程序中標出常量對象。(2)這些常量中有小數點嗎?○有○沒有(3)小數點的一側可以不寫數字嗎?○可以○不可以(4)有的常量中出現了字符,它相當于數學上的記數法。(5)請描述實型常量的書寫要求(6)請用TurboC編譯器編譯下面的程序,分析其他出錯的原因,然后描述書寫實型常量的注意事項。#include"stdio.h"main(){floatr1,r2,r3.r4;r1=9.5.6;注意記憶練習,做一做討論完成提問:r2=6.2E3.5;r3=200e;r4=e10;printf("%f",r1+r2+r3+r4);}①指出實型常量書寫錯誤的地方:②請描述正確書寫實型常量的注意事項:3.請觀察下面程序中出現的字符型常量,并描述它們的組成和正確書寫格式。#include"stdio.h"main(){charcs;cs=getchar();if(cs=='1')puts("Best");esleif(cs=='2')puts("Better");elseif(cs=='3')puts("Good");elseputs("Error!");}(1)在程序中標出常量對象。(2)這些字符型常量在書寫時使用了什么作為定界符?(3)請為字符常量和字符串常量下定義。字符是字符串是(4)請描述字符型常量的書寫要求(5)請按書寫要求寫幾個正確的字符型常量。字符:字符串:做一做提醒注意記憶知識提示:有的字符不能像字母、數字等字符那樣能在程序中直接輸入,它們中有的是“控制字符”,代表一種操作且不能在屏幕上顯示,如換行符、退格符等;還有一些字符在C語言中有別的含義也不能直接輸入,如單引號、雙引號等。在C語言中這類字符采用一種稱為“轉義字符”的特殊形式來表示。轉義字符是以反斜線“\”字符開頭的字符序列。如換行符不是按回車鍵來輸入而是輸入’\n’,C語言編譯程序會把反斜線后的字符解釋為另一個字符,這里’\n’中的字符n就不是字母n而作為換行符。轉義字符表示的是一個字符。常用的轉義字符轉義字符代表的字符ASCII碼\n換行符(使光標移到下一行開頭)10\r回車符(使光標回到本行開頭)13\b退格符(使光標左移一列)8\t水平制表符9\v垂直制表符11\'單引號39\"雙引號34\\反斜線92\dddddd:1~3位八進制數形式的ASCII碼所代表的字符\xhhhh:1~2位十六進制數形式的ASCII碼所代表的字符C語言編譯器通過常量形式來識別它們的類型而不管其數學意義。如2e3的數據類型是實型而不是整型。注意要求閱讀在C語言中,字符串未尾會自動加上一個空字符作為結束符,其書寫格式為'\0',在存儲字符串時要同時存儲字符串結束符。組成字符串的字符的個數,稱為字符串的長度。計算字符串長度時不計定界符和結束符。4.閱讀下面的程序,觀察在程序中如何使用標識符來表示常量,完成表中提出的要求。當在程序中需要多次用到一個常量時,C語言中可以用一個標識符來代表這個常量,這個代表常量的標識符稱為符號常量。#include"stdio.h"#defineMW"hello!"#defineTIME3#definePI3.14main(){intr=6;floatl,s;l=2*PI*r;s=PI*r*r;printf(“l=%f,s=%f\n”,l,s);}(1)指出程序中使用的符號常量及所代表的值。(2)請寫出定義符號常量的一般格式。(3)在程序中用標識符PR表示2500,請你給出相關的定義。(4)如果要使用圓周率3.14159來進行計算,你認為有程序中要做幾處修改?○1處○2處(5)如果程序中有100個地方要使用圓周率,你是愿意直接使用圓周率的值,還是為它定義相應的符號常量,談談你的想法。(6)使用符號常量時的注意事項:閱讀程序做一做理解記憶(7)請說出在程序中使用符號常量的好處。知識歸納:常量的書寫規則①凡不帶小數點或指數的數就是整型常量,它有十進制、八進制、十六進制3種形式:十進制形式:遵循數學上的書寫要求,如128、-49、+356等。八進制形式:由0開頭后跟(0∽7)中的數字組成的數字串,如010、0657、-036等。十六進制形式:由0x或0X開頭后跟(0∽9,a∽f或A∽F)中的數字組成的數字串,如0xac、0x78d6、0X101、0X6C6C等。②實型常量有十進制小數和指數2種形式,十進制小數形式中必須有且只有一個小數點,且小數點的左右至少一邊有數字;書寫指數形式注意字母e(或E)之前必須有數字,其后面的指數必須為整數。③字符常量是用單引號('')括起的一個字符,轉義字符例外,轉義字符仍是一個字符;字符串常量是用雙引號("")括起字符序列(字符串中的字符可以是轉義字符)。定義符號常量①一般格式:#define標識符常量②注意事項:定義符號常量的命令是預編譯命令,放在源程序的最前面;標識符中的字母一般采用大寫形式;命令行后沒有分號,命令中各部分用空格分隔。③符號常量帶來的好處是提高了程序的可讀性,便于程序的修改。C語言教案教學課題C程序基本數據對象變量課題類型理論課時安排2上課時間教學目標識記變量的概念在C語言程序中正確使用變量教學重點識記變量的概念在C語言程序中正確使用變量教學難點在C語言程序中正確使用變量作業布置教學方法教授法教學后記復習引入變量是程序中數據對象的一種重要形式。為了在程序中有效組織和處理數據,你需要理解變量這種數據形式,掌握在程序中使用變量的要求和操作方法。教師活動教學過程師生互動活動設計教師提問任務三在程序中使用變量1.請運行下面的程序,記錄程序結果,并完成提出的問題。#include"stdio.h"main(){floatpay=0.0;printf("1:pay=%f\n",pay);pay=6*1.5; printf("2:pay=%f\n",pay);}(1)程序中涉及哪幾個數據對象?其中哪些數據對象發生了變化?思考后回答教師歸納(2)請為變量下定義。變量是。(3)你認為變量包含哪幾個方面的要素?(4)程序中的變量好似存儲數據的容器,你贊同這個比方嗎?○贊同○不贊同(5)根據你對計算機基礎知識的了解,你認為變量和計算機的內存儲器有聯系嗎?請談一談你的看法。知識歸納:變量是在程序運行過程中其值可以發生變化的數據對象。變量包括變量名、數據類型和變量值3個要素。變量名必須是合法的自定義標識符。變量對應于計算機的一段內存單元,編譯器根據變量的數據類型為變量分配相應的內存單元,數據類型決定了所分配給變量內存單元的多少。變量名是對應內存單元的符號化地址。2.閱讀并運行下面2個程序,程序2在運行時輸入p,根據程序的運行結果,描述在程序中變量的使用要求,完成提出的問題。程序1:#include"stdio.h"main(){intpn,tn;floatw1=3.2,w2,w3=0.369;charch;pn=100;tn=pn-1;w2=w1+w3;ch='K';理解記憶請學生對比回答printf("%d%d\n",pn,tn);printf("%f+%f=%f\n",w1,w3,w2);printf("%c",ch);}程序2:#include"stdio.h"main(){intpn,tn;floatw1=3.2,w2,w3;charch;pn=100;tn=pn-1;w2=w1+w3;scanf("%d",&ch);printf("%d%d\n",pn,tn);printf("%f+%f=%f\n",w1,w3,w2);printf("%c",ch);}(1)在程序中使用變量必須要。(2)定義變量要指出和,其一般格式為:(3)變量定義后的值:○確定○不確定(4)為變量預置初始值有2種方法,在上面左側的程序中找出,并進行歸納。①②知識提示:符號“=”的作用是給變量賦值,它被稱為賦值號。賦值號把它右邊的值賦值給它左邊的變量。關于賦值號的更多信息請參見模塊三。思考后回答注意未賦值的變量其值不確定,不確定的值不能參加運算。因此,變量在參加運算前一定要賦初值或者為它輸入值。知識歸納:在C語言程序中使用變量必須遵守“先定義,后使用”的原則。定義變量的一般格式為:類型標識符變量名列表;類型標識符即數據類型的名稱,如int,float,char等。變量名列表是用逗號(,)分隔的變量名組成。為變量預置初始值有初始化和賦初值2種形式。變量初始化是在定義變量時預置它的初始數據;賦初值是指定義變量后,在使用之前的賦值操作。初始化:intx=1,y=2,z=3;賦初值:intx,y,z;x=1;y=2;z=3;理解記憶C語言教案教學課題C語言數據運算課題類型理論課時安排2上課時間教學目標1.掌握各種常用運算符的運算規則2.掌握各種運算符的優先級和結合性3.能正確將數學表達式與C語言表達式相互轉換教學重點掌握各種常用運算符的運算規則掌握各種運算符的優先級和結合性教學難點掌握各種運算符的優先級和結合性能正確將數學表達式與C語言表達式相互轉換作業布置教學方法教授法教學后記復習引入數據的運算處理是程序運行中的重要操作。在C語言中用運算符來表達在數據對象上進行的運算操作,參加運算的數據對象(常量、變量或函數)被稱為操作數。運算符和操作數連接起來組成表達式,為了能在程序中表達對數據的運算處理,必須要理解運算符的特定的運算規則。教師活動教學過程師生互動活動設計進入課題任務一計算算術表達式的值算術運算是數據處理中的基本運算。算術運算符的運算規則大多數與數學上的運算規則相同,但也有個別運算符具有與數學上不同的處理要求。1.請分析下面程序運行結果,并通過上機驗證,歸納在C語言中算術運算符的運算規則和特定的要求。#include"stdio.h"main()要求學習練習提醒學生注意{intm=19,n=5;floatf1=5.6,f2=9.5;printf("%d%d\n",m+n,m-n);printf("%d%d\n",m/n,n/m);printf("%f%f\n",19/5.0,19.0/5);printf("%d%d\n",m*n,-m);printf("%f%f\n",f1+f2,f1-f2);printf("%f%f%f\n",f1*f2,f1/f2,-f1);printf("%c%c\n",'B'-1,'B'+32);}學生練習(1)請在程序最后添加下列語句行,再執行程序,然后分析出現的情況。printf("%d%f\n",19%5.0,f1%f2);(2)分析程序運行結果,完成下表。寫出各運算符的規則知識提示:字符型數據在計算機中存儲形式是它的ASCII編碼。ASCII碼是整型數據,因此,字符可以加上或減去一個整數。雖然字符和整數之間可以進行其他的算術運算而不違背C語言語法規則,但卻沒有實際意義,在程序設計中應避免出現這樣的運算。2.請根據你在數學課程所學到的算術運算符的運算規則,計算下面程序中的表達式的值,并上機驗證,然后完成提出的要求。#include"stdio.h"main(){intm=16,n=5;printf("%d\n",m+6-n);printf("%d\n",m+5*2-n);printf("%d\n",(m+5)*(2-n));printf("%d\n",m/n*n);做一做理解記憶提問教師提示printf("%d\n",m%n*10);}學生練習:(1)請描述什么是算術表達式?(2)當在算術表達式中出現多個運算符時,你是如何確定它們運算的先后順序?(3)表達式中的小括號有何作用?知識提示:優先級是指在一個表達式中運算符執行的先后順序。結合性是指操作數與運行符結合的方向,它分為左結合、右結合2種。左結合是指從左向右結合執行運算,右結合是指從右向左結合執行運算。結合性決定了優先級相同的運算符的執行先后順序。在C語言中,不同類型的數據可以進行混合運算,但在運算時運算符的操作數要轉換成同一種數據類型。C語言提供了2種數據轉換方式。①由編譯器自動完成的類型轉換,其轉換操作如下所示。double←double←float↑long↑unsigned↑int←char,short箭頭方向所指的是級別較高的數據類型←表示在運算時總要進行的轉換。↑表示操作數類型不同時的轉換方向。類型轉換是一步到位的,不經過中間類型。做一做理解記憶②C語言通過類型轉換運算符來完成將表達式的值轉換成所需的數據類型,較高類型向低類型強制轉換時會丟失信息。一般格式為:(類型標識符)表達式如(int)fv的值為int型,(float)x/y是把x的值轉換成實數后再除以y。3.請把下面的數學表達式改寫成C語言表達式,并完成下面的問題。(1)數學表達式 C語言表達式3x2+x-1(2)為了寫出符合C語言語法規則又能保持原數學表達式的運算要求的表達式,你采取了什么措施?(3)請描述算術運算符的優先級和結合性。(4)請歸納將數學表達式改寫成C語言表達式的要點:①②做一做C語言教案教學課題C語言中的賦值表達式課題類型理論課時安排2上課時間教學目標能正確的寫出C語言的表達式掌握賦值表達式的計算方法3.能正確的為變量賦值教學重點掌握賦值表達式的計算方法能正確的為變量賦值教學難點掌握賦值表達式的計算方法能正確的為變量賦值作業布置教學方法教授法教學后記復習引入變量是在程序中臨時存儲數據的程序對象,程序中待處理的數據、程序運行的中間結果以及數據處理的結果都要由變量來保存。因此賦值成為C語言中的重要運算教師活動教學過程師生互動活動設計進入課題1.請運行下面程序,根據運行結果,考察程序中的賦值操作,完成表中提出的問題。#include"stdio.h"main(){intpl,mny,ttl=10;floatm1,m2;doubleewt,mnt;charsyb,sgn;pl=521;mny=78.926;ttl+=5;提問教師提示m1=34.5;m2=669;ewt=100;mnt=3.5E+32;syb='A';sng=97;printf("pl=%d,mny=%d,ttl=%d\n",pl,mny,ttl);printf("m1=%f,m2=%f\n",m1,m2);printf("ewt=%f,mnt=%f\n",ewt,mnt);printf("syb=%c,sgn=%c",syb,sgn);}學生練習:(1)實現賦值操作的運算符是,它的正確讀法是:○等號○賦值號。它的作用是。(2)可以把與變量數據類型不同的數據賦值給變量嗎?可以○不可以。當給變量賦予不同于它的類型的數據時,有哪些情況?C語言是怎樣處理的?(3)請描述賦值運算ttl+=5的工作過程。(4)賦值運算操作的順序是:○從左到右○從右到左。賦值運算符的結合性是。(5)可以把一個字符串賦值給一個字符變量嗎?請上機實驗后做出決定。○能○不能知識提示:賦值操作改變變量的值,變量值的變化遵守“新來舊去”的原則。未重新賦值的變量保持它原來的值。把與變量類型不同的數據賦值給變量,賦值運算符自動把該數據轉換成變量的數據類型,然后把轉換后的數據值賦給變量。當把一個實數賦值給一個整型變量時,將只把實數的整數部分賦值給變量。做一做理解記憶要求學生閱讀提問字符型數據在計算機中存儲形式是它的ASCII編碼。ASCII碼是整型數據,因此,可以把一個字符賦值給一個整型變量,也可以把一個整數賦值給一字符變量(該整數要是一個有效的ASCII,即在ASCII碼的有效范圍內0~127)。在沒有特殊需要的情況,請不要把與變量類型不同的數據賦值給變量,以免出現數據處理誤差或造成內存空間的浪費。形如+=的運算符是一個其他運算符(算術運算符)和基本運算符(=)的組合,稱為復合賦值運算符。它兼有其他運算符的運算功能和給變量賦值的功能。其他常用的復合賦值運算符還有:-=、*=、、/=、%=。2.請運行下面的程序,根據程序運行結果,描述C語言對賦值表達式的值的規定。#include"stdio.h"#definePR125main(){intpl,ttl=10;floatl1;charsyb;printf("%d%d\n",pl=521,ttl+=5);printf("%f\n",l1=34.5);printf("%c",syb='A');}學生練習:(1)若在程序中加一行PR=250;運行程序時出現了什么情況?(2)請描述什么是賦值表達式,在C語言中賦值表達式的值的規定。①②(3)在賦值表達式中賦值號左邊必須是,右邊可以是。符號常量使用了標識符,可以給符號常量賦值嗎?○可以○不可以(4)請分析下面賦值表達式的運算過程和表達式的值以及各變量的值。做一做①floatx,y,z;②inta,b=3,c=2;x=y=z=5.79;a+=b*=c+=2;任務三計算自增自減表達式的值自增自減運算是C語言中一種比較特別的運算。請分析并運行下面的程序,記錄程序的運行結果,完成下面的問題。#include"stdio.h"main(){intx,y;x=1;y=x++;printf("%d%d\n",x,y);x=1;y--;printf("%d%d\n",x,y);x=1;y=++x;printf("%d%d\n",x,y);x=1;y=--x;printf("%d%d\n",x,y);}學生練習:(1)分析程序運行結果,填寫下表(以變量x為例)運算符表達式形式表達式值變量值++前綴后綴——前綴后綴(2)請根據填表描述自增自減表達式的取值規則。①前綴表達式:②后綴表達式:(3)請通過上機實驗考察++、--運算符的操作數的類型和數據對象的類型①可以參加自增自減運算的操作數的數據類型是。②常量和表達式能進行自增自減運算嗎?○能○不能知識提示:做一做確定自增自減運算表達式的簡單方法是:觀察表達式中變量和運算符的位置關系,凡變量在前,則表達式的值為變量自增(或自減)之前的值;凡變量在后,則表達式的值為變量自增(或自減)之后的值。自增自減運算操作中包含有賦值操作,因此,不能對常量和表達式進行自增自減運算。自增自減運算符的優先級和結合性請參見本模塊后“日積月累”中的表。理解記憶C語言教案教學課題C語言中的關系,邏輯表達式課題類型理論課時安排2上課時間教學目標1.掌握關系表達式的計算方法2.掌握邏輯表達式的計算方法3.能正確的計算關系邏輯表達式教學重點掌握關系表達式的計算方法掌握邏輯表達式的計算方法教學難點能正確的計算關系邏輯表達式作業布置教學方法教授法教學后記復習引入計算機程序能根據不同的條件作出不同的處理,兩個數的大小關系常用來表達問題中的簡單條件。在C語言中,比較兩個數據大小關系的運算稱為關系運算。現在我們就來一起學習教師活動教學過程師生互動活動設計進入課題上機運行下面的程序,完成下表中提出的要求。#include"stdio.h"main(){inta,b,c;floatx1,x2;charc1,c2;a=3;b=6;c=9;x1=3.6;x2=-9.97;c1='1';c2='a';printf("%d,%d\n",a>b,b<9);提問教師提示printf("%d,%d\n",x1>=3,x2<=0);printf("%d,%d\n",c1==1,c2!='A');printf("%d,%d\n",a<b<c,a<b==1);printf("%d,%d",c>b>a,1!=1<c1);}學生練習:(1)分析程序結果并填寫下表(2)關系表達式是表示的表達式,關系表達式的運算結果有種取值情況。(3)在C語言中怎樣表示關系運算的結果。(4)根據對程序運行結果的分析(或自行設計關系表達式上機實驗)描述關系運算符的優先級和結合性。(5)字符參加關系運算,如何比較它們的大小關系?(6)把語句printf("%d","abc"<"ABC");添加到程序中并編譯運行程序,根據程序出現的狀況作出結論。(7)你能測試空字符('',單引號中沒有任何字符)的ASCII的大小嗎?請描述你的方法,并寫出測試用的關系表達式,然后寫出空字符的轉義字符形式。知識提示:任何C語言表達式的結果都可以判定真假。C語言規定:“非0值”為“真”,“0值”為假。字符串不能直接用關系運算符進行大小關系的比較運算。知識歸納:關系運算是指兩個數據對象進行大小關系比較的運算。用關系運算符連接而成的式子稱為關系表達式。關系表達式表示的關系成立,結果為“真”,否則結果為“假”。在C語言中,關系表達式的結果為“真”其值為1,結果為“假”其值為0。人們把“真”、“假”兩種值稱為邏輯值。做一做理解記憶理解記憶要求學生填表數值數據(整型和實型)按數值大小進行比較,字符以它的ASCII碼大小進行比較。關系運算符的優先級分為兩組:高優先級組:>、>=、<、<=低優先級組:==、!=。關系運算符的結合性為左結合。請運行并分析下表中的程序,然后完成表中提出的要求。#include"stdio.h"main(){intm=7;n=12;charch1='r',ch2='R';printf("%d\n",m>=0&&m<=10);printf("%d\n",n>=0&&n<=10);printf("%d\n",m<=0||m>=10);printf("%d\n",n<=0||n>=10);printf("%d\n",ch1>='a'&&ch1<='z');printf("%d\n",ch2>='a'&&ch2<='z');printf("%d\n",!(ch1>='a'&&ch1<='z'));printf("%d\n",!(ch2>='a'&&ch2<='z'));}(1)根據程序運行結果填寫下表邏輯運算符名稱運算規則&&||!2)邏輯運算符的操作數除了關系表達式外,還可以是其他類型的表達式嗎?請自行設計實驗,并作出結論。(3)邏輯表達式的運算結果是怎樣表示的。(4)請你分析下面邏輯表達式的值并上機驗證,然后歸納邏輯運算符的優先級和結合性。①4||7&&0②!5&&79你的結論:(5)寫出表達下面條件的表達式。做一做①ch是數字字符:教師提示教師歸納②ch是英文字母:③整數x不是偶數:(6)分析下面表達式執行后,變量x的值,歸納C語言對這類表達式的處理方法。intx=4,y=2,z=7;①y>z&&x++y<z&&z>7&&x++y<z&&z>=7&&x++結論:②y<z||x++y>z||z>=7||x++y>z||z>7||x++結論:知識提示:在C語言中,邏輯運算符不僅能連接關系表達式,還能連接其他類型的表達式。形如A&&B&&C用&&連接成的串聯表達式,如果表達式A為假,則不再計算表達式B和C,依次類推。形如A||B||C用||連接成的串聯表達式,如果表達式A為真,則不再計算表達式B和C,依次類推。知識歸納:邏輯運算符的運算規則:AB!AA&&BA||B00100011011000111011說明!A的結果是對A取反A,B同時為真A與B結果為真A,B同時為假A或B結果為假邏輯運算符的優先級由高到低的順序是:!,&&,||理解記憶理解記憶在C語言中,邏輯表達式結果為真,其值為1;結果為假,其值為0C語言教案教學課題為程序輸出數據課題類型理論課時安排2上課時間教學目標掌握printf函數的一般格式理解printf函數的工作過程掌握printf函數使用時的注意事項4.掌握字符輸出函數putchar的用法教學重點1.掌握printf函數的一般格式2.理解printf函數的工作過程教學難點1.掌握printf函數使用時的注意事項作業布置教學后記復習引入程序界面是用戶與程序交互的窗口,是用戶輸入數據和程序輸出數據的地方。現代程序設計非常重視程序界面的美觀和操作的易用性,因此數據的輸入輸出就成了程序設計中的一個重點。C語言沒有專門的輸入輸出命令,它使用標準的輸入輸出庫函數來實現數據的輸入和輸出操作。數據處理的結果必須要輸出才能被用戶使用,一個程序必須有數據的輸出操作,簡潔、直觀的輸出將大大提高程序使用者的工作效率。教師活動教學過程師生互動活動設計提問一、printf函數的一般格式和工作過程1.請上機運行下面的程序,記錄下程序的運行結果,然后結合程序完成提出的問題。#include"stdio.h"#definestring"HelloIt`sC\n"main(){intm=6,n=65;floatfv1=3.64,fv2=76;doubledv=0.12345678;charch='A';printf("%d%d\n",m,n);printf("m=%d,n=%d\n",m,n);printf("fv1=%f,fv2=%f\n",fv1,fv2);printf("dv=%f\n",dv);printf("ch=%c,ch=\'%c\'\n",ch,ch);printf("ch=%c,ch=%d\n",ch,ch);printf("n=%c,n=%d\n",n,n);printf("HelloIt`sC\n");printf(string);}(1)請寫出正確使用printf()函數的一般格式:(2)printf()函數的參數的第一部分是由組成的格式控制串,第二部分是由組成的輸出列表。①請描述printf()函數中格式轉換說明符的作用,填寫下表。格式轉換字符作用適用的變量數據類型②在格式控制串出現的普通字符處理方法是學生回答知識歸納。③表達式列表中的輸出項可以是。(3)請描述printf()函數的執行過程。(4)輸出字符和字符串時,會輸出它們的定界符嗎?○會○不會(5)在輸出實數時,默認情況下printf()做了什么處理?(6)你認為在printf()函數的格式控制串中使用普通字符對程序的輸出界面設計有益嗎?談談你的看法。(7)字符可以用格式轉換說明符%d輸出嗎?○可以○不可以。輸出的結果是。(8)整數可以用格式轉換說明符%c輸出嗎?○可以○不可以。輸出的結果是,有什么限制嗎?輸出函數printf()的一般格式:printf(格式控制串,數據項列表);格式控制串由格式轉換說明符和普通字符組成,它規定了數據輸出時的格式;數據項列表由要輸出的數據對象組成,它們可以是常量、變量和表達式。格式轉換說明功能格式轉換字符作用數據項類型%d把數據項轉換成有符號十進制形式的整數int、long、char%f把數據項轉換成十進制形式的小數float、double學生記憶提問提示注意%c把數據項轉換成一個字符char%s把數據項轉換成一個字符中字符數組printf()的工作過程:掃描格式控制串,遇到格式轉換說明符時,把對應的數據項按指定的格式輸出;若遇到普通字符則原樣輸出,依次類推,直到掃描完整個格式控制串。二、printf函數使用中應注意的問題2.請閱讀并上機執行下面的程序,記錄并分析程序的運行情況,然后完成問題。#include"stdio.h"main(){intm=35;floatx=5.69;charch='W'printf("%d\n",m,x);printf("%d%f\n",m);printf("%f%d\n",m,x);printf("%c%f",x,m);}(1)程序中的printf()函數語句有語法錯誤嗎?○有○沒有(2)該程序實現了相應變量值的正確輸出嗎?請你分析其中的原因。(3)為了能正確輸出各種數據類型表達式的值,你認為格式轉換說明符與輸出列表中的輸出項表達式應滿足怎樣的對應關系。在printf()函數的格式控制串中出現的普通字符,將原樣輸出到顯示器屏幕上,可以利用這些普通字符來設計數據的輸出格式。格式轉換說明符%s用于輸出字符串。實數在輸出的時候,printf()函數自動保留6位小數,不足6位小數補0,超過6位,進行四舍五入。格式轉換說明符與表達式列表中的數據項要一一對應,即個數相同,類型一致。如果沒有格式轉換說明符,也不應有輸出列表項。學生回答學生記憶提問基本輸入設備是鍵盤,基本輸出設備是顯示器。要使用標準的輸入輸出庫函數,需要在程序開始處加上#include"stdio.h"預處理命令,以通知C編譯器。擴展名為h的頭文件包含庫函數的原型說明。三、字符輸出函數putchar3.請執行下面的程序,比較程序的輸出結果,完成提出的問題。#include"stdio.h"main(){charch='G';putchar(ch);printf("%c",ch);}(1)請根據示例程序寫出使用putchar()函數的一般格式:(2)請根據對程序運行結果的分析寫出與putchar(ch);具有相同功能的printf()函數語句。(3)根據你對getchar()函數的認識,在使用putchar()時可能犯的錯誤有哪些情況,并說明錯誤的原因。本章節主要學習了printf函數的一般格式和工作過程,以及printf函數在使用中應注意的問題。另外學習了putchar這個專門的字符輸出函數學生回答C語言教案教學課題為程序輸入數據課題類型理論課時安排2上課時間教學目標掌握scanf函數的一般格式理解scanf函數的工作過程掌握scanf函數使用時的注意事項4.掌握字符輸入函數getchar的用法教學重點1.掌握scanf函數的一般格式2.理解scanf函數的工作過程3.掌握字符輸入函數getchar的用法教學難點1.掌握scanf函數使用時的注意事項作業布置教學后記復習引入程序界面是用戶與程序交互的窗口,是用戶輸入數據和程序輸出數據的地方。現代程序設計非常重視程序界面的美觀和操作的易用性,因此數據的輸入輸出就成了程序設計中的一個重點。C語言沒有專門的輸入輸出命令,它使用標準的輸入輸出庫函數來實現數據的輸入和輸出操作。教師活動教學過程師生互動活動設計提問一、為程序輸入數據:1.請閱讀并運行下面的程序,然后操作程序,按要求完成提出的問題。#include"stdio.h"main(){intm;floatx,y,z;charch,ch1,ch2;scanf("%d",&m);scanf("%f%f%f",&x,&y,&z);scanf("%c",&ch);scanf("%c%c",&ch1,&ch2);printf("m=%d\n",m);printf("x=%f,y=%f,z=%f\n",x,y,z);printf("ch=%c,ch1=%c,ch2=%c\n",ch,ch1,ch2);}(1)通過你對程序的觀察,請描述使用scanf()函數的一般使用格式:(2)scanf()函數的參數為用分隔的2部分,第一部分是一個,稱為格式控制串;其中的字符由一個和一個組成,被稱為格式轉換說明符,第二部分由形如組成的地址列表。①請描述格式轉換說明符的作用:格式轉換字符作用轉換后的數據類型②取變量地址的一般格式為,請你通過實驗考察常量和表達式這兩種形式的數據對象能否進行取地址操作,并談談做出選擇的理由。學生回答(4)請描述scanf()函數的執行過程:(5)使用一個scanf()可以同時為多個變量輸入數據嗎?○能○不能。在輸入數據時你用了什么字符來分隔數據,請分情況說明。二、scanf函數的注意事項2.修改下面程序中有錯誤的地方,使程序能正常運行,然后完成提出的問題。#include"stdio.h"main(){intm,a,b,c;floatx,y,z;charch,ch1,ch2;scanf("請輸入一個整數:%d",&m);printf("m=%d\n",m);scanf("%f,%f,%f,&x,&y,&z");printf("請輸入3個實數::\n");scanf("x=%f,y=%f,z=%f",&x,&y,&z);scanf("ch1=%cch2=%c"&ch1,&ch2);printf("ch1=%c,ch2=%c\n",ch1,ch2);scanf("%f%d%c",m,x,ch);printf("m=%d,x=%f,ch=%c",m,c,ch);scanf("%c",&m);printf("m=%d\n",m);scanf("%f",&m);printf("m=%d\n",m);scanf("%d",&ch);printf("ch=%c",ch);}提問提示注意(1)通過上機實驗,你認為在scanf()函數的格式控制串中可否使用除格式轉換說明符之外的普通字符?○可以○不可以。(2)請描述C語言對出現在scanf()格式控制串中的普通字符的處理方法。(3)請給出在scanf()函數格式控制串中使用普通字符的合理化建議。(4)格式轉換說明符能夠正確為與它表示的數據類型不同的變量輸入數據嗎?請談一談你的看法。(5)請你描述格式控制串中的格式轉換說明符與地址配合列表中的變量之間的對應關系。(6)在輸入數據時,為實型變量輸入整數,為整型變量輸入實數,有語法錯誤嗎?C語言是如何處理的?在輸入數據時,數據都是以字符的形式輸入的,經過格式轉換說明符轉換成對應的數據類型;分隔非字符型數據的字符有空格、水平制表符、換行符,它們統稱為空白字符。為多個字符變量輸入數據時,如果格式控制串中沒有使用任何普通字符,則輸入字符時不使用任何分隔符。建議在scanf()的格式控制串中只使用格式轉換說明符,有限制地使用普通字符,如果要使用普通字符,請給用戶以明確的操作提示。格式轉換說明符與地址列表中的變量要一一對應,即個數相同,類型一致。格式轉換說明符遇到輸入的非法字符即停止轉換三、字符輸入函數3.請執行下面的程序,比較程序的操作和輸出結果,完成下列問題。#include"stdio.h"學生回答學生記憶提問知識歸納main(){charch1,ch2;printf("請按字母y,然后回車\n");ch1=getchar();printf("請按字母y,然后回車\n");scanf("%c",&ch1);printf("ch1=%c,ch2=%c",ch1,ch2);}(1)請根據示例程序寫出getchar()函數的一般格式。(2)請根據對程序運行結果的分析寫出與ch=getchar()具有相同功能的scanf()函數語句。(3)根據你對getchar()函數的認識,在使用getchar()時容易犯的錯誤有哪些情況,并說明錯誤的原因。輸入函數scanf()的一般格式:scanf(格式控制串,變量地址列表);格式控制串由格式轉換說明符和普通字符組成,它規定數據輸入的格式;變量地址列表由接收輸入的變量地址組成,取變量地址的一般格式為:&變量名。格式轉換說明功能格式轉換字符作用變量類型%d把輸入的字符序列轉換為有符號的十進制形式的整數int%f把輸入的字符序列轉換為十進制小數形式的實數floatdouble%c把輸入的字符轉換成字符型數據char%s把輸入的字符序列轉換為字符串字符數組scanf()學生回答學生記憶小結的工作過程:掃描格式控制串,遇到格式轉換說明符時,把鍵盤輸入轉換為相應類型的數據存入對應地址所指的變量中;若遇到普通字符則要原樣輸入,依次類推,直到掃描完整個格式控制串。本章節主要學習了scanf函數的一般格式,工作過程,以及在使用中應注意的問題。C語言教案教學課題算法的表示課題類型理論課時安排2上課時間教學目標描述c語言語句類別和作用描述流程圖符號的名稱和所表示的操作用流程圖表示解決問題的算法4.描述結構化程序的基本結構的特點并用流程圖表示教學重點1.描述c語言語句類別和作用2.描述流程圖符號的名稱和所表示的操作3.用流程圖表示解決問題的算法教學難點1.描述結構化程序的基本結構的特點并用流程圖表示作業布置教學后記復習引入關于什么是程序有一個很經典的公式,即:程序=數據結構+算法,它是由著名的計算機科學家N.Wirth提出的。在程序設計中,算法是指加工處理數據對象的方法和步驟,算法是程序的靈魂。如何表示算法是一個程序設計人員必須面對的問題。教師活動教學過程師生互動活動設計提問描述c語言語句類別和作用1.請閱讀并分析下面程序中的語句,按要求填寫下表。#include"stdio.h"main(){intm=2,n=50,s=0;floatx,y,z;charch='x',ch1;floatfmax(float,float);while(m<=n){s+=m;m=m+5;n++;}scanf("%f%f",&x,&y)z=fmax(x,y);ch1=ch-32;printf("m=%d,n=%d,s=%d\n",m,n,s);printf("x=%f,y=%f,z=%f\n",x,y,z);printf("ch=%c,ch1=%c",ch,ch1);}floatfmax(floata,floatb){floatfm;if(a>=b)fm=a;elsefm=b;returnfm;}學生回答提示注意(1)請在上面的程序中找出C語言程序中用到的語句,填寫下表。(2)請根據你對程序語句的認識,評價直接用程序語句表示算法的利弊。(3)在程序設計的算法分析階段,用程序語句表示算法是:○利大于弊○弊大于利C語言中的語句:說明語句:用于定義變量或說明函數。表達式語句:在表達式后加上分號就成了表達式語句,它的功能是完成運算,有用的表達式語句能夠在執行后改變變量的值。空語句:單獨的一個分號,執行它計算機不會有任何操作。常用于構成循環體。函數調用語句:用于對函數實現調用。塊語句:用花括號括起來的多條語句,在語法上視作一條語句處理。控制語句:實現程序流程轉向控制的語句,如:if、switch、while、for、break、retrun、continue等。二、描述流程圖符號的名稱和所表示的操作流程圖是表示程序算法的常用方法,你可在不具備任何程序語言知識的情況下,使用流程圖符號來設計算法。請分析實現下表問題的方法和相應流程圖的算法表示,完成下表。輸入一個數x,然后輸出它的絕對值,其算法流程圖表示如下:結束結束NY開始輸入xx<0x=-x輸出x絕對值學生記憶提問提示注意請描述流程圖所示的每一個操作步驟:(1)請描述流程圖符號及作用。流程圖符號圖形名稱符號名稱表示的算法操作○小圓圈連接點分別置于兩條流程線的端接處,內注相同的數字,表示它們是連接在一起的流程線(2)請描述流程圖符號的使用要點。(3)請評價用流程圖表示算法的優勢。(4)試用流程表示下面問題的算法。輸入一個整數x,然后判斷并輸出它是否是奇數。學生填表學生記憶學生記憶知識歸納在算法分析、設計階段用程序語句表示算法不可取。因為那樣你把精力放在注程序設計語言中語句的語法細節上,而不能把精力集中在算法設計上,也不能和用戶就應用需求進行有效的溝通。表示算法的常用工具有自然語言、流程圖、偽代碼等。流程圖因直觀、易于理解,得到廣泛使用。在編寫程序代碼之前,用流程圖正確、準確地表示出算法,將有利于提高程序代碼的質量和編碼速度。在規范的流程圖中,豎直方向的流程線被稱為主流程線,可不畫出向下的箭頭。其它的流程線稱為分支流程線,分支流程線的末端必須畫上箭頭。三、描述結構化程序的基本結構的特點并用流程圖表示結構程序設計的思想興起于20世紀六、七十年代,結構化程序中采用了少量簡單、清晰的程序結構大大地消除了復雜軟件內部的混亂。請利用你對流程圖的了解,分析下面基本程序結構的流程圖表示的含義并完成下表。:模塊化程序設計要求在軟件設計開始時把待開發的系統劃分成若干相互獨立的、簡單容易實現模塊。這種化大為小,化復雜為簡單的方法被稱為“自頂而下,逐步細化”學生記憶的程序設計分析方法。C語言中函數是實現程序模塊的工具。程序設計的一般步驟小結分析問題→確定算法→編寫程序→調試程序基本程序結構的特點是:只有一個入口;只有一個出口;結構內沒有執行不到的語句;結構內沒有無限循環。本章節主要學習了c語言語句的類別和功能,算法的表示方法,流程圖的畫法以及結構化程序設計的三中基本結構的特點教學課題順序結構程序設計課題類型理論課時安排2上課時間教學目標正確描述順序結構執行的特點根據順序結構流程圖寫出程序能設計簡單的順序結構程序教學重點1.正確描述順序結構執行的特點2.根據順序結構流程圖寫出程序教學難點1.能設計簡單的順序結構程序作業布置教學后記復習引入順序結構是結構化程序設計3種基本結構之一,本模塊將討論順序結構程序的執行特點,以及如何設計順序結構程序。教師活動教學過程師生互動活動設計提問知識歸納一、考察順序結構程序的執行特點請運行下面的程序,輸入10,觀察程序的運行結果,完成表中提出的問題。#include"stdio.h"main(){floatr,s;printf("請輸入圓的半徑:");scanf("%f",&r);s=3.14*r*r;printf("圓面積是:%f\n",s);}(1)根據程序運行結果,按執行的先后順序列出程序中的執行語句。(2)根據程序,畫出相應的流程圖。(3)請描述順序結構程序的執行特點。順序結構程序的執行特點是按照語句在程序中排列的先后順序依次執行。順序結構程序中的的每條語句必須執行且只能執行一次,沒有執行不到或重復執行的語句二、根據流程圖寫出順序結構程序流程圖學生回答學生記憶提問開始開始結束輸入a,b輸出a,b的值輸出a,b的值(1)請參考日常生活中交換兩個杯子中的液體的辦法,尋找交換兩個變量值的方法。請描述你所想到的方法,寫下來。(2)完成流程圖中的空缺,然后根據流程圖,寫出源程序。(3)如果不借助中間變量t能使變量a、b的值交換嗎?如果能,該如何編程?學生回答提問2.請設計程序實現:輸入一個大寫字母,轉換成小寫字母后輸出。請分析問題的要求,解決表中提出的問題。開始開始結束輸入大寫字母ch1輸出小寫字母ch2(1)字符以形式存儲在計算機中,字符變量在存放字符時,實際保存的是,通過改變字符變量中的值,能改變它保存的字符嗎?○能○不能,請查閱本教材附錄1中的ASCII碼表,找到大小寫字母相互轉換的方法。(2)請完成流程圖,并寫出相應的源程序。(3)運行程序,分別輸入A,a,1,記錄并分析程序的輸出結果,然后談一談你對本程序的想法。學生回答提示注意(4)如果輸入的字符不是大寫字母,這樣的轉換還有意義嗎?怎樣才能避免輸入非大寫字母?交換兩個變量a,b值的關鍵代碼是:t=a;a=b;b=t;也可以不使用中間變量來完成,關鍵代碼為:a=a+b;b=a-b;a=a-b;在C語言中字母大小寫轉換很簡便,方法是:大寫字母=小寫字母-32,反之,小寫字母=大寫字母+32。分離一個三位的整數x的個十百位上數字的關鍵代碼是:

d0=x%10;d1=x/10%10;d2=x/100學生記憶教學課題分支結構程序設計—if語句課題類型理論課時安排2上課時間教學目標正確描述if語句執行的特點掌握if語句的一般格式能正確的使用if語句設計程序教學重點1.正確描述if語句執行的特點2.掌握if語句的一般格式教學難點1.能正確的使用if語句設計程序作業布置教學后記復習引入分支程序結構是結構化程序設計3種基本結構之一。分支流程控制可以使程序根據不同的條件選擇不同的處理方法,從而增強了程序的靈活性和實用性。本模塊將討論分支結構程序的執行特點和設計方法。教師活動教學過程師生互動活動設計提問知識歸納一、考察if語句執行的特點1.請觀察并分析下面的流程圖,完成表中提出的問題。(1)請在流程圖中用虛線框標出分支流程部分。(2)決定流程分支的條件是什么?(3)x的為什么數輸出Yes,x的為什么數輸出No。能同時輸出Yes和No嗎?請舉例并說明理由。(4)請對照流程圖,描述分支結構程序的執行特點。分支結構程序中有多個流程支路,在執行分支結構程序時,流程控制將根據分支條件選擇執行一條流程支路上的語句,而跳過其他去路上的語句。C語言使用if學生回答學生記憶提問知識歸納語句和switch語句來實現程序的分支流程控制。2.考察if語句的使用及執行過程(1)請分析下面的程序并上機驗證,完成下表提出的提問。源程序:#include"stdio.h"main(){intx;scanf("%d",&x);if(x>0)printf("%d\n",x);}①多次運行本程序,隨意輸入一些整數,記錄下每次的輸入數據和對應的輸出結果。輸入輸出②參照程序結果,對于每次輸入都有對應的輸出嗎?○有○沒有,為什么?請描述程序中if語句的執行過程。③在程序中標出實現流程分支的語句,畫出該分支語句的流程圖。④參考源程序,試寫出使用if語句的一般格式并畫省略流程圖。教學要點:if語句的一般形式:if(表達式)語句if和它控制的語句一起被稱為if語句。if語句的流程圖:學生記錄學生記憶提示注意if語句的執行過程:if語句執行時,首先計算if后面括號中的“表達式”,然后判斷其值的真假,如果表達式為“真”,則執行if控制的“語句”,否則跳過“語句”,流程轉到if語句后面的語句去執行。注意:if命令后的“表達式”可以是任何合法的C語言表達式加,但通常使用的是關系表達式和邏輯表達式。if命令控制的“語句”必須是語法上的一條語句,它可以是一條簡單語句也可以是一個塊語句。在語法上一個if語句被視為一條語句。學生記憶教學課題分支結構程序設計—ifelse語句課題類型理論課時安排2上課時間教學目標1.正確描述ifelse語句執行的特點2.掌握ifelse語句的一般格式3.能正確的使用ifelse語句設計程序教學重點1.正確描述ifelse語句執行的特點2.掌握ifelse語句的一

溫馨提示

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

評論

0/150

提交評論