西邮linux小组面试题总结(2016-5-30)

原创 2016年05月30日 12:49:13

1.const和define的区别:

1->const在编译阶段用,define在预处理阶段才替换

2->const检查类型,const int i=3.5,这就是错的;define不检查类型,只完成普通的替换

3->const常量会在内存中分配,而define则不会。

2.指针变量在内存中的字节大小:

大小根本取决于cpu当下的寻址能力,在vc6.0下这个和你的cpu,操作系统和编译器都有关占,领导如下:cpu>操作系统>编译器,如果cpu是32位,那么操作系统只能是32位,编译器只能是16位或者32,如果编译器32位,这时候寻址能力是4字节,如果编译器16位,这时候寻址能力2字节,总之,一层一层是有限制关系的,你需要看具体情况。嘿嘿!希望我表达清楚了。

3.sizeof()和strlen()区别:

如果是sizeof(),他计算的是这段空间所用的内存字节,而strlen()算的是有效字节是多少。举个栗子:

char a[20]="xiaoxiaoxuezha";

sizeof(a)是实际上开辟了20字节给它,因此sizeof(a)=20;

strlen(a)是有效字节,而且不算'\0',因此是strlen(a)=14;

4.看错误:

char *a[]={"I","am","xuezha"};

char *t[]=a+1;

分析以下数组a,数组a 中有三个元素,这三个元素存放的内容是指针,这三个指针分别指向以上三个字符串首地址,

a+0是a第一个元素的首地址,a+1是a第二个元素的首地址。因此第一种改的方案*t[]={a+1};当你定义一个数组时,t[]代表他的首地址是常量,常量不能被另一个常量赋值,因此也是错。改的方法:char **t=a+1;

5.有没有发现啥奇怪的地方,这个知识点我现在说的不全,不过我会进步滴! 

int v0=3;

int v1[2]={1,2};

int v2;

void func(void )

{

int i,v3=3;

static int v4=7;

int sum=0;

v4=v4>>1;

sun=v0+v1[1]+v1[2]+v2+v3+v4;

for(i=0;i<sun;i++)

  printf("啦啦啦");

}

解释:全局变量静态变量会放在内存的全局数据段,动态开辟内存的数据会在堆,而其他的(包括形参)放在堆栈,在全局数据段中,初始化的放一起,没初始化的放一起,因此才有了v1[2]和v4共享一段内存!

6.实现一个函数,找出现字符最少的字符

char c[10]={'a','b','c','c','a','a','d','d','a','e','a'};

#include <stdio.h>
#include <string.h>
void suan(char c[],int a)
{
int t[26]={0};
int i,j,k;
int d;
for(i=0;i<a;i++)
t[(int)(c[i]-'a')]++;
     d=t[0];
for(i=0;i<26;i++)
{
if((d>t[i])&&(t[i]!=0))
d=t[i];
}
for(i=0;i<26;i++)
if(d==t[i])
printf("%c\n",(char)(i+97));
}

7.小朋友传糖,n个小孩子,每人手里几个气球,现在要他们传气球,只能他传给和他相邻的人(两个人之间不管传了几个,只算一次),而且,排头只能传给第二个,排尾只能传给前一个,求传球的次数和最小是多少?

#include <stdio.h>
#include <stdlib.h>
void  main()
{
    int i,j;
int n,*p;
int add=0,ci=0;
printf("输入小朋友的人数:\n");
scanf("%d",&n);
p=(int*)malloc(sizeof(int)*n);
printf("你需要输入%d个小朋友的糖果数目 :  \n",n);
for(i=0;i<n;i++)
scanf("%d",p+i);
printf("counting!!!!!\n");
for(j=0;j<n;j++)
{
add=add+(*(p+i));
}
add=add/n;
for(j=0;j<n;j++)
{
int sub;
sub=add-p[j];
if(j==n-1)
break;
if((sub!=0)||(p[j]!=add))
{   
ci++;
p[j+1] = p[j+1] - sub;
p[j] = p[j] + sub;
}

}
printf("需要%d次!!!\n",ci);
}

