以下是小编收集整理的软件工程师笔试题集,本文共9篇,仅供参考,希望对大家有所帮助。

篇1:软件工程师笔试题集
软件工程师笔试题集
用友笔试题目NET面试题专栏 (部分)
用友, 笔试, NET, 专栏, 题目
1、 面向对象的语言具有___封装__性、___继承__性、___多态_性,
2、 能用foreach遍历访问的对象需要实现 __ IEnumerable __接口或声明__GetEnumerator __方法的类型。
3、 以下叙述正确的是:
A. 接口中可以有虚方法。 B. 一个类可以实现多个接口。
C. 接口不能被实例化。 D. 接口中可以包含已实现的方法。
4、 简述 private、 protected、 public、 internal 修饰符的访问权限。
Private 私有成员:只有本类内部可以访问
Protected 受保护成员:只有本类和本类的子类可以访问
Public 公有成员:完全公开,没有访问限制
Internal :在同一命名空间下可以访问
5、写出一条Sql语句: 取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。)
select top 10 * from A where id not in (select top 30 id from A)
5、 DataReader与DataSet有什么区别?
(1)、dataset表示一个数据集,是数据在内存中的缓存。 可以包括多个表;
(2)、dataset连接数据库时是非面向连接的。把表全部读到Sql中的缓冲池,并断开于数据库的连接
(3)、datareader 连接数据库时是面向连接的'。读表时,只能向前读取,读完数据后有用户决定是否断开连接。
6、 简述什么是装箱?
把一个值类型的数据转换为引用类型的数据的过程叫装箱。
7、 下列选项中,(c)是引用类型。
a) enum类型 b) struct类型
c) string类型 d) int类型
8、 一个数据库中的一个表中有 year 、salary这两个字段,原表中数据如原表,请用SQL查询出结果显示的数据:
原表中数据:
year salary
—————————————–
1000
2000
3000
4000
结果表中数据:
year salary
——————————————
2000 1000
2001 3000
2002 6000
2003 10000
写出SQL语句如下:
create table test([year] int ,salary int)
insert test(year,salary) values(2000,1000)
insert test(year,salary) values(2001,2000)
insert test(year,salary) values(2002,3000)
insert test(year,salary) values(2003,4000)
select t1.year, (select sum(salary) from test as t2 where t2.year
其他求职笔试题推荐:
华为笔试系统程序题 中国银行计算机方向笔试题目 广东发展银行笔试题目
篇2:软件工程师笔试题
考察虚继承内存体系
class A
{
public:
A { cout<<“Construct A”<
~A { cout<<“Destruct A”<
void speak { cout<<“A is speaking!”<
};
class B:public virtual A
{
public:
B { cout<<“Construct B”<
~B { cout<<“Destruct B”<
};
class C:public virtual A
{
public:
C { cout<<“Constuct C”<
~C { cout<<“Destruct C”<
};
class D:public B, public C
{
public:
D{ cout<<“Constsruct D”<
~D{ cout<<“Destruct D”<
};
int main
{
D *p = new D;
p->speak;
delete p;
}
输出:
Construct A
Construct B
Constuct C
Constsruct D
A is speaking!
Destruct D
Destruct C
Destruct B
Destruct A
篇3:软件工程师笔试题
考察非虚析构函数
1、class Parent
{
public:
Parent{cout<<“Parent construct”<
~Parent{ cout<<“Parent destruct ”<
};
class Child : public Parent
{
public:
Child { cout<<“Child construct ”<
~Child {cout<<“child destruct”<
};
int main
{
Parent *p;
Child *c = new Child;
p = c;
delete p; 因为析构函数是非virtual的,故析构的时候按照指针的类型进行析构
}
输出:
Parent construct
Child Construct
Parent destruct
2、 考察初始化列表的写法
class A
{
public:
A(int x, int y, int z):a=x,b=y,c=z (1)
A(int x, int y, int z):a(x),b(y),c(z) (2)
private:
int a;
int b;
int c;
};
int main
{
A a(1,2,3);
}
篇4:软件工程师笔试题
1、考察拷贝构造函数和赋值的区别。
class A
{
public:
A { cout<<“Construct A by default”<
A(const A& a) { cout<<“consttuct A by copy”<
A& operator =(const A& a) { cout<<“cosnt A by operator =”<
~A { cout<<“Destruct A”<
};
int main
{
A a;
A b=a; //调用拷贝构造函数
A c(a); //调用拷贝构造
A d;
d=a; //赋值
}
输出:
Construct A by default //构造对象a
consttuct A by copy //拷贝构造b
consttuct A by copy //拷贝构造c
Construct A by default //构造a
cosnt A by operator = //赋值d=a
Destruct A
Destruct A
Destruct A
Destruct A
2、 考察函数指针
void func(char* a)
{
cout<
}
int main
{
void (*fp)(char*); //填空处
fp = func; //函数名func相当于函数的地址,将其赋给函数指针fp
char* s=“helloc”;
fp(s);
}
篇5:软件工程师笔试题
软件工程师笔试题
1.什么是软件需求,在项目中你将如何获取需求并正确传递该需求,
2.在oracle中,表student只有一个字段,名为stuname,请使用SQL语句将表中的重复记录筛选出来。
3.某天领导给你一项工作,规定在3天内完成。但是当你在执行该工作前,发现出现如下情况:
A、发现不加班就无法完成工作;
B、发现完成该工作所需要的技能,你目前还不具备,
4.请使用JAVA代码,给一个对象“继承”的案例。
5.你的'角色是一个软件实施工程师,负责将已经开发好的系统部署上线并向客户提供使用培训。某天一名重要客户向你强烈抱怨软件的质量出了问题,作为在现场的唯一公司人员,你会做哪几件事?
篇6:VC软件工程师笔试题
VC软件工程师笔试题
VC笔试题:
1、如何打开注册表?用什么命令注册ocx控件以及用什么命令查看IP设置情况?
2、static在C++中的作用
3、数据库表格stu中存在字段ID表示编号,写SQL语句查询编号前10的记录
4、数据库在写存储过程通常使用set nocount on来实现什么功能?
5、UpdateData(TRUE)和UpdateData(FALSE)的区别
6、解释MFC的数据类型COLORREF
7、采用哪些函数可启动其它应用程序
8、解释GetClientRect和GetWindowRect()的区别
9、解释MFC中SendMessage与PostMessage的'区别
10、名词解释
MFC SDK DDX DLL TCP
11、解释下面VC调试宏的意义
TRACE
ASSERT
VERIFY
12、编一函数判断点CPoint ptx 是否在点CPoint pta 和 ptb的连线上
13、请说明数组CArray
14、编程实现将8进制字符串转换为2进制字符串的函数
15、编程实现整数的阶乘
16、解释语句virtual void X()=0;的作用
17、解释C++中struct和class的区别
答案:
1 regedit regsvr32 ipconfig
2 用来定义静态的变量或函数
3 select ID top 10 from stu
4 当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数),当 SET NOCOUNT 为 OFF 时,返回计数
5 UpdateData(TRUE)刷新控件的值到对应的变量 UpdateData(FALSE) 拷贝变量值到控件显示
6 COLORREF类型用来描绘一个RGB颜色COLORREF类型用来描绘一个RGB颜色。其定义如下: typedef DWORD COLORREF; typedef DWORD *LPCOLORREF; COLORREF类型变量值描绘一个颜色时对应于下面16进制的格式: 0x00bbggrr 可以用这样一个结构体来描述。 RGB_value struct { byte unused ; byte blue ; byte green ; byte red; };
7 WinExec CreateProcess ShellExecute
8 GetWindowRect()取的是整个窗口的矩形;
GetClientRect()取的仅是客户区的矩形,也就是说不包括标题栏,外框等;
9 发送消息后返回的时间.前者直到窗口执行完消息后才返回,后者向线程发送
消息后没有等消息执行完就立即返回;返回值的不同.前者返回的是消息的执行结果,因消息的不同而不同,后者返回值表示该函数执行的成功与否
10 微软基础类库 软件开发工具包 设备开发包 动态链接库 传输控制协议
11 TRACE宏对于VC下程序调试来说,有着类似printf的功能,Assert - 断言 就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式
VERIFY一个判断的宏
12 BOOL OnLine(CPoint pt, CPoint start, CPoint end)
{
long MAXDIF = 5;
//if(long(m_edgeWidth/2+0.5)>MAXDIF)
// MAXDIF = long(m_edgeWidth/2 + 0.5);
//else
// MAXDIF = 5;
//如果点击不在区域中,则返回FALSE
CRect rc(start,end);
rc.NormalizeRect();
rc.InflateRect(MAXDIF,MAXDIF);
if(!PtInRect(rc,pt))
return FALSE;
//计算距离
int x=pt.x,y=pt.y;
int x1=start.x,y1=start.y;
int x2=end.x,y2=end.y;
//水平,垂直情况
if((x1 == x2)&&(abs(x-x1)<=MAXDIF))
return TRUE;
if((y1 == y2)&&(abs(y-y1)<=MAXDIF))
return TRUE;
int A = y1-y2;
int B = x2-x1;
int C = -A*x1-B*y1;
double d;
double sq = sqrt((double)(A*A+B*B));
if(sq==0)
{
return FALSE;
}
else
d = fabs((double)(A*x+B*y+C)/sq);
//误差容忍范围
if(d<=MAXDIF)
return TRUE;
else
return FALSE;
return TRUE;
}
其他笔试题目推荐:
广东发展银行笔试题目 南京顺丰笔试题目 申银万国校园招聘笔试题目
篇7:软件测试工程师笔试题
软件测试工程师(SoftwareTesting Engineer)指理解产品的功能要求,并对其进行测试,检查软件有没有错误,测试软件是否具有稳定,写出相应的测试规范和测试用例的专门工作人员。
请根据您以往的学习和工作经历,结合您的个人经验回答以下问题。您可以尽可能详细和完整的表达出自己的思想,如果书写空间不够,您可以将答案写在题目所在页的背面。如果需要稿纸请同接待人员联系。
01.为什么要在一个团队中开展软件测试工作?
02.您是否了解以往所工作的企业的软件测试过程?如果了解,请试述在这个过程中都有哪些工作要做?分别由哪些不同的角色来完成这些工作?
03.您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?(对于软件测试部分,可以简述)
04.您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?
05.您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
06.您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描述测试用例评审的过程和评审的内容。
07.您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。
08.您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
09.您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。
10.您是否熟悉一些主流的软件工程方法论和思想,如RUP、CMM、CMMI、XP、PSP、TSP。如果熟悉,您是否可以谈一下对这些方法论和思想的认识?
11.您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
12.在即将完成这次笔试前,您是否愿意谈一些自己在以往的学习和工作中获得的工作经验和心得体会?(可以包括软件测试、过程改进、软件开发或者与此无关的其他方面)
篇8:嵌入式软件工程师笔试题
嵌入式软件工程师笔试题
1、将一个字符串逆序
2、将一个链表逆序
3、计算一个字节里(byte)里面有多少bit被置1
4、搜索给定的字节(byte)
5、在一个字符串中找到可能的最长的子字符串
6、字符串转换为整数
7、整数转换为字符串
/*
* 题目:将一个字符串逆序
* 完成时间:.9.30深圳极讯网吧
* 版权归刘志强所有
* 描述:写本程序的目的是希望练一下手,希望下午去面试能成功,不希望国庆节之后再去找工作拉!
*/
#include
using namespace std;
//#define NULL ((void *)0)
char * mystrrev(char * const dest,const char * const src)
{
if (dest==NULL && src==NULL)
return NULL;
char *addr = dest;
int val_len = strlen(src);
dest[val_len] = ' ';
int i;
for (i=0; i
{
*(dest+i) = *(src+val_len-i-1);
}
return addr;
}
main
{
char *str=“asdfa”;
char *str1=NULL;
str1 = (char *)malloc(20);
if (str1 == NULL)
cout<<“malloc failed”;
cout<
free(str1);
str1=NULL;//杜绝野指针
}
p=head;
q=p->next;
while(q!=NULL)
{
temp=q->next;
q->next=p;
p=q;
q=temp;
}
这样增加个辅助的指针就行乐,
ok 通过编译的代码:
#include
#include
#include
typedef struct List{
int data;
struct List *next;
}List;
List *list_create(void)
{
struct List *head,*tail,*p;
int e;
head=(List *)malloc(sizeof(List));
tail=head;
printf(“nList Create,input numbers(end of 0):”);
scanf(“%d”,&e);
while(e){
p=(List *)malloc(sizeof(List));
p->data=e;
tail->next=p;
tail=p;
scanf(“%d”,&e);}
tail->next=NULL;
return head;
}
List *list_reverse(List *head)
{
List *p,*q,*r;
p=head;
q=p->next;
while(q!=NULL)
{
r=q->next;
q->next=p;
p=q;
q=r;
}
head->next=NULL;
head=p;
return head;
}
void main(void)
{
struct List *head,*p;
int d;
head=list_create();
printf(“n”);
for(p=head->next;p;p=p->next)
printf(“--%d--”,p->data);
head=list_reverse(head);
printf(“n”);
for(p=head;p->next;p=p->next)
printf(“--%d--”,p->data);
}
编写函数数N个BYTE的数据中有多少位是1。
解:此题按步骤解:先定位到某一个BYTE数据;再计算其中有多少个1。叠加得解。
#incluede
#define N 10
//定义BYTE类型别名
#ifndef BYTE
typedef unsigned char BYTE;
#endif
int comb(BYTE b[],int n)
{
int count=0;
int bi,bj;
BYTE cc=1,tt;
//历遍到第bi个BYTE数据
for(bi=0;bi
{
//计算该BYTE的8个bit中有多少个1
tt=b[bi];
for(bj=0;bj<8;bj++)
{
//与1相与或模2结果是否是1?测试当前bit是否为1
//if(tt%2==1)
if((tt&cc)==1)
{
count++;
}
//右移一位或除以2,效果相同
//tt=tt>>1;
tt=tt/2;
}
}
return count;
}
//测试
int main()
{
BYTE b[10]={3,3,3,11,1,1,1,1,1,1};
cout<
return 0;
}
1,
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的'。
char * search(char *cpSource, char ch)
{
char *cpTemp=NULL, *cpDest=NULL;
int iTemp, iCount=0;
while(*cpSource)
{
if(*cpSource == ch)
{
iTemp = 0;
cpTemp = cpSource;
while(*cpSource == ch)
++iTemp, ++cpSource;
if(iTemp > iCount)
iCount = iTemp, cpDest = cpTemp;
if(!*cpSource)
break;
}
++cpSource;
}
return cpDest;
}
#include
#include
//
// 自定义函数MyAtoI
// 实现整数字符串转换为证书输出
// 程序不检查字符串的正确性,请用户在调用前检查
//
int MyAtoI(char str[])
{
int i;
int weight = 1; // 权重
int rtn = 0; // 用作返回
for(i = strlen(str) - 1; i >= 0; i--)
{
rtn += (str[i] - '0')* weight; //
weight *= 10; // 增重
}
return rtn;
}
void main()
{
char str[32];
printf(“Input a string :”);
gets(str);
printf(“%dn”, MyAtoI(str));
}
#include
#include
void reverse(char s[])
{ //字符串反转
int c, i=0, j;
for(j=strlen(s)-1;i
{ c=s[i];
s[i]=s[j];
s[j]=c;
i++;
}
}
void IntegerToString(char s[],int n)
{ int i=0,sign;
if((sign=n)<0)//如果是负数,先转成正数
n=-n;
do //从个位开始变成字符,直到最高位,最后应该反转
{ s[i++]=n%10+'0';
}while((n=n/10)>0);
//如果是负数,补上负号
if(sign<0)
s[i++]='-';
s[i]=' ';//字符串结束
reverse(s);
}
void main()
{ int m;
char c[100];
printf(“请输入整数m: ”);
scanf(“%d”,&m);
IntegerToString(c,m);
printf(“integer = %d string = %sn”, m, c);
}
嵌入式软件工程师应知道的0x10个基本问题(经典收藏版)
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。
从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字符的ASCII值。这些问题着重考察你的系统调用和内存分配策略方面的能力吗?这标志着出题者也许花时间在微机上而不是在嵌入式系统上。如果上述任何问题的答案是“是”的话,那么我知道我得认真考虑我是否应该去做这份工作。
从面试者的角度来讲,一个测试也许能从多方面揭示应试者的素质:最基本的,你能了解应试者C语言的水平。不管怎么样,看一下这人如何回答他不会的问题也是满有趣。应试者是以好的直觉做出明智的选择,还是只是瞎蒙呢?当应试者在某个问题上卡住时是找借口呢,还是表现出对问题的真正的好奇心,把这看成学习的机会呢?我发现这些信息与他们的测试成绩一样有用。
有了这些想法,我决定出一些真正针对嵌入式系统的考题,希望这些令人头痛的考题能给正在找工作的人一点帮助。这些问题都是我这些年实际碰到的。其中有些题很难,但它们应该都能给你一点启迪。
这个测试适于不同水平的应试者,大多数初级水平的应试者的成绩会很差,经验丰富的程序员应该有很好的成绩。为了让你能自己决定某些问题的偏好,每个问题没有分配分数,如果选择这些考题为你所用,请自行按你的意思分配分数。
预处理器(Preprocessor)
篇9:软件测试工程师笔试题
01.为什么要在一个团队中开展软件测试工作?
02.您是否了解以往所工作的企业的软件测试过程?如果了解,请试述在这个过程中都有哪些工作要做?分别由哪些不同的角色来完成这些工作?
03.您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?(对于软件测试部分,可以简述)
04.您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?
05.您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
06.您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描述测试用例评审的过程和评审的内容。
07.您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。
08.您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
09.您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。
10.您是否熟悉一些主流的软件工程方法论和思想,如RUP、CMM、CMMI、XP、PSP、TSP。如果熟悉,您是否可以谈一下对这些方法论和思想的认识?
11.您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
12.在即将完成这次笔试前,您是否愿意谈一些自己在以往的学习和工作中获得的工作经验和心得体会?(可以包括软件测试、过程改进、软件开发或者与此无关的其他方面)
文档为doc格式