软件工程师面试题 1

一、英语题:

1)、Windows provides a user-friendly graphical(1) including pop-up menus,csrollbars,dialogue boxes,icons and etc.

A.display B.surface C.interface D.help

2)、Bitmap images use a grid of small squars known as (2) to represent images.

A.pixels B.points C.elements D.dots

3) 、With(3)you can communicate in real time with people all around the world.

A.E-Mail B.WWW C.FTP D.webchar

4) 、Office(4)is the application of the computer and communications technology to improve the productivity of office workers.

A.Tool B.Automation C.Device D.FAX

5) 、(5)means the conducting of business communication and transction over network and through computers.

A.E-Mail B.E-Gevemment C.E-text D.E-Commerce

6) 、The line of computing jobs waiting to be run on a computer system might be a (6).The jobs are serviced in the order of their arrival,that is,the first in is the first out.

A queue B stack C array D record

7)、 The (7) is a collection of modules serving as interface between hardware and software to provide a software platform.

A computer B processor C application D operating system

8)、 C++ fully supports (8)programming.

A visual B object-oriented C logic D natural language

9)、The Internet is an open system,and most information is available to everyone. It is very important to add (9)to existing system for protecting the secret information.

A Web pages B modem C security D network

10)、 A (10)system placed between the company network and the outside world may limit outside access to the internal network

A firewall B modem C gateway D key

二、程序流程图:

1)、阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。

【说明】求连接函数f(x)的根(方程f(x)=0的解)的最简单方法是二分法。为此,首先需要在若干点上检查函数的符号,如果发现f(a)与f(b)符号相反(a

三、基础题

1)、头文件中的 ifndef/define/endif 干什么用?(3分)

2)、写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个(3分)

3)、1,5,5,5,加减乘除,怎么出24点?(5分)

4)、以下为Windows NT下的32位C++程序,请计算sizeof的值(6分)

void Func ( char str[100] )

{

sizeof( str ) = (1);

}

void *p = malloc( 100 );

sizeof ( p ) = (2);

5)、请写出下列代码的输出内容 (8分)

#include

int main(void)

{

int a,b,c,d;

a=20;

b=a++;

c=++a;

d=10*a++;

printf("a, b,c,d:%d,%d,%d,%d",a, b,c,d);

return 0;

}

6)、分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var)(10分)

四、编程题(10分)

1)编写strcpy函数(10分)

已知strcpy函数的原型是char *strcpy(char *strDest, const char *strSrc); 其中strDest是目的字符串,strSrc是源字符串。

Ⅰ:不调用C++/C的字符串库函数,请编写函数 strcpy

char *strcpy(char *strDest, const char *strSrc)

Ⅱ、strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?

2)单片机模拟开关灯编程(用C语言或者汇编编写)(10分)

㈠、要求:如图下图所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片

机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。

㈡、电路原理图:(接口的定义:AT89X51.H)

㈢、系统板上硬件连接:

①把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块” 区域中的L1端口上;

②把“单片机系统”区域中的P3.0端口用导线连接到“四路拨动开关”区域中的K1端口上;

㈣、程序设计内容:

①开关状态的检测过程

单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。单片机可以采用JB BIT,REL或者是JNB BIT,REL指令来完成对开关状态的检测即可。

②输出控制

如图3所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。

㈤、程序流程图:

Ⅰ、按以上要求编写程序(用C语言或者汇编语言编写):

3)用汇编语言编写程序(10分):

Ⅰ、写一个程序完成功能:读键盘,并把所按键盘显示出来,在检测到按下SHIFT键后,就结束运行。要求:调用键盘I/O程序的2号功能取得变换键状态字节,进而判断是否按下了SHIFT键。在调用0号功能读键盘之前,先调用1号功能判断键盘是否有键可读,否则针导致不能及时检测到用户按下的SHIFT。

请写汇编语言代码:

五、逻辑推理题(20分)

1)、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒,

小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每 次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会 熄灭。问:小明一家如何过桥?(10分)

