常見的C語言面試程式設計題(三)

2021-04-28 11:17:00 字數 1403 閱讀 8573

1,航天二院某所面試題,考查的是結構體和陣列的記憶體布局情況。

#include

#include

typedef struct array1a;

typedef struct array2* b;

int main()

a s1[15];

a* s2;

b s3;

for(int i=0;i<10;i++)

s2=s1+3;

s3=(b)s2;

printf("%d/n",s3->b);

return 0;

2,某通訊企業的面試題目,從字串陣列和指標字串在記憶體中的分配情況考查指標的使用。

#include

#include

#include

char *getmemory(char *p)

//當呼叫此函式時,會在棧裡分配乙個空間儲存p, p指向堆當中的一塊記憶體區,當函式呼叫結束後,若函式沒有返回值,

//系統自動釋放棧中的p

void test(void)

char *getmemory1(void)

//若換成char p="hello world"; 就會在函式呼叫結束後,釋放掉為"test1"的拷貝分配的空間,返回的p只是乙個野指標

void test1()

void getmemory2(char **p, int num)

//當呼叫此函式時,會在棧裡分配乙個空間儲存p, p指向棧中的一變數str,在此函式中為str在堆當中分配了一段記憶體空間

//函式呼叫結束後,會釋放p, 但str所在的函式test2還沒執行完,所以str此時還在棧裡.

void test2(void)

void test3(void)

}int main()

3,c語言中sizeof的用法

void fun(char s[10])

int main()

char str=;

printf("%d/n",sizeof(str));//字串陣列的大小10(包含了字元'/0')

printf("%d/n",strlen(str)));//字串的長度9

char *p=str;

printf("%d/n",sizeof(p));//指標的大小4

printf("%d/n",strlen(p));//字串的長度9

fun(str);

void *h=malloc(100);

char ss[100]="abcd";

printf("%d/n",sizeof(ss));//字串陣列的大小100

printf("%d/n",strlen(ss));//字串的長度4

printf("%d/n",sizeof(h));//指標的大小4

面試筆試程式設計題(三)

六 驗證回文串 給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true 示例 2 輸入 race a car 輸出 false def huiw...

面試程式設計題整理

1.輸入c寫乙個輸入的整數,倒著輸出整數的函式,要求用遞迴方法 要求用遞迴的方法對乙個整數進行倒敘 include void func int n else func n int main 2.編寫乙個函式,作用是把乙個char組成的字串迴圈右移n個。比如原來的是 abcdefgh 如果n 2,移位...

面試程式設計題收集

1 有n個人圍成一圈,第乙個人從1開始報數,報到m的人出列,求最後乙個出列的人,約瑟夫環問題。public void testtest int m 10 int length int m while length people.length 1 else string temp new string...