每個人心中都有一份恐懼,
如果把恐懼融入到生活中,
漸漸的就會無視於它的存在,
就像走在鋼索上的人,
永遠沒有害怕的權力,
因為眼前所要面對的不是恐懼,
而是有沒有體力繼續走下去。
2014年4月16日 星期三
2014年4月10日 星期四
C語言 - 面試考題
1.給變數 int *p, *q, *r,使用malloc取得空間,計算1+…+10的值,用printf印出。
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { char *p, *q, *r; p = malloc(sizeof(unsigned int)); q = malloc(sizeof(unsigned int)); r = malloc(sizeof(unsigned int)); *p = 1; *q = 1; *r = 0; for (*p = 0; *p < 10; (*p)++) { *r += *q; (*q)++; } printf("sum = %d\n", *r); free(p); free(q); free(r); return 0; }2.int a=3, b=5,寫一個swap(),使得 a=5, b=3。
#include <stdio.h> void swap(int *a, int *b) { *a = *a ^ *b; *b = *a ^ *b; *a = *a ^ *b; } int main(int argc, char *argv[]) { int a = 5, b = 10; printf("a = %d, b = %d\n", a, b); swap(&a, &b); printf("a = %d, b = %d\n", a, b); return 0; }3.x的內容為1,2,3,4,用loop分別印出。
typedef struct struct_list { int x; struct struct_list *next; }llst;
#include <stdio.h> #include <stdlib.h> typedef struct struct_list { int x; struct struct_list *next; } llst; int main(int argc, char *argv[]) { llst *ptr, *head; int num, i, sum = 0; ptr = malloc(sizeof(struct struct_list)); head = ptr; printf("please input 5 numbers => \n"); for (i = 0; i < 5; i++) { scanf("%d", &num); ptr->x = num; ptr->next = malloc(sizeof(struct struct_list)); if (i == 4) ptr->next = NULL; else ptr = ptr->next; } ptr = head; while (ptr) { printf("ptr->x = %d\n", ptr->x); sum += ptr->x; ptr = ptr->next; } printf("sum = %d\n", sum); return 0; }4. 請問f要如何宣告,可得到如下結果 </ br> Input 1</ br> Input 2</ br>
#include <stdio.h> int aoo(int a) { Printf(“Input%d\n”, a); } int boo(int b) { Printf(“Input%d\n”, b); } Int main() { f=aoo; f(1); f=boo; f(2); }
#include <stdio.h> int aoo(int a) { printf("input %d\n", a); return 0; } int boo(int b) { printf("input %d\n", b); return 0; } int main(int argc, char *argv[]) { int (*f)(int a); f = aoo; f(1); f = boo; f(2); return 0; }5.請寫一個遞回(recursive)範例
#include <stdio.h> int recursive(int n) { if (n == 1) return 1; return recursive(n - 1) + n; } int main(int argc, char *argv[]) { printf("sum = %d\n", recursive(5)); printf("sum = %d\n", recursive(10)); return 0; }6. int x=2, y=3, z; z=(x++)+y; 請問 x=? y=? z=?
#include <stdio.h> int main(int argc, char *argv[]) { int x = 2, y = 3, z; z = (x++) + y; /* x = 3, y = 3, z = 5 */ printf("x = %d, y = %d, z = %d\n", x, y, z); return 0; }
訂閱:
文章 (Atom)