2)、如果你有无穷多的水,一个3夸脱的和一个5夸脱的提桶,你如何准确称出 4夸脱的水?(10分)

答案:

仅供参考

一、英语题

(1)C, (2)A, (3)D, (4)A, ( 5)A,

(6)A, (7)D, (8)B, (9)C, (10)A.

二、程序流程图

(1) (a+b)/2

(2) f((a+b)/2)或f(x)

(3) fabs(y)

(4) b

(5) a

三、基础题

1) 防止该头文件被重复引用

2) #define MIN(A,B) ((A)

3) (5-(1/5))*5

4) (1) sizeof(str) = 4

(2) sizeof(p) = 4

5) a=23

b=20

c=22

d=220

6) BOOL型变量:if(!var)

int型变量: if(var==0)

float型变量:

const float EPSINON = 0.00001;

if ((x >= - EPSINON) && (x

指针变量: if(var==NULL)

剖析:

考查对0值判断的“内功”,BOOL型变量的0判断完全可以写成if(var==0),而int型变量也可以写成if(!var),指针变量的判断也可以写成if(!var),上述写法虽然程序都能正确运行,但是未能清晰地表达程序的意思。

一般的,如果想让if判断一个变量的“真”、“假”,应直接使用if(var)、if(!var),表明其为“逻辑”判断;如果用if判断一个数值型变量(short、int、long等),应该用if(var==0),表明是与0进行“数值”上的比较;而判断指针则适宜用if(var==NULL),这是一种很好的编程习惯。

浮点型变量并不精确,所以不可将float变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“

四、编程题

1):不调用C++/C的字符串库函数,请编写函数 strcpy

char *strcpy(char *strDest, const char *strSrc)

assert((strDest!=NULL) && (strSrc !=NULL)); // 2分

char *address = strDest; // 2分

while((*strDest++ = * strSrc++) != '\0' ) // 2分

return address ; // 2分

}

Ⅱ:strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?

答:为了实现链式表达式。 // 2分

2)(10分) 汇编源程序:

ORG 00H

START: JB P3.0,LIG

CLR P1.0

SJMP START

LIG: SETB P1.0

SJMP START

END

C语言源程序:

#include

sbit K1=P3^0;

sbit L1=P1^0;

void main(void)

{

while(1)

{

if(K1==0)

{

L1=0; //灯亮

}

else

{

L1=1; //灯灭

}

}

}

3)(10分)

;程序名:

;功 能:读键盘,并把所按键盘显示出来,在检测到按下SHIFT键后,就结束运行 ;常量定义:

L_SHIFT = 00000010B

R_SHIFT = 00000001B

CSEG SEGMENT

ASSUME CS:CSEG

START: MOV AH,2 ;取变换鍵状态字节 INT 16H

TEST AL,L_SHIFT+R_SHIFT ;判是否按下SHIFT键 JNZ OVER ;按下,转

MOV AH,1

INT 16H ;是否有键可读

JZ START ;没有,转

MOV AH,0

INT 16H

MOV DL,AL

MOV AH,6

INT 21H

JMP START

OVER: MOV AH,4CH

INT 21H

CSEG ENDS

END START

五、逻辑推理题(20分)

1):

方法1:

小明(1秒)与弟弟(3秒)过桥->用时3秒,小明返回1秒(共4秒) 妈妈(8秒)与爷爷(12秒)过桥->用时12秒,弟弟返回3秒(共15秒) 小明(1秒)与爸爸(6秒)过桥->用时6秒,小明返回1秒(共7秒) 小明(1秒)与弟弟(3秒)过桥->用时3秒(共3秒)

只要小于30秒就OK。

2):

方法1:

3夸脱装满;3夸脱-〉5夸脱(全注入);

3夸脱装满;3夸脱-〉5夸脱(剩1夸脱);

5夸脱倒掉;3夸脱-〉5夸脱(注入1夸脱);

3夸脱装满;3夸脱-〉5夸脱;

完成(另:可用回溯法编程)

方法2:

5夸脱装满;5夸脱-〉3夸脱(3注满);

