以下程序中调用scanf函数给变量a输入数值的方法是错误的 其错误原因是main(){ int *p *q a b; p

计算机 变量,错误,数值 已帮助 人

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

热搜:晶格常数为a的一维晶格中,电子的波函数为

答案解析

难度★★☆ 搜索
  • 参考答案:B在本题中,题目告诉我们程序中调用scanf函数给变量a输入数值的方法是错误的,要求我们找出其错误的原因,这是一类错误原因分析题。在本题程序中,首先定义两个整型指针变量p和q,然后定义两个整型变量a和b,让指针变量p执行变量a,接着输出提示语句“请输入a”,执行格式输入语句scanf,由于输入语句的输入列表中给出的应该是输入的地址,即存放输入数据的存储地址,但在本题的输入语句中给出的是*p,这表示一个数值,而非地址。因此,无法完成数据的输入,若要完成输入,可以将*p改为p。根据上面的分析,我们可以知道本题程序出错的原因是*p表示的是变量a的值,而不是变量a的地址。因此本题正确答案选B。