欧美色欧美亚洲高清在线观看,国产特黄特色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è)計(jì)學(xué)習(xí)探討

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

      第一篇:C語言程序設(shè)計(jì)學(xué)習(xí)探討

      C語言程序設(shè)計(jì)學(xué)習(xí)探討

      羅××

      (湖南理工學(xué)院物電學(xué)院電子09-2BF班,學(xué)號(hào)14092500×××,序號(hào)003,湖南 岳陽 414000)

      摘要:本文對(duì)c語言的難點(diǎn)、學(xué)習(xí)方法等方面作了簡要的介紹,并談到了一些個(gè)人的學(xué)習(xí)心得,僅供參考。

      關(guān)鍵字:C語言;程序結(jié)構(gòu);指針;心得體會(huì)

      A Study of the Learning of C Language Program Design

      Luo × ×

      (Hunan Institute of Science and Technology, school of Physics and Electronics, Yueyang,Hunan, China 414000)

      Abstract: In this paper,C language's difficulties, learning methods are briefly introduced

      and describes some of the personal learning experience, for reference only.Key words: C language;program structure;pointer;feelings and experience

      C語言是在國內(nèi)外廣泛使用的一種計(jì)算機(jī)語言,它具有功能豐富、表達(dá)能力強(qiáng)、使用靈活方便、應(yīng)用面廣、目標(biāo)程序效率高、可移植性高等特點(diǎn),但由于c語言牽涉的概念比較復(fù)雜,規(guī)則繁多,使用靈活,容易出錯(cuò),不少初學(xué)者感到困難。在此

      本人談?wù)勛约旱捏w會(huì)和見解。1我的C語言基礎(chǔ)分析

      通過上學(xué)期所開設(shè)的《c語言程序設(shè)計(jì)》課程的學(xué)習(xí),我對(duì)c語言有了初步的認(rèn)

      識(shí)和理解,對(duì)數(shù)據(jù)的結(jié)構(gòu)和存儲(chǔ)方式、程序設(shè)計(jì)的語法算法以及程序的調(diào)試都具備了一定的理論基礎(chǔ)。通過上機(jī)親自編寫和調(diào)試小程序,掌握編程的常見方法和步驟,我的實(shí)踐能力也得到了不少的提高。但總的來說,我的基礎(chǔ)還是比較薄弱的,我希望通過下一階段的學(xué)習(xí)得到更大的提高。

      2C語言的學(xué)習(xí)難點(diǎn)

      就個(gè)人而言,我覺得c語言學(xué)習(xí)的難點(diǎn)在于邏輯算法和結(jié)構(gòu)控制。我自己在編

      程的時(shí)候常常是知道如何用數(shù)學(xué)方式表達(dá)出來,但要轉(zhuǎn)化成程序設(shè)計(jì)語言就比較困難,其一是因?yàn)楸磉_(dá)式的語法規(guī)則繁多運(yùn)用不如自然語言的語法得心應(yīng)手導(dǎo)致出現(xiàn)很多錯(cuò)誤,其二是因?yàn)閷?duì)邏輯思維的要求較高,要實(shí)現(xiàn)一個(gè)程序功能,其流程控制顯得比較難,一個(gè)小小的步驟不能實(shí)現(xiàn)就會(huì)使整個(gè)程序編寫寸步難行。所以多做編程練習(xí)顯得尤其重要,這也是真正提高編程水平的最根本的方法。

      3指針的學(xué)習(xí)心得體會(huì)

      指針是c語言的一個(gè)特色,也是c語言學(xué)習(xí)中最難掌握的部分,一是因?yàn)樗某橄笮?,二是因?yàn)樗撵`活性。通過指針的運(yùn)用可以實(shí)現(xiàn)用其他語句所不能實(shí)現(xiàn)的功能,它也可以使程序變得簡潔、緊湊、高效。指針既是地址,它牽涉到數(shù)據(jù)的存

      儲(chǔ)和訪問方式,這往往是比較隱晦的,若還和數(shù)組及函數(shù)等結(jié)合更讓人費(fèi)解,比如

      說如何理解“指向指針的指針”。指針變量的靈活運(yùn)用也是個(gè)比較難掌握的的技能,我在使用它的時(shí)候通常都畫出它在內(nèi)存中的示意圖,以便能清晰看到它的運(yùn)算和引

      用過程,這對(duì)加強(qiáng)初學(xué)者對(duì)指針的運(yùn)作機(jī)制的理解是很有幫助的。

      4對(duì)教師教學(xué)的建議

      梅老師授課很細(xì)致認(rèn)真,對(duì)知識(shí)點(diǎn)的細(xì)節(jié)問題尤其講得很透徹,使我們對(duì)c語

      言的理論知識(shí)的全面掌握很有幫助。但我們最缺少的是上機(jī)實(shí)踐,以前在上機(jī)課上,我們遇到的困難和問題往往不能立即得到老師的指導(dǎo),課后往往就不會(huì)再去仔細(xì)鉆

      研它們,這使得我們的問題累積得越來越多,所以希望老師能把理論和實(shí)踐很好的結(jié)合起來,才能高效迅速提高我們的編程水平。

      5總結(jié)本學(xué)期C語言學(xué)習(xí)的收獲

      本學(xué)期通過仔細(xì)聽了梅老師的每一節(jié)課,首先在c語言理論學(xué)習(xí)上又更進(jìn)了一

      層樓,以前很模糊的概念、不太重視的細(xì)節(jié)問題和雜亂的知識(shí)體系現(xiàn)在都很清晰明

      了了,其次對(duì)程序設(shè)計(jì)語言的結(jié)構(gòu)和特點(diǎn)有了更好的理性認(rèn)識(shí),至少不會(huì)再犯一些

      低級(jí)的語法錯(cuò)誤。最重要的是學(xué)到了程序設(shè)計(jì)的思想以及思維方式,這對(duì)于我們的學(xué)習(xí)、工作、生活各個(gè)方面都是有幫助的,使得我們?cè)谔幚砥渌聞?wù)時(shí)也能有個(gè)清

      晰的邏輯思維和程序化的處理方法。

      參考文獻(xiàn)

      [1] 譚浩強(qiáng)著.C程序設(shè)計(jì)(第三版).北京:清華大學(xué)出版社,2005

      [2] 李麗娟,馬淑萍主編.C語言程序設(shè)計(jì)(第二版).北京:中國鐵道出版社,2009

      作者簡介:羅××(1991-),男,湖南衡陽人,湖南理工學(xué)院物電學(xué)院本科學(xué)生,主要研究方向

      為電子技術(shù)。

      第二篇:《語言程序設(shè)計(jì)》學(xué)習(xí)心得自主學(xué)習(xí)報(bào)告

      自主學(xué)習(xí)報(bào)告書

      題 目:學(xué)習(xí)匯編語言程序設(shè)計(jì)報(bào)告 學(xué)習(xí)課程: 《匯編語言程序設(shè)計(jì)》 姓 名: 專 業(yè): 學(xué) 號(hào):

      福建工程學(xué)院國脈信息學(xué)院教務(wù)處 制

      二○一二年六月

      學(xué)習(xí)匯編語言程序設(shè)計(jì)報(bào)告書

      由于實(shí)際工作中對(duì)匯編語言程序設(shè)計(jì)應(yīng)用較多,在業(yè)余時(shí)間我自主學(xué)習(xí)了北京大學(xué)出版社出版的《匯編語言程序設(shè)計(jì)》一書。這一本書介紹了80x86匯編語言程序設(shè)計(jì)的方法和技術(shù),共分為兩個(gè)部分:第一部分介紹80x86cpu的編程結(jié)構(gòu),匯編語言程序的格式和偽指令,80x86cpu的尋址方式和指令系統(tǒng);第二部分深入討論分支程序、循環(huán)程序、子程序基本程序設(shè)計(jì)方法,以及以中斷為主的i/o程序設(shè)計(jì),其中包括宏指令、多模塊連接技術(shù)、匯編語言與高級(jí)語言的混合編程、dos和bios提供的常用中斷調(diào)用,以及文件系統(tǒng)等內(nèi)容。

      通過本書,我深入的掌握了匯編語言的編程方法、思路和技巧,并對(duì)計(jì)算機(jī)的底層編程有一定認(rèn)識(shí);還對(duì)計(jì)算機(jī)底層運(yùn)行程序的機(jī)制及計(jì)算機(jī)的工作原理有了深入的了解。

      在學(xué)匯編的過程中,最重要的就是要掌握匯編語言中的指令的一些基本用法。當(dāng)然要能夠真正的了解其中的內(nèi)涵,這樣在實(shí)際的編程中也能夠像運(yùn)用高級(jí)語言一樣靈活的變通。匯編語言作為一種低級(jí)程序設(shè)計(jì)語言,既然是低級(jí)所以應(yīng)該是最底層的,與計(jì)算機(jī)內(nèi)部的結(jié)構(gòu)聯(lián)系應(yīng)該聯(lián)系很密切,而且我在學(xué)習(xí)中也深刻的了解到了這一點(diǎn)。比如說后來學(xué)到的寄存器、中斷、還要各種尋址方式以及進(jìn)棧出棧,好多的就是設(shè)計(jì)到計(jì)算機(jī)硬件。前面幾章都是對(duì)計(jì)算機(jī)內(nèi)部結(jié)構(gòu)和一些常用的指令以及尋址方式的尋址方式。到后面學(xué)到子程序以及宏的作用才真正發(fā)現(xiàn)到其實(shí)跟高級(jí)語言差別不大。以C語言為例,C語言也是由一個(gè)一個(gè)的函數(shù)組成的。沒想到想?yún)R編這樣的低級(jí)語言也可以這樣。在匯編語言的子程序和宏中,我個(gè)人更感覺宏的運(yùn)用更像我們高級(jí)語言的子函數(shù),通過定義好的宏,我們?cè)诤竺嬷苯诱{(diào)用就可以了。尤其是宏帶參數(shù)的宏跟C語言中帶參數(shù)的函數(shù)真的很像,根據(jù)參數(shù)的不同調(diào)用宏就能得到不同的結(jié)果。而匯編中的子程序沒有這個(gè)傳遞參數(shù)這個(gè)功能。在調(diào)用子程序的時(shí)候要注意各寄存器中的內(nèi)容。子程序是在程序執(zhí)行期間由主程序調(diào)用的,它只占有它自身大小的一個(gè)空間,他不僅是源程序級(jí)別 簡化,形成的目標(biāo)代碼較短;而宏調(diào)用則是在匯編期間展開的,每調(diào)用依次進(jìn)把宏定義體展開一次,它是源程序級(jí)的簡化。因而它占有的存儲(chǔ)空間與調(diào)用次數(shù)有關(guān),調(diào)用次數(shù)越多則占有的存儲(chǔ)空間越大。如果宏調(diào)用次數(shù)較多的話,則其空間上的開銷也是應(yīng)該考慮的因素

      匯編程序給人感覺最煩的就是好多程序的結(jié)果不能直接通過運(yùn)行EXE文件顯示出來,而更多的是經(jīng)過DEBUG單步調(diào)試才能看到其內(nèi)在變化,看是否正確。匯編程序不像其他的高級(jí)語言一樣需要編譯器,而是直接的就能在記事本上編寫,然后進(jìn)行匯編和連接就可以了。學(xué)習(xí)匯編調(diào)試,關(guān)鍵就是要掌握DEBUG的運(yùn)用。匯編程序把匯編語言翻譯成機(jī)器語言的過程稱為匯編。是一種功能很強(qiáng)的程序設(shè)計(jì)語言,也是利用計(jì)算機(jī)所有硬件特性并能直接控制硬件的語言。比機(jī)器語言易于讀寫、調(diào)試和修改,同時(shí)具有機(jī)器語言全部優(yōu)點(diǎn)。但在編寫復(fù)雜程序時(shí),相對(duì)高級(jí)語言代碼量較大,而且匯編語言依賴于具體的處理器體系結(jié)構(gòu),不能通用,因此不能直接在不同處理器體系結(jié)構(gòu)之間移植。相比較以前學(xué)過的高級(jí)語言如C、C++等,電腦等于在遷就人的思維方式,但學(xué)匯編,人卻必須要去遷就電腦的思維方式,要設(shè)身處地地用電腦的角度去思考問題,這就是我們學(xué)習(xí)匯編語言時(shí)遇到的最大的障礙。

      一開始,我對(duì)PC的尋址方式和很不理解。這方面的知識(shí)是很抽象的,需要比較強(qiáng)的空間想象能力。尤其是我們?cè)谳斎胱址畷r(shí),那這些字符是如何進(jìn)行排列的呢。對(duì)于這個(gè)問題,我相信很多人也和我一樣很難想象。匯編語言的尋址方式有直接尋址,寄存器尋址,基址變址尋址,相對(duì)基址變址尋址等等,掌握這些都是編寫匯編程序很重要的環(huán)節(jié)。在編寫匯編程序時(shí),應(yīng)該注意特別容易出現(xiàn)的錯(cuò)誤,例如在編寫數(shù)據(jù)傳送指令時(shí),目的操作數(shù)和源操作數(shù)的類型一定要匹配,CS不能作為目的操作數(shù),offset后只能跟簡單地址符號(hào)等等。

      學(xué)習(xí)完這本書后,我也對(duì)之前的高級(jí)語言中的一些知識(shí)有了更新的認(rèn)識(shí),能夠讓我們更好的理解高級(jí)語言,尤其是高級(jí)語言中的C語言,匯編語言對(duì)于內(nèi)存的操作都是基于內(nèi)存地址的,而C語言中最令人頭疼的指針概念,說白了就是內(nèi)存的地址指針的學(xué)習(xí)和應(yīng)用中最頭疼的就是在指針這個(gè)抽象的概念和實(shí)際的內(nèi)存單元之間建立思維映射,而這些恰恰是我們?cè)趨R編語言學(xué)習(xí)中頻繁做的一件平常事另外,對(duì)于C語言中的數(shù)據(jù)類型形參實(shí)參函數(shù)調(diào)用全局變量局部變量等概念及操作,我們都可以用匯編語言中的一些操作相關(guān)聯(lián),把這些抽象的概念和過程,通過匯編語言形成一個(gè)具體的映像,深度剖析,這樣我們才能真正的學(xué)會(huì)學(xué)好C語言計(jì)算機(jī)科學(xué)的各個(gè)方面是一個(gè)統(tǒng)一的整體,只有多方面穿插,交互才能更好的搭建計(jì)算機(jī)知識(shí)體系。我認(rèn)為匯編語言本身還是一門很重要的應(yīng)用技術(shù)。首先由于匯編的操作由于跟硬件緊密相關(guān),所以,很多硬件設(shè)施的嵌入式編程使用的都是使用的匯編語言,因?yàn)閰R編語言更直接有效率?,F(xiàn)在的數(shù)碼產(chǎn)品很多,而這些數(shù)碼產(chǎn)品賴以生存的芯片,主板等,都包含了嵌入式程序,而這些程序中,匯編語言的使用是相當(dāng)重要的。

      通過一個(gè)月多的自主學(xué)習(xí),我常常上網(wǎng)搜索資料輔助理解,遇到難以理解的問題時(shí)也學(xué)會(huì)自己解決,我想這不僅是知識(shí)層面上的提升,更是自己在學(xué)習(xí)能力上的提升。這樣的學(xué)習(xí)能力將非常有助于我今后的個(gè)人能力提高,我會(huì)把這種自主學(xué)習(xí)培養(yǎng)成為習(xí)慣,持之以恒下去。

      第三篇:《語言程序設(shè)計(jì)》學(xué)習(xí)總結(jié)與心得

      《匯編語言程序設(shè)計(jì)》學(xué)習(xí)總結(jié)與心得

      其實(shí)說實(shí)話在學(xué)這門課之前自己對(duì)匯編語言一點(diǎn)都不了解,只知道它也是一種語言,而且是一門很少用的語言,可能很多人都是這么想的,或許在學(xué)這門課之前不少同學(xué)也有和我當(dāng)初一樣的思想,大概學(xué)學(xué)就好,反正以后很少能用到,畢竟現(xiàn)在高級(jí)語言這么發(fā)達(dá),而且運(yùn)用起來靈活易懂,像匯編這種低級(jí)語言又難又不易學(xué)?;蛟S老師是知道我們之前有這種想法,所以第一節(jié)課就跟我們講解了一下了匯編語言在當(dāng)今這種高速發(fā)展的社會(huì)的作用和地位,讓我們能夠正確的認(rèn)識(shí)匯編語言的精華,正確對(duì)待這么課。而且還在課堂了百度了匯編語言的招聘信息,或許這才是使我們正確對(duì)待匯編的最直接的原因,關(guān)系到我們以后的出路,或許我們學(xué)好了一門匯編,以后出去找工作的機(jī)會(huì)不就更廣了嗎?正是在這種動(dòng)力的驅(qū)使下我才對(duì)匯編語言有了一個(gè)新的認(rèn)識(shí),而且決定要把它學(xué)好。

      在后來的學(xué)習(xí)中我發(fā)現(xiàn)其實(shí)匯編不是很難學(xué),其實(shí)學(xué)匯編就像學(xué)其他的高級(jí)語言一樣,高級(jí)語言要求對(duì)語言非常了解。在學(xué)匯編的過程中,我們最重要的就是要掌握匯編語言中的指令的一些基本用法。當(dāng)然要能夠真正的了解其中的內(nèi)涵,這樣我們?cè)趯?shí)際的編程中也能夠像運(yùn)用高級(jí)語言一樣靈活的變通。匯編語言作為一種低級(jí)程序設(shè)計(jì)語言,既然是低級(jí)所以應(yīng)該是最底層的,與我們計(jì)算機(jī)內(nèi)部的結(jié)構(gòu)聯(lián)系應(yīng)該聯(lián)系很密切,而且在我們學(xué)習(xí)中也深刻的了解到了這一點(diǎn)。比如說后來學(xué)到的寄存器、中斷、還要各種尋址方式以及進(jìn)棧出棧,好多的就是設(shè)計(jì)到計(jì)算機(jī)硬件。前面幾章都是對(duì)計(jì)算機(jī)內(nèi)部結(jié)構(gòu)和一些常用的指令以及尋址方式的尋址方式。到后面學(xué)到子程序以及宏的作用才真正發(fā)現(xiàn)到其實(shí)跟高級(jí)語言差別不大。以C語言為例,C語言不也是由一個(gè)一個(gè)的函數(shù)組成的嗎?沒想到想?yún)R編這樣的低級(jí)語言也可以這樣。在匯編語言的子程序和宏中,我個(gè)人更感覺宏的運(yùn)用更像我們高級(jí)語言的子函數(shù),通過定義好的宏,我們?cè)诤竺嬷苯诱{(diào)用就可以了。尤其是宏帶參數(shù)的宏跟C語言中帶參數(shù)的函數(shù)真的很像,根據(jù)參數(shù)的不同調(diào)用宏就能得到不同的結(jié)果。而匯編中的子程序沒有這個(gè)傳遞參數(shù)這個(gè)功能。在調(diào)用子程序的時(shí)候要注意各寄存器中的內(nèi)容。子程序是在程序執(zhí)行期間由主程序調(diào)用的,它只占有它自身大小的一個(gè)空間,他不僅是源程序級(jí)別 簡化,形成的目標(biāo)代碼較短;而宏調(diào)用則是在匯編期間展開的,每調(diào)用依次進(jìn)把宏定義體展開一次,它是源程序級(jí)的簡化。因而它占有的存儲(chǔ)空間與調(diào)用次數(shù)有關(guān),調(diào)用次數(shù)越多則占有的存儲(chǔ)空間越大。如果宏調(diào)用次數(shù)較多的話,則其空間上的開銷也是應(yīng)該考慮的因素

      匯編程序給人感覺最煩的就是好多程序的結(jié)果不能直接通過運(yùn)行EXE文件顯示出來,而更多的是經(jīng)過DEBUG單步調(diào)試才能看到其內(nèi)在變化,看是否正確。在初次接觸匯編的幾個(gè)匯編工具時(shí),有一種神奇的感覺,因?yàn)閰R編程序不像其他的高級(jí)語言一樣需要編譯器,而是直接的就能在記事本上編寫,然后進(jìn)行匯編和

      連接就可以了。學(xué)習(xí)匯編調(diào)試,關(guān)鍵就是要掌握DEBUG的運(yùn)用。我們?cè)趯?shí)際的調(diào)試中,最常用的幾個(gè)命令有:D:顯示內(nèi)存單元的內(nèi)容。T:單步執(zhí)行。G:連續(xù)單步執(zhí)行。G:連續(xù)單步執(zhí)行。我們編程也只用過這幾個(gè)。說到這個(gè)DUBUG我就不得不說我之前有一次的經(jīng)歷了。我在最后一次的上級(jí)實(shí)驗(yàn)的編程中我用到的是AX這種寄存器,我按照我自己的程序認(rèn)真走了好幾遍,找不到一點(diǎn)錯(cuò)誤,但程序運(yùn)行就是不對(duì),我為此郁悶了好久。后來只有一步一步的單步調(diào)試。由于是最后一個(gè)綜合實(shí)驗(yàn),實(shí)驗(yàn)比較長,我就一直盯著AX內(nèi)容的變化,經(jīng)過我的苦苦等候才找到了錯(cuò)誤,就是在DOS功能運(yùn)用的時(shí)候出現(xiàn)了錯(cuò)誤。也就是執(zhí)行下面這條指令Mov ah 02h,int 21h,其實(shí)這兩條指令中里面還包含好多的微指令,不自己親自調(diào)試一下根本就發(fā)現(xiàn)不了問題。正是因?yàn)檫@些微指令對(duì)AX寄存器的影響所以才導(dǎo)致了我的錯(cuò)誤。于是我就感覺學(xué)好匯編步進(jìn)要把指令學(xué)好,還要把DEBUG學(xué)好,這樣才能少走好多彎路。

      學(xué)完匯編這門課我也對(duì)之前的高級(jí)語言中的一些知識(shí)有了更新的認(rèn)識(shí),能夠讓我們更好的理解高級(jí)語言,尤其是高級(jí)語言中的C語言,匯編語言對(duì)于內(nèi)存的操作都是基于內(nèi)存地址的,而C語言中最令人頭疼的指針概念,說白了就是內(nèi)存的地址指針的學(xué)習(xí)和應(yīng)用中最頭疼的就是在指針這個(gè)抽象的概念和實(shí)際的內(nèi)存單元之間建立思維映射,而這些恰恰是我們?cè)趨R編語言學(xué)習(xí)中頻繁做的一件平常事另外,對(duì)于C語言中的數(shù)據(jù)類型形參實(shí)參函數(shù)調(diào)用全局變量局部變量等概念及操作,我們都可以用匯編語言中的一些操作相關(guān)聯(lián),把這些抽象的概念和過程,通過匯編語言形成一個(gè)具體的映像,深度剖析,這樣我們才能真正的學(xué)會(huì)學(xué)好C語言計(jì)算機(jī)科學(xué)的各個(gè)方面是一個(gè)統(tǒng)一的整體,只有多方面穿插,交互才能更好的搭建計(jì)算機(jī)知識(shí)體系,匯編語言本身還是一門很重要的應(yīng)用技術(shù)。首先由于匯編的操作由于跟硬件緊密相關(guān),所以,很多硬件設(shè)施的嵌入式編程使用的都是使用的匯編語言,因?yàn)閰R編語言更直接,更有效率!我們現(xiàn)在的數(shù)碼產(chǎn)品很多,而這些數(shù)碼產(chǎn)品賴以生存的芯片,主板等,都包含了嵌入式程序,而這些程序中,匯編語言的使用是相當(dāng)重要的!我想如果我們以后想從事嵌入式這方面的話匯編語言是必備的一種本領(lǐng)。而且我也正是想從事這一方面。我想如果想學(xué)好計(jì)算機(jī)編程技能,如果想做一名合格的編程人員,如果想在計(jì)算機(jī)編程之路走的更遠(yuǎn),我們只有,也必須從匯編語言開始,才能完整、完善的建立計(jì)算機(jī)編程知識(shí)體系!所以對(duì)于我自己來說,要以今天的學(xué)習(xí)為跳板,為今后的匯編語言的繼續(xù)學(xué)習(xí)打好基礎(chǔ)。愿自己在計(jì)算機(jī)這條道路上越走越遠(yuǎn)。

      第四篇:C語言程序設(shè)計(jì)

      1.Problem A: Hello world!Description Xiao_ming有兩個(gè)哥哥,大哥叫Da_min,二哥叫Er_min。三兄弟放學(xué)回家,父母分別跟他們打招呼。

      Input 無

      Output 請(qǐng)輸出: Hello Da_min, Hello Er_min, Hello Xiao_ming!

      Sample Input Sample Output Hello Da_min, Hello Er_min, Hello Xiao_ming!

      HINT 請(qǐng)注意換行符

      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 輸入一個(gè)浮點(diǎn)型數(shù)據(jù),有效數(shù)字不會(huì)超過十進(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 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個(gè)數(shù)的平均值。

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

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

      Sample Input 1 2 3 Sample Output 2.000

      HINT 注意除法運(yùn)算對(duì)整型數(shù)據(jù)和浮點(diǎn)型數(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個(gè)字符(不含雙字節(jié)字符),分別輸出每個(gè)字符的十進(jìn)制值(ASCII碼)、八進(jìn)制值和十六進(jìn)制值。

      Input 輸入為3個(gè)字符。

      Output 輸出為3行。

      每一行為每個(gè)字符(對(duì)應(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 了解字符值的存儲(chǔ)和整型的關(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ù)基本運(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è)程序:對(duì)輸入的一個(gè)整數(shù)a,輸出a++、a--、++a、--a的值。

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

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

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

      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: 絕對(duì)值 Description 求整型數(shù)據(jù)和浮點(diǎn)型數(shù)據(jù)的絕對(duì)值。

      Input 輸入兩個(gè)數(shù),第一個(gè)是整數(shù),第二個(gè)是浮點(diǎn)數(shù)。

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

      Sample Input-1 1

      Sample Output 1 1

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

      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 輸入一個(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 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: 簡單的打折計(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 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 輸入一個(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 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 如果一個(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 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: 三個(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 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個(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 如果不會(huì)使用分支語句,可使用條件運(yùn)算符判斷到底將哪個(gè)數(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í),你決定報(bào)考我國著名的“285”高校之一的北青大學(xué),經(jīng)過認(rèn)真的復(fù)習(xí),殘酷的考試,終于知曉了自己的考試成績,也知道了北青大學(xué)的錄取分?jǐn)?shù)線,請(qǐng)你編程判斷,自己過線了嗎? 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 如果你不會(huì)使用分支語句,同樣可以使用條件運(yùn)算符實(shí)現(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 計(jì)算a+b,0<=a,b<1000。

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

      Output 每行輸出一個(gè)a+b的和,順序與輸入對(duì)應(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 計(jì)算a+b,0<=a,b<1000。

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

      Output 每行輸出一個(gè)a+b的值,順序與輸入對(duì)應(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)容讀完后,會(huì)讀到EOF,所以可以用來判斷輸入是否完成,測試時(shí)可以用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 輸入一個(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 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: 按順序輸出三個(gè)數(shù) Description 對(duì)于輸入的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 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 輸入為一個(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 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: 判斷兩個(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 int main(){ int a,b;scanf(”%d %d“,&a,&b);if(a>b)

      printf(”1“);

      else

      printf(”0“);return 0;} 22.Problem D: 成績的等級(jí) Description 把百分制的考試成績轉(zhuǎn)換成五級(jí)制的成績: 90~100:Excellent 80~89:Good 70~79:Average 60~69:Pass 0~59:Failing

      不在0~100之間的輸入是非法數(shù)據(jù),輸出“Error”。

      Input 輸入多行,每行一個(gè)整數(shù)。

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

      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 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 輸入三個(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ì)用循環(huán)時(shí)邊界情況的特殊處理。

      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 計(jì)算a+b和a-b。

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

      Output 輸出a+b和a-b的計(jì)算結(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 需要判斷給定的一個(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è)條件的順序。如果你不會(huì)使用分支語句,同樣可以使用條件運(yùn)算符實(shí)現(xiàn)該程序。

      庫函數(shù)sqrt()可以用于求一個(gè)數(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 編寫一個(gè)完整的程序,運(yùn)行時(shí)向用戶提問”你考試考了多少分?(0-100)“接受輸入后判斷其等級(jí)并顯示出來等級(jí): 優(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ù)值,顯示等級(jí);再輸入任意一個(gè)整數(shù)分?jǐn)?shù)值,顯示等級(jí);....直到測試數(shù)據(jù)較充分,可輸入-1止。

      Output 對(duì)任意輸入的分?jǐn)?shù)值,輸出對(duì)應(yīng)的等級(jí),直到輸入的數(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 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é)校舉行運(yùn)動(dòng)會(huì),如果全體學(xué)生按照3人一隊(duì)列隊(duì),則多了1個(gè)人;如果按照4人一隊(duì)列隊(duì),則多了2個(gè)人;如果按照5人一隊(duì)排隊(duì),則多了3個(gè)人。請(qǐng)問這個(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 #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ù)各有幾個(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 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 計(jì)算a+b,0<=a,b<1000。

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

      Output 每行輸出一個(gè)a+b的值,順序與輸入對(duì)應(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 計(jì)算a+b,0<=a,b<1000。

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

      Output 每行輸出一個(gè)a+b的值,順序與輸入對(duì)應(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 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個(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 分隔符是空格還是回車都是空白符,對(duì)scanf(”%d“)來說沒有區(qū)別;先讀入n,然后用for循環(huán)就很容易控制讀入n個(gè)數(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)的素?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 #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 給出三個(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 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 對(duì)給出的若干整數(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ù)都存儲(chǔ)下來。因?yàn)橹挥凶疃?000個(gè)數(shù),1秒的時(shí)間足夠任何排序算法運(yùn)行處結(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一起去購物。假定她們逛的街是一條直線,而商鋪是這條直線上的一些點(diǎn)。她們將車停在該直線最左端的店鋪處,然后從左向右開始逛每一個(gè)店鋪,然后從最右邊的店鋪再返回到停車處。你的任務(wù)是計(jì)算她們走了多少路。

      Input 輸入有多組。每一組的第一行是N(0

      Output 對(duì)每組輸入,輸出她們走的路長。

      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)給出,請(qǐ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表示測試用例的編號(hào)(從1開始),s是該測試用例對(duì)應(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 按字母順序輸出兩個(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 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é)愛好者,他們?cè)诹奶鞎r(shí)經(jīng)常使用一些暗語。他們使用的一種最簡單的暗語是:將要說的每句話里面的英文字母變成這個(gè)字母之后的某個(gè)字母?,F(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 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: 登錄密碼驗(yàn)證 Description 編寫一個(gè)程序,模擬用戶登錄系統(tǒng)的密碼驗(yàn)證過程。系統(tǒng)提供給用戶的密碼長度最長為20個(gè)字符,若密碼輸入錯(cuò)誤可以再次輸入。但為了保證用戶密碼安全,若連續(xù)輸入密碼錯(cuò)誤超過5次就會(huì)鎖定賬號(hào)一段時(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 #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è)一對(duì)兔子每月能生一對(duì)小兔(一雌一雄),每對(duì)小兔出生后的下一個(gè)月是沒有繁殖能力的,至出生后的第三個(gè)月開始又可以每月生一隊(duì)小兔,問從一對(duì)剛出生的小兔開始,經(jīng)過若干個(gè)月后一共有多少兔子(假設(shè)在此過程中兔子沒有死亡)?

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

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

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

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

      《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ù)雜和痛苦的過程后,對(duì)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ī)二級(jí)考試,在《C語言程序設(shè)計(jì)》課程后設(shè)置《C語言程序設(shè)計(jì)課程設(shè)計(jì)》,極大地提高了學(xué)生的動(dòng)手機(jī)會(huì)和能力,過級(jí)率顯著提高!

      2007年,依托我校建設(shè)精品課程的契機(jī),我們將C語言中的各個(gè)知識(shí)點(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í)就不會(huì)從開始的時(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é)習(xí)探討word格式文檔
      下載C語言程序設(shè)計(jì)學(xué)習(xí)探討.doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


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

      相關(guān)范文推薦

        淺談如何學(xué)習(xí)C語言程序設(shè)計(jì)5篇

        2009年8月 中 國 管理信息化 Aug..2009 China Informationization V01.12,No.16 第12卷第16期 Management 淺談如何學(xué)習(xí)C++語言程序設(shè)計(jì) 孟艷濤1,邵長海2 (1.長春廣播電視大......

        C語言程序設(shè)計(jì)學(xué)習(xí)心得體會(huì)(范文大全)

        C語言程序設(shè)計(jì)學(xué)習(xí)心得體會(huì) 通過一學(xué)期對(duì)C語言的學(xué)習(xí),我感覺學(xué)習(xí)C語言是有一定難度卻又是非常有趣的科目。也是很有幫助的,特別是對(duì)將要面對(duì)的計(jì)算機(jī)二級(jí)考試。 這段時(shí)間的學(xué)......

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

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

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

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

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

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

        語言程序設(shè)計(jì)教學(xué)大綱(新)

        《匯編語言程序設(shè)計(jì)》理論課程教學(xué)大綱 適用專業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 計(jì)算機(jī)科學(xué)與技術(shù)系 2009年7月15日 《匯編語言程序設(shè)計(jì)》理論教學(xué)大綱 課程代碼:08120013 學(xué) 分:3 理論學(xué)時(shí)......

        《C語言程序設(shè)計(jì)》教學(xué)大綱

        《C語言程序設(shè)計(jì)》教學(xué)大綱 第一部分 大綱說明 一、課程的目的與任務(wù) 本課程將以結(jié)構(gòu)化程序設(shè)計(jì)思想指導(dǎo)學(xué)習(xí)者運(yùn)用C語言進(jìn)行程序設(shè)計(jì),充分利用C語言的結(jié)構(gòu)性好,書寫格式自由......

        《C語言程序設(shè)計(jì)》教學(xué)大綱

        《C語言程序設(shè)計(jì)》教學(xué)大綱 課程名稱:《程序設(shè)計(jì)語言( C )》 英文名稱:The C Programming Language 課程編碼: 學(xué)分: 參考學(xué)時(shí):64 實(shí)驗(yàn)學(xué)時(shí):64 適用專業(yè):計(jì)算機(jī)專業(yè)一、 課程目標(biāo)......