第1題: 考查對volatile關鍵字的認識
#include
static jmp_buf buf;
main()
{
volatile int b;
b =3;
if(setjmp(buf)!=0)
{
printf("%d ", b);
exit(0);
}
b=5;
longjmp(buf , 1);
}
請問, 這段程式的輸出是
(a) 3
(b) 5
(c) 0
(d) 以上均不是
第2題:考查型別轉換
main()
{
struct node
{
int a;
int b;
int c;
};
struct node s= { 3, 5,6 };
struct node *pt = &s;
printf("%d" , *(int*)pt);
}
這段程式的輸出是:
(a) 3
(b) 5
(c) 6
(d) 7
第3題:考查遞迴呼叫
int foo ( int x , int n)
{
int val;
val =1;
if (n>0)
{
if (n%2 == 1) val = val *x;
val = val * foo(x*x , n/2);
}
return val;
}
這段程式碼對x和n完成什麼樣的'功能(操作)?
(a) x^n (x的n次冪)
(b) x*n(x與n的乘積)
(c) n^x(n的x次冪)
(d) 以上均不是
第4題:考查指標,這道題只適合於那些特別細心且對指標和陣列有深入理解的人
main()
{
int a[5] = {1,2,3,4,5};
int *ptr = (int*)(&a+1);
printf("%d %d" , *(a+1), *(ptr-1));
}
這段程式的輸出是:
(a) 2 2
(b) 2 1
(c) 2 5
(d) 以上均不是
第5題:考查多維陣列與指標
void foo(int [][3]);
main()
{
int a [3][3]= { { 1,2,3} , { 4,5,6},{7,8,9}};
foo(a);
printf("%d" , a[2][1]);
}
void foo(int b[][3])
{
++ b;
b[1][1] =9;
}
這段程式的輸出是:
(a) 8
(b) 9
(c) 7
(d)以上均不對