久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

搶答器~C51~帶程序(5篇)

時(shí)間:2019-05-12 12:16:17下載本文作者:會(huì)員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《搶答器~C51~帶程序》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《搶答器~C51~帶程序》。

第一篇:搶答器~C51~帶程序

前 言

在電視和學(xué)校中我們會(huì)經(jīng)常看到一些智力搶答的節(jié)目,如果要是讓搶答者用舉手等方法,主持人很容易誤判,會(huì)造成搶答的不公平,比賽中為了準(zhǔn)確、公正、直觀地判斷出第一搶答者,所設(shè)計(jì)的搶答器通常由數(shù)碼顯示、燈光、音響等多種手段指示出第一搶答者。為了使這種不公平不發(fā)生,只有靠電子產(chǎn)品的高準(zhǔn)確性來保障搶答的公平性。

功能分為基本功能和擴(kuò)展功能,基本功能是能夠?qū)崿F(xiàn)搶答器的功能,擴(kuò)展功能進(jìn)一步豐富了搶答器的功能,更佳人性化。

基本功能可以有同時(shí)供8名選手比賽,分別用8個(gè)按鈕S0 ~ S7表示;設(shè)置一個(gè)系統(tǒng)復(fù)位按鈕和搶答控制按鈕,這組開關(guān)由主持人控制;搶答器具有鎖存與顯示功能。即選手按動(dòng)按鈕,揚(yáng)聲器發(fā)出聲響提示,鎖存相應(yīng)的選手號(hào)碼并且通過數(shù)碼管顯示。選手搶答實(shí)行優(yōu)先鎖存,優(yōu)先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清除為止。

擴(kuò)展功能有搶答器具有定時(shí)搶答功能,且搶答的時(shí)間由主持人設(shè)定(如30秒)。當(dāng)主持人按下啟動(dòng)鍵后,定時(shí)器進(jìn)行倒計(jì)時(shí);參賽選手在設(shè)定的時(shí)間內(nèi)進(jìn)行搶答,搶答有效,定時(shí)器停止工作,顯示器上顯示選手的編號(hào)和搶答的時(shí)間,并保持到主持人將系統(tǒng)清除為止。如果定時(shí)時(shí)間已到,無人搶答,本次搶答無效,系統(tǒng)報(bào)警并禁止搶答,定時(shí)顯示器上顯示00。

此設(shè)計(jì)可以用三種方法實(shí)現(xiàn):數(shù)字電路,單片機(jī),PLC。其中PLC方案與單片機(jī)方案原理相似,但成本太高,故不采用此方案,在此不另作比較。主要在數(shù)字電路和單片機(jī)兩個(gè)方案中選擇。

AT89C52 是美國ATMEL 公司生產(chǎn)的低電壓,高性能CMOS 8 位單片機(jī),片內(nèi)含8k bytes 的可反復(fù)擦寫的Flash 只讀程序存儲(chǔ)器和256 bytes 的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL 公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51 指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8 位中央處理器(CPU)和Flash 存儲(chǔ)單元,功能強(qiáng)大AT89C52 單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場合。

基于單片機(jī)的八路搶答器是針對(duì)目前的搶答器市場而設(shè)計(jì)的,其高度的準(zhǔn)確性,低廉的成本,是絕對(duì)有競爭優(yōu)勢,其市場前景巨大。通過本課題的訓(xùn)練,不僅可以研制出一套八路搶答器,還可以使我們通過對(duì)單片機(jī)電路的設(shè)計(jì)與編程,達(dá)到理論與實(shí)踐相結(jié)合的目的,強(qiáng)化我們四年中的學(xué)習(xí)知識(shí),能提高解決實(shí)際問題的能力。

第一章 設(shè)計(jì)的依據(jù)

1.1 課題的提出

在電視和學(xué)校中我們會(huì)經(jīng)常看到一些智力搶答的節(jié)目,如果要是讓搶答者用舉手等方法,主持人很容易誤判,會(huì)造成搶答的不公平,比賽中為了準(zhǔn)確、公正、直觀地判斷出第一搶答者,所設(shè)計(jì)的搶答器通常由數(shù)碼顯示、燈光、音響等多種手段指示出第一搶答者。為了使這種不公平不發(fā)生,只有靠電子產(chǎn)品的高準(zhǔn)確性來保障搶答的公平性。

1.2 實(shí)現(xiàn)的系統(tǒng)功能簡介

功能分為基本功能和擴(kuò)展功能,基本功能是能夠?qū)崿F(xiàn)搶答器的功能,擴(kuò)展功能進(jìn)一步豐富了搶答器的功能,更佳人性化。

1.基本功能:

(1)同時(shí)供8名選手比賽,分別用8個(gè)按鈕S0 ~ S7表示。

(2)設(shè)置一個(gè)系統(tǒng)復(fù)位按鈕和搶答控制按鈕,這組開關(guān)由主持人控制。(3)搶答器具有鎖存與顯示功能。即選手按動(dòng)按鈕,揚(yáng)聲器發(fā)出聲響提示,鎖存相應(yīng)的選手號(hào)碼并且通過數(shù)碼管顯示。選手搶答實(shí)行優(yōu)先鎖存,優(yōu)先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清除為止。

2.擴(kuò)展功能:

(1)搶答器具有定時(shí)搶答功能,且搶答的時(shí)間由主持人設(shè)定(如30秒)。當(dāng)主持人按下啟動(dòng)鍵后,定時(shí)器進(jìn)行倒計(jì)時(shí)。

(2)參賽選手在設(shè)定的時(shí)間內(nèi)進(jìn)行搶答,搶答有效,定時(shí)器停止工作,顯示器上顯示選手的編號(hào)和搶答的時(shí)間,并保持到主持人將系統(tǒng)清除為止。如果定時(shí)時(shí)間已到,無人搶答,本次搶答無效,系統(tǒng)報(bào)警并禁止搶答,定時(shí)顯示器上顯示00。

第二章 總體方案確定

2.1 方案論證

此設(shè)計(jì)可以用三種方法實(shí)現(xiàn):數(shù)字電路,單片機(jī),PLC。其中PLC方案與單片機(jī)方案原理相似,但成本太高,故不采用此方案,在此不另作比較。2.1.1數(shù)字電路總體方案

如下圖所示為數(shù)字電路總體方框圖。其工作原理為:接通電源后,主持人將開關(guān)撥到“清除”狀態(tài),搶答器處于禁止?fàn)顟B(tài),編號(hào)顯示器滅燈,定時(shí)器顯示設(shè)定時(shí)間;主持人將開關(guān)置“開始”狀態(tài),宣布“開始”搶答器工作。定時(shí)器倒計(jì)時(shí),揚(yáng)聲器給出聲響提示。選手在定時(shí)時(shí)間內(nèi)搶答時(shí),搶答器完成:優(yōu)先判斷、編號(hào)鎖存、編號(hào)顯示、揚(yáng)聲器提示。當(dāng)一輪搶答之后,定時(shí)器停止、禁止二次搶答、定時(shí)器顯示剩余時(shí)間。如果再次搶答必須由主持人再次操作“清除”和“開始”狀態(tài)開關(guān)。

圖2.1.1 數(shù)字電路方案

2.1.2 MCS-51方案

該方案主要由 搶答、聲音警示、燈光指示和計(jì)時(shí)電路組成,借助較少的外圍元件完成搶答的整個(gè)過程。系統(tǒng)框圖如下圖所示。

圖2.1.2 單片機(jī)方案

2.2 方案確定

通過三個(gè)方案比較,單片機(jī)控制的設(shè)計(jì)方案外圍的元件也很少,成本比較低,制作簡單,實(shí)現(xiàn)的功能靈活。由于是單片機(jī)控制,對(duì)搶答器隊(duì)參賽選手的動(dòng)作的先后有很強(qiáng)的分辨力,即使先后只相差幾毫秒,搶答器也能分辨出來,搶答器直接顯示動(dòng)作選手的編號(hào)和答題時(shí)間,并保持到主持人清零為止。所以我選擇采用單片機(jī)控制的方案來完成搶答器電路。

