若有以下定义和语句:int a,*p=&a;则能够从键盘给变量a输入数据的语句是( )。 A. scanf("%d",*p); B. scanf("%d",a); C. scanf("%d",&p); D. scanf("%d",p);
时间: 2023-10-19 21:39:01 浏览: 104
从键盘输入数据并显示的实验 汇编
3星 · 编辑精心推荐
正确答案是 D. `scanf("%d",p);`。
因为变量`p`是指向变量`a`的指针,所以在对变量`a`进行输入时,应该使用指针`p`的值作为参数传递给`scanf`函数。而`scanf`函数需要的参数是指向变量的指针,因此选项`C`中的`&p`是错误的,因为它是指向指针本身的指针,而不是指向变量`a`的指针。
选项`B`中的`a`是变量的名称,而不是指向变量的指针,因此也是错误的。
选项`A`中的`*p`是对指针`p`所指向的变量`a`进行解引用操作后得到的值,而不是指向变量`a`的指针,因此也是错误的。
因此,正确答案是选项`D`中的`scanf("%d",p);`。
阅读全文