C++程序設計基礎(3)條件語句和循環語句


注:讀《程序員面試筆記》筆記總結

1.知識點

1.1條件語句

(1)if……;(2)if……else……;(3)if……else if……;(4)switch(){case ():break;case():break;default:}。

關於switch的兩點說明,第一是case后面結束后必須加break,否則將在執行某個case之后的所有case語句都會執行,第二是default可以省略。

1.2循環語句

(1)for(init;condition of continue circular;variables update);(2)while(condition)。

關於while的一點說明:當while(1)時一般在內部會有break來終止程序結束,否則進入死循環。

2.面試題

2.1.不使用break的switch語句

公司年底給員工發一條關於年終獎的短信,獎品根據員工年度績效考評結果而定,具體見下表,請編寫一個函數,輸入為員工年度考評的結果,輸出為短信的內容,短信中需要羅列員工所獲得的所有獎品。

考評結果 年終獎品
優秀 A 美國 或英國十日游,五千元超市卡,兩千元亞馬遜卡,一個月獎金
良好B 五千元超市卡,兩千元亞馬遜卡,一個月獎金
及格C 兩千元亞馬遜卡,一個月獎金
未達標D 一個月獎金
 1 string getMessage(char mark) {
 2     string message = "";
 3     switch (mark) {
 4     case 'A'://注意此處使用單引號表示字符,雙引號表示字符串
 5         message.append("美國或英國十日游,");
 6     case 'B':
 7         message.append("五千元超市卡,");
 8     case 'C':
 9         message.append("兩千元亞馬遜卡,");
10     case 'D':
11         message.append("一個月獎金");
12     default:
13         break;
14     }
15     return message;
16 }
17 //注意#include<string>來重載cout,才能夠輸出string類型的數據

2.2.for循環的三要素

寫出下面程序的輸出結果:

 1 bool foo(char c) {
 2     cout << c;
 3     return true;
 4 }
 5 int main(int argc, char *argv[]) {
 6     int i = 0;
 7     for (foo('A'); foo('B') && (i++ < 2); foo('C')) {
 8         foo('D');
 9     }
10     getchar();
11     return 0;
12 }

答案:ABDCBDCB

2.3巧打乘法口訣表

編寫一個函數,接受一個整形參數n表示輸出的規模。要求只用一重循環輸出乘法口訣表的全部內容,並且程序中不能使用任何條件語句

 1 void print(int n) {
 2     int row = 1, column = 1;
 3      char flag[] = " \n";//當列數等於行數時為flag[1]換行
 4     while (row<=n)
 5     {
 6         cout << row << " * " << column << " = " << row * column << flag[column / row];
 7         int tem = column % row + 1;//當列數等於行數時,tem跳回1
 8         row = column / row + row;//當列數等於行數時,行數加一
 9         column = tem;
10     }
11 }

 總結:(1)列號的變化規律符合取模運算,這種不斷回到起點的數字排列特征符合取模運算的性質;

下一項列號=當前列號%當前行號+1

(2)對於行號來說,當列號等於行號時,行號加1,當列號等於行號時,行號不變。行號的變化規律符合整數除法的性質,當被除數小於除數時結果為零,當二者相等時結果為1。

下一項行號=當前列號/當前行號+1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM