最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c語言程序調(diào)試方法整理

 更新時間:2020年03月02日 09:59:11   作者:angryTom  
在本篇文章里小編給大家正里的是關(guān)于c語言程序調(diào)試方法整理內(nèi)容,需要的朋友們可以學(xué)習(xí)下。

c語言程序的調(diào)試方法

所謂程序調(diào)試是指對程序的查錯和排錯。

調(diào)試程序一般應(yīng)經(jīng)過以下幾個步驟:

一、先進(jìn)行人工檢查,即靜態(tài)檢查。

在寫好一個程序以后,不要匆匆忙忙上機(jī),而應(yīng)對程序進(jìn)行人工檢查。這一步十分重要,它能發(fā)現(xiàn)程序設(shè)計人員由于疏忽而造成的

多數(shù)錯誤。這一步往往容易被人忽視,總希望把一切都推給計算機(jī)去做,但這樣會多占用機(jī)器時間,作為一個程序人員應(yīng)當(dāng)養(yǎng)成嚴(yán)謹(jǐn)?shù)淖黠L(fēng),每一步都要嚴(yán)格把關(guān),不把問題留給后面的工序。

為了更有效地進(jìn)行人工檢查,所編的程序應(yīng)力求做到以下幾點(diǎn):

①應(yīng)當(dāng)采用結(jié)構(gòu)化程序方法編程,以增加可讀性;

②盡可能多加注釋,以幫助理解每段程序的作用;

③在編寫復(fù)雜的程序時不要將全部語句都寫在main函數(shù)中,而要多利用函數(shù),用一個函數(shù)來實(shí)現(xiàn)一個單獨(dú)的功能。各函數(shù)之間除用

參數(shù)傳遞數(shù)據(jù)外,盡量少出現(xiàn)耦合關(guān)系,這樣便于分別檢查和處理。

二、在人工檢查無誤后,再上機(jī)調(diào)試。

通過上機(jī)發(fā)現(xiàn)錯誤稱為動態(tài)檢查。在編譯時會給出語法錯誤的信息,調(diào)試時可以根據(jù)提示信息具體找出程序中出錯之處并改正。應(yīng)

當(dāng)注意的是有時提示出錯的地方并不是真正出錯的位置,如果在提示出錯的行找不到錯誤的話應(yīng)當(dāng)?shù)缴弦恍性僬摇S袝r提示出錯的類型并非絕對準(zhǔn)確,由于出錯的情況繁多且各種錯誤互有關(guān)聯(lián),因此要善于分析,找出真正的錯誤,而不要只從字面意義上找出錯信息,鉆牛角尖。

如果系統(tǒng)提示的出錯信息很多,應(yīng)當(dāng)從上到下逐一改正。有時顯示出一大片出錯信息往往使人感到問題嚴(yán)重,無從下手。其實(shí)可能

只有一二個錯誤。例如,對使用的變量未定義,編譯時就會對所有含該變量的語句發(fā)出出錯信息。這時只要加上一個變量定義,就所有錯誤都消除了。

三、在改正語法錯誤(包括“錯誤(error)”和“警告(warning)”)后,程序經(jīng)過連接(link)就得到可執(zhí)行的目標(biāo)程序。

運(yùn)行

程序,輸入程序所需數(shù)據(jù),就可得到運(yùn)行結(jié)果。應(yīng)當(dāng)對運(yùn)行結(jié)果作分析,看它是否符合要求。有的初學(xué)者看到運(yùn)行結(jié)果就認(rèn)為沒問題了,不作認(rèn)真分析,這是危險的。

有時,數(shù)據(jù)比較復(fù)雜,難以立即判斷結(jié)果是否正確??梢允孪瓤紤]好一批“試驗(yàn)數(shù)據(jù)”,輸入這些數(shù)據(jù)可以很容易判斷結(jié)果正確與

否。例如解方程ax2+bx+c=0,輸入a、b、c的值分別為1、-2、1時,根x的值是1。這是容易判斷的,若根不等于1,程序顯然有錯。

但是,用“試驗(yàn)數(shù)據(jù)”時,程序運(yùn)行結(jié)果正確,還不能保證程序完全正確。因?yàn)橛锌赡茌斎肓硪唤M數(shù)據(jù)時運(yùn)行結(jié)果不對。例如,用公式求根x的值,當(dāng)a≠0和b2-4ac>0時,能得出正確結(jié)果,當(dāng)a=0或b2-4ac<0時,就得不到正確結(jié)果(假設(shè)程序中未對a=0作防御處理以及未作復(fù)數(shù)處理)。因此應(yīng)當(dāng)把程序可能遇到的各種情況都一一試到。例如,if語句有兩個分支,有可能程序在經(jīng)過其中一個分支時結(jié)果正確,而經(jīng)過另一個分支時結(jié)果不對。必須考慮周全。事實(shí)上,當(dāng)程序復(fù)雜時很難把所有的可能情況全部都試到,選擇典型的臨界數(shù)據(jù)作試驗(yàn)即可。

四、運(yùn)行結(jié)果不對,大多屬于邏輯錯誤。對這類錯誤往往需要仔細(xì)檢查和分析才能發(fā)現(xiàn)??梢圆捎靡韵罗k法:

1.將程序與流程圖仔細(xì)對照,如果流程圖是正確的,程序?qū)戝e了,是很容易發(fā)現(xiàn)的。例如,復(fù)合語句忘記寫花括弧,只要一對照流

程圖就能很快發(fā)現(xiàn)。

