大学生毕业后面临的第一件事情肯定就是面试求职了,那么相应的求职技巧就很重要。感谢阅读《PHP笔试题含答案》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。
1、用PHP打印出前一天的时间,格式是2006-5-1022:21:21
//echodate(Y-m-dH:i:s,time-60*60*24
echodate(Y:m:dH:i:s,strtotime(-1day));
?
2、echo,print,print_r的区别
echo是语言结构,无返回值;print功能和echo基本相同,不同的是print是函数,有返回值;print_r是递归打印,用于输出数组对象
3、能够使HTML和PHP分离开使用的模板
somuch,其实PHP本身就是一种模版引擎,我用过的是smarty,常见的还有PHPLib,FastTemplate,Savant这里有个模板引擎列表:http:///forums/showthread.php?t=123769
4.如何实现PHP、JSP交互?
题目有点含糊不清,SOAP,XML_RPC,Socketfunction,CURL都可以实现这些,如果是考PHP和Java的整合,PHP内置了这种机制(如果考PHP和.NET的整合,也可以这么回答),例如$foo=newJava(java.lang.System);
5.使用哪些工具进行版本控制?
CVS和SVN,SVN号称下一代CVS,功能强大,不过CVS是老牌,市占率很高.我一直用SVN,题目是问用什么工具,呃,这个可能需要这么回答:CVSServeronApache作服务端,WinCVS作客户端;SubversiononApache/DAV做服务端,TortoiseSVN做客户端,或者Subclipse做客户端
6.如何实现字符串翻转?
其实PHP本身就有字符串翻转的函数:strrev,不妨试试echostrrev($str);不过所有的这三种方法都不能解决中文字符串翻转的问题,会出错的。
functionreverse($var)
{
$res=;
for($i=0,$j=strlen($var);$i$j;$i++)
{
$res=$var[$i].$res;
}
return$res;
}
$tmpvar=wofang;
$res=reverse($tmpvar);
echo$res;
?
7、优化MYSQL数据库的方法。
(1).数据库设计方面,这是DBA和Architect的责任,设计结构良好的数据库,必要的时候,去正规化(英文是这个:denormalize,中文翻译成啥我不知道),允许部分数据冗余,避免JOIN操作,以提高查询效率
(2).系统架构设计方面,表散列,把海量数据散列到几个不同的表里面.快慢表,快表只留最新数据,慢表是历史存档.集群,主服务器Readwrite,从服务器readonly,或者N台服务器,各机器互为Master
(3).(1)和(2)超越PHPProgrammer的要求了,会更好,不会没关系.检查有没有少加索引
(4).写高效的SQL语句,看看有没有写低效的SQL语句,比如生成笛卡尔积的全连接啊,大量的GroupBy和orderby,没有limit等等.必要的时候,把数据库逻辑封装到DBMS端的存储过程里面.缓存查询结果,explain每一个sql语句
(5).所得皆必须,只从数据库取必需的数据,比如查询某篇文章的评论数,selectcount(*)wherearticle_id=?就可以了,不要先select*wherearticle_id=?然后msql_num_rows.
只传送必须的SQL语句,比如修改文章的时候,如果用户只修改了标题,那就updatesettitle=?wherearticle_id=?不要setcontent=?(大文本)
(6).必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAP可以提高一个数量级的查询速度
8、谈谈事务处理
A给B的账户转账50美元的例子
在求职过程中需要注意的问题您知道?需要的求职技巧您知道?职场小编告诉你,在求职过程中切忌夸夸其谈,切忌过于自信,切忌自我炫耀,切忌左顾右盼以及切忌形象糟糕。感谢阅读《PHP笔试题及答案》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。
1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的的前一页面URL记录在预定义变量(2)中
//本页地址,SCRIPT_NAME也可以:php/test.php
echo$_SERVER[PHP_SELF].
;
//链接到当前页面的前一页面的URL地址:
echo$_SERVER[HTTP_REFERER].
;
//其它的见参考手册:语言参考》变量》预定义变量
//前执行脚本的绝对路径名:D:Inetpubwwwrootphpest.php
echo$_SERVER[SCRIPT_FILENAME].
;
//正在浏览当前页面用户的IP地址:127.0.0.1
echo$_SERVER[REMOTE_ADDR].
;
//查询(query)的字符串(URL中第一个问号?之后的内容):id=1bi=2
echo$_SERVER[QUERY_STRING].
;
//当前运行脚本所在的文档根目录:d:inetpubwwwroot
echo$_SERVER[DOCUMENT_ROOT].
;
?
2.执行程序段将输出__。
//参考手册》语言参考》运算符》算术运算符》%为取模运算,输出0
echo8%(-2).
;
//取模$a%$b在$a为负值时的结果也是负值。输出-2
echo((-8)%3).
;
//输出2
echo(8%(-3)).
;
?
3.在HTTP1.0中,状态码401的含义是____;如果返回找不到文件的提示,则可用header函数,其语句为____。
答:401表示未授权;header(HTTP/1.0404NotFound);[见参考手册》函数参考》HTTP函数》header]
4.数组函数arsort的作用是____;语句error_reporting(2047)的作用是____。
答:arsort:对数组进行逆向排序并保持索引关系error_reporting(2047)的作用是:reportAllerrorsandwarnings
5.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):
$script=以下内容不显示:;
echopreg_replace(/].*?.*?/si,替换内容,$script);
?
6.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,
然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。
答:LoadModulephp5_modulec:/php/php5apache2.dll;AddTypeapplication/x-httpd-php.php
见参考手册》目录》II.安装与配置》6.Windows系统下的安装》MicrosoftWindows下的Apache2.0.x
7.语句include和require都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句____来代替它们。
答:在如何处理失败时,include产生一个警告而require则导致一个致命错误;require_once/include_once
8.一个函数的参数不能是对变量的引用,除非在php.ini中把____设为on.
答:allow_call_time_pass_referenceboolean:是否启用在函数调用时强制参数被按照引用传递,见参考手册》附录G
9.SQL中LEFTJOIN的含义是__,如果tbl_user记录了学生的姓名(name)和学号(ID),
tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句____.
答:自然左外连接
createdatabasephpinterview;
usephpinterview
createtabletbl_user
(
IDintnotnull,
namevarchar(50)notnull,
primarykey(ID)
大学生毕业后面临的第一件事情肯定就是面试求职了,那么相应的求职技巧就很重要。感谢阅读《普通PHP程序员笔试题》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。
1.用PHP打印出前一天的时间,打印格式是2007年5月10日22:21:21
2.PHP代码如下:
$a=hello;
$b=$a;
unset($b);
$b=world;
echo$a;
其结果是?
3.PHP代码如下:
$str=cd;
$$str=landog;
$$str.=ok;
echo$cd;
其结果是?
4.用PHP写一段代码,实现不使用第3个变量,交换$a、$b的值,$a、$b的初始值自己定。
5.根据题目要求,用PHP写出代码。
表名User
IDNameTelContentDate
1张三13333663366大专毕业2006-10-11
3张三13612312331本科毕业2006-10-15
5张四020-5566556中专毕业2006-10-15
4王五13521212125大专毕业2006-12-25
2
6
假设数据库连接如下:
$mysql_db=mysql_connect(local,root,pass);
@mysql_select_db(DB,$mysql_db);
(1)查询出所有Name等于张三的记录,并输出。
(2)按ID升序查询,只返回排序后的前3条记录,并输出。
6.javascript能否定义二维数组,如果不能你如何解决?
7.假设a.html和b.html在同一个文件夹下面,用javascript实现当打开a.html五秒钟后,自动跳转到b.html。
8.有两个文件a.html和a.php,代码如下:
a.html
a.php
$user_name=$_GET[user_name];
$user_tel=$_GET[user_tel];
$user_email=$_GET[user_email];
$user_add=$_GET[user_add];
echo用户名:$user_name
电话:$user_tel
邮箱:$user_email
地址:$user_add
;
?
(1)请画出a.html在浏览器的显示效果图。
(2)在a.html中输入:用户名=张三,电话=020-38259977,邮箱[email protected],地址=广州升瑞,按提交按钮后输出结果是?
9.你是否使用过版本控制工具,如果有,请简要说明。
10.利用CSS样式表定义已访问的超链接字体大小为14pt,颜色为red。
11.移动任意一位数或符号,使等式成立,102=101-1。注:是移动不是交换,等号不能分开。
12.规律题,3、1、4、1、5、9、2、(),请按照规律在括号内写出下一表达式。
大学生就业难已经成为社会一个难以回避的问题,同时求职技巧也就显得尤为重要,扬长避短掌握技巧是关键。感谢阅读《新浪网技术PHP工程师部笔试题目》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。
一、php基础知识
1、strlen与mb_strlen的作用分别是什么
2、下列哪个函数是用正则表达式将字符串分割到数组中
A、Split
B、implode
C、explode
D、join
3、写出下列程序的输出结果
$x=87;
$y=($x%7)*16;
$z=$x$y?1:0;
echo$z;
?
4、写出smarty模板的特点
5、写出下列几个预定义全局变量的作用
$_SERVER['DOCUMENT_ROOT']
当前运行脚本所在的文档根目录。在服务器配置文件中定义。
$_SERVER['HTTP_HOST']
当前请求的Host:头部的内容
$_SERVER['REMOTE_ADDR']
正在浏览当前页面用户的IP地址
$_SERVER['HTTP_REFERER']
链接到当前页面的前一页面的URL地址
$_SERVER['SERVER_NAME']
当前运行脚本所在服务器主机的名称
$_FILES
包含有所有上传的文件信息。
$_FILES['userfile']['name']
客户端机器文件的原名称。
$_FILES['userfile']['type']
文件的MIME类型,如果浏览器提供此信息的话。一个例子是image/gif。不过此MIME类型在PHP端并不检查,因此不要想当然认为有这个值。
$_FILES['userfile']['size']
已上传文件的大小,单位为字节。
$_FILES['userfile']['tmp_name']
文件被上传后在服务端储存的临时文件名。
$_FILES['userfile']['error']
和该文件上传相关的错误代码。
6、include和require都能把另外一个文件包含到当前文件中,他们有什么区别?Include和include_once又有什么区别?
7、写出一个能创建多级目录的PHP函数
二、操作系统
1请解释下列10个shell命令的用途
top、ps、mv、find、df、cat、chmod、chgrp、grep、wc
2、写出下列服务的用途和默认端口
ftp、ssh、http、telnet、https
三、面向对象
1、写出php的public、protected、private三种访问控制模式的区别
2、写出下列程序的输出结果
classa{
protected$c;
publicfunction
a{
$this-c=10;
}
}
classbextendsa
{
publicfunctionprint_data{
return
$this-c;
}
}
$b=newb;
echo$b-print_data;
?
3、设计模式考察:请用单态设计模式方法设计类满足如下需求
请用PHP5代码编写类实现在每次对数据库连接的访问中都只能获得唯一的一个数据库连接,具体连接数据库的详细代码忽略,请写出主要逻辑代码
四、数据库
1、写出下面2个PHP操作Mysql函数的作用和区别
mysql_num_rows
mysql_affected_rows
2、sql语句应该考虑哪些安全性?
3、简单描述mysql中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)
五、系统分析
假设有一个博客系统,数据库存储采用mysql,用户数量为1000万,预计文章总数为10亿,每天有至少10万的更新量,每天访问量为5000万,对数据库的读写操作的比例超过10:1,你如何设计该系统,以确保其系统高效,稳定的运行?
提示:可以从数据库设计,系统框架,及网络架构方面进行描述,可以自由发挥
大学生毕业后面临的第一件事情肯定就是面试求职了,那么相应的求职技巧就很重要。感谢阅读《PHP面试题大全》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。
基础题:
1.表单中get与post提交方法的区别?
答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.
2.session与cookie的区别?
答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放
cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。
两者都可通过时间来设置时间长短
3.数据库中的事务是什么?
答:事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。
简述题:
1、用PHP打印出前一天的时间格式是2006-5-1022:21:21(2分)
答:echodate(Y-m-dH:i:s,strtotime(-1days));
2、echo,print,print_r的区别(3分)
答:echo是PHP语句,print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)
print只能打印出简单类型变量的值(如int,string)
print_r可以打印出复杂类型变量的值(如数组,对象)
echo输出一个或者多个字符串
3、能够使HTML和PHP分离开使用的模板(1分)
答:Smarty,Dwoo,TinyButStrong,TemplateLite,Savant,phemplate,XTemplate
5、使用哪些工具进行版本控制?(1分)
答:cvs,svn,vss;
6、如何实现字符串翻转?(3分)
答:echostrrev($a);
7、优化MYSQL数据库的方法。(4分,多写多得)
答:
1、选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOTNULL,例如省份,性别,最好设置为ENUM
2、使用连接(JOIN)来代替子查询:
a.删除没有任何订单客户:DELETEFROMcustomerinfoWHEREcustomeridNOTin(SELECTcustomeridFROMorderinfo)
b.提取所有没有订单客户:SELECTFROMcustomerinfoWHEREcustomeridNOTin(SELECTcustomeridFROMorderinfo)
c.提高b的速度优化:SELECTFROMcustomerinfoLEFTJOINorderidcustomerinfo.customerid=orderinfo.customerid
WHEREorderinfo.customeridISNULL
3、使用联合(UNION)来代替手动创建的临时表
a.创建临时表:SELECTnameFROM`nametest`UNIONSELECTusernameFROM`nametest2`
4、事务处理:
a.保证数据完整性,例如添加和修改同时,两者成立则都执行,一者失败都失败
mysql_query(BEGIN);
mysql_query(INSERTINTOcustomerinfo(name)8iVALUES($name1);
mysql_query(SELECT*FROM`orderinfo`wherecustomerid=.$id);
mysql_query(COMMIT);
5、锁定表,优化事务处理:
a.我们用一个SELECT语句取出初始数据,通过一些计算,用UPDATE语句将新值更新到表中。
包含有WRITE(write)关键字的LOCKTABLE语句可以保证在UNLOCKTABLES命令被执行之前,
不会有其它的访问来对inventory进行插入、更新或者删除的操作
mysql_query(LOCKTABLEcustomerinfoREAD,orderinfoWRITE);
mysql_query(SELECTcustomeridFROM`customerinfo`whereid=.$id);
mysql_query(UPDATE`orderinfo`SETordertitle=$titlewherecustomerid=.$id);
mysql_query(UNLOCKTABLES);
6、使用外键,优化锁定表
a.把customerinfo里的customerid映射到orderinfo里的customerid,
任何一条没有合法的customerid的记录不会写到orderinfo里
CREATETABLEcustomerinfo
(
customeridINTNOTNULL,
PRIMARYKEY(customerid)
)TYPE=INNODB;
CREATETABLEorderinfo
(
orderidINTNOTNULL,
customeridINTNOTNULL,
PRIMARYKEY(customerid,orderid),
FOREIGNKEY(customerid)REFERENCEScustomerinfo
(customerid)ONDELETECASCADE
)TYPE=INNODB;
注意:ONDELETECASCADE,该参数保证当customerinfo表中的一条记录删除的话同时也会删除order
表中的该用户的所有记录,注意使用外键要定义事务安全类型为INNODB;
7、建立索引:
a.格式:
(普通索引)-
创建:CREATEINDEX索引名ONtablename(索引字段)
修改:ALTERTABLEtablenameADDINDEX[索引名](索引字段)
创表指定索引:CREATETABLEtablename([...],INDEX[索引名](索引字段))
(唯一索引)-
创建:CREATEUNIQUE索引名ONtablename(索引字段)
修改:ALTERTABLEtablenameADDUNIQUE[索引名](索引字段)
创表指定索引:CREATETABLEtablename([...],UNIQUE[索引名](索引字段))
(主键)-
它是唯一索引,一般在创建表是建立,格式为:
CREATATABLEtablename([...],PRIMARYKEY[索引字段])
8、优化查询语句
在求职过程中需要注意的问题您知道?需要的求职技巧您知道?职场小编告诉你,在求职过程中切忌夸夸其谈,切忌过于自信,切忌自我炫耀,切忌左顾右盼以及切忌形象糟糕。感谢阅读《美的笔试题目》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。
美的笔试,分A/B卷不分管理、财务、技术,只分A/B卷。试卷内容上虽然不分,但他们会让你注明是哪个类型的,毕竟三个类型参考的标准和方面都不一样。30分钟--20道选择题,5道填空题,1道分析问答题,时间比较紧,除非速度特别快,否则一般都作不完。
1、选择题:跟公务员行政能力测试几乎一模一样,可谓公务员行政能力测试的精简版,有文字逻辑推理题,阅读理解题,图形推理题,出乎意料的是没有数字题,所以那张草稿纸我连用都没用过--事实上,也没时间用。最后有一道题很狠,是一道推理题,有五个问题联系在一起,这种题目最麻烦,要嘛看完题后一个一个做,这样比较费时间,要嘛只能五个全不做,这样对分数又极其不利,两边难做人,只能看自己衡量了。我是跳过去先做了后面的填空题和分析题,后来再回来想做已经没时间了,乱填了几个上去的。现在想来这个策略还是比较好的,毕竟后来的填空题比较容易,且占的分数比较更大些。
2、填空题:这部分倒是比较简单,有两道是给出一个物件(记得第一个是回形钩)并给出三四种用途,要你再写出一种用途,或是给出一个情景(有一个是进入教室后黑板上写着不用上课的情景),同样给出几个原因,让你再说一个原因。最后一个是关于美的集团的标志的,要你把美的标志跟彩虹联系起来,进行联想作出比喻,原题中已经从形状、颜色两个方面作出比喻,要求你再写出一个比喻。整体上,这部分不是很难,只要反应快一些,抓紧时间都没有什么问题。
3、分析问答题:给出一段文字,大概是讲学校为了提高大学课堂的听课率,迫使学生多去上课,推行一个上课打卡制度,正反双方分别从自己的的角度论述了赞成与反对的原因云云。问问题时类似公务员的申论题,第一问问态度:赞成还是反对;第二问问总结:在你的表明态度后你觉得问题的症结在哪里;第三问问细节:问题症结的展开论述。这个情景其实比较简单,而且跟学生生活很贴近,按理说,稍微思考过后都可以答的合情合理,只是一般到了这个地方,时间都所剩无几,没有什么思考的时间,我也是快速浏览后来不及思考更多就写了几点上去,还没写完时间就到了,无奈试卷给收回去了。明天一面,应该小组无领导讨论,好好准备下吧!
最后,对美的这种选人方式做个简单评价:其实美的这种选择方式也挺好的,很多公司都是先笔试,笔试过了再给面试机会,这样一些笔试能力比较差或准备不足而实际表现能力又比较好的人就被筛掉了,可美的采取的做法是:既让你笔试同时也把一面的机会给你,这种可以综合两个方面的表现来确定人选,当然,这建立在他们已经通过性格测试的方式进行了第一轮筛选的基础上,另外,他们具体的操作和标准我不清楚,但如果但从形式上理解,在人力物力财力允许的情况下,这种方式无疑可具有合理性--这是值得肯定的。无论如何,先争取进了再说,加油!!
大学生就业难已经成为社会一个难以回避的问题,同时求职技巧也就显得尤为重要,扬长避短掌握技巧是关键。感谢阅读《腾讯技术综合笔试题》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。
腾讯是我们都知道的大公司,下面小编整理了腾讯技术综合笔试题,欢迎阅读!
题型解析:
考试时间60分钟,整张试卷分四大部分。
第一部分数据分析,整个部分分为三个大题,每个大题5个小题,不难,图表计算。
第二部分逻辑推理,普通的行测题,一共有10道选择。难易程度跟公务员的差不多。
第三部分阅读理解,15道选择。也是行测类型的,读一段话,做选择。
前三个部分都是单选,一共40题。
第四部分论述题,最后论述2道大题。(这部分不算分数,对面试有好处)
论述题:
2013年广州腾讯产品实习笔试
第一题是如果微信添加一个功能删除一个功能,你会怎么做?(可见腾讯论述题很注重腾讯产品的考察)
第二题是现在电子商务创业很流行,如果有以下电商创业,你会选哪一种:服装,虚拟产品,生活服务类。
第三道题,如果你是一个乳制品的公关经理,315曝光你们产品有问题,设计一个24小时公关方案,以挽回公司损失。(这个题目我在之前笔试看到过,是宝洁SKII事件,写新闻发言稿,所以大家可以注意一下公关知识)
第四道题,腾讯给你5000元公益资金帮扶特殊群体,设计一个校园公益项目方案。
2013-10-13北京站产品笔试
附加题一:是用互联网思维改造传统行业,写一个策划方案什么的,举了嘀嘀打车的例子。
附加题二是:题目背景是国务院批复了一个文件《前海深港现代服务业合作区总体发展XXX》,然后问你采取何种措施吸引优秀人才的加入,以便支撑入驻企业的发展
题目
刚下班的小明接到了远在江西吉安的老爸的电话,他这个月刚学会用电脑,今天终于托人帮忙装了台新电脑,并办好了上网,他问小明现在用电脑和上网都能玩些啥。假如你是小明,需要在最短的时间内满足老爸的需求,你会怎么做?(腾讯-2013)
题目分析
本题考查点:需求管理、产品设计。
本题旨在考查应聘者对于需求的理解与把握,以及在需求分析的基础上处理需求,服务用户的能力。同时,回答的时候要尽量落地,例如题目中指出远在江西吉安,所以你无法面对面指导老爸使用电脑,如果你仅仅只是用电话去告诉老爸如何使用电脑,这对于老爸而言是不好的体验。
2.回答策略
本题的解决思路如下:
构建爸爸(用户)的用户画像。
结合场景做需求分析。
产品设计(本题中专指装机策略)。
产品落地。
3.详细解答
(1)爸爸的用户画像
46岁中年男子。
正值壮年,辛勤工作,在专业领域是专家,但对于新兴科技却不甚了解。
商务人士,追求办公效率,会积累行业资讯,工作沟通主要通过邮件与电话。
闲时的消遣方式是看电影、看书、古玩及其他。偶尔会在网上购物。
需求分析及具体的装机策略以用户画像为依托。每位答题者可以列出自己心中不同的用户画像,言之有理即可。
(2)需求管理
1.结合场景做需求分析
在明确了目标用户画像后,我们便可针对目标用户特点有的放矢,对目标用户进行需求挖掘。需求挖掘的方式有问卷、访谈、焦点小组等。
在本题中需求有四个来源:调研用户、竞品参考、数据分析和自己拍脑袋。
直接和爸爸谈:比较喜欢做什么?为什么?(很明显,爸爸可能会遗漏、忘记很多自己的需求)
多问几个中年人:其他中年人还有什么需求?有什么是爸爸忘了的?
查看网上资料:有没有相关的研究资料,比如老年人上网产品大全之类的。
自己拍脑袋:什么类型的产品,适合老人家呢?
大学生毕业后面临的第一件事情肯定就是面试求职了,那么相应的求职技巧就很重要。感谢阅读《华为上机笔试题》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。
1.输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50
参考代码:
#include
main
{
intnum[50]={0};
inti,n;
printf(请输入整型数组的长度(1~50):);
scanf(%d,n);
printf(请输入整型数组的元素:);
for(i=0;i
{
scanf(%d,num[i]);
}
intmin_num=num[0];
intmax_num=num[0];
for(intj=0;j
{
if(max_num
max_num=num[j];
elseif(min_numnum[j])
min_num=num[j];
}
intsum=min_num+max_num;
printf(数组中最大与最小值之和:%d/n,sum);
return0;
}
2.求两个长长整型的数据的和并输出,例如输入1233333333333333。。。3111111111111111111111111.。。。,则输出。。。。
#include
#include
#include
main
{
char*num1,*num2;//两个长长整型数据
char*sum;
//inttemp;
intlen_num1,len_num2;//两个长长整型数据的长度
intlen_max,len_min;
num1=(char*)malloc(sizeof(char));
num2=(char*)malloc(sizeof(char));
printf(输入两个长长整型数据:);
scanf(%s,num1);
printf(输入两个长长整型数据:);
scanf(%s,num2);
len_num1=strlen(num1);
len_num2=strlen(num2);
len_max=(len_num1=len_num2)?len_num1:len_num2;
len_min=(len_num1=len_num2)?len_num1:len_num2;
intlen_max1=len_max;
sum=(char*)malloc(sizeof(char)*len_max);
memset(sum,000,len_max+1);//切忌初始化
for(;len_num10len_num20;len_num1,len_num2)
{
sum[len_max--]=((num1[len_num1-1]-0)+(num2[len_num2-1]-0));
}
if(len_num10)
{
sum[len_max--]=num1[len_num1-1]-0;
len_num1;
}
if(len_num20)
{
sum[len_max--]=num1[len_num2-1]-0;
len_num2;
}
for(intj=len_max1;j=0;j)//实现进位操作
{
//temp=sum[j]-0;
if(sum[j]=10)
{
sum[j-1]+=sum[j]/10;
sum[j]%=10;
}
}
char*outsum=(char*)malloc(sizeof(char)*len_max1);
j=0;
while(sum[j]==0)//跳出头部0元素
j++;
for(intm=0;m
outsum[m]=sum[j]+0;
outsum[m]=/0;
printf(输出两长长整型数据之和:%s/n,outsum);
return0;
}
3.通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
比如字符串abacacde过滤结果为abcde。
要求实现函数:
voidstringFilter(constchar*pInputStr,longlInputLen,char*pOutputStr);
【输入】pInputStr:输入字符串
lInputLen:输入字符串长度
【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;
参考代码:
#include
#include
#include
voidstringFilter(constchar*p_str,longlen,char*p_outstr)
{
intarray[256]={0};
constchar*tmp=p_str;
for(intj=0;j
{
if(array[tmp[j]]==0)
*p_outstr++=tmp[j];
array[tmp[j]]++;
}
*p_outstr=/0;
}
voidmain
{
char*str=cccddecc;
intlen=strlen(str);
char*outstr=(char*)malloc(len*sizeof(char));
stringFilter(str,len,outstr);
printf(%s/n,outstr);
free(outstr);
outstr=NULL;
}
5.通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
输入字符串的格式为:操作数1运算符操作数2,操作数与运算符之间以一个空格隔开。
补充说明:
1.操作数为正整数,不需要考虑计算结果溢出的情况。
2.若输入算式格式错误,输出结果为0。
要求实现函数:
voidarithmetic(constchar*pInputStr,longlInputLen,char*pOutputStr);
【输入】pInputStr:输入字符串
lInputLen:输入字符串长度
【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;
#include
#include
#include
voidarithmetic(constchar*input,longlen,char*output)
{
chars1[10];
chars2[10];
chars3[10];
intcnt=0;
intlen_input=strlen(input);
for(inti=0;i
{
if(input[i]==)
cnt++;
}
if(cnt!=2)
{
*output++=0;
*output=/0;
return;
}
sscanf(input,%s%s%s,s1,s2,s3);
if(strlen(s2)!=1||(s2[0]!=+'s2[0]!=-'))
{
*output++=0;
*output=/0;
return;
}
intlen_s1=strlen(s1);
for(i=0;i
{
if(s1[i]0||s1[i]9)
{
*output++=0;
*output=/0;
return;
}
}
intlen_s3=strlen(s3);
for(i=0;i
{
if(s3[i]0||s3[i]9)
{
*output++=0;
*output=/0;
return;
}
}
intx=atoi(s1);
inty=atoi(s3);
if(s2[0]==+')
{
intresult=x+y;
itoa(result,output,10);
}
elseif(s2[0]==-')
{
intresult=x-y;
itoa(result,output,10);
}
else
{
*output++=0;
*output=/0;
return;
}
}
voidmain
{
charstr[]={1023};
charoutstr[10];
intlen=strlen(str);
arithmetic(str,len,outstr);
printf(%s/n,str);
printf(%s/n,outstr);
}
6.一组人(n个),围成一圈,从某人开始数到第三个的人出列,再接着从下一个人开始数,最终输出最终出列的人
(约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。)
#include
#include
#include
#include
typedefstructNode
{
intdata;
structNode*next;
}LinkList;
LinkList*create(intn)
{
LinkList*p,*q,*head;
inti=1;
p=(LinkList*)malloc(sizeof(LinkList));
p-data=i;
head=p;
for(i=1;i=n;i++)
{
q=(LinkList*)malloc(sizeof(LinkList));
q-data=i+1;
p-next=q;
p=q;
}
p-next=head;//使链表尾连接链表头,形成循环链表
returnhead;
free(p);
p=NULL;
free(q);
q=NULL;
}
voiddeletefun(LinkList*L,intm)
{
LinkList*p,*q,*temp;
inti;
p=L;
while(p-next!=p)
{
for(i=1;i
{
q=p;
p=p-next;
}
printf(%5d,p-data);
temp=p;
q-next=p-next;
p=p-next;
free(temp);
}
printf(%5d/n,p-data);
}
intmain
{
intn=7,m=3;
LinkList*head1;
head1=create(n);
deletefun(head1,m);
return0;
}
7..输入一串字符,只包含0-10和,找出其中最小的数字和最大的数字(可能不止一个),输出最后剩余数字个数。如输入3,3,4,5,6,7,7
#include
#include
#include
voidmain
{
charstr[100];
printf(输入一组字符串:/n);
scanf(%s,str);
intlen=strlen(str);
intarray[100];
intcount=0;
for(inti=0;i
{
if(str[i]=0str[i]=9)
array[count++]=str[i]-0;
}
array[count]=/0;
intresult=count;
intmin=array[0];
intmax=array[0];
for(intj=0;j
{
if(max
max=array[j];
elseif(minarray[j])
min=array[j];
}
for(intk=0;k
{
if(array[k]==min)
result;
if(array[k]==max)
result;
}
printf(%d/n,result);
}
8.输入一组身高在170到190之间(5个身高),比较身高差,选出身高差最小的两个身高;若身高差相同,选平均身高高的那两个身高;从小到大输出;
如输入170181173186190输出170173
#include
#include
#defineN5
intmain
{
intHeight[N];
intdmin;
intH1,H2;
inti,j,temp;
printf(请输入一组身高在170到190之间的数据(共5个):/n);
for(intk=0;k
scanf(%d,Height[k]);
printf(/n);
for(i=0;i
for(j=1;jHeight[j];j++)
{
temp=Height[j-1];
Height[j-1]=Height[j];
Height[j]=temp;
}
H1=Height[0];
H2=Height[1];
dmin=H2-H1;
for(intm=2;m
{
if(Height[m]-Height[m-1]=dmin)
{
H1=Height[m-1];
H2=Height[m];
dmin=Height[m]-Height[m-1];
}
}
printf(身高差最小的两个身高为:/n);
printf(%d,%d/n,H1,H2);
return0;
}
9.删除子串,只要是原串中有相同的子串就删掉,不管有多少个,返回子串个数。
#include
#include
#include
#include
intdelete_sub_str(constchar*str,constchar*sub_str,char*result)
{
assert(str!=NULLsub_str!=NULL);
constchar*p,*q;
char*t,*temp;
p=str;
q=sub_str;
t=result;
intn,count=0;
n=strlen(q);
temp=(char*)malloc(n+1);
memset(temp,000,n+1);
while(*p)
{
memcpy(temp,p,n);
if(strcmp(temp,q)==0)
{
count++;
memset(temp,000,n+1);
p=p+n;
}
else
{
*t=*p;
p++;
t++;
memset(temp,000,n+1);
}
}
free(temp);
returncount;
}
voidmain
{
chars[100]={/0};
intnum=delete_sub_str(123abc12de234fg1hi34j123k,123,s);
printf(Thenumberofsub_stris%d/r/n,num);
printf(Theresultstringis%s/r/n,s);
}
10.要求编程实现上述高精度的十进制加法。要求实现函数:
voidadd(constchar*num1,constchar*num2,char*result)
【输入】num1:字符串形式操作数1,如果操作数为负,则num1[0]为符号位-
num2:字符串形式操作数2,如果操作数为负,则num2[0]为符号位-
【输出】result:保存加法计算结果字符串,如果结果为负,则result[0]为符号位。
#include
#include
#include
voidmove(char*str,intlength)//移除字母前的-符号
{
if(str[0]!=-)
return;
inti;
for(i=0;ilength-1;i++)
str[i]=str[i+1];
str[i]=/0;
}
intremove_zero(char*result,intlength)
{
intcount=0;
for(inti=length-1;i0;i)//从最后开始移除0,直到遇到非0数字,只对最初位置上的0不予判断
{
if(result[i]==0)
{
result[i]=/0;
count++;
}else
returnlength-count;
}
returnlengthcount;
}
voidreverse(char*result,intlength)//将字符串倒转
{
chartemp;
for(inti=0;i=(length-1)/2;i++)
{
temp=result[i];
result[i]=result[length-1-i];
result[length-1-i]=temp;
}
}
intreal_add(char*str1,char*str2,char*result,constboolflag)
{
intlen1=strlen(str1);
intlen2=strlen(str2);
intn1,n2,another=0;//another表示进位
intcur_rs=0;//表示result的当前位数
inti,j;
intcurSum;
for(i=len1-1,j=len2-1;i=0j=0;i,j)
{
n1=str1[i]0;
n2=str2[j]0;
curSum=n1+n2+another;
result[cur_rs++]=curSum%10+0;
another=curSum/10;
}
if(j0)
{
while(i=0)//遍历str1剩余各位
{
n1=str1[i--]0;
curSum=n1+another;
result[cur_rs++]=curSum%10+0;
another=curSum/10;
}
if(another!=0)//如果还有进位未加上
result[cur_rs++]=another+0;
}
else
{
while(j=0)
{
n2=str2[j--]0;
curSum=n2+another;
result[cur_rs++]=curSum%10+0;
another=curSum/10;
}
if(another!=0)
result[cur_rs++]=another+0;
}
result[cur_rs]=/0;
cur_rs=remove_zero(result,cur_rs);
if(!flag)
{
result[cur_rs++]=-;
result[cur_rs]=/0;
}
reverse(result,strlen(result));
returncur_rs;
}
intreal_minus(char*str1,char*str2,char*result)//使用str1减去str2
{
charbig[100],small[100];
intbig_len,sml_len;
intlen1=strlen(str1);
intlen2=strlen(str2);
boolflag=false;//用于标记str2是否比str1大
if(len1len2)
flag=true;
elseif(len1==len2)
{
if(strcmp(str1,str2)==0)
{
result[0]=0;
result[1]=/0;
return1;
}elseif(strcmp(str1,str2)0)
flag=true;
}
if(flag)//将str1和str2交换,确保str1指向的值是其中较大者,最后通过flag确定要不要给前面加-号
{
char*temp=str1;
str1=str2;
str2=temp;
len1=strlen(str1);
len2=strlen(str2);
}
intn1,n2,another=0;//another表示是否有借位
inti,j;
intcur_rs=0;
intcurMinus;
for(i=len1-1,j=len2-1;i=0j=0;i,j)
{
n1=str1[i]0;
n2=str2[j]0;
if(n1=n2+another)
{
result[cur_rs++]=(n1-n2-another)+0;
another=0;
}
else
{
result[cur_rs++]=(n1+10-n2-another)+0;
another=1;
}
}
while(i=0)
{
n1=str1[i--]0;
if(another!=0)
{
n1-=another;
another=0;
}
result[cur_rs++]=n1+0;
}
result[cur_rs]=/0;
cur_rs=remove_zero(result,cur_rs);
if(flag)
{
result[cur_rs++]=-;
result[cur_rs]=/0;
}
reverse(result,cur_rs);
returncur_rs;
}
voidaddi(constchar*num1,constchar*num2,char*result)
{
intlen1=strlen(num1);
intlen2=strlen(num2);
intrs_len;
if(!len1||!len2)
return;
charstr1[100],str2[100];
strncpy(str1,num1,len1);
str1[len1]=/0;
strncpy(str2,num2,len2);
str2[len2]=/0;
if(str1[0]==-str2[0]==-)
{
move(str1,len1);
move(str2,len2);
rs_len=real_add(str1,str2,result,false);
}elseif(str1[0]==-)
{
move(str1,len1);
rs_len=real_minus(str2,str1,result);
}
elseif(str2[0]==-)
{
move(str2,len2);
rs_len=real_minus(str1,str2,result);
}else
rs_len=real_add(str1,str2,result,true);
}
//intmain(intargc,char*argv[])
intmain
{
charnum1[100],num2[100];
printf(请输入两个整型数据:/n);
scanf(%s%s,num1,num2);
charresult[100];
memset(result,0,100);
addi(num1,num2,result);
printf(%s/n,result);
return0;
}
11.描述:10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:
(1)及格线是10的倍数;
(2)保证至少有60%的学生及格;
(3)如果所有的学生都高于60分,则及格线为60分
输入:输入10个整数,取值0~100
输出:输出及格线,10的倍数
#include
voidbubblesort(intarr[])
{
inti,j,temp;
for(i=0;i10;i++)
for(j=0;j9-iarr[j]arr[j+1];j++)
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
intGetPassLine(inta[])
{
bubblesort(a);
if(a[0]=60)
return60;
else
return(((int)a[4]/10)*10);
}
main
{
inta[10]={0};
intresult;
printf(请随机输入10个成绩(0-100):/n);
scanf(%d%d%d%d%d%d%d%d%d%d,a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]);
printf(/n);
result=GetPassLine(a);
printf(及格线为:%d/n,result);
return1;
}
12.描述:一条长廊里依次装有n(1n65535)盏电灯,从头到尾编号1、2、3、n-1、n。每盏电灯由一个拉线开关控制。开始,电灯全部关着。
有n个学生从长廊穿过。第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。n个学生按此规定走完后,长廊里电灯有几盏亮着。注:电灯数和学生数一致。
输入:电灯的数量
输出:亮着的电灯数量
样例输入:3
样例输出:1
#include
#defineMax_Bubl_Num65535
intGetLightLampNum(intn)
{
intBublNum[Max_Bubl_Num]={0};//0表示灯灭,1表示灯亮
unsignedinti,j;
unsignedintcount=0;
for(i=1;i=n;i++)
for(j=i;j=nj%i==0;j++)
{
BublNum[j-1]+=1;
BublNum[j-1]=BublNum[j-1]%2;
}
for(intk=0;k
{
if(BublNum[k]==1)
count++;
}
returncount;
}
intmain
{
intn,result;
printf(请输入灯的数量(1-65535):/n);
scanf(%d,n);
result=GetLightLampNum(n);
printf(最后亮灯的数量为:%d/n,result);
return0;
}
13.描述:已知2条地铁线路,其中A为环线,B为东西向线路,线路都是双向的。经过的站点名分别如下,两条线交叉的换乘点用T1、T2表示。编写程序,任意输入两个站点名称,输出乘坐地铁最少需要经过的车站数量(含输入的起点和终点,换乘站点只计算一次)。
地铁线A(环线)经过车站:A1A2A3A4A5A6A7A8A9T1A10A11A12A13T2A14A15A16A17A18
地铁线B(直线)经过车站:B1B2B3B4B5T1B6B7B8B9B10T2B11B12B13B14B15
输入:输入两个不同的站名
输出:输出最少经过的站数,含输入的起点和终点,换乘站点只计算一次
输入样例:A1A3
输出样例:3
#include
#include
#include
#include
usingnamespacestd;
#defineMAX35
#defineSUBWAY_A20
#defineSUBWAY_B15
typedefstructnode{
intadjvex;
structnode*next;
}edgenode;
typedefstruct{
charname[10];
boolflag;
edgenode*link;
}vexnode;
constcharsubway_name1[SUBWAY_A][10]={A1,A2,A3,A4,A5,A6,A7,A8,A9,T1,A10,A11,A12,A13,T2,A14,A15,A16,A17,A18};
constcharsubway_name2[SUBWAY_B][10]={B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15};
voidcreat(vexnodega[]){
inti;
edgenode*p;
for(i=0;i
ga[i].link=NULL;
ga[i].flag=true;
if(i
elsestrcpy(ga[i].name,subway_name2[i-20]);
}
//A地铁建邻接表
for(i=1;i
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=i-1;
p-next=NULL;
ga[i].link=p;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=i+1;
p-next=NULL;
ga[i].link-next=p;
if(i==9){
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=SUBWAY_A+4;
p-next=NULL;
ga[i].link-next-next=p;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=SUBWAY_A+5;
p-next=NULL;
ga[i].link-next-next-next=p;
}
elseif(i==14){
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=SUBWAY_A+9;
p-next=NULL;
ga[i].link-next-next=p;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=SUBWAY_A+10;
p-next=NULL;
ga[i].link-next-next-next=p;
}
}
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=SUBWAY_A-1;
p-next=NULL;
ga[0].link=p;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=1;
p-next=NULL;
ga[0].link-next=p;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=SUBWAY_A-2;
p-next=NULL;
ga[SUBWAY_A-1].link=p;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=0;
p-next=NULL;
ga[SUBWAY_A-1].link-next=p;
//B地铁建邻接表
for(i=1;i
if(i==4||i==5||i==9||i==10)continue;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=SUBWAY_A+i-1;
p-next=NULL;
ga[i+SUBWAY_A].link=p;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=SUBWAY_A+i+1;
p-next=NULL;
ga[i+SUBWAY_A].link-next=p;
}
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=SUBWAY_A+3;
p-next=NULL;
ga[SUBWAY_A+4].link=p;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=9;
p-next=NULL;
ga[SUBWAY_A+4].link-next=p;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=9;
p-next=NULL;
ga[SUBWAY_A+5].link=p;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=SUBWAY_A+6;
p-next=NULL;
ga[SUBWAY_A+5].link-next=p;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=SUBWAY_A+8;
p-next=NULL;
ga[SUBWAY_A+9].link=p;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=14;
p-next=NULL;
ga[SUBWAY_A+9].link-next=p;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=14;
p-next=NULL;
ga[SUBWAY_A+10].link=p;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=SUBWAY_A+11;
p-next=NULL;
ga[SUBWAY_A+10].link-next=p;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=SUBWAY_A+1;
p-next=NULL;
ga[SUBWAY_A].link=p;
p=(edgenode*)malloc(sizeof(edgenode));
p-adjvex=SUBWAY_A+SUBWAY_B-2;
p-next=NULL;
ga[SUBWAY_A+SUBWAY_B-1].link=p;
//打印各邻接节点
for(i=0;i
printf(%s:,ga[i].name);
edgenode*s;
s=ga[i].link;
while(s!=NULL){
printf(-%s,ga[s-adjvex].name);
s=s-next;
}
printf(/n);
}
}
intmain{
vexnodega[MAX];
creat(ga);
inti;
charstr[2][10];
while(scanf(%s%s,str[0],str[1])!=EOF){
inttemp=0;
for(i=0;i
ga[i].flag=true;
if(!strcmp(str[0],ga[i].name))temp=i;
}
queue
q.push(ga[temp]);
ga[temp].flag=false;
intcount=0;
intstart=0;
intend=1;
boolfind_flag=false;
while(!q.empty){
if(find_flag)break;
count++;
printf(************************/n);
printf(第%d层搜索:,count);
inttemp_end=end;
while(start
printf(%s,q.front.name);
if(!strcmp(q.front.name,str[1])){
find_flag=true;
break;
}
edgenode*s;
s=q.front.link;
while(s!=NULL){
if(ga[s-adjvex].flag){
q.push(ga[s-adjvex]);
ga[s-adjvex].flag=false;
end++;
//printf(%s,ga[s-adjvex].name);
}
s=s-next;
}
q.pop;
start++;
}
printf(/n);
}
printf(%d/n,count);
}
return0;
}
在求职过程中需要注意的问题您知道?需要的求职技巧您知道?职场小编告诉你,在求职过程中切忌夸夸其谈,切忌过于自信,切忌自我炫耀,切忌左顾右盼以及切忌形象糟糕。感谢阅读《中兴笔试题目》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。
1.对数据库的一张表进行操作,同时要对另一张表进行操作,如何实现??
答案:将操作多个表的操作放入到事务中进行处理
2.TCP/IP建立连接的过程?(3-wayshake)
答案:在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
3.ICMP是什么协议,处于哪一层?
答案:Internet控制报文协议,处于网络层(IP层)
4.触发器怎么工作的?
答案:触发器主要是通过事件进行触发而被执行的,当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,数据库就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合由这些SQL语句所定义的规则。
5.winsock建立连接的主要实现步骤?
答案:服务器端:socker建立套接字,绑定(bind)并监听(listen),用accept等待客户端连接。客户端:socker建立套接字,连接(connect)服务器,连接上后使用send和recv,在套接字上写读数据,直至数据交换完毕,closesocket关闭套接字。
服务器端:accept发现有客户端连接,建立一个新的套接字,自身重新开始等待连接。该新产生的套接字使用send和recv写读数据,直至数据交换完毕,closesocket关闭套接字。
6.动态连接库的两种方式?
答案:调用一个DLL中的函数有两种方法:
1.载入时动态链接(load-timedynamiclinking),模块非常明确调用某个导出函数,使得他们就像本地函数一样。这需要链接时链接那些函数所在DLL的导入库,导入库向系统提供了载入DLL时所需的信息及DLL函数定位。
2.运行时动态链接(run-timedynamiclinking),运行时可以通过LoadLibrary或LoadLibraryEx函数载入DLL。DLL载入后,模块可以通过调用GetProcAddress获取DLL函数的出口地址,然后就可以通过返回的函数指针调用DLL函数了。如此即可避免导入库文件了。
7.IP组播有那些好处?
答案:Internet上产生的许多新的应用,特别是高带宽的多媒体应用,带来了带宽的急剧消耗和网络拥挤问题。组播是一种允许一个或多个发送者(组播源)发送单一的数据包到多个接收者(一次的,同时的)的网络技术。组播可以大大的节省网络带宽,因为无论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包。所以说组播技术的核心就是针对如何节约网络资源的前提下保证服务质量。
2006年3月21日于华侨大学洪祖杭大楼,笔试分三部分,公共部分(都做),C++部分和JAVA部分选做。考试时间1小时!蜗牛自己打字好累啊!供涯友分享。
公共部分(50分)
1:作业调度程序从处于()状态的队列中选择适当的作业的作业投入运行。(3分)
A运行B提交C完成D后备
2:SQL语言中,删除一个表的命令是()(3分)
ACLEARTABLEBDROPTABLE
CDELETETABLEDREMOVETABLE
3:ATM采用的线路复用方式为()(3分)
A频分多路复用
B同步时分多路复用
C异步时分多路复用
D独占信道
4:数据库中只存放视图的()(3分)
A操作
B对应的数据
C定义
D限制
5:什么是虚拟设备?为什么在操作系统中引入虚拟设备?(10分)
6:TCP为何采用三次握手来建立连接,若采用二次握手可以吗,请说明原因?(16分)
7:什么是分布式数据库?(12分)
C++部分(50分)
1:设有intw[3][4];,pw是与数组名w等价的数组指针,则pw的初始化语句为________________(3分)
2:要使引用pr代表变量char*p,则pr的初始化语句为__________________(3分)
3:零值可以是0,0.0,FALSE或者空指针。例如int变量n与零值比较的if语句为:if(n==0),则BOLLflag与零值比较的if语句为______________;floatx与零值比较的if语句为:______________。(6分)
4:社有如下语句:(3分)
Intx;
*px=0;
则选择以下哪条语句可将x值置为0。
Aint*px;Bintconst*px=x;
Cintconstpx=x;Dconstint*px=x;
5:设viodf1(int*m,longn);inta;longb;则以下调用合法的是()(3分)
Af1(a,b)Bf1(a,b)
Cf1(a,b)Df1(a,b)
6:请写出如下代码的运行结果(6分)
Intmain
{inta,b,c,d;
a=0;
b=1;
c=2;
d=3;
printf(%d,a+++b+c+++d++);}
7:写出下面函数的功能(12分)
Template
VoidWE(Typea[],Typeb[],intn){
for(inti=0;i
8写一段代码判断一个单向链表中是否有环。(14分)
给出如下结构
Structnode
{steuct*next;
};
TypedefstuctnodeNode;
JAVA部分(50分)
1:判断下列对的是哪个()(3分)
Ashorts1=1;s1=s1+1
Bshorts1=1;s1+=1
Cshorts1=1;s1=s1-1
Dshorts1=1;s1=s1*1
2:main方法是JavaApplication程序执行的入口点,关于main方法的方法头以下哪项是合法的()(3分)
Apublicstaticvoidmain
Bpublicstaticvoidmain(Stringargs)
Cpublicstaticintmain(String[]arg)
Dpublicvoidmain(Stringargs)
3:设floatx=1,y=2,z=3,则表达式y+=z--/++x的值是()(3分)
A3.5B3
C4D5
4:Math.round(11.5)=_______
Math.round(-11.5)=_______(4分)
5:假设x=10,y=20,z=30;计算下列表达式的值(6分)
Ax10||x10__________
B!(x
Cz-y==xMath.abs(y-z)!=x_____________
6:方法重建Overload和方法的重写Overriding的区别。Overload的方法是否可以改变返回值的类型?(10分)
7:谈谈HashMap和Hashtable的区别(6分)
8:构造一个类来描述屏幕上的一个点,该类的构成包括点x和y两个坐标,以及一些对点进行的操作,包括:取得点的坐标值,对点的坐标进行赋值,编写应用程序生成该类的对象并对其进行操作。(15分)
大学生就业难已经成为社会一个难以回避的问题,同时求职技巧也就显得尤为重要,扬长避短掌握技巧是关键。感谢阅读《发散性思维笔试试题》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。
什么是发散性思维面试题?
发散思维又称辐射思维、放射思维、多向思维、扩散思维或求异思维,是指从一个目标出发,沿着各种不同的途径去思考。发散思维是创造性思维的最主要的特点,是测定创造力的主要标志之一。名企面试中也常用这种发散思维的面试题,以来考察求职者的素质及能力。同样这种面试题在公务员面试中也常常遇见。在公务员面试中,联想发散类面试题考核的比较多,除了国家公务员考试之外,在各省市公务员考试中湖南、云南、贵州、河北等公务员面试中出现最为频繁。发散思维性面试题在题目设置上,联想发散题可归结为三大类:第一类,极度发散思维题这类面试题的特点就是由你自由发挥。多角度的思考,是最典型的发散性思维。典型例题:1、给你一张纸你会画下什么。2、一个小老鼠掉进一个米缸里,有半缸米,小老鼠很高兴,就一直吃,结果后来米吃完了,由于缸太高,小老鼠出不去了,最后饿死在里面。谈谈你对这个故事的看法。【解读】解答这样的问题,思维一定要多元,展现出全面的思维能力。第二类,哲理性问题典型例题:1、一个跳蚤被放在玻璃杯子里面,一开始杯子的口是敞开的,跳蚤可以自由地跳出;过一段时间之后,用一个玻璃片封住杯子,跳蚤尝试了几次之后,都没有跳出去,跳蚤不再尝试了;随后工作人员把玻璃片移走之后,再过了一段时间,跳蚤也没有再尝试跳出杯子。请说明这一现象带来的启示。【解读】解答这类面试题要通过题目给定的信息,抽象出背后蕴含的哲理,才能更好地解读。第三类,串词、串故事题【解读】这其实是两种题型,如果是要求应试者将几个词语串联成一段话,那就没有什么特殊要求,只要传承紧密、主体积极、思想端正、有一定的深度即可;如果是要求应试者讲一个故事并把这些词语用上,那么注意,只要题目不做特殊要求,能串起来即可,不需要把词语作为固定的主要内容,而且既然是编故事就一定要有人物和情节,所以尽量使故事曲折。1、不用新变量直接交换现有两个变量的值.(考php基本功)
答案:list($a,$b)=array($b,$a);
2、PHP数字金额转大小格式,同时说明思路(考数组掌握)
3、SQL查询语句如下:
select*fromtablewhere(ID=10)or(ID=32)or(ID=22)or(ID=76)or(ID=13)or(ID=44)
让结果按10,32,22,76,13,44的顺序检索出来,请问如何书写?(sql能力)
4、简单写一个上传文件程序,要求同时上传文件数量可以人为控制(逻辑能力)
5、php同时调用3个数据库中的一个表的信息(架设A.a.aid=B.b.bid=C.c.cid),请说明思路及书写部分代码
6、现有一IM软件,使用id、email做为注册条件,假设已注册1040人,有一zh_cn论坛,使用id、email做为注册条件,假设已注册200人,有一en_us论坛,使用id、email做为注册条件,假设已注册150人
要求:将三者同步,使用统一的注册流程,写出设计思路
在求职过程中需要注意的问题您知道?需要的求职技巧您知道?职场小编告诉你,在求职过程中切忌夸夸其谈,切忌过于自信,切忌自我炫耀,切忌左顾右盼以及切忌形象糟糕。感谢阅读《阿里在线前端笔试题》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。
一共13题,6个选择,1题是github地址或博客微博地址,6个大题。
选择题第一题:
vararr=[1,2,3,4,5];
arr.splice(1,2,3,4,5);
arr?
考察数组splice的用法。
后面几个选择题忘了(别打脸),选择题都不是很难。
大题:
1.考查css的基本知识,给出html基本代码。写css代码,每个div是一个盒子模型。中间文字水平垂直居中,三个盒子水平排列。(比较基础,代码就不上了)
2.多维数组转一位数组:原题:[1,[2,3]]==》[1,2,3]
vararr=[1,[[4,5,6],2,[[[7,8,9]]],3]];//转成一位数组:[1,4,5,6,2,7,8,9,3]
functionf(arr){
if(Object.prototype.toString.call(arr)!=[objectArray])//判断arr是不是数组
return;
varnewArr=[];
functionfn(arr){
for(vari=0;iarr.length;i++){//遍历数组
if(arr[i].length){//判断是不是多维数组
fn(arr[i]);//递归调用
}else{
newArr.push(arr[i]);
}
}
}
fn(arr);
returnnewArr;
}
console.log(f(arr));
当时在做试卷的时候没有考虑多维数组,只片面的为了解题,没有用递归。
3.数字类型转千分位表示
varnum=123456789.9;//结果转成千分位表示123,456,789.9
functionf(num){
if(typeofnum!=number)
return;
num+=;
if(num.indexOf(.)!=-1){//判断是否存在小数
returnfn(num.split(.)[0])+.+num.split(.)[1];
}else{
returnfn(num);
}
functionfn(newNum){
varstr=;
varl=newNum.length;
while(l3){
str=,+newNum.substring(l-3,l)+str;
l=l-3;
}
str=newNum.substring(0,l)+str;
returnstr;
}
}
console.log(f(num));
4.解析url:varstr=http://s.weibo.com/weibo/Aralic?topnav=1wvr=6获得参数名和参数值:
(以前做过类似的题目,解析url一系列的值,阿里这题感觉稍微简单一点)
functionf(url){
varl=url.indexOf(?);
if(l!=-1){
varobj={};
vararr=url.substring(l+1,url.length).split;
for(vari=0;i
obj[arr[i].split(=)[0]]=arr[i].split(=)[1];
}
returnobj;
}
}
console.log(f(http://s.weibo.com/weibo/Aralic?topnav=1wvr=6))
在求职过程中需要注意的问题您知道?需要的求职技巧您知道?职场小编告诉你,在求职过程中切忌夸夸其谈,切忌过于自信,切忌自我炫耀,切忌左顾右盼以及切忌形象糟糕。感谢阅读《笔试题型有哪些?》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。
一、选择题
选择题有单项选择、双项选择和多项选择三种类型,多项选择题是选择题中难度最大的一种,它并不指定正确答案的个数,可能只有一个是正确的,也可能两个是正确的,也可能全部是正确的。
二、判断题
这类试题看似简单,但如思路不对,同样会造成错误。
三、填空题
填空题的答案是唯一的,要用简明、准确、完整的语句作答。
四、简答题
这类题主要是考查考生对基本原理、原则、基本概念的掌握程度及对一些问题的认识分析能力。
五、辨析题
辨析题就是辨别分析、判断说明,这种题的一般要求是先指出题中观点的正误,然后分析原因说明理由。由此,答这种题一般都分为三步,第一步先说明题中观点是否正确;第二步说明理由,即为什么正确或为什么错误,正确的符合什么规律、规定或原理,错误的违背了哪个规律、规定或原理;第三步是题中观点与规律或原理如何对应。
六、论述题
这类题所占的比重较大,解题难度大,常被认为是拉开档次的题目,要特别注意。
七、阅读理解题
这类题主要包括阅读材料和回答问题两部分,具有综合程度高、考查内容范围广的特点。
八、案例分析题
解答这类题,要求运用原理恰当,理论与案例紧密结合,条理清楚。
九、情景模拟题
这类题正好与案例分析题相反,要求应考者把自己置身于情景之中,从自身材料描述情景的感受中,悟出解决问题的路径与方法,找出解决问题的办法。
十、作文题
这类题有命题作文和条件作文两类,答题时都要注意抓住几个重要环节:提炼主题一构思结构一文字表述一润色补缺。
微软在IT界依然是数一数二的企业了,不少人的梦想都是进入微软公司。那么在这之前的面试以及笔试就需要进行一下准备了。那么这里就来看看小编为大家总结的微软笔试题吧。
微软笔试题:写程序找出二叉树的深度
一个树的深度等于max(左子树深度,右子树深度)+1。可以使用递归实现。
假设节点为定义为
structNode{
Node*left;Node*right;
};
intGetDepth(Node*root){
if(NULL==root){
return0;
}
intleft_depth=GetDepth(root-left);
intright_depth=GetDepth(root-right);
returnleft_depthright_depth?left_depth+1:right_depth+1;
}
微软笔试题:利用天平砝码,三次将140克的盐分成50、90克两份?
有一个天平,2克和7克砝码各一个。如何利用天平砝码在三次内将140克盐分成50,90克两份。
第一种方法:
第一次:先称7+2克盐(相当于有三个法码2,7,9)
第二次:称2+7+9=18克盐(相当于有2,7,9,18四个法码)
第三次:称7+18=x+2,得出x是23,23+9+18=50克盐.
剩下就是90克了.
第二种方法:
1.先把140克盐分为两份,每份70克
2.在把70克分为两份,每份35克
3.然后把两个砝码放在天平两边,把35克面粉分成两份也放在两边(15+7=20+2)
现在有四堆面粉70,35,15,20,分别组合得到
70+20=90
35+15=50
微软笔试题:地球上有多少个满足这样条件的点
站在地球上的某一点,向南走一公里,然后向东走一公里,最后向北走一公里,回到了原点。地球上有多少个满足这样条件的点?
北极点满足这个条件。
距离南极点很近的一个圈上也满足这个条件。在这个圆圈上,向南走一公里,然后向东走一公里恰好绕南极点一圈,向北走一公里回到原点。
所以地球上总共有无数点满足这个条件。
或者
首先,在地球表面上,南北走向是沿着经度方向,东西是沿着纬度方向。如果你一直往北走就会达到北极点,往南走就到了南极点。因此,向南走一公里,然后向东走一公里,最后向北走一公里,回到了原点,一种情况就是,出发点是在北极点,这样向南走一公里,然后向东走任意几公里,最后向北走一公里,最后都会回到北极点;
其次,可以这么认为如果从A点向南走一公里到达B点,那么若向东走一公里能回到B,那么最后向北走一公里,就能回到了原点A。这样就可以先找出在南北极点附近找出绕一周只有1公里的圈,那么这个圈落在南极附近时,只要往北推1公里,此时该圈上的点都能满足;若这个圈落在北极附近时,能不能往北推1公里我就不分析了。反正在南极附近能找到任意多个点就能回到这个问题了
微软笔试题:正确标注水果篮
有三个水果篮。其中一个里面只有苹果,一个里面只有橘子,另外一个既有苹果又有橘子。每个水果篮上都有标签,但标签都是错的。如何检查某个水果篮中的一个水果,然后正确标注每个水果篮?
从标注成既有苹果也有橘子的水果篮中选取一个进行检查。
如果是橘子,则此篮中只有橘子;标有橘子的水果篮中只有苹果;标有苹果的水果篮中既有苹果也有橘子。
如果是苹果,则此篮中只有苹果;标有苹果的水果篮中只有橘子;标有橘子的水果篮中既有苹果也有橘子。
微软笔试题:不利用浮点运算,画一个圆
不利用浮点运算,在屏幕上画一个圆(x**2+y**2=r**2,其中r为正整数)。
考虑到圆的对称性,我们只需考虑第一象限即可。
等价于找到一条连接点(0,r)到点(r,0)的一条曲线,曲线上的点距圆心(0,0)的距离最接近r。
我们可以从点(0,r)开始,搜索右(1,r),下(0,r-1),右下(1,r-1)三个点到圆心的距离,选择距圆心距离最接近r的点作为下一个点。反复进行这种运算,直至到达点(r,0)。
由于不能利用浮点运算,所以距离的比较只能在距离平方的基础上进行。也就是比较x**2+y**2和r**2之间的差值。
微软笔试题:将一个句子按单词反序
将一个句子按单词反序。比如hibaiducommianshiti,反序后变为mianshiticombaiduhi。
可以分两步走:
第一步按找字母反序,hibaiducommianshiti变为itihsnaimmocudiabih。
第二部将每个单词中的字母反序,itihsnaimmocudiabih变成mianshiticombaiduhi。
这个方法可以在原字符串上进行,只需要几个整数变量来保持指针即可,空间复杂度低。
微软笔试题:计算nbit的整数中有多少bit为1
设此整数为x。
方法1:
让此整数除以2,如果余数为1,说明最后一位是1,统计值加1。
将除得的结果进行上面运算,直到结果为0。
方法2:
考虑除法复杂度有些高,可以使用移位操作代替除法。
将x和1进行按位与操作(x1),如果结果为1,说明最后一位是1,统计值加1。
将x向右一位(x1),重复上面过程,直到移位后结果为0。
方法3:
如果需要统计很多数字,并且内存足够大,可以考虑将每个数对应的bit为1的数量记录下来,这样每次计算只是一次查找操作。
微软笔试题:快速求取一个整数的7倍
乘法相对比较慢,所以快速的方法就是将这个乘法转换成加减法和移位操作。
可以将此整数先左移三位(8)然后再减去原值:X3-X。
微软笔试题:判断一个数是不是2的n次幂
设要判断的数是无符号整数X。
首先判断X是否为0,如果为0则不是2的n次幂,返回。
X和X-1进行按位与操作,如果结果是0,则说明这个数是2的n次幂;如果结果非0,则说明这个数不是2的n次幂。
证明:
如果是2的n次幂,则此数用二进制表示时只有一位是1,其它都是0。减1后,此位变成0,后面的位变成1,所以按位与后结果是0。
如果不是2的n次幂,则此数用二进制表示时有多位是1。减1后,只有最后一个1变成0,前面的1还是1,所以按位与后结果不是0。
微软笔试题:三只蚂蚁不相撞的概率是多少
在三角形的三个顶点上各有一只蚂蚁,它们向另一个顶点运动,目标随机(可能为另外两个顶点的任意一个)。问三只蚂蚁不相撞的概率是多少?
如果蚂蚁顺时针爬行记为0,逆时针爬行记为1。那么三只蚂蚁的状态可能为000,001,...,110,111中的任意一个,且为每种状态的概率相等。在这8种状态中,只有000和111可以避免相撞,所以蚂蚁不相撞的概率是1/4。
微软笔试题:判断数组中是否包含重复数字
给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字。(原数组不必保留)
给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字。(原数组不必保留)
微软笔试题:如何将蛋糕切成相等的两份
一块长方形的蛋糕,其中有一个小长方形的空洞(角度任意)。使用一把直刀,如何一刀将蛋糕切成相等的两份?
通过长方形中心的的任意直线都能将长方形等分,所以连接两个长方形的中心点的直线可以等分这个蛋糕。
一个没有排序的链表,比如list={a,l,x,b,e,f,f,e,a,g,h,b,m},请去掉重复项,并保留原顺序,以上链表去掉重复项后为newlist={a,l,x,b,e,f,g,h,m},请写出一个高效算法(时间比空间更重要)。
建立一个hash_map,key为链表中已经遍历的节点内容,开始时为空。
从头开始遍历链表中的节点:
-如果节点内容已经在hash_map中存在,则删除此节点,继续向后遍历;
-如果节点内容不在hash_map中,则保留此节点,将节点内容添加到hash_map中,继续向后遍历。
微软笔试题:小明一家5口如何过桥?
小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒,小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会熄灭。问:小明一家如何过桥?
小明与弟弟过去,小明回来,用4s;
妈妈与爷爷过去,弟弟回来,用15s;
小明与弟弟过去,小明回来,用4s;
小明与爸爸过去,用6s;
总共用29s。
题目的关键是让速度差不多的一起走,免得过于拖累较快的一个人。
微软笔试题:编一个程序求质数的和
编一个程序求质数的和,例如F(7)=2+3+5+7+11+13+17=58。
方法1:
对于从2开始的递增整数n进行如下操作:
用[2,n-1]中的数依次去除n,如果余数为0,则说明n不是质数;如果所有余数都不是0,则说明n是质数,对其进行加和。
空间复杂度为O(1),时间复杂度为O(n^2),其中n为需要找到的最大质数值(例子对应的值为17)。
方法2:
可以维护一个质数序列,这样当需要判断一个数是否是质数时,只需判断是否能被比自己小的质数整除即可。
对于从2开始的递增整数n进行如下操作:
用[2,n-1]中的质数(2,3,5,7,开始时此序列为空)依次去除n,如果余数为0,则说明n不是质数;如果所有余数都不是0,则说明n是质数,将此质数加入质数序列,并对其进行加和。
空间复杂度为O(m),时间复杂度为O(mn),其中m为质数的个数(例子对应的值为7),n为需要找到的最大质数值(例子对应的值为17)。
方法3:
也可以不用除法,而用加法。
申请一个足够大的空间,每个bit对应一个整数,开始将所有的bit都初始化为0。
对于已知的质数(开始时只有2),将此质数所有的倍数对应的bit都改为1,那么最小的值为0的bit对应的数就是一个质数。对新获得的质数的倍数也进行标注。
对这样获得的质数序列累加就可以获得质数和。
空间复杂度为O(n),时间负责度为O(n),其中n为需要找到的最大质数值(例子对应的值为17)。
《PHP经典笔试题》由编辑撰写而成,内容素材主要来源于网络,希望在您求职技巧过程中能帮到您!我们把大量的“经典求职信”内容汇集于专题再现给您,希望您喜欢!
相关文章
最新更新