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

大一新生C語言上機常見錯誤總結(jié)

2020-03-27 12:23:05楊儀代祥光張先休吳鴻娟朱丙麗
卷宗 2020年3期

楊儀 代祥光 張先休 吳鴻娟 朱丙麗

摘 要:C語言是一門實踐性很強的學科,哪怕只有一點語法錯誤程序也不能運行。本文將大一新生容易犯的一些語法錯誤、邏輯錯誤、運行錯誤列舉部分出來并提出解決方案,幫助初學者更好掌握C語言。

關鍵詞:C語言;上機;語法錯誤;邏輯錯誤

基金項目:2018重慶市高等教育教學改革研究項目“新工科背景下的計算機卓越工程師多元復合培育系統(tǒng)的構建”(項目編號:183051)。

C語言數(shù)據(jù)類型多,運算符多,語法規(guī)則較靈活。大一新生剛剛接觸編程語言,還不能完全理解計算機的工作原理,導致上機編寫程序常常出現(xiàn)很多語法錯誤、邏輯錯誤、運行錯誤[1-8]。筆者將大一新生常犯的一些上機錯誤總結(jié)出來,僅供參考。

1 語法錯誤

1.1 main函數(shù)使用錯誤

由于C99標準后,C語言main函數(shù)的返回值應是整型值,返回0表示正常返回,返回非0表示異常,便于操作系統(tǒng)判斷狀態(tài)。VC++6.0版本還允許返回值為空,有些教材內(nèi)容也沒有更新,程序移植到其它編譯器就會出錯,如Visual studio,Devc++。一般的語法錯誤通常會有錯誤提示,并且錯誤提示能定位到錯誤的行或者相鄰的行,但有些語法錯誤提示不容易看出來出錯的地方。例如,main函數(shù)名字輸錯,由于main函數(shù)名字并非關鍵字,輸錯后并不會提示到main函數(shù)那一行,main函數(shù)是主調(diào)函數(shù),輸錯就沒法調(diào)用其它函數(shù),大一新生不習慣分析錯誤提示,習慣性看源程序,稍微不仔細就沒法看出錯誤。

1.2 printf函數(shù)和scanf函數(shù)使用錯誤

printf函數(shù)是格式化輸出函數(shù),用法為printf(“格式控制字符串”,輸出表列),但學生常常將輸出參數(shù)也包含到格式控制字符串中,導致編譯運行能夠通過,但不能輸出正確結(jié)果。

scanf函數(shù)是格式化輸入函數(shù),用法為scanf(“格式控制字符串”,輸入項地址列表),學生常常在格式控制字符串中控制輸入浮點型數(shù)據(jù)的精度,將printf函數(shù)和scanf函數(shù)的用法混淆。另外,輸入項地址列表對基本類型變量常常忘記寫取地址符號&。程序運行后輸入數(shù)據(jù)時不按輸入格式輸入。例如程序中輸入幾個整型數(shù)據(jù)中間用了逗號,但輸入的時候卻用了空格,導致無法接收到正確的數(shù)據(jù)。

1.3 返回局部變量的地址

局部變量在函數(shù)調(diào)用后就會被釋放掉,返回局部變量的地址是不合法的,只能返回全局變量或static變量的地址。修改的方法就是在fun函數(shù)中另外再定義兩個static變量m和n,將局部變量x,y的值賦值給m和n,返回 m和n的地址即可。

除了這幾個常用函數(shù)用法錯誤,新生還容易掉C語言語句符號“;”以及花括號不配對,忘記寫頭文件包含編譯預處理命令等等問題。

2 邏輯錯誤

語法錯誤一般會有錯誤提示,但邏輯錯誤不會給出錯誤提示,要想檢查邏輯錯誤就很困難,下面列舉幾種常見的邏輯錯誤。

2.1 變量使用前未賦初值

變量使用前如果未賦初值,編譯器通常會給變量賦一個隨機數(shù),導致程序運行結(jié)果和預想的不一樣。例如1到100累加,如果沒有對存放累加結(jié)果的變量賦初值,就會得不到預想的5050的結(jié)果。一般情況下,如果是累加,那么存放結(jié)果的變量初值就賦為0,不影響最后的結(jié)果,如果是連乘,例如存放n的階乘的變量,初值就要賦為1,不影響最后的結(jié)果。如果是在程序中用作標志的變量,則將標志變量賦值為1或者0均可。例如求素數(shù)的程序,先將標志變量賦值為1,表明先默認所求的數(shù)是素數(shù),若程序中有判斷不是素數(shù)的語句,再將標志變量賦值為0。

2.2 未考慮某些函數(shù)結(jié)束符的使用

下面程序原意是使用fgets函數(shù)從源文件yangyi.txt中每次讀入10個字符放入buffer數(shù)組中并輸出。由于fgets函數(shù)每次讀入字符后會加上結(jié)束符,導致程序運行結(jié)果和預想的不一致。

