![算法競(jìng)賽入門(mén)經(jīng)典授課教案第1章 算法概述_第1頁(yè)](http://file4.renrendoc.com/view15/M02/1E/05/wKhkGWeloh6AGnuqAAI9uC7-fCo612.jpg)
![算法競(jìng)賽入門(mén)經(jīng)典授課教案第1章 算法概述_第2頁(yè)](http://file4.renrendoc.com/view15/M02/1E/05/wKhkGWeloh6AGnuqAAI9uC7-fCo6122.jpg)
![算法競(jìng)賽入門(mén)經(jīng)典授課教案第1章 算法概述_第3頁(yè)](http://file4.renrendoc.com/view15/M02/1E/05/wKhkGWeloh6AGnuqAAI9uC7-fCo6123.jpg)
![算法競(jìng)賽入門(mén)經(jīng)典授課教案第1章 算法概述_第4頁(yè)](http://file4.renrendoc.com/view15/M02/1E/05/wKhkGWeloh6AGnuqAAI9uC7-fCo6124.jpg)
![算法競(jìng)賽入門(mén)經(jīng)典授課教案第1章 算法概述_第5頁(yè)](http://file4.renrendoc.com/view15/M02/1E/05/wKhkGWeloh6AGnuqAAI9uC7-fCo6125.jpg)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1部分語(yǔ)言篇第1章程序設(shè)計(jì)入門(mén)【教學(xué)內(nèi)容相關(guān)章節(jié)】1.1算術(shù)表達(dá)式1.2變量及其輸入1.3順序結(jié)構(gòu)程序設(shè)計(jì)1.4分支結(jié)構(gòu)程序設(shè)計(jì)1.5C/C++編碼規(guī)范【教學(xué)目標(biāo)】(1)熟悉C語(yǔ)言程序的編譯和運(yùn)行;(2)學(xué)會(huì)編程計(jì)算并輸出常見(jiàn)的算術(shù)表達(dá)式的結(jié)果;(3)掌握整數(shù)和浮點(diǎn)數(shù)的含義和輸出方法;(4)掌握數(shù)學(xué)函數(shù)的使用方法;(5)初步了解變量的含義;(6)掌握整數(shù)和浮點(diǎn)數(shù)變量的聲明方法;(7)掌握整數(shù)和浮點(diǎn)數(shù)變量的讀入方法;(8)掌握變量交換的三變量法;(9)理解算法競(jìng)賽中的程序三步曲:輸入、計(jì)算、輸出;(10)記住算法競(jìng)賽的目標(biāo)及其對(duì)程序的要求?!窘虒W(xué)要求】掌握算術(shù)表達(dá)式的書(shū)寫(xiě)格式、整數(shù)和浮點(diǎn)數(shù)的聲明、輸入和輸出方法,C語(yǔ)言中scanf的輸入格式和printf的輸出格式?!窘虒W(xué)內(nèi)容提要】計(jì)算機(jī)速度快,很適合做計(jì)算和邏輯判斷工作。本章首先介紹順序結(jié)構(gòu)程序設(shè)計(jì),其基本思路是:把需要計(jì)算機(jī)完成的工作分成若個(gè)步驟,然后依次讓計(jì)算機(jī)執(zhí)行。這部分的重點(diǎn)是計(jì)算,所以要求掌握算述表達(dá)式的書(shū)寫(xiě)格式,整數(shù)和浮點(diǎn)數(shù)的輸入和輸出方法。由于是競(jìng)賽,所以還要掌握C語(yǔ)言中scanf的輸入格式和printf的輸出格式中的一些特殊的格式。接下來(lái)介紹分支結(jié)構(gòu)程序設(shè)計(jì),用到了邏輯判斷,根據(jù)不同情況執(zhí)行不同語(yǔ)句。【教學(xué)重點(diǎn)、難點(diǎn)】教學(xué)重點(diǎn):(1)掌握算術(shù)表達(dá)式的書(shū)寫(xiě)格式;(2)整數(shù)和浮點(diǎn)數(shù)的聲明、輸入和輸出方法;(3)C語(yǔ)言中scanf的輸入格式和printf的輸出格式。教學(xué)難點(diǎn):整數(shù)和浮點(diǎn)數(shù)的聲明、輸入和輸出方法,scanf的輸入格式和printf的輸出格式?!菊n時(shí)安排(共2學(xué)時(shí))】1.1算術(shù)表達(dá)式(0.25學(xué)時(shí))1.2變量及其輸入(0.25學(xué)時(shí))1.3順序結(jié)構(gòu)程序設(shè)計(jì)(0.5學(xué)時(shí))1.4分支結(jié)構(gòu)程序設(shè)計(jì)(0.5學(xué)時(shí))1.5C/C++編碼規(guī)范(自學(xué))1.6小結(jié)與習(xí)題1.1算術(shù)表達(dá)式計(jì)算機(jī)的“本職”工作是計(jì)算,從算術(shù)表達(dá)式入手,分析計(jì)算機(jī)是如何進(jìn)行復(fù)雜的計(jì)算。下面來(lái)看一個(gè)完整的程序1-1。程序1-1計(jì)算并輸出1+2的值#include<stdio.h>intmain(){printf("%d\n",1+2);return0;}程序1-1的功能是計(jì)算1+2的值,并把結(jié)果3輸出到屏幕。下面做4個(gè)實(shí)驗(yàn):(1)實(shí)驗(yàn)1:修改程序1-1,輸出3-4的結(jié)果解答:用3-4代替程序1-1的背景為灰色的部分,輸出結(jié)果為-1。(2)實(shí)驗(yàn)2:修改程序1-1,輸出5×6的結(jié)果解答:用5*6代替程序1-1的背景為灰色的部分,輸出結(jié)果為30。(3)實(shí)驗(yàn)3:修改程序1-1,輸出8÷4的結(jié)果解答:用8/4代替程序1-1的背景為灰色的部分,輸出結(jié)果為2。(4)實(shí)驗(yàn)4:修改程序1-1,輸出8÷5的結(jié)果解答:用8/5代替程序1-1的背景為灰色的部分,輸出結(jié)果為1。注意:在C語(yǔ)言中,8/5的確切的含義是8除以5所得的商值的整數(shù)部分。下面來(lái)看一個(gè)完整的程序1-2。程序1-2計(jì)算并輸出8/5的值,并保留小數(shù)點(diǎn)后1位#include<stdio.h>intmain(){printf("%.1lf\n",8.0/5.0);return0;}程序1-2的功能是計(jì)算8.0/5.0的值,并把結(jié)果1.6輸出到屏幕。注意:在程序1-2的背景為灰色部分中,百分號(hào)后面是小數(shù)點(diǎn),然后是數(shù)字1,再然后是小寫(xiě)字母l,最后是小寫(xiě)它f。下面再來(lái)做3個(gè)實(shí)驗(yàn):(5)實(shí)驗(yàn)5:把%.1lf中的數(shù)字1改為2,結(jié)果如何?能猜想出“1”的確切意思嗎?如果把小數(shù)點(diǎn)和1都刪除,%1lf的含義是什么?解答:%lf表示輸出double浮點(diǎn)數(shù),如果程序1-2中的printf語(yǔ)句改為printf("%lf\n",8.0/5.0);,則輸出結(jié)果為1.600000。%.llf表示輸出double浮點(diǎn)數(shù),并且小數(shù)點(diǎn)后面保留一位數(shù)字,所以程序1-2的輸出結(jié)果為1.6。%.2lf表示輸出double浮點(diǎn)數(shù),并且小數(shù)點(diǎn)后面保留二位數(shù)字。(6)實(shí)驗(yàn)6:字符串%.llf不變,把8.0/5.0改成原來(lái)的8/5,結(jié)果如何?解答:在VC中調(diào)試的輸出結(jié)果為0.000000。在TC中調(diào)試,會(huì)出現(xiàn)一個(gè)提示“printf:floatingpointformatsnotlinked。Abnormalprogramtermination”。(7)實(shí)驗(yàn)7:字符串%.1lf改為原來(lái)的%d,8.0/5.0不變,結(jié)果如何?解答:在VC中調(diào)試的輸出結(jié)果為-1717986918。在TC中調(diào)試的輸出結(jié)果為-26214。對(duì)于上面的實(shí)驗(yàn)6和實(shí)驗(yàn)7的答案很難簡(jiǎn)單的解釋?zhuān)嬲脑蚴巧婕罢麛?shù)和浮點(diǎn)編碼。提示1-1:整數(shù)值用%d,實(shí)數(shù)用%lf輸出。提示1-2:整數(shù)/整數(shù)=整數(shù),浮點(diǎn)數(shù)/浮點(diǎn)數(shù)=浮點(diǎn)數(shù)。算術(shù)表達(dá)式可以和數(shù)學(xué)表達(dá)式一樣復(fù)雜,例如計(jì)算數(shù)學(xué)表達(dá)式的值:程序1-3復(fù)雜的表達(dá)式計(jì)算#include<stdio.h>#include<math.h>intmain(){printf("%.8lf\n",1+2*sqrt(3)/(5-0.1));return0;}說(shuō)明:(1)整數(shù)-浮點(diǎn)數(shù)是整數(shù)先“變”成浮點(diǎn)數(shù),然點(diǎn)浮點(diǎn)數(shù)-浮點(diǎn)數(shù)=浮點(diǎn)數(shù)。(2)在程序1-3中用到數(shù)學(xué)函數(shù)sqrt。數(shù)學(xué)函數(shù)sqrt(x)的作用是計(jì)算x的算術(shù)平方根。一般來(lái)說(shuō),只要在程序中用到了數(shù)學(xué)函數(shù),就需要在程序最開(kāi)始的地方包含文件math.h1.2變量及其輸入在程序中可以通過(guò)鍵盤(pán)輸入,然后根據(jù)輸入內(nèi)容來(lái)計(jì)算結(jié)果。程序如下:程序1-4#include<stdio.h>intmain(){inta,b;scanf("%d%d",&a,&b);printf("%d\n",a+b);return0;}說(shuō)明:(1)變量用來(lái)存儲(chǔ)可變的數(shù)據(jù),它像一個(gè)筐,什么都往里面裝。它只能用來(lái)存儲(chǔ)事先指定的數(shù)據(jù)結(jié)構(gòu)。(2)在scanf語(yǔ)句中,變量a和b前面的&(取地址)符號(hào),不能丟掉。提示1-3:scanf中的占位符和變量的數(shù)據(jù)類(lèi)型應(yīng)一一對(duì)應(yīng),且每個(gè)變量前需要&符號(hào)。下面來(lái)看一個(gè)復(fù)雜一點(diǎn)的例子。例1-1圓柱體的表面積。輸入底面積半徑r和高h(yuǎn),輸出圓柱體的表面積,保留3位小數(shù),格式見(jiàn)樣例。樣例輸入:3.59樣例輸出:Area=274.889【分析】圓柱體的表面積=底面積×2+側(cè)面積。根據(jù)平面幾何知識(shí),底面積=πr2,側(cè)面積=2πrh。完整的程序如下:程序1-5圓柱體的表面積#include<stdio.h>#include<math.h>intmain(){constdoublepi=4.0*atan(1.0);doubler,h,s1,s2,s;scanf("%lf%lf",&r,&h);s1=pi*r*r;s2=2*pi*r*h;s=s1*2.0+s2;printf("Area=%.3lf\n",s);return0;}說(shuō)明:(1)在程序1-5的語(yǔ)句“constdoublepi=4.0*atan(1.0);”中,const類(lèi)型限定修飾符表示把一個(gè)對(duì)象轉(zhuǎn)換成一個(gè)常量(constant),在程序中任何改變這個(gè)值的企圖都導(dǎo)致編譯錯(cuò)誤,因此它被稱(chēng)為是只讀的(read-only)。由于常量在定義后就不能修改,所以它必須初始化,未初始化的常量定義將導(dǎo)致編譯錯(cuò)誤。函數(shù)atan()計(jì)算數(shù)的反正切值,返回角度以弧度表示,也就是就是數(shù)學(xué)中的反正切函數(shù)arctg,由于tg(arctg(1))=1,即arctg(1)=π/4,所以atan(1.0)=0.785398(弧度)≈π/4。語(yǔ)句“constdoublepi=4.0*atan(1.0);”就是將常量pi賦值為4.0*0.785398=3.141593(π的近似值)。(2)const與#define的比較。在C/C++語(yǔ)言中,存在兩種符號(hào)常量:用#define定義的宏常量和用const定義的常量。但后者比前者具有更多的優(yōu)點(diǎn):①#define是預(yù)編譯偽指令,它定義的宏常量在進(jìn)入編譯階段前就已經(jīng)替換為所代表的字面常量,因此宏常量在本質(zhì)上是字面常量。const常量有數(shù)據(jù)類(lèi)型,而宏常量沒(méi)有數(shù)據(jù)類(lèi)型。編譯器可以對(duì)它進(jìn)靜態(tài)類(lèi)型安全檢查;而對(duì)#define常量只進(jìn)行字符替換,沒(méi)有類(lèi)型安全檢查,并且在字符替換時(shí)可能會(huì)產(chǎn)生意料不到的錯(cuò)誤(邊際效應(yīng))。所以在C++程序中應(yīng)盡量使用const來(lái)定義符號(hào)常量,包括字符串常量。②有些集成化的調(diào)試工具可以const常量進(jìn)行調(diào)試,但是不能對(duì)宏常量進(jìn)行調(diào)試。(3)在正規(guī)比賽中,題目包含著輸入輸出格式規(guī)定,還有樣例數(shù)據(jù)。(4)在比賽時(shí),選手程序的執(zhí)行是自動(dòng)完成的,沒(méi)有人工干預(yù)。不要在用戶(hù)輸入之前打印提示信息,否則會(huì)讓程序丟掉大量的分?jǐn)?shù),因?yàn)檫@些提示信息會(huì)被當(dāng)作輸出的數(shù)據(jù)的一部分。(5)不會(huì)讓程序“按任意鍵退出”(例如在DevC++中調(diào)用system(“pause”),或者加一個(gè)多余的getchar())。所以千萬(wàn)不要在算法競(jìng)賽中這樣做。提示1-4:在算法競(jìng)賽中,輸入前不要打印提示信息。輸出完畢后應(yīng)立即終止程序,不要等待用戶(hù)按鍵,因?yàn)檩斎胼敵鲞^(guò)程都是自動(dòng)的,沒(méi)有人工干預(yù)。提示1-5:在算法競(jìng)賽中不要使用頭文件conio.h,包括getch(),clrscr()。提示1-6:在算法競(jìng)賽中,每行輸出均應(yīng)以回車(chē)符結(jié)束,包括最后一行。除非特別說(shuō)明,每行的行首不應(yīng)空格,但行末通??梢杂卸嘤嗫崭瘛A硗?,輸出的每?jī)蓚€(gè)數(shù)或者字符串之間應(yīng)以單個(gè)空格隔開(kāi)。提示1-7:盡量用const關(guān)鍵字聲明常數(shù)。提示1-8:賦值是個(gè)動(dòng)作,先計(jì)算右邊的值,再賦給左邊的變量,覆蓋它原來(lái)的值。提示1-9:printf的格式字符串中可以包含其他可打印符號(hào),打印時(shí)原樣輸出。1.3順序結(jié)構(gòu)程序設(shè)計(jì)例1-2三位數(shù)反轉(zhuǎn)。輸入一個(gè)三位數(shù),分離出它的百位、十位和個(gè)位,反轉(zhuǎn)后輸出。樣例輸入:127樣例輸出:721【分析】首先將三位數(shù)讀入變量n,然后進(jìn)行分離。百位等于n/100(注意這里取的是商的整數(shù)部分),十位數(shù)等于n/10%10(這里的%是取余數(shù)操作),個(gè)位數(shù)等于n%10。完整的程序如下:程序1-6三位數(shù)反轉(zhuǎn)(1)#include<stdio.h>intmain(){intn;scanf("%d",&n);printf("%d%d%d\n",n%10,n/10%10,n/100);return0;}注意:程序1-6的輸出結(jié)果是025。如果一個(gè)數(shù)的個(gè)位是0,例如輸入是520,輸出結(jié)果是025,還是25,在算法競(jìng)賽中如果遇到這個(gè)問(wèn)題,可向監(jiān)考老師詢(xún)問(wèn)。提示1-10:算法競(jìng)賽的題目應(yīng)當(dāng)嚴(yán)密的,各種情況下的輸出均應(yīng)有嚴(yán)格規(guī)定。如果在比賽中發(fā)現(xiàn)題目有漏洞,應(yīng)當(dāng)向相關(guān)人員詢(xún)問(wèn),而盡量不要自己隨意假定。對(duì)程序1-6,如果要輸出25,解決辦法是在輸出結(jié)果前把結(jié)果存在變量m中,直接用%d格式輸出m,這樣可以輸出25;如果要輸出025,把輸出格式變?yōu)?03d即可。程序1-7三位數(shù)反轉(zhuǎn)(2)#include<stdio.h>intmain(){intn,m;scanf("%d",&n);m=(n%10)*100+(n/10%10)*10+(n/100);printf("%03d\n",m);return0;}例1-3交換變量。輸入兩個(gè)整數(shù)a和b,交換二者的值,然后輸出。樣例輸入:82416樣例輸出:16824【分析】按題目的所說(shuō),先把變量存入變量a和b,然后交換。最經(jīng)典的方法是三變量法:程序1-8變量交換(1)#include<stdio.h>intmain(){inta,b,t;scanf("%d%d",&a,&b);t=a;a=b;b=t;printf("%d%d\n",a,b);return0;}提示1-11:賦值a=b之后,變量a原來(lái)的值被覆蓋,而b的值不變。另一個(gè)方法沒(méi)有借助任何變量,但較難理解:程序1-9變量交換(2)#include<stdio.h>intmain(){inta,b;scanf("%d%d",&a,&b);a=a+b;b=a-b;a=a-b;printf("%d%d\n",a,b);return0;}說(shuō)明:程序1-9的功能也是交換兩個(gè)變量的值(少用了一個(gè)中間變量來(lái)實(shí)現(xiàn)),但實(shí)際上很少使用,因?yàn)樗倪m用范圍很窄:只有定義了加減法的數(shù)據(jù)類(lèi)型才能這么做。提示1-12:交換兩個(gè)變量的三變量法適用范圍廣,推薦使用。多數(shù)算法競(jìng)賽采用黑盒測(cè)試,即只考查程序解決問(wèn)題的能力,而不關(guān)心它采用的方法,所以三變量法不是解決變量交換的最佳途徑,對(duì)于本題而言,最合適程序如下:程序1-10變量交換(3)#include<stdio.h>intmain(){inta,b;scanf("%d%d",&a,&b);printf("%d%d\n",b,a);return0;}換句話(huà)說(shuō),我們的目標(biāo)是解決問(wèn)題,而不是為了寫(xiě)程序而寫(xiě)程序,同時(shí)應(yīng)保持簡(jiǎn)單(KeepItSimpleandStupid,KISS),而不是自己創(chuàng)造條件去展示編程序技巧。提示1-13:算法競(jìng)賽是在比誰(shuí)更好地解決問(wèn)題,而不是在比誰(shuí)寫(xiě)的程序看上去更高級(jí)。1.4分支結(jié)構(gòu)程序設(shè)計(jì)例1-4雞兔同籠。已知雞和兔的總數(shù)量為n,總腿數(shù)為m。輸入m和n,依次輸出雞的數(shù)目和兔的數(shù)目。如果無(wú)解,則輸出“Noanswer”(不要引號(hào))。樣例輸入:1432樣例輸入:122樣例輸出:106樣例輸出:Noanswer【分析】設(shè)雞有a只,兔有b只,則a+b=n,2a+4b=m,聯(lián)立解得a=(4n-m)/2,b=n-a。在本題中,首先,a和b都是整數(shù);其次,a和b必須是非負(fù)的??梢酝ㄟ^(guò)下面的程序判斷:程序1-11雞兔同籠#include<stdio.h>intmain(){inta,b,n,m;scanf("%d%d",&n,&m);a=(4*n-m)/2;b=n-a;if(m%2==1||a<0||b<0)printf("Noanswer\n");elseprintf("%d%d\n",a,b);return0;}在本程序中,用到if語(yǔ)句,其基本格式如提示1-14所示。提示1-14:if語(yǔ)句的基本格式為:if(條件)語(yǔ)句1;else語(yǔ)句2。在程序1-11中,m%2==1||a<0||b<0是一個(gè)邏輯表達(dá)式。和算術(shù)表達(dá)式類(lèi)似,邏輯表達(dá)式也由運(yùn)符符和值構(gòu)成,例如“||”運(yùn)算符稱(chēng)為“邏輯或”,a||b表示a和b只要有一個(gè)為真,a||b就為真;如果a和b都為真,則a||b也為真。提示1-15:if語(yǔ)句的條件是一個(gè)邏輯表達(dá)式,它的值可能為真,也可能為假。在邏輯表達(dá)式a||b中,只要a為真,無(wú)論b的取值為真或假,a||b均為真。換句話(huà)說(shuō),只要a真,不必計(jì)算b的值。C語(yǔ)言正是采取了這樣的策略,稱(chēng)為短路(short-circuit)。類(lèi)似地,邏輯表達(dá)式a&&b,也存在這種短路現(xiàn)象,只要a為假,不必計(jì)算b的值,結(jié)果必為假。提示1-16:C語(yǔ)言中的邏輯運(yùn)算符都是短路運(yùn)算符。一旦能夠確定整個(gè)表達(dá)式的值,就在再繼續(xù)計(jì)算。課堂小練習(xí)1寫(xiě)出下列各邏輯表達(dá)式的值(真為1,假為0),設(shè)a=3,b=4,c=5。(1)a+b>c&&b==c答案:由于b==c為假,所以剩下的就不用計(jì)算了。(2)a||b+c&&b-c答案:1,由于a為真,所以剩下的就不用計(jì)算了。(3)!(a>b)&&!c||1答案:1,由于1為真,所以剩下的就不用計(jì)算了。(4)!(x=a)&&(y=b)&&0答案:0,由于0為假,所以剩下的就不用計(jì)算了。(5)!(a+b)+c-1&&b+c/2答案:0,!(a+b)+c-1為假,所以剩下的就不用計(jì)算了。例1-5三整數(shù)排序。輸入3個(gè)整數(shù),從小到大排序后輸出。樣例輸入:20733樣例輸入:72033【分析】a、b、c3個(gè)數(shù)一共只有6種可能的順序:abc、acb、bac、bca、cab、cba,所以最簡(jiǎn)單的思路是使用6條if語(yǔ)句。程序1-12三整數(shù)排序(1)(錯(cuò)誤)#include<stdio.h>intmain(){inta,b,c;scanf("%d%d%d",&a,&b,&c);if(a<b&&b<c)printf("%d%d%d\n",a,b,c);if(a<c&&c<b)printf("%d%d%d\n",a,c,b);if(b<a&&a<c)printf("%d%d%d\n",b,a,c);if(b<c&&c<a)printf("%d%d%d\n",b,c,a);if(c<a&&a<b)printf("%d%d%d\n",c,a,b);if(c<b&&b<a)printf("%d%d%d\n",c,b,a);return0;}注意:在程序1-12中,如果輸入111將得不到任何輸出。所以編寫(xiě)出來(lái)的程序,即使通過(guò)了題目中給出的樣例,程序仍然可能存在問(wèn)題。提示1-17:算法競(jìng)賽的目標(biāo)是編程對(duì)任意輸入均得到正確的結(jié)果,而不僅是樣例數(shù)據(jù)。對(duì)于上面出現(xiàn)的錯(cuò)誤,它的解決方案是人為地讓6種情況沒(méi)有交叉:把所有的if改成elseif。程序1-13三整數(shù)排序(2)#include<stdio.h>intmain(){inta,b,c;scanf("%d%d%d",&a,&b,&c);if(a<=b&&b<=c)printf("%d%d%d\n",a,b,c);elseif(a<=c&&c<=b)printf("%d%d%d\n",a,c,b);elseif(b<=a&&a<=c)printf("%d%d%d\n",b,a,c);elseif(b<=c&&c<=a)printf("%d%d%d\n",b,c,a);elseif(c<=a&&a<=b)printf("%d%d%d\n",c,a,b);elseif(c<=b&&b<=a)printf("%d%d%d\n",c,b,a);return0;}提示1-18:如果有多個(gè)并列、情況不交叉的條件需要一一處理,可以用elseif語(yǔ)句。另一種思路是把a(bǔ)、b、c這3個(gè)變量本身改成a≤b≤c的形式。首先檢查a和b的值,如果a>b,則交換a和b(利用前面進(jìn)過(guò)的三變量交換法);接下來(lái)檢果a和c,最后檢查b和c,程序如下:程序1-14三整數(shù)排序(3)#include<stdio.h>intmain(){inta,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%d%d%d\n",a,b,c);return0;}注意:程序1-14的檢查順序不可顛倒。例如,先判斷a>b,然后b>c,最后a>c是不可以的。假如輸入321,則結(jié)果為213。提示1-19:可以用花括號(hào)把若干條語(yǔ)句組成一個(gè)整體(復(fù)合語(yǔ)句)。這些語(yǔ)句仍然按順序執(zhí)行。最后一種思路再次利用了“問(wèn)題求解”這一目標(biāo)——它實(shí)際上并沒(méi)有真的進(jìn)行排序:求出了最小值和最大值,中間值是可以計(jì)算出來(lái)的。程序1-15三整數(shù)排序(4)#include<stdio.h>intmain(){inta,b,c,x,y,z;scanf("%d%d%d",&a,&b,&c);x=a<?b<?c;x=a;if(b<x)x=b;if(c<x)x=c;z=a;if(b>z)z=b;if(c>z)z=c;y=a+b+c-x-z;printf("%d%d%d\n",x,y,z);return0;}注意:程序1-15中包含了的“當(dāng)前最小值”x和“當(dāng)前最大值”z。它們初始化為a,但是隨著“比較”操作的進(jìn)行而慢慢更新,最后變成真正的最小值和最大值。這個(gè)技巧極為實(shí)用。提示1-20:在難以一次性求出最后結(jié)果時(shí),可以用變量?jī)?chǔ)存“臨時(shí)結(jié)果”,從而逐步更新。1.5C一個(gè)好的程序,不僅要算法正確,效率高,而且還應(yīng)該可讀性好。所謂程序的可讀性,就是程序是否能讓人容易讀懂。在開(kāi)發(fā)實(shí)踐中,許多情況下可讀性與代碼效率同等重要。軟件開(kāi)發(fā)是團(tuán)隊(duì)工作,接手別人編碼的程序并在此基礎(chǔ)上進(jìn)行改進(jìn)是必不可少的,因此可讀性在工程實(shí)踐中非常重要。即使是自己編寫(xiě)的程序,如果可讀性不好,過(guò)一段時(shí)間需要改進(jìn)時(shí)自己再看,也常會(huì)看不懂。如何提高程序的可讀性呢?在標(biāo)識(shí)符、書(shū)寫(xiě)格式、注釋三個(gè)方面加以培養(yǎng),再養(yǎng)成一些好的習(xí)慣,就能夠有效增強(qiáng)程序的可讀性。1.5.1應(yīng)該對(duì)變量、常量以及函數(shù)等標(biāo)識(shí)進(jìn)行適當(dāng)?shù)拿?。好的命名方法使?biāo)識(shí)符易于記憶且使程序可讀性大大提高。對(duì)標(biāo)識(shí)符命名的基本要求是,看到標(biāo)識(shí)符就能想起或猜出它是做什么用的。如果名字能體現(xiàn)變量的類(lèi)型或作用域等性質(zhì),當(dāng)然更好。標(biāo)識(shí)符命名應(yīng)注意以下幾點(diǎn):(1)標(biāo)識(shí)符號(hào)應(yīng)能提供足夠信息以說(shuō)明其用途。一定不要怕麻煩而懶得起足夠長(zhǎng)的變量名,少按幾個(gè)鍵省下的時(shí)間,和日后自己讀程序或別人讀你的程序揣摩該變量的作用所花的時(shí)間相比,實(shí)在微不足道。在沒(méi)有國(guó)標(biāo)合作的項(xiàng)目中編寫(xiě)程序,如果英語(yǔ)實(shí)在不好,可以使用拼音,但不要使用拼音縮寫(xiě)。(2)為全局變理取長(zhǎng)的、描述信息多的名字,為局部變量限稍短的名字。(3)名字太長(zhǎng)時(shí)可以適當(dāng)采用單詞的縮寫(xiě)。但要注意縮寫(xiě)方式一致,要縮寫(xiě)就全部縮寫(xiě)。比如單詞Number,如果在某個(gè)變量里縮寫(xiě)成了:intnDoorNum;那么最好包含Number單詞的變量都縮寫(xiě)成Num。(4)注意使用單詞的復(fù)數(shù)形式。如intnTotalStudents,nStudents;nStudents容易讓人理解成代表學(xué)生數(shù)目,而nStudent含義就不十分明顯。(5)對(duì)于返回值為真或假的函數(shù),加“IS”前綴如:intIsCanceled();intisalpha();//C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)BOOLIsButtonPushed();1.5.書(shū)寫(xiě)格式好的程序,看起來(lái)才有好心情,誰(shuí)也不愿意看下面這樣的程序:voidmain(){intt,x,y;cin>>t;while(t>0){min=60000;cin>>N>>x>>y>>max;plat[0].x1=x;plat[0].x2=x;plat[0].h=y;for(inti=1;i<=N;i++){cin>>plat[i].x1>>plat[i].x2>>plat[i].h;plat[i].t1=-1;plat[i].t2=-1;if(plat[i].h>y){i--;N--;}}plat[0].t1=0;plat[0].t2=0;qsort((void*)(&plat[1]),N,sizeof(plat[0]),compare);tryway(0);t--;cout<<min<<endl;}}因此,如果想要讓你的程序看起來(lái)賞心悅目,應(yīng)該注意以下幾點(diǎn):(1)正確使用縮進(jìn)首先,一定要有縮進(jìn),否則代碼的層次不明顯??s進(jìn)應(yīng)為4個(gè)空格較好。需要縮進(jìn)時(shí)一律按Tab鍵,或一律按空格鍵,不要有時(shí)用Tab鍵縮進(jìn),有時(shí)用空格鍵縮進(jìn)。一般開(kāi)發(fā)環(huán)境都能設(shè)置一個(gè)Tab鍵相當(dāng)于多少個(gè)空格,此時(shí)就都用Tab鍵。(2)行寬與折行一行不要太長(zhǎng),不能超過(guò)顯示區(qū)域,以免閱讀不便。太長(zhǎng)則應(yīng)折行,折行最好發(fā)生在運(yùn)算符前面,不要發(fā)生在運(yùn)算符后面。如if(Condition1()&&Condition2()&&Condition3()){}3)‘{’,‘}’位置不可隨意放置。建議將‘{’放在一行的右邊,而將‘}’單獨(dú)放置一行。如:if(condition1()){DoSomething();}比較if(condition1()){DoSomething();}這種寫(xiě)法,前者既不影響可讀性,又能節(jié)省一行。但是對(duì)于函數(shù)體或結(jié)構(gòu)定義的的第一個(gè)‘{’,還是單獨(dú)一行更為清晰。(4)變量和運(yùn)算符之間最好加1個(gè)空格,如:intnAge=5;nAge=4;if(nAge>=4)printf(“%d”,nAge);for(i=0;i<100;i++);1.5.3在工程實(shí)踐中,文件開(kāi)頭,全局變量定義處,函數(shù)開(kāi)頭,都應(yīng)該有注釋。文件開(kāi)頭的注釋模板如下:/********************************************************************文件名:**Copyright(c)1998-1999*********公司技術(shù)開(kāi)發(fā)部**創(chuàng)建人:**日期:**修改人:**日期:**描述:****版本:**---------------------------------------------------------------------------******************************************************************/函數(shù)開(kāi)頭的注釋模板如下:/*******************************************************************函數(shù)名:**輸入:a,b,c**a---**b---**c---**輸出:x---**x為1,表示...**x為0,表示...**功能描述:**用到的全局變量:**調(diào)用模塊:**作者:**日期:**修改:**日期:**版本****************************************************************/本書(shū)由于篇幅所限,書(shū)中程序略去了文件開(kāi)始處和函數(shù)開(kāi)始處的注釋。1.5.(1)盡量不要用立即數(shù),而用#define定義成常量,以便以后修改。例如:#defineMAX_STUDENTS20structSStudentaStudents[MAX_STUDENTS];比structSStudentaStudents[20];好。再例如:#defineTOTAL_ELEMENTS100for(i=0;i<TOTAL_ELEMENTS;i++){}(2)使用sizeof(),不直接使用變量所占字節(jié)數(shù)的數(shù)值。如應(yīng)該寫(xiě)成:intnAge;for(j=0;j<100;j++)fwrite(fpFile,&nAge,1,sizeof(int));不應(yīng)該寫(xiě):for(j=0;j<100;j++)fwrite(fpFile,&nAge,1,4);(3)稍復(fù)雜的表達(dá)式中要積極使用括號(hào),以免優(yōu)先級(jí)理解上的混亂以及二義性。n=k+++j;//不好n=(k++)+j;//好一點(diǎn)(4)不很容易理解的表達(dá)式應(yīng)分幾行寫(xiě):n=(k++)+j;應(yīng)該寫(xiě)成:n=k+j;k++;(5)嵌套的ifelse語(yǔ)句要多使用{}if(Condition1())if(condition2())DoSomething();elseNoCondition2();不夠好,應(yīng)該:if(Condition1()){if(condition2())DoSomething();elseNoCondition2();}(6)單個(gè)函數(shù)的程序行數(shù)最好不要超過(guò)100行(兩個(gè)屏幕高)。(7)盡量使用標(biāo)準(zhǔn)庫(kù)函數(shù)。(8)不要隨意定義全局變量,盡量使用局部變量。(9)保持注釋與代碼完全一致,改了代碼別忘改注釋。(10)循環(huán)、分支層次最好不要超過(guò)5層。(11)注釋可以與語(yǔ)句在同一行,也可以在上行。(12)一目了然的語(yǔ)句不加注釋。1.6小結(jié)與習(xí)題通過(guò)前幾個(gè)小節(jié)的學(xué)習(xí),對(duì)順序結(jié)構(gòu)程序設(shè)計(jì)和分支程序設(shè)計(jì)的核心概念和方法,然而對(duì)這些進(jìn)行知識(shí)進(jìn)行總結(jié),并且完成適當(dāng)?shù)木毩?xí)是很有必要的。1.6.實(shí)驗(yàn)A1:表達(dá)式11111*11111的值是多少?把5個(gè)1改為6個(gè)1呢?9個(gè)1呢?解答:(1)計(jì)算表達(dá)式11111*11111的值#include<stdio.h>intmain(){printf("11111*11111=%ld",11111*11111);return0;}程序的運(yùn)行結(jié)果為11111*11111=123454321。(2)計(jì)算表達(dá)式111111*111111的值只須將(1)中的printf語(yǔ)句改為printf("111111*111111=%ld",111111*111111);,程序的運(yùn)行結(jié)果為111111*111111=-539247567。正確的結(jié)果應(yīng)為12345654321,由于這個(gè)數(shù)比較大,所以產(chǎn)生了溢出。(3)計(jì)算表達(dá)式111111111*111111111的值只須將(1)中的printf改為printf("111111111*111111111=%ld",111111111*111111111);,程序的運(yùn)行結(jié)果為111111111*111111111=1653732529。正確的結(jié)果應(yīng)為12345678987654321,由于這個(gè)數(shù)比較大,所以產(chǎn)生了溢出。實(shí)驗(yàn)A2:把實(shí)驗(yàn)A1中的所有數(shù)換成浮點(diǎn)數(shù),結(jié)果如何?解答:(1)計(jì)算表達(dá)式11111.0*11111.0的值#include<stdio.h>intmain(){printf("11111.0*11111.0=%lf",11111.0*11111.0);return0;}程序的運(yùn)行結(jié)果為11111*11111=123454321.000000。(2)計(jì)算表達(dá)式111111.0*111111.0的值只須將(1)中的printf語(yǔ)句改為printf("11111*11111=%lf",11111*11111);,程序的運(yùn)行結(jié)果為111111.0*111111.0=12345654321.000000。(3)計(jì)算表達(dá)式111111111.0*111111111.0的值只須將(1)中的printf改為printf("111111111.0*111111111.0=%lf",111111111.0*111111111.0);,程序的運(yùn)行結(jié)果為111111111.0*111111111.0=12345678987654320.000000。實(shí)驗(yàn)A3:表達(dá)式sqrt(-10)的值是多少?嘗試用種方法輸出。在計(jì)算過(guò)程中系統(tǒng)會(huì)報(bào)錯(cuò)嗎?解答:#include<stdio.h>#include<math.h>intmain(){printf("sqrt(-10)=%lf",sqrt(-10));return0;}程序的運(yùn)行結(jié)果為sqrt(-10)=-1.#IND,沒(méi)有報(bào)錯(cuò),但結(jié)果異常。實(shí)驗(yàn)A4:表達(dá)式1.0/0.0、0.0/0.0的值是多少?嘗試用種方法輸出。在計(jì)算過(guò)程中系統(tǒng)會(huì)報(bào)錯(cuò)嗎?解答:#include<stdio.h>intmain(){printf("1.0/0.0=%lf0.0/0.0=%lf",1.0/0.0,0.0/0.0);return0;}輸出結(jié)果為1.0/0.0=1.#INF0.0/0.0=-1.#IND。在計(jì)算過(guò)程中系統(tǒng)會(huì)報(bào)錯(cuò),提示信息為“divdideormodbyzero”。實(shí)驗(yàn)A5:表達(dá)式1/0的值是多少?在計(jì)算過(guò)程中系統(tǒng)會(huì)報(bào)錯(cuò)嗎?解答:表達(dá)式1/0的值無(wú)結(jié)果。在計(jì)算過(guò)程中系統(tǒng)會(huì)報(bào)錯(cuò),提示信息為“divdideormodbyzero”。1.6.scanf("%d%",&a,%b);語(yǔ)句用來(lái)輸入兩個(gè)數(shù),可用Tab、空格、回車(chē),作為分隔符。實(shí)驗(yàn)B1:在同一行中輸入12和2,并以空格分隔,是否得到了預(yù)期的效果?解答:#include<stdio.h>voidmain(){ inta,b; scanf("%d%d",&a,&b); printf("%d,%d\n",a,b); return;}從鍵盤(pán)上輸入:122↙,可以達(dá)到輸入兩個(gè)數(shù)給變量a和b的效果。實(shí)驗(yàn)B2:在不同的兩行中輸入12和2,是否得到了預(yù)期的效果?解答:從鍵盤(pán)上輸入:12↙2↙,也可以達(dá)到輸入兩個(gè)數(shù)給變量a和b的效果。。實(shí)驗(yàn)B3:在實(shí)驗(yàn)B1和B2中,在12和2的前面和后面加入大量的空格或水平制表符(TAB),甚至插入一些空行。解答:從鍵盤(pán)上輸入的12和2,也可以前面和后面加入大量的空格或水平制表符(TAB),甚至插入一些空行,達(dá)到輸入兩個(gè)數(shù)給變量a和b的效果。實(shí)驗(yàn)B4:把2換成字符s,重復(fù)實(shí)驗(yàn)B1~B3。解答:從鍵盤(pán)上輸入:122↙,而輸出的結(jié)果為12-85899360。1.6在printf語(yǔ)句中的格式字符串,決定了數(shù)據(jù)的輸入/輸出格式。實(shí)驗(yàn)C1:僅用一條printf語(yǔ)句,打印1+2和3+4,用兩個(gè)空行隔開(kāi)。解答:#include<stdio.h>voidmain(){ printf("%d\n\n%d",1+2,3+4); return;}實(shí)驗(yàn)C2:試著把%d中的兩個(gè)字符(百分號(hào)和小寫(xiě)字)。解答:#include<stdio.h>voidmain(){ printf("%%d\n"); return;}實(shí)驗(yàn)C3:試著把\n中的兩個(gè)字符(反斜線(xiàn)和小寫(xiě)字母n)輸出到屏幕。解答:#include<stdio.h>voidmain(){ printf("\\n"); return;}實(shí)驗(yàn)C4:像C2、C3那樣也需要“特殊方法”才能輸出的東西還有哪些?哪些是printf函數(shù)引起的問(wèn)題,哪些不是?解答:輸出單引號(hào)和雙引號(hào)需要用\’和\"。1.6.問(wèn)題1:int型整數(shù)的最小值和最大值是多少?(需要精確度)。解答:(1)方法一#include<stdio.h>#include<math.h>intmain(){ inta,b; a=-pow(2,31); b=pow(2,31)-1; printf("%d%d\n",a,b); return0;}注意:在TC中int型整數(shù)(2字節(jié))的最小值和最大值分別為-32768和32767;在VC6.0中int型整數(shù)(4字節(jié))的最小值和最大值分別為-2147483648和2147483647,所以不同的編譯系統(tǒng)為整型數(shù)據(jù)分配的字節(jié)數(shù)是不相同的。本題程序是在VC6.0中調(diào)試的。(2)方法二#include<stdio.h>#include<limits.h>intmain(){ inta,b; a=INT_MAX; b=INT_MIN; printf("%d%d\n",a,b); return0;}說(shuō)明:頭文件limits.h中定義了用于表示整數(shù)類(lèi)型大小的常量(宏定義)。(1)如果在C:盤(pán)上有TC,就可以在“c:\TC”用記事本打開(kāi)頭文件limits.h,可以找到“#defineINT_MAX0x7FFF”和“#defineINT_MIN((int)0x8000)”。INT_MAX表示在TC中表示最大整數(shù),0x7FFF就是32767;INT_MIN表示在TC中表示最小整數(shù),(int)0x8000就是-32768。(2)如果在C:盤(pán)裝有VC6.0,就可以在“C:\ProgramFiles\MicrosoftVisualStudio\VC98\Include”用記事本打開(kāi)頭文件limits.h,可以找到“#defineINT_MIN(-2147483647-1)/*minimum(signed)intvalue*/”和“#defineINT_MAX2147483647/*maximum(signed)intvalue*/”。INT_MAX表示在VC6.0中表示最大整數(shù)是2147483647;INT_MIN表示在TC中表示最小整數(shù)是-2147483648。問(wèn)題2:double型浮點(diǎn)數(shù)能精確到多少位小數(shù)?或者,這個(gè)問(wèn)本身值得商榷?解答:#include<stdio.h>intmain(){ doublea; a=123.0; printf("%lf\n",a); return0;}double型浮點(diǎn)數(shù)隱含輸出小數(shù)位數(shù)為6位,不過(guò)還可以通printf("%.20lf\n",a);來(lái)重新設(shè)置,.20中的20也可以換成其它的數(shù)值。問(wèn)題3:double型浮點(diǎn)數(shù)最大正數(shù)值和最小正數(shù)值分別是多少?解答:#include<iostream.h>intmain(){inty=1030;for(doublex=0.999999999;y--;x*=2)cout<<x<<'\t';cout<<endl;y=1030;for(x=0.000000001;y--;x/=2)cout<<x<<'\t';cout<<endl;return0;}由程序可得,double型浮點(diǎn)數(shù)最大正數(shù)值和最小正數(shù)值分別是1.79769e+308、1.73832e-319。問(wèn)題4:邏輯運(yùn)算符號(hào)&&、||和!(它表示邏輯非)的相對(duì)優(yōu)先級(jí)是怎樣的?也就是說(shuō),a&&b||c應(yīng)理解成(a&&b)||c還是a&&(b||c),或者隨便怎么理解都可以?解答:邏輯運(yùn)算符號(hào)&&、||和!(它表示邏輯非)的相對(duì)優(yōu)先級(jí)(由高到低)是!→&&→||。a&&b||c應(yīng)理解為(a&&b)||c。問(wèn)題5:if(a)if(b)x++;elsey++;的確切含義是什么?這個(gè)else應(yīng)和哪個(gè)if配套?有沒(méi)有辦法明確表達(dá)出配套方法,以避免初學(xué)者之困惑?解答:if(a)if(b)x++;elsey++;可以換成以下的形式:if(a) if(b)x++; elsey++;else與if的配對(duì)的原則是else一般與最近沒(méi)有配對(duì)的if進(jìn)行配對(duì)。實(shí)際上,如果else與第一個(gè)if進(jìn)行配對(duì),可以采取加{}的方式進(jìn)行:if(a) {if(b)x++;}elsey++;如果else與第二個(gè)if進(jìn)行配對(duì),可以采取加{}的方式進(jìn)行:if(a){ if(b)x++; elsey++;}以上這種加{}的方式,就不會(huì)引起歧義。1.6.(1)本章介紹了常見(jiàn)的各種數(shù)據(jù)類(lèi)型,以及他們所能表達(dá)的范圍;(2)本章介紹了scanf和printf語(yǔ)句的使用;(3)本章介紹了邏輯判斷的使用,理解并描述復(fù)雜的邏輯判斷。(4)程序設(shè)計(jì)是一門(mén)實(shí)踐性很強(qiáng)學(xué)科,所以在學(xué)習(xí)時(shí),給出兩點(diǎn)建議:重視實(shí)驗(yàn)、學(xué)會(huì)模仿。1.6.程序設(shè)計(jì)是一門(mén)實(shí)踐性很強(qiáng)的學(xué)科,所以給出下面的練習(xí)。習(xí)題1-1平均數(shù)(average)輸入3個(gè)整數(shù),輸出它們的平均值,保留3位小數(shù)。解答:#include<stdio.h>intmain(){inta,b,c;doubled;scanf("%d%d%d",&a,&b,&c);d=(double)(a+b+c);printf("%.3lf\n",d/3.0);return0;}習(xí)題1-2溫度(temperature)輸入華式溫度f(wàn),輸出對(duì)應(yīng)的攝氏溫度c,保留3位小數(shù)。提示:c=5(f-32)/9。解答:#include<stdio.h>intmain(){intf;doublec;scanf("%d",&f);c=5*
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年佳木斯貨運(yùn)準(zhǔn)駕證模擬考試
- 滬科版數(shù)學(xué)八年級(jí)上冊(cè)《求一次函數(shù)的表達(dá)式》聽(tīng)評(píng)課記錄
- 2024-2025學(xué)年八年級(jí)物理上冊(cè)第4章聲現(xiàn)象單元雙基雙測(cè)A卷基礎(chǔ)篇含解析北師大版
- 2024-2025學(xué)年五年級(jí)語(yǔ)文上冊(cè)第二單元6變色龍教案設(shè)計(jì)蘇教版
- HR個(gè)人年終總結(jié)
- 英語(yǔ)教學(xué)研修計(jì)劃
- 數(shù)學(xué)連環(huán)畫(huà) 畫(huà)出你的數(shù)學(xué)故事(說(shuō)課稿)-2024-2025學(xué)年一年級(jí)數(shù)學(xué)下冊(cè)蘇教版
- 車(chē)輛租賃協(xié)議范本
- 會(huì)議服務(wù)協(xié)議書(shū)范本
- 滄州房屋出租協(xié)議書(shū)范本
- 走新型城鎮(zhèn)化道路-實(shí)現(xiàn)湘潭城鄉(xiāng)一體化發(fā)展
- 江蘇中國(guó)中煤能源集團(tuán)有限公司江蘇分公司2025屆高校畢業(yè)生第二次招聘6人筆試歷年參考題庫(kù)附帶答案詳解
- 【語(yǔ)文】第23課《“蛟龍”探?!氛n件 2024-2025學(xué)年統(tǒng)編版語(yǔ)文七年級(jí)下冊(cè)
- 北郵工程數(shù)學(xué)試卷
- 2024年貴州云巖區(qū)總工會(huì)招聘工會(huì)社會(huì)工作者考試真題
- 2024版冷水機(jī)組安裝合同
- 北師版七年級(jí)數(shù)學(xué)下冊(cè)第二章測(cè)試題及答案
- GB/T 21369-2024火力發(fā)電企業(yè)能源計(jì)量器具配備和管理要求
- 2025年全體員工安全意識(shí)及安全知識(shí)培訓(xùn)
- 2025警察公安派出所年終總結(jié)工作匯報(bào)
- 用戶(hù)畫(huà)像在醫(yī)療健康領(lǐng)域的應(yīng)用-洞察分析
評(píng)論
0/150
提交評(píng)論