第三章 硬件設(shè)計(jì)

3.1 整體電路設(shè)計(jì)

整個(gè)系統(tǒng)可以分為五部分:搶答電路,主持人控制按鈕,單片機(jī)最小系統(tǒng),顯示電路,蜂鳴器。如下圖所示

圖3.1 整體電路

3.2 復(fù)位電路設(shè)計(jì)

復(fù)位電路采用經(jīng)典的51系列單片機(jī)的復(fù)位方法:上電復(fù)位和開關(guān)復(fù)位。通電后,給電容充電,在此過程中,單片機(jī)復(fù)位;運(yùn)行時(shí),按下復(fù)位按鈕,RST端口變?yōu)楦唠娖剑M(jìn)行復(fù)位。復(fù)位電路和晶振電路如下:

圖3.2 復(fù)位電路和晶振電路 3.3 顯示電路的設(shè)計(jì)

顯示電路和揚(yáng)聲器電路如下圖所示:

圖3.3.1 顯示電路 圖3.3.2 揚(yáng)聲器電路

3.4 控制電路實(shí)現(xiàn)

主持人的按鍵有四個(gè),分別是:開始、復(fù)位、加

1、減1。按鍵一般按下的過程中有抖動(dòng),需要消抖處理,本設(shè)計(jì)中采用了并聯(lián)電容處理,實(shí)際調(diào)試過程中證明效果很好,故軟件不需要再次做消抖處理。

圖3.4.1 選手按鍵電路 圖3.4.2 主持人控制電路

3.5 硬件電路設(shè)計(jì)小結(jié)

經(jīng)過幾十個(gè)晝夜奮戰(zhàn),硬件電路終于調(diào)試成功,想想開始的時(shí)候什么都不確定,第一次焊接好了之后,到處都是問題,到現(xiàn)在的穩(wěn)定運(yùn)行,真的有一種莫大的滿足感。特別是消抖這一塊,一直是我們?cè)O(shè)計(jì)不穩(wěn)定運(yùn)行的主因,在指導(dǎo)老師的悉心指導(dǎo)下,在院系領(lǐng)導(dǎo)的關(guān)懷下,我們的問題也一一迎刃而解。

第四章 軟件設(shè)計(jì)

4.1 總體設(shè)計(jì)

第五章 電路調(diào)試

5.1硬件調(diào)試

基本電路板檢查: 根據(jù)前面的研究完成各個(gè)電路模塊的原理設(shè)計(jì)并生成PCB圖,制作電路板,進(jìn)行實(shí)驗(yàn)調(diào)試。

(1)檢查印制板的印制線是否有斷路,是否有毛刺,是否與其它線或是焊盤粘連,焊盤是否有脫落,過孔是否有未金屬化現(xiàn)象等等。

(2)先用萬用表復(fù)核目測中認(rèn)為可疑的連接或是接點(diǎn),檢查它們的通短狀態(tài)是否與設(shè)計(jì)規(guī)定相符。再檢查各種電源線與地線之間是否有短路現(xiàn)象,如有再仔細(xì)檢查出并排除。短路現(xiàn)象一定要在器件安裝及加電前檢查出。

(3)路接通電源后,用手摸一下芯片是否發(fā)熱,如果發(fā)熱,立即關(guān)掉電源,稍后再進(jìn)行再次檢測;如果沒有發(fā)熱,再測試芯片的VCC端電壓是否達(dá)到設(shè)計(jì)要求,接地端是否都接地。

主控模塊調(diào)試: 在本次設(shè)計(jì)中,主控模塊是非常重要的部分,它不僅是本次設(shè)計(jì)的核心,同時(shí)在后面的8255A顯示也是起關(guān)鍵的作用。在本次硬件調(diào)試中也遇到了問題,接上電源的時(shí)候,數(shù)碼管不亮,沒有任何顯示,于是我做了如下的工作:(1)檢查電源是否通電,發(fā)現(xiàn)指示燈亮著;(2)編程使P1為低電平,檢查到P1輸出為低;(3)檢查P0口未接上拉電阻,接上數(shù)碼管發(fā)亮了。

由次我深刻的認(rèn)識(shí)到:制作電路板是一個(gè)比較繁瑣的過程,它需要我們時(shí)刻都要用心去做,每個(gè)環(huán)節(jié)都不能忽視,只有這樣才能達(dá)到鍛煉的目的。

5.2軟件調(diào)試

當(dāng)硬件制作完成后,軟件制作也是不可輕視的部分,是實(shí)現(xiàn)電路的功能的關(guān)鍵部分,通過本次畢業(yè)設(shè)計(jì),總結(jié)經(jīng)驗(yàn)如下:

(1)先進(jìn)行人工檢查。寫好程序后,不立刻燒入單片機(jī),先對(duì)紙面上的程序進(jìn)行人工檢查。由于采用C語言編程,所以要特別小心地檢查語法錯(cuò)誤,如括號(hào)不配對(duì),漏寫分號(hào)等,通過仔細(xì)的檢查,發(fā)現(xiàn)并排除這些錯(cuò)誤。

(2)人工檢查無誤后,上機(jī)調(diào)試。在編譯時(shí)給出的語法錯(cuò)誤的信息,根據(jù)提示的信息具體找出程序中錯(cuò)誤之處并改之,從上至下逐一改正。應(yīng)當(dāng)注意的是:有的提示出錯(cuò)行并不是真正出錯(cuò)的行,如果在提示出錯(cuò)的行上找不到錯(cuò)誤的話,則應(yīng)該到上行再找。

(3)當(dāng)確認(rèn)程序無語法錯(cuò)誤和邏輯錯(cuò)誤時(shí),通過直接下載到單片機(jī)來調(diào)試。采用的是自下到上的調(diào)試方法,即單獨(dú)調(diào)好每一個(gè)模塊,然后再連接成一個(gè)完整的系統(tǒng)調(diào)試。

(4)程序燒入單片機(jī)后,觀察各個(gè)部件的工作是否正常,功能是否實(shí)現(xiàn)。如不能正常工作,則繼續(xù)檢查程序中的相應(yīng)模塊,必要時(shí)從上到下重新檢查程序。

總 結(jié)

搶答器豐富了我們的生活,社會(huì)中本來就充滿著競爭。只是沒有很明顯的表現(xiàn)出來,通過運(yùn)用它我們可以很好的證明自己的膽識(shí)和自信,所以做起搶答器來,也很想去了解它,對(duì)于八路搶答器原理說起來很簡單,也沒什么復(fù)雜性,所以看似很簡單,但實(shí)踐中卻發(fā)現(xiàn)不是那么回事,實(shí)際調(diào)試的過程中,一點(diǎn)問題都不能存在,否則它就不運(yùn)行,真正體會(huì)到了什么叫一絲不茍,什么叫鍥而不舍。在以后的工作和學(xué)習(xí)中,我一定會(huì)深刻運(yùn)用這次的心得體會(huì)。

總之,這次實(shí)踐是非常成功的,我們追求的是理論與實(shí)踐并存,這次畢業(yè)設(shè)計(jì)就很好的為大學(xué)生表現(xiàn)自己綜合能力提供有力的平臺(tái)。實(shí)踐中也發(fā)了自己有一點(diǎn)不懂的地方,通過這次實(shí)踐才徹底搞懂,這證明了理論學(xué)習(xí)后還是需要實(shí)踐課程的。

在這個(gè)過程中,通過老師的指導(dǎo)和自己的摸索,學(xué)會(huì)了自己學(xué)習(xí)新知識(shí),查找資料的方法,我想這應(yīng)該是我們大學(xué)中應(yīng)該掌握的方法。

致 謝

