若有说明:int*p,a=1,b;以下正确的程序段是()A、p=b;scanf("%d",p);B、scanf("%d",b);*p=b;C、p=b;scanf("%d",*p);D、p=b;*p=a;

题目

若有说明:int*p,a=1,b;以下正确的程序段是()

  • A、p=&b;scanf("%d",&p);
  • B、scanf("%d",&b);*p=b;
  • C、p=&b;scanf("%d",*p);
  • D、p=&b;*p=a;
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列程序段中,不能正确赋值的是( )。

A.char*p,ch; p=&Ch; scanf("%c",&p);

B.char*p; p=char*)malloc(1); scanf("%c",p);

C.char*p; *p=getchar();

D.char*p,ch; p=&ch; *p=getchar();


正确答案:C
解析:地址变量p指向的存储空间一定要明确,否则可能影响程序的正确性。

第2题:

以下正确的程序段是

A.cgar str[20]; scanf(“%s",&str);

B.char *p; scanf("%s",p);

C.cha str[20]; scanf("%s",&str[2])

D.char str[20],*p=str; scanf("%s",p[2]);


正确答案:C

第3题:

若有说明:int *p, a=1, b 以下正确的程序段是()。

A.p=&b

B.scanf("%d",&b)

scanf("%d", &p) *p=b

C.p=&b

D.p=&b

scanf("%d", *p) *p=a


答案:D

第4题:

若有说明:int *p,m=5,n;,以下正确的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p)

C.scanf("%d",&n);*p=n;

D.p=&n;*p=m;


正确答案:D
解析:&是求址运算符,"*"是指变量说明符。选项A)、B)应改为scanf("%d",p);选项C)中指针变量p未指向一确定的内存单元,不能为其赋值,并且这样做很危险,建议不使用。

第5题:

若有说明:int * p,m=51; n;,以下正确的程序段是()

A.p=&m; scanf("%d",&p)

B.p=&n; scanf("%d",&P)

C.scanf("%d",&p) p=&n;

D.p=&n; p=&m;


正确答案:D

第6题:

若有说明:long*p,a;,则不能通过scanf语句正确给输入项读入数据的程序段是 ( )

A.* p=&a;scanf("%1d",p);

B.p=(long*)malloc(8);scanf("%1d",p);

C.scanf("%1d",p=&a);

D.scanf("%1d",&a);


正确答案:A

第7题:

若有说明语句:double*P,a;则能通过scanf语句正确给输入项读入数据的程序段是( )。

A.*p=&a;scanf("%lf",p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%lf",*p);

D.p=&a;scanf("%lf",p);


正确答案:D
解析:*p间接引用指针指向的变量,因此“(*p)=&a”不对。scanf()的输入变量必须为地址,因此C是错误的。

第8题:

若有说明语句 : double *p,a; 则能通过 scanf 语句正确给输入项读入数据的程序段是A)*p=&am

若有说明语句 : double *p,a; 则能通过 scanf 语句正确给输入项读入数据的程序段是

A)*p=&a; scanf(" % 1f",p);

B)*p=&a; scanf(" % f",p);

C)p=&a; scanf(" % 1f",*p);

D)p=&a; scanf(" % 1f",p);


正确答案:D
(24)D) 解析 : p=&a 表示将变量 a 的地址送给指针 p; scanf( “ %lf ” ,p) 表示用键盘输入的数给变量 p 地址中。

第9题:

以下程序段完全正确的是( )。

A.int*P;scanf("%d",&p);

B.int*P;scanf("%d",p);

C.int k,*p=&k;scanf("%d",p);

D.int k,*p;*p=&k;scanf("%d¨,p);


正确答案:C
A中P是指针,没有初始化,且取P的地址即类型为指向地址的地址,与输出参数类型不符。B中指针P没有初始化,且P所指变量值不明。D*p是整型变量,&k是整型变量的地址。所以选C。

第10题:

下列程序的输出结果是()。includevoid main(){int b[6]={2,4,6,8,10,12};int*p--b,**q=

下列程序的输出结果是( )。 #include<stdio.h> void main() { int b[6]={2,4,6,8,10,12}; int*p--b,**q=&p; printf("%d",*(p++)); printf("%d",**q); }

A.*p=&a;scanf("%1f",p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%1f",*p);

D.p=&a;scanf("%1f",p);


正确答案:D
解析: double*p,a;语句表示定义了一个指向双精度型的指针变量p和双精度型变量a,而语句p=&a表示将变量a的地址赋给指针变量p;scanf("%1f",p)表示用键盘输入的数赋给指针变量p所指向的地址单元中。scanf()函数要求在输入double型数据,格式控制符必须用%1f(或%1e)。否则,数据不能正确输入。所以选项D)为正确答案。

更多相关问题