PTA之指针错误

1.

以下正确的说明语句是(D )。

A.int *b[ ] = {1, 3, 5, 7, 9};

B.

int a[ ] = {1, 3, 5, 7, 9}; 
int *num[5] = {a[0], a[1], a[2], a[3], a[4]};

C.

int a[3][4], (*num)[4]; 
num[1] = &a[1][3];

D.

int a[5], *num[5] = {&a[0], &a[1], &a[2], &a[3], &a[4]};

A.指针数组,不能赋值整型数

B.指针数组num[],a[0]为int

C.

2.

对于以下变量定义,正确的赋值是(C)。

int *p[3], a[3];

A.p = a

B.*p = a[0]

C.p[0] = &a[0]

D.p = &a[0]

A.数组名p就是一个二级指针,即p[0]的地址。a=&a[0]

B.*p=p[0],y=一级指针

D.&a[0]一级指针

3.

下面程序的运行结果是(2,4)。

#include<stdio.h>
int main(void)
{
      int x[5] = { 2, 4, 6, 8, 10 }, *p, **pp;

      p = x;
      pp = &p;
      printf("%d ", *(p++));  /* 数字后有一个空格 */
      printf("%d\n", **pp);

      return 0;
}

*(p++),用p++ 表达式计算

4.

设有以下程序段,若 k 为 int 型变量且 0≤k<4,则对字符串的不正确引用是(D )。

char str[4][10] = {"first", "secone", "third", "fourh"}, *strp[4];
int i;

for(i = 0; i < 4; i++){
    strp[i] = str[i];
}

A.strp[k]

B.*strp

C.str[k]

D.strp

B.*strp=*(&strp[0])

D.strp=&strp[0],二级指针

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值