999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析C語言程序調(diào)試過程及編程常見錯誤

2009-10-26 09:35:10袁立敏
新媒體研究 2009年13期
關(guān)鍵詞:程序

王 諾 袁立敏

[摘要]在討論說明C語言程序調(diào)試過程的基礎(chǔ)上,根據(jù)實踐,結(jié)合實例,總結(jié)程序調(diào)試運行過程中常出現(xiàn)的錯誤,并依據(jù)C語言的語法格式和編程規(guī)則,對這些錯誤進行詳細的說明和糾正,以提高學(xué)習(xí)者的編程效率。

[關(guān)鍵詞]C語言調(diào)試編譯語法錯誤邏輯錯誤

中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0710049-01

《C語言程序設(shè)計》作為一門計算機技術(shù)基礎(chǔ)課程,在國內(nèi)外得到了廣泛應(yīng)用。它功能豐富,表達能力強,使用靈活方便,應(yīng)用面廣,目標程序效率高。但是由于C語言涉及到的概念比較復(fù)雜,規(guī)則繁多,使用靈活,不少初學(xué)者在學(xué)習(xí)使用時都感到編輯的程序調(diào)試運行時容易出錯。鑒于此,本文在討論說明C語言程序調(diào)試過程的基礎(chǔ)上,結(jié)合實例總結(jié)了程序調(diào)試運行過程中常出現(xiàn)的錯誤,以便給學(xué)習(xí)者以幫助。

一、C語言程序調(diào)試過程

所謂程序調(diào)試是指檢查程序的錯誤以及改正程序的錯誤。調(diào)試程序一般包括以下四個階段:1.編寫程序并查錯;2.在C語言的編譯系統(tǒng)(Turbo C或者VC++6.0)中編輯源程序;3.對程序進行編譯鏈接,并及時發(fā)現(xiàn)程序中存在的錯誤;4.最后改正錯誤。C語言程序的錯誤主要分為兩類:語法錯誤和邏輯錯誤。

二、C語言編程過程中常見錯誤

(一)常見語法錯誤分析

1.書寫主函數(shù)時需要注意的問題。

例:

main

{ int i,j,z;

scanf("%d,%d",&i,&j);

z=i+j;printf("%d",z);

}

此程序在編譯時會提示:Declaration syntax error。出現(xiàn)此提示說明在源文件中,可能是某個說明丟失了某些符號或輸入了多余的符號。此程序就是丟失了main函數(shù)后面的“( )”。初學(xué)者比較容易犯這個錯誤。主函數(shù)正確的寫法是main( )。

2.語句后面漏寫分號。

例: main( )

