金山WPS暑期实习招聘笔试题2013-7-28

2023-11-16

C++试卷B

 

应聘职位1.                        2.                     

姓    名:               性    别:      学    位:                

所在院校:              所学专业:                      

联系电话:                   电子邮件:                           

毕业时间:               获知招聘信息渠道:                              

说明:

答题时间为 100 分钟

自我判断题(请选择最符合您本人意愿的一项)

1、你觉得你的能力特点是:( d  )

a. 注重团队交流

b. 注重细节、追求完美

c. 擅长钻研

d. 重视知识积累

e. 做事仔细,思维慎密

2、你觉得你的思维特点:( c  )

a. 创造力

b. 想象力

c. 把握复杂问题

d. 洞察细节

3、你最喜欢的做事方式:(  a )

a. 用妥当的方式处理问题

b. 用快速的方式处理问题

c. 用直观的方式处理问题

4、对你的合作伙伴你最不能接受的缺点是:( b  )

a. 浮夸

b. 粗心大意

c. 墨守成规

d. 不求上进


选择题(单项选择)

 

1int x = 18 / 7 * 3;

   x变量的数值为:( a  

a. 6        b. 7       c. 8        d. 9

 

2c++是否是大小写敏感的:( a  

a.        b. 不是

 

3以下程序的输出结果是:(  

std::cout << "0" << std::endl;

a. 0    b. "0"     c. 48

 

4、以下哪个不是c++关键字:( d  )

a. class    b. int     c. struct     d. printf

 

5int * p = new int[10];

和上述语句匹配的释放语句是:( c  

a. free(p)        b. delete p;         c. delete [] p;        d. delete p [];

 

6int * p = new int;

以下那行语句是合法的:( a  

a. *p = 3;     b. p = *3;     c. &p = 3;     d. p = &3;

 

7const int x = 0x20;

printf("%d", x);

以上代码片段的输出是:(  

a. 20        b. %d          c. 32

 

8char x[] = "hello"

sizeof(x)的结果为:c

a. 4    b. 5    c. 6

 

9printf("5432" + 1);

上述代码的输出结果是:( a  

a. 432        b. 5433       c. 54321       d. 编译不通过

 

10std::vector<T> x;

x.resize(10);

sizeof(x)的结果为:( 

a. 0       b. 4       c. 10       d. 不确定

 

综合题

1、请实现这么一个函数:传入一个int值,在屏幕输出类似LED显示屏效果的字母拼图,例如:

输入1234567890,输出:

 

提示:请注意每个字符的固定宽度和高度,两个数字间保留一个空格。

函数签名:void LEDprint(int num);

#define HEIGHT 7

void LEDprint(int num)

{

   int a[14];

   int i=0;

   while(num)

   {

      a[i]=num%10;

      i++;

      num/=10;

}

for(int j=0;j<HEIGHT;j++)

{

  for(int k=i-1;k>=0;k--)

{

    static int m=0;

    switch(a[k])

    {

       case 0:

       switch(j)

       {

           case 0:

           case 6:

              printf(“---”);

              break;

           case 1:

           case 2:

           case 3:

           case 4:

           case 5:

              printf(“|   |”);

         break;

}

break;

case 1:

  switch(j)

{

   case 0:

   case 6:

   printf(“   ”);

   break;

   case 1:

   case 2:

  case  3:

   case 4:

   case 5:

   printf(“  |”);

  break;

}

break;

       case 2:

         switch(j)

         {

              case 0:

              case 3:

              case 6:

              printf(“---”);

              break;

              case 1:

              case 2:

              printf(“  |”);

              break;

              default:

              printf(“|  ”);

}

break;

       case 3:

         switch(j)

         {

             case 0:

             case 3:

             case 6:

              printf(“---”);

             break;

          default:

             printf(“  |”);

           break;

}

 break;

       case 4:

        switch(j)

        {

            case 0:

               printf(“   ”);

               break;

            case 1:

            case 2:

               printf(“|  |”);

               break;

            case 3:

               printf(“---|”);

               break;

            default:

               printf(“  |”);

             break;

}

  break;

case 5:

  switch(j)

  {

             case 0:

             case 3:

             case 6:

              printf(“---”);

             break;

             case 1:

             case 2:

               printf(“|   ”);

              break;

             default:

              printf(“   |”);

             break;

}

break;

       case 6:

         switch(j)

         {

        case 0:

        case 6:

            printf(“---”);

            break;

        case 1:

        case 2:

            printf(“|   ”);

            break;

        case 3:

            printf(“|---”);

            break;

        default:

           printf(“   |”);

}

 break;

case 7:

 switch(j)

 {

     case 0:

        printf(“---”);

        break;

     default:

       printf(“   |”);

}

  break;

case 8:

 switch(j)

{

  case 0:

   case 6:

    printf(“---”);

    break;

   case 3:

    printf(“|--|”);

    break;

 default:

   printf(“|  |”);

   break; 

}

  break;

case 9:

 switch(j)

 {

   case 0:

   case 6:

       printf(“---”);

       break;

   case 3:

      printf(“--|”);

      break;

  case 1:

  case 2:

      printf(“|  |”);

      break;

 default:

      printf(“   |”);

      break;

}

  break;

}

}

   m++;

   if(m==2)

   {

       printf(“ ”);

       m=0;

}

printf(“\n”);

}

 

 

2、请编写一段代码测试以下函数执行的正确性:

void unique(std::vector<int> & v);

这个函数的职责是去除传入数组中的重复元素。

提示1:函数返回结果不一定是依照某种顺序的;

提示2:请尽可能多的考虑各种可能出现bug的情况组合;

提示3:你编写的代码应当返回一个int值,返回0表示测试通过,返回1表示出现错误

int com(const void* a,const void* b)

{

   return (*int*)a-*(int*)b;

}

int test(std::vector<int> &v)

{

unique(v);

qosrt(v.begin(),v.size(),sizeof(int),com);

for(int i=0;i<v.size()-1;i++)

    if(v[i]==v[i+1])

       return 0;

return 1;

}

 

 

3、实现如下函数:

void printInChinese(int num);

这个函数输入一个小于100000000(一亿)的正整数,并在屏幕上打印这个数字的中文写法。

例如:

17 -> 一十七

120 -> 一百二十

201 -> 二百零一

1074 -> 一千零七十四

65536 -> 六万五千五百三十六

1010101 -> 一百零一万零一百零一

提示:请注意‘零’的处理。

扩展:如果需要处理通用简化习惯,你将怎么处理,例如:

17 -> 十七

120 -> 一百二

void printInChinese(int num)

{

char* wei[]={“”,”十”,”百”,”千”,”万”,”十”,”百”,”千”};

char* num1[]={“零”,”一”,”二”,”三”,”四”,”五”,”六”,”七”,”八”,”九”};

int a[9];

int i=0;

int tmp,flag=0;

while(num)

{

    a[i]=num%10;

    num/=10;

    i++;

}

for(int j=i-1;j>=0;j--)

{

   if(a[j]==0)

     if(flag==0)

   {

      flag=1;

      tmp=j;

}

else

{

   if(flag==1)

   {

      if(tmp-j>=4)   //中间零数超过四位

         printf(“万”);

       printf(“零”);

      flag=0;

      tmp=0;

}

printf(“%s%s” ,num1[a[j]], wei[j]);

}

}

}

//对于特殊情况的考虑 需要考虑在十位和十万位开头 且为1的情况。

末尾的情况稍微复杂点 可以考虑先将所有要输出的数据缓存,然后根据末尾0的情况适当输出。
已知完全弹性碰撞公式如下:

其中m1 m2为小球质量,v1 v2为原始速度,v1' v2'是碰撞后的速度。

struct ball_t {

double m; // 质量

double v; // 速度,速度为正表示球体往x轴正方向运动

double pos; // x坐标轴的位置

};

请实现以下函数:

void progress(ball_t & b1, ball_t & b2, double leftWall, double rightWall, double t);

这个函数输入两个球的当前状况(包括质量,速度,在x轴的位置),以及左右墙壁的位置,输出两个球在t秒钟后的状况(包括质量,速度,在x轴的位置)。

特殊说明:球体碰撞墙面也是完全弹性碰撞,即球体速度变为原本的负数。

 

 

 

 

4、一个工程由如下文件组成:

head1.h head2.h src1.cpp src2.cpp main.cpp

最终编译结果为xxx.exe(或者xxx,如果在linux下的话)

请写出你熟悉的某种编译器将这5个文件转换为最终结果xxx.exe(或xxx)的详细过程。写出每一个步骤,并作相关的解释,如果你熟悉某编译器的话,请写出这个编译器每一步用到的命令行。

 

先将head1.hsrc1.cpp文件生成1.o文件

head2.hsrc2.cpp文件生成2.o文件

再将main.cpp文件生成main.o文件

最后将这些.o文件生成xxx.exe

 

g++ -o 1.o  head1.h src1.cpp

g++ -o 2.o  head2.h src2.cpp

g++ -o main.o main.cpp

g++ -o xxx.exe main.o 1.o 2.o

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

金山WPS暑期实习招聘笔试题2013-7-28 的相关文章

随机推荐

  • 共享存储映射

    存储映射I O 存储映射I O memory mapped I O 使一个磁盘文件与存储空间中的一个缓冲区相映射 于是当从缓冲区中获取数据 就相当于读文件中的相应字节 与此类似 将数据存入缓冲区 则相应的字节就自动写入文件 这样 就可在不适
  • 算法序列--树

    树结构是一种非线性存储结构 存储的是具有 一对多 关系的数据元素的集合 树的结点 结点 使用树结构存储的每一个数据元素都被称为 结点 例如图中 数据元素 A 就是一个结点 父结点 双亲结点 子结点和兄弟结点 对于图中的结点 A B C D
  • laravel进阶学习之laravel生命周期

    Laravel 生命周期概括起来大致可分为三步 1 加载依赖 2 创建 Laravel 应用实例 3 接收请求并响应 加载依赖及生成实例部分 一个请求进来之后由public index php开始也由public index php结束 直
  • windows下python开发环境搭建

    写这篇文章主要目的是指导XXX如何在windows学习并使用python 内容主要包括 sdk安装 IDE的安装 IDE环境的配置 编写一个简单测试示例进行验证 这里我们选择的python开发工具为 python3 vscode pytho
  • 超融合服务器连接虚拟机,H3C UIS 6.5超融合产品新增虚拟机配置指导-5W100

    虚拟机是由一组文件构成的一个完整系统 它具有CPU 内存 网络设备 存储设备和BIOS 虚拟机中操作系统和应用程序的运行方式与在普通物理机上的运行方式没有任何区别 创建虚拟机是服务器虚拟化管理软件最基础的功能 虚拟机的创建过程不仅包括虚拟机
  • Numpy章节 2 数学函数

    章节 2 数学函数 1 通用函数 ufuncs 的使用 NumPy提供了各种通用函数 ufuncs 用于对数组进行逐元素的数学运算 这些函数可以对数组进行向量化操作 提高运算效率 示例代码 arr np array 1 2 3 4 5 平方
  • MySQL学习_01

    SQL通用语法 1 SQL 语句可以单行或多行书写 以分号结尾 2 MySQL 数据库的 SQL 语句不区分大小写 关键字建议使用大写 3 注释 单行注释 注释内容 或 注内容 MySQL 特有 多行注释 注释 SQL分类 DDL Data
  • Springmvc之JSR303和拦截器

    JSR303 拦截器 1 JSR303 什么是JSR303 JSR是Java Specification Requests的缩写 意思是Java 规范提案 是指向JCP Java Community Process 提出新增一个标准化技术规
  • pom是什么意思

  • 什么是TDD?

    作为手机硬件开发者来说 TDD问题的debug绝对是最有意思的一件事情 即使你有再丰富的手机行业开发经验 在前期的设计中都不一定能完美的排掉这个雷 同时在后期发现问题的debug中 也会走很多弯路 所以TDD问题一直是手机开发者头疼的问题
  • 最新VLC命令行参数大全(一)

    用法 vlc 选项 流 您可以在命令行中指定多个流 它们将被加入播放列表队列 指定的首个项目将被首先播放 选项风格 选项 用于设置程序执行期间的全局选项 选项 单字母版本的全局 选项 选项 仅对此选项之前的单条流生效 且优先级高于先前的设置
  • 细说三极管

    文章目录 前言 一 什么是三极管 二 三极管是哪三级 1 基极 2 集电极 3 发射极 三 三极管的分类 1 根据材料 2 根据结构 3 根据功率 4 根据工作频率 5 根据制作工艺 6 根据制外形封装 7 根据用途 四 三极管的工作原理
  • Adobe新的AI产品开放公测!Firefly带来全新的制图体验,让你效率翻倍!

    随着midjourney 还是Stable Diffusion 以及各式各样的AI绘图网站的出现 Adobe也推出AI绘图工具 Firefly 这款产品目前免费开放公测 未来将结合Photoshop Illustrator 等Adobe软件
  • 合宙Air101+蓝牙模块,实现手机控制舵机转动

    器材 蓝牙模块JDY33 合宙Air101 接线 JDY33的串口接Air101的串口1 TX U1 RX PB 07 RX U1 TX PB 06 舵机信号线接Air101PWM0 PB 00 main lua LuaTools需要PRO
  • MIPI入门——DCS介绍

    DCS Display Command Set 即显示 控制 命令集 是DSI协议中所使用的相关 控制 命令的一个集合 显示设备 如LCD 厂商可以选择性地部分 或全部 实现DCS文档中规定的命令 为了便于理解下面的内容 首先介绍一下DSI
  • sqli-labs(24)

    这个关卡可能有时候会出现一些小问题 有时候登陆后是没有修改密码的选项的 这是因为有时候解压时logged in php文件解压不正确 重新解压即可 本关卡为二次注入 其产生原因是 服务器端虽然对用户的直接输入做了一些过滤或者将一些字符进行转
  • 数字经济专家高泽龙谈“金融元宇宙”与“元宇宙金融”

    开始聊所有话题之前 必须先说说 金融元宇宙 或者 元宇宙金融 的概念和定义 当然 前提是搞清楚 金融 和 元宇宙 百度百科中 金融 的定义 金融 Finance Finaunce 是市场主体利用金融工具将资金从资金盈余方流向资金稀缺方的经济
  • Python读取文件时出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position xx: 解决方案

    Python在读取文件时 with open article txt as f 打开新的文本 text new f read 读取文本数据 出现错误 UnicodeDecodeError gbk codec can t decode byt
  • electron autoUpdater热更新

    最近创建了一个electron vue项目 用到了热更新 先看效果图 话不多说 直接上代码 main目录下创建update js 代码如下 安装包helatest yml所在服务器地址 const uploadUrl http 127 0
  • 金山WPS暑期实习招聘笔试题2013-7-28

    C 试卷B卷 应聘职位1 2 姓 名 性 别 学 位 所在院校 所学专业 联系电话 电子邮件 毕业时间 获知招聘信息渠道 说明 答题时间为 100 分钟 自我判断题 请选择最符合您本人意愿的一项 1 你