2023年6月20日发(作者:)
程序员面试技术问题复习大纲
Final approval draft on November 22, 2020 一、选择题(每题2分,共30分)
1、在C语言中,若函数调用时实参是数组名,则传递给对应形参的是( A )。
A)数组空间的首地址 B)数组的第一个元素值
C)数组中元素的个数 D)数组中所有的元素
2、堆栈操作中( D )保持不变。
A)堆栈的顶 B)堆栈中的数据 C)堆栈指针
D)堆栈的底
3、数据结构主要研究数据的( D )。
A)逻辑结构
B)存储结构
C)逻辑结构和存储结构
D)逻辑结构和存储结构及其运算的实现
4、用二分法查找一个长度为10的、排好序的线性表,查找不成功时,最多需要比较
( C )次
A)5 B)2 C)4
D)1
5、学生关系模式为S(Sno,Sname,SD,Sage),其中:Sno表示学生学号,Sname表示学生姓名,SD表示学生所在系,Sage表示学生年龄。试将下面的SQL语句空缺部分补充完整,使其可以查询计算机系学生的学号、姓名和年龄。
SELECT Sno, Sname, Sage
FROM S
WHERE( B )
A)SD=计算机
B)SD=‘计算机’
C)‘SD’=计算机
D)‘SD=计算机’
6、如果一个二叉树的前序序列是A、B、C,后序序列是C、B、A,则该二叉树节点的中序序列是( D )
A)必为A、B、C B)必为A、C、B
C)别为B、C、A D)不能确定
7、关于模块设计的原则,以下叙述中正确的是( B )。
A)模块的内聚性高,模块之间的耦合度高
B)模块的内聚性高,模块之间的耦合度低
C)模块的内聚性低,模块之间的耦合度高
D)模块的内聚性低,模块之间的耦合度低
8、TCP/IP是一个协议簇,它的体系结构分为四层:应用层、网际层、网络接口层和
( B )。
A)会话层 B)传输层 C)网络层
D)表示层 9、以下哪一个不是栈的基本运算( B )
A)删除栈顶元素 B)删除栈底元素
C)判断栈是否为空 D)将栈置为空
10、深的为5的二叉树,至多有( C )个节点。
A)5 B)10 C)31
D)32
11、软件工程中,对于程序的测试方法有两类,分别是黑盒测试和白盒测试。那么,在软件开发过程中的功能测试和单元测试分别是属于他们中( A )
A)黑盒测试,白盒测试 B)都是黑盒测试
C)都是白盒测试 D)白盒测试,黑盒测试
12、下面当中关于软件的开发品质描述不正确的是( A )
A)软件的开发规模越大,那预计生产的bug数就越高
B)要想摘除软件的bug,只能依靠各种测试和用户现场使用
C)在软件开发的过程中,我们应该尽可能的在开发阶段摘除尽可能多的bug
D)软件的品质和开发进度一样同等重要
13、一般地,可以将软件开发的生命周期划分为软件项目计划、( C )、软件设计、编码、测试和运行/维护6个阶段。
A)可行性分析
B)初始调查
C)需求分析与定义
D)问题分析
14、开源被非赢利软件组织(美国的Open Source Initiative协会)注册为认证标记,并对其进行了正式的定义,用于描述那些源码可以被公众使用的软件,并且此软件的使用,修改和发行也不受许可证的限制。下面( B )是开源软件
A)unix B)linux C)windows office D)金山词霸
15、计算机必须要把高级编程语言翻译成机器语言,计算机才能执行高级语言编写的程序。这个翻译的方式分为两种,一个是编译,一个是解释,那么下面( BD )不是解释性语言(选择两项)
A)javascript B)java C)perl D)c
二、简答题(每题10分,共60分)
1、简述Overload和Override的区别
Overload:方法重载,同一类中,方法名相同,形参列表不同
Override:方法覆盖,子类和父类之间,方法名、形参、返回类型形同,子类方法访问权限不小于父类,子类不能抛新异常。
2、Java的接口和C++的虚类的相同和不同处
他们都可以只有方法的定义,而不实现方法。
Java的接口:java中接口的出现,主要是为了弥补的java单继承的缺陷。接口中的方法只能是抽象方法,变量只能是静态常量,接口不是类是对类的要求,是一组功能的定义,是类在广度上的扩展。
C++中的虚类:必须有至少一个纯虚函数,是一个类,更类似于java中的抽象类,是类在深度上的扩展。
3、JAVA SERVLET API中forward() 与redirect()的区别 Forward:转发,直接在服务器端转发,不经过客户端浏览器,两个页面共享同一个request和response。
Redirect:重定向,经过客户端浏览器发送第二次请求,两个页面的request和response不是同一个,通常用于服务器迁移
4、说说Servlet和CGI的区别
Servlet:处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁。
CGI:对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
5、说说数据库连接池的工作机制是什么
在服务器启动的时候,预先产生一批数据库连接,存放到连接池中,在需要的时候从中取一个用,使用完后再放回去。如果空闲连接不够,会自动增加连接;反之,如果空闲连接太多,会自动关闭部分连接。这样可以提高程序的运行效率,减少服务器开销。
6、写出下列常用IT缩写的英文全称及中文翻译(每个2分)
①DAO:Data Access Object,数据访问对象
②ODBC:Open DataBase Connectivity,开放数据库连接
③UML:Unified Modeling Language,统一建模语言
④HTTP:HyperText Transfer Protocol,超文本传输协议
⑤GUI:Graphical User Interface,图形用户界面
三、编程题(10分)
1、用你所熟悉的编程语言写一段冒泡排序的程序
自己找,C语言书上肯定有
main()
{
int i,j,temp;
int a[10];
for(i=0;i<10;i++)
scanf ("%d,",&a[i]);
for(j=0;j<=9;j++)
{ for (i=0;i<10-j;i++)
if (a[i]>a[i+1])
{ temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;}
}
for(i=1;i<11;i++)
printf("%5d,",a[i] );
printf("n");
}
2023年6月20日发(作者:)
程序员面试技术问题复习大纲
Final approval draft on November 22, 2020 一、选择题(每题2分,共30分)
1、在C语言中,若函数调用时实参是数组名,则传递给对应形参的是( A )。
A)数组空间的首地址 B)数组的第一个元素值
C)数组中元素的个数 D)数组中所有的元素
2、堆栈操作中( D )保持不变。
A)堆栈的顶 B)堆栈中的数据 C)堆栈指针
D)堆栈的底
3、数据结构主要研究数据的( D )。
A)逻辑结构
B)存储结构
C)逻辑结构和存储结构
D)逻辑结构和存储结构及其运算的实现
4、用二分法查找一个长度为10的、排好序的线性表,查找不成功时,最多需要比较
( C )次
A)5 B)2 C)4
D)1
5、学生关系模式为S(Sno,Sname,SD,Sage),其中:Sno表示学生学号,Sname表示学生姓名,SD表示学生所在系,Sage表示学生年龄。试将下面的SQL语句空缺部分补充完整,使其可以查询计算机系学生的学号、姓名和年龄。
SELECT Sno, Sname, Sage
FROM S
WHERE( B )
A)SD=计算机
B)SD=‘计算机’
C)‘SD’=计算机
D)‘SD=计算机’
6、如果一个二叉树的前序序列是A、B、C,后序序列是C、B、A,则该二叉树节点的中序序列是( D )
A)必为A、B、C B)必为A、C、B
C)别为B、C、A D)不能确定
7、关于模块设计的原则,以下叙述中正确的是( B )。
A)模块的内聚性高,模块之间的耦合度高
B)模块的内聚性高,模块之间的耦合度低
C)模块的内聚性低,模块之间的耦合度高
D)模块的内聚性低,模块之间的耦合度低
8、TCP/IP是一个协议簇,它的体系结构分为四层:应用层、网际层、网络接口层和
( B )。
A)会话层 B)传输层 C)网络层
D)表示层 9、以下哪一个不是栈的基本运算( B )
A)删除栈顶元素 B)删除栈底元素
C)判断栈是否为空 D)将栈置为空
10、深的为5的二叉树,至多有( C )个节点。
A)5 B)10 C)31
D)32
11、软件工程中,对于程序的测试方法有两类,分别是黑盒测试和白盒测试。那么,在软件开发过程中的功能测试和单元测试分别是属于他们中( A )
A)黑盒测试,白盒测试 B)都是黑盒测试
C)都是白盒测试 D)白盒测试,黑盒测试
12、下面当中关于软件的开发品质描述不正确的是( A )
A)软件的开发规模越大,那预计生产的bug数就越高
B)要想摘除软件的bug,只能依靠各种测试和用户现场使用
C)在软件开发的过程中,我们应该尽可能的在开发阶段摘除尽可能多的bug
D)软件的品质和开发进度一样同等重要
13、一般地,可以将软件开发的生命周期划分为软件项目计划、( C )、软件设计、编码、测试和运行/维护6个阶段。
A)可行性分析
B)初始调查
C)需求分析与定义
D)问题分析
14、开源被非赢利软件组织(美国的Open Source Initiative协会)注册为认证标记,并对其进行了正式的定义,用于描述那些源码可以被公众使用的软件,并且此软件的使用,修改和发行也不受许可证的限制。下面( B )是开源软件
A)unix B)linux C)windows office D)金山词霸
15、计算机必须要把高级编程语言翻译成机器语言,计算机才能执行高级语言编写的程序。这个翻译的方式分为两种,一个是编译,一个是解释,那么下面( BD )不是解释性语言(选择两项)
A)javascript B)java C)perl D)c
二、简答题(每题10分,共60分)
1、简述Overload和Override的区别
Overload:方法重载,同一类中,方法名相同,形参列表不同
Override:方法覆盖,子类和父类之间,方法名、形参、返回类型形同,子类方法访问权限不小于父类,子类不能抛新异常。
2、Java的接口和C++的虚类的相同和不同处
他们都可以只有方法的定义,而不实现方法。
Java的接口:java中接口的出现,主要是为了弥补的java单继承的缺陷。接口中的方法只能是抽象方法,变量只能是静态常量,接口不是类是对类的要求,是一组功能的定义,是类在广度上的扩展。
C++中的虚类:必须有至少一个纯虚函数,是一个类,更类似于java中的抽象类,是类在深度上的扩展。
3、JAVA SERVLET API中forward() 与redirect()的区别 Forward:转发,直接在服务器端转发,不经过客户端浏览器,两个页面共享同一个request和response。
Redirect:重定向,经过客户端浏览器发送第二次请求,两个页面的request和response不是同一个,通常用于服务器迁移
4、说说Servlet和CGI的区别
Servlet:处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁。
CGI:对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
5、说说数据库连接池的工作机制是什么
在服务器启动的时候,预先产生一批数据库连接,存放到连接池中,在需要的时候从中取一个用,使用完后再放回去。如果空闲连接不够,会自动增加连接;反之,如果空闲连接太多,会自动关闭部分连接。这样可以提高程序的运行效率,减少服务器开销。
6、写出下列常用IT缩写的英文全称及中文翻译(每个2分)
①DAO:Data Access Object,数据访问对象
②ODBC:Open DataBase Connectivity,开放数据库连接
③UML:Unified Modeling Language,统一建模语言
④HTTP:HyperText Transfer Protocol,超文本传输协议
⑤GUI:Graphical User Interface,图形用户界面
三、编程题(10分)
1、用你所熟悉的编程语言写一段冒泡排序的程序
自己找,C语言书上肯定有
main()
{
int i,j,temp;
int a[10];
for(i=0;i<10;i++)
scanf ("%d,",&a[i]);
for(j=0;j<=9;j++)
{ for (i=0;i<10-j;i++)
if (a[i]>a[i+1])
{ temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;}
}
for(i=1;i<11;i++)
printf("%5d,",a[i] );
printf("n");
}
发布评论