2.如果實(shí)在找不到錯誤,可以采用“分段檢查”的方法。在程序不同的位置設(shè)幾個printf函數(shù)語句,輸出有關(guān)變量的值,逐段往下

檢查。直到找到在某一段中數(shù)據(jù)不對為止。這時就已經(jīng)把錯誤局限在這一段中了。不斷減小“查錯區(qū)”,就能發(fā)現(xiàn)錯誤所在。

3.也可以用“條件編譯”命令進(jìn)行程序調(diào)試(在程序調(diào)試階段,若干printf函數(shù)語句就要進(jìn)行編譯并執(zhí)行。當(dāng)調(diào)試完畢,這些語句

不用再編譯了,也不再被執(zhí)行了)。這種方法可以不必一一去掉printf函數(shù)語句,以提高效率。

4.如果在程序中沒有發(fā)現(xiàn)問題,就要檢查流程圖有無錯誤,即算法有無問題。如有則改正之,接著修改程序。

5.有的系統(tǒng)還提供debug(調(diào)試)工具,跟蹤程序并給出相應(yīng)信息,使用更為方便,請查閱有關(guān)手冊。

總之,程序調(diào)試是一項(xiàng)細(xì)致深入的工作,需要下功夫,動腦子,善于積累經(jīng)驗(yàn)。在程序調(diào)試過程中往往反映出一個人的水平,經(jīng)驗(yàn)

和態(tài)度。希望大家給以足夠的重視。上機(jī)調(diào)試程序的目的決不是為了“驗(yàn)證程序的正確”,而是“掌握調(diào)試的方法和技術(shù)”,要學(xué)會自己找問題,這樣慢慢自己就會寫出錯誤較少的實(shí)用程序。

到此這篇關(guān)于c語言程序調(diào)試方法整理的文章就介紹到這了,更多相關(guān)c語言程序的調(diào)試方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言實(shí)現(xiàn)時間處理工具的示例代碼

    C語言實(shí)現(xiàn)時間處理工具的示例代碼

    這篇文章主要為大家詳細(xì)介紹了利用C語言實(shí)現(xiàn)時間處理工具的相關(guān)資料,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,需要的可以參考一下
    2022-09-09
  • C語言冒泡排序法的實(shí)現(xiàn)(升序排序法)

    C語言冒泡排序法的實(shí)現(xiàn)(升序排序法)

    這篇文章主要介紹了C語言冒泡排序法的實(shí)現(xiàn)(升序排序法),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 詳解C++14中返回類型推導(dǎo)的使用

    詳解C++14中返回類型推導(dǎo)的使用

    這篇文章主要為大家詳細(xì)介紹了C++14中返回類型推導(dǎo)的使用,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-07-07
  • 從匯編看c++的默認(rèn)析構(gòu)函數(shù)的使用詳解

    從匯編看c++的默認(rèn)析構(gòu)函數(shù)的使用詳解

    本篇文章是對c++中默認(rèn)析構(gòu)函數(shù)的使用進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下
    2013-05-05
  • C語言實(shí)現(xiàn)學(xué)生獎學(xué)金評定系統(tǒng)

    C語言實(shí)現(xiàn)學(xué)生獎學(xué)金評定系統(tǒng)

    這篇文章主要介紹了C語言實(shí)現(xiàn)學(xué)生獎學(xué)金評定系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++中的構(gòu)造函數(shù)與析造函數(shù)詳解

    C++中的構(gòu)造函數(shù)與析造函數(shù)詳解

    這篇文章主要介紹了C++中的構(gòu)造函數(shù)與析造函數(shù)詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C++使用循環(huán)計算標(biāo)準(zhǔn)差的代碼實(shí)現(xiàn)

    C++使用循環(huán)計算標(biāo)準(zhǔn)差的代碼實(shí)現(xiàn)

    在C++中,計算標(biāo)準(zhǔn)差可以使用循環(huán)來實(shí)現(xiàn),本文給大家介紹了一個示例代碼,演示了如何使用循環(huán)計算標(biāo)準(zhǔn)差,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下
    2023-12-12
  • C語言中 printf 函數(shù)輸出格式

    C語言中 printf 函數(shù)輸出格式

    這篇文章主要介紹了C語言中 printf 函數(shù)簡介,通過實(shí)例代碼給大家介紹Printf輸出格式的相關(guān)知識,需要的朋友可以參考下
    2021-08-08
  • C++空類詳解

    C++空類詳解

    以下是對C++中的空類進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下
    2013-09-09
  • C語言字符串快速壓縮算法代碼

    C語言字符串快速壓縮算法代碼

    這篇文章主要介紹了C語言字符串快速壓縮算法代碼,將字符串中連續(xù)出席的重復(fù)字母進(jìn)行壓縮,其主要的壓縮字段的格式為”字符重復(fù)的次數(shù)+字符”。有需要的小伙伴參考下吧。
    2015-03-03

最新評論

河曲县| 洞头县| 肥西县| 塘沽区| 金塔县| 离岛区| 佛山市| 中江县| 昌黎县| 平谷区| 张家川| 黄浦区| 黔东| 哈尔滨市| 汤原县| 汉川市| 朝阳县| 蛟河市| 孝义市| 凤冈县| 天门市| 宝丰县| 邯郸县| 惠安县| 临夏市| 茶陵县| 巢湖市| 通海县| 嘉定区| 浏阳市| 桂林市| 铜川市| 宁河县| 鄂伦春自治旗| 读书| 霍山县| 罗定市| 砚山县| 桐梓县| 思南县| 邛崃市|