本設(shè)計(jì)經(jīng)過一個(gè)學(xué)期的的時(shí)間,到今天終于完成了。在此,向我的指導(dǎo)老師表示最誠摯的謝意。從課題的選擇,前期的準(zhǔn)備工作、方案的制定,系統(tǒng)的開發(fā)與調(diào)試,到論文的撰寫修改定稿都滲透了老師的心血。在這三個(gè)月中,老師以他淵博的學(xué)識(shí)、卓越的才智、嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和求實(shí)創(chuàng)新的工作作風(fēng)以及平易近人的態(tài)度使我受益匪淺,在學(xué)習(xí)中給我很大的啟迪和幫助,對(duì)我的指導(dǎo)更是給我留下了極為深刻的印象。使我在這次畢業(yè)設(shè)計(jì)中學(xué)到了許多知識(shí)。

在整個(gè)課題的研究和設(shè)計(jì)過程中,還得到了其他院系和實(shí)驗(yàn)室的老師們的幫助和支持,在我設(shè)計(jì)時(shí)遇到困難時(shí),他們給予了我不少的幫助和鼓勵(lì),再次表示誠摯的感謝。正是由于他們的幫助,才使這次設(shè)計(jì)能順利的完成。

此外,我還要特別感謝大學(xué)四年里的老師和同學(xué),感謝我們系的全體老師以及所有關(guān)心我,幫助我,鼓勵(lì)我的人,沒有你們的無私幫助,我是很難完成我的畢業(yè)設(shè)計(jì)的,謝謝你們。

參考文獻(xiàn)

[1] 康華光,《電子技術(shù)基礎(chǔ).數(shù)字部分(第四版)》[M],北京:高等教育出版社,2003.

[2] 李廣弟,《單片機(jī)基礎(chǔ)》[M],北京:北航出版社,2001.

[3] 梁超,一款基于單片機(jī)技術(shù)的電子搶答器[J ],機(jī)電工程技術(shù),2005,34(1). [4] 李朝青,單片機(jī)原理及接口技術(shù)[M],北京:北京航空航天大學(xué)出版社,1999. [5] 齊向東,多功能數(shù)字顯示搶答器[J ].黃石高等專科學(xué)院學(xué)報(bào),1996.

附錄

附錄1數(shù)字搶答器原理圖

附錄2 AT89S52芯片主程序

#include #define uchar unsigned char

sbit P2_4=P2^4;///加1鍵 sbit P2_5=P2^5;//減1鍵 sbit P2_6=P2^6;//確認(rèn)鍵 sbit P2_7=P2^7;//蜂鳴器

uchar a=20,b=0,c=0;unsigned

int gong=100,yi=100,er=100,san=100,si=100,wu=100,liu=100,qi=100,ba=100;//8組得分變量

uchar disp[]={0,0,0,0};//四個(gè)顯示單元

uchar dispbit[]={0xfe,0xfd,0xfb,0xf7};//數(shù)碼管掃描代碼 uchar dispcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xbf};//共陽數(shù)碼管數(shù)字代碼

//------------------------數(shù)碼管顯示子程序

void display(void){ uchar i,j;disp[3]=b;//求得四個(gè)單元值 disp[2]=10;disp[1]=a/10;disp[0]=a%10;for(i=0;i<4;i++)//循環(huán)四次送四個(gè)單元供顯示 { P0=dispcode[disp[i]];P2=dispbit[i];for(j=0;j<255;j++);} } //--------------void display1(void){ uchar i,j;disp[3]=b;disp[2]=gong/100;disp[1]=gong%100/10;disp[0]=gong%100%10;for(i=0;i<4;i++){ P0=dispcode[disp[i]];P2=dispbit[i];for(j=0;j<255;j++);} } //------------中斷定時(shí)50ms子程序 void t0(void)interrupt 1 using 1 { c++;TH0=0x3c;//定時(shí)器0附初值 TL0=0xb0;} //--------------------------void main(void){unsigned int d;//條件判斷,用于第一個(gè)人按到后,后面的人再按不管用.TMOD=0x01;//用定時(shí)器定時(shí)50MS TH0=0x3c;//定時(shí)器0附初值 TL0=0xb0;ET0=1;EA=1;while(1){ P2_7=1;// display();if(c==20)// { c=0;a--;} if(P2_4==0)// { while(P2_4==0);// if(a==99){ a=0;a--;} a++;//} if(P2_5==0)//{ while(P2_5==0);if(a==0)a=100;a--;} if(P2_6==0)//蜂鳴器不響 一秒到,秒減1 加1鍵 松開鍵 定時(shí)加1 減1鍵 確認(rèn)鍵 { while(P2_6==0);TR0=1;} if(a==0)//定時(shí)時(shí)間到報(bào)警一直響 { TR0=0;P2_7=0;} if(tj==1){ while(P2_6==1){ display1();if(P2_4==0){ while(P2_4==0);if(b==1)//加分

{ yi=yi+10;gong=yi;}

if(b==2){er=er+10;gong=er;}

if(b==3){san=san+10;gong=san;}

if(b==4){si=si+10;gong=si;}

if(b==5){wu=wu+10;gong=wu;}

if(b==6){liu=liu+10;gong=liu;}

if(b==7){qi=qi+10;gong=qi;}

if(b==8){ba=ba+10;gong=ba;}

} if(P2_5==0){while(P2_5==0);if(b==1){yi=yi-10;gong=yi;}//減分

if(b==2){er=er-10;gong=er;}

if(b==3){san=san-10;gong=san;}

if(b==4){si=si-10;gong=si;}

if(b==5){wu=wu-10;gong=wu;}

if(b==6){liu=liu-10;gong=liu;}

if(b==7){qi=qi-10;gong=qi;}

if(b==8){ba=ba-10;gong=ba;}

} }while(P2_6==0);tj=0;a=20,b=0;} if(tj==0){ switch(P1&0xff)//程序判斷是哪一組搶答 {case 0xef:b=5;TR0=0;P2_7=0;tj=1;for(d=0;d<10000;d++);gong=wu;break;case 0xdf:b=6;TR0=0;P2_7=0;tj=1;for(d=0;d<10000;d++);gong=liu;break;case 0xbf:b=7;TR0=0;P2_7=0;tj=1;for(d=0;d<10000;d++);gong=qi;break;case 0x7f:b=8;TR0=0;P2_7=0;tj=1;for(d=0;d<10000;d++);gong=ba;break;case 0xfe:b=1;TR0=0;P2_7=0;tj=1;for(d=0;d<10000;d++);gong=yi;break;case 0xfd:b=2;TR0=0;P2_7=0;tj=1;for(d=0;d<10000;d++);gong=er;break;case 0xfb:b=3;TR0=0;P2_7=0;tj=1;for(d=0;d<10000;d++);gong=san;break;case 0xf7:b=4;TR0=0;P2_7=0;tj=1;for(d=0;d<10000;d++);gong=si;break;default: break;} } } }

第二篇:C語言實(shí)驗(yàn)報(bào)告,含遞歸(帶程序)

一、寫一個(gè)函數(shù)intdigit(int n,int k),它返回?cái)?shù)n的從右邊向左的第k個(gè)十進(jìn)數(shù)字位值。例如,函數(shù)調(diào)用digit(1234,2)將返回值3。

二、寫一個(gè)函數(shù)intisprime(intn),當(dāng)n是質(zhì)數(shù)時(shí),函數(shù)返回非零值;當(dāng)n是合數(shù)時(shí),函數(shù)返回零值。

三、寫一個(gè)函數(shù)reverse(chars[]),將字符串s[]中的字符存儲(chǔ)位置顛倒后重新存于s[]中。試分別用遞歸和非遞歸兩種形式編寫。

四、寫一個(gè)主函數(shù)輸入測試數(shù)據(jù)(自己指定),并調(diào)用上述函數(shù),檢查函數(shù)功能的正確性。要求:把預(yù)備知識(shí)、步驟、程序框圖、調(diào)試好的程序及存在的問題寫在下面(不夠可以附頁)。

#include

#include

intdigit(int n,int k);

intisprime(intn);

void reverse(chars[]);//非遞歸實(shí)現(xiàn)

void reverse1(chars[]);//遞歸實(shí)現(xiàn)

int digit(int n,int k)

