第9周:指针与字符串(进阶)

1 指针的使用随堂测验

1、对于:int a[] = {5, 15, 34, 54, 14, 2, 52, 72}; int *p = &a[5]; 则: p[-2]的值是?
    A、编译出错,因为数组下标越界了
    B、运行出错,因为数组下标越界了
    C、54
    D、2

2、如果:int a[] = ; int *p = a; 则以下哪些表达式的结果为真?
    A、p == a[0]
    B、p == &a[0]
    C、*p == a[0]
    D、p[0] == a[0]

3、以下变量定义: int* p,q; 中,p和q都是指针。

4、对于:int a[] = {5, 15, 34, 54, 14, 2, 52, 72}; int *p = &a[1]; 则: p[2]的值是?

2 指针运算随堂测验

1、对于以下代码段,正确的说法是:char *p; while (1) { p = malloc(1); *p = 0; }
    A、最终程序会因为没有没有空间了而退出
    B、最终程序会因为向0地址写入而退出
    C、程序会一直运行下去
    D、程序不能被编译

2、对于以下代码段:int a[] = {1,2,3,4,5,}; int *p = a; int *q = &a[5]; printf("%d", q-p); 当sizeof(int)为4时,以下说法正确的是:
    A、因为第三行的错误不能编译
    B、因为第三行的错误运行时崩溃
    C、输出5
    D、输出20

3、使用malloc就可以做出运行时可以随时改变大小的数组

第9周编程题

1、字符串比对

第10周:结构类型

2 结构(重点)随堂测验

1、有下列代码段,则输出结果是:struct { int x,y; } s[2] = { {1,3}, {2,7}, }; printf("%d\n", s[0].y/s[1].x);
    A、0
    B、1
    C、2
    D、3

2、有如下变量定义,则对data中的a的正确引用是:struct sk { int a; float b; } data, *p=&data;
    A、(*p).data.a
    B、(*p).a
    C、p->data.a
    D、p.data.a

3、以下两行代码能否出现在一起? struct { int x; int y; } x; struct { int x; int y; } y;

第10周-2:链表

第10周编程练习

1、逆序输出