C++两道笔试题

//现给定一个含有n个元素的数组,请随机获取其中的m个元素(不能重复获取)。

#include <iostream>
#include <stdlib.h>
using namespace std;
void Grial(int a[], int n,int x)
{
    int *b = new int[x];
    int k = 0;
    int i = n;
    while (x--)
    {
        int j = rand() % i;
        b[k++] = a[j];
        a[j] = a[i - 1];
        i--;
    }
    for (i=0; i < k; i++)
    {
        cout << b[i] << endl;
    }
}
int main()
{
    int a[] = {1,2,3,4,5,6,7,8,9,10};
    Grial(a,sizeof(a)/sizeof(int),4);
    return 0;
}

//题目描述
//现给定n个物品,其概率分别为P1, P2, P3...Pn,请设计一个接口,根据概率,随机获取一个物品。
#include <iostream>
#include <string.h>
#define _N 6
static flags = 0;
using namespace std;
const char *str[_N]={
                   "物品1", "物品2", "物品3",
                   "物品4","物品5", "物品6",
                   };
const double a[] = {0.1,0.05,0.05,0.4,0.2,0.2};
int index(int x)
{
    int b[] = { 0,0.1 * 100, (0.1+0.05) * 100, (0.05*2+0.1) * 100,
                (0.4+0.1+0.1) * 100, (0.2+0.4+0.2) * 100,100 };
    int i = 0;
    for (; i < _N; i++)
    {
        if (b[i] < x && b[i + 1] >= x)
            return i + 1;
    }
    flags = 1;
    return 0;
}
const char *Grial()
{
    return str[index(rand() % 100)];
}
int main()
{
    cout << Grial() << endl;
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-07 01:31:58

C++两道笔试题的相关文章

两道笔试题的感触

今天做了两道笔试题,收益良多.有些题,你会发现,虽然并不难,但是却很容易没有思路或者出错,这都是源自平时的不求甚解.很多知识点,自以为已经掌握,其实只是管中窥豹,可见一斑.不要一味墨守成规,也要用于思考,很多东西既要知其然,也要知其所以然.我一直觉得了解和精通中间差着十万八千里,看来还有很长一段路要走.只有比别人更早.更勤奋地努力,才能尝到更加成功的滋味.哈哈,跑题了. 下面看一下两道笔试题.一.大概简单地说一下,求下面这段代码的结果. new Thread(new Runnable() { p

两道笔试题

"char a='\72'"是什么意思? 这么理解:\为转义字符,\072转义为一个八进制数072,也就是十进制数的58 买一送一,将转义字符对照表也一并贴给你吧:转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012 \n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表(HT) 009 \v 垂直制表(VT) 011 \\ 反斜杠 092 \? 问号字符 063 \' 单引号字符 039 \&q

ctrip的两道笔试题

第一个问题可以抽象为这样:给定一个数组A,和一个数t,用数组里的一些数求和得到t,数组里的数可以重复使用,写一个算法,使得使用A中最少的数来表示t. 比如:[2,4,6,9],18==>[9,9] dfs问题 //numbers要从大到小,一个sort搞定,result存放结果 bool dfs(vector<int>& numbers,int gap,int start,vector<int> &result) { if(0 == gap) { return

数据挖掘150道笔试题

数据挖掘150道笔试题 单选题 1. 某超市研究销售纪录数据后发现,买啤酒的人很大概率也会购买尿布,这种属于数据挖掘的哪类问题?(A) A. 关联规则发现 B. 聚类 C. 分类 D. 自然语言处理 2. 以下两种描述分别对应哪两种对分类算法的评价标准? (A) (a)警察抓小偷,描述警察抓的人中有多少个是小偷的标准. (b)描述有多少比例的小偷给警察抓了的标准. A. Precision, Recall B. Recall, Precision C. Precision, ROC D. Rec

设计的两道面试题C++

1.函数指针的,说明下面程序会出现编译错误吗?如果有怎么解决: class A { private : typedef void (*FUNC)(void); Func a; public : void funcA() {} void funcB() { a = funcA(); a(); } } void main() { A a; a.funcB(); } 2.map应用,下列函数的执行结果 #include <map> #include <iostream> static c

用两道面试题带你详细了解 Java 类加载机制

在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Grandpa{static{System.out.println("爷爷在静态代码块");}} class Father extends Grandpa{static{System.out.println("爸爸在静态代码块");}public static int factor = 25;public Father(){System.out.println("

[转]从两道经典试题谈C/C++中联合体(union)的使用

宋宝华 21cnbao [email protected] 试题一:编写一段程序判断系统中的CPU是Little endian还是Big endian模式? 分析: 作为一个计算机相关专业的人,我们应该在计算机组成中都学习过什么叫Little endian和Big endian.Little endian和Big endian是CPU存放数据的两种不同顺序.对于整型.长整型等数据类型,Big endian认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节):而Li

2012-2015网易有道笔试题总结

2015 1.选择:抽象类和接口的区别(java) 一个类可以有多个接口 只能有继承一个父类抽象类可以有构造方法,接口中不能有构造方法.抽象类中可以有普通成员变量,接口中没有普通成员变量接口里边全部方法都必须是abstract的 抽象类的可以有实现了的方法抽象类中的抽象方法的访问类型可以是public,protected 但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型抽象类中可以包含静态方法,接口中不能包含静态方法抽象类和接口中都可以包含静态成员变量,

两道面试题,带你透彻解析Java类加载机制

在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Grandpa { static { System.out.println("爷爷在静态代码块"); } } class Father extends Grandpa { static { System.out.println("爸爸在静态代码块"); } public static int factor = 25; public Father() { System.ou