3夸脱倒掉;5夸脱-〉3夸脱(这时3只有2夸脱);

5夸脱装满;5夸脱-〉3夸脱(注入1夸脱,3注满);

完成

一、英语题:

1)、Windows provides a user-friendly graphical(1) including pop-up menus,csrollbars,dialogue boxes,icons and etc.

A.display B.surface C.interface D.help

2)、Bitmap images use a grid of small squars known as (2) to represent images.

A.pixels B.points C.elements D.dots

3) 、With(3)you can communicate in real time with people all around the world.

A.E-Mail B.WWW C.FTP D.webchar

4) 、Office(4)is the application of the computer and communications technology to improve the productivity of office workers.

A.Tool B.Automation C.Device D.FAX

5) 、(5)means the conducting of business communication and transction over network and through computers.

A.E-Mail B.E-Gevemment C.E-text D.E-Commerce

6) 、The line of computing jobs waiting to be run on a computer system might be a (6).The jobs are serviced in the order of their arrival,that is,the first in is the first out.

A queue B stack C array D record

7)、 The (7) is a collection of modules serving as interface between hardware and software to provide a software platform.

A computer B processor C application D operating system

8)、 C++ fully supports (8)programming.

A visual B object-oriented C logic D natural language

9)、The Internet is an open system,and most information is available to everyone. It is very important to add (9)to existing system for protecting the secret information.

A Web pages B modem C security D network

10)、 A (10)system placed between the company network and the outside world may limit outside access to the internal network

A firewall B modem C gateway D key

二、程序流程图:

1)、阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。

【说明】求连接函数f(x)的根(方程f(x)=0的解)的最简单方法是二分法。为此,首先需要在若干点上检查函数的符号,如果发现f(a)与f(b)符号相反(a

三、基础题

1)、头文件中的 ifndef/define/endif 干什么用?(3分)

2)、写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个(3分)

3)、1,5,5,5,加减乘除,怎么出24点?(5分)

4)、以下为Windows NT下的32位C++程序,请计算sizeof的值(6分)

void Func ( char str[100] )

{

sizeof( str ) = (1);

}

void *p = malloc( 100 );

sizeof ( p ) = (2);

5)、请写出下列代码的输出内容 (8分)

#include

int main(void)

{

int a,b,c,d;

a=20;

b=a++;

c=++a;

d=10*a++;

printf("a, b,c,d:%d,%d,%d,%d",a, b,c,d);

return 0;

}

6)、分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var)(10分)

四、编程题(10分)

1)编写strcpy函数(10分)

已知strcpy函数的原型是char *strcpy(char *strDest, const char *strSrc); 其中strDest是目的字符串,strSrc是源字符串。

Ⅰ:不调用C++/C的字符串库函数,请编写函数 strcpy

char *strcpy(char *strDest, const char *strSrc)

Ⅱ、strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?

2)单片机模拟开关灯编程(用C语言或者汇编编写)(10分)

㈠、要求:如图下图所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片

机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。

㈡、电路原理图:(接口的定义:AT89X51.H)

㈢、系统板上硬件连接:

①把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块” 区域中的L1端口上;

②把“单片机系统”区域中的P3.0端口用导线连接到“四路拨动开关”区域中的K1端口上;

㈣、程序设计内容:

①开关状态的检测过程

单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。单片机可以采用JB BIT,REL或者是JNB BIT,REL指令来完成对开关状态的检测即可。

②输出控制

如图3所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。

㈤、程序流程图:

Ⅰ、按以上要求编写程序(用C语言或者汇编语言编写):

3)用汇编语言编写程序(10分):

Ⅰ、写一个程序完成功能:读键盘,并把所按键盘显示出来,在检测到按下SHIFT键后,就结束运行。要求:调用键盘I/O程序的2号功能取得变换键状态字节,进而判断是否按下了SHIFT键。在调用0号功能读键盘之前,先调用1号功能判断键盘是否有键可读,否则针导致不能及时检测到用户按下的SHIFT。

请写汇编语言代码:

