重囗另类BBWSeⅹHD,av狼论坛,精品一卡2卡三卡4卡乱码理论,体育生gv老师浪小辉3p警察

12個常見C語言面試題及答案(3)

時間:2024-07-22 20:02:02 學(xué)人智庫 我要投稿
  • 相關(guān)推薦

12個常見C語言面試題及答案(3)

  printf("\n [%c] \n",*ptr);

12個常見C語言面試題及答案(3)

  return 0; }

  答:輸出結(jié)果應(yīng)該是這樣:

  [L] [i]

  因為“++”和“*”的優(yōu)先權(quán)一樣,所以“*ptr++”相當(dāng)于“*(ptr++)”。即應(yīng)該先執(zhí)行ptr++,然后才是*ptr,所以操作結(jié)果是“L”。第二個結(jié)果是“i”。

  9.問:修改代碼片段(或者只讀代碼)

  問:下面的代碼段有錯,你能指出來嗎?

  #include int main(void) {

  char *ptr = "Linux";

  *ptr = 'T';

  printf("\n [%s] \n", ptr);

  return 0; }

  答:這是因為,通過*ptr = ‘T’,會改變內(nèi)存中代碼段(只讀代碼)“Linux”的第一個字母。這個操作是無效的,因此會造成seg-fault或者崩潰。

  10.會改變自己名字的進程

  問:你能寫出一個在運行時改變自己進程名的程序嗎?

  答:參見下面這段代碼:

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

  int i = 0;

  char buff[100];

  memset(buff,0,sizeof(buff));

  strncpy(buff, argv[0], sizeof(buff));

  memset(argv[0],0,strlen(buff));

  strncpy(argv[0], "NewName", 7);

  // Simulate a wait. Check the process // name at this point. for(;i<0xffffffff;i++);

  return 0; }

  11.返回本地變量的地址

  問:下面代碼有問題嗎?如果有,該怎么修改?

  #include int* inc(int val) {

  int a = val;

  a++;

  return &a; } int main(void) {

  int a = 10;

  int *val = inc(a);

  printf("\n Incremented value is equal to [%d] \n", *val);

  return 0; }

  答:盡管上面的程序有時候能夠正常運行,但是在“inc()”中存在嚴(yán)重的漏洞。這個函數(shù)返回本地變量的地址。因為本地變量的生命周期就是“inc()”的生命周期,所以在inc結(jié)束后,使用本地變量會發(fā)生不好的結(jié)果。這可以通過將main()中變量“a”的地址來避免,這樣以后還可以修改這個地址存儲的值。

  12.處理printf()的參數(shù)

  問:下面代碼會輸出什么?

  #include int main(void) {

  int a = 10, b = 20, c = 30;

  printf("\n %d..%d..%d \n", a+b+c, (b = b*2), (c = c*2));

  return 0; }

  答:輸出結(jié)果是:

  110..40..60

  這是因為C語言里函數(shù)的參數(shù)默認是從右往左處理的,輸出時是從左往右。

【12個常見C語言面試題及答案(3)】相關(guān)文章:

java面試題及答案10-03

計算機二級c語言考試習(xí)題及答案07-03

名校英語面試經(jīng)典常見的面試題10-21

經(jīng)典常見面試題分析解答08-14

計算機二級C語言考試選擇題(帶答案)(3)10-23

3月計算機二級C語言真題及答案(完整版)08-26

c語言實習(xí)總結(jié)06-30

c語言讀書筆記09-28

職稱英語衛(wèi)生類c級考試真題及答案(3)10-12

英語面試常見的問題及答案10-29

主站蜘蛛池模板: 大城县| 房山区| 横山县| 天门市| 繁昌县| 石首市| 华宁县| 榆林市| 乌鲁木齐市| 乌兰县| 沧州市| 土默特右旗| 北海市| 云南省| 保靖县| 仁寿县| 嵩明县| 合山市| 小金县| 威远县| 广安市| 双牌县| 田林县| 兴宁市| 新化县| 肥西县| 保德县| 三都| 宾川县| 工布江达县| 昭通市| 浦江县| 太谷县| 元朗区| 太康县| 扎鲁特旗| 航空| 合江县| 满洲里市| 荥经县| 锡林浩特市|