北京华力创通科技股份有限公司11月招聘面试题

c语言中关键字static的作用是()。

A、在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。其他的函数不能引用它。

B、在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。

C、在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内作用。

D、以上都不是


参考答案:ABC


在闭包中,外层函数的返回值是()。

A、内层函数的调用

B、内层函数的引用

C、任意值

D、无返回值


参考答案:B


不能实现函数之间数据传递的是( )。A.全局变量 B.局部变量 C.函数接口 D.函数返回值


正确答案:B
局部变量的作用域仅局限于函数体内。不能在函数之间进行数据传递。


关于C++的静态变量用法

最近在看C++,碰到一个静态变量的程序,有点搞不懂,求高手解释下:return那里返回到主函数的是a+5,然后再到主函数中继续把a=2带入计算于是2+5=7;还是说运行的时候直接把a=2带入到调用函数中计算,调用函数中计算完后直接返回一个7; 我只想知道在调用函数运行完后返回给主函数的是a+5还是7,就这么一个问题,求解释#include <iostream>#include <stdlib.h>using namespace std;int f(int a){auto int b=0; static int c=3; b=b+1; c=c+1; return a+b+c;}int main(){int a=2,i=1; cout<<f(a)<<" "; cout<<endl; system ("pause"); return 0;}


返回的是7的 函数在调用的时候,实参是参与到函数的运算当中的。这里,你的这句表述的是正确的:“还是说运行的时候直接把a=2带入到调用函数中计算,调用函数中计算完后直接返回一个7” 这里的函数调用跟静态变量没有关系的,函数内的静态变量的用法,可以参考下面的: (1)静态局部变量在函数内定义,但不象自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。    (2)静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。    (3)允许对构造类静态局部量赋初值。若未赋以初值,则由系统自动赋以0值。    (4)对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。 根据静态局部变量的特点, 可以看出它是一种生存期为整个源文件的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的值。 因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。


CreateObJect()是用类创建对象的函数,括号内的自变量就是一个已有的类名,该函数返回一个对象引用。下面的例子中不正确的使用是()。

A、CreateObject("form")

B、?CreateObject("form")

C、m(1)=CreateObject("form")

D、S=CreateObject("form")


参考答案:B