五、逻辑推理题(20分)

1)、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒,

小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每 次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会 熄灭。问:小明一家如何过桥?(10分)

2)、如果你有无穷多的水,一个3夸脱的和一个5夸脱的提桶,你如何准确称出 4夸脱的水?(10分)

答案:

仅供参考

一、英语题

(1)C, (2)A, (3)D, (4)A, ( 5)A,

(6)A, (7)D, (8)B, (9)C, (10)A.

二、程序流程图

(1) (a+b)/2

(2) f((a+b)/2)或f(x)

(3) fabs(y)

(4) b

(5) a

三、基础题

1) 防止该头文件被重复引用

2) #define MIN(A,B) ((A)

3) (5-(1/5))*5

4) (1) sizeof(str) = 4

(2) sizeof(p) = 4

5) a=23

b=20

c=22

d=220

6) BOOL型变量:if(!var)

int型变量: if(var==0)

float型变量:

const float EPSINON = 0.00001;

if ((x >= - EPSINON) && (x

指针变量: if(var==NULL)

剖析:

考查对0值判断的“内功”,BOOL型变量的0判断完全可以写成if(var==0),而int型变量也可以写成if(!var),指针变量的判断也可以写成if(!var),上述写法虽然程序都能正确运行,但是未能清晰地表达程序的意思。

一般的,如果想让if判断一个变量的“真”、“假”,应直接使用if(var)、if(!var),表明其为“逻辑”判断;如果用if判断一个数值型变量(short、int、long等),应该用if(var==0),表明是与0进行“数值”上的比较;而判断指针则适宜用if(var==NULL),这是一种很好的编程习惯。

浮点型变量并不精确,所以不可将float变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“

四、编程题

1):不调用C++/C的字符串库函数,请编写函数 strcpy

char *strcpy(char *strDest, const char *strSrc)

assert((strDest!=NULL) && (strSrc !=NULL)); // 2分

char *address = strDest; // 2分

while((*strDest++ = * strSrc++) != '\0' ) // 2分

return address ; // 2分

}

Ⅱ:strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?

答:为了实现链式表达式。 // 2分

2)(10分) 汇编源程序:

ORG 00H

START: JB P3.0,LIG

CLR P1.0

SJMP START

LIG: SETB P1.0

SJMP START

END

C语言源程序:

#include

sbit K1=P3^0;

sbit L1=P1^0;

void main(void)

{

while(1)

{

if(K1==0)

{

L1=0; //灯亮

}

else

{

L1=1; //灯灭

}

}

}

3)(10分)

;程序名:

;功 能:读键盘,并把所按键盘显示出来,在检测到按下SHIFT键后,就结束运行 ;常量定义:

L_SHIFT = 00000010B

R_SHIFT = 00000001B

CSEG SEGMENT

ASSUME CS:CSEG

START: MOV AH,2 ;取变换鍵状态字节 INT 16H

TEST AL,L_SHIFT+R_SHIFT ;判是否按下SHIFT键 JNZ OVER ;按下,转

MOV AH,1

INT 16H ;是否有键可读

JZ START ;没有,转

MOV AH,0

INT 16H

MOV DL,AL

MOV AH,6

INT 21H

JMP START

OVER: MOV AH,4CH

INT 21H

CSEG ENDS

END START

五、逻辑推理题(20分)

1):

方法1:

小明(1秒)与弟弟(3秒)过桥->用时3秒,小明返回1秒(共4秒) 妈妈(8秒)与爷爷(12秒)过桥->用时12秒,弟弟返回3秒(共15秒) 小明(1秒)与爸爸(6秒)过桥->用时6秒,小明返回1秒(共7秒) 小明(1秒)与弟弟(3秒)过桥->用时3秒(共3秒)

只要小于30秒就OK。

2):

方法1:

3夸脱装满;3夸脱-〉5夸脱(全注入);

3夸脱装满;3夸脱-〉5夸脱(剩1夸脱);

5夸脱倒掉;3夸脱-〉5夸脱(注入1夸脱);

