设有定义:intx=0,*p=x;则语句printf(“%d/n”,*p);的输出结果是()A、随机值B、0C、x的地址D、p的地址

题目

设有定义:intx=0,*p=&x;则语句printf(“%d/n”,*p);的输出结果是()

  • A、随机值
  • B、0
  • C、x的地址
  • D、p的地址
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若有定义:int X=0,* P=&x;,则语句printf(”%d\n”,* P.的输出结果是( )。

A.随机值

B.0

C.X的地址

D.P的地址


正确答案:B
题中定义的语句等价于以下语句。故本题定义一个整型变量x和一个指向整型的指针P,并把变量X的地址赋值给P,即P为指向整型变量x的指针,则*P表示P所指向的整型变量x的数值。

第2题:

设有定义语句:

int x[-6]={2,4,6,8,5,7),*p=X,i;

要求依次输出X数组6个元素中的值,不能完成此操作的语句是( )。

A.for(i=0;i<6;i++)printf("%2d",*(p++));

B.for(i=0;i<6;i++)printf("%2d",*(pq-i));

C.for(i=0;i<6;i++)printf("%2d",*p++);

D.for(i=0;i<6;i++)printf("%2d",*(p)++);


正确答案:D
本题要求输出每个元素的值,D选项中(*p)++等价于*p=*p+1,其仅仅是对*p加1,并没有达到输出其每个值的作用。

第3题:

以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是 abs(int x) { if(x>=0)return x; else return-x;} main() { int y,z,(*p)(int x)=abs; scanf(" %d" ,&y); z=( *p)(y); ——; }

A.printf("%d%d\n",&p,z)

B.Printf("%d%d\n",p,z)

C.printf("%d%d\n",*p,z)

D.printf("%d%d\n",p,*z)


正确答案:B

第4题:

设有定义语句: int x[6]={2,4,6,8,5,7},*p=x,i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是 ______。

A.for(i=0;i<6;i++)printf("%2d",*(p++));

B.for(i=0;i<6;i++)printf("%2d",*(p+i));

C.for(i=0;i<6;i++)printf("%2d",*p++);

D.for(i=0;i<6;i++)printf("%2d",(*p)++);


正确答案:D
解析:选项D中(*p)++的意思是将p所指向的存储单元的值加1,与题意不符,错误。

第5题:

有以下程序,执行后的输出结果是()。fun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf(“%d\n”,fun(7));}

A、7

B、3

C、2

D、0


参考答案:C

第6题:

设有定义语句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有()。

A、for(i=0;i<6;i++)printf(“%2d”,*(p++));

B、for(i=0;i<6;i++)printf(“%2d”,*(p+i));

C、for(i=0;i<6;i++)printf(“%2d”,*p++);

D、for(i=0;i<6;i++)printf(“%2d”,(*p)++);


参考答案:ABC

第7题:

若有如下程序; main() {char *p="china"; p+=1; printf("%d\n",p); } 则程序运行后的输出结果是 ( )

A.china

B.字符h的地址

C.hina

D.字符h的ASCII码值


正确答案:B

第8题:

设有定义语句:intx[6]={2,4,6,8,5,7},*p=x,i;\n要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有_().

A、for(i=0;i6;i++)printf(“%2d”,*(p++));

B、for(i=0;i6;i++)printf(“%2d”,*(p+i));

C、for(i=0;i6;i++)printf(“%2d”,*p++);

D、for(i=0;i6;i++)printf(“%2d”,(*p)++);


参考答案:ABC

第9题:

设有定义语句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有_()

A、for(i=0;i<6;i++)printf(“%2d”,*(p++));

B、for(i=0;i<6;i++)printf(“%2d”,*(p+i));

C、for(i=0;i<6;i++)printf(“%2d”,*p++);

D、for(i=0;i<6;i++)printf(“%2d”,(*p)++);


参考答案:ABC

第10题:

以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是 ( )。 abs(int x) { if(x>=0)return x: else return -x;} main() { int y,z,(*p)(int x)=abs; scanf(" %d" ,&y); z=(*p)(y); ______;}

A.printf(" %d%d\n" ,&p,z)

B.printf(" %d%d\n" ,p,z)

C.printf(" %d%d\n" ,*p,z)

D.Printf(" %d%d\n" ,p,*z)


正确答案:B
解析:可以使用函数指针来调用函数。调用形式为:(*指针变量)(实参表列)。注意:调用函数和被调用函数之间的数据传递。

更多相关问题