{

int m1,m2,i;

m1=n;

m2=0;

while(m1!=0)//統(tǒng)計(jì)n數(shù)字的位數(shù)

{

m1=m1/10;

m2=m2+1;

}

if(k<=0||k>m2)return 0;//不能正確截取

m1=n;

for(i=1;i

m1=m1/10;

m2=m1%10;//取第k位

return m2;

}

intisprime(intn)//是素?cái)?shù)返回1,是合數(shù)返回0

{

int i;

if(n<0)

n=-n;

if(n==1)return 0;

for(i=2;i<=n/2;i++)

if(n%i==0)

break;

if(i>n/2)

return 1;

else

return 0;

}

void reverse(chars[],int len)//非遞歸,字符串倒置 {

int i;char ch;

for(i=0;i

{

ch=s[i];s[i]=s[len-1-i];s[len-1-i]=ch;

}

}

voidreverse1(chars[],int m,int n)//遞歸方法實(shí)現(xiàn) {

char ch;

ch=s[m];s[m]=s[n];s[n]=ch;

if(m<=n)

reverse1(s,m+1, n-1);

}

void main()

{

int n=123456,k=4,len;

char str[80]=“abcdefghij”,str1[80],str2[80];

if(digit(n,k)==0)

printf(“%d輸入錯(cuò)誤n”,k);

else

printf(“%d的右邊第%d位是:%dn”,n,k,digit(n,k));

if(isprime(k)==0)

printf(“%d是合數(shù)n”,k);

else

printf(“%d是素?cái)?shù)n”,k);

len=strlen(str);

printf(“原字符串n”);

strcpy(str1,str);

puts(str1);

reverse(str1,len);

printf(“倒置以后的字符串n”);

puts(str1);

}printf(“原字符串n”);strcpy(str2,str);puts(str2);reverse1(str2,0,len-1);printf(“倒置以后的字符串n”);puts(str2);

第三篇:4路搶答器設(shè)計(jì)程序

#include

unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,//0~f顯示表

0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};unsigned char code table0[]={0xf1,0xf2,0xf4,0xf8};

//P2口位選

unsigned char code table2[]={0xef,0xdf,0xbf,0x7f};

//P3口送行信號(hào) unsigned char display[]={0,0,0,0};//顯示位 void sw1();

//子函數(shù)申明 void sw2();void sw3();void sw4();void xianshi();void init();unsigned char temp,num2,x,x1,x2,a,count;

//變量聲明 int num,num1;unsigned char key;unsigned char i,j;sbit P3_4=P3^4;sbit P3_5=P3^5;sbit P3_6=P3^6;sbit P3_7=P3^7;sbit k1=P1^0;

//位申明(時(shí)間加)sbit k2=P1^1;

//位申明(時(shí)間減)sbit k3=P1^2;

//位申明(開始)sbit k4=P1^3;

//位申明(復(fù)位)sbit sp=P1^4;

//蜂鳴器 sbit l1=P1^5;

//LED顯示 sbit l2=P1^6;

//LED顯示

void delay(unsigned char z)

//延時(shí)1ms子函數(shù) {

unsigned char x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);}

void init()

//初始化子函數(shù) { a=0;TMOD=0x01;

//定時(shí)器T0工作方式設(shè)定

TH0=(65536-10000)/256;//裝初值

TL0=(65536-10000)%256;EA=1;

//開定時(shí)器T0 ET0=1;

if(k1==0)

//判斷時(shí)間加K1是否按下

{

delay(5);

//延時(shí)躲過抖動(dòng)

if(k1==0)

//再次確認(rèn)是否按下K1

{

num++;

//時(shí)間自加1

if(num==99)

//如果時(shí)間num=99,清零num

{

num=0;

}

num2=num;

//將num值賦值給num2

while(k1==0);//等待K1松手

}

}

if(k2==0)

//判斷時(shí)間減K2是否按下

{

delay(5);

//延時(shí)躲過抖動(dòng)

if(k2==0)

//再次確認(rèn)是否按下K2

{

num--;

//時(shí)間自減1

if(num==-1)//如果時(shí)間num=-1,賦值num=99

{

num=99;

}

num2=num;//將num值賦值給num2

while(k2==0);//等待K2松手

}

}

if(k3==0)

//判斷開始按鈕K3是否按下

{

delay(5);

//延時(shí)躲過抖動(dòng)

if(k3==0)//再次確認(rèn)是否按下K3

{

x++;

//自加1

if(x==2)//假如x=2,清零x

{

x=0;

}

}

} }

void keyboad()

//按鍵檢測子函數(shù) { while(1)

{

P3=0xff;

//讀引腳前需寫入高電平

P3_4=0;

//置第一行線為低

temp=P3;

//P3口信息送入temp中

temp=temp & 0x0f;//屏蔽高四位,保留低四位

if(temp!=0x0f)//判斷:假如列線有不為高的時(shí)候,執(zhí)行if循環(huán)體

{

delay(5);//延時(shí)躲過抖動(dòng)

temp=P3;

temp=temp & 0x0f;

if(temp!=0x0f)

{

temp=P3;

temp=temp & 0x0f;//判斷是哪個(gè)鍵按下

switch(temp)

{

case 0x0e: //第一行第四個(gè)按下

{delay(5);num1=4;l2=0;xianshi();} //第一行第一個(gè)鍵按下

break;

case 0x0d:

//第一行第三個(gè)按下

{delay(5);num1=3;l2=0;xianshi();}

break;

case 0x0b:

//第一行第二個(gè)按下

{delay(5);num1=2;l2=0;xianshi();}

break;

case 0x07: //第一行第一個(gè)按下

{delay(5);num1=1;l2=0;xianshi();} break;//第一行第一個(gè)鍵按下

}

}

}

P3=0xff;

P3_5=0;

temp=P3;

temp=temp & 0x0f;

if(temp!=0x0f)

{

delay(5);//延時(shí)躲過抖動(dòng)

temp=P3;

temp=temp & 0x0f;

if(temp!=0x0f)

{

temp=P3;

temp=temp & 0x0f;

switch(temp)

{

case 0x0e:

{delay(5);num1=8;l2=0;xianshi();} break;

case 0x0d:

{delay(5);num1=7;l2=0;xianshi();} break;

case 0x0b:

{delay(5);num1=6;l2=0;xianshi();} break;

case 0x07:

{delay(5);num1=5;l2=0;xianshi();} break;

}

}

}

P3=0xff;

P3_6=0;

temp=P3;

temp=temp & 0x0f;

if(temp!=0x0f)

{

delay(5);//延時(shí)躲過抖動(dòng)

temp=P3;

temp=temp & 0x0f;

if(temp!=0x0f)

{

temp=P3;

temp=temp & 0x0f;

switch(temp)

{

case 0x0e:

{delay(5);num1=12;l2=0;xianshi();} break;

case 0x0d:

{delay(5);num1=11;l2=0;xianshi();} break;

case 0x0b:

{delay(5);num1=10;l2=0;xianshi();} break;

case 0x07:

{delay(5);num1=9;l2=0;xianshi();} break;

//第二行第四個(gè)鍵按下//第二行第三個(gè)鍵按下//第二行第二個(gè)鍵按下//第二行第一個(gè)鍵按下//第三行第四個(gè)鍵按下//第三行第三個(gè)鍵按下//第三行第二個(gè)鍵按下//第三行第一個(gè)鍵按下

}

}

}

P3=0xff;

P3_7=0;

temp=P3;

temp=temp & 0x0f;

if(temp!=0x0f)

{

delay(5);//延時(shí)躲過抖動(dòng)

temp=P3;

temp=temp & 0x0f;

if(temp!=0x0f)

{

temp=P3;

temp=temp & 0x0f;

switch(temp)

{

case 0x0e:

{delay(5);num1=16;l2=0;xianshi();} break;

case 0x0d:

{delay(5);num1=15;l2=0;xianshi();} break;

case 0x0b:

{delay(5);num1=14;l2=0;xianshi();} break;

case 0x07:

{delay(5);num1=13;l2=0;xianshi();} break;

}

temp=P3;

P0=table[key];

}

}

} }

