西郵linux小組面試題總結(2016-5-30)

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);
}

第一次寫博客,感覺怪怪的,希望各位親見諒。本學渣會加油的!!!微笑

發佈了35 篇原創文章 · 獲贊 14 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章