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