- 相關推薦
C++ 筆試題
貼出部分內容,看看是否值得下載。
表示已有答案
表示沒有處理
表示答案不確定
C++筆試題
1.多態類中的虛函數表是Compile-Time,還是Run-Time時建立的?
答案:虛擬函數表是在編譯期就建立了,各個虛擬函數這時被組織成了一個虛擬函數的入口地址的數組.而對象的隱藏成員--虛擬函數表指針是在運行期--也就是構造函數被調用時進行初始化的,這是實現多態的關鍵.
2.將一個 1M-10M的文件,逆序存儲到另一個文件,就是前一個文件的最后一個字符存到新文件的第一個字符,以此類推。
//實現對一個文本文件內容的反向顯示。
#include
#include
void main ( )
{
char c;
FILE *fp;
if ((fp=fopen("test.txt","r")) == NULL) //以讀方式打開文本文件
{ printf ("Cannot open file.\n");
exit(1);
}
fseek( fp,0L, 2 ); //定位文件尾。注意此時并不是定位到文件的最后一字符,
//而是在定位文件最后一個字符之后的位置
while ((fseek(fp,-1L, 1))!=-1) // 相對當前位置退后一個字節
{
c=fgetc(fp); putchar (c); //如果定位成功,讀取當前字符并顯示
/* 讀取字符成功,文件指針會自動移到下一字符位置 */
if (c==\n) /* 若讀入是\n字符 */
fseek(fp,-2L,1); /* 由于DOS在文本文件中要存回車0x0d和換 */
/* 行0x0a兩個字符,故要向前移動兩個字節 */
else fseek (fp,-1L, 1); /* 文件指針向前移動一個字節,使文 */
} /* 件指針定位在剛剛讀出的那個字符 */
fclose (fp); /* 操作結束關閉文件 */
}
3.main主函數執行完畢后,是否可能會再執行一段代碼?(朗訊的一道筆試題)
答案:可以,可以用_onexit 注冊一個函數,它會在main 之后執行;
如果你需要加入一段在main退出后執行的代碼,可以使用atexit()函數,注冊一個函數。
語法:
#include
int atexit(void (*function")(void));
#include
#include
void fn1( void ), fn2( void ), fn3( void ), fn4( void );
int main( void )
{
atexit( fn1 );
atexit( fn2 );
atexit( fn3 );
atexit( fn4 );
printf( "This is executed first.\n" );
}
void fn1()
{
printf( "next.\n" );
}
void fn2()
{
printf( "executed " );
}
void fn3()
{
printf( "is " );
}
void fn4()
{
printf( "This " );
}
結果:
This is executed first.
This is executed next.
【C++ 筆試題】相關文章:
普天C++筆試題02-18
基礎C++/C語言筆試題分享11-21
C++工程師筆試題目11-25
群碩筆試題Java和C++、C#11-21
UC(優視科技)2014實習筆試題回憶版 C/C++編程11-21
中國銀行筆試題回顧,新鮮筆經!11-21
迅雷JAVA廣州站二筆筆試題目分享11-21
大唐移動測試工程師筆經,筆試題目分享11-21
C++程序員求職信11-21
最新凌陽科技C++筆試分享11-21