[閒聊] facebook上的C語言測驗

看板C_and_CPP (C/C++)作者 (LLLLL)時間15年前 (2009/08/13 00:25), 編輯推噓53(53036)
留言89則, 33人參與, 最新討論串1/3 (看更多)
http://apps.facebook.com/mentaltest-zmacgno/ facebook上的C語言測驗 試試看自己的程度吧 有一些題目還不賴 沒有臉書的 看以下 ==全部copy過來== 1. void *i = 3; int j = 7; printf("%d\n",i+j); 請問結果為何者? a 跑出一連串亂碼的數字 b 無法編譯此程式 c 10 d 7 2. int *num; 請問要如何把 num 當作陣列使用(num[index]), 並初始化大小為10, 再塞入0~9的數字? a 這是指標 無法這樣使用 b num=(int[10]){0,1,2,3,4,5,6,7,8,9}; c *(num+0)=0;*(num+1)=1...*(num+9)=9;以此類推 d num[0]=0;num[1]=1;....num[9]=9;以此類推 3. 以下這段程式碼會跑出什麼結果?? int i=100;char str[20]="%d";printf(str,i); a 100 b 編譯階段錯誤 c 執行階段錯誤 d %d100 4. 如果老師今天要你使要迴圈來寫一支聖誕樹程式 請問最少需要使用幾個迴圈? a 3個以上 b 不需要迴圈 c 2個 d 1個 5. for(;;); 執行後會有什麼結果 a 沒有功能的語法 b 無限迴圈 c 直接結束 d 沒有這種寫法 6. i=5;printf("%d",i++); 這段語法執行後會有下列何者答案? a %d b 6 c 7 d 5 7. i=7;j=44;i^=j^=i^=j; 請問執行以上程式後 i 為多少? j 為多少? (已修正) a i=44 j=7 b C語言無法這樣寫 c 程式無法編譯 d i=7 j=44 8. 任何程式語言的第一支程式通常叫什麼 a Hello C b Hello World c How are you d Hello 9. int num[10]={8,3,4,7,5,1,2,9,0,6}; 若要取得 7 這個數字, 以下何者語法正確? a *(num+3) b *(num+4) c num[4] d num[7] ==以下是正確解答== cbadbdaba -- ███◣ █◣◥◣ █◣◥◣ ███◣ ██◣ ███◣ ███◣ ████ █ █ █◣█ ███ ██ ███ ███ █▆█ ███ ▉▉█ █▆▆ █◥◣ ███ █◥█ ██ █▆▆ 小小器材控的成長日記 450D 50mm F1.8II 24-70 F2.8L 430EXII (持續增加中) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.22.18.76

08/13 00:37, , 1F
佩服~佩服~你是C語言中的高手阿!!除了C語言的一般使用之外
08/13 00:37, 1F

08/13 00:48, , 2F
覺得facebook的很多題目都沒什麼意思
08/13 00:48, 2F

08/13 01:07, , 3F
當然...
08/13 01:07, 3F

08/13 01:08, , 4F
這題目也太容易做到高手 = =
08/13 01:08, 4F

08/13 01:13, , 5F
看來該註冊臉書了, 我被輸入帳密登入這題卡住了....XD
08/13 01:13, 5F

08/13 01:22, , 6F
>>> C語言高手
08/13 01:22, 6F

08/13 01:26, , 7F
原來C語言可以用匿名陣列
08/13 01:26, 7F

08/13 01:28, , 8F
第7題沒問題嗎@@?
08/13 01:28, 8F

08/13 01:29, , 9F
答案是正解嗎???
08/13 01:29, 9F

08/13 01:30, , 10F
我用Dev C跑的 不確定喔
08/13 01:30, 10F

08/13 01:32, , 11F
第七題是很有名的神碼啊
08/13 01:32, 11F
第七題...我好像run錯了 題目有多出一個^=i 所以第七題應該是 3 4 哇 沒答案耶

08/13 01:32, , 12F
第一題?void*+int compiler應該會報 他不知道要跳幾個By
08/13 01:32, 12F
咦 Dev C 跑得出來是 10 ※ 編輯: runtime 來自: 163.22.18.76 (08/13 01:36)

08/13 01:35, , 13F
置底文剛好有解答 XD
08/13 01:35, 13F

08/13 01:36, , 14F
第四題不用迴圈當然也可以寫啊
08/13 01:36, 14F

08/13 01:38, , 15F
不過題目有說"要用迴圈" 所以應該是1個
08/13 01:38, 15F

