• 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[] = " 
    ";//当列数等于行数时为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

  • 相关阅读:
    在SharePoint 2010上给用户操作菜单增加一个操作
    查看User Profile的名称和显示名称
    SharePoint列表或表单库使用ID做标题
    SharePoint中User Profile对应于AD的属性
    C#—发邮件方法
    下载和安装ASP.NET MVC
    在InfoPath中利用SharePoint的Lists Web Service向列表提交数据(续一)
    给SharePoint中的User Profile添加属性需要注意的地方
    从PeopleEditor控件中取出多用户并更新到列表
    SharePoint中低权限用户通过提升权限创建用户组
  • 原文地址:https://www.cnblogs.com/ys99/p/9192519.html
Copyright © 2020-2023  润新知