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

以下程序中调用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。

相关考题:

有以下程序#include stdio.hmain( ){ int n,*p=NULL;*p=n;printf("Input n:"); scanf("%d",p); printf("output n:"); printf("%d\n",p);}该程序试图通过指针 p 为变量 n 读入数据并输出,但程序有多处错误,以下语句正确的是A)int n,*p=NULL;B)*p=n;C)scanf("%d",p)D)printf("%d\n",p);

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

有以下程序 #include main() {int n,*p=NULL; *p=n; printf(“Input n:”); scanf(“%d”,p); printf(“output n:”); printf(“%d\\n”,p); }该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是( )。A.int n,*p=NULL;B.*p=n;C.scanf(“%d”, p)D.printf(“%d\n”,p);

请将以下程序中的函数声明语句补充完整。#include stdio.hint 【 1 2 】 ;main(){ int x,y,(*p)();scanf("%d%d",x,y);p=max;printf("%d\n",(*p)(x,y));}int max(int a,int b){ return(ab?a:b);}

有以下程序 include main() { int n,*p=NULL; *p=n; printf(" 有以下程序 #include <stdio.h> main() { int n,*p=NULL; *p=n; printf("Input n:");scanf("%d",p);printf("output n:");printf("%d\n",p); } 该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是A.int n,*p=NULL;B.*p=n;C.scanf("%d",p)D.printf("%d\n",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是一个指针变量

有以下程序:inlucdemain()D)2 3 3{int n,*P=NULL;*p=printf("input n:");scanf("%d 有以下程序: #inlucde<stdio.h> main()D)2 3 3 {int n,*P=NULL; *p=&n; printf("input n:");scanf("%d",&p);printf("output n:");printf("%d\n",p); } 该程序试图通过指针P为变量n读入数据并输出,但程序有多处错误,以下语句正确的是( )。A.int n,*P=NULL;B.*P=&n;C.scanf(“%d",&p)D.printf("%d\n",p);

以下程序段完全正确的是( )。A.int*P;scanf("%d",&p);B.int*P;scanf("%d",p);C.int k,*p=&k;scanf("%d",p);D.int k,*p;*p=&k;scanf("%d¨,p);

有以下程序: includemain(){char*p,*q; p=(char *)malloc(sizeof(char)* 20);q=p; sca 有以下程序: # include<stdio.h> main() { char*p,*q; p=(char *)malloc(sizeof(char)* 20);q=p; scanf("%s %s",p,q);printf("%s %s\n",p,q); } 若从键盘输入;abc def<回车>,则输出结果是 ______。A.def defB.abc defC.abe dD.d d

下列程序的输出结果是()。includevoid main(){int b[6]={2,4,6,8,10,12};int*p--b,**q= 下列程序的输出结果是( )。 #include<stdio.h> void main() { int b[6]={2,4,6,8,10,12}; int*p--b,**q=p; printf("%d",*(p++)); printf("%d",**q); }A.*p=a;scanf("%1f",p);B.*p=a;scanf("%f",p);C.p=a;scanf("%1f",*p);D.p=a;scanf("%1f",p);

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

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

有以下程序#include stdio.hmain { int n,*p=NULL; *p=n; printf("Input n:"); scanf("%d",p); printf("output n:"); printf("%d\n",p);}该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是A.int n,*p=NULL; B.*p=n; C.scanf("%d",p) D.printf("%d\n",p);

有以下程序includemain(){ char*p,*q;p=(char *)malloc(sizeof(char)*20);q=p;scanf( 有以下程序 #include<stdlib.h> main() { char*p,*q; p=(char *)malloc(sizeof(char)*20);q=p; scanf(“%s%s”,p,q);printf(“%s%s\n”,p,q); } 若从键盘输入:abc def<回车>,则输出结果是A.def defB.abc defC.abc dD.d d

有以下程序include main(){ char *p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf 有以下程序 #include <stdlib.h> main() { char *p,*q; p=(char*)malloc(sizeof(char)*20); q=p; scanf("%s %s",p,q); printf("%s %s\n",p,q); } 若从键盘输入:abc def<回车>, 则输出结果是A.def defB.abc delC.abc dD.d d

以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误的原因是( )。 #include(iostream.h) voidmain( ) {int*P,*q,a,b; p=&a; cout"inputa:"; cinP; }A.*P表示的是指针变量P的地址B.P表示的是变量a的地址,而不是变量a的值C.*P表示的是指针变量p的值D.*P只能用来说明P是一个指针变量

以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原是()。includevoid m 以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原是( )。 #include<iostream.h> void main() {int*p,*q,a,b; p=a; eout<<"input a:"; cin>>p; }A.*p表示的是指针变量p的地址B.p表示的是变量a的地址,而不是变量a的值C.*p表示的是指针变量p的值D.*p只能用来说明p是一个指针变量

以下scanf函数调用语句中对结构体变量成员的不正确引用是 struct pupil { char name[20]; int age int sex; } pup[5],*p; p=pup;A.scanf("%s",pup[0].name);B.scanf("%d",pup[0].age);C.scanf("%dT",(p->sex));D.scanf("%d",p->age);

以下程序段完全正确的是( )。A.int*p;scanf(”%d”,p);B.int*p;scanf(”%”,p);C.int k,*p=&k;scanf(”%d”,p);D.int k,*p;*p=&k;scanf(”%d”,p);

有以下程序: include main( ) { char *p ,* q; p=(char * )malloc(sizeof(char 有以下程序: #include<stdlib.h> main( ) { char *p ,* q; p=(char * )malloc(sizeof(char) * 20);q=p; scanf("%s%s",p,q); printf("%s%s\n",p,q); } 若从键盘输入:abc def<回车>,则输出结果是A.def defB.abc defC.abc dD.d d

以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原因是( )。 #includeiostream.h void main {int * P,* q,a,b; P=a: eout”input a:”; cinP:A.* P表示的是指针变量P的地址B.P表示的是变量a的地址,而不是变量a的值C.*P表示的是指针变量P的值D.*P只能用来说明P是一个指针变量

以下程序段完全正确的是( )。 A.int*P;scanf("%d",p);B.int*P;scanf("%d",p);SX 以下程序段完全正确的是( )。A.int*P;scanf("%d",p);B.int*P;scanf("%d",p);C.int k,*p=k;scanf("%d",p);D.int k,*p;*p=k;scanf("%d¨,p);

以下程序调用scanf函数给变量a输入数值的方法是错误的,其错误原因是()。includemain(){ 以下程序调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( )。 #include <stdio.h> 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是一个指针变量

以下scanf函数调用语句中对结构体变量成员的不正确引用的是()。  struct node{      char name[20];      int age;      int sex; }student[5],*p;  p=student; A、scanf(“%s”,student[0].name);B、scanf(“%d”,student[0].age);C、scanf(“%d”,(p-sex));D、scanf(“%d”,p-age);

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

对于以下程序,   main( )  { int a[5],*p;    int k;    for(k=0,p=a;k5;k++,p++)     scanf(“%d”,p);    for(;k0;k--)     printf(“%d”,*(--p));  }  若输入为:1 2 3 4 5(注:表示回车),则输出结果是多少?

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

单选题有以下程序#includemain(){ intn,*p=NULL; *p=n; printf(Inputn:); scanf(%d,p); printf(outputn:); printf(%d,p);}该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是(  )。