1.有两个数组,找出这两个数组中的最小值和第二大值。
例如:array A [ ] = { 9, 2, 3, 4, 5, 6 }
array B [ ] = { 10, 7, 8, 1, 5, 6, 2, 2, 2 }
答:
算法思想:将A、B数组排序,通过比较两数组最小值获得最小值;比较最大值,再把较大的一方数组的第二大值与另一方最大值比较,获得第二大值。
int A [] = { 9, 2, 3, 4 ,5 ,6 };
int B [] = { 10, 7, 8, 1, 5, 6, 2, 2, 2 };
int min;
int second;
int Second_Largest (int A[], int B[])
{
int size_a = sizeof(A)/sizeof(int);
int size_b = sizeof(B)/sizeof(int); //获得A,B数组长度
sort(A); //排序函数,后面给出sort函数代码
sort(B); //升序排序
//获得最大值
if(A[size_a - 1] > B[size_b - 1])
{
if(A[size_a - 2] > B[size_b - 1])
second = A[size_a - 2];
else
second = B[size_b -1]
}
else if(A[size_a - 1] > B[size_b] - 2)
second = A[size_a -1];
else
second = B[size_a -2];
return second;
}
int Min (int A[], int B[])
{
int size_a = sizeof(A)/sizeof(int);
int size_b = sizeof(B)/sizeof(int); //获得A,B数组长度
sort(A);
sort(B);
//获得最小值
if(A[0] > B[0])
min = B[0];
else
min = A[0];
return min;
}
//sort函数如下:
void sort (int A[]) //冒泡函数
{
int size = sizeof(A)/sizeof(int);
int i, j, temp;
for(i = 0; i <= size - 1; i++)
{
for(j = 0; j <= size - 1; j++)
{
if(A[i] > A[i+1])
{
temp = A[i];
A[i] = A[i+1];
A[i+1] = temp;
}
}
}
}
2.位运算,请写一个程序,用来计算任意一个整数当它换算成二进制时有多少位1
3.添加完成一个反转函数,完成代码中start到end中间这一段,完成字符串反转输出
void reversal (string *s)
{
int size = sizeof(s) / sizeof(char);
int j = size - 1;
for(int i = 0; i <= size - 1; i++)
{
char c = s[i]
s[i] = s[j];
s[j] = c;
j--;
}
}
reversal(s);
4.一个链表,表头即链表完整的结构体。完成创建链表、找到链表最大值、删除链表操作。
链表结构体:
struct node {
int data; //数据域
struct node *next; //指针域
}
根据list[num]完成链表创建。已给出头节点L。
//创建链表
struct node *create (int *list, int num)
{
for(int i = 0; i < num - 1; i++)
node *p;
p->data = list[i];
p->next = L->next;
L->next = p;
return L;
}
//找该链表中的最大值
int max (node *head)
{
int max;
max = head->data;
head = head->next;
while(head->next != NULL) //遍历链表
{
if(max < head->data)
max = head->data;
head = head->next;
}
return max;
}
//删除链表
void release (struct node *head)
{
node *p;
while(head->next != null)
{
p = head->next;
head-next = p->next;
free(p);
}
}
# 系统题笔试
1.[编程题]关于socket线程编程,完成一个简单的TCP服务器主函数,涉及到的参数部分仔细需要你回想思考。
2.[简答题]Linux通信进程的四种方式
百度搜索
# 网络相关选择题 #思考题已知:5+3=16 7+3=40 请问9+3=?
2. 面试 # c/c++1.根据笔试情况,回答你为什么要这么写等
2.指针常量和常量指针的区别
3.static标识符有什么作用
4.结构体所占的内存是多少
# 系统题5.在c++中内存是怎样的
----当我new或malloc一个值,这个值是存放在栈还是堆中
----其他情况,让你判断在栈还是在堆
6.进程和线程
7.死锁
8.信号量机制,同步和异步
8.代码保护



