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.运维等其他技术岗位,掌握网络编程知识均是岗位的 ...
随机推荐
- 【jQuery:遍历同样class的全部值,遍历某一列td的值】
jsp代码: Html代码 <c:forEach var="main" items="${mainPage.list }"> <tr> ...
- CodeForces - 344E Read Time (模拟题 + 二分法)
E. Read Time time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
- webstorm11.0下载地址和webstorm11.0破解程序patcher.exe下载使用方法说明 前端IDE工具的利器
20160107以下亲测可行. webstorm11.0下载地址:http://www.fxxz.com/soft/109234.html webstorm11.0下载安装破解使用说明: 下载完Web ...
- Python学习笔录
参考:http://www.runoob.com/python3/python3-data-type.html 1. type和isinstance区别type(A()) == A, type()不会 ...
- 【C++】C++中的基本内置类型
基本数据类型 下面这张表是C++支持的基本数据类型 类型 含义 最小尺寸 bool 布尔 未定义 char 字符 8位 wchar_t 宽字符 16位 char16_t Unicode字符 16位 c ...
- PEP 492 -- Coroutines with async and await syntax 翻译
因为工作中慢慢开始用python的协程,所以想更好的理解一下实现方式,故翻译此文 原文中把词汇表放到最后,但是我个人觉得放在最开始比较好,这样可以增加当你看原文时的理解程度 词汇表 原生协程函数 Na ...
- 应用间共享文件 FileProvider
应用间共享文件 FileProvider 7.0及以上版本,分析文件给其他进程访问的时候,需要使用FileProvider,否则会出现崩溃: 例如:用系统下载器下载apk,然后通过Intent安装. ...
- java幂等性的解决方案
一.幂等性概念 在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同.幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数.这些函数不会影响系统状态,也 ...
- 如何在你的Vue项目配置vux
做移动端项目的话vue现在是首要的选择,足够轻便,文档足够全,当然用的人多,项目中遇到的坑别人可能也遇到过,解决起来也比较方便,至于在开发中做需要的移动端组件库,个人比较推崇vux. 其实项目里组件库 ...
- 关于Unity中摇杆的操作
之前在解决摇杆控制角色的时候使用的是RPG游戏中主角的运动方式,有八个方向,最近找到一个新的方法,可以比较流畅地控制角色各个方向的移动 步骤 1.Easy Touch插件,角色控制器组件 2.在控制角 ...