C++/C面试题
(1)
按位运算只适用于字符型和整数型变量以及它们的变体,对其他数据类型不适用;
(2)
一般在打开网页时,需要在浏览器中输入网址,因此,需要通过网址找到访问资源的 IP 地址,从而可以把请求发送到对应的机器上,在这个过程中需要 DNS(Domain Name System, 域名系统,它是互联网上作为域名和 IP 地址相互映射的一个分布式数据库,能够使用户更 方便地访问互联网,而不用去记住能够被机器直接读取的 IP 数据串。通过主机名,最终得 到该主机名对应的 IP 地址的过程称为“域名解析”)协议;HTTP 是用于从 Web 服务器传输超文本到本地浏览器的传输协议。浏览器与服务器通过 HTTP 进行交互。HTTP 是应用层协议,在传输层是通过 TCP 来传输 HTTP 请求的。Telnet 是 Internet 远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。一般使用方法为通过终端登录到远处主机,因此,在浏览器打开网页的过程中用不到。
(3)属于构造散函数的方法是
常用的构造散列函数的方法有直接定址法、数字分析法、平方取中法、折叠法、除留余 数法和随机数法
1)直接定址法:取关键字或关键字的某个线性函数值为散列地址。例如,H(key)=a*key+b, 其中,a 和 b 为常数。
2)数字分析法:假设关键字是以 r 为基数(例如以 10 为基数的十进制数)的,并且散列表中可能出现的关键字都是事先知道的,则可取关键字的若干数位组成散列地址。
3)平方取中法:取关键字平方后的中间几位作为散列地址。
4)折叠法:将关键字分割成位数相同的几部分,然后取这几部分的叠加和作为散列地址。
5)除留余数法:取关键字被某个小于或等于散列表长 m 的数 p 除后所得的余数作为散 列地址(f(key) = key mod p (p≤m),m 为散列表表长)。
6)随机数法:选择一个随机函数,取关键字的随机函数值作为它的散列地址。
(4)
拷贝构造函数是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他 对象的构建及初始化。拷贝构造函数的名称必须与类名称一致,函数的形式参数是本类型的 一个引用变量,并且必须是引用;
(5)静态成员函数独立于对象而存在,无法实现多态,而且静态成员函数没有this 指针,无法找到虚函数表,所以不能将静态成员函数设计为虚函数;
(6)函数的 inline 属性是在编译时确定的,是静态行为。而 virtual 的性质是在运行时确定的,是动态行为。
(7)不能用返回值来区分重载函数,判断依据是: 参数类型,参数个数。
(8)已知集合 A 和集合 B 的元素分别用不含头结点的单链表存储,函数 difference()用于求解 集合 A 与集合 B 的差集,运算结果保存在集合 A 的单链表中。例如,若集合 A={5,10,20,15,25,30},集合 B={5,15,35,25},完成计算后 A={10,20,30}。
struct node
{
int value;
node* next;
};
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include"difference.h"
void difference(node** LA, node* LB)
{
node *pa, *pb, *pr, *q;//pr用来删除节点时候的链接
pr = NULL;
pa = *LA;
while (pa)//以链表LA中的值为参考,依次与LB中元素比较
{
pb = LB;
while (pb&&pb->value != pa->value)//LB链表没有到末尾且……
pa = pa->next;
if (pb)//找到一个相同的值,这里用非空
{
if (!pr)//pr用来指向相同元素的前节点,这里是头节点
*LA = pa->next;
else//LA的头节点在LB中没有找到相同的值,即不是头节点
pr->next = pa->next;//
q = pa->next;//删除相同的节点
pa = pa->next;
free(q);
}
else//LB遍历完了也没有找到相同的,
{
pr = pa;
pa = pa->next;
}
}
}
(9)静态局部变量存储在进程的全局区;
(10).有一个变量 .有一个变量 .有一个变量 int int a=0a=0 ,两个线程同时对其进行 +1 操作,每个线程加 100次操作不加锁最后 次,不加锁最后 次,不加锁最后a的值为?
多线程(Multithreading)是指在软件或者硬件上实现多个线程的并发执行。本题中,+1 操作的执行过程如下:取出变量 a,对变量 a 执行+1 操作,把计算结果放回去。如果两个线 程中+1 操作都没有被中断,所有+1 操作都生效了,那么此时相应地对 a 执行了 200 次+1 操 作,在这种情况下,a 的值变为 200。
由于这两个线程在对 a 执行+1 操作时,并没有加锁, 因此,有可能会导致部分+1 操作丢失。过程如下所示:
1)线程 1 读取变量 a 的值(读取到寄存器中)为 0。
2)线程 2 读取变量 a 的值,此时读取到的值也为 0。
3)线程 1 对 a 执行+1 操作并放回去,此时 a 的值为 1。
4)线程 2 也对 a 执行+1 操作并放回去,由于此时线程 2 中寄存器中 a 的值为 0,执行 +1 操作后变为 1 并放回去,此时 a 的值还为 1。
在这种情况下,线程 1 对 a 执行+1 的操作就会丢失。因此,执行结束后,a 的最大值为 200
C++/C面试题的更多相关文章
- .NET面试题系列[8] - 泛型
“可变性是以一种类型安全的方式,将一个对象作为另一个对象来使用.“ - Jon Skeet .NET面试题系列目录 .NET面试题系列[1] - .NET框架基础知识(1) .NET面试题系列[2] ...
- 关于面试题 Array.indexof() 方法的实现及思考
这是我在面试大公司时碰到的一个笔试题,当时自己云里雾里的胡写了一番,回头也曾思考过,最终没实现也就不了了之了. 昨天看到有网友说面试中也碰到过这个问题,我就重新思考了这个问题的实现方法. 对于想进大公 ...
- 对Thoughtworks的有趣笔试题实践
记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...
- 从阿里巴巴笔试题看Java加载顺序
一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...
- JAVA面试题
在这里我将收录我面试过程中遇到的一些好玩的面试题目 第一个面试题:ABC问题,有三个线程,工作的内容分别是打印出"A""B""C",需要做的 ...
- C++常考面试题汇总
c++面试题 一 用简洁的语言描述 c++ 在 c 语言的基础上开发的一种面向对象编程的语言: 应用广泛: 支持多种编程范式,面向对象编程,泛型编程,和过程化编程:广泛应用于系统开发,引擎开发:支持类 ...
- .NET面试题系列[4] - C# 基础知识(2)
2 类型转换 面试出现频率:主要考察装箱和拆箱.对于有笔试题的场合也可能会考一些基本的类型转换是否合法. 重要程度:10/10 CLR最重要的特性之一就是类型安全性.在运行时,CLR总是知道一个对象是 ...
- 我们公司的ASP.NET 笔试题,你觉得难度如何
本套试题共8个题,主要考察C#面向对象基础,SQL和ASP.NET MVC基础知识. 第1-3题会使用到一个枚举类,其定义如下: public enum QuestionType { Text = , ...
- 我设计的ASP.NET笔试题,你会多少呢
本笔试题考查范围包括面向对象基础.HTML.CSS.JS.EF.jQuery.SQL.编码思想.算法等范围. 第1题:接口和抽象类有何区别? 第2题:静态方法和实例方法有何区别? 第3题:什么是多态? ...
- 猫哥网络编程系列:详解 BAT 面试题
从产品上线前的接口开发和调试,到上线后的 bug 定位.性能优化,网络编程知识贯穿着一个互联网产品的整个生命周期.不论你是前后端的开发岗位,还是 SQA.运维等其他技术岗位,掌握网络编程知识均是岗位的 ...
随机推荐
- 分布式架构探索 - 1. RPC框架之Java原生RMI
1. 什么是RPC RPC(Remote Procedure Call)即远程过程调用,指的是不同机器间系统方法的调用,这和 同机器动态链接库(DLL)有点类似,只不过RPC是不同机器,通过网络通信来 ...
- py下windows用户安装lxml
windows用户在安装lxml可能会因为缺少C语言库报错可以选择到Unofficial Windows Binaries for Python Extension Packages下载whl文件 例 ...
- git合并指定文件到另一分支
经常被问到如何从一个分支合并特定的文件到另一个分支.其实,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用git log或sourc ...
- NOIP2010提高组 机器翻译
OJ提交地址:https://www.luogu.org/problemnew/show/P1540 http://noi.openjudge.cn/ch0112/07/ 总时间限制: 1000ms ...
- MySQL在INSERT IGNORE未新增记录时避免AUTO_INCREMENT自增
在MySQL5.7中做INSERT IGNORE时发现, 即使INSERT未成功执行, 表的自增主键却自动加1了, 在某些情况下需要避免这种行为. 需要修改的变量是 innodb_autoinc_lo ...
- 在 Windows 8、Windows 10 桌面模式下的 .NET Framework 程序中,引用 Windows.Runtime 的 API。
参考:1.https://www.cnblogs.com/webtojs/p/9675956.html 2.http://jennal.com/2016/04/28/using-windows-run ...
- 各常用分类算法的优缺点总结:DT/ANN/KNN/SVM/GA/Bayes/Adaboosting/Rocchio
1决策树(Decision Trees)的优缺点 决策树的优点: 一. 决策树易于理解和解释.人们在通过解释后都有能力去理解决策树所表达的意义. 二. 对于决策树,数据的准备往往是简单或者是不必要的. ...
- [HDFS Manual] CH6 HDFS Federation
HDFS Federation HDFS Federation 1 Background 2.多个namenode/namespace 2.1 关键好处 3 联合配置 3.1 配置 3.2 格式化na ...
- eclipse中项目jdk1.8刷新下就变成1.5的解决办法
https://blog.csdn.net/qq_32814555/article/details/82803017 ***************************************** ...
- httpie的使用
安装 brew install httpie 使用 模拟提交表单 http -f POST yhz.me username=nate 显示详细的请求 http -v yhz.me 只显示Header ...