问题 Q1:是否使用过functools中的函数?其作用是什么?可用的回答 :python自带的 functools 模块提供了一些常用的高阶函数,也就是用于处理其它函数的特殊函数。换言之,就是能使用该模块对可调用对象进行处理。functools.cmp_to_key(func)functools.total_ordering(cls)functools.reduce(function, iterable, initializer)functools.partial(func, args, *keywords)functools.update_wrapper(wrapper, wrapped, assigned, updated)functools.wraps(wrapped, assigned, updated)问题 Q2:谈谈你对闭包的理解?可用的回答 : #闭包函数的实例 # outer是外部函数 a和b都是外函数的临时变量 def outer( a ): b = 10 # inner是内函数 def inner(): #在内函数中 用到了外函数的临时变量 print(a+b) # 外函数的返回值是内函数的引用 return inner if _name_ = _main_: # 在这里我们调用外函数传入参数5 #此时外函数两个临时变量 a是5 b是10 ,并创建了内函数,然后把内函数的引用返回存给了demo # 外函数结束的时候发现内部函数将会用到自己的临时变量,这两个临时变量就不会释放, 会绑定给 这个内部函数demo = outer(5) # 我们调用内部函数,看一看内部函数是不是能使用外部函数的临时变量 # demo存了外函数的返回值,也就是inner函数的引用,这里相当于执行inner函数 demo() # 15 demo2 = outer(7)问题 Q3:谷歌的无头浏览器?可用的回答 : 无头浏览器即headless browser,是一种没有界面的浏览器。既然是浏览器那么浏览器该有的东西它都应该有,只是看不到界面而已。 Python中selenium模块中的PhantomJS即为无界面浏览器(无头浏览器):是基于QtWebkit的无头浏览器。 问题 Q4:scrapy和scrapy-redis的区别?可用的回答 : scrapy是一个爬虫通用框架,但不支持分布式,scrapy-redis是为了更方便的实现scrapy分布式爬虫,而提供了一些以redis为基础的组件 为什么会选择redis数据库?因为redis支持主从同步,而且数据都是缓存在内存中,所以基于redis的分布式爬虫,对请求和数据的高频读取效率非常高 什么是主从同步?在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项, 让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave), 当客户端向从服务器发送SLAVEOF命令,要求从服务器复制主服务器时,从服务器首先需要执行同步操作,也即是,将从服务器的数据库状态更新至主服务器当前所处的数据库状态 问题 Q5:如何在Flask中访问会话?可用的回答 :会话基本上允许您记住从一个请求到另一个请求的信息。在一个Flask中,它使用签名cookie,以便用户可以查看会话内容并进行修改。如果只有密钥Flask.secret_key,则用户可以修改会话。问题 Q6:分布式爬虫主要解决什么问题?可用的回答 : 面对海量待抓取网页,只有采用分布式架构,才有可能在较短时间内完成一轮抓取工作。它的开发效率是比较快而且简单的。 问题 Q7:Python中的lambda是什么?可用的回答 :它是一个单独的表达式匿名函数,通常用作内联函数。问题 Q8:遇到过得反爬虫策略以及解决方法?可用的回答 : 反爬虫策略: 1.通过headers反爬虫 2.基于用户行为的发爬虫(同一IP短时间内访问的频率,封IP) 3.动态网页反爬虫(通过ajax请求数据,或者通过JavaScript生成) 4.对部分数据进行加密处理的(数据是乱码) 解决方法: 1. 对于基本网页的抓取可以自定义headers,添加headers的数据 2. 使用多个代理ip进行抓取或者设置抓取的频率降低一些, 3. 动态网页的可以使用selenium + phantomjs 进行抓取 4. 对部分数据进行加密的,可以使用selenium进行截图,使用python自带的pytesseract库进行识别,但是比较慢最直接的方法是找到加密的方法进行逆向推理。 问题 Q9:如何在Python中删除文件?可用的回答 :使用命令os.remove(filename) 删除文件 或 os.unlink(filename) 删除快捷方式问题 Q10:简单谈下GIL?可用的回答 : Python代码的执行由Python 虚拟机(也叫解释器主循环,CPython版本)来控制, Python 在设计之初就考虑到要在解释器的主循环中,同时只有一个线程在执行,即在任意时刻,只有一个线程在解释器中运行。 对Python 虚拟机的访问由全局解释器锁(GIL)来控制,正是这个锁能保证同一时刻只有一个线程在运行。 在多线程环境中,Python 虚拟机按以下方式执行: 1. 设置GIL 2. 切换到一个线程去运行 3. 运行: a. 指定数量的字节码指令,或者 b. 线程主动让出控制(可以调用time.sleep(0)) 4. 把线程设置为睡眠状态 5. 解锁GIL 6. 再次重复以上所有步骤 在调用外部代码(如C/C+扩展函数)的时候,GIL 将会被锁定, 直到这个函数结束为止(由于在这期间没有Python 的字节码被运行,所以不会做线程切换)。 算法题面试官常问到的一些算法题目整理如下(大概率会机考):算题题 A1:单词阶梯题目描述如下:Given two words (beginWord and endWord), a

以下各项说法中,正确的是( )。

A.当通过引用传递参数时,函数创建一个变量以存储参数的值

B.当通过引用传递参数时,函数无法访问参数的值

C.当通过引用传递参数时,调用程序创建一个临时变量以容纳参数的值

D.当通过引用传递参数时,函数访问调用程序中参数的原始值


正确答案:D
解析:本题考核函数参数传递中的引用传递。先来理解引用的概念:①“引用”实际上是给一个已知变量起个别名,对引用的操作也就是对被它引用的变量的操作。②C++中的变量名对应着内存的存储位置,可以使用一个特定的内存地址访问到它,引用则引入变量的另一个名字,它和这个变量具有同一内存地址。③当通过引用传递参数时,只是把请求调用的程序中实参的引用传递给函数(实际上是实参的内存地址被传递了)。


若程序中定义了局部变量与全局变量,则(11)。A.在函数内只能访问局部变量,而不能访问全局变量SX

若程序中定义了局部变量与全局变量,则(11)。

A.在函数内只能访问局部变量,而不能访问全局变量

B.局部变量与全局变量的名字不得相同

C.若一个函数被多次调用,则其定义的局部变量必定分配同一个存储单元

D.函数中定义的局部变量与全局变量同名时,在函数内引用的是局部变量