void xianshi(){

TR0=0;

//停止定時(shí)計(jì)數(shù)

num=0;

//倒計(jì)時(shí)num清零

sp=1;

//成功搶答,蜂鳴器叫

delay(100);

//延時(shí)一段時(shí)間

sp=0;

//關(guān)蜂鳴器

//第四行第四個(gè)鍵按下//第四行第三個(gè)鍵按下//第四行第二個(gè)鍵按下//第四行第一個(gè)鍵按下

while(1)

{

for(a=0;a<4;a++)//顯示部分位選

{

delay(5);

P2=table0[a];

P0=table[display[a]];

}

display[0]=num/10;

//倒計(jì)時(shí)顯示0

display[1]=num%10;

display[2]=num1/10;

//顯示搶答者號(hào)

display[3]=num1%10;

if(k4==0)

//判斷復(fù)位鍵K4是否按下

{

num=num2;

//num2值賦值給num

num1=0;

//清零搶答者號(hào)顯示

TR0=1;

//啟動(dòng)定時(shí)器TO

l1=1;

//D1,D2關(guān)閉

l2=1;

return;

}

} }

void main()

//主函數(shù) {

l1=1;

//D1,D2關(guān)閉

l2=1;

sp=0;//初始化蜂鳴器

x=0;

num=num2=30;

//賦初值

while(1)

{

if(x==1)

//開始鍵按下

{

delay(5);

TR0=1;

//啟動(dòng)定時(shí)

while(1)

{

keyboad();//調(diào)用按鍵檢測子函數(shù)

if(k4==0)//判斷復(fù)位鍵是否按下

{

l1=1;//D1,D2關(guān)閉

l2=1;

delay(5);

num=num2;//倒計(jì)時(shí)時(shí)間30秒賦值給num

TR0=1;//啟動(dòng)定時(shí)器T0

}

}

}

else

//開始鍵沒有按下

{

for(a=0;a<4;a++)

//顯示部分位選

{

delay(5);

P2=table0[a];

P0=table[display[a]];

}

display[0]=num/10;//倒計(jì)時(shí)顯示0

display[1]=num%10;

display[2]=num1/10;

//顯示搶答者號(hào)

display[3]=num1%10;

init();

//初始化

}

} }

void time0()interrupt 1 //定時(shí)器T0中斷 {

TH0=(65536-10000)/256;

//重裝初值

TL0=(65536-10000)%256;count++;

//中斷次數(shù)記錄

if(k4==0)

//復(fù)位鍵K4檢測

{

num=num2;

TR0=1;

num1=0;

return;

}

for(a=0;a<4;a++)

{

delay(10);

P2=table0[a];

P0=table[display[a]];

} display[0]=num/10;

//倒計(jì)時(shí)顯示0

display[1]=num%10;

display[2]=num1/10;//顯示搶答者號(hào)

display[3]=num1%10;

if(count==100)

//1秒定時(shí)是否已到

{

count=0;

//清零記錄

num--;

//顯示倒計(jì)時(shí)自減一

if(num<6)

//倒計(jì)時(shí)倒數(shù)6秒,D2亮,蜂鳴器報(bào)警

{

l1=~l1;

sp=1;

delay(100);

sp=0;

if(num==0)

//倒計(jì)時(shí)為0,D2亮,蜂鳴器報(bào)警

{

l1=0;

sp=1;delay(200);sp=0;

delay(100);

sp=1;delay(200);sp=0;

delay(100);

sp=1;delay(200);sp=0;

}

if(num==0)

{

while(1)

{

xianshi();

//調(diào)用延時(shí)子函數(shù)

if(k4==0)//假如復(fù)位鍵按下

{

l1=1;

//D1,D2滅

l2=1;

num=num2;//30秒倒計(jì)時(shí)賦值給num

TR0=1;//啟動(dòng)定時(shí)器T0

return;

}

}

}

} } x2++;if(x2==4){

x2=0;} P3=table2[x2];

//分別給行線送低電?

第四篇:C程序?qū)嶒?yàn)報(bào)告

工程學(xué)院 實(shí) 驗(yàn) 報(bào) 告

課 程 名 稱: c程序設(shè)計(jì) 課 程 代 碼: 8234510 學(xué)院(直屬系): 年級(jí)/專業(yè)/班:

2010級(jí)汽電1班

學(xué) 生 姓 名: 學(xué) 號(hào): 31201008030 實(shí)驗(yàn)總成績: 任 課

教 師: 開 課 學(xué) 院: 工程學(xué)院 實(shí)驗(yàn)中心名稱: 交通實(shí)驗(yàn)中心

西華大學(xué)實(shí)驗(yàn)報(bào)告(理工類)

開課學(xué)院及實(shí)驗(yàn)室:汽車學(xué)院機(jī)房(5d-215)實(shí)驗(yàn)時(shí)間: 年 月 日

1、實(shí)驗(yàn)?zāi)康?/p>

2、實(shí)驗(yàn)設(shè)備、儀器及材料

3、實(shí)驗(yàn)內(nèi)容

一般實(shí)驗(yàn): 3.1實(shí)驗(yàn)方案設(shè)計(jì)與選擇(設(shè)計(jì)性、創(chuàng)新性實(shí)驗(yàn)需寫該項(xiàng)內(nèi)容)3.2實(shí)驗(yàn)原理及實(shí)驗(yàn)步驟(實(shí)驗(yàn)工作原理或?qū)嶒?yàn)的主要操作過程)3.3實(shí)驗(yàn)記錄(核心代碼及調(diào)試過程)

注解:理工科實(shí)驗(yàn)需記錄實(shí)驗(yàn)過程中的數(shù)據(jù)、圖表、計(jì)算、現(xiàn)象觀察等,實(shí)驗(yàn)過程中出現(xiàn)的問題; 其它如在計(jì)算機(jī)上進(jìn)行的編程、仿真性或模擬性實(shí)驗(yàn)需記錄程序核心代碼以及程序在調(diào)式過程中出現(xiàn)的問題及解決方法;記錄程序執(zhí)行的結(jié)果。

上機(jī)實(shí)驗(yàn):

3.1上機(jī)實(shí)驗(yàn)的內(nèi)容及要求

3.2算法設(shè)計(jì)思想與算法實(shí)現(xiàn)步驟 3.3程序核心代碼,程序調(diào)試過程中出現(xiàn)的問題及解決方法 3.4 程序運(yùn)行的結(jié)果

4、實(shí)驗(yàn)總結(jié)

4.1實(shí)驗(yàn)結(jié)果分析及問題討論 4.2實(shí)驗(yàn)總結(jié)心得體會(huì)

注解:實(shí)驗(yàn)總結(jié)的內(nèi)容根據(jù)不同學(xué)科和類型實(shí)驗(yàn)要求不一樣,一般理工科類的實(shí)驗(yàn)需要對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析,并且對(duì)實(shí)驗(yàn)過程中問題進(jìn)行討論;在計(jì)算機(jī)上進(jìn)行的編程、仿真性或模擬性實(shí)驗(yàn)需要對(duì)上機(jī)實(shí)踐結(jié)果進(jìn)行分析,上機(jī)的心得體會(huì)及改進(jìn)意見。其它實(shí)驗(yàn)應(yīng)總結(jié)實(shí)驗(yàn)過程寫出心得體會(huì)及改進(jìn)意見。

1、實(shí)驗(yàn)?zāi)康?1)熟悉c語言的集成環(huán)境,了解菜單的使用方法。(2)掌握c語言程序上機(jī)的編輯、編譯、連接、運(yùn)行的基本步驟。(3)了解c語言程序的結(jié)構(gòu)。

2、實(shí)驗(yàn)設(shè)備、儀器及材料(1)硬件環(huán)境

微型計(jì)算機(jī)(intel x86系列cpu)一臺(tái)(2)軟件環(huán)境 windows98/2000/xp操作系統(tǒng) vc6.0集成開發(fā)環(huán)境

3、實(shí)驗(yàn)內(nèi)容

