恒生电子2015春季校招笔试题
题目皆为不定项选择题,都选对为4分,选不全为2分,选错一个0分。
1、 对于 int *pa[5]; 的描述,正确的是()
A. pa是一个指向数组的指针,所指向的数组是5个int型元素
B. pa是一个指向某个数组第5个元素的指针,该元素是int型变量
C. pa[5]表示某个数组的第5个元素的值
D. pa是一个具有5个元素的指针数组,每个元素是一个int型指针
--------------------------------------------------------------------------------------------------------------------------------------------------------------
关键词:指针数组与数组指针
- 指针数组:是一个数组,数组中每个元素是一个指针
- 数组指针:是一个指针,指向一个具有n个元素的数组
这两个概念很容易混淆。其实只要记住优先级就好了:() > [ ] > *
- int *pa[5]:下标符号[ ] 和优先级大于*,所以这是一个数组,即指针数组。
- int (*pa)[5]:括号() 的优先级大于下标符号,所以先看括号内的内容,即指针*,所以这是一个指针,即数组指针。
--------------------------------------------------------------------------------------------------------------------------------------------------------------
2、 IPV4中,数据报传播方式包括以下的()
A. 广播 B. 单播 C. 任播 D. 组播
--------------------------------------------------------------------------------------------------------------------------------------------------------------
关键词:广播、单播、组播
IPV4不支持任播(anycast),IPV6支持。
- 单播(unicast):点到点一对一通信。将数据包发送到某一主机
- 广播(broadcast):将数据包发送到局域网内所有主机
- 组播(multicast):又叫多播,传播范围介于单播和广播之间。将数据包发送到加入同一组的主机
--------------------------------------------------------------------------------------------------------------------------------------------------------------
3、 下面关于友元函数的描述中,正确的说法是()
A. 友元函数是独立于当前类的外部函数
B. 一个友元函数不可以同时定义为两个类的友元函数
C. 友元函数必须在类的外部进行定义
D. 在类的外部定义友元函数时必须加上friend关键字
--------------------------------------------------------------------------------------------------------------------------------------------------------------
关键词:友元
友元的出现其实是对面向对象编程思想的一种挑战,因为它破坏OO编程中信息封装的特性,使得一个外部函数可以操纵一个类的私有成员。这样做的好处大概是提高了编程的灵活性并精简了代码。不必像Java那样到处充斥getter和setter方法了。
- 友元函数并不是类的组成部分,但是它却可以在类内部直接定义,但其作用域并不仅限于类内部,而是和该类的作用域相同,即类外部(但不超出类的作用域的地方)也可见。
- 友元函数需要访问类的非static成员时,在声明时需要以该类的对象作为参数。
- 友元参数需要访问类的static成员时,在声明时不需要以该类的对象作为参数。
- friend只能用在类内部,在类外定义友元函数内容的时候,不能加friend关键字,否则报错。
- 友元不是类的组成部分,所以可以定义为多个类的友元(多次重载即可)。
#include <iostream>
using namespace std;
class A
{
public:static int count;friend void test(A a);friend void test();A(int a=1,int b=2):i(a),j(b){};
private:int i,j;};
int A::count = 0;
void test(A a)
{cout<<a.i<<" "<<a.j<<endl;
}
void test(){cout<<A::count<<endl;
};
int main()
{A a;test(a);test();
}
// 打印结果
1 2
0
参考答案:A
--------------------------------------------------------------------------------------------------------------------------------------------------------------
4、 以下关于数据库中索引的描述正确的是()
A. 只要允许,任何时候都应该添加索引以加快查询速度
B. 无论记录多少,使用索引都能给查询带来性能提升
C. 每次update/ insert/ delete操作都会导致索引被重新更新
D. 索引可以避免全表扫描
--------------------------------------------------------------------------------------------------------------------------------------------------------------
关键词:索引
数据库的索引并非越多越好,索引的增加会提交查询速度,但是会减慢数据库的修改速度,因为每一次修改都有更新索引,此外还会浪费存储空间(用于维护索引信息)。
此外,我个人认为:记录不多的情况下,使用索引并不能带来性能提升。
参考答案:CD
--------------------------------------------------------------------------------------------------------------------------------------------------------------
5、 事务的原子性是指()
A. 事务一旦提交,对数据库的改变是永久的
B. 事务中包括的所有操作要么都做,要么都不做
C. 一个事务内部的操作及使用的数据对并发的其他事务时隔离的
D. 事务必须使数据库从一个一致性状态变到另一个一致性状态
--------------------------------------------------------------------------------------------------------------------------------------------------------------
关键词:ACID、事务特性
- 原子性(Atomicity):事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要们都不做。
- 一致性(Consistency):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
- 隔离性(Isolation):对并发执行而言,一个事务的执行不能被其他事务干扰。
- 持续性(Durability):一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的。
--------------------------------------------------------------------------------------------------------------------------------------------------------------
6、 时间复杂度为O(nlog2n)的排序算法有()
A. 快速排序 B. 堆排序
C. 冒泡排序 D. 折半插入排序
--------------------------------------------------------------------------------------------------------------------------------------------------------------
关键词:排序算法
在常见排序算法中,时间复杂度为O(nlog2n) 【这里指的是n乘以log以2为底的n】的有:快速排序、归并排序、堆排序
折半插入排序虽然减少了比较顺序,性能较一般的插入排序得到了提升,但是其时间复杂度不变,仍然是O(n^2)。
参考答案:AB
--------------------------------------------------------------------------------------------------------------------------------------------------------------
7、 软件工程师一种()分阶段实现的软件工程开发的方法
A. 自底向上
B. 自顶向下
C. 逐步求精
D. 面向数据流
--------------------------------------------------------------------------------------------------------------------------------------------------------------
关键词:软件工程
参考答案:B
--------------------------------------------------------------------------------------------------------------------------------------------------------------
8、 Linux操作系统中有如下的文件结构:
$HOME/aaa
$HOME/aaa/bb/a.txt
$HOME/aaa/my.c
请问如果要删除aaa文件夹,要执行的操作是:()
A. rm -rf $HOME/aaa
B. rmdir -f $HOME/aaa
C. rmdir $HOME/aaa
D. rm $HOME/aaa
--------------------------------------------------------------------------------------------------------------------------------------------------------------
关键词:rm、rmdir
很多人可能会误选rmdir。rmdir虽然从字面上理解是删除文件夹,但是它是删除空文件夹。并且rmdir 没有-f这个选项
rm的两个选项:-r 表示递归,即删除文件夹及其子文件和子文件夹。-f 表示force即暴力,无视提示信息。由题干可知,该文件夹并非空文件夹。
参考答案:A
--------------------------------------------------------------------------------------------------------------------------------------------------------------
9、 执行如下程序代码后,sum的值是()
char chr = 127;int sum = 200;chr += 1;sum += chr;
A. 72 B. 99 C. 328 D. 327
--------------------------------------------------------------------------------------------------------------------------------------------------------------
关键词:溢出
char类型可以看作是一个1个字节(8个位)的低精度整型。以整数角度来看,它能表示的整数范围是:-128~127
当chr += 1之后,此时chr的值变成128,但是这时候发生了溢出。此时要得出其实际的值用 128-256 = -128
所以sum+=char是200-128=72
参考答案:A
--------------------------------------------------------------------------------------------------------------------------------------------------------------
10、 开发一个逻辑模型:公司有10个部门,每个部门有6-7名员工,但每个员工可能会为不止一个部门工作,下面所给的模型正确的是()
A. 部门和员工之间是一种确定的一对多的关系
B. 建立一个关联表,从该关联表到员工建立一个一对多的关系,然后再从该关联表到部门表建立一个一对多的关系
C. 建立一个关联表,从员工表到该关联表建立以一对多的关系,然后再从部门表到该关联表建立一个一对多的关系
D. 这种情况下不能建立正常的数据库模型
--------------------------------------------------------------------------------------------------------------------------------------------------------------
关键词:多对多关系建表、关联表
解决多对多关系的建表方案,就是建立关联表。本题中,可以建立一个员工表(不包括部门id字段)、部门表(不包括员工id字段)。而关联表至少包括两个字段:员工id和部门id。如果还要给关联表增加一个字段的话就是单独新增一个关联id用做主键。
这样部门增加了员工,或员工加入了新的部门,只需要更新关联表就可了。
参考答案:C
--------------------------------------------------------------------------------------------------------------------------------------------------------------
11、 下面可用于字符串复制的函数有()
A. strcpy B. sprint C. strcmp D. strstr E. memcpy
--------------------------------------------------------------------------------------------------------------------------------------------------------------
关键词:字符串、库函数
B无此函数(可能是sprintf打印错误),C是字符串比较函数,D是求子串的函数
参考答案:AD
--------------------------------------------------------------------------------------------------------------------------------------------------------------
12、 指出下列代码的缺陷()
float f[10];
// 假设这里有对f进行初始化的代码
...
// for循环需要遍历f中所有的元素
for (int i = 0; i < 10; )
{if (f[++i] == 0)break;
}
A. for (int i = 0; i < 10; ) 这一行写错了
B. f是float型数据直接做相等判断有风险
C. f[++i] 应该是 f[i++]
D. 没有缺陷
--------------------------------------------------------------------------------------------------------------------------------------------------------------
关键词:浮点型、自增
主要问题:
- 因为要遍历所有元素,所以不能使用++i
- 浮点型不能向整型那样直接比较是否相等。
可选方案:
#include <math.h>
...
if (fabs(f[i++]) < 1e-5)
...
// 或者
#define ACCU 1e-5
...
if (f[i++] > -ACCU && f[i++] < ACCU)
...
精度也可以是1e-6。
参考答案:BC
--------------------------------------------------------------------------------------------------------------------------------------------------------------
13、 以下对C语言的有关描述中,正确的有:()
A. 在C程序中,函数调用不能出现在表达式语句中
B. 在C语言中,一个函数一般由两个部分组成,它们是函数首部和函数体
C. 函数和实参和形参可以是相同的名字
D. 在main()中定义的变量都可以在其它被调函数中直接使用
E. 外部类型的变量只能定义一次,但可以在不同的地方声明
--------------------------------------------------------------------------------------------------------------------------------------------------------------
关键词:函数、变量
参考答案:BCE
--------------------------------------------------------------------------------------------------------------------------------------------------------------
14、 有以下函数,该函数的功能是()
int fun(char *s)
{char *t = s;while(*t++);return (t - s);
}
A. 比较两个字符的大小
B. 计算s所指字符串占用内存字节的个数
C. 计算s所指字符串的长度
D. 将s所指的字符串复制到字符串t中
--------------------------------------------------------------------------------------------------------------------------------------------------------------
关键词:指针与自增
就优先级而言,自增运算符++大于星号*。但是这个++是在变量名后面的,所以是在该复合表达式的值返回之后,再进行自增。
设p = *t++; 则其等价于p = *t; t++。所以while(*t++)的意思是判断当前字符是否为NULL,如果是就终止循环(是不是NULL,t 都会自增)
如果是p = (*t)++; 就不一样了。其等价于p = *t; (*p)++。在指针所指向的值返回之后,该值加1。
注意当字节是'\0'是停止。最后计算字符偏移的时候,算上了'\0'。
参考答案:C
--------------------------------------------------------------------------------------------------------------------------------------------------------------
15、 下述程序的执行结果为()
#include <stdio.h>
void abc(char *str)
{int a,b;for(a = b = 0;str[a] != '\0'; a++)if(str[a] != 'c')str[b++] = str[a];str[b] = '\0';
}
void main()
{char str[] = "abcdef";abc(str);printf("str[] = %s",str);
}
A. str[] = abdef
B. str[] = abcdef
C. str[] = a
D. str[] = ab
--------------------------------------------------------------------------------------------------------------------------------------------------------------
关键词:字符串、字符指针
参考答案:A
--------------------------------------------------------------------------------------------------------------------------------------------------------------
恒生电子2015春季校招笔试题相关推荐
- 2018春季java校招_2018阿里巴巴春季校招笔试题(Java开发)
第一题: 编程题要求: 编译器版本: Java 1.8.0_66 请使用标准输入输出(System.in, System.out):已禁用图形.文件.网络.系统相关的操作,如java.lang.Pro ...
- 2015 阿里校招笔试题解答
将define 在第三行展开,第二个是一个int 型变量 1.如果const位于*号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量. 2.如果const位于*号的右侧,const就 ...
- 去哪儿网2015春季校招笔试--回忆版
去哪儿网2015春季校招笔试--回忆版 第一次做笔试题,好激动.今年研发类的有三道题目,干净利落,比较喜欢去哪儿的题目类型,晚上回去做腾讯的在线笔试就比较坑了,各种多选与程序天空,各种C++语法... ...
- 关于python类的继承正确的说法是_2017美团点评的运维岗校招笔试题,测测你会几题?...
原标题:2017美团点评的运维岗校招笔试题,测测你会几题? 1.数据库:以下哪项不是HASH索引的特征? A MySQL不能确定在两个值之间大约有多少行 B 不能使用hash索引来加速ORDER BY ...
- 【美团校招笔试题】去除字符串首尾空格,中间多个空格只保留一个
要求: 这是本人参加美团校招在线考试笔试题,如果此行为违反了美团校招笔试题商业保密性,请与本人联系. 思路:用一个while循环扫描整个字符串,用pStart字符指针指向整个字符串首地址,如果遇到首部 ...
- 小米运维部14年校招笔试题A的个人答案
15年准备实习生面试时答的题,仅供参考 具体题目详见 http://www.tuicool.com/articles/eYRZBr http://noops.me/?p=1154 一.linux基础 ...
- 剑指Offer——腾讯+360+搜狗校招笔试题+知识点总结
剑指Offer--腾讯+360+搜狗校招笔试题+知识点总结 9.11晚7:00,腾讯笔试.选择题与编程.设计题单独计时. 栈是不是顺序存储的线性结构啊? 首先弄明白两个概念:存储结构和逻辑结构. 数据 ...
- 百度2015校园招聘笔试题
百度2015校园招聘笔试题(自己凭记忆第一时间,记录了这么多,有些描述比较简单,请大神们补充) 一 .简答题(30分) 1. 进程和线程的联系与区别. 2. 简述数据库的存储过程及其优点. 3. st ...
- java校招笔试题目_Java校招笔试题
2020校招笔试题答案及评分标准 满分100分 时间1小时 一.简答题: (5分)写出你用过的linux命令,举例说明其中几个的具体用法. 答案:略.评分标准:正确五个,1分一个. (5分)写出TCP ...
最新文章
- 深入理解ES6 - var-let-const
- 栅格数据的像素值保存问题
- k-means 算法
- ---------愿 青春与我皆不付---------------------
- python工程师工资状况_【python工程师工资|python工程师待遇怎么样】-看准网
- Java 反射(Class class相关)
- Label-dependent Feature Extraction in Social Networks for Node Classification
- 【GoLang】golang中可以直接返回slice吗?YES
- 谷歌,IE,火狐浏览器内核
- WAP1.x协议栈浅析-WSP协议
- Feign整合Sentinel 开启 feign.sentinel.enabled=true 启动报错
- verilog REG 寄存器、向量、整数、实数、时间寄存器
- Mach-O文件, 架构包framework的合并和拆分
- 你有哪些“相见恨晚”的UE4学习资料?
- NDK51_OpenGL:FBO
- 也谈SAP系统优缺点
- 主板后置音频接口图解_不用再看说明书 机箱主板接线全攻略
- Halcon Qt 环境一次性配置
- 07-Web storage
- [bugku]web后面的部分 【脚本,正则 md5 】(疯狂补题qaq) 重点是搞会了 而不是写博客 m...
热门文章
- python中e怎么计算_python计算e
- 飘在上海,心路历程【2】2011年11月 反思与拷问
- 基于二维矩阵的FFT计算原理
- php 价格显示,php 价格转大写
- 基于javaweb的网吧计费管理系统(java+ssm+html+js+jsp+mysql)
- 桌面整理后计算机图标怎样回复,如何清理桌面图标 清理桌面图标方法与步骤...
- 英特尔网卡更新firmware方法
- 人人都能学会的英语4:听说
- 人员、账户主数据管理介绍
- web服务选择lighttpd,采用fcgi组件技术扩展处理业务层