首页/ 题库 / [单选题]以下程序中调用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是一个指针变量

单选题
2021-12-31 23:16
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。

标签:
感兴趣题目
若有定义:int a;float b;double c;程序运行时输入:a=1,b=2,c=3<回车>,能把值1输入给变量a、值2输入给变量b、值3输入给变量c的输入语句是(  )。
若有定义int a;float b;double c;程序运行时输入:3 4 5<回车>能把值3输入给变量a、4输入给变量b、5输入给变量C的语句是(  )。
假设函数fun已经定义,其原型为“void fun(int a,int b=7,char*p=“**”);”,下列函数调用中错误的是(  )。
有以下程序: main() { int m,n,P; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d ",m,n,p); } 若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则王确的输入是( )。
有以下程序 main() { int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d ",m,n,p); } 若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是
以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。 main() /*Beginning*/ { int r;float s; scanf("%d",&); s=*π*r*r;printf("s=%f ",s);} 出错的原因是
以下程序的功能是: 给r输入数据后计算半径r圆面积s。程序在编译时出错。 main () /* Beginning */ { int r; float s; scanf ( "%d", &r); s=*π*r*r; printf ("s=%f ", s); 出错的原因是
以下程序的功能是:给r输入数据后计算半径为r的圆面积s,程序在编译时出错。 main() /* Beginning */ {int r;float s; scanf("%d",&r); s=*I*r*r; printf("s=%f ",s); } 出错的原因是 ______。
以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。 main() /* Beginning*/ {int r;float s; scanf("%d",&r); s=*π*r*r*r;printf("s= %f ",s); } 出错的原因是 ______。
以下程序的功能是:给r输入数据后计算半径为r的圆面积s。#include <stdio, h>main( )/* Beginning */{ int r; float s; scanf("% d", &r); s = *Π* r*r;printf("s =%f ",s); 程序在编译时出错,出错的原因是( )。
已知int a,b;double c;则以下语句中错误的函数调用是
有以下函数定义: int fun(double a,doubleB){return a*b;} 若以下选项中所用变量都已正确定义并赋值,错误的函数调用是( )。
相关题目
已知int a, *p=&a;则下列函数调用中错误的是______
以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是(B)。main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);}
以下程序有错,错误的原因是( )。 main() {int *p,i;char *q,ch; p=&i;q=&ch; *p=40; *p=*q; . . .}
以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是_____。main(){int p,q,a,b; p=&a; printf("input a:"); scanf("%d",p); …… }
设a是int型变量,b是float型变量,用下面的语句给这两个变量输入值scanf("a=%d,b=%f",&a,&b);为了把 100 和 765 分别赋给 i 和 f ,则正确的输入为:
若有定义和语句:int a,b;
scanf("%d,%d,",&a,&B.;
以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是
以下程序中调用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是一个指针变量
若有以下变量定义和函数调用语句: int a=5; fun(&a); 则执行下面函数后正确的输出结果是( )。 void fun(int*x) { cout<<++*x<<end1; }
有以下程序 int add(int a,int b){return(a+b);} main() {int k,(*f)(),a=5,b=10; f=add; } 则以下函数调用语句错误的是
有以下程序: int add(int a,intB){return(a+B);} main() { int k,(*f)(),a=5,b=10; f=add; } 则以下函数调用语句错误的是( )。
有以下程序 iht add (int a, int b) {return(a+b);} mian() {int k,(*f)(),a=5,b=10; f=add; … } 则以下函数调用语句错误的是______。
有下列函数定义:int fun(double a,double b){return a*b;}若下列选项中所用变量都已经正确定义并赋值,错误的函数调用是( )。
有下列函数定义:int fun(double a,double B){return a*b;}若下列选项中所用变量都已正确定义并赋值,错误的函数调用是( )。
有以下函数定义: int mypr(double a,double b) { return a*b; } 若以下选项中所用变量都已正确定义并赋值,错误的函数调用是
以下程序段给数组所有的元素输入数据,请选择正确答案填入。#include <stdio.h>main(){ int a[10],j=0; while(i<10)scanf("%d", ______ ); : :}
以下程序段给数组所有的元素输入数据,请选择正确答案填入。( ) #inelude<stdio.h> main() {int a[10],i=0; while(i<10)scanf("%d",______); ┇ }
以下程序段给数组所有的元素输入数据,请选择正确答案填入。 #include<stdio.h> main() { int a[10],i=0; while(i<10)scanf("%d",______); : : }
以下程序段给数组所有的元素输入数据,请选择正确答案填入: #include<stdio.h> main() { int a[10],i=0; while(i<10)scanf("%d",______); : : }
以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是main(){ int *p,*q,a,b;p=&a;printf("input a:");scanf("%d",*p); }
以下程序调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( )。 #include <stdio.h> main() { int *p,*q,a,b; p=&a; printf("input a:"); scanf("%d",*p); }
广告位招租WX:84302438

免费的网站请分享给朋友吧