資料介紹
C,C++經典問題,及面試筆試題
1?????? 編程基礎
1.1??? 基本概念
1.???????? 的理解:const char*, char const*, char*const的區別問題幾乎是C++面試中每次??? 都會有的題目。 事實上這個概念誰都有只是三種聲明方式非常相似很容易記混。 Bjarne在他的The C++ Programming Language里面給出過一個助記的方法: 把一個聲明從右向左讀。 const
char? * const cp; ( * 讀成 pointer to )
cp is a const pointer to char
const char * p;
p is a pointer to const char;
char const * p;
同上因為C++里面沒有const*的運算符,所以const只能屬于前面的類型。
2.???????? 指針c
int *p[n];-----指針數組,每個元素均為指向整型數據的指針。
int (*)p[n];------p為指向一維數組的指針,這個一維數組有n個整型數據。
int *p();----------函數帶回指針,指針指向返回的值。
int (*)p();------p為指向函數的指針。
3.???????? 數組越界問題
下面這個程序執行后會有什么錯誤或者效果:
?#define MAX 255
int main()
{
??? unsigned char A[MAX],i;
??? for (i=0;i<=MAX;i++)
??????? A[i]=i;
}
解答:MAX=255,數組A的下標范圍為:0..MAX-1,這是其一,其二 當i循環到255時,循環內執行: A[255]=255;這句本身沒有問題,但是返回for (i=0;i<=MAX;i++)語句時,由于unsigned char的取值范圍在(0..255),i++以后i又為0了..無限循環下去.
注:char類型為一個字節,取值范圍是[-128,127],unsigned char [0 ,255]
4.???????? 和strcpy 的根本區別?? C++:memset ,memcpy
#include "memory.h"
memset用來對一段內存空間全部設置為某個字符,一般用在對定義的字符串進行初始化為‘ '或‘\0';例:char a[100];memset(a, '\0', sizeof(a));
memcpy用來做內存拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),會造成b的內存地址溢出。
strcpy就只能拷貝字符串了,它遇到'\0'就結束拷貝;例:char a[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串長度(第一個‘\0'之前)是否超過50位,如超過,則會造成b的內存地址溢出。
strcpy
原型:extern char *strcpy(char *dest,char *src);
用法:#include
功能:把src所指由NULL結束的字符串復制到dest所指的數組中。
說明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字符串。
返回指向dest的指針。
memcpy
原型:extern void *memcpy(void *dest, void *src, unsigned int count);
用法:#include
功能:由src所指內存區域復制count個字節到dest所指內存區域。
說明:src和dest所指內存區域不能重疊,函數返回指向dest的指針。
Memset
原型:extern void *memset(void *buffer, char c, int count);
用法:#include
功能:把buffer所指內存區域的前count個字節設置成字符c。
說明:返回指向buffer的指針。
5.???????? 是干什么用的ASSERT()
ASSERT()是一個調試程序時經常使用的宏,在程序運行時它計算括號內的表達式,如果表達式為FALSE (0), 程序將報告錯誤,并終止執行。如果表達式不為0,則繼續執行后面的語句。這個宏通常原來判斷程序中是否出現了明顯非法的數據,如果出現了終止程序以免導致嚴重后果,同時也便于查找錯誤。例如,變量n在程序中不應該為0,如果為0可能導致錯誤,你可以這樣寫程序:
......
ASSERT( n != 0);
k = 10/ n;
......
ASSERT只有在Debug版本中才有效,如果編譯為Release版本則被忽略。
assert()的功能類似,它是ANSI C標準中規定的函數,它與ASSERT的一個重要區別是可以用在Release版本中。
6.???????? ("pause");系統的暫停程序,按任意鍵繼續,屏幕會打印,"按任意鍵繼續。。。。。" 省去了使用getchar();system
7.???????? 請問C++的類和C里面的struct有什么區別?
c++中的類具有成員保護功能,并且具有繼承,多態這類oo特點,而c里的struct沒有
8.???????? 請講一講析構函數和虛函數的用法和作用?
析構函數也是特殊的類成員函數,它沒有返回類型,沒有參數,不能隨意調用,也沒有重載。知識在類對象生命期結束的時候,由系統自動調用釋放在構造函數中分配的資源。這種在運行時,能依據其類型確認調用那個函數的能力稱為多態性,或稱遲后聯編。另:析構函數一般在對象撤消前做收尾工作,比如回收內存等工作,虛擬函數的功能是使子類可以用同名的函數對父類函數進行重載,并且在調用時自動調用子類重載函數,如果是純虛函數,則純粹是為了在子類重載時有個統一的命名而已。
1?????? 編程基礎
1.1??? 基本概念
1.???????? 的理解:const char*, char const*, char*const的區別問題幾乎是C++面試中每次??? 都會有的題目。 事實上這個概念誰都有只是三種聲明方式非常相似很容易記混。 Bjarne在他的The C++ Programming Language里面給出過一個助記的方法: 把一個聲明從右向左讀。 const
char? * const cp; ( * 讀成 pointer to )
cp is a const pointer to char
const char * p;
p is a pointer to const char;
char const * p;
同上因為C++里面沒有const*的運算符,所以const只能屬于前面的類型。
2.???????? 指針c
int *p[n];-----指針數組,每個元素均為指向整型數據的指針。
int (*)p[n];------p為指向一維數組的指針,這個一維數組有n個整型數據。
int *p();----------函數帶回指針,指針指向返回的值。
int (*)p();------p為指向函數的指針。
3.???????? 數組越界問題
下面這個程序執行后會有什么錯誤或者效果:
?#define MAX 255
int main()
{
??? unsigned char A[MAX],i;
??? for (i=0;i<=MAX;i++)
??????? A[i]=i;
}
解答:MAX=255,數組A的下標范圍為:0..MAX-1,這是其一,其二 當i循環到255時,循環內執行: A[255]=255;這句本身沒有問題,但是返回for (i=0;i<=MAX;i++)語句時,由于unsigned char的取值范圍在(0..255),i++以后i又為0了..無限循環下去.
注:char類型為一個字節,取值范圍是[-128,127],unsigned char [0 ,255]
4.???????? 和strcpy 的根本區別?? C++:memset ,memcpy
#include "memory.h"
memset用來對一段內存空間全部設置為某個字符,一般用在對定義的字符串進行初始化為‘ '或‘\0';例:char a[100];memset(a, '\0', sizeof(a));
memcpy用來做內存拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),會造成b的內存地址溢出。
strcpy就只能拷貝字符串了,它遇到'\0'就結束拷貝;例:char a[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串長度(第一個‘\0'之前)是否超過50位,如超過,則會造成b的內存地址溢出。
strcpy
原型:extern char *strcpy(char *dest,char *src);
用法:#include
功能:把src所指由NULL結束的字符串復制到dest所指的數組中。
說明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字符串。
返回指向dest的指針。
memcpy
原型:extern void *memcpy(void *dest, void *src, unsigned int count);
用法:#include
功能:由src所指內存區域復制count個字節到dest所指內存區域。
說明:src和dest所指內存區域不能重疊,函數返回指向dest的指針。
Memset
原型:extern void *memset(void *buffer, char c, int count);
用法:#include
功能:把buffer所指內存區域的前count個字節設置成字符c。
說明:返回指向buffer的指針。
5.???????? 是干什么用的ASSERT()
ASSERT()是一個調試程序時經常使用的宏,在程序運行時它計算括號內的表達式,如果表達式為FALSE (0), 程序將報告錯誤,并終止執行。如果表達式不為0,則繼續執行后面的語句。這個宏通常原來判斷程序中是否出現了明顯非法的數據,如果出現了終止程序以免導致嚴重后果,同時也便于查找錯誤。例如,變量n在程序中不應該為0,如果為0可能導致錯誤,你可以這樣寫程序:
......
ASSERT( n != 0);
k = 10/ n;
......
ASSERT只有在Debug版本中才有效,如果編譯為Release版本則被忽略。
assert()的功能類似,它是ANSI C標準中規定的函數,它與ASSERT的一個重要區別是可以用在Release版本中。
6.???????? ("pause");系統的暫停程序,按任意鍵繼續,屏幕會打印,"按任意鍵繼續。。。。。" 省去了使用getchar();system
7.???????? 請問C++的類和C里面的struct有什么區別?
c++中的類具有成員保護功能,并且具有繼承,多態這類oo特點,而c里的struct沒有
8.???????? 請講一講析構函數和虛函數的用法和作用?
析構函數也是特殊的類成員函數,它沒有返回類型,沒有參數,不能隨意調用,也沒有重載。知識在類對象生命期結束的時候,由系統自動調用釋放在構造函數中分配的資源。這種在運行時,能依據其類型確認調用那個函數的能力稱為多態性,或稱遲后聯編。另:析構函數一般在對象撤消前做收尾工作,比如回收內存等工作,虛擬函數的功能是使子類可以用同名的函數對父類函數進行重載,并且在調用時自動調用子類重載函數,如果是純虛函數,則純粹是為了在子類重載時有個統一的命名而已。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- c語言面試題集(完整版)
- Java的經典面試題和答案詳細說明 0次下載
- Python的一些經典面試題資料合集免費下載 15次下載
- Android的多個經典面試題詳細講解
- 單片機C語言面試題的詳細資料合集
- Java的一些基礎面試題資料合集免費下載
- 中軟的一套面試題和一些C++的經典面試題資料合集免費下載 4次下載
- 經典硬件面試題精選及解答 0次下載
- C語言經典面試題目 0次下載
- C++面試試題及答案 0次下載
- C語言經典面試題 0次下載
- c語言面試題集 0次下載
- c語言面試題集 9次下載
- c語言面試題,c++面試題下載
- 《C/ C++/ Java 程序設計經典教程》
- vb語言和c++語言的區別 1480次閱讀
- C語言和C++中那些不同的地方 748次閱讀
- 硬件工程師經典面試題詳解 1130次閱讀
- 分享10道有趣的嵌入式C語言面試題及答案 2304次閱讀
- 如何把C++程序改寫成C語言 3149次閱讀
- 關于數組常見的面試題 1509次閱讀
- C++語言的發展 558次閱讀
- C語言與C++面試知識點總結 1746次閱讀
- 常見的MySQL高頻面試題 2266次閱讀
- C語言和C++的特點與用法詳細說明 4216次閱讀
- Python最常見的面試題解答 3372次閱讀
- sizeof與strlen到底有什么區別經典C語言面試題講解 7159次閱讀
- Java編程和c語言哪一種更有優勢_C語言與JAVA的區別是什么 2.4w次閱讀
- java單元測試怎么寫 8392次閱讀
- c++和c語言之間有什么區別 3.1w次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1490次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7藍牙設備在嵌入式領域的廣泛應用
- 0.63 MB | 3次下載 | 免費
- 89天練會電子電路識圖
- 5.91 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多