剑指Offer——咪咕笔试题+知识点总结

情景回顾

  • 时间:2016.10.09 15:00-16:30
  • 地点:山东省网络环境智能计算技术重点实验室
  • 事件:咪咕笔试

知识点总结

1.Html设置格式贵阳爽歪歪

Http get与post的区别

  • 1.GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如: login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。

     POST把提交的数据放置在是HTTP包体中。
  • 2.GET方式提交的数据最多只能是1024字节(因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。),理论上POST没有限制,可传较大量的数据。
  • 3.在ASP中,服务端获取GET请求参数用Request.QueryString,获取POST请求参数用Request.Form。在JSP中,用request.getParameter(\”XXXX\”)来获取,虽然jsp中也有request.getQueryString()方法,但使用起来比较麻烦,比如:传一个test.jsp?name=hyddd&password=hyddd,用request.getQueryString()得到的是:name=hyddd&password=hyddd。
  • 4.POST的安全性要比GET的安全性高。比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为
  • (1)登录页面有可能被浏览器缓存;
  • (2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了;
  • (3)除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。

C++编程实现猜数游戏

  C++,自己已经忘记的差不多了。对于基本语法自己还是要记住的。毕竟自己学过的。

注:

  我们知道rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基准以某个递推公式推算出来的一系列数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统。

1.rand()

  • 功能:随机数发生器

  • 用法:int rand(void)

  • 所在头文件: stdlib.h

  rand()的内部实现是用线性同余法做的,它不是真的随机数,因其周期特别长,故在一定的范围里可看成是随机的。

  rand()返回一随机数值的范围在0至RAND_MAX间。RAND_MAX的范围最少是在32767之间(int)。用unsigned int 双字节是65535,四字节是4294967295的整数范围。0~RAND_MAX每个数字被选中的机率是相同的。

  用户未设定随机数种子时,系统默认的随机数种子为1。

  rand()产生的是伪随机数字,每次执行时是相同的;若要不同,用函数srand()初始化它。

2.srand()

  • 功能:初始化随机数发生器
  • 用法: void srand(unsigned int seed)
  • 所在头文件: stdlib.h

  srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。

3.使用当前时钟作为随机数种子

  rand()产生的随机数在每次运行的时候都是与上一次相同的。若要不同,用函数srand()初始化它。可以利用srand((unsigned int)(time(NULL))的方法,产生不同的随机数种子,因为每一次运行程序的时间是不同的。

4.产生随机数的用法

  • 1)给srand()提供一个种子,它是一个unsigned int类型;
  • 2)调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到RAND_MAX之间);
  • 3) 根据需要多次调用rand(),从而不间断地得到新的随机数;
  • 4) 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。

0~RAND_MAX之间的随机数程序

include <iostream>
include <stdlib.h>
include <time.h>
using namespace std;
int main()
{
        srand((unsigned)time(NULL));
        for(int i = 0; i < 10;i++ )
          cout << rand() << '\t';
        cout << endl;
        return 0;
}

5.产生一定范围随机数的通用表示公式

  1. 要取得[a,b)的随机整数,使用(rand() % (b-a))+ a;
  2. 要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a;
  3. 要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1;
  4. 通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。
  5. 要取得a到b之间的随机整数,另一种表示:a + (int)b * rand() / (RAND_MAX + 1)。
  6. 要取得0~1之间的浮点数,可以使用rand() / double(RAND_MAX)。

码上有戏

include<iostream>
include<ctime>
using namespace std;
int main(){
  cout<<"-----------------猜数游戏---------------"<<endl;
  // 使用当前时钟作为随机数种子
  srand(time(NULL));
  int min = 1;
  int max = 100;//初始范围
  long begin = time(NULL);
  int guessNumber;
loop:
  // 随机数生成[1,100]
  int random  = rand()%(max+1);
  cout<<"生成的随机数为:"<<random<<endl;
  cout<<"请输入你猜的数字:"<<endl;
  do{
      cin>>guessNumber;
      if (guessNumber > random) {
         cout<<"你猜的数字大了,请重新输入你猜的数字:"<<endl;
      }else if (guessNumber < random){
         cout<<"你猜的数字小了,请重新输入你猜的数字:"<<endl;
      }
  }while (guessNumber != random);
  long end = time(NULL);
  cout<<"恭喜你猜对了,共耗时"<<(end - begin)<<"ms"<<endl;
loop2:
  cout<<"是否继续?(Y/N)"<<endl;
  char flag;
  cin>>flag;
  if(flag == 'Y'){
    goto loop;
  }else if (flag == 'N'){
  }else{
      cout<<"输入有误,请重新输入。"<<endl;
      goto loop2;
  }
}






