版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、“編程能力編程能力”不是聽會的、不是聽會的、也不是看會的、而是動手動腦也不是看會的、而是動手動腦練會的!練會的!高級語言程序設(shè)計高級語言程序設(shè)計上半部分復(fù)習(xí)課上半部分復(fù)習(xí)課主講教師:丁丁主講教師:丁丁計算機與信息技術(shù)學(xué)院計算機與信息技術(shù)學(xué)院課程內(nèi)容課程內(nèi)容第一章第一章 程序設(shè)計和程序設(shè)計和C C語言語言第二章第二章 數(shù)據(jù)對象與計算數(shù)據(jù)對象與計算第三章第三章 變量、函數(shù)和控制結(jié)構(gòu)變量、函數(shù)和控制結(jié)構(gòu)第四章第四章 基本程序設(shè)計技術(shù)基本程序設(shè)計技術(shù)第五章第五章 C C程序結(jié)構(gòu)(函數(shù))程序結(jié)構(gòu)(函數(shù))第六章第六章 數(shù)組數(shù)組第七章第七章 指針指針第八章第八章 文件和輸入輸出文件和輸入輸出第九章第九章 結(jié)
2、構(gòu)和其它數(shù)據(jù)機制結(jié)構(gòu)和其它數(shù)據(jù)機制第十章第十章 程序開發(fā)技術(shù)程序開發(fā)技術(shù)第十一章第十一章 標(biāo)準(zhǔn)庫標(biāo)準(zhǔn)庫程序設(shè)計語言和程程序設(shè)計語言和程序設(shè)計的基本概念序設(shè)計的基本概念C C語言的語法規(guī)則語言的語法規(guī)則及程序設(shè)計方法及程序設(shè)計方法程序設(shè)計的擴程序設(shè)計的擴展與提高展與提高2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計3主要內(nèi)容主要內(nèi)容:程序設(shè)計和程序設(shè)計和C語言語言n1.1 程序和程序語言程序和程序語言q程序和程序語言程序和程序語言q算法及其描述工具算法及其描述工具n1.2 程序設(shè)計方法程序設(shè)計方法n1.3 問題與程序設(shè)計問題與程序設(shè)計2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計4202
3、2-3-29高級高級語言程序設(shè)計語言程序設(shè)計5主要內(nèi)容:主要內(nèi)容:數(shù)據(jù)對象與計算數(shù)據(jù)對象與計算n2.1 程序的基本結(jié)構(gòu)程序的基本結(jié)構(gòu) n2.2 基本概念基本概念n2.3 數(shù)據(jù)與類型數(shù)據(jù)與類型 n2.4 基本類型與數(shù)據(jù)表示基本類型與數(shù)據(jù)表示n2.5 數(shù)據(jù)的輸入與輸出數(shù)據(jù)的輸入與輸出n2.6 運算符、表達式與計算運算符、表達式與計算 n2.7 數(shù)學(xué)函數(shù)庫及其使用數(shù)學(xué)函數(shù)庫及其使用2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計6主要內(nèi)容:主要內(nèi)容:程序設(shè)計的基本知識程序設(shè)計的基本知識n3.1 語句、復(fù)合語句語句、復(fù)合語句 n3.2 變量變量概念、定義和使用概念、定義和使用n3.3 定義函數(shù)(初步
4、,第五章深入)定義函數(shù)(初步,第五章深入) n3.4 關(guān)系表達式、邏輯表達式、條件表達式關(guān)系表達式、邏輯表達式、條件表達式n3.5 語句和控制結(jié)構(gòu)語句和控制結(jié)構(gòu)n3.6 常見結(jié)構(gòu)和問題常見結(jié)構(gòu)和問題2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計7主要內(nèi)容:主要內(nèi)容:基本程序設(shè)計技術(shù)基本程序設(shè)計技術(shù)n4.1 循環(huán)程序設(shè)計循環(huán)程序設(shè)計 n4.2 循環(huán)中的問題循環(huán)中的問題n4.3 循環(huán)與遞歸循環(huán)與遞歸 n4.4 基本輸入輸出基本輸入輸出n4.5 程序設(shè)計實例程序設(shè)計實例n4.6 程序測試和排錯程序測試和排錯重點重點n控制結(jié)構(gòu)控制結(jié)構(gòu)q順序、選擇、循環(huán)結(jié)構(gòu)順序、選擇、循環(huán)結(jié)構(gòu)n函數(shù)函數(shù)q定義、聲明
5、及調(diào)用定義、聲明及調(diào)用n從問題到程序的編程思想從問題到程序的編程思想q程序的函數(shù)分解程序的函數(shù)分解q模塊化程序設(shè)計模塊化程序設(shè)計n基本的程序調(diào)試技能基本的程序調(diào)試技能q靜態(tài)調(diào)試、動態(tài)調(diào)試靜態(tài)調(diào)試、動態(tài)調(diào)試q黑箱測試、白箱測試黑箱測試、白箱測試2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計8難點難點n循環(huán)循環(huán)n遞歸遞歸n基本輸入、輸出語句基本輸入、輸出語句2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計9程序數(shù)據(jù)結(jié)構(gòu)算法程序數(shù)據(jù)結(jié)構(gòu)算法n程序程序q程序規(guī)定了計算機執(zhí)行的動作和動作的順序。程序規(guī)定了計算機執(zhí)行的動作和動作的順序。n算法:算法:q解決問題的方法和步驟解決問題的方法和步驟n算法的
6、幾個特性算法的幾個特性q有窮性有窮性q確定性確定性無二義無二義q可執(zhí)行性可執(zhí)行性q有有0個或多個輸入個或多個輸入q有有0個或多個輸出個或多個輸出從問題到程序的程序設(shè)計思想從問題到程序的程序設(shè)計思想也體現(xiàn)了算法的重要性也體現(xiàn)了算法的重要性2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計10要點要點1:運算符及表達式?:運算符及表達式?n已經(jīng)學(xué)習(xí)哪幾種運算符及表達式?優(yōu)先級關(guān)系?已經(jīng)學(xué)習(xí)哪幾種運算符及表達式?優(yōu)先級關(guān)系?q自增、自減運算符自增、自減運算符q算術(shù)運算符算術(shù)運算符q關(guān)系運算符關(guān)系運算符q邏輯運算符邏輯運算符q條件運算符條件運算符q賦值運算符賦值運算符q逗號運算符逗號運算符2022-3
7、-29高級高級語言程序設(shè)計語言程序設(shè)計11運算符運算符解釋解釋同級結(jié)合方式同級結(jié)合方式算術(shù)運算算術(shù)運算()括號括號由左向右由左向右邏輯運算邏輯運算算術(shù)運算算術(shù)運算! + - -+ - (類型類型) sizeof邏輯非,增減量邏輯非,增減量一元正負一元正負強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換由右向左由右向左* / %乘,除,取模乘,除,取模由左向右由左向右+ -二元加減二元加減由左向右由左向右關(guān)系運算關(guān)系運算 = 邏輯與邏輯與由左向右由左向右= !=邏輯或邏輯或由左向右由左向右邏輯運算邏輯運算&由左向右由左向右|由左向右由左向右條件運算條件運算?:?:由左向右由左向右賦值運算賦值運算= += -+*
8、= /= %=各種賦值各種賦值由右向左由右向左逗號運算逗號運算,逗號(順序)逗號(順序)由左向右由左向右2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計12要點要點2:C語言的基本數(shù)據(jù)類型語言的基本數(shù)據(jù)類型nC語言的基本數(shù)據(jù)類型有哪些?語言的基本數(shù)據(jù)類型有哪些?n什么是常量?如何定義?什么是常量?如何定義?n什么是變量?如何定義?什么是變量?如何定義?n變量的存貯類型有哪幾種?變量的存貯類型有哪幾種?qauto, register, static, externn變量從作用域的角度分哪幾種?變量從作用域的角度分哪幾種?q全局變量、局部變量全局變量、局部變量2022-3-29高級高級語言程序設(shè)
9、計語言程序設(shè)計132022-3-29高級高級語言程序設(shè)計語言程序設(shè)計14類型符號關(guān)鍵字?jǐn)?shù)的表示范圍所占位數(shù)整型字符型實型有無(signed)int32- 21474836482147483647(signed)short16-3276832767(signed)long32-2147483648214748364716unsigned short0655353204294967295unsigned longunsigned int3204294967295有float3.4e-383.4e38有double1.7e-3081.7e308有char8-128127無unsigned char8
10、0255基本數(shù)據(jù)類型基本數(shù)據(jù)類型3264說明:數(shù)據(jù)類型所占字節(jié)數(shù)編譯器不同而不同說明:數(shù)據(jù)類型所占字節(jié)數(shù)編譯器不同而不同2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計15 整型整型int整型整型short int短整型短整型long int長整型長整型 實型(實型(浮點型)浮點型)float 單精度浮點型單精度浮點型double雙精度浮點型雙精度浮點型 字符型字符型char字符型字符型常用數(shù)據(jù)類型常用數(shù)據(jù)類型要點要點3:條件:條件if語句語句n條件條件if語句有幾種形式?語句有幾種形式?qif語句語句qif-else語句語句qif-else if語句語句nif else的配對原則是什么?的
11、配對原則是什么?nIf else和和switch開關(guān)語句的差別?開關(guān)語句的差別?2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計16要點要點4:循環(huán)語句:循環(huán)語句n循環(huán)語句有幾種形式?循環(huán)語句有幾種形式?qwhile語句語句qdo-while語句語句qfor語句語句n循環(huán)結(jié)構(gòu)的三要素是什么?循環(huán)結(jié)構(gòu)的三要素是什么?n如何從循環(huán)中跳出?如何從循環(huán)中跳出?2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計17要點要點5:函數(shù):函數(shù)n如何定義函數(shù)?如何定義函數(shù)?n函數(shù)聲明的意義及原則?函數(shù)聲明的意義及原則?n如何調(diào)用函數(shù)?如何調(diào)用函數(shù)?n參數(shù)傳遞和函數(shù)返回值過程中類型不匹配時的參數(shù)傳遞和函數(shù)返回值
12、過程中類型不匹配時的轉(zhuǎn)換原則?轉(zhuǎn)換原則?n如何理解值參數(shù)?如何理解值參數(shù)?2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計182022-3-29高級高級語言程序設(shè)計語言程序設(shè)計19q特點:特點:“單單向向”傳遞傳遞void swap(int a, int b) int temp; temp = a; a = b; b = temp;int main() int x,y; scanf(%d,%d, &x, &y); swap(x, y); printf(n%d,%dn, x, y); return 0;例例 兩數(shù)交換兩數(shù)交換.20002008200A2002200420065變
13、量x 變量y(main)9 變量temp 變量b 變量a(swap)559 59COPY難點:函數(shù)的參數(shù)傳遞方式之難點:函數(shù)的參數(shù)傳遞方式之值值傳遞傳遞運行結(jié)果:運行結(jié)果:5, 9值傳遞要點要點6:基本輸入輸出語句:基本輸入輸出語句ngetchar()nputchar()nscanf()nprintf()n數(shù)的批量輸入輸出:基本輸入輸出循環(huán)結(jié)構(gòu)數(shù)的批量輸入輸出:基本輸入輸出循環(huán)結(jié)構(gòu)2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計20第一章習(xí)題講解第一章習(xí)題講解1.用用N-S結(jié)構(gòu)圖描述從十個數(shù)中選擇最大數(shù)的結(jié)構(gòu)圖描述從十個數(shù)中選擇最大數(shù)的算法。算法。輸入第一個數(shù)輸入第一個數(shù)a1,i=1;MAX
14、=a1 ; iai2. 給出求從給出求從1-100之間能被之間能被6整除的所有整數(shù)的整除的所有整數(shù)的和的算法。和的算法。 i=1;sum=0; i=100 i%6=0sum=sum+i i=i+1 輸出輸出sum第二章習(xí)題講解第二章習(xí)題講解1. (課后第課后第1題題)指出下面的哪些字符序列不是指出下面的哪些字符序列不是合法的標(biāo)識符:合法的標(biāo)識符:_abc x+- 3x1 Xf_1_4 Eoof_a$#24 x_x_2 bg-1_I am2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計252022-3-29高級高級語言程序設(shè)計語言程序設(shè)計26標(biāo)識符標(biāo)識符 程序中的名字(描述對象)稱為程序中的名
15、字(描述對象)稱為標(biāo)識符標(biāo)識符如變量名(如變量名(s,a,b,c)、)、 函數(shù)名(函數(shù)名(add, main)等;)等; 標(biāo)識符分標(biāo)識符分用戶定義的標(biāo)識符用戶定義的標(biāo)識符和和系統(tǒng)預(yù)定義的標(biāo)識符系統(tǒng)預(yù)定義的標(biāo)識符用戶定義的如用戶定義的如s,a,b,c;系統(tǒng)定義的如標(biāo)準(zhǔn)函數(shù)名系統(tǒng)定義的如標(biāo)準(zhǔn)函數(shù)名printf,用戶不得使用;,用戶不得使用; 標(biāo)識符標(biāo)識符對字母大小寫敏感對字母大小寫敏感:a和和A是不同字母;是不同字母;ABC、Abc、AbC和和abc是是4個不同標(biāo)識符個不同標(biāo)識符 形式形式:字母或數(shù)字組成的連續(xù)序列,字母(下劃線:字母或數(shù)字組成的連續(xù)序列,字母(下劃線“_”看看作字母)開頭(即以字
16、母開頭,后跟字母或數(shù)字)。作字母)開頭(即以字母開頭,后跟字母或數(shù)字)。標(biāo)識符命名基本原則標(biāo)識符命名基本原則2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計271)標(biāo)識符一般標(biāo)識符一般需要反映其用途需要反映其用途,如:,如:int sum;2)如果標(biāo)識符名由多個單詞構(gòu)成,通常采用如果標(biāo)識符名由多個單詞構(gòu)成,通常采用“大小寫大小寫”混排混排的方式的方式(Windows應(yīng)用程序),每個單詞的首字符可大寫;應(yīng)用程序),每個單詞的首字符可大寫; 如:如: TotalFiles,AddChild。3)變量名通常使用變量名通常使用“名詞名詞”或者或者“形容詞名詞形容詞名詞” 函數(shù)名通常使用函數(shù)名通常使用
17、“動詞動詞”或者或者“動詞名詞動詞名詞” 4)標(biāo)識符的標(biāo)識符的長度應(yīng)當(dāng)適當(dāng)長度應(yīng)當(dāng)適當(dāng)。ANSI C規(guī)定名字不準(zhǔn)超過規(guī)定名字不準(zhǔn)超過6個字個字符,符,C+/C不再有此限制,但不宜過長。不再有此限制,但不宜過長。 5)通常將通常將以下劃線開始的標(biāo)識符保留給系統(tǒng)用以下劃線開始的標(biāo)識符保留給系統(tǒng)用, 用戶不使用。用戶不使用。6)Unix(Linux)應(yīng)用程序的標(biāo)識符通常采用應(yīng)用程序的標(biāo)識符通常采用“小寫加下劃小寫加下劃線線”的方式,如的方式,如add_child。2. (課后第課后第2題題)手工計算下列表達式的值。手工計算下列表達式的值。n1) 125 + 0125n2)0XAF 0XFAn3)24
18、 * 3 / 5 + 6n4)36 + -(5 23) / 4n5)35 * 012 + 27 / 4 / 7 * (12 - 4)210-7520403502022-3-29高級高級語言程序設(shè)計語言程序設(shè)計28八進制八進制十六進制十六進制八進制八進制十六進制十六進制3.(課后第課后第3題題)在下列表達式的計算過程中,在哪些在下列表達式的計算過程中,在哪些地方將發(fā)生類型轉(zhuǎn)換,各是從什么類型轉(zhuǎn)換到什么地方將發(fā)生類型轉(zhuǎn)換,各是從什么類型轉(zhuǎn)換到什么類型,表達式計算的結(jié)果是什么?類型,表達式計算的結(jié)果是什么?n1) 3 * (2L + 4.5f) 012 + 44n2) 3* (int)sqrt(34
19、) sin(6) * 5 + 0 x2AFn3) cos(2.5f + 4) 6 * 27L + 1526 2.4L2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計29long to floatint to floatint to floatint to float53.500000703.3970771362.5765882022-3-29高級高級語言程序設(shè)計語言程序設(shè)計30自動類型轉(zhuǎn)換的原則自動類型轉(zhuǎn)換的原則int char, short 高高低低longunsigneddouble float轉(zhuǎn)換由編譯系統(tǒng)自動完成。轉(zhuǎn)換由編譯系統(tǒng)自動完成。轉(zhuǎn)換按數(shù)據(jù)長度增加的方向轉(zhuǎn)換按數(shù)據(jù)長度增加的方
20、向進行,即按進行,即按“向高看齊向高看齊”的的原則提升原則提升“較低較低”類型,以類型,以保證不降低精度。保證不降低精度。n把表示范圍小的類型的值轉(zhuǎn)換為表示范圍大的類把表示范圍小的類型的值轉(zhuǎn)換為表示范圍大的類型的值,從低到高轉(zhuǎn)型的值,從低到高轉(zhuǎn)4. 輸入并調(diào)試程序,觀察運行結(jié)果輸入并調(diào)試程序,觀察運行結(jié)果.#include int main() double f1=1.0e+10; double f2=3.14; printf(%f:%fn,f1); printf(%e:%en,f1); printf(%g:%gn,f1); printf(%f:%fn,f2); printf(%e:%en,f
21、2); printf(%g:%gn,f2); return 0;%f:10000000000.000000%e:1.000000e+10%g:1e+10%f:3.140000%e:3.140000e+00%g:3.142022-3-29高級高級語言程序設(shè)計語言程序設(shè)計31按帶小數(shù)點形式轉(zhuǎn)換輸出按帶小數(shù)點形式轉(zhuǎn)換輸出按科學(xué)表示形式轉(zhuǎn)換輸出按科學(xué)表示形式轉(zhuǎn)換輸出按帶小數(shù)點形式或者科學(xué)按帶小數(shù)點形式或者科學(xué)表示形式轉(zhuǎn)換輸出表示形式轉(zhuǎn)換輸出d,ix,Xoucse,Efg%十六進制無符號整數(shù)不帶符號十進制整數(shù)十進制整數(shù)指數(shù)形式浮點小數(shù)單一字符字符串八進制無符號整數(shù)小數(shù)形式浮點小數(shù)e和f中較短一種百分號本
22、身int a=567;printf ( “%d”,a);int a=255;printf(“%x”,a);int a=65;printf(“%o”,a);int a=567;printf(“%u”,a);char a=65;printf(“%c”,a);printf(“%s”,“ABC”);float a=567.789;printf(“%e”,a);float a=567.789;printf(“%f”,a);float a=567.789;printf(“%g”,a);printf(“%”);567ff101567AABC5.677890e+02567.789000567.789%說明:說
23、明:格式字符一般用小寫格式字符一般用小寫格式字符與輸出項個數(shù)應(yīng)相同,按先后順序一一對應(yīng)格式字符與輸出項個數(shù)應(yīng)相同,按先后順序一一對應(yīng)輸出轉(zhuǎn)換輸出轉(zhuǎn)換:格式字符與輸出項類型不一致,自動按指定格式輸出格式字符與輸出項類型不一致,自動按指定格式輸出格式字符表格格式字符表格.n對實數(shù),指定小數(shù)點后位數(shù)(四舍五入)修飾符功 能m輸出數(shù)據(jù)域?qū)?長度0)printf(“x1=%f,x2=%fn”,0.5*(sqrt(delta)-b)/a, 0.5*(-sqrt(delta)-b)/a); else if (delta=0)printf(“x1=x2=%fn”,-0.5*b/a); else printf(
24、“x1=%f+%fi,x2=%f-%fin”,-0.5*b/a,0.5*sqrt(-delta)/a,-0.5*b/a,0.5*sqrt(-delta)/a); return 0;6. 輸入三角形的三邊,用下述公式計算三角輸入三角形的三邊,用下述公式計算三角形的面積:形的面積: ,其中,其中 s=(a+b+c)/22022-3-29高級高級語言程序設(shè)計語言程序設(shè)計35#include #include int main( ) double a, b, c, s, area; printf(Please input a,b and c: n); scanf(%lf,%lf,%lf,&a,
25、&b,&c); s = (a + b + c) / 2.0; area = sqrt(s * (s - a) * (s - b) * (s - c); printf(a=%7.2f, b=%7.2f, c=%7.2f , s=%7.2f n, a, b, c, s); printf(area=%7.2fn, area); return 0;s(s-a)(s-b)(s-c)選做題:選做題:計算銀行存計算銀行存款的本息。輸入存款款的本息。輸入存款金額金額money、存期、存期year和年利率和年利率rate,根,根據(jù)公式計算存款到期據(jù)公式計算存款到期時的本息合計時的本息合計sum(
26、稅稅前),輸出時保留小前),輸出時保留小數(shù)點后兩位。數(shù)點后兩位。2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計36#include #include int main() int year; double money,rate,sum; printf(“please input the money:n”); scanf(“%lf”,&money); printf(“please input the year:n”); scanf(“%d”,&year); printf(“please input the rate:n”); scanf(“%lf”,&rate); s
27、um=money*pow(1+rate),year); printf(“sum=%.2fn”,sum); return 0;(1)yearsummoneyrate37上機問題匯總上機問題匯總nprintf(“%f”,1065/(24*13);qC語言不做類型檢查語言不做類型檢查q格式字符與輸出項類型不一致格式字符與輸出項類型不一致,自動按指定格式輸出自動按指定格式輸出n第第7題:計算題:計算5x2+2x+6的兩個根。的兩個根。q輸出它的兩個虛根輸出它的兩個虛根n注意注意qC語言中確實會發(fā)生自動類型轉(zhuǎn)換,但在寫程序時,盡量語言中確實會發(fā)生自動類型轉(zhuǎn)換,但在寫程序時,盡量使得一個表達式中的數(shù)據(jù)的類
28、型保持一致。使得一個表達式中的數(shù)據(jù)的類型保持一致。q節(jié)省不必要的空間損失。節(jié)省不必要的空間損失。q防止不同類型轉(zhuǎn)換時的信息丟失。防止不同類型轉(zhuǎn)換時的信息丟失。第三章習(xí)題講解第三章習(xí)題講解n2.設(shè)設(shè)a=1,b=2,c=3,則,則u的值為:的值為:qu=a?b:c; qu=(a=2)?b+a:c+a;n3.設(shè)設(shè)a=1,b=2,c=0,則下列表達式的值為:,則下列表達式的值為:qa & ! (b | c) & !a)q! (a & b) | c? a | b : a & b & cq! (a+bc) & b max) max = y;if (z max
29、) max = z;return max;2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計4110.四邊形的邊長為四邊形的邊長為a,b,c,d及一對對角之和及一對對角之和angel,求四邊形的面積。,求四邊形的面積。double QuaArea(double a, double b, double c, double d, double e)double s = (a+b+c+d)/2.;double area;area = sqrt(s-a)*(s-b)*(s-c)*(s-d)- a*b*c*d*cos(e)*cos(e);return area;有問題嗎?有問題嗎?2022-3-29高級
30、高級語言程序設(shè)計語言程序設(shè)計4212.寫程序求任意二次方程的根寫程序求任意二次方程的根。void root(double a, double b, double c) double d = b*b - 4*a*c; if (a=0) if ( b!=0 ) printf(Only one root:x=%fn,-c/b); else if (c=0) printf( Any roots! ); else printf(No root !); else if (d 0.) printf(“Two different real roots:);else if (d = 0.)printf(Two
31、same real roots: x1=x2=%fn, -b/2./a);elseprintf(Two different complex roots:); 2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計4322.寫一個程序打印寫一個程序打印1至至100之間的被之間的被6或或7整除整除的數(shù);修改這個程序使得它只打出被的數(shù);修改這個程序使得它只打出被6或或7之之一整除的數(shù)一整除的數(shù)(不包括同時被兩者整除的數(shù)不包括同時被兩者整除的數(shù))。int main ()int i = 0;while (i = 100)if (i % 6 = 0 & i % 7 != 0) | (i % 6 !=
32、0 & i % 7 = 0)printf(%dn, i);return 0;2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計44補充題補充題1. 求分段函數(shù)求分段函數(shù)#include #include #define a 10 double func(double ); int main()double x;printf(Please input a number:n);scanf(%lf,&x);printf(y=%fn,func(x);return 0;0, (), xaxaysqrt a axxaxaxxaxa 或或double func(double x)double
33、 y;if (x=a)|(x=-a) y=0.0;else if (fabs(x)a) y=sqrt(a*a-x*x); else y=x;return y;2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計452022-3-29高級高級語言程序設(shè)計語言程序設(shè)計46#includeint GradeIf(int);int GradeSwitch(int);int main()int n; printf(Input the mark from 0 to 99 n);while (scanf(%d, &n)=1)/ GradeIf(n); GradeSwitch(n);return 0;補
34、充題補充題2. 從鍵從鍵盤輸入學(xué)生的盤輸入學(xué)生的考試成績,利考試成績,利用計算機將學(xué)用計算機將學(xué)生的成績劃分生的成績劃分等級并輸。等級并輸。9099為為A級,級,8089為為B級,級,7079為為C級,級,6069為為D級,級,059為為E級。級。2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計47int GradeIf(int n)if(n99 | n=90)printf(The grade is A!n);else if(n=80)printf(The grade is B!n);else if(n=70)printf(The grade is C!n);else if(n=60)pri
35、ntf(The grade is D!n);elseprintf(The grade is E!n);return 0;2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計48int GradeSwitch(int n)if(n99 | n0)n=-1;elsen=n/10;switch (n)case -1: printf(Input error!n);break; case 9:printf(The grade is A!n);break;case 8:printf(The grade is B!n);break;case 7:printf(The grade is C!n);break;c
36、ase 6:printf(The grade is D!n);break;default:printf(The grade is E!n);return 0;2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計49補充題補充題3. 求水仙花數(shù)求水仙花數(shù)void method1(void)int i,j,k;for (i=1;i=9;i+)for (j=0;j=10;j+)for(k=0;k=10;k+)if(i*100+j*10+k=i*i*i+j*j*j+k*k*k)printf(%d是水仙花數(shù)是水仙花數(shù)n,i*100+j*10+k);void method2(void)int i,m,n,l
37、;for (i=100;i=999;i+)m = i/100;n = i/10%10;l = i%10;if(i=m*m*m+n*n*n+l*l*l)printf(%d是水仙花數(shù)是水仙花數(shù)n,i);補充題補充題4. 完數(shù)游戲。完數(shù)游戲。如果一個數(shù)恰好等于它的所有如果一個數(shù)恰好等于它的所有因子(包括因子(包括1但不包括自身)之和,則稱之為但不包括自身)之和,則稱之為“完數(shù)完數(shù)”。算法思想:算法思想:sum=0, m=2當(dāng)當(dāng)m=1000時,反復(fù)執(zhí)行時,反復(fù)執(zhí)行(2.1), (2.2), (2.3), (2.4), 否則轉(zhuǎn)否則轉(zhuǎn)(3) (2.1) k=m/2, n=0, j=1 (2.2) 當(dāng)當(dāng)j=
38、k時,反復(fù)執(zhí)行時,反復(fù)執(zhí)行(2.2.1), (2.2.2), 否則轉(zhuǎn)否則轉(zhuǎn)(2.3) (2.2.1) if(j是是m的因子的因子) 執(zhí)行執(zhí)行n=n+j (2.2.2) j+ (2.3) if (m等于等于n) 則輸出則輸出 完數(shù)完數(shù) m ,計算,計算sum=sum+m (2.4) m+1. 輸出輸出sum值值2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計50int main()int i,j,sum,n; sum=0; for(i=2;i=1000;i+) n=0; for(j=1;j=i/2;j+) if(i%j=0) n=n+j; if(n=i) sum+=i; printf(完數(shù)完數(shù)
39、%dn,i); printf(1000之內(nèi)完數(shù)和值之內(nèi)完數(shù)和值=%dn,sum); return 0;2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計512022-3-29高級高級語言程序設(shè)計語言程序設(shè)計52補充題補充題5. 打印如下圖案打印如下圖案#define n 4int main() int i,j,k; for(i=0;i=n;i+) for(j=0;jn-i;j+)printf( );for(k=0;k=0;i-) for(j=0;j=n-i;j+)printf( );for(k=0;k=6) t=(a/2+1);for(n=2;nt;n+) if(prime(n)=1&
40、prime(a-n)=1) printf(%ld=%ld+%ldn,a,n,a-n);break; return 0;long prime(long m) long i; if(i=1) return 0; for(i=2;i*i=m;i+)if(m%i=0) return 0; return 1;2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計532022-3-29高級高級語言程序設(shè)計語言程序設(shè)計54n給一個不多于給一個不多于3位的正整數(shù),要位的正整數(shù),要q求出它是幾位數(shù);求出它是幾位數(shù);q分別輸出每一位數(shù)字分別輸出每一位數(shù)字q按新逆序輸出各位數(shù)字,例如原數(shù)為按新逆序輸出各位數(shù)字,例如原數(shù)
41、為321,應(yīng)輸出,應(yīng)輸出123算法思想:算法思想:n設(shè)設(shè)a是整數(shù)變量;是整數(shù)變量;n如果如果a999則輸入錯誤則輸入錯誤n如果如果a=0并且并且a=10并且并且a=100并且并且a1000則輸出則輸出a是百位數(shù)是百位數(shù)q個位數(shù)是個位數(shù)是a%10q十位數(shù)是十位數(shù)是a/10%10q百位數(shù)是百位數(shù)是a/100#include /程序分析程序分析int main () int x, a, b, c, d; scanf(%d, &x);if (x/100 = 10 | x 0) a = x / 100; b = x / 10 % 10; c = x - a * 100 - b * 10; d =
42、 c * 100 + b * 10 + a; printf(three,%d,%d,%d,%dn, a, b, c, d);/*百位數(shù),十位數(shù),個位數(shù),逆序百位數(shù),十位數(shù),個位數(shù),逆序*/ else if (x/10 0) a = x / 10; b = x % 10; d = b * 10 + a; printf(two,%d,%d,%dn, a, b, d); /*十位數(shù),個位數(shù),逆序十位數(shù),個位數(shù),逆序*/ else a = x; printf(one,%d,%dn, a, a); /*個位數(shù),逆序個位數(shù),逆序*/return 0;第四章習(xí)題講解第四章習(xí)題講解4.寫函數(shù)計算寫函數(shù)計算1!
43、+2!+k!long SumFactor(int n)int i = 1;long f = 1, sum = 0;while (i = n)f = f * i;sum = sum + f;i+;return sum;2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計572022-3-29高級高級語言程序設(shè)計語言程序設(shè)計589.用公式編程求圓周率的近似值用公式編程求圓周率的近似值#include #define PI 3.14159165int main()int fi=1;double sum=0.0;double pi,term=1.0;double n;printf(please inpu
44、t the difference:n);scanf(%lf,&n);dosum=sum+term;pi=sqrt(6*sum);fi=fi+1;term=1.0/fi/fi; while(fabs(pi-PI)=n); printf(sum=%f,pi=%f,term=%dn,sum,pi,fi); return 0;12.求利用公式反正弦函數(shù)的近似值求利用公式反正弦函數(shù)的近似值double asinh (double x) int i, n=10, sign=-1;double term, sum;term=x;sum=x;for(i=1;i=n;i+) term=term*x*x*
45、(2*i-1)/(2*i); sum+=sign*term/(2*i+1)*(2*i-1); sign=-sign;return sum;2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計592022-3-29高級高級語言程序設(shè)計語言程序設(shè)計6014.輾轉(zhuǎn)相減求最大公約數(shù)輾轉(zhuǎn)相減求最大公約數(shù)int gcd(int m,int n)if (mn)return gcd(n,m);else if (m=n)return m;else return gcd(m-n,n);int gcd1(int m, int n) int r,t; if (m n) t=m;m=n;n=t; if (n = 0) r
46、eturn m; for (r = m-n; r != 0; r = m-n) m = n; n = r; if (m n) max1 = m;max2 = n;else max1 = n;max2 = m;while (scanf(%d, &n) = 1)if (max1 n) max2 = max1; max1 = n;else if (max2 n) max2 = n;printf(nmax1=%d,max2=%dn, max1, max2);return 0;21.求折線段的面積求折線段的面積double FigureArea(void)double y1, y2, area
47、= 0.0;printf(Please input a series positive float number.n);if (scanf(%lf, &y2) != 1) return 0;while (scanf(%lf, &y1) = 1) area += (y1+y2)/2.0;y2 = y1; return area;2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計62補充題補充題1. 有一分?jǐn)?shù)序列有一分?jǐn)?shù)序列 2/1,3/2,5/3,8/5,13/8, 21/13求這個數(shù)列前求這個數(shù)列前20項之和。(項之和。(32.660261) n第一項的分子為第一項的分子為2,
48、分母為,分母為1n其它項分子分母之間的關(guān)系:其它項分子分母之間的關(guān)系:n下一項的分母是前一項的分子;下一項的分母是前一項的分子;n下一項的分子是前一項的分子下一項的分子是前一項的分子+分母;分母;2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計63#include int main() double sum=0.0;int i; int a1=2,a2=1,tmp; for(i=1;i=20;i+) sum=sum+a1/(double)a2; tmp=a1; a1=a1+a2; a2=tmp; printf(sum=%lfn,sum); return 0;2022-3-29高級高級語言程序設(shè)計語言程序設(shè)計64補充題補充題2. 猴子吃桃問題。猴子吃桃問題。猴子第一天摘下若干個桃子,當(dāng)即吃了一半,還不猴子第一天摘下若干個桃子,當(dāng)即吃了一半,還不過癮,又多吃了一個。第二天早上又將剩下的桃子過癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃前一吃掉一半,又
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人心理咨詢與治療服務(wù)合同范本3篇
- 二零二五年度幕墻工程勞務(wù)分包合同售后服務(wù)及質(zhì)量保證3篇
- 個人與個人之間股權(quán)轉(zhuǎn)讓合同(2024版)5篇
- 二零二五年度廠房產(chǎn)權(quán)分割與共有權(quán)轉(zhuǎn)讓合同3篇
- 二零二五版木材行業(yè)安全教育培訓(xùn)服務(wù)合同4篇
- 二零二五年度儲煤場租賃及煤炭供應(yīng)鏈金融服務(wù)合同3篇
- 2024版谷穎的離婚協(xié)議書c
- 2025年度智能廚房設(shè)備升級采購與安裝服務(wù)合同2篇
- 二零二五年度廚師長餐飲企業(yè)廚師團隊培訓(xùn)與提升合同4篇
- 2025年度個人個人間二手車買賣合同4篇
- 一年級數(shù)學(xué)加減法口算題每日一練(25套打印版)
- 2024年甘肅省武威市、嘉峪關(guān)市、臨夏州中考英語真題
- DL-T573-2021電力變壓器檢修導(dǎo)則
- 繪本《圖書館獅子》原文
- 安全使用公共WiFi網(wǎng)絡(luò)的方法
- 2023年管理學(xué)原理考試題庫附答案
- 【可行性報告】2023年電動自行車相關(guān)項目可行性研究報告
- 歐洲食品與飲料行業(yè)數(shù)據(jù)與趨勢
- 放療科室規(guī)章制度(二篇)
- 中高職貫通培養(yǎng)三二分段(中職階段)新能源汽車檢測與維修專業(yè)課程體系
- 浙江省安全員C證考試題庫及答案(推薦)
評論
0/150
提交評論