正确答案:D
本题考查程序语言的基本概念。在高级语言程序中,变量的作用域(引用变量的代码范围)可能是全局的或者是局部的。对于全局变量,其作用域是整个程序(或文件),因此在函数内可以访问全局变量,而局部变量的作用域为声明(定义)该变量的函数(过程,子程序)。一般语言都规定,若全局变量和局部变量的名称相同,则在局部变量的作用域范围内,引用的是局部变量(即最近嵌套原则)。程序运行过程中,每次调用一个函数时,都在栈区为该函数的运行创建活动记录(主要包括函数运行时需要的数据和控制信息),函数运行结束后则释放为其分配的活动记录。因此,函数多次运行时,其定义的局部变量不一定分配同一个存储单元。


一个函数的参数不能是对变量的引用,除非在 php.ini 中把()设为on.


正确答案:
 


若程序中定义了局部变量与全局变量,则 ______ 。

A.在函数内只能访问局部变量,而不能访问全局变量

B.局部变量与全局变量的名字不得相同

C.若一个函数被多次调用,则其定义的局部变量必定分配同一个存储单元

D.函数中定义的局部变量与全局变量同名时,在函数内引用的是局部变量

A.

B.

C.

D.


正确答案:D
解析:本题考查程序语言的基本概念。
  在高级语言程序中,变量的作用域可能是全局的也可能是局部的。对于全局变量,其作用域是整个程序(或文件1,因此在函数内可以访问全局变量,而局部变量的作用域为声明该变量的函数。一般语言都规定,若全局变量和局部变量的名称相同,则在局部变量的作用域范围内,引用的是局部变量。程序运行过程中,每次调用一个函数时,都在栈区为该函数的运行创建活动记录,函数运行结束后则释放为其分配的活动记录。因此,函数多次运行时,其定义的局部变量不一定分配同一个存储单元。


函数fun的返回值是一个整形数据的引用,有两个参数都是int,声明fun函数的原型是

____________________。


正确答案:
int&fun(int,int)

更多 “北京华力创通科技股份有限公司11月招聘面试题” 相关考题
考题 单选题CreateObject()是用类创建对象的函数,括号内的自变量就是一个已有的类名,该函数返回一个对象引用。下面使用不正确的是()。A ?CreateObject(“FORM”)B CreateObject(“FORM”)C S=CreateObject(“FORM”)D M(1)=CreateObject(“FORM”)正确答案:C解析:暂无解析

考题 闭包可以实现内部函数对外部函数变量的引用。正确答案:正确

考题 单选题自相关函数和互相关函数的定义分别是()。A 两个不同随机变量的相关函数是互相关,两个相同随机变量的相关函数是自相关;B 两个不同随机过程的相关函数是互相关,两个相同随机过程的相关函数是自相关;C 两个不同随机变量的相关函数是互相关,两个相同随机过程的相关函数是自相关;D 两个不同随机过程的相关函数是互相关,两个相同随机过程的不同随机变量的相关函数是自相关正确答案:C解析:暂无解析

考题 CreateObject()是用类创建对象的函数,括号内的自变量就是一个已有的类名,该函数返回一个对象引用。下面使用不正确的是()。A、?CreateObject(“FORM”)B、CreateObject(“FORM”)C、S=CreateObject(“FORM”)D、M(1)=CreateObject(“FORM”)正确答案:A

考题 函数与过程的本质区别在于()A、过程有一个返回值,函数只是一系列动作B、函数有一个返回值,过程只是一系列动作C、可以简单地把函数理解成为一个变量D、可以简单地把过程理解成为一个变量正确答案:B

考题 多选题下列关于函数作用域说法正确的是()。A函数作用域:仅仅在当前函数内可用B局部变量:仅在函数内可用的变量C优点:独有、安全D缺点:不可重用正确答案:B,D解析:暂无解析

考题 填空题()是用类创建对象的函数,括号内的自变量就是一个已有的类名,该函数返回一个对象引用。正确答案:CREATEOBJECT()解析:暂无解析

考题 python中,闭包的三个特点是()A、函数嵌套函数B、内部函数用到外层函数的参数C、最后返回内层函数的引用D、函数必须有参数正确答案:A,B,C

考题 ()是用类创建对象的函数,括号内的自变量就是一个已有的类名,该函数返回一个对象引用。正确答案:CREATEOBJECT()

考题 ()是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。A、函数的值B、表达式的值C、变量的值D、数组的值正确答案:A