研发中心程序员考试试题
1.对数据通讯中的发送和接收函数进行编程
编程环境:C或VC++
要求:根据函数流程图进行编程,自定义局部变量。
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.冒泡法排序
编程环境:C或VC++
技术:冒泡法排序
|
函数名 |
void Order( int *a, int size); |
|
参数 |
int *a; 数组指针; int size; 数组大小。 |
|
返回值 |
无 |
|
功能说明 |
对整型数组a,按冒泡法进行升序排序,不改变原数组成员的稳定性,即相同的数不能改变先后顺序。 |
3.文件比较大小
编程环境:C或VC++
技术:文件操作函数
|
函数名 |
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.在上述题目中任选一道题,编写测试程序。
本文精选了程序员考试中的典型题目,包括数据通讯中的发送与接收函数编程、冒泡排序算法、文件大小比较、获取鼠标坐标及读取IO信号等。通过这些题目可以帮助读者深入理解并掌握C/C++编程技巧。
789

被折叠的 条评论
为什么被折叠?



