C++程序设计基础(3)条件语句和循环语句

简介: 注:读《程序员面试笔记》笔记总结1.知识点1.1条件语句(1)if……;(2)if……else……;(3)if……else if……;(4)switch(){case ():break;case():break;default:}。

注:读《程序员面试笔记》笔记总结

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

相关文章
|
4月前
|
存储 安全 编译器
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
|
5月前
|
算法 程序员 编译器
C++的四类循环分享
C++的四类循环:Entry or Exit controlled, Ranged-based or For_each
|
5月前
|
C++
C++一分钟之-循环结构:for与while循环
【6月更文挑战第18天】在C++中,`for`循环适合已知迭代次数,如数组遍历;`while`循环适用于条件驱动的未知次数循环。`for`以其初始化、条件和递增三部分结构简洁处理重复任务,而`while`则在需要先检查条件时更为灵活。常见错误包括无限循环和逻辑错误,解决办法是确保条件更新和正确判断。了解两者应用场景及陷阱,能提升代码效率和可读性。
66 6
|
5月前
|
C++
C++ : 程序设计简单实例
C++ : 程序设计简单实例
44 3
|
5月前
|
安全 C++
C++:程序设计实例
C++:程序设计实例
53 2
|
5月前
|
C语言 C++ 容器
c++primer plus 6 读书笔记 第五章 循环和关系表达式
c++primer plus 6 读书笔记 第五章 循环和关系表达式
|
5月前
|
C++
C++程序设计实践一上(题目来自杭州电子科技大学ACM)
C++程序设计实践一上(题目来自杭州电子科技大学ACM)
38 2
|
5月前
|
C++
C++程序设计实践一下(题目来自杭州电子科技大学ACM)
C++程序设计实践一下(题目来自杭州电子科技大学ACM)
45 1
|
5月前
|
程序员 编译器 C++
探索C++语言宝库:解锁基础知识与实用技能(类型变量+条件循环+函数模块+OOP+异常处理)
探索C++语言宝库:解锁基础知识与实用技能(类型变量+条件循环+函数模块+OOP+异常处理)
48 0
|
5月前
|
存储 JavaScript 前端开发
程序与技术分享:C++程序设计实验考试准备资料(2019级秋学期)
程序与技术分享:C++程序设计实验考试准备资料(2019级秋学期)