第一篇:北京分中心《C語言程序設(shè)計(jì)》班級討論總結(jié)
北京分中心《C語言程序設(shè)計(jì)》班級討論總結(jié)
根據(jù)培訓(xùn)安排,今日上午北京分中心《C語言程序設(shè)計(jì)》班級與哈爾濱工業(yè)大學(xué)的王宇穎、蘇小紅、孫志崗三位主講教師進(jìn)行了面對面的討論,全體學(xué)員零距離教學(xué)名師的大師風(fēng)范和平易近人、幽默風(fēng)趣、嚴(yán)謹(jǐn)求實(shí)、謙虛坦率的人格魅力。大家就教學(xué)團(tuán)隊(duì)的凝聚力和戰(zhàn)斗力問題、教學(xué)方法問題、考試考核方法方式問題、多媒體教學(xué)問題、網(wǎng)絡(luò)教學(xué)問題、怎樣實(shí)施誠信教學(xué)問題、教材建設(shè)問題等方面進(jìn)行了真誠的交流和討論,大家暢所欲言、各抒己見,現(xiàn)場的氣氛非常熱烈?,F(xiàn)將本次討論的情況進(jìn)行簡單總結(jié)如下:
1)如何提高課程教學(xué)團(tuán)隊(duì)的凝聚力和戰(zhàn)斗力?提高課程教學(xué)團(tuán)隊(duì)的凝聚力和戰(zhàn)斗力的關(guān)鍵因素是什么?
在關(guān)于提高課程教學(xué)團(tuán)隊(duì)的凝聚力和戰(zhàn)斗力的問題上王宇穎教授認(rèn)為,團(tuán)隊(duì)負(fù)責(zé)人很重要,團(tuán)隊(duì)負(fù)責(zé)人有包容心,要允許不同意見,要謙虛向團(tuán)隊(duì)隊(duì)員學(xué)習(xí)。她還特別強(qiáng)調(diào)“我從我的團(tuán)隊(duì)其它老師那兒學(xué)到了很多東西,他(她)們教給了我很多”。王教授還認(rèn)為,團(tuán)隊(duì)中要有不同的人扮演不同的角色,要根據(jù)教師的特長安排不同的工作,團(tuán)隊(duì)負(fù)責(zé)人要敢于負(fù)責(zé),要為一線教師著想,同時(shí)也要有嚴(yán)格的規(guī)章制度,要鼓勵(lì)一線教師進(jìn)行教學(xué)改革。蘇小紅教授認(rèn)為一個(gè)教學(xué)團(tuán)隊(duì)只有有了凝聚力才有戰(zhàn)斗力,她認(rèn)為關(guān)鍵因素是負(fù)責(zé)人的人格魅力。
2)程序設(shè)計(jì)課程實(shí)施機(jī)上考試的利和弊?目前程序設(shè)計(jì)課程考試中存在的最大問題和實(shí)施機(jī)上考試的最大困難是什么?
大部分教師認(rèn)為實(shí)施機(jī)上考試?yán)笥诒?,如果條件允許大多數(shù)教師很愿意實(shí)施機(jī)上考試,一般認(rèn)為目前程序設(shè)計(jì)課程考試中存在的最大問題不能很好的真實(shí)評價(jià)學(xué)生的實(shí)際能力,很多教師認(rèn)為實(shí)施機(jī)上考試的最大困難是客觀條件不允許,如學(xué)校的網(wǎng)絡(luò)條件和硬件設(shè)施,有少部分教師認(rèn)為主講教師的主管意愿會影響到機(jī)上考試的實(shí)施。參與討論的教師一致認(rèn)為在實(shí)施機(jī)上考試的時(shí)候一定要注意避免考試的弊端,要盡可能考察學(xué)生的真實(shí)能力。
3)多媒體教學(xué)的利和弊?目前程序設(shè)計(jì)課程教學(xué)中存在的最大問題是什么?
很多教師認(rèn)為多媒體教學(xué)有利有弊,要根據(jù)授課對象和授課內(nèi)容靈活改變教學(xué)方法,并不是在任何情況下都一味的使用多媒體教學(xué)。目前程序設(shè)計(jì)課程教學(xué)中存在的最大問題是教學(xué)過程很難體現(xiàn)培養(yǎng)學(xué)生的編程能力。
4)網(wǎng)絡(luò)教學(xué)的利與弊?目前影響學(xué)生學(xué)習(xí)程序設(shè)計(jì)的積極性的主要原因是什么?
網(wǎng)絡(luò)教學(xué)是一種新的教學(xué)方式也是未來的教學(xué)趨勢之一,但網(wǎng)絡(luò)教學(xué)只是教學(xué)的方法和手段,不是教學(xué)的全部和目的,跟多媒體教學(xué)一樣,網(wǎng)絡(luò)教學(xué)也要根據(jù)授課對象和授課內(nèi)容靈活改變和處理。網(wǎng)絡(luò)教學(xué)的好處在于靈活,缺點(diǎn)在于難于把握。目前影響學(xué)生學(xué)習(xí)程序設(shè)計(jì)的積極性的主要原因是學(xué)生的興趣,也有教學(xué)手段的原因,同時(shí)跟社會的大環(huán)境有很大的關(guān)系。
5)如何實(shí)施誠信教學(xué)?對待作業(yè)抄襲行為是該聽之任之,還是嚴(yán)懲不貸? 參與討論的教師一致認(rèn)為實(shí)施誠信教學(xué)是非常必要的也是應(yīng)該的,但在實(shí)施的方法和手段上則要注意靈活性,要注意學(xué)生的主要任務(wù)還是學(xué)習(xí),在實(shí)施過程中也要注意不能傷害學(xué)生。在關(guān)于對待作業(yè)抄襲行為的問題上,教師們的分歧比較大,是該管,但如何管,如何把握管的尺度,大家意見不一。
6)對學(xué)生擁有個(gè)人計(jì)算機(jī),該鼓勵(lì)還是禁止?
哈工大的王宇穎、蘇小紅、孫志崗三位主講教師認(rèn)為不必要對學(xué)生擁有個(gè)人計(jì)算機(jī)太過在意。其它教師認(rèn)為應(yīng)該根據(jù)課程或?qū)I(yè)的實(shí)際采取鼓勵(lì)或禁止的辦法。
7)讀者喜歡什么樣的教材?學(xué)生喜歡什么樣的老師?
教材應(yīng)該做到分層次,深入淺出。不同的授課對象應(yīng)該采用不同的教材。在關(guān)于學(xué)生喜歡什么樣的老師問題上,與會大部分教師認(rèn)為不同的學(xué)生會喜歡不同的教師,很難做到讓所有的學(xué)生都喜歡你,不管怎樣都會即會有些學(xué)生喜歡你,也會有些學(xué)生不喜歡你。但作為老師,首要的應(yīng)該是教書育人盡職盡責(zé)。
8)如何實(shí)施案例驅(qū)動的程序設(shè)計(jì)教學(xué),避免將案例教學(xué)變成習(xí)題課?如何圍繞著一個(gè)或幾個(gè)實(shí)例,舉一反
三、精講多練?舉什么樣的例子能讓學(xué)生既學(xué)到了知識又感興趣?淡化課堂的講述,淡化到什么程度?是否應(yīng)該設(shè)置課程大作業(yè)?若需要,如何設(shè)計(jì)大作業(yè)?
案例驅(qū)動的程序設(shè)計(jì)教學(xué)方法得到了大多數(shù)教師的認(rèn)可,但實(shí)施起來難度較大,人格主講教師把握得不好,就有可能將案例教學(xué)變成了習(xí)題課,因此主講教師的課堂把握能力是避免將案例教學(xué)變成習(xí)題課的關(guān)鍵。要做到圍繞著一個(gè)或幾個(gè)實(shí)例,舉一反
三、精講多練的話,首先主講教師要多練習(xí),主講教師要做到成竹在胸,要對知識能融會貫通。教師們認(rèn)為在課堂上要結(jié)合授課對象的專業(yè)特點(diǎn)多舉一些與授課對象專業(yè)特點(diǎn)相符合的有趣味性的有實(shí)用性的例子,只有這樣才能讓學(xué)生既學(xué)到了知識又感興趣。關(guān)于淡化課堂的講述問題,哈工大的三位主講教師認(rèn)為要根據(jù)授課對象的實(shí)際情況和水平,進(jìn)行調(diào)整,既不多講,也不少講。教師們一致認(rèn)為設(shè)置課程大作業(yè)是必要的,但一定要結(jié)合授課對象的專業(yè)特點(diǎn)和實(shí)際水平,要強(qiáng)調(diào)大作業(yè)的實(shí)用性。
北京分中心班長彭書華
2010-5-29
第二篇:[北京分中心]數(shù)據(jù)庫系統(tǒng)概論班級討論總結(jié)
[北京分中心]數(shù)據(jù)庫系統(tǒng)概論班級討論總結(jié)
《數(shù)據(jù)庫系統(tǒng)概論》北京研修班的老師們有幸現(xiàn)場聆聽了王珊、杜小勇兩位教授的精彩授課,各位老師都表示無論在教學(xué)內(nèi)容、課程設(shè)計(jì)、教學(xué)資料、還是眼界思路上都獲益匪淺。在此,我們?nèi)w老師對兩位教授表示誠摯的謝意,也對全國高校教師網(wǎng)絡(luò)培訓(xùn)中心為我們提供這樣一個(gè)難得的學(xué)習(xí)機(jī)會表示感謝!為了更好地交流,我們北京分中心的34位老師圍繞建議議題進(jìn)行了分組討論,也非常希望今后能有更多的機(jī)會與全國各地的數(shù)據(jù)庫課程教師共同探討,現(xiàn)將我們的討論結(jié)果向大家作以匯報(bào):
問題1:數(shù)據(jù)庫系統(tǒng)概論理論教學(xué)與實(shí)踐教學(xué)如何結(jié)合?
1.在課堂教學(xué)過程中,針對學(xué)生的特點(diǎn),按照由具體到抽象的認(rèn)識規(guī)律, 從實(shí)際應(yīng)用背景中的具體技術(shù)問題出發(fā),合理組織教學(xué)內(nèi)容。2.采用案例教學(xué),吸取項(xiàng)目驅(qū)動的特點(diǎn),圍繞一個(gè)問題,展開相關(guān)技能的教學(xué),繼而再進(jìn)入相關(guān)知識的教學(xué),提高學(xué)生學(xué)習(xí)的興趣和自信心。3.課程講授結(jié)束后,通過課程設(shè)計(jì),讓學(xué)生親自動手實(shí)現(xiàn)一個(gè)小型系統(tǒng),增加學(xué)生融會貫通的學(xué)習(xí)能力.4.針對科研,工程,應(yīng)用.不同類型的學(xué)生的要求不同.教學(xué)中發(fā)現(xiàn)大部分學(xué)生是工程型,因此可以在教授理論的同時(shí),結(jié)合一、兩種流行的數(shù)據(jù)庫作介紹,如SQL Server、Sybase等,如果學(xué)時(shí)有限,可以每次上課之前定一個(gè)題目,鼓勵(lì)學(xué)生在課后練習(xí),上課時(shí)針對難點(diǎn)和重點(diǎn)講解。5.來自于北京中醫(yī)藥大學(xué)的老師的回答:我校有個(gè)信管專業(yè),應(yīng)定位為應(yīng)用型。我們關(guān)于數(shù)據(jù)庫有3門課程,分別是數(shù)據(jù)庫系統(tǒng)概論和數(shù)據(jù)庫開發(fā)與應(yīng)用(SQL SERVER)和通識課程:計(jì)算機(jī)基礎(chǔ)(Access)。在教學(xué)過程中,前2門課程的銜接也一直困擾著我們。我個(gè)人的意見是先開設(shè)SQL SERVER的應(yīng)用課程,從實(shí)用技能的角度去進(jìn)行;然后進(jìn)行數(shù)據(jù)庫系統(tǒng)概論這門理論性更強(qiáng)的課程,并跳過上一門課中學(xué)習(xí)過的知識,這樣由于學(xué)生有實(shí)際操作的基礎(chǔ),對于數(shù)據(jù)庫的理論知識更容易接受,更符合學(xué)習(xí)認(rèn)知過程。例如,象關(guān)系代數(shù)、索引、查詢優(yōu)化、鎖等內(nèi)容不在SQL SERVER的課程中詳細(xì)介紹,而交由數(shù)概去完成。6.我參考其它院校和本次培訓(xùn)總結(jié)的一些感想,對于科研,工程,應(yīng)用.不同類型學(xué)生,我覺得還需要因材施教的.比如我們學(xué)院現(xiàn)在有計(jì)科,信息,電子商務(wù)等專業(yè)都開設(shè)這個(gè)課程,對不同專業(yè)選取的案例會有所區(qū)別的.我們現(xiàn)在開設(shè)數(shù)據(jù)庫課程的順序是:數(shù)據(jù)庫原理,大型數(shù)據(jù)庫系統(tǒng), XML設(shè)計(jì),其中數(shù)據(jù)庫原理是必修課,而其他的選修課,兼顧學(xué)生的興趣.7.在教學(xué)過程中,將一些重要的內(nèi)容提前讓布置給學(xué)生查閱相關(guān)資料,到具體講授該部分內(nèi)容時(shí)讓相關(guān)同學(xué)先做報(bào)告,然后讓其他同學(xué)提問,最后老師解答問題,可以把預(yù)習(xí)的內(nèi)容作為考核的作業(yè)題目留給學(xué)生,然后再將這些內(nèi)容,效果會很好。該方法應(yīng)該是“雙主教學(xué)”的一種應(yīng)用。目前的問題是學(xué)時(shí)很有限,這樣的教學(xué)模式不敢運(yùn)用太多
8.教學(xué)中,實(shí)踐是主線,以一個(gè)具體的數(shù)據(jù)庫實(shí)例為媒介,展開介紹數(shù)據(jù)庫的各種概念,問題。由于問題熟悉(一學(xué)期都圍著它轉(zhuǎn),當(dāng)然熟了,不熟的讓他反省),學(xué)生在學(xué)習(xí)中更容易接受。這樣,在教學(xué)中理論和實(shí)踐能結(jié)合起來,當(dāng)然更多的還要學(xué)生通過自己實(shí)踐去掌握 9.我們學(xué)院目前數(shù)據(jù)庫是每周6個(gè)課時(shí),理論教學(xué)4個(gè)學(xué)時(shí),實(shí)踐學(xué)時(shí)2個(gè)學(xué)時(shí),理論課程主要以老師講解和演示為主,實(shí)踐課程安排在軟件開發(fā)實(shí)訓(xùn)實(shí)驗(yàn)室進(jìn)行,前期主要是引導(dǎo)學(xué)生掌握基本的SQL語法,實(shí)驗(yàn)環(huán)境主要是SQL Server2005,到課程中期,學(xué)生有了一定的基礎(chǔ),我們會要求學(xué)生做一個(gè)小的應(yīng)用實(shí)例,并作為大作業(yè)的形式提交. 10.我在想要是能把數(shù)據(jù)庫課程設(shè)計(jì)的課時(shí)和教學(xué)課時(shí)整合一體,那是否更有利于我們在教學(xué)過程中理論結(jié)合實(shí)踐??我認(rèn)為:理論教學(xué)先要詳細(xì),然后將上課的理論與實(shí)踐教學(xué)結(jié)合.具體做法是每個(gè)4節(jié)課,2節(jié)理論2節(jié)實(shí)踐.理論和實(shí)踐不應(yīng)該有明顯的界限,建議在實(shí)驗(yàn)室上課,在一些內(nèi)容的講解,例如SQL語句,安全性等內(nèi)容的講解過程中可以讓學(xué)生當(dāng)時(shí)就上機(jī)操作,印象更深,效果也較好.采取先實(shí)踐再理論再實(shí)踐的方法比較好,比較符合學(xué)生的認(rèn)知過程,根據(jù)簡單的實(shí)驗(yàn),對知識有感性的了解,再回到理論深度進(jìn)行講解,使學(xué)生的收獲更大。
問題2:高校教師如何提高數(shù)據(jù)庫教學(xué)水平
1.數(shù)據(jù)庫教學(xué)水平的途徑和方法,多聽聽相關(guān)專家的報(bào)告和講座,今天王珊老師的講座“做好一名合格的講師”使我們收獲很大。教師應(yīng)加強(qiáng)自身理論基礎(chǔ)知識的學(xué)習(xí)、豐富項(xiàng)目經(jīng)驗(yàn)、增強(qiáng)教學(xué)技能、及時(shí)把握數(shù)據(jù)庫技術(shù)的新發(fā)展,對課程內(nèi)容的理解是非常重要的,同時(shí)也要多跟同行和學(xué)生交流。有的時(shí)候不同級的學(xué)生反應(yīng)很不一樣,所以也要及時(shí)了解學(xué)生的情況 2.講課是一名合格教師的基本功。要講好課對教學(xué)內(nèi)容第一步先要自己明白,第二步要講得清楚,第三步要學(xué)生聽懂。這三步是教學(xué)因果關(guān)系的自然邏輯。教學(xué)相長嘛,從學(xué)生那里了解情況及時(shí)調(diào)整改進(jìn)可以有效改善教學(xué)效果。實(shí)際的項(xiàng)目確實(shí)可以提高我們的教學(xué)水平和教學(xué)質(zhì)量,使得我們在教學(xué)中能夠充實(shí)教學(xué)內(nèi)容。3.我覺得在教學(xué)的過程中,也應(yīng)該根據(jù)學(xué)生和學(xué)校的情況制定不同的數(shù)據(jù)庫學(xué)科的實(shí)施方案。針對目前學(xué)生就業(yè)的現(xiàn)狀,大多數(shù)的大學(xué)畢業(yè)生應(yīng)該作為應(yīng)用型或者工程型進(jìn)行培養(yǎng)。精品課程的建設(shè)確實(shí)給我們的教學(xué)提供了良好的平臺,實(shí)現(xiàn)了教學(xué)資源共享,確實(shí)是受益匪淺。所以說精品課程的建設(shè)也是提高教學(xué)質(zhì)量和教學(xué)水平的一種方式。4.多和學(xué)生交流,提高學(xué)生學(xué)習(xí)積極性,增加學(xué)生與老師的互動,這有利于我們的教學(xué)質(zhì)量和效果。精品課程的建設(shè)很重要,我作為教師也經(jīng)常去精品課程的網(wǎng)站學(xué)習(xí)和搜集資料,這對學(xué)生們來說更是一個(gè)很好的學(xué)習(xí)的平臺~。目前社會上有很多數(shù)據(jù)庫方面的認(rèn)證,我們鼓勵(lì)學(xué)生積極參與,教師自己理應(yīng)先一步通過,更好的引導(dǎo)學(xué)生把知識轉(zhuǎn)化為技術(shù)能力。
5.想給學(xué)生一碗水,自己必須先有一桶水。對于授課而言,知識水平的高低是關(guān)鍵,大學(xué)教師不能只在校門內(nèi)閉門造車,應(yīng)該多接觸些應(yīng)用和科研的內(nèi)容,才能夠引導(dǎo)和教育自己的學(xué)生。學(xué)生們很快就會從大學(xué)校門中走出去,進(jìn)入社會或者繼續(xù)深造,教師、尤其是我們這樣的年輕教師也要加快自己的腳步不斷提升自己。同時(shí),教學(xué)的方法和藝術(shù)也是教好一門課所必需的。6.學(xué)科建設(shè)和教學(xué)水平的提高不是單打獨(dú)斗能夠解決的,應(yīng)該形成一個(gè)學(xué)科梯隊(duì),有帶頭人,有中堅(jiān)力量,有年輕教師,協(xié)同工作,互相促進(jìn),提高數(shù)據(jù)庫教學(xué)水平,培養(yǎng)更多的數(shù)據(jù)庫人才。實(shí)踐是數(shù)據(jù)庫課程的非常重要的環(huán)節(jié),所以作為教師要提高教學(xué)水平,就像王老師說的,首先得自己將所有的試驗(yàn)做一遍,才能從中發(fā)現(xiàn)問題,提高自己。7.就像王老師說的那樣,學(xué)生的潛力是非常大的。但是他們自己有時(shí)卻不能很好的把握自己的方向。因此,這些潛力需要教師去引導(dǎo),同時(shí),教師應(yīng)該嚴(yán)格要求學(xué)生。多參加一些這類高水平的培訓(xùn),從較高角度引導(dǎo),對年輕教師確實(shí)有較好引領(lǐng)作用 8.教學(xué)中可以通過多種方法培養(yǎng)學(xué)生的算法設(shè)計(jì)能力:
(1)詳細(xì)講授常用的算法。
(2)教師帶領(lǐng)學(xué)生通過講例題多閱讀程序,分析過程,吸取他人的經(jīng)驗(yàn)和成熟的算法,使學(xué)生少走彎路或不走彎路。
(3)開展實(shí)踐性學(xué)習(xí),引導(dǎo)學(xué)生積極參與編程實(shí)踐,促進(jìn)思維的飛躍,以學(xué)生學(xué)習(xí)內(nèi)容為中心,完善考核形式。
(4)在課堂教學(xué)過程中,針對學(xué)生的特點(diǎn),按照由具體到抽象的認(rèn)識規(guī)律, 從實(shí)際應(yīng)用背景中的具體技術(shù)問題出發(fā),合理組織教學(xué)內(nèi)容。
(5)采用案例教學(xué),吸取項(xiàng)目驅(qū)動的特點(diǎn),圍繞一個(gè)問題,展開相關(guān)技能的教學(xué),繼而再進(jìn)入相關(guān)知識的教學(xué),提高學(xué)生學(xué)習(xí)的興趣和自信心。
(6)課程講授結(jié)束后,通過課程設(shè)計(jì),讓學(xué)生親自動手實(shí)現(xiàn)一個(gè)小型系統(tǒng),增加學(xué)生融會貫通的學(xué)習(xí)能力.問題3:高校教師為什么要參加科研活動?高校教師教學(xué)與科研的互動作用?
1.科研是提高教師綜合素質(zhì)和教學(xué)能力的第一促進(jìn)力,科研也是提高教學(xué)質(zhì)量第一推動力。因此教師必須也應(yīng)該積極參加科研活動。高校教師可以在科研項(xiàng)目中積累經(jīng)驗(yàn),講課有事例。教學(xué)的目的是培養(yǎng)人才,進(jìn)而為社會生產(chǎn)服務(wù),科研的問題也來自于生產(chǎn)實(shí)踐的需要,因此參與科研才能和生產(chǎn)實(shí)踐結(jié)合,培養(yǎng)出的學(xué)生才受社會歡迎。教學(xué)對科研也有一定指導(dǎo)作用。2.高校教師通過科研活動可以促進(jìn)教師自我知識結(jié)構(gòu)的更新和知識體系的充實(shí),從而更好的搞好課堂教學(xué)??蒲幸彩墙處熆己藰?biāo)準(zhǔn),科研和工資有直接聯(lián)系??蒲袑τ谀贻p老師是個(gè)瓶頸,要廣泛地取經(jīng)。教學(xué)和科研兩者是相輔相成、互相促進(jìn)的。比如查詢的優(yōu)化是個(gè)教學(xué)中的理論問題,我們在項(xiàng)目應(yīng)用中也總是碰到查詢性能問題。兩者結(jié)合,教學(xué)中枯燥的問題就變得有聲有色了。
3.教學(xué)本身也是一個(gè)創(chuàng)新的過程,教師也必須具有科研才能才行。沒有科研的支撐作用,教師便不能對學(xué)科的前沿、動態(tài)有及時(shí)和深入的掌握,這是不適應(yīng)時(shí)代發(fā)展需要的。4.對于教學(xué),很多高校是喊的多做的少,都是把科研放在首位。我個(gè)人認(rèn)為,兩者都應(yīng)重視,而且我覺得更應(yīng)該把教學(xué)放在首位,對于高校來說教學(xué)是永遠(yuǎn)的主題。教學(xué)和科研是密不可分的。沒有研究的基礎(chǔ),在講臺上是站不住腳的對于科研,目前每個(gè)老師都很積極,但很多科研都是紙上談兵,推廣應(yīng)用的很少,產(chǎn)業(yè)化的就更少了。5.教學(xué)和科研并重看來是廣泛的共識,對于很多計(jì)算機(jī)課程來說,另外一個(gè)重要的功能是應(yīng)用和開發(fā),如編寫軟件、開發(fā)網(wǎng)站,這些形式都是對教學(xué)內(nèi)容的直接運(yùn)用和提高,豐富教學(xué)示例,但卻很難上升到科研層次??蒲姓n題是學(xué)校的一個(gè)考核指標(biāo),但對項(xiàng)目來說,不管你開發(fā)的項(xiàng)目多優(yōu)秀、多先進(jìn),都不被重視,這對計(jì)算機(jī)教師來說有些不公平。
問題4:您在數(shù)據(jù)庫系統(tǒng)教學(xué)工作中遇到的主要困難是什么?如何解決的?
有解決思路的問題:
困難1:數(shù)據(jù)庫課程針對不同專業(yè)的學(xué)生,教學(xué)內(nèi)容和安排怎么處理好呢?計(jì)算機(jī)專業(yè)和軟件工程專業(yè)在數(shù)據(jù)庫教學(xué)內(nèi)容上也有區(qū)別的嗎?
解決思路:對于不同專業(yè)的數(shù)據(jù)庫課程,可以采用分層次教學(xué),比如計(jì)算機(jī)專業(yè)的應(yīng)該以數(shù)據(jù)庫的理論為主要教學(xué)內(nèi)容,軟件工程專業(yè)應(yīng)更加側(cè)重于數(shù)據(jù)庫的開發(fā),信息專業(yè)可采用理論與應(yīng)用并重,而其他非計(jì)算機(jī)專業(yè)的可只講解簡單的數(shù)據(jù)庫理論知識,而以數(shù)據(jù)庫應(yīng)用為主。困難2:學(xué)生感覺教學(xué)過程中理論部分太多。
解決思路:可用具體的實(shí)例將理論課與實(shí)際緊密的結(jié)合起來,減輕學(xué)生對于理論的枯燥感!
困難3:計(jì)算機(jī)科學(xué)與技術(shù)學(xué)科考研統(tǒng)考中沒有數(shù)據(jù)庫課程,很多學(xué)生對于數(shù)據(jù)庫課程的興趣受到了很大影響。
解決思路:希望王珊教授發(fā)揮影響力,與數(shù)據(jù)庫專委會一起帶領(lǐng)大家共同呼吁,將統(tǒng)考中加入數(shù)據(jù)庫課程,這可是計(jì)算機(jī)專業(yè)的8門核心課程之一??!困難4:學(xué)生在學(xué)習(xí)數(shù)據(jù)庫這門課時(shí)二極分化比較明顯,如何激發(fā)學(xué)生學(xué)習(xí)本門課的興趣?有的學(xué)生主動學(xué)習(xí)的能力比較差,有什么好的解決辦法嗎? 解決思路:數(shù)據(jù)庫是一門實(shí)踐性比較強(qiáng)的課程,對教師的要求比較高,教師除了具備較高的理論水平之外,還需要具備豐富的軟件開發(fā)經(jīng)驗(yàn),只有這樣,學(xué)生們才會“服”你,教師說的話在學(xué)生心中才會比較重。
我們是??圃盒#懈呗毶臀迥曛?,對我們來說,更注重實(shí)踐和案例教學(xué),否則學(xué)生根本不感興趣。如果有具體的實(shí)例將理論課與實(shí)際緊密的結(jié)合起來(淺顯易懂,針對中低層次學(xué)生),課堂效果會更好!比如,在課程使用一種簡單的前臺語言,如VB,讓學(xué)生對于數(shù)據(jù)的設(shè)計(jì)有比較直觀的成就感,以此來激發(fā)學(xué)生的學(xué)習(xí)興趣!
困難5:數(shù)據(jù)庫教學(xué)中的課程設(shè)計(jì),教師工作量、其他教師的投入如何計(jì)算課酬?
解決思路:我們學(xué)校的課程設(shè)計(jì)都是算工作量的,1周的課程設(shè)計(jì)按照20個(gè)學(xué)時(shí)來計(jì)算,如果班級多的話,還有不同的系數(shù)!
尚未解決的問題:
1.有的學(xué)校數(shù)據(jù)庫課程放在操作系統(tǒng)課程等的前面,講并發(fā)控制時(shí)怎么處理呢? 2.如何處理數(shù)據(jù)庫課程程序設(shè)計(jì)與軟件工程程序設(shè)計(jì)的關(guān)系呢?
3.目前計(jì)算機(jī)專業(yè)學(xué)生希望到實(shí)訓(xùn)基地或到公司實(shí)習(xí),對數(shù)據(jù)庫的課程設(shè)計(jì)也一樣,不知各校是如何運(yùn)作的? 4.在數(shù)據(jù)庫設(shè)計(jì)章節(jié)中,學(xué)生們從聽懂ER圖到面對實(shí)際問題會用ER圖,之間有一條鴻溝。如何讓學(xué)生真正掌握數(shù)據(jù)庫中表的拆分與設(shè)計(jì)?
問題5:數(shù)據(jù)庫系統(tǒng)課程的重點(diǎn)難點(diǎn)是什么?哪些內(nèi)容你覺得好講,學(xué)生容易理解,哪些內(nèi)容不好講,學(xué)生不好掌握?
《數(shù)據(jù)庫系統(tǒng)概論》課程是計(jì)算機(jī)專業(yè)的基礎(chǔ)課,在大學(xué)本科的課程中地位很重要,且有一系列的課程和數(shù)據(jù)庫相關(guān)的,形成了以數(shù)據(jù)庫系統(tǒng)概論為基礎(chǔ)的課程群,所以講好本門課程尤為重要。
在我們的教學(xué)實(shí)踐中,對于那些學(xué)生容易理解的內(nèi)容可以略講或不講,讓學(xué)生在課后自學(xué),但本門課程也有許多內(nèi)容比較難于理解,我們按章節(jié)羅列如下: 1.“緒論”一章中,數(shù)據(jù)模型是主線,貫穿整個(gè)章節(jié),也是本章的重點(diǎn),應(yīng)該結(jié)合學(xué)生學(xué)過的數(shù)據(jù)結(jié)構(gòu)課程內(nèi)容詳細(xì)講解。三級模式結(jié)構(gòu)既是重點(diǎn)也是難點(diǎn),也應(yīng)該著重講解,好在三級模式結(jié)構(gòu)的內(nèi)容在SQL語言等章節(jié)中還會涉及到,在后邊還可繼續(xù)復(fù)習(xí)鞏固。
2.“關(guān)系數(shù)據(jù)庫”一章中,關(guān)系代數(shù)是重點(diǎn),是應(yīng)該著重講解的,其中的除法運(yùn)算是難點(diǎn),可多通過例子講解。另外,關(guān)系演算可以不講,而域演算可以用Excel的高級篩選來演示協(xié)助講解。3.“SQL語言”一章是全書的重點(diǎn)之一,整章內(nèi)容全是重點(diǎn),其中的難點(diǎn)有NOT EXISTS、多表查詢以及和關(guān)系代數(shù)的聯(lián)系和轉(zhuǎn)換等,另外,還應(yīng)該講解SQL語言和三級模式結(jié)構(gòu)的關(guān)系。
4.“數(shù)據(jù)庫安全性”一章中的角色、跟蹤審查是難點(diǎn),需要和具體的DBMS相結(jié)合來演示講解。5.“數(shù)據(jù)庫完整性”一章中,三個(gè)完整性都是重點(diǎn),CHECK尤其重要,觸發(fā)器是難點(diǎn),建議講解時(shí)以具體的DBMS為例來交互設(shè)置,再輔以SQL語句來講解。6.“數(shù)據(jù)庫理論”是本課程的重點(diǎn)內(nèi)容,也是本課程最理論和抽象的內(nèi)容,且本章中的內(nèi)容環(huán)環(huán)相扣,要講清楚模式分解,就得從函數(shù)依賴、函數(shù)蘊(yùn)涵、最小函數(shù)依賴集等內(nèi)容開始一步步講解下來,最后才能講解到范式和模式分解的內(nèi)容。建議本章節(jié)內(nèi)容可以分成兩次課(4個(gè)學(xué)時(shí))來講解。7.“數(shù)據(jù)庫設(shè)計(jì)”一章的重點(diǎn)是教會學(xué)生從項(xiàng)目的需求中進(jìn)行分析,正確畫出ER圖,并轉(zhuǎn)換為關(guān)系模式,其中將聯(lián)系轉(zhuǎn)化為關(guān)系模式是難點(diǎn),而聯(lián)系上的屬性也難以把握。由于學(xué)生一般缺乏實(shí)際項(xiàng)目實(shí)際經(jīng)驗(yàn),因此教師在講解中可以通過實(shí)際的應(yīng)用案例解剖,來使同學(xué)更容易上手些。8.“數(shù)據(jù)庫恢復(fù)”一章應(yīng)該強(qiáng)調(diào)轉(zhuǎn)儲的各種方法、故障的種類以及相應(yīng)的恢復(fù)方法。9.“并發(fā)控制”一章的內(nèi)容總體感覺比較虛,還只能停留在課堂講解上,不好在課堂上與具體的DBMS相結(jié)合來演示。另外,可串行化調(diào)度、封鎖類型等都是本章的難點(diǎn),需要著重講解。
問題6:如何搞好課堂教學(xué)?如何發(fā)揮教師的主導(dǎo)作用?
一、如何搞好課堂教學(xué)?
要學(xué)生聽懂、掌握所授教學(xué)內(nèi)容是教學(xué)的目的,教師應(yīng)在內(nèi)容結(jié)構(gòu)合理、邏輯清楚的基礎(chǔ)上盡量做到深入淺出,生動活潑,最重要的是啟發(fā)學(xué)生對教學(xué)內(nèi)容的學(xué)習(xí)積極性、主動性和創(chuàng)造性,善于獨(dú)立思考。教學(xué)內(nèi)容的組織特別重要,最忌諱照本宣科。老師也可以用問題引入概念,引起同學(xué)的學(xué)習(xí)興趣。針對關(guān)鍵問題,可以適當(dāng)組織討論,再由老師總結(jié)。總的來說,要讓學(xué)生感興趣。有的時(shí)候,針對某部分內(nèi)容的背景講一些故事,效果不錯(cuò)。還應(yīng)該培養(yǎng)學(xué)生的自學(xué)能力,關(guān)鍵是如何督促。
有時(shí),給學(xué)生課堂上DEMO,效果會更好。
教師得實(shí)時(shí)了解本門學(xué)科或課程的一些新的動向或成果。學(xué)生比較注重一些實(shí)際的效果。適當(dāng)?shù)臅r(shí)候,將最新的科研成果引入課堂,學(xué)生也會很感興趣。教師應(yīng)該多看書,汲取各家之長。每本教材都有各自的側(cè)重點(diǎn),一本教材不可能將所有的章節(jié)內(nèi)容都說清、說透,這就需要我們多看相關(guān)書籍,做到將書看厚,再變簿。
針對課程內(nèi)容,教師可以發(fā)起課堂討論,但是建議課堂討論的內(nèi)容能提前一周左右給出,叫學(xué)生課下準(zhǔn)備,否則學(xué)生課堂討論的效果不會很好。要搞好課堂教學(xué)不應(yīng)該只約束教師,還應(yīng)該對學(xué)生提出要求而且是嚴(yán)格要求。王珊教授的作法我很同意,要求學(xué)生什么時(shí)候完成作業(yè)就什么時(shí)候,老師首先應(yīng)該說話算數(shù)。
二、如何發(fā)揮教師的主導(dǎo)作用?
教學(xué)的主體是老師和學(xué)生,而搞好課堂教學(xué)的根本還在老師。作為課程的授體——學(xué)生更多是被動的接受,所以教師本身是否對教學(xué)內(nèi)容很明白、很清楚,直接決定著教學(xué)質(zhì)量的高低。這時(shí)就要求教師做到:(1)備課要充分,及時(shí)充實(shí)教學(xué)的素材(學(xué)科的新進(jìn)展,自己科研、做項(xiàng)目的心得);(2)提前給學(xué)生布置預(yù)習(xí)的內(nèi)容,學(xué)生先了解、熟悉欲學(xué)習(xí)的內(nèi)容;(3)教學(xué)案例選擇恰當(dāng),既能說明問題,又利用學(xué)生理解。
教師應(yīng)該多實(shí)踐。教師在給大家做演示的時(shí)候更多是將以往學(xué)生的作業(yè)實(shí)例給新的學(xué)生看,自己往往沒有親歷親為。我覺得如果教師能自己具體做個(gè)實(shí)例給學(xué)生演示,既能有助于老師自己更好的了解和學(xué)習(xí)教材,又能在制作過程中發(fā)現(xiàn)一些學(xué)生可能會遇到的問題,提前給學(xué)生以提示。同時(shí),也能夠提高自己在學(xué)生中的形象,真正發(fā)揮教師的主導(dǎo)作用,充分調(diào)動學(xué)生學(xué)習(xí)的積極性。
教師應(yīng)該不斷的為自己充電,多參加一些培訓(xùn),以此來更好的掌握本課程的發(fā)展歷史沿革,和不斷的更新自己的知識儲備,跟上技術(shù)發(fā)展的最新步伐。這樣才能使自己的教學(xué)更能貼合實(shí)際,讓學(xué)生覺得學(xué)習(xí)后能真正用得上。
教師的主導(dǎo)作用是要從學(xué)生那體現(xiàn)出來的。應(yīng)該把自己融入到學(xué)生中去,進(jìn)行換位思考。了解學(xué)生的需要,才能更好的調(diào)動學(xué)生。
問題7:如何在數(shù)據(jù)庫系統(tǒng)課程教學(xué)過程中培養(yǎng)學(xué)生的創(chuàng)新意識和創(chuàng)新能力?
一、學(xué)而不思則罔,思而不學(xué)則殆
孔圣人的“舉一反三”就是指創(chuàng)新能力。培養(yǎng)學(xué)生的能力,教師要有培養(yǎng)學(xué)生能力的意識。
創(chuàng)新是一種能力,是在學(xué)習(xí)過程中逐漸培養(yǎng)起來的,通過一門課中的一個(gè)或者若干個(gè)小的閃光點(diǎn),就可以培養(yǎng)成一種意識---創(chuàng)新意識,然后形成一種能力.善于思考的習(xí)慣,對于創(chuàng)新是非常重要的。在教學(xué)過程之中,要注意培養(yǎng)學(xué)生勤于思考、善于思考、深入思考的習(xí)慣和能力。
人與人的區(qū)別最主要的不是智商,而是鉆研的習(xí)慣和認(rèn)真的能力
創(chuàng)新能力首先需要一個(gè)認(rèn)真的態(tài)度,其次需要認(rèn)真的能力,我理解:認(rèn)真的能力就是發(fā)現(xiàn)問題的能力和深入思考的能力。
創(chuàng)新是一個(gè)民族的靈魂,是一個(gè)民族的希望,課程創(chuàng)新是一個(gè)學(xué)生綜合能力的體現(xiàn),是學(xué)生一生的財(cái)富.如何在課程中體現(xiàn)創(chuàng)新,哪怕是一點(diǎn)創(chuàng)新,都會使學(xué)生終身受益,數(shù)據(jù)庫課程如何體現(xiàn),我考慮一是搞好課程設(shè)計(jì),提高學(xué)生的開發(fā)能力和團(tuán)隊(duì)意識;二是通過課程使學(xué)生了解數(shù)據(jù)庫學(xué)科在國民經(jīng)濟(jì)中的作用,比較我國數(shù)據(jù)庫技術(shù)和國外的差別,培養(yǎng)學(xué)生的愛國主義觀念。
本課程并不需要什么高等數(shù)學(xué)知識,只要學(xué)生有一定的邏輯思維能力,就可以學(xué)會本課程。
數(shù)據(jù)庫系統(tǒng)概論課程是計(jì)算機(jī)及相關(guān)專業(yè)的核心課程,核心課程肯定有核心的能力,培養(yǎng)學(xué)生的自學(xué)能力、創(chuàng)新能力是課程本身能夠解決問題,關(guān)鍵是教師如何在課程中發(fā)現(xiàn)、理解、體會課程的實(shí)質(zhì),教師理解了學(xué)生才可能搞懂。
二、知之者不如好之者,好之者不如樂之者
興趣是最好的老師,給學(xué)生設(shè)計(jì)一些有趣的題目,讓他們做,做出來的成就感是最能激發(fā)興趣的。興趣可以創(chuàng)造新的東西。首先作為老師的我們應(yīng)該有興趣,興趣備課、興趣上課、興趣練習(xí)、興趣作業(yè)、興趣批改、興趣上機(jī),耳濡目染的就會使學(xué)生的興趣提高,這就可以達(dá)到創(chuàng)新的目的。
三、實(shí)踐是創(chuàng)新的源泉
我聽到的會忘掉,我看到的能記住,我做過的才真正明白。實(shí)踐,實(shí)踐,再實(shí)踐
問題驅(qū)動或項(xiàng)目驅(qū)動,是個(gè)辦法。創(chuàng)新意識和創(chuàng)新能力不僅要在教學(xué)過程中培養(yǎng),而且還要重視實(shí)踐中創(chuàng)新能力的檢驗(yàn)。
學(xué)生能力的培養(yǎng)主體體現(xiàn)在課程中,如何使學(xué)生舉一反三,教師應(yīng)積極引導(dǎo),開發(fā)學(xué)生的潛能,激發(fā)學(xué)生創(chuàng)新,要在課程教學(xué)中體現(xiàn)出來.課程設(shè)計(jì)是提高學(xué)生創(chuàng)新能力的基本途徑
選擇合適的選題,讓學(xué)生進(jìn)行設(shè)計(jì),掌握課程設(shè)計(jì)的過程和基本的程序設(shè)計(jì)能力是培養(yǎng)學(xué)生能力的關(guān)鍵
在教學(xué)中注意教學(xué)方法與學(xué)生學(xué)習(xí)方法的結(jié)合,任務(wù)驅(qū)動式教學(xué)法和項(xiàng)目教學(xué)法(PBL)均可收到好的效果。
在教學(xué)過程中,尤其是需要學(xué)生熟悉、掌握的內(nèi)容,在講解時(shí),采取任務(wù)驅(qū)動式教學(xué)法,先給學(xué)生布置任務(wù),就是把這次課堂的重點(diǎn)內(nèi)容先以任務(wù)問題形式通報(bào)給學(xué)生,然后激發(fā)他們在自己的知識結(jié)構(gòu)中去尋找解決的方法,這樣促成他們新的認(rèn)知結(jié)構(gòu),培養(yǎng)創(chuàng)新意識;然后再對重點(diǎn)和難點(diǎn)進(jìn)行講解,促使學(xué)生學(xué)習(xí)的正向遷移。
項(xiàng)目教學(xué)的最簡單理解,就是在教育教學(xué)中不論是本科生還是研究生,都借鑒研究生教育的一些方法,有條件的教師可以承接外面的項(xiàng)目,然后估計(jì)學(xué)生的水平,把部分或全部交給學(xué)生來做,或者給學(xué)生分組,然后根據(jù)學(xué)生的水平分配難度不一的部分,最后總結(jié)。如果條件不夠的老師,可以想一些自己身邊的問題,形成簡單項(xiàng)目或是收集別人做過的項(xiàng)目(對自己教學(xué)有用的),分配給學(xué)生去做,但要引導(dǎo)學(xué)生用新的方法和個(gè)性特點(diǎn)解決問題。
四、創(chuàng)新需要團(tuán)隊(duì)協(xié)作
劃分學(xué)習(xí)小組,一個(gè)小組共同完成一個(gè)特定的項(xiàng)目,分工合作,培養(yǎng)團(tuán)隊(duì)協(xié)作精神,使每個(gè)人都能做出自己的一份貢獻(xiàn),發(fā)揮一定作用,獲得一份成就感。在我以前的數(shù)據(jù)庫教學(xué),也帶領(lǐng)過學(xué)生分組做“課程設(shè)計(jì)”。我當(dāng)時(shí)的做法是讓學(xué)生自由分組,人數(shù)控制在4-8人,由他們自由選題。題目確定后先畫出E-R圖,然后由各小組組長跟我討論,最后確定方案。然后分工,每人負(fù)責(zé)自己的相關(guān)內(nèi)容。最后每個(gè)小組單獨(dú)答辯,在他們做項(xiàng)目的過程中我全程輔導(dǎo)。這樣下來,同學(xué)們普遍反映很好。
讓學(xué)生自由選題,實(shí)際上也是提高他們興趣的一個(gè)方面。而且通常自己選的題目也是比較熟悉的,記得那次有許多優(yōu)秀的作業(yè)。他們很高興,我也很有成就感
創(chuàng)新能力的培養(yǎng)一直是教師永恒的話題。我想一種能力的培養(yǎng)不是一朝一夕的事情,應(yīng)從小處著眼,從小處做大。在教學(xué)過程中,從每堂課的思考題開始,逐步引導(dǎo)學(xué)生獨(dú)立思考問題。從小作業(yè)到大作業(yè),最后到了“課程設(shè)計(jì)”階段,學(xué)生只有具備基本的解決問題的能力,才能真正設(shè)計(jì)出好的作品。
匯報(bào)完畢。
在此,非常感謝北京分中心的各位老師對上述討論的歸納和整理。他們是: 1.數(shù)據(jù)庫系統(tǒng)概論理論教學(xué)與實(shí)踐教學(xué)如何結(jié)合? 北京工商大學(xué):毛典輝、劉迎、東北財(cái)經(jīng)大學(xué):岳小婷、天津商業(yè)大學(xué):侯立坤、五邑大學(xué):何國輝
2.高校教師如何提高數(shù)據(jù)庫教學(xué)水平? 阜陽職業(yè)技術(shù)學(xué)院:童德茂、北京城市學(xué)院:李丹丹、山東科技大學(xué):范方、劉欣穎
3.高校教師為什么要參加科研活動?高校教師教學(xué)與科研的互動作用? 北京農(nóng)學(xué)院:蘭彬、732北方工業(yè)大學(xué):何麗、北京工商大學(xué):黃婉秋、北京工業(yè)大學(xué):蔡越江、北京林業(yè)大學(xué):譚紅楊
4.您在數(shù)據(jù)庫系統(tǒng)教學(xué)工作中遇到的主要困難是什么?如何解決的?
北京林業(yè)大學(xué):王春玲、陳志泊、北京師范大學(xué):黨德鵬、山東大學(xué):李暉、溫州大學(xué):王詠、中國石油大學(xué):王新
5.數(shù)據(jù)庫系統(tǒng)課程的重點(diǎn)難點(diǎn)是什么?哪些內(nèi)容你覺得好講,學(xué)生容易理解,哪些內(nèi)容不好講,學(xué)生不好掌握。
北京師范大學(xué):林定移、北京信息科技大學(xué):李寶安、董宛、何玉潔 6.如何搞好課堂教學(xué)?如何發(fā)揮教師的主導(dǎo)作用?
北京中醫(yī)藥大學(xué):王麗、杜清、張未未、北京交通大學(xué):王寧、阜陽職業(yè)技術(shù)學(xué)院:顧紅飛、7.如何在數(shù)據(jù)庫系統(tǒng)課程教學(xué)過程中培養(yǎng)學(xué)生的創(chuàng)新意識和創(chuàng)新能力? 北京工商大學(xué)嘉華學(xué)院:唐濟(jì)波、蔡天星、商丘師范學(xué)院:陳樹平、商丘師范學(xué)院:葛寒松
北京分中心 班長:馬星光 2009-4-18
第三篇:C語言程序設(shè)計(jì)
1.Problem A: Hello world!Description Xiao_ming有兩個(gè)哥哥,大哥叫Da_min,二哥叫Er_min。三兄弟放學(xué)回家,父母分別跟他們打招呼。
Input 無
Output 請輸出: Hello Da_min, Hello Er_min, Hello Xiao_ming!
Sample Input Sample Output Hello Da_min, Hello Er_min, Hello Xiao_ming!
HINT 請注意換行符
Append Code #include
printf(“Hello Da_min,n”);
printf(“Hello Er_min,n”);
printf(“Hello Xiao_ming!n”);} 2.Problem B: 求圓的面積和周長 Description 從鍵盤輸入圓的半徑,求圓的面積和周長,圓周率取3.14。
Input 輸入一個(gè)浮點(diǎn)型數(shù)據(jù),有效數(shù)字不會超過十進(jìn)制的6位。
Output 輸出為兩行。
第一行為圓的面積,第二行為圓的周長,格式見sample。
Sample Input 3
Sample Output Area: 28.260000 Perimeter: 18.840000
HINT 了解浮點(diǎn)類型的輸入、輸出和算術(shù)運(yùn)算符
Append Code 法一
#include
#include
double r;
scanf(“%d”,&r);
printf(“Area: %lfn”,pi*r*r);
printf(“Perimeter: %lfn”,2*pi*r);
}
3.Problem C:平均值 Description 求3個(gè)數(shù)的平均值。
Input 輸入只有一行,為3個(gè)較小的整數(shù)。
Output 輸出為這3個(gè)整數(shù)的平均值,保留3位小數(shù)。
Sample Input 1 2 3 Sample Output 2.000
HINT 注意除法運(yùn)算對整型數(shù)據(jù)和浮點(diǎn)型數(shù)據(jù)是不一樣的。
Append Code #include
4.Problem D: 求字符的值 Description 從鍵盤輸入3個(gè)字符(不含雙字節(jié)字符),分別輸出每個(gè)字符的十進(jìn)制值(ASCII碼)、八進(jìn)制值和十六進(jìn)制值。
Input 輸入為3個(gè)字符。
Output 輸出為3行。
每一行為每個(gè)字符(對應(yīng)輸入順序)的十進(jìn)制、八進(jìn)制和十六進(jìn)制值,用空格分隔開。每個(gè)輸出的值占3個(gè)字符,不足3個(gè)字符前面補(bǔ)0。
Sample Input 0 A
Sample Output 048 060 030 032 040 020 065 101 041
HINT 了解字符值的存儲和整型的關(guān)系。
Append Code #include
5.Problem A: 最簡單的程序 Description 輸出一行“Hello world!”。
Input 無
Output Hello world!
Sample Input Sample Output Hello world!
HINT Append Code #include
printf(“Hello world!”);}
6.Problem B: 算術(shù)基本運(yùn)算 Description 計(jì)算兩整數(shù)x和y(0 Input 輸入只有一行,格式見sample。 Output 輸出為多行,按順序每行輸出x,y的和、差、積、商、余數(shù)、x的平方和y的三次方,格式見sample Sample Input x = 11, y = 3 Sample Output x + y : 14 xy : %dn“,x-y); printf(”x * y : %dn“,x*y); printf(”x / y quotient: %d, remainder: %dn“,x/y,x%y); printf(”x ^ 2 : %dn“,x*x); printf(”y ^ 3 : %dn“,y*y*y);} 7.Problem C: 自增自減運(yùn)算 Description C語言中有自增運(yùn)算++、自減運(yùn)算--,并且可以前置和后置。 編寫一個(gè)程序:對輸入的一個(gè)整數(shù)a,輸出a++、a--、++a、--a的值。 Input 一個(gè)整數(shù)a,a是很小的整數(shù)。 Output 輸出為5行,第一行為a的值,后面依次為--a、a--、a++、++a的值。 5行輸出縱向a要對齊,“:”對齊,“:”前后各一個(gè)空格,后面的數(shù)值不用對齊。每行行尾都有回車。 Sample Input 0 Sample Output a : 0--a :-1 a--: 0 a++ : 0 ++a : 1 HINT Append Code #include : %dn“,a);printf(”--a : %dn“,--a);a=x;printf(” a--: %dn“,a--);a=x;printf(” a++ : %dn“,a++);a=x;printf(”++a : %dn“,++a);} 8.Problem F: 絕對值 Description 求整型數(shù)據(jù)和浮點(diǎn)型數(shù)據(jù)的絕對值。 Input 輸入兩個(gè)數(shù),第一個(gè)是整數(shù),第二個(gè)是浮點(diǎn)數(shù)。 Output 輸出為兩行,第一行為整數(shù)的絕對值,第二行為浮點(diǎn)數(shù)的絕對值,注意浮點(diǎn)數(shù)的絕對值不輸出無意義的0。 Sample Input-1 1 Sample Output 1 1 HINT 求絕對值可以用標(biāo)準(zhǔn)庫函數(shù)來完成,也可以自己判斷。注意浮點(diǎn)數(shù)的輸出格式。求絕對值的函數(shù)在哪個(gè)頭文件?貌似很多人會搞錯(cuò),包括很多編書的人! Append Code #include int n; float m; scanf(”%d%f“,&n,&m); //n=abs(n); //m=fabs(m); if(n<0) { n=-n; } if(m<0) { m=-m; } printf(”%dn“,n); printf(”%g“,m); return 0;} 9.Problem A: 奇數(shù)還是偶數(shù)? Description 輸入一個(gè)整數(shù),判讀它是奇數(shù)還是偶數(shù)。 Input 輸入只有一行,為一個(gè)100以內(nèi)的正整數(shù)。 Output 輸出為一行。 若輸入為偶數(shù)則輸出“even”,奇數(shù)輸出“odd”。Sample Input 30 Sample Output even HINT 用整數(shù)運(yùn)算可以解決,練習(xí)“?:”表達(dá)式。 Append Code #include int n; scanf(”%d“,&n); if(n>=0&&n<=100){ if(n%2==0)printf(”evenn“); else printf(”oddn“); } return 0;} 10.Problem B: 簡單的打折計(jì)算 Description 商店規(guī)定:消費(fèi)滿n元,可以打八八折。設(shè)某件商品標(biāo)價(jià)m元,輸入購買的件數(shù)x,計(jì)算出需要支付的金額(單位:元),精確到分。 Input 輸入只有一行,三個(gè)整數(shù)m、n和x,且0 Sample Input 95 300 4 Sample Output 334.40 HINT 了解浮點(diǎn)型的輸出控制,注意整型和浮點(diǎn)型混合運(yùn)算過程中的數(shù)據(jù)類型轉(zhuǎn)換。 Append Code #include int m,x,n,a; float b; scanf(”%d%d%d“,&m,&n,&x); 0 x m a=m*x; if(a>n) b=0.88*a; else b=a; printf(”%.2fn“,b); } 11.Problem C: 判斷閏年 Description 輸入一個(gè)正整數(shù)的年份,判斷是否為閏年。 Input 輸入只有一行,為一個(gè)10000以內(nèi)的正整數(shù)。 Output 輸出為一行。 若輸入為閏年偶數(shù)則輸出“Yes”,否則輸出“No”。 Sample Input 2010 Sample Output No HINT 了解邏輯運(yùn)算符和關(guān)系運(yùn)算符。 Append Code #include int x; scanf(”%d“,&x); if(x>0&&x<10000) { if(x%4==0&&x%100!=0) printf(”Yesn“); else if(x%400==0) printf(”Yesn“); else printf(”Non“); } else printf(”error“);} 12.Problem D: 水仙花數(shù) Description 如果一個(gè)三位十進(jìn)制數(shù)等于其各位數(shù)字的立方和,則稱這個(gè)數(shù)為水仙花數(shù)。如:13+53+33=153。 Input 一個(gè)整數(shù)x,100<=x<=999。 Output x是水仙花數(shù),則輸出“YES”,否則為“NO”。 Sample Input 153 Sample Output YES HINT Append Code #include int a,b,c,x; scanf(”%d“,&x); a=x/100; b=x/10%10; c=x%10; if(x==a*a*a+b*b*b+c*c*c) printf(”Yes“); else printf(”No“);} 13.Problem E: 三個(gè)數(shù)比較大小 Description 從鍵盤上輸入0~100之間的三個(gè)數(shù),按從小到大的順序輸出。 Input 輸入只有一行,為三個(gè)整數(shù)。 Output 按從小到大輸出這三個(gè)數(shù)。 Sample Input 15 10 20 Sample Output 10 15 20 HINT 用if語句判斷各種情況可以解決這個(gè)問題。 Append Code #include int a,b,c; scanf(”%d%d%d“,&a,&b,&c); if(a>=b) { if(b>=c) printf(”%d %d %dn“,c,b,a); else if(c>=a) printf(”%d %d %dn“,b,a,c); else printf(”%d %d %dn“,b,c,a); } else { if(a>=c) printf(”%d %d %dn“,c,a,b); else if(b>=c) printf(”%d %d %dn“,a,c,b); else printf(”%d %d %dn“,a,b,c); } } 14.Problem F: 奇怪的求和之一 Description 給定3個(gè)正整數(shù)a、b和c,按照如下規(guī)則求和: 如果這個(gè)數(shù)字是偶數(shù),則累加到和中; 如果這個(gè)數(shù)字是奇數(shù),則將大于該數(shù)的最小偶數(shù)累加到和中。 Input 三個(gè)正整數(shù),均在100以內(nèi)。 Output 一個(gè)和。 Sample Input 2 3 5 Sample Output 12 HINT 如果不會使用分支語句,可使用條件運(yùn)算符判斷到底將哪個(gè)數(shù)累積到和中。 Append Code #include int a,b,c; scanf(”%d%d%d“,&a,&b,&c); if(a%2!=0)a++; if(b%2!=0)b++; if(c%2!=0)c++; printf(”%dn“,a+b+c); } 15.Problem G: 你過線了嗎? Description 經(jīng)過四年的學(xué)習(xí),你決定報(bào)考我國著名的“285”高校之一的北青大學(xué),經(jīng)過認(rèn)真的復(fù)習(xí),殘酷的考試,終于知曉了自己的考試成績,也知道了北青大學(xué)的錄取分?jǐn)?shù)線,請你編程判斷,自己過線了嗎? Input 輸入有2行,第一行有4個(gè)正整數(shù),分別表示三門課程的分?jǐn)?shù)線以及總分分?jǐn)?shù)線。第二行有3個(gè)非負(fù)整數(shù),分別表示你考的三門課程的成績。 Output 如果你的三門課程成績都不低于相應(yīng)課程的分?jǐn)?shù)線,且你的考試總分也不低于北青大學(xué)的總分分?jǐn)?shù)線要求,則輸出“congratulations”,否則輸出“sorry”。 Sample Input 70 80 70 240 80 80 82 Sample Output congratulations HINT 如果你不會使用分支語句,同樣可以使用條件運(yùn)算符實(shí)現(xiàn)該程序。 Append Code #include int a,b,c,d,e,f,g,h; scanf(”%d %d %d %dn%d %d %d“,&a,&b,&c,&d,&e,&f,&g); h=e+f+g; if(e>=a&&f>=b&&g>=c&&h>=d) printf(”congratulations“); else printf(”sorry“);} 16.Problem I: A+B Problem(II): Input/Output Practice Description 計(jì)算a+b,0<=a,b<1000。 Input 輸入的第一行是一個(gè)整數(shù)N,后面有N對整數(shù)a和b,每對a和b占一行,a,b用空格分開。 Output 每行輸出一個(gè)a+b的和,順序與輸入對應(yīng)。 Sample Input 2 1 2 10 20 Sample Output 3 30 HINT N給出了測試樣例數(shù),用for循環(huán)處理方便。 Append Code #include int n,a,b,i;Scanf(“%d”,&n);For(i=0;i 17.Problem H: A+B Problem Description 計(jì)算a+b,0<=a,b<1000。 Input 輸入有多對整數(shù)a和b組成,每對a和b占一行,a,b用空格分開。 Output 每行輸出一個(gè)a+b的值,順序與輸入對應(yīng)。 Sample Input 1 2 10 20 Sample Output 3 30 HINT OJ系統(tǒng)上測試輸入結(jié)束符為EOF(End Of File),其值為-1。用scanf()把文件所有內(nèi)容讀完后,會讀到EOF,所以可以用來判斷輸入是否完成,測試時(shí)可以用Ctrl+Z產(chǎn)生EOF。本題解法參看FAQ。Append Code #include int a,b; while(scanf(”%d%d“,&a,&b)!=EOF){ printf(”%dn“,a+b); } return 0;} 18.Problem A: 判斷是否是元音字母 Description 輸入一個(gè)英文字母,判斷是否是元音字母。元音字母是:a,e,i,o u,A,E,I,O,U Input 輸入一個(gè)英文字母 Output 是元音字母,輸出“yes”,否則輸出“no”,行尾沒有回車。 Sample Input A Sample Output yes HINT Append Code #include char ch; scanf(”%c“,&ch); if(ch>='A'&&ch<='Z') ch=ch+32; if(ch=='a') printf(”yes“); else if(ch=='e') printf(”yes“); else if(ch=='i') printf(”yes“); else if(ch=='o') printf(”yes“); else if(ch=='u') printf(”yes“); else printf(”no“); } 19.Problem B: 按順序輸出三個(gè)數(shù) Description 對于輸入的3個(gè)整數(shù),按照從小到大的順序輸出。 Input 輸入3個(gè)int類型內(nèi)的整數(shù),兩兩之間用一個(gè)空格隔開。 Output 按照從小到大的順序輸出上述三個(gè)數(shù),兩兩之間用一個(gè)空格隔開。 Sample Input 2 1 3 Sample Output 1 2 3 HINT Append Code #include int a,b,c,temp; scanf(”%d%d%d“,&a,&b,&c); if(a { temp=a; a=b; b=temp; } if(a { temp=a; a=c; c=temp; } if(b { temp=b; b=c; c=temp; } printf(”%d %d %dn“,c,b,a);} 20.Problem E: Description 判斷輸入整數(shù)的奇偶性。 判斷奇偶數(shù) Input 輸入為一個(gè)整數(shù)。 Output 輸出只有一行,代表判斷結(jié)果。如果輸入的整數(shù)n是一個(gè)偶數(shù),輸出: n is an even number.否則輸出: n is an odd number.見樣例。 Sample Input 12 Sample Output 12 is an even number.HINT Append Code #include int a; scanf(”%d“,&a); if(a%2==0) printf(”%d is an even number.“,a); else printf(”%d is an odd number.“,a);} 21.Problem A: 判斷兩個(gè)整數(shù)的大小關(guān)系 Description 輸入2個(gè)整數(shù)a和b,如果a>b,則輸出1,否則輸出0。 Input 兩個(gè)整數(shù)a和b,均不超過int類型的表示范圍。 Output 表示a>b的結(jié)果:如果a>b,則輸出1,否則輸出0。 Sample Input 3 4 Sample Output 0 HINT Append Code #include printf(”1“); else printf(”0“);return 0;} 22.Problem D: 成績的等級 Description 把百分制的考試成績轉(zhuǎn)換成五級制的成績: 90~100:Excellent 80~89:Good 70~79:Average 60~69:Pass 0~59:Failing 不在0~100之間的輸入是非法數(shù)據(jù),輸出“Error”。 Input 輸入多行,每行一個(gè)整數(shù)。 Output 輸入所對應(yīng)的成績等級。 Sample Input-1 81 92 35 68 72 100 Sample Output Error Good Excellent Failing Pass Average Excellent HINT 用switch語句解決這個(gè)問題比較方便。 Append Code #include int score; while(scanf(”%d“,&score)!=EOF) { if(score<0||score>100) printf(”Errorn“); else { switch(score/10) { case 0: case 1: case 2: case 3: case 4: case 5:printf(”Failingn“);break; case 6:printf(”Passn“);break; case 7:printf(”Averagen“);break; case 8:printf(”Goodn“);break; case 9: case 10:printf(”Excellentn“);break; } } } return 0;} 23.Problem E: 輸出是m的倍數(shù)或n的倍數(shù)、但不是 m和n的公倍數(shù)的數(shù) Description 輸出1~k之間是m的倍數(shù)或n的倍數(shù)、但不是m和n的公倍數(shù)的數(shù),其中1<=m,n Input 輸入三個(gè)整數(shù),依次為k、m、n。 Output 從小到大輸出符合題意的所有整數(shù),兩數(shù)之間用一個(gè)空格分開。 Sample Input 15 2 3 Sample Output 2 3 4 8 9 10 14 15 HINT 難點(diǎn)在于輸出格式的控制:空格在數(shù)的中間,學(xué)會用循環(huán)時(shí)邊界情況的特殊處理。 Append Code #include a=m;else a=n;printf(”%d“,a);for(i=a+1;i<=k;i++){ } if((i%m==0&&i%n!=0)||(i%n==0&&i%m!=0)) printf(” %d“,i);} return 0; 24.Problem B: 兩整數(shù)相加減 Description 計(jì)算a+b和a-b。 Input 輸入為一對整數(shù)a和b。a,b用空格分開。 Output 輸出a+b和a-b的計(jì)算結(jié)果,各占一行。 Sample Input 1 2 Sample Output 3-1 HINT Append Code #include printf(”%dn“,a+b); printf(”%dn“,a-b);} 25 Problem C: 它滿足條件嗎? Description 需要判斷給定的一個(gè)整數(shù)是否同時(shí)滿足如下三個(gè)條件: 1.它是一個(gè)完全平方數(shù)。2.它是一個(gè)偶數(shù)。3.它是一個(gè)正數(shù)。 注:若一個(gè)數(shù)能表示成某個(gè)自然數(shù)的平方的形式,則稱這個(gè)數(shù)為完全平方數(shù)。例如: 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484,529 Input 一個(gè)int范圍內(nèi)的整數(shù)。 Output 如果輸入的數(shù)字滿足條件,則輸出yes,否則輸出no。 Sample Input 100 Sample Output yes HINT 注意邏輯表達(dá)式判斷三個(gè)條件的順序。如果你不會使用分支語句,同樣可以使用條件運(yùn)算符實(shí)現(xiàn)該程序。 庫函數(shù)sqrt()可以用于求一個(gè)數(shù)的平方根。 Append Code #include if(a==sqrt(a)*sqrt(a)&&a%2==0&&a>0) printf(”yes“); else printf(”no“);} 26.Problem F: 多路分支 Description 編寫一個(gè)完整的程序,運(yùn)行時(shí)向用戶提問”你考試考了多少分?(0-100)“接受輸入后判斷其等級并顯示出來等級: 優(yōu):90<=分?jǐn)?shù)<=100 良:80<=分?jǐn)?shù)<90 中:60<=分?jǐn)?shù)<80 差:0<=分?jǐn)?shù)<60 Input 輸入任意一個(gè)整數(shù)分?jǐn)?shù)值,顯示等級;再輸入任意一個(gè)整數(shù)分?jǐn)?shù)值,顯示等級;....直到測試數(shù)據(jù)較充分,可輸入-1止。 Output 對任意輸入的分?jǐn)?shù)值,輸出對應(yīng)的等級,直到輸入的數(shù)為-1時(shí)才退出運(yùn)行.Sample Input 102 100 90 80 70 60 50 0-80-1 Sample Output grad must between 0 and 100 優(yōu) 優(yōu) 良 中 中 差 差 grad must between 0 and 100 grad must between 0 and 100 HINT Append Code #include int x; while(scanf(”%d“,&x)!=EOF) { if(x<0||x>100) printf(”grad must between 0 and 100n“); else if(x>=90) printf(”優(yōu)n“); else if(x>=80) printf(”良n“); else if(x>=60) printf(”中n“); else if(x>=0) printf(”差n“); } return 0;} Problem D: 有多少人? Description 學(xué)校舉行運(yùn)動會,如果全體學(xué)生按照3人一隊(duì)列隊(duì),則多了1個(gè)人;如果按照4人一隊(duì)列隊(duì),則多了2個(gè)人;如果按照5人一隊(duì)排隊(duì),則多了3個(gè)人。請問這個(gè)學(xué)校有多少學(xué)生? Input 一個(gè)int類型的正整數(shù)N,是學(xué)生人數(shù)的上界,即:該校學(xué)生數(shù)不超過N。 Output 所有可能的學(xué)生數(shù),每個(gè)數(shù)占一行。 Sample Input 200 Sample Output 58 118 178 HINT Append Code #include int n,i; scanf(”%d“,&n); for(i==1;i<=n;i++){ if(i%3==1&&i%4==2&&i%5==3) printf(”%dn“,i);} return 0;} Problem C: 正負(fù)數(shù)各有幾個(gè)? Description 輸入若干個(gè)整數(shù),求其中正數(shù)、負(fù)數(shù)的個(gè)數(shù)。 Input 輸入分為2行:第一行是一個(gè)數(shù)字N>0,表示下面有N個(gè)整數(shù)。第2行是N個(gè)整數(shù),都是int類型的。 Output 輸出所輸入的N個(gè)整數(shù)的正數(shù)個(gè)數(shù)和負(fù)數(shù)個(gè)數(shù),并用空格分開2個(gè)輸出。Sample Input 10 2 3 4 5-1-2-3-4-5 Sample Output 5 5 HINT 貌似還有一種叫做0的數(shù)。 Append Code #include int n,a,i,num1=0,num2=0; scanf(”%d“,&n);for(i=0;i { scanf(”%d“,&a); if(a>0) num1++; else if(a<0) num2++; } printf(”%d %dn“,num1,num2); return 0;} Problem A: A+B Problem(III): Input/Output Practice Description 計(jì)算a+b,0<=a,b<1000。 Input 輸入有多對整數(shù)a和b組成,每對a和b占一行,a,b用空格分開。當(dāng)測試樣為0 0時(shí)表示輸入結(jié)束,0 0不參與運(yùn)算。 Output 每行輸出一個(gè)a+b的值,順序與輸入對應(yīng)。 Sample Input 1 2 10 20 0 0 Sample Output 3 30 HINT 練習(xí)break的使用。 Append Code #include { if(a!=0||b!=0) } printf(”%dn“,a+b); else break; return 0;} 30 Problem B: A+B Problem(IV): Input/Output Practice Description 計(jì)算a+b,0<=a,b<1000。 Input 輸入有多對整數(shù)a和b組成,每對a和b占一行,a,b用空格分開。 Output 每行輸出一個(gè)a+b的值,順序與輸入對應(yīng)。每個(gè)格式樣例之間用一個(gè)空行分隔開。 Sample Input 1 2 10 20 15 35 Sample Output 3 30 50 HINT 由于輸出的和比空行多一個(gè),所以全部計(jì)算放在一個(gè)循環(huán)里是不行的,必須要特殊處理開頭或者結(jié)尾。 Append Code #include n++; if(n==1) printf(”%dn“,a+b); else printf(”n%dn“,a+b); } return 0;} Problem C: n個(gè)數(shù)的最大值和最小值 Description 找出n個(gè)數(shù)中最大的數(shù)和最小的數(shù),并將它們的值輸出出來。 Input 輸入為n+1個(gè)整數(shù),都在int類型范圍內(nèi)。這些數(shù)可能用若干空格或者換行符分隔開。輸入的第1個(gè)數(shù)為n,表示后續(xù)有n個(gè)數(shù)輸入。從輸入的第2個(gè)數(shù)開始,求出直到第n+1個(gè)數(shù)中最大的數(shù)和最小的數(shù)。 Output 輸出為兩行,格式見sample。 Sample Input 3 0 1-1 Sample Output The maximum number is 1.The minimum number is-1.HINT 分隔符是空格還是回車都是空白符,對scanf(”%d“)來說沒有區(qū)別;先讀入n,然后用for循環(huán)就很容易控制讀入n個(gè)數(shù)的過程。 Append Code #include int n,i,max,min; scanf(”%d“,&n); int a[n]; for(i=0;i scanf(”%d“,&a[i]); max=a[0]; min=a[0]; for(i=0;i { if(max max=a[i]; if(min>a[i]) min=a[i]; } printf(”The maximum number is %d.n“,max); printf(”The minimum number is %d.“,min); return 0;} 32.Problem D: 求100以內(nèi)的素?cái)?shù) Description 素?cái)?shù)是只能被1和自身整除的正整數(shù),根據(jù)數(shù)學(xué)定義1不是素?cái)?shù)。素?cái)?shù)也叫質(zhì)數(shù)。 Input 輸入為兩個(gè)整數(shù)m和n,滿足0<=m<=n<=100。 Output 從大到小輸出m~n之間的所有素?cái)?shù),一個(gè)素?cái)?shù)一行。如果m~n之間沒有素?cái)?shù),則不輸出任何數(shù)。 輸出的所有數(shù)在兩行“=====”之間。 Sample Input 2 12 Sample Output ===== 11 7 5 3 2 ===== HINT 利用素?cái)?shù)的數(shù)學(xué)規(guī)律可以很容易的解出此題,題目給出的數(shù)據(jù)范圍是關(guān)鍵。 Append Code #include t=0; for(j=2;j<=sqrt(i);j++) if(i%j==0) t=1; if(t==0&&i>1) printf(”%dn“,i);} printf(”=====“);return 0;} 33.Problem E: 是否構(gòu)成三角形? Description 給出三個(gè)整數(shù),代表三條邊的長度,判斷這三條邊的長度是否能構(gòu)成一個(gè)三角形? Input 第一行是n(1<=n<=100),表示有n組測試數(shù)據(jù) 接下來有n行,每一行包含三個(gè)整數(shù),表示三個(gè)邊長(1<=邊長<=100) Output 如果三條邊能構(gòu)成三角形,輸出YES,否則輸出NO Sample Input 3 1 2 3 2 8 7 20 20 1 Sample Output NO YES YES HINT Append Code #include {scanf(”%d%d%d“,&a,&b,&c); if(a+b>c&&a+c>b&&b+c>a) printf(”YESn“);else printf(”NOn“);} return 0;} 34.Problem C: 簡單的整數(shù)排序 Description 對給出的若干整數(shù)按從小到大排序。 Input 輸入的第一個(gè)數(shù)為n(n<=1000),后接n個(gè)整數(shù)。 Output 按從小到大的順序輸出這些整數(shù),每兩個(gè)整數(shù)之間用一個(gè)空格分隔開,最后一個(gè)整數(shù)后面沒有空格。 Sample Input 10 3 9 1 5 2 8 5 6 7 3 Sample Output 1 2 3 3 5 5 6 7 8 9 HINT 排序前必須把所有的整數(shù)都存儲下來。因?yàn)橹挥凶疃?000個(gè)數(shù),1秒的時(shí)間足夠任何排序算法運(yùn)行處結(jié)果來。 Append Code #include int c,i,n,j; int a[1000]; scanf(”%d“,&n); for(i=0;i scanf(”%d“,&a[i]); for(i=1;i<=n-1;i++) { for(j=0;j { if(a[j]>a[j+1]) { c=a[j]; a[j]=a[j+1]; a[j+1]=c; } } } printf(”%d“,a[0]); for(i=1;i printf(” %d“,a[i]); return 0;} 35.Problem A: Description 購物的路程 Saya和Kudo一起去購物。假定她們逛的街是一條直線,而商鋪是這條直線上的一些點(diǎn)。她們將車停在該直線最左端的店鋪處,然后從左向右開始逛每一個(gè)店鋪,然后從最右邊的店鋪再返回到停車處。你的任務(wù)是計(jì)算她們走了多少路。 Input 輸入有多組。每一組的第一行是N(0 Output 對每組輸入,輸出她們走的路長。 Sample Input 4 13 89 37 6 7 30 41 14 39 42 0 Sample Output 152 70 HINT Append Code #include int n,i,max,min,a[100001]; while(scanf(”%d“,&n)&&n!=0) { scanf(”%d“,&a[0]); min=max=a[0]; for(i=1;i { scanf(”%d“,&a[i]); if(a[i]>max) max=a[i]; if(a[i] min=a[i]; } printf(”%dn“,(max-min)*2); } return 0;} 36.Problem B: 求累加和 Description 編程求min~max的累加和(含min和max),其中max>=min>0。部分程序已經(jīng)給出,請?zhí)畛淦渲械目瞻渍Z句,并提交填充后的完整程序。 Input 輸入為多行。第一行是一個(gè)整數(shù)N>0,表示后面有N個(gè)測試用例。后面有N行,每行包含2個(gè)整數(shù),分別是min和max。 Output 輸出為N行,每個(gè)測試用例的計(jì)算結(jié)果占據(jù)一行。每行的格式為: case i:sum=s.其中i表示測試用例的編號(從1開始),s是該測試用例對應(yīng)的累加和(設(shè)不超過int的表示范圍)。 Sample Input 3 1 10 1 100 1 1 Sample Output case 1:sum=55.case 2:sum=5050.case 3:sum=1.HINT Append Code #include int n,i,j,max,min,sum; scanf(”%d“,&n); for(i=0;i { sum=0; scanf(”%d%d“,&min,&max); if(max==min) printf(”case %d:sum=%d.n“,i+1,min); else { for(j=min;j<=max;j++) sum=sum+j; printf(”case %d:sum=%d.n“,i+1,sum); } } return 0;} 37.Problem G: 順序輸出字母 Description 按字母順序輸出兩個(gè)字母st和ed之間的所有字母,但不包括st和ed。不輸出逆序。 Input 兩個(gè)字母st和ed,都是大寫字母,用一個(gè)空格分開。 Output 在一行內(nèi)按順序輸出st和ed之間的所有字母,但不包括st和ed。例如: 輸入為A和E,則輸出為BCD; 輸入為A和B,則什么字母也不輸出,只有一個(gè)空行; 輸入為E和A,也是什么字母也不輸出,只有一個(gè)空行。最后要輸出一行(行尾不回車): ***END*** Sample Input A C Sample Output B ***END*** HINT Append Code #include char st,ed,a; int i; scanf(”%c%c%c“,&st,&a,&ed); { for(i=st+1;i printf(”%c“,i); printf(”n***END***“); } return 0;} 38.Problem F: 單字母變換 Description Tom和Jack是密碼學(xué)愛好者,他們在聊天時(shí)經(jīng)常使用一些暗語。他們使用的一種最簡單的暗語是:將要說的每句話里面的英文字母變成這個(gè)字母之后的某個(gè)字母。現(xiàn)在要求你寫一個(gè)程序,將一個(gè)字母變成它之后的某個(gè)字母。 Input 輸入有2個(gè):一個(gè)大寫字母c和一個(gè)正整數(shù)d(0 Output 輸出字母c之后的第d個(gè)字母。大小寫與c一致。如果c之后的某個(gè)字母已經(jīng)超出'Z',則再從字母'A'開始計(jì)數(shù)。 如:c='A',d=3,則輸出應(yīng)為:D。若:c='Y',d=3,則輸出應(yīng)為:B。 Sample Input A 3 Sample Output D HINT Append Code #include char c; int d; scanf(”%c%d“,&c,&d); if(c+d<='Z') printf(”%c“,c+d); else printf(”%c“,c+d-26); return 0;} 39.Problem B: 登錄密碼驗(yàn)證 Description 編寫一個(gè)程序,模擬用戶登錄系統(tǒng)的密碼驗(yàn)證過程。系統(tǒng)提供給用戶的密碼長度最長為20個(gè)字符,若密碼輸入錯(cuò)誤可以再次輸入。但為了保證用戶密碼安全,若連續(xù)輸入密碼錯(cuò)誤超過5次就會鎖定賬號一段時(shí)間。 Input 輸入為若干個(gè)串,至EOF結(jié)束。輸入的第一個(gè)串是用戶的正確密碼,后面的串為模擬用戶登錄時(shí)的輸入的密碼。 Output 每次輸入錯(cuò)誤的密碼,輸出一個(gè)“Wrong!”,若輸入的密碼為正確的,輸出一個(gè)“Welcome!”,并結(jié)束密碼測試。若前5次輸入的密碼都是錯(cuò)誤的,則后面的輸入中不管是否有正確的密碼都輸出“Out of limited!”。 Sample Input abcdefg 123456 kkkkkkkk abcdefg Sample Output Wrong!Wrong!Welcome! HINT 輸入可以用scanf(”%s“)處理,密碼比較用字符串的比較可以完成。 Append Code #include char a[20],b[20]; int i,j=1; scanf(”%s“,a); while(scanf(”%s“,b)!=EOF) { if(j<=5) { if((strcmp(a,b)==0)) { printf(”Welcome!n“); break; } else printf(”Wrong!n“); j++; } else printf(”O(jiān)ut of limited!n"); } } 40.Problem C: 兔子的繁殖問題 Description 假設(shè)一對兔子每月能生一對小兔(一雌一雄),每對小兔出生后的下一個(gè)月是沒有繁殖能力的,至出生后的第三個(gè)月開始又可以每月生一隊(duì)小兔,問從一對剛出生的小兔開始,經(jīng)過若干個(gè)月后一共有多少兔子(假設(shè)在此過程中兔子沒有死亡)? 這個(gè)問題是意大利數(shù)學(xué)家菲波那契(Fibonacci)在他1202年出版的《算盤全書》中提出來的,從第一對剛出生的小兔開始每月的兔子數(shù)被乘坐菲波那契序列。 Input 輸入的第一個(gè)數(shù)為n,接下來有n個(gè)數(shù)字。每個(gè)數(shù)字為一個(gè)月份m(m<=45)。 Output 輸出為n行,每行為第m個(gè)月后的兔子總數(shù)。 《C 語言程序設(shè)計(jì)》主要在計(jì)算機(jī)軟件、計(jì)算機(jī)網(wǎng)絡(luò)、計(jì)算機(jī)應(yīng)用、通信技術(shù)、智能電子、電子信息工程、多媒體以及核工程與核技術(shù)等專業(yè)中開設(shè),是電子信息類、機(jī)械類等工科專業(yè)的重要專業(yè)基礎(chǔ)課。 本校從2001至今,每年都開設(shè)《C語言程序設(shè)計(jì)》課程,由于,我校最開始時(shí)的特殊情況,主要把重點(diǎn)放在C語言中的各類重點(diǎn)、難點(diǎn)的語法、語義上,使得學(xué)生經(jīng)過比較復(fù)雜和痛苦的過程后,對C語言在使用上很難做到自己編寫程序。而且很多學(xué)生產(chǎn)生了畏懼心理。 2004年,學(xué)院成立計(jì)算機(jī)科學(xué)與技術(shù)系,為了更好學(xué)習(xí)和掌握C語言,計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)和計(jì)算機(jī)維護(hù)專業(yè)(計(jì)算機(jī)應(yīng)用技術(shù)前身)除了開設(shè)《C語言程序設(shè)計(jì)》課程外,在后續(xù)一學(xué)期還開設(shè)了《C語言程序設(shè)計(jì)課程設(shè)計(jì)》,使得計(jì)算機(jī)專業(yè)學(xué)生編程思想和能力得到了極大提高。 2005年,為了讓我院工科學(xué)生更好的掌握C語言編程以及通過四川省計(jì)算機(jī)二級考試,在《C語言程序設(shè)計(jì)》課程后設(shè)置《C語言程序設(shè)計(jì)課程設(shè)計(jì)》,極大地提高了學(xué)生的動手機(jī)會和能力,過級率顯著提高! 2007年,依托我校建設(shè)精品課程的契機(jī),我們將C語言中的各個(gè)知識點(diǎn)進(jìn)行重新規(guī)整,提出適用于三本院校學(xué)生的語言設(shè)計(jì)學(xué)習(xí)的方法。我們提出,先了解C語言,再學(xué)習(xí)C語言,再用C語言的思想。即在開始時(shí)讓學(xué)生初步知道C語言,然后引入比較簡單的運(yùn)算符以及基本輸入、輸出和簡單的順序結(jié)構(gòu)程序設(shè)計(jì)。通過這樣的方式,我們發(fā)現(xiàn),學(xué)生在C語言的學(xué)習(xí)就不會從開始的時(shí)候陷入大量難懂的語法、語義和數(shù)據(jù)結(jié)構(gòu)中。有了以上鋪墊再層層進(jìn)入,最終進(jìn)入復(fù)雜的各類數(shù)據(jù)結(jié)構(gòu)以及指針等學(xué)習(xí)。通過以上的內(nèi)容規(guī)整后,教學(xué)效果有明顯提高。 《C語言程序設(shè)計(jì)》教學(xué)基本知識點(diǎn) 第一章 C語言基本知識 1.C源程序的框架 盡管各個(gè)C源程序的功能千變?nèi)f化,但框架是不變的,主要有:編譯預(yù)處理、主函數(shù)()、函數(shù)n()等,主函數(shù)的位置不一定在最前面,可以在程序的中部或后面,主函數(shù)的名字固定為main。 2.C語言源程序的書寫規(guī)則: (1)C源程序是由一個(gè)主函數(shù)和若干個(gè)其它函數(shù)組成的。(2)函數(shù)名后必須有小括號,函數(shù)體放在大括號內(nèi)。(3)C程序必須用小寫字母書寫。(4)每句的末尾加分號。(5)可以一行多句。(6)可以一句多行。 (7)可以在程序的任何位置加注釋。3.語句種類 語句是程序的基本成分,程序的執(zhí)行就是通過一條條語句的執(zhí)行而得以實(shí)現(xiàn)的,根據(jù)表現(xiàn)形式及功能的不同,C語言的基本語句可以分為五大類。(1)流程控制語句 流程控制語句的功能是控制程序的走向,程序的流程有三種基本結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),任何復(fù)雜的程序都可以由這三種基本結(jié)構(gòu)復(fù)合而成。其中后兩種結(jié)構(gòu)要用特定的流程控制語句實(shí)現(xiàn)。(2)表達(dá)式語句 表達(dá)式語句的形式是:表達(dá)式;,即表達(dá)式后跟一分號“;”,分號是語句結(jié)束符,是一個(gè)語句必不可少的成分。表達(dá)式和表達(dá)式語句的區(qū)別在于表達(dá)式代表的是一個(gè)數(shù)值,而表達(dá)式語句則代表一種動作。最常見的表達(dá)式語句是賦值語句。(3)函數(shù)調(diào)用語句 函數(shù)調(diào)用語句實(shí)際上也是一種表達(dá)式語句,形式為:在一次函數(shù)調(diào)用的小括號后面加上一個(gè)分號。(4)空語句 空語句的形式就是一個(gè)分號,它不代表任何動作,常常作為一個(gè)意義轉(zhuǎn)折點(diǎn)使用。(5)復(fù)合語句 復(fù)合語句從形式上看是多個(gè)語句的組合,但在語法意義上它只相當(dāng)于一個(gè)語句,在任何單一語句存在的地方都可以是復(fù)合語句。注意復(fù)合語句中最后一個(gè)語句末尾的分號不能少。復(fù)合語句右大括號后面沒有分號。4.運(yùn)算符 用來表示數(shù)據(jù)各種操作的符號稱為運(yùn)算符。運(yùn)算符實(shí)際上代表了一種類型數(shù)據(jù)的運(yùn)算規(guī)則。不同的運(yùn)算符具有不同的運(yùn)算規(guī)則,其操作的數(shù)據(jù)類型必須符合該運(yùn)算符的要求,運(yùn)算結(jié)果的數(shù)據(jù)類型也是固定的。 根據(jù)參加操作的數(shù)據(jù)個(gè)數(shù)多少,可以將C語言的運(yùn)算符分為單目運(yùn)算符,雙目運(yùn)算符和三目運(yùn)算符(三目運(yùn)算符只有條件運(yùn)算符一個(gè))。 根據(jù)運(yùn)算對象和運(yùn)算結(jié)果的數(shù)據(jù)類型可分為算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符等。5.表達(dá)式 表達(dá)式是由常量、變量、函數(shù),通過運(yùn)算符連接起來而形成的一個(gè)算式。一個(gè)常量,一個(gè)變量或一個(gè)函數(shù)都可以看成是一個(gè)表達(dá)式。表達(dá)式的種類有: 算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、賦值表達(dá)式、字位表達(dá)式、強(qiáng)制類型轉(zhuǎn)換表達(dá)式、逗號表達(dá)式(順序表達(dá)式)、條件表達(dá)式、指針表達(dá)式。6.數(shù)據(jù)的輸入/輸出 C語言本身沒有輸人/輸出語句,數(shù)據(jù)的輸入/輸出是通過調(diào)用庫函數(shù)來實(shí)現(xiàn)的。 第二章 數(shù)據(jù)類型知識點(diǎn) 劃分?jǐn)?shù)據(jù)類型的意義是編譯系統(tǒng)對每個(gè)不同類型的數(shù)據(jù)在內(nèi)存中分配的字節(jié)數(shù)不同,不同類型的數(shù)據(jù)可以按規(guī)定參加不同類型的運(yùn)算。1.C語言的數(shù)據(jù)類型 數(shù)據(jù)類型有:整型、字符型、實(shí)型單精度型、雙精度型、構(gòu)造類型數(shù)組類型、結(jié)構(gòu)體類型、共用體類型、枚舉類型、指針類型、空類型,其中整型、實(shí)型、字符型是C語言中的基本類型。 2.各種類型數(shù)據(jù)的定義方法 定義形式:數(shù)據(jù)類型 變量名1,變量名2,??變量名n; 3.常量與變量 (1)常量——在程序執(zhí)行期間其值不變的量。它不能被賦值。(2)變量——在程序運(yùn)行期間其值可以改變的量。4.各種類型數(shù)據(jù)的混合運(yùn)算 各類數(shù)據(jù)運(yùn)算前會自動轉(zhuǎn)換成同一類型。規(guī)律如右圖示:從右向左的箭頭表示必定的轉(zhuǎn)換,如float型數(shù)據(jù)運(yùn)算前化成double型,以提高運(yùn)算精度,結(jié)果也為double型,short或char型數(shù)據(jù)運(yùn)算前化成int型,結(jié)果也為int型;從下向上的箭頭表示轉(zhuǎn)換方向是向級別高的靠攏。 5.強(qiáng)制類型變換 當(dāng)我們需要對數(shù)據(jù)進(jìn)行類型變換,而機(jī)器又不能自動完成時(shí),就要用強(qiáng)制類型變換,形式為:(數(shù)據(jù)類型符)(被轉(zhuǎn)換對象)。 第三章 選擇知識點(diǎn) C語言中實(shí)現(xiàn)選擇結(jié)構(gòu)的控制語句有兩種:條件分支語句if和開關(guān)分支語句switch。1.if語句的三種形式:(1)if(表達(dá)式)語句;(2)if(表達(dá)式)語句1;else語句2;(3)if(表達(dá)式1)語句1;else if(表達(dá)式2)語句2;else if(表達(dá)式3)語句3;? else if(表達(dá)式n)語句n;2.開關(guān)分支語句switch(1)形式 switch(表達(dá)式){ case e1:語句1;break;case e2:語句2;break;case e3:語句3;break;?? case en:語句n;break;default :語句n+1;}(2)功能 當(dāng)表達(dá)式的值等于e1時(shí),執(zhí)行語句1; 當(dāng)表達(dá)式的值等于e2時(shí),執(zhí)行語句2; ?? 當(dāng)表達(dá)式的值等于en時(shí),執(zhí)行語句n; 當(dāng)表達(dá)式的值與常量e1、e2??en誰都不等時(shí),就執(zhí)行default后的語句 第四章 循環(huán)知識點(diǎn) 循環(huán)就是在程序執(zhí)行過程中,反復(fù)多次的執(zhí)行同一段程序。C語言中有三種循環(huán)語句。1.while循環(huán)語句 形式為:while(表達(dá)式){ 循環(huán)體 }; 執(zhí)行過程是:先計(jì)算表達(dá)式的值,當(dāng)表達(dá)式的值非0時(shí)就執(zhí)行循環(huán)體,之后再判斷表達(dá)式的值,且重復(fù)以上過程;當(dāng)表達(dá)式的值為0時(shí)就結(jié)束循環(huán)。2.do--while循環(huán)語句 形式為:do { 循環(huán)體 } while(表達(dá)式); 執(zhí)行過程是:先執(zhí)行循環(huán)體一次,再判斷表達(dá)式的值,當(dāng)表達(dá)式的值非0時(shí)就再執(zhí)行循環(huán)體,之后再判斷表達(dá)式的值,且重復(fù)以上過程;當(dāng)表達(dá)式的值為0時(shí)就結(jié)束循環(huán)。3.for循環(huán)語句 形式為:for(表達(dá)式1;表達(dá)式2;表達(dá)式3){ 循環(huán)體 } 4.三種循環(huán)語句的比較 三種循環(huán)語句可以完成同一件事,可任選其一。 使用while和do--while循環(huán)時(shí),要提前給循環(huán)變量賦初值。而for循環(huán)是在表達(dá)式1中賦初值的。 while循環(huán)和for循環(huán)都是先判斷條件后執(zhí)行循環(huán)體,有可能一次也不執(zhí)行循環(huán)體,do--while循環(huán)是先執(zhí)行循環(huán)體,后判斷條件,即循環(huán)體至少也得執(zhí)行一次。for循環(huán)不限于計(jì)數(shù)循環(huán),其循環(huán)條件可以是邏輯表達(dá)式和字符表達(dá)式等。5.循環(huán)嵌套 三種循環(huán)控制語句可以互相嵌套,即在一個(gè)循環(huán)體內(nèi)部又可以出現(xiàn)另一循環(huán),這種嵌套在理論上來說可以是無限的。注意必須是一個(gè)循環(huán)完整的套住另一個(gè)循環(huán)。6.break語句 break語句只能出現(xiàn)在三種循環(huán)語句和switch多分支語句中,其作用是用來中斷這四種語句的執(zhí)行。當(dāng)程序執(zhí)行到break語句時(shí),會跳出break語句所在的循環(huán)或switch分支,而直接執(zhí)行緊跟在它們后面的語句。7.continue語句 continue語句只能出現(xiàn)在三種循環(huán)語句中,當(dāng)程序執(zhí)行到continue語句時(shí),其作用是提前結(jié)束本次循環(huán),自動跳過循環(huán)體中后半部剩余的語句的執(zhí)行,而直接回到循環(huán)條件判斷。根據(jù)判斷的結(jié)果決定是否繼續(xù)執(zhí)行下次循環(huán)。8.goto 語句 goto語句是一種非結(jié)構(gòu)化語句,其作用是使程序的執(zhí)行無條件的轉(zhuǎn)移到某一處。使用格式為: goto 標(biāo)號;利用goto語句與if條件語句配合,也可以實(shí)現(xiàn)條件循環(huán)。C語句允許在任何語句前添加標(biāo)號,作為跳轉(zhuǎn)目標(biāo),標(biāo)號的構(gòu)成是標(biāo)識符后面加一個(gè)“:”。 第五章 數(shù)組知識點(diǎn) 數(shù)組就是同類型的一批數(shù)據(jù)的集合,用一個(gè)變量名存放,區(qū)分各元素的辦法是用下標(biāo)。1.一維數(shù)組 類型說明符數(shù)組名[數(shù)組長度]; (1)數(shù)組命名要符合標(biāo)識符的命名規(guī)則。 (2)數(shù)組名后的括號必須是方括號,不能是圓括號。 (3)數(shù)組長度必須是正整數(shù),可以是個(gè)表達(dá)式,但不能有變量,C語言不支持動態(tài)數(shù)組。(4)數(shù)組長度表示數(shù)組中元素的個(gè)數(shù) (5)數(shù)組元素的下標(biāo)從0開始數(shù),所以最大下標(biāo)是數(shù)組的長度減1。2.多維數(shù)組(以二維為例)類型說明符數(shù)組名[第一維長度][第二維長度];(1)數(shù)組命名要符合標(biāo)識符的命名規(guī)則。 (2)數(shù)組名后的括號必須是兩個(gè)方括號,定義時(shí)不能寫成inta[3,4]。(3)數(shù)組長度必須是整型常量表達(dá)式。 (4)第一維長度表示數(shù)組行數(shù),第二維長度表示數(shù)組列數(shù)。(5)每個(gè)數(shù)組元素都有兩個(gè)下標(biāo),第一維表示該元素所在的行,第二維表示該元素所在的列,每一維的下標(biāo)都從0開始數(shù)。二維數(shù)組的初始化:C語言規(guī)定只有靜態(tài)數(shù)組和外部數(shù)組才允許在定義時(shí)賦初值,賦初值形式如下: static類型說明符數(shù)組名[第一維長度][第二維長度]={初值表}; 二維數(shù)組的引用:二維數(shù)組不能整體引用,要引用數(shù)組的單個(gè)元素,形式為:數(shù)組名[下標(biāo)][下標(biāo)]和普通變量的使用無任何區(qū)別。3.字符數(shù)組 C語言中沒有字符串變量,字符串是靠字符數(shù)組實(shí)現(xiàn)的,所謂字符數(shù)組就是元素的數(shù)據(jù)類型為字符型的數(shù)組。 (1)字符數(shù)組的定義形式:char數(shù)組名[數(shù)組長度]; 因?yàn)镃語言中的整型數(shù)據(jù)和字符型數(shù)據(jù)是相通的,所以也可以這樣定義:int數(shù)組名[數(shù)組長度]; (2)字符數(shù)組的初始化:給字符數(shù)組的初始化有兩種方式,一種是用字符常量,另一種是用字符串。形式如下: staticchar數(shù)組名[數(shù)組長度]={字符常量表}; staticchar數(shù)組名[數(shù)組長度]={字符串常量}; 4.數(shù)組與函數(shù) 數(shù)組經(jīng)常作為函數(shù)的參數(shù),數(shù)組做函數(shù)的參數(shù)有兩種形式,一是數(shù)組元素做函數(shù)的參數(shù),一是數(shù)組名做函數(shù)的參數(shù),當(dāng)用數(shù)組名做函數(shù)的實(shí)參時(shí)傳送的是首地址。5.常用的字符串處理函數(shù) C語言提供了一些處理字符串的標(biāo)準(zhǔn)函數(shù),用以完成一些常見的操作。對以下幾個(gè)函數(shù)要掌握其功能和調(diào)用形式。 (1)gets(字符數(shù)組名)此函數(shù)功能是從鍵盤輸入一串字符,回車后送到字符數(shù)組中,注意定義數(shù)組時(shí)數(shù)組長度要足夠大。 (2)puts(字符數(shù)組名)此函數(shù)功能是將字符數(shù)組的內(nèi)容輸出到屏幕上。 (3)strcat(字符數(shù)組名1,字符數(shù)組名2)此函數(shù)功能是將字符數(shù)組1中的’
第四篇:C 語言程序設(shè)計(jì)
第五篇:c語言程序設(shè)計(jì)知識點(diǎn)總結(jié)