实验五

发布时间 2023-05-04 17:03:20作者: 202283300683陈宏伟

#task1.1

#include <stdio.h>
#define N 4
int main()
{
int x[N] = {1, 9, 8, 4};
int i;
int *p;

for (i = 0; i < N; ++i)
printf("%d", x[i]);
printf("\n");

for (p = x; p < x + N; ++p)
printf("%d", *p);
printf("\n");

p = x;
for (i = 0; i < N; ++i)
printf("%d", *(p + i));
printf("\n");

p = x;
for (i = 0; i < N; ++i)
printf("%d", p[i]);
printf("\n");
return 0;
}

 

#task1.2

#include <stdio.h>
int main()
{
int x[2][4] = {{1, 9, 8, 4}, {2, 0, 4, 9}};
int i, j;
int *p;
int(*q)[4]; 
for (i = 0; i < 2; ++i)
{
for (j = 0; j < 4; ++j)
printf("%d", x[i][j]);
printf("\n");
} 
for (p = &x[0][0], i = 0; p < &x[0][0] + 8; ++p, ++i)
{
printf("%d", *p);
if ((i + 1) % 4 == 0)
printf("\n");
}
for (q = x; q < x + 2; ++q)
{
for (j = 0; j < 4; ++j)
printf("%d", *(*q + j));
printf("\n");
}
return 0;
}

 

#task2.1

#include <stdio.h>
#include <string.h>
#define N 80
int main()
{
char s1[] = "Learning makes me happy";
char s2[] = "Learning makes me sleepy";
char tmp[N];
printf("sizeof(s1) vs. strlen(s1): \n");
printf("sizeof(s1) = %d\n", sizeof(s1));
printf("strlen(s1) = %d\n", strlen(s1));
printf("\nbefore swap: \n");
printf("s1: %s\n", s1);
printf("s2: %s\n", s2);
printf("\nswapping...\n");
strcpy(tmp, s1);
strcpy(s1, s2);
strcpy(s2, tmp);
printf("\nafter swap: \n");
printf("s1: %s\n", s1);
printf("s2: %s\n", s2);
return 0;
}

Answer:1.

#task2.2