日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

常见的面试题(整理)

發布時間:2025/10/17 编程问答 7 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常见的面试题(整理) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下面程序的輸出結果?

#include<stdio.h>int main(void) {int i = 300;//300 = (00000001 00101100)二進制char *ptr = (char*)(&i);// *ptr = 00101100 = 44 ptr指向低八位*++ptr = 2;// 00000001 變為 00000010 ++ptr指向高八位printf("%d\n",i);//i= (00000010 00101100) 二進制 = 556return 0; }
結果:556
原因分析:在代碼(1)中定義了一個char型的指針類型,指向了變量i。整數300的二進制為00000001 00101100,在代碼(1)中根據Gdb的調試,打印出的*ptr=44,300存儲在內存中的格式如果是小端的話為:00101100 00000001 指向的是內存中的前一個字節,也就是前八位。在語句(2)中++ptr指向了00000001后八位,然后賦值為2,00000001 修改為00000010,所以這是i為00000010 00101100,十進制為556。

#include <stdio.h> int main(void) {unsigned int i;for(i=1;i>-2;i--){printf("C aptitude\n");}return 0; }結果:沒有任何的輸出。
原因分析:在程序中定義了unsigned int i;i是一個無符號的類型變量,當無符號的類型變量變和有符合的類型變量進行比較是,也就是1和-2進行比較,-2會自動轉變無符號整數,也就是轉換為4294967294。所以for循環不會執行,不能打印出 C aptitude。

這里主要涉及到C語音的整數自動轉換原則。當表達式中存在有符號類型和無符號類型時所有的操作數都自動轉換為無符號類型。因此,從這個意義上講,無符號數的運算優先級要高于有符號數。

linux中fork()函數詳解(原創!!實例講解)http://blog.csdn.net/jason314/article/details/5640969 ?不錯的博客

#include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(void) {int num = 0;pid_t pid = fork();num +=1;if(pid ==0){sleep(2);printf("%d\n",num);}else{sleep(4);printf("%d\n",num);}return 0; }輸出結果為:
(隔4秒)1
(隔2秒)1
原因分析:fork一個進程會復制父進程的大部分資源,比如堆指針、棧指針和標志寄存器。但有些特性還是子進程所特有的,子進程中會把父進程的信號號位圖清除。因為子進程復制了父進程的數據,所以這里打印了兩次1.

基礎知識:

1)fork函數總是“調用一次,返回兩次”,在父進程中調用一次,在父進程和子進程中各返回一次。fork在子進程中的返回值是0,而在父進程中的返回值則是子進程的id。
2)子進程在創建的時候會復制父進程的當前狀態(PCB信息相同,用戶態代碼和數據也相同)。
3)程序運行的結果基本上是父子進程交替打印,但這也不是一定的,取決于系統中其它進程的運行情況和內核的調度算法。

#include <stdio.h> int main(void) {static int i = 5;if(--i){main();printf("%d",i);}return 1; }
輸出結果:0000
原因分析:該問題涉及到遞歸和靜態變量。Static變量i在每次調用時,并不會進行重新賦值,存儲在數據段,所有的調用共享同一個i.

#include <stdio.h> int main(void) {int i = 0;for(;i++;printf("%d",i));printf ("i = %d\n",i);return 0; }
輸出結果:i=1
原因分析:在進入循環后,判斷條件為i++時,這時候的i為0,不成立,所以不會執行printf("%d",i),所以輸出結果為i=1

總結

以上是生活随笔為你收集整理的常见的面试题(整理)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。