下面程序的运行结果是( )void sub(int x,int y,int *z){*z=y-x; }main(){ int a,b,c;sub(10,5,&a); sub(7,a,&b); sub(a,b,&c);printf(“%d,%d,%d”,a,b,c);}
A. 5,2,3
B. -5,-12,-7
C. -5,-12,-17
D. 5,-2,-7
下面程序中调用scanf 函数给变量a输入数值的方法是错误的,其错误原因是( )main(){ int *p,q,a,b;p=&a;scanf(“%d”,*p);……}
A. *p表示的是指针变量p的地址;
B. *p表示的是变量a的值,而不是变量a的地址
C. *p表示的是指针变量p的值
D. *p只能用来说明p是一个指针变量
若有int k=2,*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的语句是( )
A. k=*ptr1+*ptr2;
B. ptr2=k;
C. ptr1=ptr2;
D. k=*ptr1*(*ptr2);