3.1上機(jī)實(shí)驗(yàn)的內(nèi)容及要求(1)熟悉vc中常用菜單項(xiàng)及對(duì)應(yīng)快捷鍵的使用方法。(2)熟悉c語言程序上機(jī)的編輯、編譯、連接、運(yùn)行的基本步驟。(3)編程實(shí)現(xiàn)一個(gè)字符串的輸出。(4)編程輸出兩個(gè)數(shù)的最大值。(5)計(jì)算由鍵盤輸入的任意兩個(gè)整數(shù)的積。3.2算法設(shè)計(jì)思想與算法實(shí)現(xiàn)步驟(1)編程實(shí)現(xiàn)一個(gè)字符串的輸出為程序一,編程中,定義一個(gè)空函數(shù)后,直接由利用printf輸出字符串。(2)編程輸出兩個(gè)數(shù)的最大值為程序二,編程中,用scanf函數(shù)輸入兩個(gè)數(shù),再用選擇函數(shù)判定兩數(shù)大小,最后用printf函數(shù)輸出最大值。(3)計(jì)算由鍵盤輸入的任意兩個(gè)整數(shù)的積為程序三,編程中,用scanf函數(shù)輸入兩數(shù),再由乘積函數(shù)進(jìn)行求積運(yùn)算。

3.3程序核心代碼,程序調(diào)試過程中出現(xiàn)的問題及解決方法

(1)程序核心代碼

程序一:

#include void main(){ printf(this is a c program,一定能學(xué)好!.n);} 程序二:

#include void main(){ float a,b,m;printf(請(qǐng)輸入兩個(gè)數(shù)a和bn);scanf(%f,%f,&a,&b);/*scanf 函數(shù)直接輸入修飾符(%f)*/ if(a>b)m=a;else m=b;printf(最大數(shù)為%7.4fn,m);/*printf 可以加a=;;;*/ } 程序三:

#include void main(){ int a,b,c;printf(請(qǐng)輸入兩個(gè)整數(shù)a和bn);scanf(%d,%d,&a,&b);c=a*b;printf(c=%dn,c);}(2)程序調(diào)試過程中出現(xiàn)的問題及解決方法 程序二丟失“;” 程序三丟失“)”

當(dāng)分別添加上丟失的符號(hào)后,問題解決,程序編輯成功。3.4 程序運(yùn)行的結(jié)果

程序一運(yùn)行結(jié)果:

程序二運(yùn)行結(jié)果:

程序三運(yùn)行結(jié)果:

4、實(shí)驗(yàn)總結(jié)

4.1程序運(yùn)行結(jié)果分析及思考題討論

根據(jù)程序運(yùn)行結(jié)果和編程之前的預(yù)期結(jié)果一致,說明編程成功。

對(duì)于程序的結(jié)構(gòu)應(yīng)該熟記在心,而且在vc6.0集成開發(fā)環(huán)境中不需要用戶去進(jìn)行連接的操作,這一步的操作電腦會(huì)自動(dòng)完成。4.2實(shí)驗(yàn)總結(jié)心得體會(huì)

對(duì)第一次c語言編程上機(jī)實(shí)驗(yàn),對(duì)編程還有很多不是很熟悉的地方,需要在接下來的學(xué)習(xí)中進(jìn)一步熟

練掌握操作。而且在以后的編程中對(duì)于printf,csanf函數(shù)的運(yùn)用將會(huì)更多。在編程中還必須小心翼翼,如果出現(xiàn)編譯錯(cuò)誤,可參看界面下方的錯(cuò)誤提示,這對(duì)于編程成功很有幫助。

1、實(shí)驗(yàn)?zāi)康钠篶程序設(shè)計(jì)實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告

實(shí) 驗(yàn) 報(bào) 告

工學(xué)院 土木工程專業(yè) 09級(jí) 2011 至 2012 學(xué) 第 1 學(xué)期

學(xué)號(hào):xxxxxx 姓名:xxxxxx 2011 年10月 08日 第3~4節(jié) 綜合 樓 325教室 篇三:c語言實(shí)驗(yàn)報(bào)告1 實(shí)驗(yàn)名稱:熟悉c程序的運(yùn)行環(huán)境

一、實(shí)驗(yàn)?zāi)康暮鸵?/p>

了解turbo c++ 3.0的基本操作方法,學(xué)會(huì)獨(dú)立使用該系統(tǒng)

編輯、編譯、連接和運(yùn)行一個(gè)c程序

通過運(yùn)行簡單的c程序,初步了解c源程序的特點(diǎn)

二、實(shí)驗(yàn)內(nèi)容和原理

1.輸入并運(yùn)行一個(gè)簡單、正確的程序 # include void main(){ printf(this is a c programn);} 2.輸入一個(gè)有錯(cuò)誤的程序,修改錯(cuò)誤,直到程序能正確運(yùn)行,分析程序運(yùn)行結(jié)果。# include void main(){ int a, b, sum a=123;b=456;sum=a+b printf(sum is %dn, sum);} 3.輸入并運(yùn)行一個(gè)需要在運(yùn)行時(shí)輸入數(shù)據(jù)的程序,輸入數(shù)據(jù),觀察運(yùn)行結(jié)果。# include void main(){ int max(int x, int y);int a, b, c;scanf(%d, %d, &a, &b);c=max(a, b);printf(max=%d,c);} int max(int x, int y){ int z;z=y;if(x>y)z=x;return(z);}

三、實(shí)驗(yàn)環(huán)境 1.硬件:pc機(jī);

2.軟件:windows操作系統(tǒng)、turboc++ 3.0。

四、算法描述及實(shí)驗(yàn)步驟 1.內(nèi)容1(1)啟動(dòng)tc++3.0,新建一個(gè)c文件;

(2)輸入程序1;

(3)保存文件;

(4)編譯源程序,觀察屏幕上顯示的編譯信息,修改出現(xiàn)的錯(cuò)誤,直到編譯成功,再次保存文件;

(5)連接程序、運(yùn)行程序,觀察運(yùn)行結(jié)果。2.內(nèi)容2(1)啟動(dòng)tc++3.0,新建一個(gè)c文件;

(2)輸入程序2;

(3)保存文件;

(4)編譯源程序,觀察屏幕上顯示的編譯信息,修改出現(xiàn)的錯(cuò)誤,直到編譯成功;

(5)連接程序、運(yùn)行程序,觀察運(yùn)行結(jié)果。3.內(nèi)容3(1)啟動(dòng)tc++3.0,新建一個(gè)c文件;

(2)輸入程序2;

(3)保存文件;

(4)編譯源程序,觀察屏幕上顯示的編譯信息,修改出現(xiàn)的錯(cuò)誤,直到編譯成功;

(5)連接程序、運(yùn)行程序;

(6)輸入數(shù)據(jù),觀察運(yùn)行結(jié)果。

五、調(diào)試過程

1.輸入后,按alt+f9編譯,出現(xiàn)如下信息:

成功編譯。

2.輸入后,按alt+f9編譯,出現(xiàn)如下信息:

經(jīng)分析是由于int a, b, sum與sum=a+b倆句未加;導(dǎo)致。3.輸入后,按alt+f9編譯,出現(xiàn)如下信息:

經(jīng)分析是由于int a, b, c句未加;導(dǎo)致。

修改后編譯結(jié)果如下:

六、實(shí)驗(yàn)結(jié)果

1.2.3.輸入123,654運(yùn)行結(jié)果如下:

輸入1989,1988運(yùn)行結(jié)果如下:

七、總結(jié)

經(jīng)過本次上機(jī)實(shí)驗(yàn),我基本了解turbo c++ 3.0的操作方法,學(xué)會(huì)在該系統(tǒng)上編輯、編譯、連接和運(yùn)行一個(gè)c程序。同時(shí)也明白在編譯過程中應(yīng)留心一些細(xì)節(jié)問題(如一個(gè)語句結(jié)束要加“;”),也學(xué)會(huì)通過編譯錯(cuò)誤信息找出錯(cuò)誤,并修正錯(cuò)誤。

實(shí)驗(yàn)名稱:數(shù)據(jù)類型、函數(shù)和表達(dá)式

八、實(shí)驗(yàn)?zāi)康暮鸵?/p>

