Re: [問題] 一些考題有請指教
獻醜了..
※ 引述《tsamarfi (一 擊 入 魂)》之銘言:
: 各位好,目前在準備國考,又是個程式新手,碰到以下幾個問題想請各位指點,謝謝。
: 我會加入些我的想法,請指正,錯得離譜請海涵<(_ _)>
: 1. #include<stdio.h>
: int main() {
: int choice=1;
: switch(choice)
: {
: case 1:
: printf("*");
: case 2:
: printf("**");
: case 3:
: printf("***");
: }
: return 0;
: }
: 答案:******
: 我的想法:choice=1,應該是case 1的輸出吧?就是一顆而已。但是答案是六顆,
: 感覺像是case1到3全跑過一次!?
我的看法: 因為case中沒有break; 所以會從case1一路做到case3; 所以是6顆..
: ==============================================================================
: 2. (只節錄一段看不懂的部分,是條件判斷)
: a=10, b=5
: if(!a>100 && b<6)是真還是假呢?
: 我的想法:b<6是真,但是a>100是假,但因為前面有個代表否定的"!"所以變成真。
: 因此真&&真=真。
(a>100)==>false
!(a>100)==>true
b<6 ==>true
所以(!a>100 && b<6)==>true
PS:我實在不想去背運算子的優先順..
: ==============================================================================
: 3. #include<stdio.h>
: int main()
: {
: int a=64, b=1;
: printf("%/d", a>>(1+(b<<2)));
: return 0;
: }
: 答案:2
: 我的想法:這題真的搞不懂...抱歉。
a=1000000(二進制)
a>>(1+(b<<2))==>a>>(1+(4))==>a>>5==>a=2
: ==============================================================================
: 4. #include<stdio.h>
: int foo1(int v)
: {
每次呼叫都會執行a=0
所以return值等於v
: int a=0;
: a+=v;
: return a;
: }
: int foo2(int v)
: {
因為有static, 所以a=0只會做一次,
所以return值等於上次的a + 這次的v
: static int a=0;
: a+=v;
: return a;
: }
: int main()
: {
: foo1(10);
foo2(10);==>a=10
: foo2(10);
foo2(5);==>a=10+5
: printf("%d %d", foo1(5), foo(5));
: return 0;
: }
: 答案:5 15
: 我的想法:一開始foo1和foo2的v=10,所以加進去後兩者的a=10,接著printf內再
: 輸入v=5,再加進a裡面,foo1應該為15,foo2的a被static,所以還是5。
: 輸出應該為 15 5。但是完全顛倒...
: ==============================================================================
: 以上幾題請不吝指教,謝謝!
以上..
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.210.106.78
→
04/15 15:53, , 1F
04/15 15:53, 1F
→
04/15 15:54, , 2F
04/15 15:54, 2F
→
04/15 15:55, , 3F
04/15 15:55, 3F
推
04/15 17:44, , 4F
04/15 17:44, 4F
→
04/15 22:57, , 5F
04/15 22:57, 5F
→
04/15 22:58, , 6F
04/15 22:58, 6F
→
04/15 23:05, , 7F
04/15 23:05, 7F
→
04/15 23:05, , 8F
04/15 23:05, 8F
→
04/15 23:06, , 9F
04/15 23:06, 9F
→
04/15 23:11, , 10F
04/15 23:11, 10F
→
04/15 23:11, , 11F
04/15 23:11, 11F
推
04/16 13:07, , 12F
04/16 13:07, 12F
推
04/28 22:10, , 13F
04/28 22:10, 13F
→
04/28 22:12, , 14F
04/28 22:12, 14F
討論串 (同標題文章)