第一篇:51CTO下载-C程序员面试题
一:推理题。
1、一个大院子里住了50户人家,每家都养了一条狗,有一天他们接到通知说院子里有狗生病了,并要求所有主人在发现自己家狗生病的当天就要把狗枪杀掉。然而所有主人和他们的狗都不能够离开自己的房子,主人与主人之间也不能通过任何方式进行沟通,他们能做的只是通过窗户观察别人家的狗是否生病从而判断自己的狗病否。(就是说,每个主人只能看出其他49家的狗是不是生病,单独看自己的狗是看不出来的)
第一天没有枪声,第二天还是没有枪声,第三天传出一阵枪声,问有多少条狗被枪杀。
2、有四个人(A,B,C和D)要在一个月黑风高的夜里过一个很长的独木桥。桥只能一次乘载两个人,就是说每次最多两人同时过桥。过桥要用手电筒,而这四个人只有一只手电筒,也就是说两人共用这只手电筒过桥后,其中一人必须带着手电筒返回(没有其他方法),否则其他人就不能再过了。这四个人由于年龄和身体状况的差异,每个人过桥所需要的时间不同:A需要1分钟,B需要2分钟,C需要5分钟,D需要10分钟。由于共用一只手电筒的原因,当两人一同过桥时,过桥的时间是以其中慢的一人为准,比如A和C一起过桥要用5分钟。
现在问:要所有人过桥,最短要多少分钟,如何安排他们的过桥顺序?
二:编程题
1,用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。用C语言实现函数void * memmove(void *dest,const void *src,size_t n)。memmove函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。用两个栈实现一个队列的功能?要求给出算法和思路!已知链表的头结点head,写一个函数把这个链表逆序 void reverse(node*& head)
写一个函数找出一个整数数组中,第二大的数 int find_sec_max(int data[] , int count)
已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc)其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数,请编写函数 strcpy。
三:找错题 11 void test1(){ char string[10];char* str1 = “0123456789”;strcpy(string, str1);} 2: void test2(){ char string[10], str1[10];int i;for(i=0;i<10;i++){ str1[i] = 'a';} strcpy(string, str1);} 3:
void test3(char* str1){ char string[10];if(strlen(str1)<= 10){ strcpy(string, str1);} }
试题4:
void GetMemory(char *p){ p =(char *)malloc(100);} void Test(void){ char *str = NULL;GetMemory(str);strcpy(str, “hello world”);printf(str);}
试题5:
char *GetMemory(void){ char p[] = “hello world”;return p;} void Test(void){ char *str = NULL;str = GetMemory();printf(str);}
试题6:
void GetMemory(char **p, int num){ *p =(char *)malloc(num);} void Test(void){ char *str = NULL;GetMemory(&str, 100);strcpy(str, “hello”);printf(str);}
试题7:
void Test(void){ char *str =(char *)malloc(100);strcpy(str, “hello”);free(str);...//省略的其它语句 }
编程题 答案1 char *revert(char * str){ int n=strlen(str);int i=0;char c;for(i=0;i { c=str;str=str[n-i];str[n-i]=c;} return str;}
答案2 void * memmove(void *dest,const void *src,size_t n){ assert((dest!=0)&&(src!=0));char * temp=(char *)dest;char * ss=(char *)src;int i=0;for(;i{ *temp++=*ss++;} return temp;}
答案3 设2个栈为A,B, 一开始均为空.入队:
将新元素push入栈A;
出队:
1将栈A中所有元素依次pop出并push到栈B;
2将栈B的栈顶元素pop出;
答案4 void reverse(node*& head)
{
if((head == 0)||(head->next == 0))return;// 边界检测
node* pNext = 0;
node* pPrev = head;// 保存链表头节点
node* pCur = head->next;// 获取当前节点
while(pCur!= 0)
{
pNext = pCur->next;// 将下一个节点保存下来
pCur->next = pPrev;// 将当前节点的下一节点置为前节点
pPrev = pCur;// 将当前节点保存为前一节点
pCur = pNext;// 将当前节点置为下一节点
}
}
链表正常的顺序是前一个节点的NEXT指向后一个节点。反转就是要将后一个节点的next指向前一个节点所以pCur->next = pprev;完成了这一个功能。但这只是完成了两个节点的反转,所以对应的要将当前
节点的next保存下来pNext = pcur->next;,用来当作下一次的当前节点PCur = Pnext;在下一次反转中,当前节点就变成了下一次反转中的前节点。pPrev = pCur;一直到当前节点为NULL,也就是全部转化为止;
char *strcpy(char *strDest, const char *strSrc){ if(strDest == NULL || strSrc == NULL)return NULL;if(strDest == strSrc)return strDest;char *tempptr = strDest;while((*strDest++ = *strSrc++)!= ‘/0’);return tempptr;}
分
void strcpy(char *strDest, char *strSrc){ while((*strDest++ = * strSrc++)!= ‘ ’);} 4 分
void strcpy(char *strDest, const char *strSrc)//将源字符串加const,表明其为输入参数,加2 分 { while((*strDest++ = * strSrc++)!= ‘ ’);} 7 分
void strcpy(char *strDest, const char *strSrc){ //对源地址和目的地址加非0 断言,加3 分 assert((strDest!= NULL)&&(strSrc!= NULL));while((*strDest++ = * strSrc++)!= ‘ ’);}
找错题答案:
试题4 传入中GetMemory(char *p)函数的形参为字符串指针,在函数内部修改形参并不能真正的改
变传入形参的值,执行完 char *str = NULL;GetMemory(str);后的str 仍然为NULL;
试题5 中
char p[] = “hello world”;return p;的p[]数组为函数内的局部自动变量,在函数返回后,内存已经被释放。这是许多程序员常犯的错误,其根源在于不理解变量的生存期。
试题6 的GetMemory 避免了试题4 的问题,传入GetMemory 的参数为字符串指针的指针,但是在
GetMemory 中执行申请内存及赋值语句 *p =(char *)malloc(num);后未判断内存是否申请成功,应加上: if(*p == NULL){...//进行申请内存失败处理
} 试题7 存在与试题6 同样的问题,在执行
char *str =(char *)malloc(100);后未进行内存是否申请成功的判断;另外,在free(str)后未置str 为空,导致可能变成一个“野”指 针,应加上:
str = NULL;试题6 的Test 函数中也未对malloc 的内存进行释放。
剖析:
试题4~7 考查面试者对内存操作的理解程度,基本功扎实的面试者一般都能正确的回答其中50~60 的
错误。但是要完全解答正确,却也绝非易事。对内存操作的考查主要集中在:(1)指针的理解;
(2)变量的生存期及作用范围;(3)良好的动态内存申请和释放习惯。
第二篇:程序员面试题
曙光集团程序员面试题(答题时间1小时)
基本概念测试题
1.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?
2.请说明覆盖与重载的区别?
3.请说明抽象类、类、接口有什么不同?
4.请说明Java的错误处理机制是什么?
5.请举例说明Java中有几种参数传递模式?
6.请说明Java中垃圾回收的机制。
7.请写出Java中的基本数据类型
基本能力测试题
8.请列出您所知道的设计模式的名称并说明在什么情况下使用该模式
9.请按照你的理解简要描述一下三层架构
10.请说明在交给测试部门前,如何对自己负责的模块进行测试?
综合能力测试题
11.请用Java语言以最能够体现你的编程水平的方式编写出对一张表中的记录
进行添加、修改、删除、查询操作的主要类和方法结构(可以随意建立一张表进行编写)
数据库能力题
12.一大型企业,有10000名员工,每半个月发一次工资,请写出你对此企业工资数
据库的设计思路(数据库为SQL server或者Oracle)
13.请在SQL Server或者Oracle中设计表来保存一个树状结构的组织结构图(假
设结构图中只有名称这一项内容需要保存),如果我想查询某一职位下的所有职位,用一个存储过程来实现,你有什么思路?
第三篇:程序员相关面试题
面试题汇总
1、请进行自我介绍
2、你的外语水平如何
3、请描述自己的优缺点,并给出例子
4、请问你的最好成绩排名如何
5、给出一个我录取你的理由
6、请对比大学课程和TTC课程的优劣
7、请说明你在TTC的收获
8、给出项目经历,是自己做的设计吗?
9、有两张表,一张保存成绩,一张保存学员信息写出一下问题的SQL语句 a)建表
b)添加约束
c)查询缺课学生名单
d)按照学生平均分排序
10、解释一下事务的概念
1.自我介绍
2.有什么兴趣爱好
3.是否通过英语四级、分数
4.学院录取分数线
5.成绩排名
6.是否有考研的想法
7.大学期间担任过什么职务
8.上学期间学过什么跟软件相关的课程
9.都做过什么项目、或者课程设计
10.在项目小组里负责哪一部分
11.家乡在哪里
12.如果某某地有东软的分公司是否愿意去(陷阱问题,主要看南方生源在北方工作 的意愿)
13.是否能够出差、加班
14.对东软的认识
15.对软件行业的认识
16.C和C++的区别,更喜欢哪种语言
软开面试题:
1、Int如何转化成String类型,相反如何转化
2、继承的好处
3、如何理解面向对象语言
4、小数位多的时候用什么类型
5、Int占几个字节、长度
6、字符串如何连接
7、独立做过什么项目
8、遇到什么问题,如何解决的1.简单自我介绍
2.总结一下自己的优缺点
3.Oracle中建表语法,事务相关特性
4.JDBC过程
5.在东软实训中心有哪些收获
6.对东软是否认可
1.学习中遇到的问题如何解决?
2.遇到规定时间无法完成的任务时如何解决?
3.线程如何使用?线程的常用方法?wait和sleep的区别?
4.&与&&区别?
5.抽象类与接口的区别?
6.学校本专业多少人,你在学校排名是多少?
7.如何使用异常处理?
8.B/S C/S的区别?
9.文件读写需要使用哪些类?你都读写过什么文件?
10.什么是面向对象?
11.二分查找的算法、冒泡排序?用语言描述或在纸上写
12.素数之和1~100?
13.单例如何实现?
14.hashmap与hashtable的区别?、15.sql语句执行的先后顺序?
16.java都学过哪些课程和内容(java体系结构)
17.xml的解析和编辑
18.JavaScript实现时钟功能?
19.javaapi是否使用过,如何查找某一个类的方法
20.JavaScript作用?JavaScript调试?
21.左外连接和右外连接的语句、视图和索引的使用
22.分组使用什么语句
23.request的作用?
24.杨辉三角形编写
25.get和post区别?
26.2个画面之间传值
27.重载和重写的区别
28.连接数据库的步骤
29.什么时候使用static
30.Final修饰类的作用
31.什么时候会创建内部类
政府事业部:
所用技术:java,pb,oracle
做实施oracle是重点
问题:
1. 所学专业课以及在年级中排名;
2. 4,6级分数;
3. 期望的工作地点以及是否能够出差;
4. 特长和爱好;
5. 沟通能力;
6. 做过的项目;
7. 使用过以及最熟的开发语言和工具;
8. Oracle问题:有A,B两个表,A表有id和姓名,工资,B表有Id和工资,写一个
SQL语句用B表的工资更新A表工资;
9. 模拟场景:如果你是项目负责人,在客户现场发现产品的一个重大问题,客户要求
在3天内解决,而项目组评估需要2个星期才能彻底解决,你作为项目负责人应该怎么做。
309政府面试题:
1. 自我介绍
2. 在大学里的成绩排名,是否过英语四六级,在校是否当过干部?
3. 和周围人相处的怎么样?
4. 自己的优缺点及兴趣爱好。
5. 什么事继承、封装、多态?
6. 说说java都有多少种数据类型?
7. 说说SSH架构
8. 做过什么项目,简单说说怎么做的?在做项目中遇到过问题么?如何解决的?
9. 数据库学过什么,说说这些数据库的区别。
10. 是否愿意做实施方面工作
11. 对东软的认识
12. 觉得实训中心怎么样?来实训后有什么提高?
13. 能出差么?想去哪个城市工作?
14. 还有什么想问面试官的么?
政府事业部所注重的能力:
1. 数据库的增删改查操作;
2. 硬件知识,如服务器调优;
3. 与客户沟通能力;
软开面试题:
1、针对做过的用户管理系统,请用2分钟简单描述一下项目规模、功能、做的过程、使用的技术
2、在项目中,异常如何处理的?
3、在项目中,是否遇到什么问题?又是如何处理的?
4、针对用户管理系统,数据库表是如何设计的?
5、你认为项目中,最复杂的是什么?
6、针对用户管理系统的web实现,如果在登录时,加一个验证码,如何处理?
7、关于前台的各个输入域验证?如何进行表单验证?
8、针对你做过的校园网站,是如何分析、设计的?各个阶段都做了什么工作?各个阶段所
用时间?针对于视频点播,如果人数较多,如何解决性能问题?
9、说说存储过程?游标?事务?事务的特性?union联合、主键、联合主键、索引?
10、Dml和ddl区别?什么时候使用右连接?
11、什么是封装?使用自己的话说一下,你封装的理解?
12、什么是继承?你对继承的理解?
13、你对多态的理解?对抽象的理解?
14、对于java中的循环语句:for、while、do…while,分别在什么时候使用它们?
15、在网页中,如何显示距离伦敦奥运会的倒计时?
16、在银行系统中,关于金额的数据类型是什么?
17、数据库的性能从何下手?
18、简单的自我介绍?为什么想来东软?对其他企业有了解吗?
19、在实训都培训哪些内容了,简单说明一下?
第四篇:java程序员面试题
1、你怎样理解Struts,又那些配置文件,以及作用? 理解:http://ruixin.iteye.com/blog/899289 配置文件:struts.xml 作用:struts 框架mvc 实现低耦合,便于程序的维护~ 配置文件控制流程的转向 很清晰~ 主要负责具体业务的实现和页面的转向~
2、怎么样来捕获数据库中的异常?
3、如何处理网页中的验证信息,如何友好的进行处理?
4、用javaScript实现java中的监听器功能?
5、你对对日外包的看法?
6、数据库连接方式由哪几种?
Jdbc、连接池、hibernate
7、你清楚哪几种设计模式,谈谈各种设计模式的类结构。
8、谈谈jsp和sevlet的区别,以及它们性能上的区别。
jsp是servlet的一种简化,jsp编译后是“类servlet”。servlet 主要是用来处理业务层;
jsp 则是主要负责 表现层。
servlet完全是java程序代码构成,擅长于流程控制和事务处理,而通过servlet来生成动态网页很不直观; 对于静态的html标签,servlet都必须使用页面输出流逐行输出。Servlet中没有内置对象。Jsp由html代码和jsp标签构成可以方便地编写动态网页,在struts框架中,jsp位于MVC设计模式的视图层,而servlet位于控制层。
总之,使用jsp只需要完成程序员需要输出到客户端的内容,至于jsp中的java脚本如果镶嵌到一个类中,由jsp容器完成,而servlet则是个完整的java类,这个类的service方法用于生成对客户端的响应
9、如何来编写存储过程,如何优化存储过程,以及存储过程和TSQL的区别。
10、提供的培训,CMM-5软件开发流程培训、代码编写规范和业务流程培训、对日语的培训。
1、为什么要选择这个行业,和计算机专业的相比有什么优势?
2、Servlet是什么,以及生命周期?
Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
3、怎么理解事务?
4、怎么理解MVC?
自己做自己的事情,主要强调分层,5、同时插入大量数据,使用何种方法优化?Batch
6、多个有关系得怎么样操作?
7、你认为你还有什么优点在前面没有提到?
8、对加班的看法?
9、与上级意见不一致时怎么样处理?10、11、12、13、14、15、16、17、18、19、20、21、22、23、你如何理解团队精神?
你怎样处理学习新技术和项目开发之间的矛盾? 怎样去学习新技术?
作为一个初级程序员怎么样弥补与有经验程序员之间的差距? 你对索引的理解,索引有几种,什么时候用索引? 对Oracle理解?
怎样优化复杂的查询语句? 你对Jdbc理解?
对Finally块的理解和应用? 游标的理解? ResultSet 重载,重写? 签名
EJB的事务,Hibernate的事务? Struts的标签? 重定向和跳转? A、
a.地址栏不改变跳转——服务器端跳转,服务器之间内部转,相同的request,可传参;
b.执行到跳转语句后无条件立刻跳转——之后的代码不再被执行;
注意:如果使用forward跳转,则一定要在跳转之前释放掉全部的资源;
c.使用forward时,request设置的属性依然能保留在下一个页面(setAttribute);d.通过
e.地址中的”/”代表是:http://localhost:8080/Test B、response.sendRedirect(“地址”):效率低,速度慢
a.地址栏改变跳转——客户端跳转(其中地址可以是任意的)
b.所有代码执行完毕之后再跳转,跳转语句后面的代码还是会执行,除非在其后面加上return(return)需复杂一些。
<% Response.sendRedirect(“aa.jsp”);boolean b = true;
if(b){ Return;} System.out.println(“aaaaaaaaaa”);%>
c.不能保存request属性——地址改变了,客户端跳转,不同的request d.通过对URL地址的重写传递参数:
response.sendRedirect(“responseDemo04.jsp?id=mldn”);
e.地址中的”/”代表是:http://localhost:8080/
下面是两种比较重要的跳转,我还是与上次的一次,把我做的笔记贴出来:24、25、Hibernate的左联结和右连接,缓存,数据加载? 面向对象如何理解?
26、EJB中CMP和BMP,SessionBean的机制?27、28、29、对日外包是否有抵触情绪? 如何减少Servlet的请求? 对设计模式了解多少?作过的项目中用过那些设计模式? 30、31、32、33、34、35、36、37、38、39、40、41、42、43、44、45、怎样看待团队合作,在团队合作中你扮演什么样的角色,遇到技术难题时怎么解决? Exception的层次结构? EJB对数据库的访问机制? Struts中是否有事务处理? Hibernate的其它功能(除了ORM)? 如何提高数据库中的数据查询效率? 作为项目经理如何对组内成员分工? 描述一下你做过项目的流程。
加班到12点,突然有人来问你技术上的难题,你会如何处理? Oracle的冷备份、热备份 Strurs中怎样实现 Hibernate怎样实现ORM Spring 的事务处理机制
Strurs的验证方式,Javascript的验证的方式
一个是服务器端验证,一个是客户端验证
Struts的工作机制 Delete/trancate的区别
trancate与delete都是删除数据,不同的是trancate是将表的所有数据都删除,而delete可以有选择地删除数据; delete删除数据是记录在日志中的,可以通过其将数据恢复,而trancate则是将整个表截断,其操作是不记录在日志里的。46、47、48、作为项目组长,你遇到的最大问题是什么?如何解决?
Ajax/内嵌框架实现局部刷新,有什么差别?
Exception/Error的区别,在什么情况下可以抛出RuntimeException 父类不同
知道异常和错误最本质的区别就是异常能被开发人员处理而错误时系统本来自带的,一般无法处理也不需要我们程序员来处理。
在程序运行时候出错而又不是系统原因差生的,一般是由于程序原因产生,比如程序写的不够严谨、完善
典型的RuntimeException
有
ArithmeticException、ClassCastException、IndexOutOfBoundsException、NullPointerException、UnsupportedOperationException 等.49、50、51、52、53、54、55、56、57、58、59、Orcale 物化视图(MV)
业务处理模块中,是如何处理事务? Sql语句如何优化 数据库右连接
JDBC的连接关闭在哪?
Finally语句块内
错误处理模块是放在哪个层的。接口能否继承接口。
接口可以继承接口..但是要使用extends~而不是用implements 抽象类能否继承实体类。
抽象类是可以继承实体类,但前提是实体类必须有明确的构造函数 答案很明确,可以继承。
项目中查询时怎么样实现的?
作为项目负责人你是管理这个团队的?
在你做项目过程中遇到些什么问题,是怎么样解决的?
Jquery中的几种选择器:
Javascript如何进行数字和字符串之间的转换?
数字类型转换成String类型用 对象=对象.toString()方法,字符串转换成数字类型则是对象=Number(对象);
第五篇:PHP程序员面试题
北京融入网络科技有限公司
PHP工程师面试题
1、请写一个实现中文字串截取无乱码的方法。(超出部分用’…..’替换)。
2、ThinkPHP框架中,下列定义有什么不同?
$userModel = M(“User”);
$userMode l= D(“User”);
3、如果让你模拟登陆微信公众平台并设置微信的开发模式中的URL和Token,你会如何去做?(思路或代码皆可)。
4、谈谈对你对PHP的认识或你擅长的技术。
5、假设有一个博客系统,数据库存储采用mysql,用户数量为1000万,预计文章总数为10亿,每天有至少10万的更新量,每天访问量为5000万,对数据库的读写操作的比例超过10:1,你如何设计该系统,以确保其系统高效,稳定的运行?
提示:可以从数据库设计,系统框架,及网络架构方面进行描述,可以自由发挥。
6、你经常去那些网站?有没有自己的博客或git 开源项目。
/ 1