3夸脱装满;3夸脱-〉5夸脱;

完成(另:可用回溯法编程)

方法2:

5夸脱装满;5夸脱-〉3夸脱(3注满);

3夸脱倒掉;5夸脱-〉3夸脱(这时3只有2夸脱);

5夸脱装满;5夸脱-〉3夸脱(注入1夸脱,3注满);

完成


相关文章

  • 人大软件工程硕士考研学费怎么收
  • 人大软件工程硕士考研学费怎么收 考取人大软件工程硕士研究生学费怎么收?今天,凯程人大软件工程硕士考研老师给大家整理了一些有关学费,人大软件工程硕士考研就业,人大软件工程硕士考研辅导,人大软件工程硕士考研参考书,人大软件工程硕士考研专业课其它 ...查看


  • 人大软件工程硕士考研学费是多少
  • 人大软件工程硕士考研学费是多少 人大软件工程硕士考研学费是多少,是历年来学子的问题,凯程人大软件工程硕士考研老师整理了一些备考人大软件工程硕士考研的资料,希望广大考生根据复习建议规划复习计划,取得好的成绩.特别申明,以下信息绝对准确,凯程就 ...查看


  • 2017人大软件工程硕士考研复习方法整理
  • 2017人大软件工程硕士考研复习方法整 理 经过整理凯程人大软件工程硕士考研老师总结了以下关于考研内容,希望通过以下内容,同学们更加了解人大软件工程硕士考研,规划好学习计划!凯程就是王牌的人大考研机构! 一.人大软件工程硕士考研复习方法解读 ...查看


  • 我对应聘者的面试原则
  • 我对应聘者的面试原则 分类: 行业与职场 2011-12-17 10:36 1078人阅读 评论(7) 收藏 举报 原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 .作者信息和本声明,否则将追究法律责任. http://blo ...查看


  • 合工大研究生复试
  • 合肥工业大学2016年硕士研究生招生考试复试科目要求 001仪器科学与光电工程学院 联系电话:0551-62901513传真:0551-62901508联系人:袁老师 各专业复试科目包括英语听力测试.英语口语测试.专业综合课笔试及综合素质面 ...查看


  • 教你面试时的心理学(原创)
  • 教你面试时的心理学(原创) 很多求职者都在面试时,总是发挥失常而遭遇失败.其实面试,没有你们想像的那么难.我面试了两个月,成功十次,失败20次,听听我给大家整理过的面试经验之谈吧. 面试之前,先打听三种情况:一.面试的地点:二.公司的产品: ...查看


  • 软件工程在职研究生有哪些考试科目
  • 软件工程在职研究生有哪些考试科目? 软件工程在职研究生是通过一月联考的方式报考,可以获得学位和学历证书, 是双证在职研究生.那么,双证在职研究生软件工程专业有哪些考试科目呢? 根据教育部发布的<关于统筹全日制和非全日制研究生管理工作的 ...查看


  • 审计面试的参考试题
  • 招 聘 面 试 题 应当根据具体用人部门.岗位情况确定提出问题,并视招聘时情况让应聘者操作. 考核应注重考核应聘者是否踏实.严谨.适合本单位需求.以下仅供参考: 1.熟悉哪些财务软件系统.(着重询问本单位以往或以后使用的软件) 2.熟悉哪些 ...查看


  • 软件工程师面试题
  • 1.你怎么制定一个项目的中期,近期计划,请举例说明(A B C) 3.项目开发中都应当包含哪些阶段,请举例说明(C)(主要包括:立项.需求.概要.详细.编码自测.联调.验收.转产.产品维护) 4.你怎么应对项目开发过程中的需求经常性变更(C ...查看


  • 硬件工程师面试
  • 硬件工程师面试 1.请用方框图描述一个你熟悉的实用数字信号处理系统,并做简要的分析:如果没有, 也可以自己设计一个简单的数字信号处理系统,并描述其功能及用途.(仕兰微面试题 目) 2.数字滤波器的分类和结构特点.(仕兰微面试题目) 3.II ...查看


热门内容