问题

有以下程序

#include <stdio.h>

main( )

{ int a[ ]={1,2,3,4},y,*p=&a[3];

--p; y=*p; printf("y=%d\n",y);

}

程序的运行结果是

A)y=0

B)y=1

C)y=2

D)y=3

参考答案
您可能感兴趣的试题
  • 以下错误的定义语句是A)int x[][3]={{0},{1},{1,2,3}};B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][
  • 设有如下程序段char s[20]= Be i jing,*p;p=s;则执行 p=s; 语句后,以下叙述正确的是A) 可以用 *p 表示 s[0]B)s 数组中元素的个数和 p 所指字符串长度相
  • 若有定义: int a[2][3]; ,以下选项中对 a 数组元素正确引用的是A)a[2][!1]B)a[2][3]C)a[0][3]D)a[1>2][ !1]
  • 有定义语句: char s[10]; ,若要从终端给 s 输入 5 个字符,错误的输入语句是A)gets(&s[0]);B)scanf(%s,s+1);C)gets(s);D)scanf(%s
  • 以下叙述中错误的是A) 在程序中凡是以 “ # ” 开始的语句行都是预处理命令行B) 预处理命令行的最后不能以分号表示结束C)#define MAX 是合法的宏定义命令行D)C 程序对预处理命令行的处
  • 以下结构体类型说明和变量定义中正确的是A)typedef struct{int n; char c;} REC;REC t1,t2;B)struct REC;{int n; char c;};REC