只需要將for循環(huán)中i<10修改為i

2.3 循環(huán)判斷條件不等式兩邊都為變量

下面程序原意是從鍵盤輸入5個整型數(shù)存放在數(shù)組a中,并利用指針變量輸出,但輸出時for循環(huán)條件判斷語句左右兩邊都為變量,導致程序異常退出。需要將不等式p

C語言還存在一些邏輯錯誤,如數(shù)組下標越界等,這些錯誤都不容易發(fā)現(xiàn),需要不斷通過上機操作實踐體會。

3 運行錯誤

初學者還可能犯一些運行錯誤,例如同時打開兩個含有main函數(shù)的源文件運行,控制臺應用程序窗口不關閉又打開另一個源文件運行。

4 總結(jié)

C語言是一門實踐性很強的學科,程序錯誤種類形式多種多樣,需要在實踐中修改各種程序錯誤,不斷總結(jié)經(jīng)驗以提高編程能力。

參考文獻

[1]田金琴,丁紅勝.C語言教學中常見的運行錯誤和邏輯錯誤[J].電腦學習,2006(4):23-24.

[2]牛雅莉,趙芳林.C語言中常見邏輯錯誤分析[J].北京工業(yè)職業(yè)技術學院學報(2):21-24.

[3]楊曉峰.C語言使用中常見的語法和邏輯錯誤分析[J].開封大學學報,2012(02):89-91.

[4]程靜飛,鄭鳳婷.試析C語言常見錯誤[J].電腦編程技巧與維護(16):8-9,11.

[5]王瓊.C語言上機常見錯誤分析[J].洛陽大學學報(4):71-73,92.

[6]劉臻.C語言上機實踐教學方法研究[J].課程教育研究,2015(16):255-256.

[7]楊路明.C語言程序設計教程(第四版)[M].北京郵電大學出版社,2018.

[8]譚浩強.C程序設計(第四版)[M].清華大學出版社,2010.

作者簡介

楊儀(1982-),女,漢族,重慶綦江,博士,講師,研究方向:神經(jīng)網(wǎng)絡,非線性動力系統(tǒng)。

主站蜘蛛池模板: 欧美国产视频| 99久久99视频| 欧美激情福利| 欧美日韩一区二区在线免费观看| 久久成人18免费| 精品国产成人高清在线| 色综合中文综合网| 国产精品片在线观看手机版| 国产97色在线| 超薄丝袜足j国产在线视频| 九月婷婷亚洲综合在线| 国产av无码日韩av无码网站| 色综合天天娱乐综合网| 国产福利在线免费| 在线高清亚洲精品二区| 91麻豆久久久| 福利片91| 干中文字幕| 久久9966精品国产免费| 久久久久青草大香线综合精品 | 91小视频在线播放| 国产成人综合日韩精品无码首页 | 亚洲一区无码在线| 国国产a国产片免费麻豆| 亚洲色成人www在线观看| 免费三A级毛片视频| 亚洲精品无码人妻无码| 亚洲国内精品自在自线官| 午夜小视频在线| 亚洲福利网址| 亚洲美女AV免费一区| 中文字幕无码av专区久久| 91精品国产自产在线老师啪l| 午夜性爽视频男人的天堂| 国产三级韩国三级理| 国产成人免费视频精品一区二区| 美女视频黄频a免费高清不卡| 日本欧美在线观看| www.99在线观看| 国产成人艳妇AA视频在线| 蜜臀AV在线播放| 一级香蕉人体视频| 乱码国产乱码精品精在线播放| 老色鬼久久亚洲AV综合| 国产视频你懂得| 波多野结衣无码中文字幕在线观看一区二区 | 2021国产精品自产拍在线| 91久久精品国产| 久久精品一品道久久精品| 免费欧美一级| 91在线免费公开视频| 欧美一区二区人人喊爽| 欧美三級片黃色三級片黃色1| 国产精品无码AV中文| 大陆国产精品视频| 国产一区三区二区中文在线| 色精品视频| 国产极品美女在线播放| 免费三A级毛片视频| 欧美影院久久| 午夜无码一区二区三区| 99久久免费精品特色大片| 中文字幕日韩久久综合影院| 久久黄色免费电影| 精品国产香蕉伊思人在线| 亚洲AV永久无码精品古装片| 在线观看精品国产入口| 久久久久夜色精品波多野结衣| 一区二区三区国产精品视频| 日本精品αv中文字幕| 欧美一级高清片欧美国产欧美| 日韩区欧美国产区在线观看| 色综合久久88| 久久综合九色综合97婷婷| 久操中文在线| 国产在线麻豆波多野结衣| 国产麻豆永久视频| 亚洲第一极品精品无码| 一级毛片免费不卡在线| 99激情网| 一级片一区| AV片亚洲国产男人的天堂|