(27)若有定义int(*Pt)[3];,则下列说法正确的是-查字典问答网
分类选择

来自胡侃的问题

  (27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了(27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了

  (27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了

  (27)若有定义int(*Pt)[3];,则下列说法正确的是

  A)定义了基类型为int的三个指针变量

  B)定义了基类型为int的具有三个元素的指针数组pt

  C)定义了一个名为*pt、具有三个元素的整型数组

  D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组

  (32)有以下程序

  #include

  #defineN8

  voidfun(int*x,inti)

  {*x=*(x+i);}

  main()

  {inta[N]={1,2,3,4,5,6,7,8},i;

  fun(a,2);

  for(i=O;i<N/2;i++)

  {printf("%d",a[i]);}

  printf("n");

  }

  程序运行后的输出结果是

  A)1313

  B)2234

  C)3234

  D)1234

  (39)有以下程序

  #include

  main()

  {inta=2,b=2,c=2;

  printf("%dn",a/b&c);

  }

  程序运行后的输出结果是

  A)O

  B)1

  C)2

  D)3

  帮我说一下27题为什么选D,32题为什么选C,39为什么选A,

1回答
2020-05-2918:20
我要回答
提示:回答问题需要登录哦!
聂博文

  (27)若有定义int(*Pt)[3];这种声明可以先把变量名字去掉,也就是int(*)[3],对于*可以这样理解,char*s等同于chars[],所以可以理解为intpt[][3],也就是D中的解释

  而对于int*pt[3],则不相同了,首先pt是一个数组,然后,*用来修饰这个数组,也就是pt是三个元素都是int指针的数组名.

  (32)有以下程序

  #include

  #defineN8

  voidfun(int*x,inti)

  {*x=*(x+i);}/**(x+i)就是x[i],*x就是x[0],此函数的功能应该很清楚了*/

  main()

  {inta[N]={1,2,3,4,5,6,7,8},i;/*数组下标从0开始*/

  fun(a,2);/*a[0]=a[2]也就是3*/

  for(i=O;i<N/2;i++)

  {printf("%d",a[i]);}

  printf("n");

  }

  程序运行后的输出结果是C)3234

  (39)有以下程序

  #include

  main()

  {inta=2,b=2,c=2;

  printf("%dn",a/b&c);/*除法运算符号,c语言运算符优先级先看一看这个地方的

  先执行a/b结果是1,再执行1&2,这个运算符是按位与运算,转换成二进制两个数是01和10,对应位都是1才为1,否则为0,所以结果为0*/

  }

  程序运行后的输出结果是0

2020-05-29 18:21:26
大家都在问
最新问答