欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      C語言程序設(shè)計教學(xué)探究論文

      時間:2019-05-15 10:45:35下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《C語言程序設(shè)計教學(xué)探究論文》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《C語言程序設(shè)計教學(xué)探究論文》。

      第一篇:C語言程序設(shè)計教學(xué)探究論文

      [摘要]文章主要針對高職高專院校中《C語言程序設(shè)計》教學(xué)中出現(xiàn)的聽得懂、編不出的現(xiàn)象,分析問題存在的原因,從教學(xué)的課程目標(biāo)定位、教學(xué)內(nèi)容和方法改革方面進行了探討,提出只有教師的教學(xué)內(nèi)容和教學(xué)方法進行合理的組合,提高學(xué)生的學(xué)習(xí)興趣才能達(dá)到良好的教學(xué)效果。

      [關(guān)鍵詞]教學(xué)方法 案例教學(xué) 教學(xué)效果

      《C語言程序設(shè)計》作為計算機專業(yè)的基礎(chǔ)課,已經(jīng)成為一門必修的課程,在整個課程體系中占有重要地位。在C語言教學(xué)過程中,從客觀上講,教師的教法和學(xué)生的學(xué)法的差異,對教學(xué)效果都會產(chǎn)生直接的影響。針對學(xué)生學(xué)習(xí)語言類課程的一般思維規(guī)律和思維模式,筆者結(jié)合多年來的教學(xué)經(jīng)驗和教學(xué)體會,把一些經(jīng)驗和方法總結(jié)出來,希望能對C語言教學(xué)有所幫助。

      一、教學(xué)中存在的問題

      《C語言程序設(shè)計》是一個邏輯性很強的課程。學(xué)生在畢業(yè)設(shè)計時會面臨具體的設(shè)計要求的問題,它與任何一本教材中的內(nèi)容相距甚遠(yuǎn),這使大多數(shù)同學(xué)感到無從下手。這其中的原因可以分成兩類:一方面目前高校使用的教材中,絕大多數(shù)結(jié)構(gòu)都基本相同。在每一章介紹完了概念之后,提供一些例題解釋相關(guān)概念的使用方法,并在章節(jié)結(jié)束后針對本章中出現(xiàn)的內(nèi)容提供一些練習(xí)題。考試普遍采用單選、判斷及簡答等方式測試學(xué)生對于教材內(nèi)容的掌握程度。從實際效果分析,實際上是測試學(xué)生對各章節(jié)中的基本概念記憶程度而不是理解程度。另一方面是在考試壓力下,特別是目前的應(yīng)試考試方式中,學(xué)生更多注意的是教材中的典型例題與老師指定的重點內(nèi)容,對于程序的系統(tǒng)概念沒有真正理解,特別是沒有整體設(shè)計的概念。通過對各類考試結(jié)果的分析,可以注意到一個現(xiàn)象,在考試中涉及的綜合編程部分,學(xué)生的得分率很低。為了確保學(xué)生的課程通過率,在考試時盡可能將綜合測試部分的比例壓低或提供學(xué)生統(tǒng)一復(fù)習(xí)提綱,這樣做的結(jié)果就是學(xué)生在學(xué)習(xí)時一切圍繞任課老師講課的內(nèi)容,特別是老師講授的例題。學(xué)生在學(xué)習(xí)的過程中,沒有注意如何綜合運用相關(guān)內(nèi)容解決具體問題,導(dǎo)致學(xué)生在學(xué)完程序設(shè)計課程進入應(yīng)用階段時,面對具體的專業(yè)設(shè)計要求無從下手。

      二、提高程序設(shè)計課程教學(xué)效果的途徑

      1.明確課程目標(biāo)

      通過學(xué)習(xí),學(xué)生應(yīng)能正確理解語言的基本概念、語法、語義并得到充分的程序設(shè)計訓(xùn)練。C語言課程一般是為應(yīng)用性教學(xué)而設(shè)置的,因此,強調(diào)實踐性是計算機語言課程教學(xué)中特別要注意的問題。對于計算機語言課程的教授不應(yīng)僅僅是傳授知識,應(yīng)該以培訓(xùn)能力為主。過分強調(diào)該語言的系統(tǒng)性和完整性可能會轉(zhuǎn)移學(xué)生對課程重點的注意力。C語言的內(nèi)容繁多,在有限的課時內(nèi)不可能也不必要面面俱到,所以必須突出重點,突出實用性,關(guān)鍵在于教會學(xué)生正確運用C語言編寫程序,一些細(xì)節(jié)、具體規(guī)則和進一步的知識可以讓學(xué)生在今后的應(yīng)用中查閱有關(guān)書籍。教師應(yīng)始終堅持以應(yīng)用為中心,以算法為基礎(chǔ),以培養(yǎng)學(xué)生的實踐能力為核心,突出技術(shù)實用性和再學(xué)習(xí)能力的培養(yǎng)。

      2.進行教學(xué)改革

      (1)教學(xué)內(nèi)容改革

      程序設(shè)計課程具有很強的實踐性,要以社會對編程能力的需求和技術(shù)發(fā)展為依據(jù),調(diào)整教學(xué)大綱和教學(xué)內(nèi)容,以適應(yīng)技術(shù)崗位能力要求,設(shè)計模塊化課程體系。在課程設(shè)置與建設(shè)中,要充分體現(xiàn)教學(xué)內(nèi)容在訓(xùn)練和提高學(xué)生培養(yǎng)學(xué)生實踐能力方面的要求。適當(dāng)增加實訓(xùn)教學(xué)內(nèi)容,以強化學(xué)生的實際開發(fā)和應(yīng)用能力,實現(xiàn)“零距離就業(yè)”。

      (2)改變教學(xué)思想

      ①由整體到具體,培養(yǎng)學(xué)生對C語言的興趣及正確的思維模式?!禖語言程序設(shè)計》注重由設(shè)計算法到書寫程序并進行調(diào)試的整個過程,顯得抽象、復(fù)雜,這也是大多數(shù)學(xué)生抱怨程序設(shè)計太難、太深奧、不好學(xué)的主要原因。在教學(xué)過程中,應(yīng)該先介紹一個較完整的程序例子,該例子包含了該語言中的主要語句,目的是使學(xué)生先對程序有個初步的印象,再簡單介紹該例子中用到的語句,讓學(xué)生對該語言的學(xué)習(xí)有一個大概的了解,避免學(xué)生對學(xué)習(xí)語言望而生畏。整個教學(xué)過程中應(yīng)該把“解題思路、方法和步驟”當(dāng)作授課的重點,從而讓學(xué)生明白如何分析、解決實際問題,逐漸培養(yǎng)學(xué)生進行程序設(shè)計的正確思維模式。

      ②一題多解,注重算法是程序設(shè)計的靈魂,是教學(xué)重點,也是教學(xué)難點,而語言只是表示形式。沒有正確的算法,計算機將解決不了任何問題。對于C語言所涉及到的算法,應(yīng)進行部分精講多練。

      (3)教學(xué)方法改革

      ①案例分析教學(xué)。通過案例分析,重點講解程序設(shè)計的思想和方法,輔以語言知識的介紹,將課程內(nèi)容分為若干個主題,以程序設(shè)計做為貫穿各主題的主線。每個主題的教學(xué)過程由“要點講解”、“練習(xí)/上機實踐”和“疑難解答”三個階段組成。

      ②基于問題的教學(xué)。提出問題,以學(xué)生獨立完成為主,教師只提供必要的輔導(dǎo),培養(yǎng)學(xué)生探索問題和解決問題的能力,更有利于創(chuàng)新能力的培養(yǎng)。

      ③“項目驅(qū)動”教學(xué)。在理論教學(xué)中采用“項目驅(qū)動”教學(xué)法,整個課程教學(xué)圍繞一個“工程項目”進行,通過逐步拓展的實訓(xùn)項目和設(shè)計,將每一階段的學(xué)習(xí)進行小結(jié)性的貫穿與能力提高。將C 的知識點都溶化到一個個實訓(xùn)項目的程序編寫中。在課程初期,主要是進行單項的編程練習(xí),重在掌握C 語言的基本語句、數(shù)據(jù)類型與程序結(jié)構(gòu)等。在進入數(shù)組、函數(shù)、結(jié)構(gòu)、指針和文件內(nèi)容教學(xué)時,開始實訓(xùn)項目的編程實踐,逐步組建“教師管理系統(tǒng)”,并且添加文本菜單,整合擴展記錄添加、排序、查詢、統(tǒng)計和記錄瀏覽等內(nèi)容形成課程設(shè)計。

      (4)課程考核方式改革

      ①平時上機訓(xùn)練時給學(xué)生留一些編程習(xí)題,每次根據(jù)學(xué)生編寫情況進行測評并占據(jù)期末總成績30%。

      ②期末前,給學(xué)生留一個綜合實訓(xùn)題考核學(xué)生綜合解決問題的能力,要求同學(xué)們在一周內(nèi)完成,占據(jù)期末總成績30%。

      ③期末進行理論考試,占期末總成績的40%。

      3.展示學(xué)生作品,激發(fā)學(xué)生的學(xué)習(xí)欲望

      計算機軟件課程具有多樣性、復(fù)雜性和求異性特點,我們要針對每個學(xué)生任務(wù)完成的情況,讓同學(xué)們展示自己的勞動成果,及時肯定學(xué)生的成績,這樣會有利于激發(fā)學(xué)生們的學(xué)習(xí)熱情,保持濃厚的學(xué)習(xí)興趣,對學(xué)生的后續(xù)學(xué)習(xí)將產(chǎn)生強大的動力和自信心,也可以對每次任務(wù)的完成情況進行積分制度,算入期末成績中,以激發(fā)學(xué)生們的興趣。

      4.自始至終培養(yǎng)學(xué)生的自學(xué)能力

      學(xué)生學(xué)習(xí)軟件的最終目的是編寫滿足需求的程序,所以我們在教學(xué)中教授的不僅僅是具體語言的語法知識,更重要的是通過這門語言學(xué)習(xí),培養(yǎng)學(xué)生遇到實際問題自己分析問題、解決問題的能力。我們可以通過給學(xué)生布置作業(yè)的形式讓同學(xué)們自學(xué),初始階段往往會遇到因為學(xué)生自學(xué)能力差而帶來的困難,所以在學(xué)生完成任務(wù)時,老師既要要求學(xué)生獨立思考、自主學(xué)習(xí),又要鼓勵學(xué)生間進行協(xié)作學(xué)習(xí)。教師可以分配一些比較復(fù)雜的問題,由幾個學(xué)生組成一個小組合作解決,這樣同學(xué)們可以互相探討學(xué)習(xí)方法,協(xié)作解決一些遇到的問題,通過解決問題,鍛煉學(xué)生綜合應(yīng)用知識的能力、培養(yǎng)其創(chuàng)造性和合作精神。

      參考文獻:

      [1]郭芹.對高職高專計算機專業(yè)程序設(shè)計教學(xué)的思考.中國科技信息,2008(1).[2]于麗杰,王育平,董楠萍等.面向?qū)ο癯绦蛟O(shè)計綜合實踐課程教學(xué)模式的探索[J].高教論壇,2007.01.

      第二篇:C語言程序設(shè)計教學(xué)分析與探索論文

      [摘要]C語言是高校計算機類專業(yè)開設(shè)的一門非常重要的專業(yè)課程,學(xué)校往往在教學(xué)上投入很多,卻收效甚微。學(xué)生普遍反映難學(xué)、難懂,理論與實踐脫節(jié),所以很難培養(yǎng)出滿足社會需求的計算機專業(yè)人才。本文從學(xué)校教學(xué)和學(xué)生學(xué)習(xí)兩個方面出發(fā),分析C語言教學(xué)過程中現(xiàn)存的問題,通過多年的教學(xué)經(jīng)驗,對教學(xué)方式和方法進行總結(jié),試圖探索出一種符合現(xiàn)代人才培養(yǎng)需求的教學(xué)模式。

      [關(guān)鍵詞]C語言 程序設(shè)計 實踐教學(xué)

      一、前言

      上個世紀(jì)70年代以來,C語言在以其目標(biāo)代碼質(zhì)量高,使用靈活,數(shù)據(jù)類型豐富,可移植性好等特點而得到廣泛的普及和迅速發(fā)展,成為一種在系統(tǒng)軟件開發(fā)、科學(xué)計算、自動控制等各個領(lǐng)域廣泛應(yīng)用的程序設(shè)計語言。在眾多高級程序設(shè)計語言競顯風(fēng)流的當(dāng)今社會,C語言以其強大的功能仍在高級程序設(shè)計領(lǐng)域占據(jù)著重要的地位。

      C語言作為計算機類專業(yè)的一門專業(yè)課,是學(xué)生學(xué)習(xí)程序設(shè)計的開端,學(xué)生分析問題、解決問題的能力和程序設(shè)計過程理念的形成都與C語言有著密切的聯(lián)系。C語言有著其它高級程序設(shè)計語言不可比擬的優(yōu)點,同時也有其較難學(xué)習(xí)的一面。由于現(xiàn)行教學(xué)過程中存在著一些弊端和學(xué)生自身因素的原因,所以在學(xué)習(xí)中普遍反映“難學(xué)”、“不懂“,這也是學(xué)生普遍遇到的問題。

      二、現(xiàn)行教學(xué)和學(xué)習(xí)中存在的問題

      1.現(xiàn)行教學(xué)中理論課與實踐課完全分離,不能相互促進。理論課中往往只注重對教材知識的分析和灌輸,在廣度上對知識沒有拓展和延伸,必定會影響對知識深度的剖析,也會造成學(xué)生理解的困難。而實踐課程通常被放到了次要的地位,很多時候是在走形式:一方面,學(xué)生對知識一知半解、往往用上網(wǎng)來對付實踐課;另一方面,老師很難監(jiān)控到每個學(xué)生,了解他們是否都在認(rèn)真編寫、調(diào)試程序。這就造成理論課沒有起到為實踐課打基礎(chǔ)的作用,實踐課也沒有起到鞏固、應(yīng)用理論課的作用。

      2.學(xué)生對計算機基礎(chǔ)的學(xué)習(xí)不深入,嚴(yán)重影響了C語言的學(xué)習(xí)。因為C語言程序設(shè)計課程的延續(xù)性和拓展性非常的強,包含了算法、數(shù)據(jù)結(jié)構(gòu)、計算機基礎(chǔ)等相關(guān)專業(yè)課程和基礎(chǔ)課程的課程的知識。在C語言教學(xué)中涉及到進制轉(zhuǎn)換、取值范圍和順序存儲等基礎(chǔ)知識時,發(fā)現(xiàn)很多學(xué)生還沒掌握這些基礎(chǔ)知識,甚至根本不理解。在這樣薄弱的基礎(chǔ)上,C語言教學(xué)很難順利進行。

      3.學(xué)生在學(xué)習(xí)中處于被動的接受知識的地位,沒有機會主動參與到學(xué)習(xí)中來,導(dǎo)致學(xué)習(xí)興趣不濃、學(xué)習(xí)停留在表面、對知識學(xué)的一知半解。由于接受的多是課本知識,所以動手能力差、應(yīng)用能力差,導(dǎo)致不能把自己所學(xué)的知識應(yīng)用到實踐中去。這樣培養(yǎng)出來的學(xué)生不能滿足社會的需要,也沒有達(dá)到教學(xué)的目的。

      三、探索新的教學(xué)方法

      在多年的教學(xué)過程中,嘗試多種教學(xué)方式,不斷總結(jié)教學(xué)經(jīng)驗,探索新的教學(xué)方法。

      1.上好第一堂課,引起學(xué)生的學(xué)習(xí)興趣。第一堂課是最基礎(chǔ)的理論知識課,如介紹C語言的發(fā)展、特點、優(yōu)點等內(nèi)容,往往不被教師所重視,認(rèn)為應(yīng)該把精力放到程序設(shè)計部分。其實恰恰相反,上好第一堂課至關(guān)重要,它關(guān)系著學(xué)生是否會對學(xué)習(xí)產(chǎn)生興趣,渴望進行后繼內(nèi)容的學(xué)習(xí)問題,所以絕對不能照本喧科。而對C語言的發(fā)展追本溯源,將C語言領(lǐng)域的開發(fā)投入、研發(fā)過程、遇到的問題進行詳細(xì)的分析,對C語言在現(xiàn)實中的應(yīng)用以及C++、VC++進行介紹,往往能夠引起學(xué)生學(xué)習(xí)C語言程序設(shè)計的興趣、推動后續(xù)知識的學(xué)習(xí)。

      2.詳細(xì)講解基礎(chǔ)知識,深度剖析與后繼課程相關(guān)的內(nèi)容,激發(fā)學(xué)生學(xué)習(xí)動力。C語言程序設(shè)計教學(xué)中涉及的數(shù)據(jù)類型、取值范圍、運算符、優(yōu)先級、表達(dá)式等內(nèi)容雖是基礎(chǔ)知識,但對學(xué)生來說卻是邁入程序設(shè)計大門的第一步。沒有堅實的基礎(chǔ)知識,便無從談及程序設(shè)計,所以對基礎(chǔ)知識的講解一定要詳細(xì)。比如遇到整型數(shù)據(jù)的取值范圍問題時,可以適當(dāng)拓展一些原碼和反碼的知識,讓學(xué)生知其然,更知其所以然;鏈表知識是C語言的難點,這部分內(nèi)容和數(shù)據(jù)結(jié)構(gòu)聯(lián)系密切,所以要深度剖析,尤其是對帶表頭結(jié)點的單、雙鏈表更要講解的清晰、透徹,為數(shù)據(jù)結(jié)構(gòu)、JAVA語言等后繼課程打下堅實基礎(chǔ)。這樣繼往開來,不僅可以鞏固以前的計算機基礎(chǔ)知識,更能激發(fā)學(xué)生的學(xué)習(xí)動力。3.重點分析程序設(shè)計過程,培養(yǎng)學(xué)生良好的編程習(xí)慣,逐步提高學(xué)生編程能力。很多學(xué)生認(rèn)為,進行程序設(shè)計就是用計算機語言編寫源代碼,這其實是學(xué)習(xí)程序設(shè)計的一個誤區(qū),編寫源代碼僅僅是完成了程序的編碼,而程序設(shè)計從問題分析就開始了,它包括分析問題、選擇算法、繪制流程圖、編寫源代碼、調(diào)試并測試程序,直到取得正確結(jié)果這樣一個完整的過程。其中繪制流程圖能使程序員在編程時思路清晰,減少編程錯誤。利用流程圖來分析、查找、解決程序設(shè)計中的問題能夠一目了然。例如:下面這一簡單的while循環(huán)結(jié)構(gòu),用流程圖便可以輕易發(fā)現(xiàn)錯誤所在。圖1是錯誤代碼的流程圖,它使程序陷入了死循環(huán),圖2是正確的流程圖。所以繪制正確的流程圖,是減少代碼錯誤的有效手段。

      Main(0

      {int i,sum;

      i=sum=0;

      While(i<=100)

      Sum+=i;

      i++;

      Printf(“1+2+3+…+100=%d’,sum);

      }

      在C語言程序設(shè)計教學(xué)過程中,即使對簡單的程序設(shè)計的講解也嚴(yán)格的按照程序設(shè)計的過程一步步的進行分析和引導(dǎo),培養(yǎng)學(xué)生良好的編程習(xí)慣。

      4.通過實踐教學(xué),讓學(xué)生親自體會程序設(shè)計全過程,鞏固所學(xué)知識。學(xué)生通常在C語言的學(xué)習(xí)上投入了很多的精力與時間,但卻離實際要求相差很遠(yuǎn)。因為缺乏了實踐經(jīng)驗和能力,不能滿足社會的需求,這也是計算機類學(xué)生的通病。為此,在教學(xué)中一定要注重理論與實踐相結(jié)合。案例實驗可以說是學(xué)習(xí)C程序設(shè)計最有效的方法之一,在教學(xué)過程中我們故意將賦值符號“=”和等號“= =”互換、漏寫分號“;”和大括號“{}“,設(shè)置一些待解決的錯誤,引導(dǎo)學(xué)生在編程和調(diào)試過程中逐一解決這些問題,不僅能夠鞏固理論知識、養(yǎng)成編程的好習(xí)慣,更能調(diào)動學(xué)生思考問題和解決問題的積極性。同時在解決問題的過程中使學(xué)生有一種成就感,這對學(xué)習(xí)能力的提高和積極性的培養(yǎng)有很好的作用。

      5.多種教學(xué)手段相結(jié)合,提高教學(xué)效果。理論教學(xué)與實踐教學(xué)相結(jié)合,適當(dāng)減少理論課、增加實踐課,將理論教學(xué)融入實踐教學(xué)中來,逐漸模糊兩者之間的界限;傳統(tǒng)教學(xué)與豐富多彩的多媒體教學(xué)相結(jié)合、教師講解與學(xué)生課堂討論相結(jié)合,以便調(diào)動學(xué)習(xí)的主動性和積極性。

      6.注重對知識的歸納和總結(jié),讓學(xué)生溫故而知新。在教學(xué)過程中,按章節(jié)、按階段對相關(guān)重點知識進行歸納總結(jié),讓學(xué)生把模塊化的知識連接起來,系統(tǒng)、全面的掌握所學(xué)內(nèi)容。

      四、結(jié)束語

      目前C語言程序設(shè)計教學(xué)中仍然有很多需要改進的地方,如何提高實踐教學(xué)質(zhì)量,使理論與實踐相結(jié)合,仍需要在教學(xué)過程中不斷的探索和改革。

      參考文獻:

      [1]楊路明等.C/C++程序設(shè)計教程.長沙:湖南科學(xué)技術(shù)出版社,2003.

      [2]譚浩強.C語言程序設(shè)計教程.北京:高等教育出版社,1997.

      [3]王士元.C高級實用程序設(shè)計.北京:清華大學(xué)出版社,1996.

      [4]徐孝凱.數(shù)據(jù)結(jié)構(gòu)實用教程(C/C++描述).北京:清華大學(xué)出版社,1999.

      第三篇:c語言程序設(shè)計論文

      C語言程序設(shè)計論文

      摘要

      該程序編譯的是通訊錄,可以實現(xiàn)一般主要功能有:有建立通訊錄的個人信息功能,如記錄該人姓名信息,地址信息,出生日期信息,所在城市信息,以及其城市的郵編信息等,刪除個人信息,通訊錄個人的信息列表,個人的信息查詢,個人的信息保存,以及個人的信息提取的功能,最后可以直接退出通訊錄。

      當(dāng)然實行不同的功能需要定義不同的功能函數(shù),在記錄個人信息定義不同的結(jié)構(gòu)體,每一個成員的信息可以是一個基本類型或者是一個夠造類型,對結(jié)構(gòu)體變量的應(yīng)用,其中包括賦值,輸入,輸出,運算等方式來實現(xiàn)結(jié)構(gòu)變量的成員。

      當(dāng)然也可以執(zhí)行該程序應(yīng)用了函數(shù)的調(diào)用,自定義函數(shù)以及文件的存儲與調(diào)用等。個人的信息保存在這個問題上,這信息可以動態(tài)的分配到內(nèi)存空間,每一次分配一塊空間用來存放一個人的個人信息的數(shù)據(jù),定義兩個域,一個是數(shù)據(jù)域,用來存放各種實際的數(shù)據(jù),如個人姓名信息,個人地址信息,出生日期等等數(shù)據(jù)。在編輯程序,用到了基本的循環(huán)、選擇、排序的算法,使用數(shù)組或數(shù)組元素的指針和指針變量,對結(jié)構(gòu)體及其元素用指針或指針變量來指向。并且使用多種預(yù)處理功能,如宏定義、文件包含、條件編譯等。來進行程序的修改、閱讀、移植和調(diào)試,也有利于實現(xiàn)模塊化程序設(shè)計。程序員在程序中用預(yù)處理命令來調(diào)用這些功能。

      通訊錄的個人信息數(shù)據(jù)的編輯、存儲、列表、刪除、查詢、提取等實行運用,在程序中存儲二百人的個人信息空間,日期不能超過兩個字符。在運行后,程序自動給出提示選擇,給出你所需要執(zhí)行的功能,在選擇后會給出相應(yīng)的顯示和下一步的提示,在編輯個人信息時必須有姓名,否者會返回上一選擇菜單,有部分信息可以不填。在編輯完后,就可以實行其他功能,將給出其他選擇,如將個人信息刪除、將個人信息列表、保存?zhèn)€人信息、提取個人信息等等的功能。最后在執(zhí)行完后就可直接根據(jù)提示選擇退出。就實現(xiàn)了整個通訊錄的流程。

      關(guān)鍵詞:通訊錄、列表、函數(shù)、編譯

      C語言程序設(shè)計論文

      目錄

      ? 題目內(nèi)容及其功能..........................2 ? 算法原理..................................2 ? 算法流程圖................................8 ? 源程序...................................14 ? 運用結(jié)果及分析...........................20 ? 設(shè)計心得.................................22 ? 參考文獻.................................23

      C語言程序設(shè)計論文

      題目內(nèi)容及其功能

      該通訊錄主要功能有:有建立通訊錄的個人信息,如姓名,地址,出生日期,城市,郵編等。也可以執(zhí)行刪除個人信息,通訊錄信息列表,信息查詢,信息保存,以及信息提取的功能,最后可以退出通訊錄。該程序應(yīng)用了函數(shù)的調(diào)用,自定義函數(shù)以及文件的存儲與調(diào)用等,使用數(shù)組或數(shù)組元素的指針和指針變量,對結(jié)構(gòu)體及其元素用指針或指針變量來指向。

      算法原理

      (1)通過選擇來實現(xiàn)程序的功能: int main(void){ start=last=NULL;for(;;){

      switch(menu_select())

      {

      case 1:enter();

      break;

      case 2:mldelete(&start,&last);

      break;

      case 3:list();

      break;

      case 4:search();

      break;

      case 5:save();

      break;

      case 6:load();

      break;

      case 7:exit(0);

      } 輸出運行結(jié)果并且給出選擇: int menu_select(void){ char s[80];int c;printf(“******tongxunlu*******n”);printf(“*1.Enter a name

      *n”);printf(“*2.delete a name

      *n”);printf(“*3.list the file

      *n”);printf(“*4.search

      *n”);

      printf(“*5.save the file

      *n”);printf(“*6.load the file

      *n”);printf(“*7.Quit

      *n”);

      C語言程序設(shè)計論文

      printf(“**********************n”);do {

      printf(“nplease enter your choice:”);

      gets(s);

      c=atoi(s);}while(c<0||c>7);return c;}

      (2)輸入個人信息:名字,地址,日期,郵政編碼 void enter(void){ struct address *info;for(;;){

      info=(struct address *)malloc(sizeof(struct address));

      if(!info)

      {

      printf(“nout of memory”);

      return;

      }

      inputs(“please enter name:”,info->name,30);

      if(!info->name[0])break;/*stop entering*/

      inputs(“please enter street:”,info->street,40);

      inputs(“please enter city:”,info->city,20);

      inputs(“please enter state:”,info->state,3);

      inputs(“please enter zip:”,info->zip,10);

      dls_store(info,&start,&last);}/*entry loop*/ } 如果超過給定內(nèi)存,將給出提示,輸入太長: void inputs(char *prompt,char *s,int count){ char p[225];do {

      printf(prompt);

      fgets(p,254,stdin);

      if(strlen(p)>count)

      printf(“nToo Longn”);} while(strlen(p)>count);p[strlen(p)-1]=0;/* remove newline character */ strcpy(s,p);}(3)制作列表,對輸入的個人信息進行存儲與排列 void dls_store(C語言程序設(shè)計論文

      struct address *i,/*new element*/ struct address **start,/*first element in list*/ struct address **last/*last element in list*/){ struct address *old,*p;if(*last==NULL){/*first element in list*/

      i->next=NULL;

      i->prior=NULL;

      *last=i;

      *start=i;

      return;} p=*start;/*start at top of list*/ old=NULL;while(p){

      if(strcmp(p->name,i->name)<0){

      old=p;

      p=p->next;

      }

      else{

      if(p->prior)

      {

      p->prior->next=i;

      i->next=p;

      i->prior=p->prior;

      p->prior=i;

      return;

      }

      i->next=p;/*new first element*/

      i->prior=NULL;

      p->prior=i;

      *start=i;

      return;

      } } old->next=i;/*put on end*/ i->next=NULL;i->prior=old;*last=i;}(4)將通訊錄中的信息,先進行查找,然后刪除個人信息 void mldelete(struct address **start,struct address **last)

      C語言程序設(shè)計論文

      { struct address *info;char s[80];

      inputs(“Enter name:”,s,30);info=find(s);if(info){

      if(*start==info){

      *start=info->next;

      if(*start)(*start)->prior=NULL;

      else *last=NULL;

      }

      else{

      info->prior->next=info->next;

      if(info!=*last)

      info->next->prior=info->prior;

      else

      *last=info->prior;

      }

      free(info);/*return memory to system*/ } }(5)從其內(nèi)存中查找某個名字,并進行輸出,如果沒有就輸出沒有發(fā)現(xiàn)名字 struct address *find(char *name){ struct address *info;info=start;while(info){

      if(!strcmp(name,info->name))return info;

      info = info->next;/* get next address */ } printf(“Name not found.n”);return NULL;/*not found*/ }(6)將通訊錄中所有個人信息分別列出 void list(void){ struct address *info;info=start;while(info){

      display(info);

      info = info->next;/* get next address */

      C語言程序設(shè)計論文

      } printf(“nn”);}(7)分別輸出個人信息

      void display(struct address *info){ printf(“%sn”,info->name);printf(“%sn”,info->street);printf(“%sn”,info->city);printf(“%sn”,info->state);printf(“%sn”,info->zip);printf(“nn”);}(8)根據(jù)其個人信息的存儲地址來查找個人名字信息 void search(void){ char name[40];struct address *info;printf(“Enter name to find:”);gets(name);info = find(name);if(!info)

      printf(“Not Foundn”);else display(info);}(9)保存輸入的個人信息 void save(void){ struct address *info;FILE *fp;fp = fopen(“mlist”,“wb”);if(!fp){

      printf(“Cannot open file.n”);

      exit(1);} printf(“nSaving Filen”);info = start;while(info){

      fwrite(info,sizeof(struct address),1,fp);

      info = info->next;/* get next address */ } fclose(fp);

      C語言程序設(shè)計論文

      }(10)查找并提取已輸入的個人信息 void load(){ struct address *info;FILE *fp;fp=fopen(“mlist”,“rb”);if(!fp){

      printf(“Cannot open file.n”);

      exit(1);} 釋放內(nèi)存空間:

      while(start){

      info=start->next;

      free(info);

      start=info;fclose(fp);}

      C語言程序設(shè)計論文

      算法流程圖

      圖1-1制作列表流程圖

      C語言程序設(shè)計論文

      圖1-2刪除個人信息流程圖

      C語言程序設(shè)計論文

      圖1-3個人信息-名字的查找流程圖

      C語言程序設(shè)計論文

      圖1-4查找到個人信息流程圖

      C語言程序設(shè)計論文

      圖1-5保存?zhèn)€人信息流程圖

      C語言程序設(shè)計論文

      圖1-6提取下載個人信息流程圖

      C語言程序設(shè)計論文

      源程序

      #include“stdio.h” #include“stdlib.h” #include“string.h” struct address{ char name[30];char street[40];char city[20];char state[3];char zip[11];struct address *next;struct address *prior;};struct address *start;struct address *last;struct address *find(char *);

      void enter(void),search(void),save(void);void load(void),list(void);void mldelete(struct address **,struct address **);void dls_store(struct address *i,struct address **start,struct address **last);void inputs(char *,char*,int),display(struct address *);int menu_select(void);

      int main(void){ start=last=NULL;for(;;){

      switch(menu_select())

      {

      case 1:enter();

      break;

      case 2:mldelete(&start,&last);

      break;

      case 3:list();

      break;

      case 4:search();

      break;

      case 5:save();

      break;

      case 6:load();

      break;

      C語言程序設(shè)計論文

      case 7:exit(0);

      } }return 0;}

      int menu_select(void){ char s[80];int c;printf(“******tongxunlu*******n”);printf(“*1.Enter a name

      *n”);printf(“*2.delete a name

      *n”);printf(“*3.list the file

      *n”);printf(“*4.search

      *n”);

      printf(“*5.save the file

      *n”);printf(“*6.load the file

      *n”);printf(“*7.Quit

      *n”);

      printf(“**********************n”);do {

      printf(“nplease enter your choice:”);

      gets(s);

      c=atoi(s);}while(c<0||c>7);return c;}

      /*Enter names and address.*/ void enter(void){ struct address *info;for(;;){

      info=(struct address *)malloc(sizeof(struct address));

      if(!info)

      {

      printf(“nout of memory”);

      return;

      }

      inputs(“please enter name:”,info->name,30);

      if(!info->name[0])break;/*stop entering*/

      inputs(“please enter street:”,info->street,40);

      inputs(“please enter city:”,info->city,20);

      inputs(“please enter state:”,info->state,3);

      inputs(“please enter zip:”,info->zip,10);

      dls_store(info,&start,&last);

      C語言程序設(shè)計論文

      }/*entry loop*/ } /*******************************************/ void inputs(char *prompt,char *s,int count){ char p[225];do {

      printf(prompt);

      fgets(p,254,stdin);

      if(strlen(p)>count)

      printf(“nToo Longn”);} while(strlen(p)>count);p[strlen(p)-1]=0;/* remove newline character */ strcpy(s,p);} /*Create a doubly linked list in sorted order */ void dls_store(struct address *i,/*new element*/ struct address **start,/*first element in list*/ struct address **last/*last element in list*/){ struct address *old,*p;if(*last==NULL){/*first element in list*/

      i->next=NULL;

      i->prior=NULL;

      *last=i;

      *start=i;

      return;} p=*start;/*start at top of list*/ old=NULL;while(p){

      if(strcmp(p->name,i->name)<0){

      old=p;

      p=p->next;

      }

      else{

      if(p->prior)

      {

      p->prior->next=i;

      i->next=p;

      i->prior=p->prior;

      C語言程序設(shè)計論文

      p->prior=i;

      return;

      }

      i->next=p;/*new first element*/

      i->prior=NULL;

      p->prior=i;

      *start=i;

      return;

      } } old->next=i;/*put on end*/ i->next=NULL;i->prior=old;*last=i;} /*Remove an element from the list*/ void mldelete(struct address **start,struct address **last){ struct address *info;char s[80];

      inputs(“Enter name:”,s,30);info=find(s);if(info){

      if(*start==info){

      *start=info->next;

      if(*start)(*start)->prior=NULL;

      else *last=NULL;

      }

      else{

      info->prior->next=info->next;

      if(info!=*last)

      info->next->prior=info->prior;

      else

      *last=info->prior;

      }

      free(info);/*return memory to system*/ } }

      /*Find an address.*/

      struct address *find(char *name){

      C語言程序設(shè)計論文

      struct address *info;info=start;while(info){

      if(!strcmp(name,info->name))return info;

      info = info->next;/* get next address */ } printf(“Name not found.n”);return NULL;/*not found*/ } /* Display the entire list */ void list(void){ struct address *info;info=start;while(info){

      display(info);

      info = info->next;/* get next address */ } printf(“nn”);} /* this function actually prints the fields in each address.*/ void display(struct address *info){ printf(“%sn”,info->name);printf(“%sn”,info->street);printf(“%sn”,info->city);printf(“%sn”,info->state);printf(“%sn”,info->zip);printf(“nn”);} /* Look for a name in the list */ void search(void){ char name[40];struct address *info;printf(“Enter name to find:”);gets(name);info = find(name);if(!info)

      printf(“Not Foundn”);else display(info);}

      C語言程序設(shè)計論文

      /* Save the file to disk */ void save(void){ struct address *info;FILE *fp;fp = fopen(“mlist”,“wb”);if(!fp){

      printf(“Cannot open file.n”);

      exit(1);} printf(“nSaving Filen”);info = start;while(info){

      fwrite(info,sizeof(struct address),1,fp);

      info = info->next;/* get next address */ } fclose(fp);} /*

      Load the address file.*/ void load(){ struct address *info;FILE *fp;fp=fopen(“mlist”,“rb”);if(!fp){

      printf(“Cannot open file.n”);

      exit(1);} /* free any previously allocated memory */ while(start){

      info=start->next;

      free(info);

      start=info;} /*

      reset top and bottom pointers

      */ start=last=NULL;printf(“nLoading Filen”);while(!feof(fp)){

      info=(struct address *)malloc(sizeof(struct address));

      C語言程序設(shè)計論文

      } if(!info){

      printf(“Out of Memory”);

      return;} if(1!=fread(info,sizeof(struct address),1,fp))break;dls_store(info,&start,&last);}

      fclose(fp);運用結(jié)果及分析

      圖1-1 運行結(jié)果并且給出選擇

      圖1-2輸入個人信息

      C語言程序設(shè)計論文

      圖1-3刪除個人信息

      1-4列出個人信息

      C語言程序設(shè)計論文 1-5查找個人信息

      圖1-6保存?zhèn)€人信息

      C語言程序設(shè)計論文

      設(shè)計心得

      通過進行C語言程序設(shè)計,我更加懂得C語言設(shè)計不僅僅需要邏輯思維地緊密,更加需要細(xì)心,通過兩個星期的折騰,總算把課程設(shè)計給完成了,這是一個堅苦而又漫長的過程。讀了那么多年的書,課程設(shè)計可是第一次??粗鴦趧映晒?,很欣慰!

      剛開始,可以說是沒有頭緒,于是就去圖書館找資料,找到了一些關(guān)于畫圖方面的,可是這點小進展遠(yuǎn)遠(yuǎn)不夠,這只是一個小小的開始。下一步是上網(wǎng)查,找到了些與我們題目相似的,那時我很高興,完成了這個程序。

      雖然對著電腦做程序,有點累有點熱,可是當(dāng)看到勞動成果時,真是別有一番滋味在心頭??!世上無難事,只怕有心人,的確如此。

      做完這個課程設(shè)計,我的自信一下子提高了,我也會寫程序了;盡管對于有些人這種程序會很簡單,可對我們C語言初學(xué)者來說,已經(jīng)很不容易了。這次體驗為以后的學(xué)習(xí)計算機的我們增強了信心。享受勞動成果的滋味實在很美妙啊!

      程序設(shè)計過程有如解決一實際問題,從解決實際問題的角度,我們可以這樣來看:首先要了解這個問題的基本要求,即輸入、輸出、完成從輸入到輸出的要求是什么;其次,從問題的要害入手,從前到后的解決問題的每個方面,即從輸入開始入手,著重考慮如何從輸入導(dǎo)出輸出,在這個過程中,可確定所需的變量、數(shù)組、函數(shù),然后確定處理過程--算法??傻米詈蠼Y(jié)論。

      一個多禮拜的掙扎,絞盡腦汁終于帶著麻木的手指和大腦脫出那堆“泥潭”。現(xiàn)在的心情是如魚得水,干澀的眼睛前方是萬里晴空。終于,所有的努力即將化成了一個個鉛字,打印機“滋滋”的聲音仿佛已經(jīng)宛如天籟般悅耳地在耳畔響起。此時此刻,真想把一切拋上天空。高呼:“出來了!我的成果即將出來了!”,心里也在默默的感慨著:“有志者,事竟成,破釜沉舟,百二秦關(guān)終歸楚??嘈娜?,天不負(fù),臥薪嘗膽,三千越甲可吞吳。”

      當(dāng)然這次程序設(shè)計也讓我看到了自己基礎(chǔ)的薄弱。古人有詩云:“路漫漫其修遠(yuǎn)兮,吾將上下而求索”。從今天起我將不斷繼續(xù)求索,學(xué)習(xí)之路也好,人生之路也罷。

      總之我受益匪淺。

      C語言程序設(shè)計論文

      參考文獻

      《C程序設(shè)計》??譚浩強 著??清華大學(xué)出版社?2005.7 《C語言程序設(shè)計》??(美)郝伯特.希爾特 著 ??電子工業(yè)出版社

      第四篇:C語言程序設(shè)計教學(xué)安排

      C語言程序設(shè)計教學(xué)安排

      本課程的任務(wù)是結(jié)合一般數(shù)值計算向?qū)W生介紹計算機程序設(shè)計的基本知識,使學(xué)生掌握C語言的基本內(nèi)容及程序設(shè)計的基本方法與編程技巧,了解進行科學(xué)計算的一般思路,培養(yǎng)學(xué)生應(yīng)用計算機解決和處理實際問題的思維方法與基本能力,為進一步學(xué)習(xí)和應(yīng)用計算機打下基礎(chǔ)。本課程學(xué)時總計32學(xué)時。

      二、課程內(nèi)容、基本要求與學(xué)時分配

      ㈠ C語言的基本概念

      3學(xué)時

      1.了解C語言的特點及發(fā)展

      2.掌握程序的基本結(jié)構(gòu)與書寫格式

      3.掌握頭文件、數(shù)據(jù)說明、函數(shù)的開始和結(jié)束標(biāo)志。

      ㈡ 數(shù)據(jù)類型及其運算

      2學(xué)時

      1.掌握數(shù)據(jù)類型(基本類型、構(gòu)造類型、指針類型、空類型)及其定義方法。

      2.掌握運算符的種類、運算優(yōu)先級、結(jié)合性。

      3.掌握不同類型數(shù)據(jù)間的轉(zhuǎn)換與運算。

      4.掌握表達(dá)式類型(賦值表達(dá)式、算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、條件表達(dá)式、逗號表達(dá)式)和求值規(guī)則。

      ㈢ 基本語句

      2學(xué)時

      1.掌握表達(dá)式語句、空語句、復(fù)合語句。

      2.掌握數(shù)據(jù)的輸入/輸出和輸入/輸出函數(shù)。

      3.掌握go to 語句和語句標(biāo)號的使用。

      ㈣ 選擇結(jié)構(gòu)

      2學(xué)時

      1.掌握用if語句實現(xiàn)選擇結(jié)構(gòu)。

      2.掌握用switch語句實現(xiàn)多分支選擇結(jié)構(gòu)。

      ㈤ 循環(huán)結(jié)構(gòu)

      4學(xué)時

      1.掌握for循環(huán)結(jié)構(gòu)。

      2.掌握while和do while循環(huán)結(jié)構(gòu)。

      3.掌握continue、break、return語句。

      4.掌握循環(huán)的嵌套。

      ㈥ 數(shù)組的定義和引用

      4學(xué)時

      1.掌握一維數(shù)組和多維數(shù)組的定義、初始化和引用。

      2.掌握字符串與字符數(shù)組。

      ㈦函數(shù)

      6學(xué)時

      1.掌握庫函數(shù)的正確調(diào)用。

      2.掌握函數(shù)的定義方法。

      3.掌握函數(shù)的類型和返回值。

      4.掌握形式參數(shù)與實在參數(shù)的區(qū)別,參數(shù)值的傳遞。

      5.掌握函數(shù)的一般調(diào)用和嵌套調(diào)用,學(xué)會遞歸調(diào)用。

      6.掌握局部變量和全局變量。

      7.掌握變量的存儲類型(自動、靜態(tài)、寄存器、外部),變量的作用域和生存期。

      8.了解內(nèi)部函數(shù)和外部函數(shù)。

      ㈧編譯預(yù)處理

      1學(xué)時

      1.掌握編譯預(yù)處理的概念和特點

      2.了解帶參數(shù)的宏定義及其使用,掌握不帶參數(shù)的宏定義及其使用。

      3.掌握“文件包含”的概念和使用。

      ㈨指針

      8學(xué)時

      1.掌握指針的概念及指針的定義。

      2.掌握指針運算。

      3.掌握指向變量、數(shù)組、字符串、函數(shù)的指針變量。

      4.掌握用指針作函數(shù)參數(shù)。

      5.掌握指針數(shù)組和指向指針的指針的概念及其定義方法,了解main函數(shù)的命令行參數(shù)。

      ㈩結(jié)構(gòu)與聯(lián)合 2學(xué)時

      1.掌握結(jié)構(gòu)和聯(lián)合類型數(shù)據(jù)的定義方法。

      2.掌握結(jié)構(gòu)和聯(lián)合類型數(shù)據(jù)的引用方法。3.掌握指向結(jié)構(gòu)體的指針變量。3.了解用typedef 定義類型的方法。

      (十一)文件操作

      2學(xué)時

      1.掌握文件類型指針(file類型指針)。

      2.掌握文件的打開與關(guān)閉(fopen和fclose函數(shù))。

      3.掌握文件的讀與寫(fprintf和fscanf函數(shù))。

      三、說明

      本課程的先修課程為《計算機文化基礎(chǔ)》和《高等數(shù)學(xué)》

      四、課程使用的教材和主要參考書

      使用的教材:《C程序設(shè)計》

      潭浩強 著

      清華大學(xué)出版社

      主要參考書:《C語言程序設(shè)計》 王樹義 錢達(dá)源 編著 大連理工大學(xué)出版社

      第五篇:C語言程序設(shè)計

      1.Problem A: Hello world!Description Xiao_ming有兩個哥哥,大哥叫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 int main(){

      printf(“Hello Da_min,n”);

      printf(“Hello Er_min,n”);

      printf(“Hello Xiao_ming!n”);} 2.Problem B: 求圓的面積和周長 Description 從鍵盤輸入圓的半徑,求圓的面積和周長,圓周率取3.14。

      Input 輸入一個浮點型數(shù)據(jù),有效數(shù)字不會超過十進制的6位。

      Output 輸出為兩行。

      第一行為圓的面積,第二行為圓的周長,格式見sample。

      Sample Input 3

      Sample Output Area: 28.260000 Perimeter: 18.840000

      HINT 了解浮點類型的輸入、輸出和算術(shù)運算符

      Append Code 法一

      #include int main(){ double r,p,s;scanf(“%lf”,&r);p=2*3.14*r;s=3.14*r*r;printf(“Area: %lfn”,s);printf(“Perimeter: %lfn”,p);} 法二

      #include #define pi 3.14 int main(){

      double r;

      scanf(“%d”,&r);

      printf(“Area: %lfn”,pi*r*r);

      printf(“Perimeter: %lfn”,2*pi*r);

      }

      3.Problem C:平均值 Description 求3個數(shù)的平均值。

      Input 輸入只有一行,為3個較小的整數(shù)。

      Output 輸出為這3個整數(shù)的平均值,保留3位小數(shù)。

      Sample Input 1 2 3 Sample Output 2.000

      HINT 注意除法運算對整型數(shù)據(jù)和浮點型數(shù)據(jù)是不一樣的。

      Append Code #include int main(){ int a,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“%.3lf”,(a+b+c)/3.0);}

      4.Problem D: 求字符的值 Description 從鍵盤輸入3個字符(不含雙字節(jié)字符),分別輸出每個字符的十進制值(ASCII碼)、八進制值和十六進制值。

      Input 輸入為3個字符。

      Output 輸出為3行。

      每一行為每個字符(對應(yīng)輸入順序)的十進制、八進制和十六進制值,用空格分隔開。每個輸出的值占3個字符,不足3個字符前面補0。

      Sample Input 0 A

      Sample Output 048 060 030 032 040 020 065 101 041

      HINT 了解字符值的存儲和整型的關(guān)系。

      Append Code #include int main(){ char a,b,c;scanf(“%c%c%c”,&a,&b,&c);printf(“%.3d %.3o %.3xn”,a,a,a);printf(“%.3d %.3o %.3xn”,b,b,b);printf(“%.3d %.3o %.3xn”,c,c,c);}

      5.Problem A: 最簡單的程序 Description 輸出一行“Hello world!”。

      Input 無

      Output Hello world!

      Sample Input Sample Output Hello world!

      HINT Append Code #include int main(){

      printf(“Hello world!”);}

      6.Problem B: 算術(shù)基本運算 Description 計算兩整數(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: 自增自減運算 Description C語言中有自增運算++、自減運算--,并且可以前置和后置。

      編寫一個程序:對輸入的一個整數(shù)a,輸出a++、a--、++a、--a的值。

      Input 一個整數(shù)a,a是很小的整數(shù)。

      Output 輸出為5行,第一行為a的值,后面依次為--a、a--、a++、++a的值。

      5行輸出縱向a要對齊,“:”對齊,“:”前后各一個空格,后面的數(shù)值不用對齊。每行行尾都有回車。

      Sample Input 0

      Sample Output a : 0--a :-1 a--: 0 a++ : 0 ++a : 1

      HINT Append Code #include int main(){ int a,x;scanf(”%dn“,&x);a=x;printf(” a

      : %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ù)和浮點型數(shù)據(jù)的絕對值。

      Input 輸入兩個數(shù),第一個是整數(shù),第二個是浮點數(shù)。

      Output 輸出為兩行,第一行為整數(shù)的絕對值,第二行為浮點數(shù)的絕對值,注意浮點數(shù)的絕對值不輸出無意義的0。

      Sample Input-1 1

      Sample Output 1 1

      HINT 求絕對值可以用標(biāo)準(zhǔn)庫函數(shù)來完成,也可以自己判斷。注意浮點數(shù)的輸出格式。求絕對值的函數(shù)在哪個頭文件?貌似很多人會搞錯,包括很多編書的人!

      Append Code #include //#include int main(){

      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 輸入一個整數(shù),判讀它是奇數(shù)還是偶數(shù)。

      Input 輸入只有一行,為一個100以內(nèi)的正整數(shù)。

      Output 輸出為一行。

      若輸入為偶數(shù)則輸出“even”,奇數(shù)輸出“odd”。Sample Input 30

      Sample Output even

      HINT 用整數(shù)運算可以解決,練習(xí)“?:”表達(dá)式。

      Append Code #include int main(){

      int n;

      scanf(”%d“,&n);

      if(n>=0&&n<=100){

      if(n%2==0)printf(”evenn“);

      else printf(”oddn“);

      }

      return 0;}

      10.Problem B: 簡單的打折計算 Description 商店規(guī)定:消費滿n元,可以打八八折。設(shè)某件商品標(biāo)價m元,輸入購買的件數(shù)x,計算出需要支付的金額(單位:元),精確到分。

      Input 輸入只有一行,三個整數(shù)m、n和x,且0

      Sample Input 95 300 4

      Sample Output 334.40

      HINT 了解浮點型的輸出控制,注意整型和浮點型混合運算過程中的數(shù)據(jù)類型轉(zhuǎn)換。

      Append Code #include int main(){

      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 輸入一個正整數(shù)的年份,判斷是否為閏年。

      Input 輸入只有一行,為一個10000以內(nèi)的正整數(shù)。

      Output 輸出為一行。

      若輸入為閏年偶數(shù)則輸出“Yes”,否則輸出“No”。

      Sample Input 2010

      Sample Output No

      HINT 了解邏輯運算符和關(guān)系運算符。

      Append Code #include int main(){

      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 如果一個三位十進制數(shù)等于其各位數(shù)字的立方和,則稱這個數(shù)為水仙花數(shù)。如:13+53+33=153。

      Input 一個整數(shù)x,100<=x<=999。

      Output x是水仙花數(shù),則輸出“YES”,否則為“NO”。

      Sample Input 153

      Sample Output YES

      HINT Append Code #include int main(){

      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: 三個數(shù)比較大小 Description 從鍵盤上輸入0~100之間的三個數(shù),按從小到大的順序輸出。

      Input 輸入只有一行,為三個整數(shù)。

      Output 按從小到大輸出這三個數(shù)。

      Sample Input 15 10 20

      Sample Output 10 15 20

      HINT 用if語句判斷各種情況可以解決這個問題。

      Append Code #include int main(){

      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個正整數(shù)a、b和c,按照如下規(guī)則求和: 如果這個數(shù)字是偶數(shù),則累加到和中;

      如果這個數(shù)字是奇數(shù),則將大于該數(shù)的最小偶數(shù)累加到和中。

      Input 三個正整數(shù),均在100以內(nèi)。

      Output 一個和。

      Sample Input 2 3 5

      Sample Output 12

      HINT 如果不會使用分支語句,可使用條件運算符判斷到底將哪個數(shù)累積到和中。

      Append Code #include int main(){

      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í),你決定報考我國著名的“285”高校之一的北青大學(xué),經(jīng)過認(rèn)真的復(fù)習(xí),殘酷的考試,終于知曉了自己的考試成績,也知道了北青大學(xué)的錄取分?jǐn)?shù)線,請你編程判斷,自己過線了嗎? Input 輸入有2行,第一行有4個正整數(shù),分別表示三門課程的分?jǐn)?shù)線以及總分分?jǐn)?shù)線。第二行有3個非負(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 如果你不會使用分支語句,同樣可以使用條件運算符實現(xiàn)該程序。

      Append Code #include int main(){

      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 計算a+b,0<=a,b<1000。

      Input 輸入的第一行是一個整數(shù)N,后面有N對整數(shù)a和b,每對a和b占一行,a,b用空格分開。

      Output 每行輸出一個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 main(){

      int n,a,b,i;Scanf(“%d”,&n);For(i=0;i

      17.Problem H: A+B Problem Description 計算a+b,0<=a,b<1000。

      Input 輸入有多對整數(shù)a和b組成,每對a和b占一行,a,b用空格分開。

      Output 每行輸出一個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,所以可以用來判斷輸入是否完成,測試時可以用Ctrl+Z產(chǎn)生EOF。本題解法參看FAQ。Append Code #include int main(){

      int a,b;

      while(scanf(”%d%d“,&a,&b)!=EOF){

      printf(”%dn“,a+b);

      }

      return 0;}

      18.Problem A: 判斷是否是元音字母 Description 輸入一個英文字母,判斷是否是元音字母。元音字母是:a,e,i,o u,A,E,I,O,U

      Input 輸入一個英文字母

      Output 是元音字母,輸出“yes”,否則輸出“no”,行尾沒有回車。

      Sample Input A

      Sample Output yes

      HINT Append Code #include void main(){

      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: 按順序輸出三個數(shù) Description 對于輸入的3個整數(shù),按照從小到大的順序輸出。

      Input 輸入3個int類型內(nèi)的整數(shù),兩兩之間用一個空格隔開。

      Output 按照從小到大的順序輸出上述三個數(shù),兩兩之間用一個空格隔開。

      Sample Input 2 1 3 Sample Output 1 2 3

      HINT Append Code #include void main(){

      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 輸入為一個整數(shù)。

      Output 輸出只有一行,代表判斷結(jié)果。如果輸入的整數(shù)n是一個偶數(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 main(){

      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: 判斷兩個整數(shù)的大小關(guān)系 Description 輸入2個整數(shù)a和b,如果a>b,則輸出1,否則輸出0。

      Input 兩個整數(shù)a和b,均不超過int類型的表示范圍。

      Output 表示a>b的結(jié)果:如果a>b,則輸出1,否則輸出0。

      Sample Input 3 4

      Sample Output 0

      HINT

      Append Code #include int main(){ int a,b;scanf(”%d %d“,&a,&b);if(a>b)

      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 輸入多行,每行一個整數(shù)。

      Output 輸入所對應(yīng)的成績等級。

      Sample Input-1 81 92 35 68 72 100

      Sample Output Error Good Excellent Failing Pass Average Excellent HINT 用switch語句解決這個問題比較方便。

      Append Code #include int main(){

      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 輸入三個整數(shù),依次為k、m、n。

      Output 從小到大輸出符合題意的所有整數(shù),兩數(shù)之間用一個空格分開。

      Sample Input 15 2 3

      Sample Output 2 3 4 8 9 10 14 15

      HINT 難點在于輸出格式的控制:空格在數(shù)的中間,學(xué)會用循環(huán)時邊界情況的特殊處理。

      Append Code #include int main(){ int k,m,n,a,i=1;scanf(”%d %d %d“,&k,&m,&n);if(m

      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 計算a+b和a-b。

      Input 輸入為一對整數(shù)a和b。a,b用空格分開。

      Output 輸出a+b和a-b的計算結(jié)果,各占一行。

      Sample Input 1 2

      Sample Output 3-1

      HINT Append Code #include int main(){ int a,b;scanf(”%d %d“,&a,&b);

      printf(”%dn“,a+b);

      printf(”%dn“,a-b);} 25 Problem C: 它滿足條件嗎? Description 需要判斷給定的一個整數(shù)是否同時滿足如下三個條件: 1.它是一個完全平方數(shù)。2.它是一個偶數(shù)。3.它是一個正數(shù)。

      注:若一個數(shù)能表示成某個自然數(shù)的平方的形式,則稱這個數(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 一個int范圍內(nèi)的整數(shù)。

      Output 如果輸入的數(shù)字滿足條件,則輸出yes,否則輸出no。

      Sample Input 100

      Sample Output yes

      HINT 注意邏輯表達(dá)式判斷三個條件的順序。如果你不會使用分支語句,同樣可以使用條件運算符實現(xiàn)該程序。

      庫函數(shù)sqrt()可以用于求一個數(shù)的平方根。

      Append Code #include #include int main(){ int a;scanf(”%d“,&a);

      if(a==sqrt(a)*sqrt(a)&&a%2==0&&a>0)

      printf(”yes“);

      else

      printf(”no“);}

      26.Problem F: 多路分支 Description 編寫一個完整的程序,運行時向用戶提問”你考試考了多少分?(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 輸入任意一個整數(shù)分?jǐn)?shù)值,顯示等級;再輸入任意一個整數(shù)分?jǐn)?shù)值,顯示等級;....直到測試數(shù)據(jù)較充分,可輸入-1止。

      Output 對任意輸入的分?jǐn)?shù)值,輸出對應(yīng)的等級,直到輸入的數(shù)為-1時才退出運行.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 main(){

      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é)校舉行運動會,如果全體學(xué)生按照3人一隊列隊,則多了1個人;如果按照4人一隊列隊,則多了2個人;如果按照5人一隊排隊,則多了3個人。請問這個學(xué)校有多少學(xué)生?

      Input 一個int類型的正整數(shù)N,是學(xué)生人數(shù)的上界,即:該校學(xué)生數(shù)不超過N。

      Output 所有可能的學(xué)生數(shù),每個數(shù)占一行。

      Sample Input 200

      Sample Output 58 118 178

      HINT Append Code #include #include int main(){

      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ù)各有幾個? Description 輸入若干個整數(shù),求其中正數(shù)、負(fù)數(shù)的個數(shù)。

      Input 輸入分為2行:第一行是一個數(shù)字N>0,表示下面有N個整數(shù)。第2行是N個整數(shù),都是int類型的。

      Output 輸出所輸入的N個整數(shù)的正數(shù)個數(shù)和負(fù)數(shù)個數(shù),并用空格分開2個輸出。Sample Input 10 2 3 4 5-1-2-3-4-5

      Sample Output 5 5

      HINT 貌似還有一種叫做0的數(shù)。

      Append Code #include int main(){

      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 計算a+b,0<=a,b<1000。

      Input 輸入有多對整數(shù)a和b組成,每對a和b占一行,a,b用空格分開。當(dāng)測試樣為0 0時表示輸入結(jié)束,0 0不參與運算。

      Output 每行輸出一個a+b的值,順序與輸入對應(yīng)。

      Sample Input 1 2 10 20 0 0

      Sample Output 3 30

      HINT 練習(xí)break的使用。

      Append Code #include int main(){ int a,b;while(scanf(”%d %d“,&a,&b)!=EOF)

      {

      if(a!=0||b!=0)

      }

      printf(”%dn“,a+b);

      else

      break;

      return 0;} 30 Problem B: A+B Problem(IV): Input/Output

      Practice Description 計算a+b,0<=a,b<1000。

      Input 輸入有多對整數(shù)a和b組成,每對a和b占一行,a,b用空格分開。

      Output 每行輸出一個a+b的值,順序與輸入對應(yīng)。每個格式樣例之間用一個空行分隔開。

      Sample Input 1 2 10 20 15 35

      Sample Output 3 30 50

      HINT 由于輸出的和比空行多一個,所以全部計算放在一個循環(huán)里是不行的,必須要特殊處理開頭或者結(jié)尾。

      Append Code #include int main(){ int a,b,n=0;while(scanf(”%d %d“,&a,&b)!=EOF){

      n++;

      if(n==1)

      printf(”%dn“,a+b);

      else

      printf(”n%dn“,a+b);

      }

      return 0;}

      Problem C: n個數(shù)的最大值和最小值 Description 找出n個數(shù)中最大的數(shù)和最小的數(shù),并將它們的值輸出出來。

      Input 輸入為n+1個整數(shù),都在int類型范圍內(nèi)。這些數(shù)可能用若干空格或者換行符分隔開。輸入的第1個數(shù)為n,表示后續(xù)有n個數(shù)輸入。從輸入的第2個數(shù)開始,求出直到第n+1個數(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個數(shù)的過程。

      Append Code #include int main(){

      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)的素數(shù) Description 素數(shù)是只能被1和自身整除的正整數(shù),根據(jù)數(shù)學(xué)定義1不是素數(shù)。素數(shù)也叫質(zhì)數(shù)。

      Input 輸入為兩個整數(shù)m和n,滿足0<=m<=n<=100。

      Output 從大到小輸出m~n之間的所有素數(shù),一個素數(shù)一行。如果m~n之間沒有素數(shù),則不輸出任何數(shù)。

      輸出的所有數(shù)在兩行“=====”之間。

      Sample Input 2 12

      Sample Output ===== 11 7 5 3 2 =====

      HINT 利用素數(shù)的數(shù)學(xué)規(guī)律可以很容易的解出此題,題目給出的數(shù)據(jù)范圍是關(guān)鍵。

      Append Code #include #include int main(){ int m,n,i,j,k,t;scanf(”%d %d“,&m,&n);printf(”=====n“);for(i=n;i>=m;i--){

      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 給出三個整數(shù),代表三條邊的長度,判斷這三條邊的長度是否能構(gòu)成一個三角形?

      Input 第一行是n(1<=n<=100),表示有n組測試數(shù)據(jù)

      接下來有n行,每一行包含三個整數(shù),表示三個邊長(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 int main(){ int a,b,c,n,i;scanf(”%d“,&n);for(i=0;i

      {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 輸入的第一個數(shù)為n(n<=1000),后接n個整數(shù)。

      Output 按從小到大的順序輸出這些整數(shù),每兩個整數(shù)之間用一個空格分隔開,最后一個整數(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ù)都存儲下來。因為只有最多1000個數(shù),1秒的時間足夠任何排序算法運行處結(jié)果來。

      Append Code #include int main(){

      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一起去購物。假定她們逛的街是一條直線,而商鋪是這條直線上的一些點。她們將車停在該直線最左端的店鋪處,然后從左向右開始逛每一個店鋪,然后從最右邊的店鋪再返回到停車處。你的任務(wù)是計算她們走了多少路。

      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 main(){

      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 輸入為多行。第一行是一個整數(shù)N>0,表示后面有N個測試用例。后面有N行,每行包含2個整數(shù),分別是min和max。

      Output 輸出為N行,每個測試用例的計算結(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 main(){

      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 按字母順序輸出兩個字母st和ed之間的所有字母,但不包括st和ed。不輸出逆序。

      Input 兩個字母st和ed,都是大寫字母,用一個空格分開。

      Output 在一行內(nèi)按順序輸出st和ed之間的所有字母,但不包括st和ed。例如:

      輸入為A和E,則輸出為BCD;

      輸入為A和B,則什么字母也不輸出,只有一個空行; 輸入為E和A,也是什么字母也不輸出,只有一個空行。最后要輸出一行(行尾不回車): ***END***

      Sample Input A C

      Sample Output B

      ***END***

      HINT Append Code #include int main(){

      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é)愛好者,他們在聊天時經(jīng)常使用一些暗語。他們使用的一種最簡單的暗語是:將要說的每句話里面的英文字母變成這個字母之后的某個字母?,F(xiàn)在要求你寫一個程序,將一個字母變成它之后的某個字母。

      Input 輸入有2個:一個大寫字母c和一個正整數(shù)d(0

      Output 輸出字母c之后的第d個字母。大小寫與c一致。如果c之后的某個字母已經(jīng)超出'Z',則再從字母'A'開始計數(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 int main(){

      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: 登錄密碼驗證 Description 編寫一個程序,模擬用戶登錄系統(tǒng)的密碼驗證過程。系統(tǒng)提供給用戶的密碼長度最長為20個字符,若密碼輸入錯誤可以再次輸入。但為了保證用戶密碼安全,若連續(xù)輸入密碼錯誤超過5次就會鎖定賬號一段時間。

      Input 輸入為若干個串,至EOF結(jié)束。輸入的第一個串是用戶的正確密碼,后面的串為模擬用戶登錄時的輸入的密碼。

      Output 每次輸入錯誤的密碼,輸出一個“Wrong!”,若輸入的密碼為正確的,輸出一個“Welcome!”,并結(jié)束密碼測試。若前5次輸入的密碼都是錯誤的,則后面的輸入中不管是否有正確的密碼都輸出“Out of limited!”。

      Sample Input abcdefg

      123456 kkkkkkkk abcdefg

      Sample Output Wrong!Wrong!Welcome!

      HINT 輸入可以用scanf(”%s“)處理,密碼比較用字符串的比較可以完成。

      Append Code #include #include int main(){

      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è)一對兔子每月能生一對小兔(一雌一雄),每對小兔出生后的下一個月是沒有繁殖能力的,至出生后的第三個月開始又可以每月生一隊小兔,問從一對剛出生的小兔開始,經(jīng)過若干個月后一共有多少兔子(假設(shè)在此過程中兔子沒有死亡)?

      這個問題是意大利數(shù)學(xué)家菲波那契(Fibonacci)在他1202年出版的《算盤全書》中提出來的,從第一對剛出生的小兔開始每月的兔子數(shù)被乘坐菲波那契序列。

      Input 輸入的第一個數(shù)為n,接下來有n個數(shù)字。每個數(shù)字為一個月份m(m<=45)。

      Output 輸出為n行,每行為第m個月后的兔子總數(shù)。

      下載C語言程序設(shè)計教學(xué)探究論文word格式文檔
      下載C語言程序設(shè)計教學(xué)探究論文.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        C 語言程序設(shè)計

        《C 語言程序設(shè)計》主要在計算機軟件、計算機網(wǎng)絡(luò)、計算機應(yīng)用、通信技術(shù)、智能電子、電子信息工程、多媒體以及核工程與核技術(shù)等專業(yè)中開設(shè),是電子信息類、機械類等工科專業(yè)......

        C語言程序設(shè)計教學(xué)研究論文[共5篇]

        1以問題為導(dǎo)向的《C語言程序設(shè)計》的教學(xué)設(shè)計(一《)C語言程序設(shè)計》的教學(xué)目標(biāo)社會對于人才的需要,并不是要求他們只要學(xué)會理論知識就可以,各個單位對人才的要求更看重于他們的......

        C語言程序設(shè)計課程教學(xué)設(shè)計

        C語言程序設(shè)計課程教學(xué)設(shè)計 蘇小紅 一 課程內(nèi)容體系 : 基本描述 課程名稱: C 語言程序設(shè)計 英文譯名 : C PROGRAMMING LANGUAGES 總 學(xué) 時: 50 ; 講課學(xué)時: 30 ; 實驗學(xué)時 : 0......

        《C語言程序設(shè)計》課程教學(xué)設(shè)計

        《C語言程序設(shè)計》課程教學(xué)設(shè)計 理學(xué)院電子科學(xué)系計算機基礎(chǔ)教研室 趙永梅 《C語言程序設(shè)計》是大學(xué)計算機基礎(chǔ)教學(xué)系列中的核心課程之一,是計算機及信息類專業(yè)本科生必修的......

        算法與程序設(shè)計教學(xué)探究(精選5篇)

        算法與程序設(shè)計教學(xué)探究 【摘要】:《算法與程序設(shè)計》是普通高中信息技術(shù)課程的選修模塊,也是高中信息技術(shù)教學(xué)的重點和難點,其教學(xué)內(nèi)容相對枯燥,因此教學(xué)難度較大。如何在教學(xué)......

        C語言程序設(shè)計心得

        C語言教學(xué)心得交流 通過本次教師發(fā)展在線的C語程培訓(xùn)中,我受益匪淺,幾位教授的精彩演講,讓我找到了自己的不足和日后教學(xué)中的改革方向和內(nèi)容。同時,也讓我感覺到了,有今天各位教......

        C語言程序設(shè)計題

        【第1題】題目:請編寫函數(shù)fun,對長度為7的字符串,除首、尾字符外,將其余5個字符按將序排列。例如,雨來的字符串為CEAedca,排序后輸出為CedcEAa。 Int fun(char *s,int num) { Int......

        C語言程序設(shè)計題庫

        鄭州大學(xué)現(xiàn)代遠(yuǎn)程教育 《C語言程序設(shè)計》課程 學(xué)習(xí)指導(dǎo)書 柳宏川 編 第1章緒論 (一)本章學(xué)習(xí)目標(biāo) 掌握結(jié)構(gòu)化程序設(shè)計的思想,結(jié)構(gòu)化流程圖描述,算法設(shè)計基礎(chǔ)和良好程序設(shè)計風(fēng)......