08/13 01:40, , 16F
Q1: 正在初始化' : 無法由 'int' 轉換為 'void *'
08/13 01:40, 16F

08/13 01:40, , 17F
Q1: error C2036: 'void *' : 未知的大小
08/13 01:40, 17F

08/13 01:41, , 18F
你跑VC2008 免費版的 試試看吧
08/13 01:41, 18F

08/13 01:43, , 19F
第二題解答好神!!
08/13 01:43, 19F

08/13 01:48, , 20F
這個問卷是不是錯很多也是高手XD?
08/13 01:48, 20F

08/13 01:55, , 21F
這只是一般的C語言觀念測驗
08/13 01:55, 21F

08/13 01:55, , 22F
要測驗高手應該10題都是pointer的題目 XD
08/13 01:55, 22F

08/13 01:59, , 23F
~~~~~9題
08/13 01:59, 23F

08/13 02:06, , 24F
void*那題C會過C++不會
08/13 02:06, 24F

08/13 02:42, , 25F
樓上大大可以詳細解說第一題嗎 @@
08/13 02:42, 25F

08/13 03:15, , 26F
.....第八題我看不出來跟c語言有什麼關係..........
08/13 03:15, 26F

08/13 03:22, , 27F
第2題解答是b?這是C++才能這樣吧!C語言的話答案是a吧!?
08/13 03:22, 27F

08/13 03:25, , 28F
不然就是要自己malloc/calloc記憶體,然後如答案d中的方
08/13 03:25, 28F

08/13 03:26, , 29F
式設定值到array的每個element(num[0] ~ num[9]).
08/13 03:26, 29F

08/13 03:28, , 30F
正好相反 c++才不能這樣用
08/13 03:28, 30F

08/13 05:19, , 31F
我怎麼覺得第二題沒有答案? 至少就我所知 {1,2,3} 這種東西
08/13 05:19, 31F

08/13 05:20, , 32F
是只能寫在初始化列上面的...
08/13 05:20, 32F

08/13 06:09, , 33F
c99新增的compound literal
08/13 06:09, 33F

08/13 07:20, , 34F

08/13 07:20, , 35F
那不是宣告也不是type cast
08/13 07:20, 35F

08/13 07:37, , 36F
第八題..出題者真腦殘
08/13 07:37, 36F

08/13 08:22, , 37F
太甘心了, 等等上班吃早餐的時候來做一下....:)
08/13 08:22, 37F

08/13 08:58, , 38F
第二題 沒看過這種用法
08/13 08:58, 38F

08/13 09:21, , 39F
錯了一大半呢, 問題是我怎麼覺得這題目還滿鳥的....
08/13 09:21, 39F

08/13 09:27, , 40F
第一題編不過的要改存檔為.c或強迫用C compiler來編.
08/13 09:27, 40F

08/13 09:27, , 41F
C++不做適當type cast那樣應該會error @_@"
08/13 09:27, 41F

08/13 09:28, , 42F
另外, 第七題無解, 答案是43 7; 要ij交換的話....
08/13 09:28, 42F

08/13 09:28, , 43F
是i^=j^=i^=j; 它多了一次^=i 本來還以為是陷阱....
08/13 09:28, 43F

08/13 09:31, , 44F
然後推第八題腦殘, 不過第二題有趣:)
08/13 09:31, 44F

08/13 11:33, , 45F
第1題竟然可這樣寫 是compiler再搞鬼嘛?
08/13 11:33, 45F

08/13 12:23, , 46F
應該是C語言本來就對異型assign檢查比較不嚴格吧??
08/13 12:23, 46F

08/13 12:25, , 47F
第一題感覺還好 ... pointer本來就跟long一樣 XD
08/13 12:25, 47F

08/13 13:05, , 48F
小弟我還以為第一題陷阱在void*, pointer和long也不算一
08/13 13:05, 48F

08/13 13:05, , 49F
樣, 樓上要不要試試把void*換成int*再看看結果:)
08/13 13:05, 49F

08/13 13:41, , 50F
我想問第一題i+j為啥會說 error C2036: 'void *' :未知的大小
08/13 13:41, 50F

08/13 13:43, , 51F
所以說第二題 vc還沒有辦法編譯過嚕?
08/13 13:43, 51F

08/13 13:46, , 52F
如果第二題那樣寫可以過 他是配置在heap區嘛?跟new一樣?
08/13 13:46, 52F

