某公司开发中心程序员考试试题

本文精选了程序员考试中的典型题目,包括数据通讯中的发送与接收函数编程、冒泡排序算法、文件大小比较、获取鼠标坐标及读取IO信号等。通过这些题目可以帮助读者深入理解并掌握C/C++编程技巧。

研发中心程序员考试试题

 

1.对数据通讯中的发送和接收函数进行编程

编程环境:CVC++

要求:根据函数流程图进行编程,自定义局部变量。

a. 数据发送函数

 

函数名

void SendData(void);

参数

返回值

功能说明

实现数据的发送过程,由程序后台函数调用,处理流程见流程图

全局变量

发送数据结构体

typedef  struct T_SendData

{

   unsigned char buf[256];//数据缓存区

  int len;//缓存区长度

}TSendData;

 

TSendData  m_sendSeq[64],发送数据队列,用于存放待发送的数据

int m_head, m_tail; 数据队列的首尾指针,首尾指针相等时表示发送数据队列为空。

int m_curSendTime;当前发送数据包的时间,用于判断发送超时

int m_failCount;发送失败次数,最大失败次数为3

调用其它接口函数

1、检查通讯状态 int CheckCommStatus();

返回值:-1—故障, 0—空闲 1—等待回应

2、数据发送函数 void CommSendData(unsigned char *buf,int len);

参数:buf发送数据缓存区指针  len发送数据长度

3、检查是否发送成功 int CheckRespond();

返回值:0—发送成功  -1—发送失败

  

b.数据接收函数流程图如下

 

函数名

void RecvData(void);

参数

返回值

功能说明

实现数据的接收过程,由程序后台函数调用,处理流程见流程图

全局变量

unsigned char  m_recvData[1024],接收数据队列,用于存放接收到的数据

int m_head, m_tail; 数据队列的首尾指针,首尾指针相等时表示接收数据队列为空。

调用其它接口函数

1、接收数据 int CommRecvData(unsigned char *buf, int len);

buf接数据缓存区指针 len数据长度

返回值:-1—未接收到数据 0—接收到数据

2、解包函数 int UnPack(void);

返回值:-1—未接收到完整数据包,其它值处理到数据指针

3、检查接收到数据是否正确 int CheckResult(void);

返回值:-1—错误 0—正确

4、发送回应 void SendResult(int type);

参数:1—错误回应 0—正确回应

 

 

 

 

2.冒泡法排序

编程环境:CVC++

技术:冒泡法排序

 

函数名

void Order( int *a, int size);

参数

int *a;     数组指针;

int size;   数组大小。

返回值

功能说明

对整型数组a,按冒泡法进行升序排序,不改变原数组成员的稳定性,即相同的数不能改变先后顺序。

 

3.文件比较大小

编程环境:CVC++

技术:文件操作函数

函数名

int CompareFile( char *file1, char * file2);

参数

file1:第一个文件名;

file2:第二个文件名

返回值

-1:第一个文件比第二个文件小

0:两个文件大小相同

1:第一个文件比第二个文件大

-2:操作文件失败

功能说明

比较文件大小

 

流程图如下:

 

4.返回界面鼠标坐标

编程环境:VC++

要求:

编写一个获取windows界面鼠标的函数,通过出口参数返回相对于客户区和相对于屏幕的鼠标位置。

函数接口自定义,并对函数的功能、返回值和参数进行说明。

 

5.读取IO信号函数

 

函数名

Int ReadIo(void);

参数

返回值

0:未读到IO信号

1:读到IO信号

功能说明

读取IO信号,当连续20次读到有效信号时,才认为信号有效。

 

 

 

6.在上述题目中任选一道题,编写测试程序。

 

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值