{printf(“癶”?

}

C語言規(guī)定語句末尾必須有分號。分號是C語句不可缺少的一部分。此例中printf(“癶”?語句后面未寫分號,會提示Statement missing ; in function main。我們根據(jù)此提示來修改程序。這也是初學(xué)者比較容易犯的錯誤。

3.在不該加分號的地方加了分號。

例:

int a=3,b=2;

if(a>b);printf("max=%d ",a);

此程序本意為當(dāng)a>b時輸出“max=3”的信息。但由于在if(a>b)后加了分號,因此if語句到此結(jié)束。即當(dāng)(a>b)為真時,執(zhí)行一個空語句,本來想a≤b時不輸出上述信息,但現(xiàn)在printf函數(shù)語句并不從屬于if語句,而是與if語句平行的語句,所以,無論a是否大于b,都會輸出“max=3”的信息。因此在if、switch、for、while語句中,不要多加分號。

4.在調(diào)用庫函數(shù)時,沒有寫預(yù)編譯命令。

例:

main()

{charc;

printf("Please input one character: ");

c=getchar( );/*輸入1個字符并賦給ch */

putchar(c);

}

調(diào)試程序時,出現(xiàn)錯誤提示:Undefined symbol'_getchar' Undefin

ed symbol'_putchar'。因為在使用庫函數(shù)時,要用預(yù)編譯命令#include將有關(guān)的頭文件包括到用戶源文件中。因此,必須在程序的開頭加上預(yù)編譯命令:#include “stdio.h”。

(二)常見邏輯錯誤分析

1.輸入輸出的數(shù)據(jù)的類型與所用格式說明符不一致。

例:

main()

{ int x;float y;

scanf("%f,%d",&x,&y);

printf("%f%d ",x,y);}

此段程序中x定義為整型,y定義為實型。而在輸入輸出x,y時用的格式說明符為%f,%d,這顯然與定義不符。程序運行時并不提示語法錯誤,但是不能得出正確結(jié)果。因此,輸入、輸出函數(shù)語句分別應(yīng)改為:scanf("%d,%f",&x,&y); printf("%d%f ",x,y);

2.復(fù)合語句忘記加花括弧。

例:

main()

{ int day,x1,x2=1;

for(day=9;day>0;day--)

x1=(x2+1)*2;x2=x1;

printf(“total=%d ”,x1);

}

此程序本意是從第二次循環(huán)開始,直到for循環(huán)結(jié)束,這個過程中每次循環(huán)時,x2變量的值是上次循環(huán)所得出的x1的值,但實際執(zhí)行時,x2變量的值并沒有變化,自始至終都是1,這顯然與原意不符。原因就是:for循環(huán)的循環(huán)體語句應(yīng)該是“x1=(x2+1)*2;x2=x1;”組合而成的復(fù)合語句,而不應(yīng)該只是“x1=(x2+1)*2;”。因此正確的程序是:

main()

{ int day,x1,x2=1;

for(day=9;day>0;day--)

{x1=(x2+1)*2;x2=x1;}

printf(“total=%d ”,x1);

}

3.在使用數(shù)組的時候,出現(xiàn)數(shù)組下標越界的情況。也就是把定義的“元素個數(shù)”誤認為是數(shù)組的最大下標值。

例:

main()

{int i, s[6]; printf("input 6 umbers: ");

for(i=0;i<6;i++)scanf("%d",&s[i]);

printf("%d",s[6]);

}

此程序本意是輸出數(shù)組s中最后一個元素的值,但是輸出的結(jié)果是個不確定的值。因為C語言規(guī)定,定義時,數(shù)組名后面的方括號內(nèi)的數(shù)字表示的是數(shù)組的元素個數(shù),而數(shù)組的下標從0開始,因此數(shù)組s的元素為s[0]、s[1]、s[2]、s[3]、s[4]、s[5],所以此程序中的數(shù)組元素s[6]是不存在的。

所以要想輸出數(shù)組s的最后一個元素,應(yīng)書寫為:printf(“?”?s[5]);

4.混淆break語句和continue語句的作用。

例:將100~200之間不能被3整除的數(shù)輸出。

main()

{int n;

for(n=100;n<=200;n++)

{if (n%3==0)break;

printf(“%d”,n);}}

該程序能夠運行,輸出的結(jié)果是:100 101,這顯然不是正確結(jié)果。程序運行時當(dāng)遇到能被3整除的數(shù)102時,循環(huán)結(jié)束,而本意是結(jié)束本次循環(huán)。學(xué)習(xí)者要牢記break語句是結(jié)束整個循環(huán),而continue語句才是結(jié)束本次循環(huán)。所以正確的程序是:

main()

{int n;

for(n=100;n<=200;n++)

{if (n%3==0) continue;

printf(“%d”,n);}}

以上我們通過實例,列舉了C語言學(xué)習(xí)者經(jīng)常易犯的一些語法錯誤和邏輯錯誤,并根據(jù)C語言的語法格式和編程規(guī)則對出現(xiàn)錯誤的原因進行了分析,同時給出糾正后的程序。希望本文對C語言的學(xué)習(xí)者有所幫助,學(xué)習(xí)者在編程時應(yīng)嚴格按照C語言語法規(guī)則編輯調(diào)試源程序,在實踐中提高自己編寫程序的能力。

參考文獻:

[1]田淑清,全國計算機等級考試二級教程-C語言程序設(shè)計(2008年版),北京:高等教育出版社,2007年8月.

[2]徐新愛,C語言的變量剖析[J].電腦開發(fā)與應(yīng)用,第20卷第6期.

[3]譚浩強,C語言程序設(shè)計[M].第2版,北京:清華大學(xué)出版社,2000年.

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構(gòu)建
創(chuàng)衛(wèi)暗訪程序有待改進
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 日韩精品免费在线视频| 久一在线视频| 国产手机在线小视频免费观看| 国产传媒一区二区三区四区五区| 日韩麻豆小视频| 国产一级裸网站| 色天天综合久久久久综合片| 一本大道在线一本久道| 国产成人综合日韩精品无码不卡| 日本少妇又色又爽又高潮| 日韩精品免费一线在线观看| av在线5g无码天天| 欧美日韩国产在线播放| 97视频在线观看免费视频| 欧美国产综合视频| 91精品国产91久无码网站| 久久精品只有这里有| a级免费视频| 亚洲AV免费一区二区三区| 欧美日韩亚洲国产主播第一区| 欧美色视频日本| 国产性精品| 在线看片中文字幕| 日本国产精品| 香蕉视频在线观看www| 国产精品99在线观看| 国产95在线 | 99视频有精品视频免费观看| 国产精品无码制服丝袜| 中文纯内无码H| 在线观看免费人成视频色快速| 国产国拍精品视频免费看 | 啊嗯不日本网站| 干中文字幕| 国产啪在线91| 国产精品99久久久| 亚洲v日韩v欧美在线观看| 国产成人精品日本亚洲77美色| 国产理论最新国产精品视频| 久久这里只有精品8| 欧美日韩久久综合| 99久视频| 国内精品视频区在线2021| 久久精品视频亚洲| 国产美女精品一区二区| 免费A∨中文乱码专区| 久久国产精品波多野结衣| 国产免费高清无需播放器| 色婷婷在线影院| 国产精品hd在线播放| 999精品在线视频| 91麻豆精品国产91久久久久| 性欧美精品xxxx| 四虎综合网| 亚洲精品国产综合99久久夜夜嗨| 欧美国产成人在线| 理论片一区| 中文国产成人精品久久| 国产女人在线| 日本精品视频| 国产丝袜丝视频在线观看| 亚洲一区二区三区麻豆| 亚洲色欲色欲www在线观看| 无码AV高清毛片中国一级毛片| 亚洲无码精品在线播放| 亚洲热线99精品视频| 国产高清国内精品福利| 日本高清视频在线www色| 久久6免费视频| 午夜精品区| 亚洲侵犯无码网址在线观看| 丰满人妻一区二区三区视频| 自拍偷拍一区| 夜夜操天天摸| 亚洲欧洲一区二区三区| 亚洲AV电影不卡在线观看| 亚洲三级视频在线观看| 国产成年女人特黄特色大片免费| 亚洲精品无码成人片在线观看| 日韩黄色大片免费看| 黑人巨大精品欧美一区二区区| 亚洲精品人成网线在线 |