08/13 13:55, , 53F
第一題我推過了, 用C compiler不要用C++, 方法看推文= =
08/13 13:55, 53F

08/13 13:56, , 54F
第二題那個應該不是new吧....
08/13 13:56, 54F

08/13 13:57, , 55F
啊我看錯了, 樓上第一題不要理我....<(_ _)>
08/13 13:57, 55F

08/13 13:58, , 56F
其實有同樣的問題, void* 做step的時候為什麼算1 byte.
08/13 13:58, 56F

08/13 14:07, , 57F
第一題gcc編譯不過耶
08/13 14:07, 57F

08/13 14:12, , 58F
V大說作step是指什麼?
08/13 14:12, 58F

08/13 14:15, , 59F
就是pointer做+n, -n之類的動作, 隨手打的可能用錯詞彙
08/13 14:15, 59F

08/13 14:15, , 60F
了吧Orz
08/13 14:15, 60F

08/13 14:55, , 61F
不過void*我無法對他作++ --耶 是因為void 沒有規定是幾byte?
08/13 14:55, 61F

08/13 15:29, , 62F
試了一下 ... 用int*他回我 31耶 @@a why?
08/13 15:29, 62F

08/13 15:32, , 63F
加了轉型(int)i+j 才會對 orz
08/13 15:32, 63F

08/13 15:35, , 64F
4+7 *4=31 *4是因為int是4byte 一次跳4個
08/13 15:35, 64F

08/13 15:35, , 65F
打錯是3+4*7=31
08/13 15:35, 65F

08/13 15:38, , 66F
oops 大概有點頭緒了,因為左邊的型態是pointer
08/13 15:38, 66F

08/13 15:39, , 67F
右邊的型態是int,這樣有點像 *(i+j) 然後不要做deref
08/13 15:39, 67F

08/13 15:39, , 68F
只是單純的計算陣列地址 XD
08/13 15:39, 68F

08/13 16:04, , 69F
不懂void *i = 3做了什麼, 可以讓printf("%d", i)為3
08/13 16:04, 69F

08/13 16:11, , 70F
void *i=3; // 翻譯, 讓指標i指到記憶體位置0x00000003
08/13 16:11, 70F

08/13 16:12, , 71F
基本上就根void *i = NULL; 做得事情差不多....
08/13 16:12, 71F

08/13 16:12, , 72F
i=NULL時你print變數i, 它就把i目前的值(即指到的位置)
08/13 16:12, 72F

08/13 16:13, , 73F
印出來給你看, 所以print出來是3; 就好像指到NULL時印
08/13 16:13, 73F

08/13 16:14, , 74F
出來是0一樣; 記憶體位址不過用一個數字代表/記錄而已:)
08/13 16:14, 74F

08/13 16:17, , 75F
原來如此, 謝謝V大的回覆
08/13 16:17, 75F

08/13 16:23, , 76F
第一題題目有錯
08/13 16:23, 76F
※ 編輯: runtime 來自: 163.22.18.76 (08/13 16:28)

08/13 16:34, , 77F
第七題update了....Orz
08/13 16:34, 77F

08/13 16:35, , 78F
第七題不是沒答案嘛
08/13 16:35, 78F

08/13 17:21, , 79F
題目修正後就有了, 答應a :)
08/13 17:21, 79F

08/13 21:49, , 80F
沒有出 pointer pointer 跟 func pointer XD
08/13 21:49, 80F
weii:轉錄至看板 SFFamily 08/13 22:14

08/13 22:23, , 81F
C語言的謎題,網址:http://cocre.com/?p=945
08/13 22:23, 81F

08/13 23:50, , 82F
C 沒有定義pointer要 4個bytes
08/13 23:50, 82F

08/14 02:59, , 83F
說實在的,做這種題目是在浪費時間。
08/14 02:59, 83F

08/14 11:09, , 84F
題目裡有些寫法 在加速運算是有意義的:)
08/14 11:09, 84F

08/15 02:44, , 85F
two那種出法 這問卷就要當公司面試用的了..XDDD
08/15 02:44, 85F

08/15 02:44, , 86F
更正 是qr大
08/15 02:44, 86F

08/15 11:16, , 87F
第七題不能套用新手十戒的第九戒嗎@@
08/15 11:16, 87F

08/15 18:26, , 88F
不錯喔@@
08/15 18:26, 88F

08/18 02:45, , 89F
第七題跟第九戒沒有關係
08/18 02:45, 89F
文章代碼(AID): #1AWkq7jh (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1AWkq7jh (C_and_CPP)