C/C++综合測试题(三)
又刷了一套题
这些题都是百度、阿里巴巴、腾讯、网易、新浪等公司的面试原题,有一定的难度。只是确实相当有水平,能够通过做题来查漏补缺。
1.补充以下函数代码:
假设两段内存重叠,用memcpy函数可能会导致行为没有定义。
而memmove函数可以避免这样的问题,以下是一种实现方式,请补充代码。
#include <iostream>
using namespace std;
void* memmove(void* str1,const void* str2,size_t n)
{
char* pStr1= (char*) str1;
const char* pStr2=(const char*)str2;
if ( ) {
for(size_t i=0;i!=n;++i){
*(pStr1++)=*(pStr2++);
}
}
else{
pStr1+=n-1;
pStr2+=n-1;
for(size_t i=0;i!=n;++i){
*(pStr1--)=*(pStr2--);
}
}
return ( );
}
A. pStr1<pStr2
str1
B. pStr1+n< pStr2
str2
C. pStr1+n< pStr2 || pStr2+n<pStr1
str2
D. pStr2+n<pStr1
str1
答案:A
仅仅要pStr1的地址在pStr2的前面,甚至是。pStr1的起始地址和pStr2一样。
例如以下语句
for(size_t i=0;i!=n;++i){
*(pStr1++)=*(pStr2++);
就能够保证pStr2在被覆盖前,将值copy到pStr1。
最后返回非const的Str1。
2.int x[6][4],(*p)[4];p=x; 则*(p+2)指向哪里?
A. x[0][1]
B. x[0][2]
C. x[1][0]
D. x[2][0]
答案:D
int (*p)[4]是一个int型的数组指针,p=x,即为,p指向x[6][4]的首地址,p=&x[0][0]。
而*(p)=x[0][0],*(p+2)=x[0+2][0]
3.以下有关C++中为什么用模板类的原因。描写叙述错误的是?
A. 可用来创建动态增长和减小的数据结构
B. 它是类型无关的。因此具有非常高的可复用性
C. 它执行时检查数据类型,保证了类型安全
D. 它是平台无关的,可移植性
答案:C
注意,模板类不能在执行时检查数据类型。执行时检查是多态的特性
4.
int func(int a)
{
int b;
switch (a)
{
case 1: b = 30;
case 2: b = 20;
case 3: b = 16;
default: b = 0;
}
return b;
}
则func(1)= ?
A.30
B.20
C.16
D.0
答案:D
没有break语句,所以一直向下运行,运行到b=0结束
5.
class A
{
int a;
short b;
int c;
char d;
};
class B
{
double a;
short b;
int c;
char d;
};
在32位机器上用gcc编译以上代码,求sizeof(A),sizeof(B)各自是多少。
A. 12 16
B. 12 12
C. 16 24
D. 16 20
答案:C
copy别人的,人家写的很好
依据下面条件进行计算:
1、 结构体的大小等于结构体内最大成员大小的整数倍
2、 结构体内的成员的首地址相对于结构体首地址的偏移量是其类型大小的整数倍。比方说double型成员相对于结构体的首地址的地址偏移量应该是8的倍数。
3、 为了满足规则1和2编译器会在结构体成员之后进行字节填充!
A中。a占4个字节。b本应占2个字节。但因为c占4个字节,为了满足条件2,b多占用2个字节,为了满足条件1。d占用4个字节,一共16个字节。
B中,a占8个字节,b占2个字节,但因为c占4个字节,为了满足条件2。b多占用2个字节。
即abc共占用8+4+4=16个字节。
为了满足条件1,d将占用8个字节。一共24个字节。
6.以下有关继承、多态、组合的描写叙述。说法错误的是?
A. 封装。把客观事物封装成抽象的类,而且类能够把自己的数据和方法仅仅让可信的类或者对象操作。对不可信的进行信息隐藏
B. 继承能够使用现有类的全部功能。并在无需又一次编写原来的类的情况下对这些功能进行扩展
C. 隐藏是指派生类中的函数把基类中同样名字的函数屏蔽掉了
D. 覆盖是指不同的函数使用同样的函数名。可是函数的參数个数或类型不同
答案:D
D说的明明是函数重载好不好。。
。。
7.以下有关c++线程安全,说法错误的是?
A.线程安全问题都是由全局变量及静态变量引起的
B.若每一个线程中对全局变量、静态变量仅仅有读操作,而无写操作,一般来说,这个全局变量是线程安全的。若有多个线程同一时候运行写操作,一般都须要考虑线程同步,否则的话就可能影响线程安全
C. c++标准库里面的string保证是线程安全的
D. POSIX线程标准要求C标准库中的大多数函数具备线程安全性
答案:C
C++标准库出现的时候,C++还没有线程的概念,所以string不能保证是线程安全的
8.下面程序的输出是
class Base
{
public:
Base(int j): i(j) {}
virtual~Base() {}
void func1()
{
i *= 10;
func2();
}
int getValue()
{
return i;
}
protected:
virtual void func2()
{
i++;
}
protected:
int i;
};
class Child: public Base
{
public:
Child(int j): Base(j) {}
void func1()
{
i *= 100;
func2();
}
protected:
void func2()
{
i += 2;
}
};
int main()
{
Base * pb = new Child(1);
pb->func1();
cout << pb->getValue() << endl;
delete pb;
}
A. 11
B. 101
C. 12
D. 102
答案:C
func1不是虚函数。func2是虚函数。所以
pb->func1();
调用的是Base类的func1和Child类的func2
9.以下对静态数据成员的描写叙述中,正确的是?
A. 静态数据成员能够在类体内进行初始化
B.静态数据成员不能够被类的对象调用
C.静态数据成员不受private控制符的作用
D.静态数据成员能够直接用类名调用
答案:D
A中,const static类型能够在类体内进行初始化
10.#include<file.h>与 #include "file.h"的差别?
A. 前者首先从当前工作路径搜寻并引用file.h。而后者首先从Standard Library的路径寻找和引用file.h
B. 前者首先从StandardLibrary的路径寻找和引用file.h,而后者首先从当前工作路径搜寻并引用file.h
C. 两者都是首先从StandardLibrary的路径寻找和引用file.h
D. 两者都是首先从当前工作路径搜寻并引用file.h
答案:B
C/C++综合測试题(三)的更多相关文章
- (各个公司面试原题)在线做了一套CC++综合測试题,也来測一下你的水平吧(二)
刚才把最后的10道题又看了下.也发上来吧. 以下给出试题.和我对题目的一些理解 前10道题地址 (各个公司面试原题)在线做了一套CC++综合測试题.也来測一下你的水平吧(一) 11.设已经有A,B,C ...
- C/C++综合測试题(四)
又刷了一套题 这些题都是百度.阿里巴巴.腾讯.网易.新浪等公司的面试原题.有一定的难度.只是确实相当有水平.能够通过做题来查漏补缺. 11.以下代码的输出是什么? class A { public: ...
- JAVA 综合面试题
JAVA 综合面试题 2007-08-12 目录 TOC \o "1-3" \h \z \u Java面试题整理 9 Java面向对象 9 1. super()与this()的区别 ...
- 当当网-前端project师測试题
前端project师測试题(笔试时间20分钟.面试时间20分钟) 一.笔试 1.基础问题 (1)前端页面有哪三层构成,各自是什么? ...
- 多测师讲解第一个月 _综合面试题_高级讲师肖sir
第一个月综合面试题 1. 冒烟测试是什么意思? 对主要的用例测试 2.你们公司的项目流程是什么? 3.你们公司的bug分几个级别? 4个 4.你对外键是怎么理解的? 你会使用外键吗?给一个表添加 ...
- 动力节点 mysql 郭鑫 34道经典的面试题三
1.第十五题 15.列出受雇日期早于其直接上级的所有员工编号.姓名.部门名称 思路一:第一步将emp a看成员工表,将emp b 看成领导表,员工表的mgr字段应该等于领导表的主键字段 mysql&g ...
- python面试题三:Python 网络编程与并发
1 简述 OSI 七层协议. OSI七层协议模型主要是: 应用层(Application):为用户的应用程序(例如电子邮件.文件传输和终端仿真)提供网络服务. 表示层(Presentation):使用 ...
- JUC在深入面试题——三种方式实现线程等待和唤醒(wait/notify,await/signal,LockSupport的park/unpark)
一.前言 在多线程的场景下,我们会经常使用加锁,来保证线程安全.如果锁用的不好,就会陷入死锁,我们以前可以使用Object的wait/notify来解决死锁问题.也可以使用Condition的awai ...
- JAVA组程序优化综合考试试题
题目原型: 有一张标准的树状结构表,里面有Structure_Id和 Parent_Id两个关键列,记录了结点的父子关系.现在要求添加一个字段为 Structure_Code ,标记为 三位一个节点关 ...
随机推荐
- MooTools,jQuery库的一些比对
jQuery与MooTools库的一些比对 今天就我自己的一些认识比对下这两个JS框架,更多的是希望大家能够对MooTools这个JS框架有更多的认识.毕竟,大多数从事web前端的人对上手容易的j ...
- zoj3201(树形dp)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3201 题意:给一棵树, n结点<=1000, 和K < ...
- MySQL 全角转换为半角
序言: 用户注冊时候,录入了全角手机号码,所以导致短信系统依据手机字段发送短信失败.如今问题来了,怎样把全角手机号码变成半角手机号码? 1.手机号码全角转换成半角先查询出来全角半角都存在 ...
- 《Nginx文件类型错误解析漏洞--攻击演练》 (转)
今天看书看到其中提到的一个漏洞,那就是Nginx+PHP的服务器中,如果PHP的配置里 cgi.fix_pathinfo=1 那么就会产生一个漏洞.这个配置默认是1的,设为0会导致很多MVC框架(如T ...
- 再探vim经常使用命令
最開始学习过vim,见 http://blog.csdn.net/u011848617/article/details/12837873 之后以前不了了之,当再次学习后,发现经常使用命令的掌握还 ...
- 阿里云server(ECS)优惠券领取
CoderMan的博客也是放置在阿里云的ECS上.速度绝对是刚刚的,大家打开的速度肯定不会慢. 有些同志们至今可能还在用虚拟主机吧,其实阿里云server真心不贵,有俩种计费方式:各自是按月计费和按流 ...
- Visual Studio跨平台开发实战(1) - Hello Xamarin!
原文 Visual Studio跨平台开发实战(1) - Hello Xamarin! 前言 应用程式发展的脚步, 从来没有停过. 从早期的Windows 应用程式, 到网路时代的web 应用程式, ...
- Java4Android之BlockingQueue
在研究Smack的源码的时候,我对它的连接Connection以及派生类XMPPConnection的关注是最多的,由于一个即时通信程序,它的网络模块必是它的核心. 而我非常在乎它是怎样实现的. 在收 ...
- altKey,ctrlKey,shiftKey
<1> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>< ...
- 二分图行列匹配---> hdu2119,hdu1498
hdu2119 题意:给定一个矩形方格,每个格子里面的数字是0或者1,每次操作可以把一整行或列的1变成0,问最少多少次操作能将1全部变为0 一次可以消除某一行或者某一列的1但是可以这么想,最多有多少个 ...