掌握c語言數(shù)據(jù)類型,熟悉如何定義整型、字符型和實(shí)型變量并賦值 掌握不同類型數(shù)據(jù)之間賦值的規(guī)律

學(xué)會(huì)使用c的有關(guān)算法運(yùn)算符及表達(dá)式,特別是自加(++)和自減(--)運(yùn)算符的使用 進(jìn)一步熟悉c程序的編輯、編譯、連接和運(yùn)行的過程

九、實(shí)驗(yàn)內(nèi)容和原理

2.輸入并運(yùn)行下面程序,分析運(yùn)行結(jié)果。# include void main(){ char c1, c2;c1=a;c2=b;printf(%c%c, c1, c2)} 3.輸入并運(yùn)行下面程序,分析運(yùn)行結(jié)果。# include void main(){ char c1=a,c2=b,c3=c,c4=101,c5=116;printf(a%c b%ctc%ctabcn,c1,c2,c3);printf(tb%c %c,c4,c5);} 4.輸入并運(yùn)行下面程序,分析運(yùn)行結(jié)果。# include void main(){ int a, b;unsigned c,d;long e,f;a=100;b=-100;e=50000;f=32767;c=a;d=b;printf(%d, %dn, a, b);printf(%u, %un, a, b);printf(%u, %un, c, d);c=a=e;d=b=f;printf(%d, %dn, a, b);printf(%u, %un, c, d);} 5.輸入并運(yùn)行下面程序,分析運(yùn)行結(jié)果。# include void main(){ int i,j,m,n; i=8; j=10;

m=++i; n=j++; printf(%d,%d,%d,%d,i,j,m,n); }

十、實(shí)驗(yàn)環(huán)境 1.硬件:pc機(jī);

2.軟件:windows操作系統(tǒng)、turboc++ 3.0。

十一、算法描述及實(shí)驗(yàn)步驟

(1)啟動(dòng)tc++3.0,新建一個(gè)c文件;

(2)輸入程序;

(3)保存文件;

(4)編譯源程序,觀察屏幕上顯示的編譯信息,修改出現(xiàn)的錯(cuò)誤,直到編譯成功;

(5)連接程序、運(yùn)行程序,觀察分析運(yùn)行結(jié)果。

十二、調(diào)試過程 1.經(jīng)分析錯(cuò)誤是由于printf(%c%c, c1, c2)后未加;導(dǎo)致。

修改后運(yùn)行如下:

2.成功運(yùn)行 3.printf(%u, %un a, b);改成printf(%u, %un, a, b);成功運(yùn)行 4.

成功運(yùn)行。

十三、實(shí)驗(yàn)結(jié)果 1.2.3.4.十四、總結(jié)篇四:c程序?qū)嶒?yàn)報(bào)告

《程序設(shè)計(jì)綜合訓(xùn)練》

第一部分 設(shè) 計(jì) 報(bào) 告 專 業(yè): 軟件工程 班 級(jí): 12軟件1 學(xué) 號(hào): 12144131 姓 名: 陳 雷 指導(dǎo)教師: 錢 進(jìn)、呂 萍 成 計(jì)算機(jī)工程學(xué)院 2013年3月 目 錄

(1)題目名稱、內(nèi)容、來源(如2010年省計(jì)算機(jī)等級(jí)考試秋季上機(jī)試卷2)。

(2)解題的基本思路,(3)設(shè)計(jì)方案,功能模塊框圖與程序流程圖等。

(4)算法設(shè)計(jì):算法描述、實(shí)現(xiàn)方法、詳細(xì)流程圖等。

(5)源代碼:主要模塊的代碼與注釋。

(6)程序調(diào)試:調(diào)試過程與步驟,發(fā)現(xiàn)的問題,解決的辦法等。

(7)測試:運(yùn)行程序,輸入測試數(shù)據(jù),判斷是否達(dá)到預(yù)期目的。測試數(shù)據(jù)要有

典型意義,要注意臨界值的選取,注意測試數(shù)據(jù)的廣泛性和普適性。第二部分

(1)題目名稱、內(nèi)容。

(2)解題的基本思路,(3)設(shè)計(jì)方案,功能模塊框圖與程序流程圖等。

(4)算法設(shè)計(jì):算法描述、實(shí)現(xiàn)方法、詳細(xì)流程圖等。

(5)程序調(diào)試:調(diào)試過程與步驟,發(fā)現(xiàn)的問題,解決的辦法等。

(6)測試:運(yùn)行程序,輸入測試數(shù)據(jù),判斷是否達(dá)到預(yù)期目的。測試數(shù)據(jù)要有

典型意義,要注意臨界值的選取,注意測試數(shù)據(jù)的廣泛性和普適性。

(7)總結(jié):收獲與體會(huì),有實(shí)際內(nèi)容,忌空洞無物,忌千篇一律,400字左右。

(8)附錄:源代碼(含注釋)。

第一部分

2010秋03等級(jí)考試 1.編寫函數(shù)int noco(int n,int *a)。函數(shù)動(dòng)能是驗(yàn)證是驗(yàn)證n的立方可表示為n個(gè)連續(xù)奇數(shù)之和,若找到這樣的表示則將連續(xù)奇數(shù)按從小到大的順序存放到a指向的數(shù)組中并且函數(shù)返回1,否則函數(shù)返回0。2.編寫函數(shù)main。函數(shù)功能是聲明數(shù)組a,分別用整數(shù)1~10及數(shù)組a作為實(shí)參調(diào)用函數(shù)noco,并將結(jié)果數(shù)據(jù)按以下屏幕輸出所示形式輸出到屏幕及文件myf2.out中。#include int noco(int n,int *a){ int i=1,k=1,j=1,sum=0,m;} void main(){ file *fp;int i,n,k,a[10];fp=fopen(myf2.out,w);for(n=1;n<=10;n++){ k=noco(n,a);} fprintf(fp,my exam number is :11142116);if(k){

