有定义“int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p = a;",则值为6 的表达式是( )。
A. *p + 6
B. *(p + 6)
C. *p += 5
D. p + 5
设有定义“int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10},*p = &a[3], b;”,则执行语句“b = p[5];”后变量b的值为( )。
A. 5
B. 6
C. 8
D. 9
下列叙述中错误的是( )。
A. 改变函数形参的值,不会改变对应实参的值
B. 函数可以返回地址值
C. 可以给指针变量赋一个整数作为地址值
D. 当在程序的开头包含文件stdio.h时,可以给指针变量赋NULL
以下程序的输出结果是( )。void f(int *q){int i = 0;for(; i < 5; i++) (*q)++;}int main(void){int a[5] = {1, 2, 3, 4, 5}, i;f(a);for( i = 0; i < 5; i++ ) printf("%d,", a[i] );return 0;}
A. 2, 2, 3, 4, 5
B. 6, 2, 3, 4, 5
C. 1, 2, 3, 4, 5
D. 2, 3, 4, 5, 6