C软件工程师入职笔试题及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、简答题(共50分)

1.你常用的主机、OS、编译工具和调试工具是什么。如何查看系统进程信息,

(10分)你常用的进程管理命令有哪些?(问题尽量基于你常用的Unix环境作答)。

答:我常用的是Sun主机,操作系统一般是Solaris8或Solaris10。编译工具包括:g++,gcc,cc等。调试工具包括:gdb。(该项了解应聘者对编程环境的偏好,无标准答案。)

常用的进程管理命令是:

查看:prstat -a 或top

管理:pldd pid 显示链接到每个进程的动态链接库

pstack pid 显示十六进制与符号堆跟踪信息

fuser files

pwdx pid 查看进程运行目录

ptree pid 查看进程树信息

2.C中的malloc和C++中的new有什么区别。(10分)

答:malloc和new有以下不同:

(1)new、delete 是操作符,可以重载,只能在C++中使用。

(2)malloc、free是函数,可以覆盖,C、C++中都可以使用。

(3)new 可以调用对象的构造函数,对应的delete调用相应的析构函数。(4)malloc仅仅分配内存,free仅仅回收内存,并不执行构造和析构函数。(5)new、delete返回的是某种数据类型指针,malloc、free返回的是void指针。注意:malloc申请的内存空间要用free释放,而new申请的内存空间要用delete 释放,不要混用。因为两者实现的机理不同。

3、简述结构化的程序设计、面向对象的程序设计的基本思想。(10分)

答:结构化的程序设计将数据和对数据的操作分离,程序是由一个个的函数组成的,面向对象的程序设计将数据和操作封装在一起,程序是由一个个对象组成的,对象之间通过接口进行通信,它能够较好地支持程序代码的复用。

4、一个oracle实例是由SGA和哪几个后台进程组成的?SGA有哪些组成部分及简述它们的作用?PGA是什么??(10分)

答:后台进程:系统监控和进程监控进程(SMON和PMON)、数据库写进程(DBWR)、日志写进程(LGWR)、归档进程(ARCH)、检查点(CKPT);

其它可选进程:调度进程(Dnnn)、恢复进程(RECO)、快照进程(SNPn)、锁进程(LCKn)、并行查询进程(Pnnn)。

数据写进程(dbwr):负责将更改的数据从数据库缓冲区高速缓存写入数据文件;日志写进程(lgwr):将重做日志缓冲区中的更改写入在线重做日志文件;

系统监控(smon) :检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复;

进程监控(pmon):负责在一个Oracle 进程失败时清理资源;

检查点进程(chpt):负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息;

归档进程(arcn) :在每次日志切换时把已满的日志组进行备份或归档;

作业调度器(cjq):负责将调度与执行系统中已定义好的job,完成一些预定义的工作;

恢复进程(reco):保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback;

SGA包含:db_cache、shared_pool、large_pool、java_pool

db_cache:数据库缓存(Block Buffer)占据Oracle数据库SGA(系统共享内存区)

的主要部分,Oracle数据库通过使用LRU算法,将最近访问的数据块存放到缓存中,从而优化对磁盘数据的访问;

shared_pool:共享池中保存数据字典高速缓冲和完全解析或编译的的PL/SQL 块和SQL 语句及控制结构;

large_pool:使用MTS配置时,因为要在SGA中分配UGA来保持用户的会话,就是用Large_pool来保持这个会话内存;使用RMAN做备份的时候,要使用Large_pool这个内存结构来做磁盘I/O缓存器;

java_pool:为java procedure预备的内存区域,如果没有使用java proc,java_pool不是必须的。PGA:程序全局区,是保存有特定服务进程的数据和控制信息的内存结构,这个内存结构是非共享的,只有服务进程本身才能够访问它自己的PGA 区。每个服务进程都有它自己的PGA区,各个服务进程PGA区的总和即库实例的PGA区的大小。一般情况下,PGA区都由私有SQL工作区和会话内存区组成。

5、你在项目中用到了xml技术的哪些方面?如何实现的? (10分)

答:用到了数据存贮,信息配置两方面。在做数据交换平台时,将不能数据源的数据组装成XML文件,然后将XML文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同XML文件中还原相关信息进行处理。在做软件配置时,利用XML可以很方便的进行,软件的各种配置参数都存贮在XML文件中。

二、按要求补充函数源代码(20分)

1、完成顺序查找函数f_seq( )。其过程是:从表头开始,根据给定的模式,逐项与表中元素比较。如果找到所需元素,则查找成功,并打印出它在表中的顺序

号。如果查找整个表仍未找到所需对象,则查找失败。(10分)#include

void f_seq(char *list[],char *object,int len)

//list 指针数组,指向字符串

//object 模式串

//len 表的长度

{

char **p;

int strcmp(char *s,char *t);

p=list;

while (_____①______) //p

if (strcmp(*p,object)==0)

break;

else ______②_______; //p++

if (p

printf( “Success! **% d/n”,p-list);

else printf(“Unsuccess!/n”);

}

int strcmp(char *s,char *t)

{

for (;*s==*t; s++,t++)

相关文档
最新文档