1. 程式人生 > >10.29 面試總結

10.29 面試總結

1.請問執行main函式有什麼樣的結果?

#include <stdio.h>
#include <stdlib.h>

char* getmemmory(void)
{
char p[]=“hello world”;
return p;
}

int main(int argc, char *argv[]) {
char * str=NULL;
str=getmemmory();
printf("%s",str);
return 0;
}

9 2 C:\Users\asus\Desktop\test\main.c [Warning] function returns address of local variable [-Wreturn-local-addr]

2.下面是32位的c程式,請計算結果。

int a[100];
sizeof(a)=___;

char array[20]=“hello world”;
sizeof(array)=;
strlen(array)=
;
char p=(char)malloc(sizeof(char)*100);
sizeof§=__;

3.寫出如下程式的執行結果

int main(int argc, char *argv[]) {
char *p1=“hello world”;
char p2;
p2=(char
)malloc(20);

memset(p2,0,20);
printf("%s\n",p2);
while(*p2++ = *p1++);
printf("%s\n",p2);
return 0;

}

4.計算結果

int main(int argc, char *argv[]) {

int a,b,c,d;
a=10;
b=a++;//a=11,b=10;
c=++a;//c=12,a=12;
d=10*a+++b;//d=10*12+10=130;a=13,b=10;
printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);
return 0;

}

結果:a=13,b=10,c=12,d=130;

5.const關鍵字的作用,如何理解

int main(int argc, char *argv[]) {
const int a=3;
printf("%d",a);
a=4;
printf("%d",a);
return 0;
}
以上程式碼編譯時報錯

int main(int argc, char *argv[]) {
const int a=3;
int *p =(int *)&a;
printf("%d\n",a);
*p=4;
printf("%d\n",a);
return 0;
}
結果:
3
4

const是隻讀的變數,編譯時檢查,只是告訴編譯器是隻讀變數,該變數在記憶體中還是佔用空間的,通過讀寫記憶體的方式還是可以修改它的值的。