以下程序中调用scanf函数给变量a输入数值的方法是错误的,其

题目

以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误的原因是()。    main( )  { int *p,*q,a,b;     p=&a;     printf(“input a:”);     scanf(“%d”,*p);     ……  }

  • A、*p表示的是指针变量p的地址
  • B、*p表示的是变量a的值,而不是变量a的地址
  • C、*p表示的是指针变量p的值
  • D、*p只能用来说明p是一个指针变量
参考答案和解析
正确答案:B
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有定义语句:intx,y;若要通过scanf(“%d,%d“,语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的有()。

A、1112

B、11,12

C、11,12

D、11,12


参考答案:BCD

第2题:

已知inta,b;doublec;则以下语句中错误的函数调用是 A.scanf("%d,%x,%lf",&a,&am

已知int a,b;double c;则以下语句中错误的函数调用是

A.scanf("%d,%x,%lf",&a,&b,&c);

B.scanf("%d,%d,%le",&a,&b,&c);

C.scanf("%o,%x,%o",&a,&b);

D.scanf("%d,%o,%e",&a,&b,&c);


正确答案:D

第3题:

有以下结构体说明、变量定义和赋值语句

struct STD

{ char name[10];

int age;

char sex;

} s[5],*ps;

ps=&s[0];

则以下 scanf 函数调用语句中错误引用结构体变量成员的是

A)scanf("%s",s[0].name);

B)scanf("%d",&s[0].age);

C)scanf("%c",&(ps->sex));

D)scanf("%d",ps->age);


正确答案:D
答案 D
解析:在 scanf 函数中,第 2 个参数应该表示为地址变量,而选项 D 只是一个具体的值,而并不是一个地址值。

第4题:

有定义语句:int x, y;,若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是

A.11 12<回车>

B.11, 12<回车>

C.11,12<回车>

D.11,<回车>12<回车>


正确答案:A
解析:在输入函数中由于出现了非格式说明符“,”,则输人数据时,非格式说明符必须原样输入。

第5题:

有定义语句:“int x,y;”,若要通过“scanf("%d,%d,&x,&y);”语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是

A.11 12<回车>

B.11, 12<回车>

C.11,12<回车>

D.11,<回车> 12<回车>


正确答案:A
解析:本题考核的知识点是scanf()函数的运用。seanf()函数有两个参数,第一个参数为输入格式字符串,第二个参数为输入变量地址列表,在scallf()语句中非格式字符可以作为输入时数据的间隔,输入时必须原样输入,在本题中输入格式串为%d,%d其中“,”为非格式字符,所以输入时必须原样输入。所以4个选项中选项A符合题意。

第6题:

有以下结构体说明、变量定义和赋值语句 struct STD { char name[10]; int age; char sex; }s[5],*ps; ps=&s[0]; 则以下scanf函数调用语句中错误引用结构体变量成员的是______。

A.scanf("%s",s[0].name);

B.scanf("%d",&s[0].age);

C.scanf("%c",&(ps->sex));

D.scanf("%d",ps->age);


正确答案:D
解析:要给结构体成员输入数据,在scanf语句中需要使用结构体成员的地址。函数scanf是C语言的标准输入函数,其作用是在终端设备上输入数据,而且要求输入项必须是某个存储地址。选项A中是引用结构体数组s的第0个元素s[0]的name成员,name是包含10个元素的数组,数组名就表示数组的地址,也就代表s[0].name的地址,所以选项A是正确的。选项B显然也是正确的,选项C是先用指针变量引用结构体的成员sex后取它的地址,也是正确的。选项D用指针变量引用结构体的成员sex后没有再继续取其地址,所以是错误的。

第7题:

有定义:int x,y;若要通过scanf("%d,%d",&x,&y);使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是( )。

A.11 12<回车>

B.11,12<回车>

C.11, 12<回车>

D.11,<回车>12<回车>


正确答案:A
解析:格式输入函数的一般形式为:scanf(格式控制,地址表列)在“格式控制”字符串中,除格式说明以外的其他字符为按原样输入的字符,在输入数据时应按原样输入这些字符。所以输入时,两个数字之间的逗号是不可少的。

第8题:

以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是()。includemain(){int *p, *q, a, bp=&aprintf("input a:")scanf("%d", *p)…}

A.*p表示的是指针变量p的地址

B.*p表示的是变量a的值,而不是变量a的地址

C.*p表示的是指针变量p的值

D.*p只能用来说明p是一个指针变量


答案:B

第9题:

若a是float型变量,b是unsigned型变量,以下输入语句合法的是 ( )

A.scanf("%6. 2f%d",&a,&b);

B.scanf("%f%n",&a,&b);

C.scanf("%f%3o",&a,&b);

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


正确答案:C

第10题:

以下程序中调用cin函数给变量a输人数值的方法是错误的,其错误原因是includevoid ma

以下程序中调用cin函数给变量a输人数值的方法是错误的,其错误原因是 #include<iostream.h> void main() { int*p,*q,a,b; p=&a; cout<<”input a:”; cin>>p; }

A.*p表示的是指针变量p的地址

B.p表示的是变量a的地址,而不是变量a的值

C.*p表示的是指针变量p的值

D.*p只能用来说明p是一个指针变量


正确答案:B
解析:p表示的是变量a的地址,定义后*p表示的是变量a的值。

更多相关问题