10.若已定义 int a[9],*p=a; 并在以后的语句中未改变p的值,则不能表示a[1]地址的表达式是( ).
问题描述:
10.若已定义 int a[9],*p=a; 并在以后的语句中未改变p的值,则不能表示a[1]地址的表达式是( ).
10.若已定义
int a[9],*p=a;
并在以后的语句中未改变p的值,则不能表示a[1]地址的表达式是( ).
(A)p+1 (B)a+1 (C)a++ (D)++p
11.若有下述说明和语句
int **pp,*p,a=10,b=20;
pp=&p;
p=&a;
p=&b;
printf("%d,%d\n",*p,**pp);
则输出结果是( ).
(A)10,10 (B)10,20 (C)20,10 (D)20,20
12.执行下述程序后的输出结果是( ).
#include
func(int a)
{
int b=0;
static int c=3;
a=c++,b++;
return (a);
}
main()
{
int a=2,i,k;
for (i=0;i
答
10.c(a++为后置运算:C语言先引用变量的数值作为整个自违章罚款表达式的值,然后执行对该变量的加1运算)
11.D(p最终的值为&b,所以*pp最终的值也为&b,输出语言中.*p即为取&b地址中的数值,即b的值20,**pp同理)
12.A(如果没错的话应该是:在子函数中变量c为静态变量,即无论子函数被调用多少次,其初始值一直为3,而在子函数中a=c++,被赋值,其最终值只与c有关,与主函数中的a并无关系.再者由于后置自增运算,a的值就等于c的初始值3.其实整个主函数只是一个迷惑,并不起实质作用.)
13.这一题打字说不清楚,偶就不解释了,你不明白就问身边同学吧