剑指Offer——咪咕笔试题+知识点总结的更多相关文章

  1. 剑指Offer——网易笔试题+知识点总结

    剑指Offer--网易笔试题+知识点总结 Fibonacci package cn.edu.ujn.nk; import java.util.ArrayList; import java.util.S ...

  2. 剑指Offer——滴滴笔试题+知识点总结

    剑指Offer--滴滴笔试题+知识点总结 情景回顾 时间:2016.9.18 15:00-17:00 地点:山东省网络环境智能计算技术重点实验室 事件:滴滴笔试   总体来说,滴滴笔试内容体量不算多, ...

  3. 剑指Offer——迅雷笔试题+知识点总结

    剑指Offer--迅雷笔试题+知识点总结 情景回顾 时间:2016.9.19 19:00-21:00 地点:山东省网络环境智能计算技术重点实验室 事件:迅雷笔试 总体来说,迅雷笔试内容体量不算多,主要 ...

  4. 《剑指offer》面试题39 二叉树的深度(java)

    摘要: 今天翻到了<剑指offer>面试题39,题目二中的解法二是在函数的参数列表中通过指针的方式进行传值,而java是没有指针的,所以函数要进行改造.然而我翻了下别人的java版本(我就 ...

  5. 【剑指Offer】面试题10- II. 青蛙跳台阶问题

    题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法. 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返 ...

  6. 《剑指offer》面试题12:打印1到最大的n位数

    面试题12:打印1到最大的n位数 剑指offer题目12,题目如下 输入数字n,按顺序打印出1到最大的n位十进制数,比如输入3,则打印出1,2,3一直到最大的三位数999 方法一 和面试题11< ...

  7. 《剑指offer》面试题11: 数值的整数次方

    面试题11: 数值的整数次方 剑指offer面试题11,题目如下 实现函数double power(double base,int exponent),求base的exponent次方, 不得使用库 ...

  8. 《剑指Offer》- 面试题3

    <剑指Offer——名企面试官精讲典型编程题>  面试题3:  二维数组元素从左到右.从上到下递增,输入一个二维数组和一个整数,  查找该整数. 自己的思路:有序条件下进行查找,当然最简单 ...

  9. 《剑指offer》面试题的Python实现

    <剑指Offer>是很多程序员面试前要看的书,但里面的算法都是基于C++实现的,最近用了三周左右时间,用Python完成了里面几乎所有的算法题,由于时间以及个人水平均有限,或许会有部分问题 ...

随机推荐

  1. python3.6安装PyQt5

    1.安装环境: python3.6 win8系统 2.安装方法 直接在windows cmd命令行(不需要进入python命令行模式)内输入 pip install PyQt5 等一会就行了. 用pi ...

  2. POJ2454 Jersey Politics

    Description In the newest census of Jersey Cows and Holstein Cows, Wisconsin cows have earned three ...

  3. POJ2135:Farm Tour

    题意:给定一个无向图,从1走到n再从n走回1,每个边只能走一遍,求最短路 题解:可以定义一个源点s,和一个汇点t s和1相连容量为2,费用为0, t和n相连容量为2,费用为0 然后所用的边的容量都定为 ...

  4. poj 1741 树的点分治(入门)

    Tree Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 18205   Accepted: 5951 Description ...

  5. 【CODEVS 6384 大米兔学全排列】

    ·大米兔学习全排列,还有一些逆序对,还有一棵二叉索引树.· ·分析:       首先肯定不是像题目上说的那样,使用next_permutation去完成这道题,因为就算是线性的它也不能承受庞大的排列 ...

  6. 操作系统内存管理之 内部碎片vs外部碎片

    外部碎片:因为行程持续地被载入与置换,使得可用的记忆体空间被分割成许多不连续的区块.虽然记忆体所剩空间总和足够让新行程执行,却因为空间不连续,导致程式无法载入执行.内部碎片:发生在以固定长度分割区来进 ...

  7. moment.js常用时间示例,时间管理

    '今天': moment() '昨天': moment().subtract(1, 'days') '过去7天':moment().subtract(7, 'days'),moment() '上月': ...

  8. Chrome浏览器Postman插件安装使用

    最近调试后台接口一直在使用的工具,由于换了新的电脑重新安装了一下PostMan.随便记录一下如何安装使用这个插件. 闲言不要谈,直接上步骤: 1. 首先必须有chrome浏览器,这个相信大家肯定都安装 ...

  9. 线性回归(Linear Regression)均方误差损失函数最小化时关于参数theta的解析解的推导(手写)

    第一页纸定义了损失函数的样子, theta, X 和 y 的 shape, 以及最终的损失函数向量表现形式. 第二页纸抄上了几个要用到的矩阵求导公式,以及推导过程和结果. 要说明的是:推导结果与the ...

  10. python读取文本文件数据

    本文要点刚要: (一)读文本文件格式的数据函数:read_csv,read_table 1.读不同分隔符的文本文件,用参数sep 2.读无字段名(表头)的文本文件 ,用参数names 3.为文本文件制 ...