Re: [問題] 一些考題有請指教
※ 引述《tsamarfi (一 擊 入 魂)》之銘言:
: 標題: [問題] 一些考題有請指教
: 時間: Fri Apr 12 22:50:00 2013
:
: 各位好,目前在準備國考,又是個程式新手,碰到以下幾個問題想請各位指點,謝謝。
:
: 我會加入些我的想法,請指正,錯得離譜請海涵<(_ _)>
:
: 1. #include<stdio.h>
: int main() {
: int choice=1;
: switch(choice)
: {
: case 1:
: printf("*");
break;
: case 2:
: printf("**");
break;
: case 3:
: printf("***");
break;
}
: return 0;
: }
:
: 答案:******
: 我的想法:choice=1,應該是case 1的輸出吧?就是一顆而已。但是答案是六顆,
: 感覺像是case1到3全跑過一次!?
解答:加上break;即可
Switch 用法 http://openhome.cc/Gossip/CppGossip/switchStatement.html
: ==============================================================================
: 2. (只節錄一段看不懂的部分,是條件判斷)
: a=10, b=5
: if(!a>100 && b<6)是真還是假呢?
:
: 我的想法:b<6是真,但是a>100是假,但因為前面有個代表否定的"!"所以變成真。
: 因此真&&真=真。
解答:
運算子先判斷a>100 是假 然後取"反轉(反轉)"變成真 然後 b<6為真
然後真&&真為真
: ==============================================================================
: 3. #include<stdio.h>
: int main()
: {
: int a=64, b=1;
: printf("%/d", a>>(1+(b<<2)));
: return 0;
: }
:
: 答案:2
: 我的想法:這題真的搞不懂...抱歉。
解答:
拆開a>>(1+(b<<2))
B<<2,二進位為 00000001,然後>> 2,變成00000100 = 4
1+4 = 5 這行不解釋
a>>5,a二進位為 01000000,然後>>5,變成 00000010 = 2
: ==============================================================================
: 4. #include<stdio.h>
: int foo1(int v)
: {
: int a=0;
: a+=v;
: return a;
: }
: int foo2(int v)
: {
: static int a=0;
: a+=v;
: return a;
: }
: int main()
: {
: foo1(10);
V=5,a=10
: foo2(10);
V=5,a=10
: printf("%d %d", foo1(5), foo(5));
foo1(5),v=5 ,a =0+5 = 5
foo2(5),v=5 ,a =10+5=15
: return 0;
: }
: 答案:5 15
: 我的想法:一開始foo1和foo2的v=10,所以加進去後兩者的a=10,接著printf內再
: 輸入v=5,再加進a裡面,foo1應該為15,foo2的a被static,所以還是5。
: 輸出應該為 15 5。但是完全顛倒...
: ==============================================================================
: 以上幾題請不吝指教,謝謝!
感謝bibo9901指點,豁然開朗阿!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.248.32.130
→
04/12 23:29, , 1F
04/12 23:29, 1F
→
04/12 23:31, , 2F
04/12 23:31, 2F
→
04/12 23:32, , 3F
04/12 23:32, 3F
※ 編輯: timestoprun 來自: 60.248.32.130 (04/12 23:36)
推
04/12 23:51, , 4F
04/12 23:51, 4F
→
04/13 00:13, , 5F
04/13 00:13, 5F
推
04/13 01:15, , 6F
04/13 01:15, 6F
推
04/13 01:26, , 7F
04/13 01:26, 7F
→
04/13 01:26, , 8F
04/13 01:26, 8F
→
04/13 01:31, , 9F
04/13 01:31, 9F
→
04/13 01:31, , 10F
04/13 01:31, 10F
推
04/13 01:42, , 11F
04/13 01:42, 11F
→
04/13 01:45, , 12F
04/13 01:45, 12F
推
04/13 01:51, , 13F
04/13 01:51, 13F
→
04/13 01:51, , 14F
04/13 01:51, 14F
推
04/13 02:04, , 15F
04/13 02:04, 15F
→
04/13 02:18, , 16F
04/13 02:18, 16F
→
04/13 02:20, , 17F
04/13 02:20, 17F
→
04/13 02:21, , 18F
04/13 02:21, 18F
→
04/13 02:21, , 19F
04/13 02:21, 19F
推
04/13 02:34, , 20F
04/13 02:34, 20F
→
04/13 02:36, , 21F
04/13 02:36, 21F
推
04/13 02:41, , 22F
04/13 02:41, 22F
→
04/13 14:28, , 23F
04/13 14:28, 23F
推
04/14 12:30, , 24F
04/14 12:30, 24F
討論串 (同標題文章)