printf(%d^3=,n);

} else {

printf(false);} fprintf(fp,false);fprintf(fp,%d^3=,n);for(i=0;i

} k=k-2;for(j=0;j

1.編寫函數(shù)long find_m(int n)。函數(shù)功能是查找滿足以下條件的整數(shù)m:(1)m是 n的整數(shù)倍;(2)m的十進(jìn)制表示中僅由0和1組成。函數(shù)返回找到的m的值。2.編寫main 函數(shù)。函數(shù)功能是聲明變量n和m,輸入一個(gè)整數(shù)到n中(n<100), 用n作實(shí)參調(diào)用函數(shù)find_m,將n及找到的整數(shù)m輸出到屏幕及文件myf2.out.#include long find_m(int n){ int flag1=1,flag2;} void main(){ file *fp;int n;long m;fp=fopen(myf2.out,w);long m1,m2,k;k=2;while(flag1){ flag2=1;} return m1;m1=m2=n*k;while(m2&&flag2){ if(m2%10!=0&&m2%10!=1)} if(m2==0)flag1=0;else k++;flag2=0;else m2=m2/10;} scanf(%d,&n);m=find_m(n);printf(nn=%dtm=%ldn,n,m);fprintf(fp,nn=%dtm=%ldn,n,m);fprintf(fp,my exam number is :11142116);fclose(fp);2011年江蘇省計(jì)算機(jī)等級(jí)考試春季上機(jī)試卷01 1.編寫函數(shù)void cresort(int a[][3],int n)。函數(shù)功能是根據(jù)a指向的二維數(shù)組中第

一列(列下標(biāo)為0)和第二列(列下標(biāo)為1)的值按如下規(guī)則生成第3列各元素的值,再以行為單位重排a數(shù)組各行元素的值,使得所有行按第3列元素從小到大有序。

第3列生成規(guī)則:

用數(shù)組a作為實(shí)參調(diào)用cresort函數(shù),將a數(shù)組中數(shù)據(jù)輸出到屏幕及文件myf2.out.#include stdio.h #define n 5 int isprime(int m){ int i;} void cresort(int a[][3],int n){ int i,j,k,m,c,t;for(i=0;i

switch(c){

case 0:a[i][2]=1;break;case 2:a[i][2]=4;break;for(i=2;i<=m/2;i++)if(m%i==0)return 0;return 1;篇五:c程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告

《c語言程序設(shè)計(jì)》實(shí)驗(yàn)報(bào)告

學(xué)號(hào) 不告訴你哦~ 班級(jí) 信管一班 姓名 你猜猜~哈哈

一、實(shí)驗(yàn)題目

一、編程實(shí)驗(yàn)

猜數(shù)問題:輸入兩個(gè)整數(shù),并求這兩個(gè)整數(shù)的和,輸入所猜的結(jié)果,如果輸入數(shù)比正確的結(jié)果要大,提示“猜大了”;如果輸入數(shù)比正確的結(jié)果要小,提示“猜小了”;當(dāng)猜對(duì)結(jié)果時(shí)提示“猜對(duì)了”,結(jié)束游戲(用函數(shù)調(diào)用方式編程)。

二、程序改錯(cuò)實(shí)驗(yàn)

輸入一個(gè)數(shù)字 b,求sum=b+bb+bbb+?,改正下列程序中的錯(cuò)誤。#include “stdio.h” main(){ int i,j;long int b,sum,temp;scanf(“%d”,&b);do { i++;for(j=0;j<=i;j++)temp+=(long int)pow(10,j-1)*b;sum+=temp;} while(i<=3)printf(“sum=%d”,sum);}

三、編程實(shí)驗(yàn)

編寫兩個(gè)矩陣相加減的程序,兩矩陣的行列數(shù)均由用戶輸入(兩矩陣的行列數(shù)要限制最大值),在屏幕上分行列打印出結(jié)果(矩陣元素為整型變量)。

解析:兩個(gè)矩陣可以定義兩個(gè)二維數(shù)組matrixl[m][n],matrix2[m][n]存放,用二重循環(huán)進(jìn)行輸入輸出或?qū)崿F(xiàn)對(duì)應(yīng)元素的相加或相減運(yùn)算,相加后矩陣元素存放在matrixl中,相減后矩陣元素存放在matrix2中(上機(jī)實(shí)驗(yàn)時(shí)輸入矩陣的行數(shù)m=10, 矩陣的列數(shù)n=10)。

第五篇:51單片機(jī)四路搶答器程序

#include sbit key1=P3^0;sbit key2=P3^1;sbit key3=P3^2;sbit key4=P3^3;sbit key5=P3^7;sbit BEEP=P2^0;unsigned char temp;unsigned char pulse_number1=9;unsigned char code TAB[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void delay_100ms(unsigned int t){ unsigned char i,j,k;for(i=t;i>0;i--){

for(j=200;j>0;j--);

{

for(k=248;k>0;k--);

} } } void beep(){

BEEP=1;

delay_100ms(100);

BEEP=0;

}

void T0_int()interrupt 1

{

static unsigned char count;unsigned char a=1;count++;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;if(count==20){

count=0;

P0=TAB[pulse_number1--];

}

beep();

if(pulse_number1==0)

{

P0=TAB[0];

TR0=0;

while(a)

{ beep();if(!key5)a=0;

}

}

}

void main(){

bit flag;

temp=0x00;

P2=temp;

P0=0x3f;

TMOD=0x01;

TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;EA=1;

TR0=1;

while(!flag)

{

}

while(flag);}

if(!key1){P0=0x06;beep();flag=1;TR0=0;}

else if(!key2){P0=0x5b;beep();flag=1;TR0=0;} else if(!key3){P0=0X4f;beep();flag=1;TR0=0;} else if(!key4){P0=0x66;beep();flag=1;TR0=0;}

下載搶答器~C51~帶程序(5篇)word格式文檔
下載搶答器~C51~帶程序(5篇).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)范文推薦

    幾個(gè)簡單的C程序1

    //#標(biāo)志每個(gè)程序的開頭,程序最后有功能概括 #include #include main { printf("hello,c");getchar; }//你好c程序 #include main { int a,b,sum;a=1;b=2; sum=a+b; p......

    紅綠燈C語言程序

    業(yè)余黨校筆記(全部整理) 2009年4月16日 第一講《中國共產(chǎn)黨的性質(zhì)和指導(dǎo)思想》 黨的性質(zhì),是指一個(gè)政黨所具有的質(zhì)的規(guī)定性,即它代表哪個(gè)階級(jí)利益,具有哪個(gè)階級(jí)的特性。中國共產(chǎn)......

    C程序個(gè)人總結(jié)

    個(gè)人總結(jié) 光標(biāo)靈動(dòng)地在屏幕上跳動(dòng),鼠標(biāo)優(yōu)雅地穿行其中,我輕輕按了一下回車后,我知道我們成功了C程序課題總算是快要結(jié)束了,看著我們做的程序也能有模有樣地運(yùn)行出一點(diǎn)結(jié)果,我感到......

    密立根油滴實(shí)驗(yàn)-數(shù)據(jù)處理C程序

    #include "stdio.h" #include "math.h" #define b 0.00822//修正常數(shù) #define p 101300//大氣壓強(qiáng) #define q 981//油滴密度 #define g 9.8//重力加速度 #define Pi 3.14159......

    十大C語言經(jīng)典程序

    計(jì)算機(jī)二級(jí)C語言程序必背 1、/*輸出9*9口訣。共9行9列,i控制行,j控制列。*/ #include main() {int i,j,result; for (i=1;i......

    C程序上機(jī)步驟

    C程序上機(jī)步驟 1 運(yùn)行一個(gè)C語言程序的一般過程 Turbo C是一個(gè)集源程序編輯、編譯、連接、運(yùn)行與調(diào)試于一體,用菜單驅(qū)動(dòng)的集成軟件環(huán)境。 運(yùn)行一個(gè)C語言程序的一般過程:(1)啟動(dòng)T......

    C語言程序穩(wěn)定性

    提高C語言程序運(yùn)行穩(wěn)定性的方法 一、前言 由于C語言的靈活性,用C語言開發(fā)出來的程序容易造成內(nèi)存泄漏、運(yùn)行異常、運(yùn)行結(jié)果不可預(yù)期等程序質(zhì)量問題,在用C語言開發(fā)程序的過程......

    c語言實(shí)習(xí)程序

    #include course_name(int i)/*把科目變成數(shù)字函數(shù)*/ { switch(i) { case 1:printf("英語 "); break; case 2:printf("數(shù)學(xué)"); break; case 3:printf("C語言"); break; c......

主站蜘蛛池模板: 国产网曝在线观看视频| 色喜国模李晴超大尺度| 亚洲国产成人久久综合下载| 亚洲人成无码网www电影麻豆| 国产爆乳无码一区二区麻豆| 国产美女被遭强高潮网站不再| 曰韩无码av片免费播放不卡| 日韩在线不卡免费视频一区| 国产成人亚洲精品无码青| 亚洲国产中文在线二区三区免| 久久亚洲欧美日本精品| 亚洲综合久久成人a片| 国产成人精品优优av| 天天综合色天天综合色h| 国产精品美女久久久m| 色噜噜狠狠色综合av| 亚洲人成精品久久久久桥| 国产av永久无码天堂影院| 99草草国产熟女视频在线| 国产精品免费视频色拍拍| 亚洲综合色区在线观看| 欧洲国产精品无码专区影院| 国产成人精品人人做人人爽| 亚洲精品国产自在久久| 国产精品99久久久久久宅男| 人人妻人人澡人人爽欧美一区九九| 日韩精品人妻无码久久影院| 免费一区二区三区成人免费视频| 久久久久se色偷偷亚洲精品av| 亚洲乱码伦小说区| 狠狠色丁香婷婷综合久久来来去| 国内精品久久久久久中文字幕| 亚洲中文字幕无码中文| 国产熟人av一二三区| 夜夜添无码试看一区二区三区| 无码中文字幕在线播放2| 国精产品推荐视频| 日韩一区精品视频一区二区| 亚洲午夜私人影院在线观看| 在线日韩日本国产亚洲| 日本爽快片18禁免费看|