第一部分c語言常見編程問題
第1章初學者常見問題
問題1字母大小寫混淆
問題2容易混淆的字符
問題3在代碼中使用了中文字符
問題4丟失或添加多余的分號
問題5丟失或添加多余的大括號
問題6混亂的縮進和對齊
練習1
第2章基本數據類型
問題7整型常量的第一個字符為。引起的誤解
問題8將字符常量與字符串常量混淆
問題9混淆“/”和“\”
問題10缺少強制類型轉換
問題11類型轉換降低精度
練習2
第3章存儲類
問題12在使用變量前未定義或末初始化
問題13錯誤理解靜態(tài)變量的作用域
.問題14全局變量的錯誤聲明
問題15濫用全局變量
練習3
第4章運算符
問題16分母為0
問題17對實型變量進行“求余”運算
問題18“=”與“==”混淆
問題19“8l”與“&&”,“|與“||”混淆
問題20“++”、“——”的前置和后置方式
問題21運算符優(yōu)先級錯誤
練習4
第5章流程控制
問題22邏輯表達式或關系表達式錯誤
問題23if-else嵌套不配對
問題24分號導致的流程變化
問題25switch語句:case后面缺少break
問題26忽視了while和do-while語句在細節(jié)上的區(qū)別
問題27濫用goto語句
練習5
第6章函數
問題28使用庫函數前沒有包含頭文件
問題29使用函數之前未聲明
問題30函數實參格式不對
問題31錯誤的返回值
問題32遞歸時設置了錯誤的邊界條件
練習6
第7章c語言預處理程序
問題33宏定義格式錯誤
問題34帶參數的宏替換錯誤
問題35把宏調用混同于函數調用
問題36宏定義中多余的空格
練習7
第8章指針和數組
問題37數組越界
問題38定義數組時誤用變量
問題39動態(tài)分配內存空間不夠
問題40內存泄漏
問題41訪問懸空指針
練習8
第9章結構和聯合
問題42結構的嵌套
問題43結構與聯合混淆
練習9
第10章輸入和輸出
問題44printf和scanf的參數設置
問題45錯誤的文件打開和關閉方式
練習10
第二部分c++常見編程問題
第11章命名空間
問題46c++標準程序庫的命名空間
問題47名字沖突
練習11
第12章c++語言的輸入輸出
問題48“[[”、“]]”混淆
問題49cout運算符優(yōu)先級錯誤
練習12
第13章動態(tài)內存的分配與釋放
問題50bew/delete與malloc/{ree混用
問題51沒有釋放動態(tài)分配的內存空間
問題52一個指針被delete時,沒有指向最初的地址
問題53重復釋放已釋放的空間
問題54重復delete同一指向的多個指針
問題55delete指向某一普通變量的指針
練習13
第14章引用
問題56引用的聲明和初始化錯誤
問題57引用作為參數的錯誤用法
問題58引用作為返回值的錯誤用法
練習14
第15章const修飾符
問題59用const定義常量的錯誤
問題60eonst參數錯誤
問題61const成員函數錯誤
練習15
第16章字符串
問題62使用string類型未引用名字空間
練習16
第17章c++語言中函數的新特性
問題63內聯函數定義錯誤
問題64函數的缺省參數定義錯誤
問題65函數重載錯誤
問題66函數的缺省參數造成的二義性
練習17
第三部分面向對象程序設計常見編程問題
第18章類與對象
問題67類的定義格式錯誤
問題68對象和類的訪問錯誤
問題69在類體中進行數據成員的初始化
問題70成員函數實現時缺少作用域運算符
問題71缺少引用性說明
問題72構造函數/析構函數不應該有返回值
問題73多余的析構函數
問題74構造函數缺省參數導致的二義性
問題75創(chuàng)建對象時缺少相應的構造函數
問題76默認的拷貝構造函數導致的內存問題
問題??靜態(tài)數據成員初始化錯誤
問題78靜態(tài)成員函數引用非靜態(tài)數據成員
問題?9局部類定義錯誤
問題80嵌套類定義錯誤
練習18
第19章友元
問題81把友元函數當作類的成員
問題82在類外定義友元函數時多余的friend關鍵字
問題83友元關系不具有交換性
問題84友元關系不具有傳遞性
練習19
第20章繼承機制
問題85基類成員在派生類中的訪問權限
問題86派生類中由基類說明的數據成員應由基類的構造函數初始化
問題87多繼承的二義性問題
問題88截切問題
練習20
第21章多態(tài)和虛函數
問題89運算符重載時不可臆造新的運算符
問題90運算符重載時不能改變運算符操作數的個數
問題91自增、自減運算符的重載:前綴運算和后綴運算的混淆
問題92重載了不允許重載的運算符
問題93運算符重載為友元函數時的參數個數
問題94不能重載為友元函數的運算符
問題95左操作數是常數時的運算符重載
問題96虛函數不能是靜態(tài)成員函數
問題97虛函數必須是類的成員函數,不能是友元
問題98構造函數不能是虛函數
問題99將基類析構函數聲明為非虛函數
問題100在構造函數和析構函數里調用虛函數
問題101重載虛函數導致的問題
問題102在構造函數和析構函數中調用純虛函數
問題103實例化抽象類
問題104派生類必須實現所有純虛函數才是具體類,否則仍是抽象類
練習21
附錄練習答案
參考文獻