第一次写博客,感觉怪怪的,希望各位亲见谅。本学渣会加油的!!!微笑

版权声明:本文为博主原创文章,未经博主允许不得转载。

剑指小组2017----西邮Linux兴趣小组纳新面试题讲解(第17题)

17题 struct node{ char a; short b; int c; }; int main(void) { struct node s; mems...
  • XiyouLinux_Kangyijie
  • XiyouLinux_Kangyijie
  • 2017年05月26日 22:18
  • 419

西邮linux兴趣小组2016纳新免试题level_1

当打开免试题链接的时候,大家看到了这样一个页面: 毫无疑问点击START,当你还想着和去年一样图片里面含有一些东东的话,那么你可能得走一些弯路了。点击START进去之后会看到这样一个页面: ...
  • zhuxinquan61
  • zhuxinquan61
  • 2016年04月29日 14:02
  • 1076

西邮实验室汇总项目

项目名称 项目人员 项目描述 项目周期 项目技术 项目中遇到的问题 项目链接项目名称西邮实验室汇总项目人员wangchun项目描述本项目旨在汇总西邮的各个实验室情况,以便新生参考,了解西邮都有哪些实验...
  • lloyvhe
  • lloyvhe
  • 2015年12月03日 16:38
  • 491

2016西邮Linux兴趣小组大事记

2016年还有半个小时就结束了,前面把自己9月做的规划拿出来完善了下,觉得真的是不容易的一年,所有的事情只有自己经历过才会有不一样的感受,世上无难事,只怕有心人。这是我九月份制定的计划: 下面是20...
  • yangbodong22011
  • yangbodong22011
  • 2016年12月31日 23:37
  • 565

西邮linux兴趣小组2017纳新题知识点总结

sizeof和strlen的区别: 1、sizeof:      sizeof是既是关键字又是运算符,但不是函数。     功能:返回保证能容纳实现所建立的最大对象的字节数。     参数:可...
  • hxllhhy
  • hxllhhy
  • 2017年05月26日 20:02
  • 207

2016年第十三届软件自由日(西邮站) 外场曲

放图就好:签名活动外场活动晚上: 还有我们的宣传单: 正面: 反面: 加油...
  • yangbodong22011
  • yangbodong22011
  • 2016年09月12日 07:40
  • 564

“西邮漫记”--自由照耀中国

"西邮漫记"--自由照耀中国        九月初在北京linuxWorld大会上我遇见了久违的陈莉君教授,陈教授是西安邮电学院计算机系教授Linux内核的老师,上次相识是在广州参加广东Linux推进...
  • arthur5933
  • arthur5933
  • 2007年09月20日 17:29
  • 4972

意外的offer——上海汉得信息技术股份有限公司

上海汉得信息技术股份有限公司 点击跳转 公司简介 上海汉得信息技术股份有限公司(HAND Enterprise Solutions Co., Ltd. SZ:300170)的核心团队于1996年起...
  • thqy39
  • thqy39
  • 2017年06月20日 20:04
  • 2344

[ACM] 第八届西邮杯初赛题解

Problem A: 加法变乘法Time Limit: 10 Sec Memory Limit: 256 MBDescription已知X可以写成从1开始连续若干个整数的和,...
  • hepangda
  • hepangda
  • 2017年06月18日 14:28
  • 327

小组项目总结

项目总结 为期两周的项目已经告一段落,在这做项目的两周之中,我们发现了许多自身的问题,同样也学习到了许多东西,宝贵的经验,让我们不断成长,不断完善自己,下面是对这为期两周做项目的一个总结。 一...
  • Momeory
  • Momeory
  • 2015年11月17日 13:10
  • 1510
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:西邮linux小组面试题总结(2016-5-30)
举报原因:
原因补充:

(最多只允许输入30个字)