當(dāng)前位置:高考升學(xué)網(wǎng) > 招聘筆試題 > 正文
43. 非C++內(nèi)建型別 A 和 B,在哪幾種情況下B能隱式轉(zhuǎn)化為A?[C++中等]
答:
a. class B : public A { ……} // B公有繼承自A,可以是間接繼承的
b. class B { operator A( ); } // B實(shí)現(xiàn)了隱式轉(zhuǎn)化為A的轉(zhuǎn)化
c. class A { A( const B& ); } // A實(shí)現(xiàn)了non-explicit的參數(shù)為B(可以有其他帶默認(rèn)值的參數(shù))構(gòu)造函數(shù)
d. A& operator= ( const A& ); // 賦值操作,雖不是正宗的隱式類型轉(zhuǎn)換,但也可以勉強(qiáng)算一個(gè)
44. 以下代碼中的兩個(gè)sizeof用法有問題嗎?[C易]
void UpperCase( char str[] ) // 將 str 中的小寫字母轉(zhuǎn)換成大寫字母
{
for( size_t i=0; i
if( 'a'<=str && str<='z' )
str -= ('a'-'A' );
}
char str[] = "aBcDe";
cout << "str字符長(zhǎng)度為: " << sizeof(str)/sizeof(str[0]) << endl;
UpperCase( str );
cout << str << endl;
答:函數(shù)內(nèi)的sizeof有問題。根據(jù)語法,sizeof如用于數(shù)組,只能測(cè)出靜態(tài)數(shù)組的大小,無法檢測(cè)動(dòng)態(tài)分配的或外部數(shù)組大小。函數(shù)外的str是一個(gè)靜態(tài)定義的數(shù)組,因此其大小為6,函數(shù)內(nèi)的str實(shí)際只是一個(gè)指向字符串的指針,沒有任何額外的與數(shù)組相關(guān)的信息,因此sizeof作用于上只將其當(dāng)指針看,一個(gè)指針為4個(gè)字節(jié),因此返回4。
45. 以下代碼有什么問題?[C難]
void char2Hex( char c ) // 將字符以16進(jìn)制表示
{
char ch = c/0x10 + '0'; if( ch > '9' ) ch += ('A'-'9'-1);
char cl = c%0x10 + '0'; if( cl > '9' ) cl += ('A'-'9'-1);
cout << ch << cl << ' ';
}
char str[] = "I love 中國(guó)";
for( size_t i=0; i
char2Hex( str );
cout << endl;
46. 以下代碼有什么問題?[C++易]
struct Test
{
Test( int ) {}
Test() {}
void fun() {}
};
void main( void )
{
Test a(1);
a.fun();
Test b();
b.fun();
}
答:變量b定義出錯(cuò)。按默認(rèn)構(gòu)造函數(shù)定義對(duì)象,不需要加括號(hào)。
47. 以下代碼有什么問題?[C++易]
cout << (true?1:"1") << endl;
答:三元表達(dá)式“?:”問號(hào)后面的兩個(gè)操作數(shù)必須為同一類型。
8. 以下代碼能夠編譯通過嗎,為什么?[C++易]
unsigned int const size1 = 2;
char str1[ size1 ];
unsigned int temp = 0;
cin >> temp;
unsigned int const size2 = temp;
char str2[ size2 ];
答:str2定義出錯(cuò),size2非編譯器期間常量,而數(shù)組定義要求長(zhǎng)度必須為編譯期常量。
48. 以下代碼中的輸出語句輸出0嗎,為什么?[C++易]
struct CLS
{
int m_i;
CLS( int i ) : m_i(i) {}
CLS()
{
CLS(0);
}
};
CLS obj;
cout << obj.m_i << endl;
答:不能。在默認(rèn)構(gòu)造函數(shù)內(nèi)部再調(diào)用帶參的構(gòu)造函數(shù)屬用戶行為而非編譯器行為,亦即僅執(zhí)行函數(shù)調(diào)用,而不會(huì)執(zhí)行其后的初始化表達(dá)式。只有在生成對(duì)象時(shí),初始化表達(dá)式才會(huì)隨相應(yīng)的構(gòu)造函數(shù)一起調(diào)用。
49. C++中的空類,默認(rèn)產(chǎn)生哪些類成員函數(shù)?[C++易]
答:
class Empty
{
public:
Empty(); // 缺省構(gòu)造函數(shù)
Empty( const Empty& ); // 拷貝構(gòu)造函數(shù)
~Empty(); // 析構(gòu)函數(shù)
Empty& operator=( const Empty& ); // 賦值運(yùn)算符
Empty operator&(); // 取址運(yùn)算符
const Empty operator&() const; // 取址運(yùn)算符 const
};
50. 以下兩條輸出語句分別輸出什么?[C++難]
float a = 1.0f;
cout << (int)a << endl;
cout << (int&)a << endl;
cout << boolalpha << ( (int)a == (int&)a ) << endl; // 輸出什么?
float b = 0.0f;
cout << (int)b << endl;
cout << (int&)b << endl;
cout << boolalpha << ( (int)b == (int&)b ) << endl; // 輸出什么
51. 以下反向遍歷array數(shù)組的方法有什么錯(cuò)誤?[STL易]
vector array;
array.push_back( 1 );
array.push_back( 2 );
array.push_back( 3 );
for( vector::size_type i=array.size()-1; i>=0; --i ) // 反向遍歷array數(shù)組
{
cout << array << endl;
}
答:首先數(shù)組定義有誤,應(yīng)加上類型參數(shù):vector
52. 以下代碼有什么問題?[STL易]
typedef vector IntArray;
IntArray array;
array.push_back( 1 );
array.push_back( 2 );
array.push_back( 2 );
array.push_back( 3 );
// 刪除array數(shù)組中所有的2
for( IntArray::iterator itor=array.begin(); itor!=array.end(); ++itor )
{
if( 2 == itor ) array.erase( itor );
}
答:同樣有缺少類型參數(shù)的問題。另外,每次調(diào)用“array.erase( itor );”,被刪除元素之后的內(nèi)容會(huì)自動(dòng)往前移,導(dǎo)致迭代漏項(xiàng),應(yīng)在刪除一項(xiàng)后使itor--,使之從已經(jīng)前移的下一個(gè)元素起繼續(xù)遍歷。
53. 寫一個(gè)函數(shù),完成內(nèi)存之間的拷貝。[考慮問題是否全面]
答:
void mymemcpy( void dest, const void src, size_t count )
{
char pdest = static_cast
const char psrc = static_cast
if( pdest>psrc && pdest
{
for( size_t i=count-1; i!=-1; --i )
pdest = psrc;
}
else
{
for( size_t i=0; i
pdest = psrc;
}
return dest;
}
int main( void )
{
char str[] = "0123456789";
mymemcpy( str+1, str+0, 9 );
cout << str << endl;
system( "Pause" );
return 0;
}
54 線程與進(jìn)程的區(qū)別
55:請(qǐng)你分別劃劃OSI的七層網(wǎng)絡(luò)結(jié)構(gòu)圖,和TCP/IP的五層結(jié)構(gòu)圖?
56:請(qǐng)你詳細(xì)的解釋一下IP協(xié)議的定義,在哪個(gè)層上面,主要有什么作用? TCP與UDP呢?
57:請(qǐng)問交換機(jī)和路由器分別的實(shí)現(xiàn)原理是什么?分別在哪個(gè)層次上面實(shí)現(xiàn)的?
58:請(qǐng)問C++的類和C里面的struct有什么區(qū)別?
59:請(qǐng)講一講析構(gòu)函數(shù)和虛函數(shù)的用法和作用?
60:全局變量和局部變量有什么區(qū)別?實(shí)怎么實(shí)現(xiàn)的?操作系統(tǒng)和編譯器是怎么知道的?
61:一些寄存器的題目,主要是尋址和內(nèi)存管理等一些知識(shí)。
62:8086是多少位的系統(tǒng)?在數(shù)據(jù)總線上是怎么實(shí)現(xiàn)的?
2020年河北新聞網(wǎng)兩學(xué)一做
時(shí)間:2023-09-18 07:0:242020年河北新聞網(wǎng)兩學(xué)一做
時(shí)間:2023-09-15 11:0:59兩學(xué)一做學(xué)習(xí)教育知
時(shí)間:2023-09-21 06:0:302020年開展兩學(xué)一做學(xué)習(xí)教
時(shí)間:2023-09-19 21:0:30