f(p,a);
printf(\,*p); }
f(int *s,int p[ ][3]) {*s=p[1][1];}
A) 1 B) 4 C) 7 D) 5
65. 以下程序的输出结果是: main()
{char *s=\;
int v[4]={0,0,0,0},k,i; for(k=0;s[k];k++) {switch(s[k]) {case '1':i=0; case '2':i=1; case '3':i=2; case '4':i=3; }
v[i]++; }
for(k=0;k<4;k++) printf(\ \,v[k]); }
A) 4 2 1 1 B) 0 0 0 8 C) 4 6 7 8 D) 8 8 8 8
66. 以下程序的输出结果是 #include
{ char *p1,*p2,str[50]=\; p1=\;p2=\;
strcpy(str+1,p2+1);strcpy(str+3,p1+3); printf(\,str); }
A) AfghdEFG B) Abfhd C) Afghd D) Afgd
67. 若已定义:int a[9],*p=a;并在以后的语句中未改变P的值,不能表示a[1]地址的表达式是: A) p+1 B) a+1 C) a++ D) ++P
68. 以下程序的输出结果是 main()
{ char a[10]={'1','2','3','4','5','6','7','8','9',0},*P; int i;i=8;p=a+i; printf(\,p-3);
}
A) 6 B) 6789 C) '6' D) 789
69. 下列程序执行后的输出的结果是 main()
{int a[3][3],*p;p=&a[0][0]; for(i=0; i<9;i++) p[i]=i+1; printf(\}
A) 3 B) 6
C) 9 D) 随机数
70. 下列程序执行后的输出的结果是
void func(int *a,int b[ ]){b[0]=*a+6;} main()
{int a,b[5];a=0;b[0]=3; func(&a,b);
printf(\}
A) 6 B) 7 C) 8 D) 9
71. 下列程序运行后的输出结果是 void fun(int *x,int *y)
{printf(\,*x,*y);*x=3;*y=4;} main()
{int x=1,y=2; fun(&x,&y);
printf(\}
A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2
72. 下列程序的输出结果是 main()
{int a[ ]={1,2,3,4,5,6,7,8,9,0},*P; p=a;printf( \,*p+9); }
A) 0 B) 1 C) 10 D) 9
73. 以下程序运行后,输出的结果是 main()
{char *s=\;s+=2;printf(\,s);}
A) cde B) 字符C的ASCII码值
C) 字符C的地址 D) 出错
74. 现已定义:char b[5],*p=b;下列正确的赋值语句是 A) b=\; B) *b=\; C) p=\; D) *p=\;
75. 现已定义:char s[10],*p=s;下列不正确的赋值语句是 A) p=s+5; B) s=[p+5]; C) s[2]=p[4]; D) *p=s[0];
76. 现有定义语句:char **s;下列正确的赋值语句是 A) s=\; B) *s=\; C) **s=\; D) *s='A';
77. 现有定义语句:char *p,* q;下列正确的赋值语句是 A) p*=3; B) p/=q; C) p+=3; D) p+=q;
78. 说明语句\ (*p)();\的含义是 A) P是一个指向一维数组的指针变量
B) P是指针变量,它指向一个整型数据的指针
C) P是一个指向函数的指针,该函数的返回值为整型 D) 以上答案都不对
79. 下列程序段执行后,变量i的正确结果是 int i;
char *s=\; for(i=0;*s++;i++);
A) 7 B) 8 C) 9 D) 10
80. 已知定义\ a[ ]={1,2,3,4},y,*p=&a[1];\执行y=(*- -p)++后,y的值是 A) 0 B) 1 C) 2 D) 3
81. 已知定义\ b[ ]={1,2,3,4},y,*p=b;\执行y=*p++后,y的值是
A) 1 B) 2 C) 3 D) 4
82. 已知定义\ *a,b[5];\,并执行了a=malloc(80);之后, 以下语句中正确的是
A) scanf(\,*a); B) b=a;
C) b=\; D) a=\;
83. C语言的说明语句\ *p[5];\的 含义是
A) P是一个指针数组,其数组的每一个元素是指向字符的指针 B) P是一个指针,指向一个数组,数组的元素为字符型 C) A和B均不对,但它是C语言正确的语句 D) C语言不允许这样的说明语句
84. 若有以下说明和语句,且0<=i<10,则对数组元素的错误引用是 int a[ ]={1,2,3,4,5,6,7,8,9,0},*p,i; p=a;
A) *(a+i) B) a[p-a] C) p+i D) *(&a[i])
85. 若有以下说明和语句,且0
A) *(a+i) B) a[p-a] C) p+i D) *(&a[i]) C
86. 在以下说明中,标识符prt是 int (*prt)[3]; A) 说明不合法
B) 是一指针数组名,每个元素是一个指向整型变量的指针 C) 是一个指针,它指向一个具有三个整型元素的一维数组 D) 是一个指向整型变量的指针
87. 下列程序的输出结果是 #include
{int a[ ]={1,2,3,4,5,6},*p; p=a;
*(p+3)+=2;
printf(\}
A) 0,5 B) 1,5 C) 0,6 D) 1,6
88. 与以下说明语句等价的说明语句是 int *p[4];
A) int p[4]; B) int *p; C) int *(p[4]); D) int(*p)[4]; C
89. 若有说明语句\ a[4][10];\且0<=i<4,0<=j<10, 则对数组元素a[i][j]的错误引用是
A) *(&a[0][0]+10*i+j) B) *(a+i)[j] C) (*(*a+i)+j) D) *(a[i]+j)
90. 若有说明语句\ a[4][3],b[3][4],(*prt) [3];\, 且0<=i<3,则下列正确的赋值语句是
A) prt=a; B) prt=b; C) prt=b[i]; D) prt=a[i];
91. 下面程序输出的结果是 # include
{int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i; for(i=0;i<4;i++) p[i]=&a[i*3];
printf (\}
A) 输出项不合法,输出结果确定 B) 6 C) 8 D) 12
92. 若在C程序中有以下说明和语句,则下面表示的都是对数组元素 的正确引用的是(其中0<=i<4, 0<=j<3) main( )
{int a[4][3]={0},*ptr[3],i,j; ptr=a; . . . }
A) a[i][j], a[i]+j, *(*(a+i)+j) B) *(ptr+i)[j], ptr[i]+j, *(*(ptr+i)+j) C) *(ptr+i)[j], *(a+i)[j], *(ptr+i) D) ptr[i][j], *(ptr[i]+j),*(a[i]+j)
93. 下列程序的输出结果是 #include
{int a[20],*p[4],i,j,k=0; for(i=0;i<20;i++) a[i]=i;
for(i=0;i<4;i++) p[i]=&a[i*(i+1)]; for(i=0;i<4;i++) k=k+*(p[i]+i); printf(\}
A) 10 B) 26
C) 6 D) 数组元素引用不合法,输出结果不定
94. 若有以下说明和语句,则对a数组元素的错误引用是