题目内容 (请给出正确答案)
[单选题]

以下程序中调用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 在本题中,题目告诉我们程序中调用scanf函数给变量a输入数值的方法是错误的,要求我们找出其错误的原因,这是一类错误原因分析题。 在本题程序中,首先定义两个整型指针变量p和q,然后定义两个整型变量a和b,让指针变量p执行变量a,接着输出提示语句“请输入a”,执行格式输入语句scanf,由于输入语句的输入列表中给出的应该是输入的地址,即存放输入数据的存储地址,但在本题的输入语句中给出的是*p,这表示一个数值,而非地址。因此,无法完成数据的输入,若要完成输入,可以将*p改为p。 根据上面的分析,我们可以知道本题程序出错的原因是*p表示的是变量a的值,而不是变量a的地址。因此本题正确答案选B。
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“以下程序中调用scanf函数给变量a输入数值的方法是错误的,…”相关的问题

第1题

以下程序中调用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是一个指针变量

点击查看答案

第2题

以下说法正确的是 。

A.scanf()函数的输入项可以是整型、实型、字符型等变量

B.若省略了scanf()函数中的格式控制字符,则用户在输入终端输入数据时类型不受限制

C.scanf()函数输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("% 4.2f ",&f);

D.scanf()函数输入数据时,必须指明变量的地址

点击查看答案

第3题

若有定义“int *p,a;”且“p=&a”,则语句“scanf("%d",*p)”一定是错误的,其错误原因是

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

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

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

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

点击查看答案

第4题

以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。 #include main(void) { FILE *fout; char ch; fout=fopen('abc.txt','w'); ch=fgetc(stdin); while(ch!='#') { fputc(ch,fout); ch=fgetc(stdin); } fclose(fout); return 0; } 出错的原因是()

A.函数fopen调用形式错误

B.输入文件没有关闭

C.函数fgetc调用形式错误

D.文件指针stdin没有定义

点击查看答案

第5题

以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错,出错的原因是()。 #include <stdio.h> int main() { int r; float s; scanf("%d",&r); s= *p*r*r; printf("s=%fn",s); }

A.s=*p*r*r;语句中使用了非法的表达式

B.注释语句书写位置错误

C.输出语句中格式描述符非法

D.存放圆半径的变量r不应该定义为整型

点击查看答案

第6题

关于局部变量与成员变量,下列说法错误的是()。

A.成员变量是指在类中定义的变量

B.方法中定义的变量及形参等都是局部变量

C.成员变量和局部变量的区别是两者的数据类型不同

D.局部变量随着方法的调用而产生,随着方法调用结束而自动结束

点击查看答案

第7题

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

A.11,12

B.11 12

C.11 12

D.1112

点击查看答案

第8题

下列程序的功能是: 给输入数据后计算半径为r的圆面积s。程序在编译时出错,原因是 int main(void) /* hangzhou */ { int r; float s; scanf ("8a",&r); s = PI * r * r; printf("s=%fn", s); return 0; }

A.注释语句书写位置错误

B.存放圆半径的变量r不应该定义为整型

C.输出语句中格式描述符非法

D.计算圆面积的赋值语句中使用了非法变量

点击查看答案

第9题

在scanf函数的使用中以下叙述中正确的是()。

A.输入项可以是一个实型常量,如:scanf(“%f”,3.5);

B.可以只有格式控制,没有输入项,如:scanf(“a=%d,b=%d”);

C.格式控制部分可以规定小数点后面的位数,如:scanf(“%4.2f”,&d);

D.当输入数据时,必须指明变量地址,如:scanf(“%f”,&f);

点击查看答案
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
温馨提示
每个试题只能免费做一次,如需多次做题,请购买搜题卡
立即购买
稍后再说
警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“赏学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
赏学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反赏学吧购买须知被冻结。您可在“赏学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
赏学吧
点击打开微信