校招基础总结(IT)
来源:互联网 发布:支持向量回归算法 编辑:程序博客网 时间:2024/05/19 10:38
1.strdup函数的实现
char *strdup(char *str){int len = strlen(str)+1;char *t = NULL;if (str && (t = (char *) malloc(len))){strcpy(t,str);}return t;}
2.合并两个有序链表
typedef struct _link_t{int val;struct _link_t *next;}link_t;link_t *merge(link_t* ln1, link_t* ln2){if (ln1 == NULL){return ln2;}if (ln2 == NULL){return ln1;}link_t *ln = NULL;if (ln1->val < ln2->val){ln = ln1;ln->next = merge(ln->next,ln2);}else {ln = ln2;ln->next = merge(ln1,ln->next);}return ln;}
3.给定一个int 数组,给出其中连续子序列的最大和
#define INF 1000int maxsum_base (int *arr,int size ,int &start , int &end){int maxsum = -INF;for (int i = 0;i < size; ++i){int sum = 0;for (int j = i;j<size;++j){sum += arr[j];if (sum > maxsum){maxsum = sum;start = i;end = j;}}} return maxsum;}
4.二进制文件读写
#include <stdio.h>#include <stdlib.h>struct Student{long unsigned id;char name[20];double grades;};typedef struct Student Student;int main(){Student s;//char ch,num[20];FILE *fp;fp = fopen("D:\\st.rec","rb");if (!fp){printf("file cannot be opened");exit(1);}//do{//ch = getchar();//getchar();//if(ch =='n')//break;//printf("id: ");//gets(num);//s.id = atol(num);//printf("name: ");//gets(s.name);//printf("grades: ");//gets(num);//s.grades = atof(num);//fwrite(&s,sizeof(s),1,fp);//}while(1);while(fread(&s,sizeof(s),1,fp)==1)printf("%Ld: %-10s%g\n",s.id,s.name,s.grades);fclose(fp);system("pause");return 0;}
5.
//两个排序的数组求中位数int find(int *ls, int *rs ,int size){if( ls == NULL || rs == NULL || size <= 0)return -1;int lsbegin = 0, rsbegin = 0;int lsend = size - 1, rsend = size - 1;int result;while(lsbegin < lsend && rsbegin < rsend){if(lsbegin == lsend - 1 && rsbegin == rsend - 1)break;else{int lsmiddle = (lsbegin+lsend)>>1;int rsmiddle = (rsbegin+rsend)>>1;if(ls[lsmiddle] == rs[rsmiddle]){result = ls[lsmiddle];break;}else if (ls[lsmiddle] > rs[rsmiddle]){lsend = lsmiddle;rsbegin = rsmiddle;}else{lsbegin = lsmiddle;rsend = rsmiddle;}}}if(lsbegin == lsend && rsbegin == rsend)result = min(ls[lsbegin],rs[rsbegin]);else if ( lsbegin == lsend - 1 && rsbegin == rsend - 1){if ( ls[lsbegin] < rs[rsbegin])result = min(ls[lsend],rs[rsbegin]);elseresult = min(ls[lsbegin],rs[rsend]);}return result;}
6.
//链表反转 非递归写法typedef struct link{int data;struct link *next;}LINK;LINK *reverse(LINK *head){if(head == NULL)return;LINK *first = head;LINK *second = head->next;first->next = NULL;while(second != NULL){LINK *third = second->next;second->next = first;first = second;second = third;}return first;}//递归写法LINK *reverse(LINK *first,LINK *second){if(second == NULL)return first;LINK *third = second->next;second->next = first;return reverse(second,third);}
7.
//递归二叉树先序遍历typedef struct Node{int data;struct Node *left,*right;}NODE;void preorder(NODE *T){ if(T == NULL) return; visit(T->data); preorder(T->left); preorder(T->right);}//非递归 void pretraverse(NODE *T) { stack<NODE *> s; NODE *p = T; s.push(T); while(p||!s.empty()) { p = s.top(); s.pop(); visit(p); if(p->right) s.push(p->right); if(p->left) s.push(p->left); } }8.
//链表有环 typedef struct link { int data; struct link *next; }LINK;bool G(LINK *L){LINK *slow = L->next;LINK *fast = L->next->next;while(slow != NULL){slow = slow->next;fast = fast->next->next;if (slow->data == fast->data)return true;}return false;}9.
//返回不超过x的最大2的整数次冥int G(unsigned int x){unsigned int t = 1;x>>1;while(x){x>>=1;t<<=1;}return t;}
10.ip地址转换为整数
#include<stdio.h>#include<stdlib.h>int main(){char ip[]="0.3.1.29";int sum=0,i=0,j=0,n=0;int cnt=4;char tmp[4];while(cnt>0){int tmpsum=0;//不要只记得开始的sum初始化,任何边写边新曾的变量都要初始化,否则结果不对!if(ip[j]!='.'){tmp[i]=ip[j]; i++;j++;}else{i=0;j++; tmpsum=atoi(tmp);if (cnt!=1){for(n=cnt-1;n>=1;n--)tmpsum*=256;}cnt--; }sum+=tmpsum;}printf("%d\n",sum);system("pause");return 0;}
0 0
- 校招基础总结(IT)
- IT面试2014校招笔试面试全面总结分析回顾(有点早,仅供参考)
- 2018校招 面试总结 (一)
- 校招面试总结
- 2017校招总结
- 校招总结
- 2017校招总结
- 2018校招总结
- 校招总结
- 校招总结~
- 校招资料总结
- IT面试2014校招笔试面试全面总结分析回顾
- [综合面试] IT面试2014校招笔试面试全面总结分析回顾
- [综合面试] IT面试2014校招笔试面试全面总结分析回顾
- 2016年8月到9月参加IT校招总结
- 2014年 IT 行业校招待遇
- IT校招之速成经验
- 给IT人员支招(下)
- pycharm 教程(二)设置字体大小
- 关于主键的小问题
- Android:Task Affinity:[string]
- APP测试包括什么内容啊,什么时候开始 ?
- CSDN每日语录
- 校招基础总结(IT)
- Android屏幕适配全攻略(最权威的官方适配指导)
- 在非Activity(非主线程)中更新UI的办法:(一)Handler+Thread+Activity静态成员变量
- Android:Allow Task Reparenting:[boolean]
- 三级模式与两级映像
- Git 集中式vs分布式
- Android按下一个按键发生了什么
- PyCharm 教程(三)Hello world!
- 使用Kotlin进行Android开发