第一篇:C語言程序設(shè)計教學(xué)改革總結(jié)報告.
《C語言程序設(shè)計》教學(xué)改革總結(jié)報告
《C語言程序設(shè)計》是信息工程系各專業(yè)都開設(shè)的一門非常重要的專業(yè)基礎(chǔ)課,也是國家計算機等級考試可選編程語言之一。掌握好C語言的編程技術(shù),將為學(xué)生學(xué)習(xí)后續(xù)高級編程語言奠定堅實基礎(chǔ)。但C語言概念比較復(fù)雜,規(guī)則繁多,使用靈活,容易出錯,學(xué)生掌握起來有一定的難度。以往授課方式為大教室合班上課,課后安排上機實驗。學(xué)生反映理論內(nèi)容較抽象,并與實踐有些滯后脫節(jié),給學(xué)生掌握課堂內(nèi)容增加了難度。針對這種情況,我系自2007年起,對《C語言程序設(shè)計》進行了教學(xué)改革,對授課方式,考核方式,教案組織,上機考試等幾方面進行了改革,并取得了非常理想的教學(xué)效果。
首先,改變了以往大教室合班上課方式,改為單班實驗室授課。這種方式授課,可以使學(xué)生聽懂教師所講授的理論內(nèi)容之后,馬上通過上機實踐,加深理解并真正掌握課堂內(nèi)容,同時也提高了學(xué)生的動手編程能力。掌握編程技術(shù)的最佳方法就是自己動手編程,在實踐中逐步提高水平。而這種授課方式,正好可以使理論與實踐相結(jié)合,并且由于單班授課,教師可以對每名學(xué)生進行一對一輔導(dǎo),這樣可以使學(xué)生對課堂內(nèi)容馬上理解并掌握,所以教學(xué)效果良好。
其次,對考核方式進行了改革,成績考核方法是平時成績占30%,上機考試成績占30%,筆試成績占40%。這種考核方式即可以考察學(xué)生的平時表現(xiàn),又可以考察學(xué)生對課程的掌握程度。既考察了理論掌握情況,也考察了學(xué)生的實踐動手編程能力,客觀公正。通過學(xué)生意見反饋,學(xué)生對這種考核方法也表示贊同和認(rèn)可。
第三,我們針對單班實驗室授課這種新的授課方式,重新編寫了教案。組織教案的原則主要是理論與實踐相結(jié)合,組織方式是,對于每一章節(jié),首先介紹概念,原理,算法,語法和注意事項,然后通過適當(dāng)?shù)睦}來講解,同時組織1-2個例題,立即讓學(xué)生上機實踐,編寫和調(diào)試程序,教師當(dāng)堂輔導(dǎo),所以使學(xué)生可以對課程內(nèi)容當(dāng)堂理解,當(dāng)堂消化吸收。
第四,對以往上機考試進行了改革。以往上機考試為教師出3-4道編程題,每名學(xué)生都答一樣的題,存在一些弊端。現(xiàn)在上機考試改為采用《C語言程序設(shè)計上機
考試系統(tǒng)》,系統(tǒng)具有自動出題、隨機組卷、計時收卷、實時評分和記錄成績功能,大大提高了考試效率。每名學(xué)生的3道考題是隨機產(chǎn)生的,與周圍學(xué)
生的考題均不相同,所有考題取自國家二級考試模擬題題庫,具備針對性,同時《C語言程序設(shè)計上機考試系統(tǒng)》具備平時練習(xí)和正式考試兩種使用方式,學(xué)生平時練習(xí)時可以生成參考答案,這樣學(xué)生可以在練習(xí)過程中,逐步提高編程水平。因為是實時電腦評分,所以迫使學(xué)生必須經(jīng)常練習(xí),在不知不覺中也就提高了對C語言程序設(shè)計的理解和掌握。
從成績上分析,以2007-2008第二學(xué)期為例,我系共有314 人參加了考試,及格人數(shù) 281人,及格率89.5%,不及格人數(shù) 33人,不及格率10.5%,平均分72.3。我講授《C語言程序設(shè)計》已有多年,據(jù)我所知以往考試的不及格率約為30%左右,平均分約為60分上下,所以教學(xué)改革后,《C語言程序設(shè)計》取得了很好的教學(xué)效果。
從學(xué)生反映上分析,學(xué)生對在機房上課及考核方式完全認(rèn)可,認(rèn)為既可以掌握理論知識,同時通過自己動手實踐掌握編程技術(shù),加深了對課程內(nèi)容的理解和掌握。學(xué)生普遍反映能夠提高動手實踐能力和理論知識運用能力。
《C語言程序設(shè)計》教學(xué)改革存在的問題有以下幾點,第一,現(xiàn)在使用的教材是清華大學(xué)出版社譚浩強編寫的《C語言程序設(shè)計》,是國內(nèi)權(quán)威的教材,但它在內(nèi)容的組織、順序的安排與在實驗室上課有些差別,所以是否考慮針對在實驗室上課這種新的授課方式,重新編寫一本教材。第二,教案的內(nèi)容上,還有待于進一步細(xì)化和調(diào)整,尤其是學(xué)生練習(xí)的例題,需要進一步的斟酌與挑選。第三,《C語言程序設(shè)計上機考試系統(tǒng)》還需要升級完善,在考題數(shù)量,難易程度,答案數(shù)量以及適用于VC++開發(fā)環(huán)境等方面,還有大量的工作需要完成。
總之,《C語言程序設(shè)計》教學(xué)改革取得了非常理想的教學(xué)效果,無論是在學(xué)生成績的提高上,還是學(xué)生的反映上,以及考試的效率上等均達(dá)到了教學(xué)目的,但仍存在一些不足,希望院系領(lǐng)導(dǎo)能夠針對存在的問題,組織人員,商討對策,進一步提高《C語言程序設(shè)計》這門課程的教學(xué)水平。
總結(jié)人:謝進軍 2007年12月
第二篇:程序設(shè)計總結(jié)報告
匯編程序設(shè)計總結(jié)報告
設(shè)計時間:2002.1.14----1.24
設(shè)計者:李小霞 班號:99090B3
學(xué)號:08號
設(shè)計內(nèi)容:
本組負(fù)責(zé)設(shè)計一個文本編輯器(EDITOR),我主要編寫光標(biāo)的移動和清除屏幕模塊,實現(xiàn)光標(biāo)的移動和屏幕的清空。
算法思想: A.光標(biāo)移動:
(1)該程序從鍵盤上操作;(2)向上的箭頭,表示光標(biāo)要向上移動;(3)向左的箭頭表示光標(biāo)要向左移動;(4)向下的箭頭表示光標(biāo)要向下移動;(5)向右的箭頭表示光標(biāo)要向右移動;
該模塊中,當(dāng)輸入¥時,則退出程序;然后,當(dāng)以鍵盤輸入箭頭時,就進入循環(huán)來辨別箭頭所實現(xiàn)的光標(biāo)是向左向右還是向上向下 B.清除屏幕模塊
(1)鍵盤輸入前要清除屏幕;(2)使整個屏幕的底色顯示藍(lán)色;
光標(biāo)移動主要使用循環(huán)和子程序調(diào)用。子程序中都用到了BIOS 中斷和DOS的功能調(diào)用。
編輯過程中的心得:
這次我們編輯的是一個文本編輯器。在此次的編寫過程中,我充分的認(rèn)識到,實踐與理論相結(jié)合重要性。以前在學(xué)習(xí)匯編的過程中,感覺有一些的枯燥,但看這小小的光標(biāo)在藍(lán)色的屏幕上跳動,不盡的想:原來程序與現(xiàn)實距離是這么近。
1. 不足之處:程序編寫的有些復(fù)雜。在程序的調(diào)試和聯(lián)接過程中,出現(xiàn)了一些錯誤,但都及時的解決。
2. 經(jīng)驗:要加強動手能力,多多的編程,多多的上機。
程序過程如下:
lxx segment a db ? han1 dw ? lxx ends prognam segment main proc far assume cs:prognam,ds:lxx start: push ds mov ax,0 push ax mov ax,lxx mov ds,ax call clen repea: mov ah,07h int 21h mov a,al cmp a,‘$' je en cmp al,48h;行減一 jne x1 call y1 jmp repea x1: cmp a,4bh;列減一 jne x2 call y2 jmp repea x2: cmp a,50h;行減一 jne x3 call y3 jmp repea x3: cmp a,4dh;列減一 jne repea call y4 jmp repea en: ret main endp;----------------y1 proc near push ax push bx push dx mov ah,3 int 10h mov ah,2;行減一 dec dh int 10h pop dx pop bx pop ax ret y1 endp;---------y2 proc near push ax push bx push dx mov ah,3 int 10h mov ah,2 sub dl,2;列減一 int 10h pop dx pop bx pop ax ret y2 endp;-------y3 proc near push ax push bx push dx mov ah,3 int 10h mov ah,2 inc dh;行加一 int 10h pop dx pop bx pop ax ret y3 endp;---------y4 proc near mov ah,3 int 10h mov ah,2 inc dl;列加一 int 10h ret y4 endp;---------------------clen proc near mov dh,1 mov han1,25d cle: mov ah,2h mov dl,0 int 10h mov ah,09h mov al,' ' mov bl,90h mov bh,0h;yan se mov cx,80 int 10h inc dh dec han1 cmp han1,01h jne cle ret clen endp;------prognam ends end start
第三篇:關(guān)于《C語言程序設(shè)計》課程的教學(xué)改革與實踐.
關(guān)于《C語言程序設(shè)計》課程的教學(xué)改革與實踐
日期: 2010-5-12 1:24:52 瀏覽: 8 來源: 學(xué)海網(wǎng)收集整理 作者: 佚名 【摘 要】C語言是我國高校普遍開設(shè)的一門課程,本文根據(jù)實際教學(xué)經(jīng)驗,介紹了在C語言程序設(shè)計中進行的一些改革與實踐。其中對提高學(xué)生的學(xué)習(xí)興趣,發(fā)揮多媒體教學(xué)的優(yōu)勢,提高課堂生動性及學(xué)生能動性提出了一些行之有效的方法。
【關(guān)鍵詞】C語言程序設(shè)計; 教學(xué)改革;網(wǎng)絡(luò)多媒體教學(xué)
Abstract :C language is a course generally set up by China’s colleges and universities, this article introduced some of the reform and practice in the C programming language in accordance with the actual teaching experience.Threre are number of effective methods which can increase the students’ interest in teaching,play the advantages of multi-media teaching and improve classroom liveliness and students’activity.Key words:C language programming design;Teaching reform;Network multi-media teaching
現(xiàn)在計算機已普及到各行各業(yè),深入到各級層次,而學(xué)習(xí)C語言程序設(shè)計是提高人們計算機知識水平的重要步驟。在我國高等學(xué)校教育中C語言不但成為計算機專業(yè)的必修課,而且也越來越多地成為非計算機專業(yè)的學(xué)習(xí)課程。做好該門課程的教學(xué)具有非常重要而深遠(yuǎn)的社會意義,現(xiàn)將我在C語言程序設(shè)計課程中教學(xué)內(nèi)容、教學(xué)手段、教學(xué)方法等方面的改革與取得的教學(xué)效果與大家做一探討。
一、仔細(xì)領(lǐng)會教學(xué)大綱,全面深入教材改革
教師深入分析教學(xué)大綱,在全面了解學(xué)生的數(shù)學(xué)基礎(chǔ)知識狀況的前提下,根據(jù)大綱制定好教學(xué)計劃。將教材中涉及到學(xué)生未掌握的數(shù)學(xué)知識方面的例題進行更換,避免因數(shù)學(xué)知識問題形成教學(xué)障礙。
在選取教材時,要選擇“精講多練、案例應(yīng)用”為主的教材。C語言程序程序設(shè)計本身比較抽象,學(xué)生在剛開始接觸的時候很難理解,所以興趣并不很大。根據(jù)這門課程的一般教學(xué)順序,在前幾周講授的內(nèi)容往往是變量、數(shù)據(jù)類型、運算符、表達(dá)式、語句、函數(shù)等定義、使用說明等。這些理論知識中概念多、難以理解和記憶,會使一些學(xué)生失去學(xué)習(xí)C語言的興趣。為了避免這種現(xiàn)象的出現(xiàn),應(yīng)該采用“理論精講,夠用就行”的教材,教師在講授具體程序和案例時再將涉及到的未講知識補充講解。通過這種講解方法可以減少學(xué)生的學(xué)習(xí)壓力,保證教學(xué)進度和教學(xué)效果。
在教學(xué)過程中,以“案例驅(qū)動,興趣引導(dǎo),自身實現(xiàn)”貫穿整個教學(xué)過程。以學(xué)生感興趣的某種游戲為案例,通過用C語言編程來實現(xiàn)游戲的過程引起學(xué)生的興趣,再講解具體的C語言知識。引起學(xué)生興趣的案例除了游戲案例外,還可以是其他學(xué)生感興趣的內(nèi)容。最后讓學(xué)生自己建立一個開發(fā)項目,用所學(xué)的C語言知識來實現(xiàn)。這種方法避免進行枯燥的語法訓(xùn)練,學(xué)生不會覺得課程枯燥無味,能提高學(xué)生的學(xué)習(xí)積極性,更重要的是學(xué)生能感受到C語言的結(jié)構(gòu)化編程思想,并進行一定的實際編程獲取編程經(jīng)驗。
二、應(yīng)用網(wǎng)絡(luò)多媒體教學(xué)模式的 C語言教學(xué)
1 世紀(jì)人類社會全面進入信息化的世紀(jì),信息技術(shù)的廣泛應(yīng)用將極大地改變?nèi)藗兊纳a(chǎn)生活方式,教學(xué)也不例外,網(wǎng)絡(luò)技術(shù)的應(yīng)用必將改變傳統(tǒng)的教學(xué)方式。C語言教學(xué)中重點與難點內(nèi)容用FLASH軟件制作成動畫演示教學(xué),能夠把抽象的過程以真實的、直觀的方式展現(xiàn)出來。把動態(tài)的圖象和學(xué)生的抽象思維活動密切地結(jié)合起來,教師可以重點突出的講解程序算法,教師演示課件時的速度、次數(shù),以及前后順序等都可以根據(jù)教學(xué)需要靈活地控制和改變,使得教師易于把握教學(xué)的進度。根據(jù)FLASH軟件的特點,可以讓學(xué)生動手控制動畫的執(zhí)行步驟,在觀看或者參與動畫的過程中加深理解C語言的執(zhí)行過程。利用幾何圖形、色彩變化及閃爍等效果,再現(xiàn)程序執(zhí)行過程的動態(tài)及變化過程,例如C語言課程中的漢諾塔問題、楊輝三角形問題,還有許多排序和比較的程序,能夠通過動畫把完整的過程演示。
在網(wǎng)絡(luò)教學(xué)方面可以把教學(xué)內(nèi)容做成課程網(wǎng)站。上課時講解網(wǎng)站上的理論內(nèi)容和相關(guān)練習(xí)題。學(xué)生可以通過計算機訪問網(wǎng)站中每次課講的內(nèi)容,在編寫程序時遇到問題可以先通過網(wǎng)站查找相關(guān)資料先自己解決問題。這種方式便于學(xué)生整理學(xué)習(xí)筆記,培養(yǎng)學(xué)生解決問題的能力。還可以在網(wǎng)站上布置課后作業(yè)和收取學(xué)生的作業(yè),便于教師的作業(yè)批改。
在網(wǎng)絡(luò)教學(xué)方面還可以采用局域網(wǎng)內(nèi)的網(wǎng)絡(luò)教學(xué)管理軟件進行教學(xué)與指導(dǎo),例如極域教學(xué)軟件。這種教學(xué)軟件可以在教師機上給學(xué)生做同步演示與講課,在學(xué)生做練習(xí)時可以把學(xué)生做練習(xí)的過程用廣播形式在局域網(wǎng)內(nèi)演示給其他學(xué)生看,這樣增加了互動效果、方便對學(xué)生的練習(xí)進行講解。
三、創(chuàng)造條件加強學(xué)生能力的培養(yǎng)
學(xué)生編程能力的提高,不是聽來的,不是看來的,而是練出來的。機械的練習(xí)老師布置的作業(yè)只能完成對知識的認(rèn)識,還不能完成對知識的理解與運用。利用比賽、項目任務(wù)的方式給學(xué)生以壓力,讓學(xué)生充分動腦在短時間內(nèi)提高自身運用C語言的能力。比賽能給學(xué)生一種榮譽感,能激發(fā)學(xué)生的學(xué)習(xí)主動性、創(chuàng)造性,可以充分展示學(xué)生的學(xué)習(xí)能力。在教學(xué)過程中,可以根據(jù)以講完的教學(xué)內(nèi)容進行專項應(yīng)用比賽,也可以在學(xué)習(xí)完C語言后進行班級內(nèi)、學(xué)校內(nèi)的大型比賽。比賽完成后樹立學(xué)習(xí)的榜樣,給學(xué)生以學(xué)習(xí)動力。
在學(xué)生C語言的編程能力方面,“授之以魚,不如授之以漁”。程序設(shè)計是一種具有創(chuàng)造性的工作,程序設(shè)計具有一定的抽象性,它用數(shù)學(xué)的方法去描述一些問題。一般的程序設(shè)計要建立數(shù)學(xué)模型,要進行算法設(shè)計,這樣才能將實際問題的解法表達(dá)成計算機所能表達(dá)理解的形式。在教學(xué)的過程中不能單單滿足于授予學(xué)生多少知識內(nèi)容,而是要加強學(xué)生獨立分析問題、解決問題能力的培養(yǎng)。因此,課堂教學(xué)要擺脫呆板、生硬的灌輸,應(yīng)著力于激發(fā)學(xué)生的學(xué)習(xí)興趣,幫助學(xué)生樹立正確的學(xué)習(xí)動機,培養(yǎng)學(xué)生的學(xué)習(xí)能力。例如以一個成熟的項目展示完整的C語言代碼,向?qū)W生講解代碼中算法、建模的過程,培養(yǎng)學(xué)生的良好編程習(xí)慣。
四、采用綜合考核法評價學(xué)生的成績
對C語言程序設(shè)計的考試是衡量這門課教學(xué)情況與學(xué)生學(xué)習(xí)的好壞的標(biāo)準(zhǔn),不是看學(xué)生“知不知道”,而是“會不會干”。C語言程序設(shè)計考試是一門考察學(xué)生的邏輯能力、C語言語法掌握能力、編程能力的綜合考核。不能只用主觀題和客觀題來評價,而應(yīng)當(dāng)把重點放在編制程序和調(diào)試程序上。所以對學(xué)生學(xué)習(xí)成績的評定,采用綜合考核法,將平時的實踐成績與期末卷面成績進行綜合,得出本課程綜合考評分。這種教學(xué)法,不但能更客觀地反映學(xué)生的學(xué)習(xí)情況,同時也能促進學(xué)生學(xué)習(xí)起到很好的教學(xué)效果。
單一的考核方法并不能體現(xiàn)學(xué)生的學(xué)習(xí)效果和教學(xué)效果,需要用多種方式來評價。在采用上述方法后,還可以試行反復(fù)考試法。反復(fù)考試法就是當(dāng)學(xué)生對自己成績不滿意,認(rèn)為沒有考出自己實際水平時,可以給學(xué)生一次或多次重新考試的機會。高校教學(xué)的目的并不是考試,而是培養(yǎng)學(xué)生的學(xué)習(xí)能力與實際動手操作能力,通過這樣多方式考核的辦法可以充分評價出學(xué)習(xí)的學(xué)習(xí)能力與實際動手操作能力。
五、校企結(jié)合面向社會培養(yǎng)學(xué)生的編程能力
為了使學(xué)生學(xué)習(xí)到的知識與社會接軌,可以創(chuàng)建校企結(jié)合的課程建設(shè)方法。聽取企業(yè)家對C語言程序設(shè)計教學(xué)改革的意見、由企業(yè)向?qū)W校提供實驗(實習(xí))條件、以企業(yè)作為學(xué)生的校外實習(xí)基地或者企業(yè)為學(xué)生提供就業(yè)崗位,通過這些方法使學(xué)生熟悉公司內(nèi)的編程環(huán)境,盡快進入工作狀態(tài)。學(xué)校還可以邀請企業(yè)家為學(xué)生開講座,派遣青年教師到企業(yè)去實習(xí),使教學(xué)的內(nèi)容與企業(yè)的實際更為貼近。學(xué)校作為企業(yè)的人才培育基地,發(fā)揮技術(shù)和設(shè)備的優(yōu)勢,為企業(yè)提供支持,向企業(yè)輸送合格畢業(yè)生,校企結(jié)合實現(xiàn)雙贏。
總之,在“C語言程序設(shè)計”課程中,我們要努力提高學(xué)生對課程的興趣和學(xué)習(xí)熱情,在教學(xué)手段上充分利用多媒體、網(wǎng)絡(luò)軟件等手段,使得學(xué)生充分掌握C語言的基本理論知識,同時加強學(xué)生自身的學(xué)習(xí)能力和實踐能力的鍛煉,使學(xué)生更好地掌握C語言程序設(shè)計方法符合現(xiàn)代社會對人才的要求。
【參考文獻】
[1]孔垂柳.田地.基于程序設(shè)計思想的C語言教學(xué)方案.吉林大學(xué)學(xué)報(信息科學(xué)版),2005,23(8):5-6.[2]陳東.計算機多媒體教學(xué)改革的一些嘗試[J].福建師范大學(xué)學(xué)報(自然版),2004,20(3):98.[3]李明等.C語言程序設(shè)計教程[M].上海:上海交通大學(xué)出版社,2007,26-32.
第四篇: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
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
#include
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
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
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ù)基本運算 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 : %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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 { 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 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 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 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 {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 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 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 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 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)常使用一些暗語。他們使用的一種最簡單的暗語是:將要說的每句話里面的英文字母變成這個字母之后的某個字母。現(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 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 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è)計》主要在計算機軟件、計算機網(wǎng)絡(luò)、計算機應(yīng)用、通信技術(shù)、智能電子、電子信息工程、多媒體以及核工程與核技術(shù)等專業(yè)中開設(shè),是電子信息類、機械類等工科專業(yè)的重要專業(yè)基礎(chǔ)課。 本校從2001至今,每年都開設(shè)《C語言程序設(shè)計》課程,由于,我校最開始時的特殊情況,主要把重點放在C語言中的各類重點、難點的語法、語義上,使得學(xué)生經(jīng)過比較復(fù)雜和痛苦的過程后,對C語言在使用上很難做到自己編寫程序。而且很多學(xué)生產(chǎn)生了畏懼心理。 2004年,學(xué)院成立計算機科學(xué)與技術(shù)系,為了更好學(xué)習(xí)和掌握C語言,計算機科學(xué)與技術(shù)專業(yè)和計算機維護專業(yè)(計算機應(yīng)用技術(shù)前身)除了開設(shè)《C語言程序設(shè)計》課程外,在后續(xù)一學(xué)期還開設(shè)了《C語言程序設(shè)計課程設(shè)計》,使得計算機專業(yè)學(xué)生編程思想和能力得到了極大提高。 2005年,為了讓我院工科學(xué)生更好的掌握C語言編程以及通過四川省計算機二級考試,在《C語言程序設(shè)計》課程后設(shè)置《C語言程序設(shè)計課程設(shè)計》,極大地提高了學(xué)生的動手機會和能力,過級率顯著提高! 2007年,依托我校建設(shè)精品課程的契機,我們將C語言中的各個知識點進行重新規(guī)整,提出適用于三本院校學(xué)生的語言設(shè)計學(xué)習(xí)的方法。我們提出,先了解C語言,再學(xué)習(xí)C語言,再用C語言的思想。即在開始時讓學(xué)生初步知道C語言,然后引入比較簡單的運算符以及基本輸入、輸出和簡單的順序結(jié)構(gòu)程序設(shè)計。通過這樣的方式,我們發(fā)現(xiàn),學(xué)生在C語言的學(xué)習(xí)就不會從開始的時候陷入大量難懂的語法、語義和數(shù)據(jù)結(jié)構(gòu)中。有了以上鋪墊再層層進入,最終進入復(fù)雜的各類數(shù)據(jù)結(jié)構(gòu)以及指針等學(xué)習(xí)。通過以上的內(nèi)容規(guī)整后,教學(xué)效果有明顯提高。第五篇:C 語言程序設(shè)計