- 相關推薦
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++ 筆試題】相關文章:
鐵塔公司筆試試題03-25
幼師招聘筆試題目04-02
報社筆試題目及答案03-18
面試題:對跳槽的看法11-04
面試心理測試題08-19
廣發銀行筆試題目08-19
聯發科硬件筆試題07-19
人事專員面試題目02-24
醫院護士招聘筆試題目08-21
羊城晚報筆試題目04-11