CC++面试题目汇总(10)

2019-08-02 00:18

void g(int**p) {

(**p)++; (*p)++;// 无效 } 输出: 1 2 3 4 5 6 7 8 9

10

3. 写出程序运行结果

int sum(int a) {

auto int c=0; static int b=3; c+=1; b+=2;

return(a+b+c); }

void main() { int I; int a=2;

for(I=0;I<5;I++) {

printf(\sum(a)); } }

// static会保存上次结果,记住这一点,剩下的自己写 输出:8,10,12,14,16,

4.

int func(int a) { int b; switch(a) {

case 1: 30; case 2: 20; case 3: 16; default: 0 }

return b; }

则func(1)=?

// b定义后就没有赋值。

5: int a[3];

a[0]=0; a[1]=1; a[2]=2; int *p, *q; p=a;

q=&a[2];

则a[q-p]=a[2]

解释:指针一次移动一个int但计数为1

今天早上的面试题9道,比较难,向牛人请教,国内的一牛公司,坐落在北京北四环某大厦:

1、线形表a、b为两个有序升序的线形表,编写一程序,使两个有序线形表合并成一个有序升序线形表h;

答案在 请化大学 严锐敏《数据结构第二版》第二章例题,数据结构当中,这个叫做:两路归并排序

Linklist *unio(Linklist *p,Linklist *q){ linklist *R,*pa,*qa,*ra; pa=p; qa=q; R=ra=p;

while(pa->next!=NULL&&qa->next!=NULL){ if(pa->data>qa->data){ ra->next=qa; qa=qa->next; } else{

ra->next=pa;

pa=pa->next; } }

if(pa->next!=NULL) ra->next=pa; if(qa->next!=NULL) ra->next==qa; return R;

}

2、运用四色定理,为N个局域举行配色,颜色为1、2、3、4四种,另有数组adj[][N],如adj[i][j]=1则表示i区域与j区域相邻,数组color[N],如color[i]=1,表示i区域的颜色为1号颜色。 四色填充

3、用递归算法判断数组a[N]是否为一个递增数组。

递归的方法,记录当前最大的,并且判断当前的是否比这个还大,大则继续,否则返回false结束:

bool fun( int a[], int n ) {

if( n= =1 ) return true; if( n= =2 )

return a[n-1] >= a[n-2];

return fun( a,n-1) && ( a[n-1] >= a[n-2] );

}

4、编写算法,从10亿个浮点数当中,选出其中最大的10000个。 用外部排序,在《数据结构》书上有

《计算方法导论》在找到第n大的数的算法上加工 5、编写一unix程序,防止僵尸进程的出现.

同学的4道面试题,应聘的职位是搜索引擎工程师,后两道超级难,(希望大家多给一些算发)

1.给两个数组和他们的大小,还有一动态开辟的内存,求交集,把交集放到动态内存dongtai,并且返回交集个数

long jiaoji(long* a[],long b[],long* alength,long blength,long* dongtai[]) 2.单连表的建立,把'a'--'z'26个字母插入到连表中,并且倒叙,还要打印! 方法1:

typedef struct val { int date_1; struct val *next; }*p;

void main(void) { char c;

for(c=122;c>=97;c--) { p.date=c; p=p->next; }

p.next=NULL; } } 方法2:

node *p = NULL; node *q = NULL;

node *head = (node*)malloc(sizeof(node)); head->data = ' ';head->next=NULL;

node *first = (node*)malloc(sizeof(node)); first->data = 'a';first->next=NULL;head->next = first; p = first;

int longth = 'z' - 'b'; int i=0;

while ( i<=longth ) {

node *temp = (node*)malloc(sizeof(node)); temp->data = 'b'+i;temp->next=NULL;q=temp;

head->next = temp; temp->next=p;p=q; i++; }

print(head); 3.可怕的题目终于来了

象搜索的输入信息是一个字符串,统计300万输入信息中的最热门的前十条,我们每次输入的一个字符串为不超过255byte,内存使用只有1G, 请描述思想,写出算发(c语言),空间和时间复杂度,

4.国内的一些帖吧,如baidu,有几十万个主题,假设每一个主题都有上亿的跟帖子,怎么样设计这个系统速度最好,请描述思想,写出算发(c语言),空间和时间复杂度,

#include string.h

main(void)

{ char *src=\ char *dest=NULL;

dest=(char *)malloc(strlen(src)); int len=strlen(str); char *d=dest; char *s=src[len]; while(len--!=0) d++=s--; printf(\}

找出错误!!

#include \#include \#include \main(void) {

char *src=\ char *dest=NULL;

dest=(char *)malloc(sizeof(char)*(strlen(src)+1)); int len=strlen(src); char *d=dest; char *s=src+len-1; while(len--!=0) *d++=*s--; *d='\\0';

printf(\}

1. 简述一个Linux驱动程序的主要流程与功能。 2. 请列举一个软件中时间换空间或者空间换时间的例子。 void swap(int a,int b) {

int c; c=a;a=b;b=a; }

--->空优

void swap(int a,int b) {

a=a+b;b=a-b;a=a-b; }

6. 请问一下程序将输出什么结果?


CC++面试题目汇总(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:[参考文档]旅游管理毕业论文参考文献word版本(3页)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: