## 面試時間:2024/11 ### 1.What are the outputs of following program? ``` #include <stdio.h> #define PRINT_BOOL(condition) printf("%s\n", (condition)?"true":"false") void quiz1 (int x){ int i; int a=0x01; int b=0x04; PRINT_BOOL(a & b); PRINT_BOOL(a && b); for(i=0; i<4; i++) PRINT_BOOL(a<<i==b); x=(x|1); } void quiz2(int *x){ char c='B'+255; printf("%c\n", c); *x=(*x|2); } void quiz3(int x){ struct item{ short val; struct item *next; }items[]={ {5,&items[1]}, {6,&items[2]}, {7,&items[0]}, }; struct item *ptr; printf("%d\n", items[2].next->next->val); ptr=items[0].next; printf("%d\n", ptr->val); ptr=ptr+1; printf("%d\n", ptr->val); printf("%d\n", sizeof(items[0].val)); printf("%d\n", sizeof(items[0].next)); printf("%d\n", sizeof(struct item)); x=(x|4); } void quiz4 (int *x){ *x =(*x|8); printf("%d\n", *x); } int main (int argc, char **argv){ int x=0; printf("\nQ1\n"); quiz1(x); printf("\nQ2\n"); quiz2(&x); printf("\nQ3\n"); quiz3(x); printf("\nQ4\n"); quiz4(&x); return 0; } ``` * Ans: ``` Q1 false true false false true false Q2 A Q3 6 6 7 2 4 8 Q4 10 ```