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;
}