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

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 一个月奖金
 string getMessage(char mark) {
string message = "";
switch (mark) {
case 'A'://注意此处使用单引号表示字符,双引号表示字符串
message.append("美国或英国十日游,");
case 'B':
message.append("五千元超市卡,");
case 'C':
message.append("两千元亚马逊卡,");
case 'D':
message.append("一个月奖金");
default:
break;
}
return message;
}
//注意#include<string>来重载cout,才能够输出string类型的数据

2.2.for循环的三要素

写出下面程序的输出结果:

 bool foo(char c) {
cout << c;
return true;
}
int main(int argc, char *argv[]) {
int i = ;
for (foo('A'); foo('B') && (i++ < ); foo('C')) {
foo('D');
}
getchar();
return ;
}

答案:ABDCBDCB

2.3巧打乘法口诀表

编写一个函数,接受一个整形参数n表示输出的规模。要求只用一重循环输出乘法口诀表的全部内容,并且程序中不能使用任何条件语句

 void print(int n) {
int row = , column = ;
char flag[] = " \n";//当列数等于行数时为flag[1]换行
while (row<=n)
{
cout << row << " * " << column << " = " << row * column << flag[column / row];
int tem = column % row + ;//当列数等于行数时,tem跳回1
row = column / row + row;//当列数等于行数时,行数加一
column = tem;
}
}

总结:(1)列号的变化规律符合取模运算,这种不断回到起点的数字排列特征符合取模运算的性质;

下一项列号=当前列号%当前行号+1

(2)对于行号来说,当列号等于行号时,行号加1,当列号等于行号时,行号不变。行号的变化规律符合整数除法的性质,当被除数小于除数时结果为零,当二者相等时结果为1。

下一项行号=当前列号/当前行号+1

最新文章

  1. 第三个Sprint冲刺第九天
  2. bzoj2631: tree
  3. Linux下运行C语言程序
  4. iOS---性能优化
  5. 细说HTTP上篇
  6. [HDOJ5934]Bomb(强连通分量,缩点)
  7. netty4 连通步骤
  8. LoadRunner报26612错误的解决方案
  9. [Browsable(false)]
  10. sum_series() 求一列数的指定个数的数和(5个数字的和)
  11. zongjie
  12. 知道版本对于出0day后批量攻击dedecms有非常大的帮助,先判断版本再选择相应exp,效率大增
  13. [HAOI2006]受欢迎的牛
  14. 【转】SQL多条件模糊查询解决方案-存储过程
  15. Linux(Ubuntu 16) 下Java开发环境的配置(二)------Tomcat的配置及常见问题
  16. python设计模式第七天【建造者模式】
  17. mysql 修改文件记录:
  18. Python_collections_Counter计数器部分功能介绍
  19. linux 虚拟机挂载光驱
  20. js的以及前端框架

热门文章

  1. 玩转php缓存memcache
  2. 引用面试官文章 :如何准备Java初级和高级的技术面试
  3. Java程序员修炼之路
  4. 洛谷P2566 [SCOI2009]围豆豆(状压dp+计算几何)
  5. 关于jboss的线程问题+java.lang.outofmemoryError
  6. 如何查看Centos版本
  7. 《Andrew Ng深度学习》笔记3
  8. redis设置允许远程连接
  9. 2018南京icpc现场赛心得
  10. 可持久化Treap 赛前摸鱼笔记