<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] 51. 請你談談你在類中如何使用const的 ``` 1.const成員:表示該成員變量為只讀 2.const修飾形式參數:表示改函數不能修改外部傳遞進來的值 3.修飾函數: 表示該函數無法修改對象的數據成員 4.修飾函數返回值:表示該函數的返回值不能為左值。 ``` 52. 寫出判斷ABCD四個表達式的是否正確,若正確,寫出經過表達式中a的值。 int a = 4; A a+= (a++); B a += (++a); C (a++) += a; D (++a) += (a++); 【參考答案】C錯誤,左側不是一個有效變量,不能賦值,可改為(++a) += a; 改后答案依次為9,10,10,11。 53. 如何使用return語句 return 返回的可以是 值、地址、引用 1)return語句不可返回指向“棧內存“的“指針“或者“引用“,因為該內存在函數體結束時被自動銷毀。 2)要搞清楚返回的究竟是“值“、“指針“還是“引用“。 3)如果函數返回值是一個對象,要考慮return語句的效率。 53。三元表達式后的兩個參數必須為統一類型的值 54. 寫一個函數計算當參數為n(n很大)時的值1-2+3-4+5-6+7...+n。 ``` long fn(long n) { if(n <= 0) { printf("error:n must > 0"); exit(1); } if (0 == n % 2) return (n/2)* (-1); else return (1-n/2) + n; } ``` 55.寫一個能做左值的函數(方法有很多)。如: max(x, y) + = 2874 + 55; drwline(x, y) ++; ``` 左值:有空間,并且有寫權限。函數返回引用 int &max(int &x, int&y) { return x> y? x:y; } int x = 55, y = 77; max(x, y) += 12 + 11;// 此時y = 92; count << "x=" << x << "; y=" << y << endl; //輸出x=55;y=92; ``` 56. 一下代碼中的輸出語句輸出為0嗎,為什么? ``` struct CLS{ int m_i; CLS(int i):m_i(i) {} CLS() { CLS(0); } }; CLS obj; cout << obj.m_i <<endl; ``` 不能。在默認構造函數內部顯示調用帶參的構造函數屬用戶行為而非編譯器行為,亦即僅執行函數調用,而**不會執行其后的初始化表達式**。**只有在生成對象時,初始化表達式才會隨相應的構造函數一起調用。** 57.不使用 "if" "? :" “switch“求兩個數之間的最大值 ``` (a+b + | a - b|) /2 ``` 58. 當用一個已存在的對象去初始化對象時,會觸發拷貝構造函數。 59. 在C++的一個類中聲明一個static成員變量有沒有用? 意味著它為該類的所有實例所共享,也就是說當某個類的實例修改類該靜態成員變量,也就是說不管創建多少對象,static修飾的變量只占有一塊內存。其修改值為該類的其他所有實例所見;而類的靜態成員函數也只能訪問靜態成員(變量或函數)。static是加類訪問空置的全局變量,不被繼承。 60. C++中為什么使用模版類(類型)。(類模版 是一種泛型機制) 1)可以用來創建動態增長和減少的數據結構 2)它是類型無關的,因此具有很高的可復用性。 3)它在編譯時而不是運行時肩擦好數據類型,保證來類型安全。 4)它是平臺無關的,可移植性 5)可用于基本數據類型 61. C++中哪些函數不能被聲明為虛函數? 普通函數、構造函數、內聯函數、靜態成員函數、友元函數。 1)虛函數用于基類和派生類,普通函數不能。 2)構造函數不能是因為虛函數采用的是虛調用的方法,允許在只知道部分信息的情況工作機制,特別允許調用只知道接口而不知道對象的準確類型方法,但是調用構造函數即使要創建一個對象,那勢必要知道對象的準確類型。 3)內聯成員函數的實質是在調用的地方直接將代碼擴展開 4)繼承時,靜態成員函數是不能被繼承的,它只屬于一個類,因為也不存在動態聯遍等。 5)友元函數不是類的成員函數,因此也不能被繼承 62. return string(s1 + s2); 和 string temp(s1 + s2); return temp;一樣么? 1)這是臨時對象的語法,表示“創建一個臨時對象并返回它。 2)將發生三件事。首先temp對象被創建,同時完成初始化;然后拷貝構造函數把temp拷貝到保存返回值的外部存儲單元中;最后,temp在函數結束時被銷毀(調用析構函數)。然而“創建一個臨時對象并返回它“的過程是不同的,編譯器直接把臨時對象創建并初始化在外部存儲單元中,省去類拷貝和析構的花費,提高了效率。 63. 介紹一下STL,詳細說明STL如何實現vector STL(標準模版庫,Standard Template Library,它由容器算法迭代器組成。 STL有以下的一些優點: 可以方便容易地實現搜索數據或對數據排序等一系列的算法; 調試程序時更加安全和方便; 即使是人們用STL在unix平臺下寫的代碼你也可以很容易地理解(因為STL是跨平臺的)。 vector實質上就是一個動態數組,會根據數據的增加,動態的增加數組空間。 64. 下面的throw表達式哪些是錯誤的? ``` a)class exceptionType{}; throw exceptionType{}; b) enum mathErr{overflow, underflow, zeroDivide}; throw zeroDivide(); a)class exceptionType{}; throw exceptionTyp(); b) enum mathErr{overflow, underflow, zeroDivide}; throw zeroDivide; 異常必須事先定義。 可以是簡單的數據/值/對象。 ``` 65. 以下代碼能夠通過編譯么,為什么 ``` unsigned int const size1 = 2; char str1[size1]; unsigned int temp = 0; cin >> temp; unsigned int const size2 = temp; char str2[size2]; ``` str2定義出錯,size2非編譯器期間常量,而數組定義要求長度必須為編譯期常量。 66. 輸入一個字符串,將其逆序后輸出 ``` void main() { char a[50] ; memset(a,0, sizeof(a)); int i =0; j; char t; cin.getline(a, 50, '\n'); int la = strlen(a) -1; int lm = strlen(a)/2; for (i=0, j=la; i < lm; i++, j--) { t = a[i]; a[i]= a[j]; a[j] = t; } cout << a <<endl; } 第二種: string str("cvicses"); string s(str.rbegin(),str.rend()); cout << s <<endl; return 0; ``` 67. 編寫一個算法frequency, 統計在一個輸入字符串中各個不同字符出現的頻度。用適當的測試數據來驗證這個算法。 ``` #include <vector> #include <iostream> #include <string> #include <map> using namespace std; int main() { ?? ?map<char,int> m_Count; ?? ?string str; ?? ?cout<<"請輸入字符串!!"<<endl; ?? ?getline(cin,str); ?? ?for (size_t i = 0;i < str.size();++i) ?? ?{ ?? ??? ?m_Count[str[i]]++; ?? ?} ?? ?map<char,int>::iterator iter; ?? ?for (iter = m_Count.begin(); iter != m_Count.end();++iter) ?? ?{ ?? ??? ?cout<<iter->first<<":"<<iter->second<<endl; ?? ?} ?? ?return 0; } ``` 68.已知A[n]為整數數組,試著寫出實現下列運算的遞歸算法: 1)求數組A中的最大整數。 2)求n個整數的和。 3)求n個整數的平均值。 ![Screen Shot 2020-06-07 at 17.51.58.png](https://img04.sogoucdn.com/app/a/100520146/7b5e6a67a4431c97344bb318d5e4a420) 69. 已知f為單鏈表的表頭指針,鏈表中存儲的都是整形數據,試寫出下列運算的遞歸算法: 1) 求鏈表中的最大整數。 2)求鏈表的節點個數。 3)求所有整數的平均值。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看