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

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

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,以下选项中错误的程序是

A)

main()

{ …… x=fun(2,10); …… }

float fun(int a,int b){ …… }

B)

float fun(int a,int b){ …… }

main()

{ …… x=fun(i,j); …… }

C)

float fun(int,int);

main()

{ …… x=fun(2,10); …… }

float fun(int a,int b) { …… }

D)

main()

{ float fun(int i,int j);

…… x=fun(i,j); …… }

float fun(int a,int b){ …… }


正确答案:A
(20)A) 解析 : 在调用子函数时 , 应对其进行说明。选项 A) 中 , 调用时 , 没有对子函数进行说明 。选项 B) 、 C) 中被调用函数在主调函数之前定义 , 不用说明 ; 选项 D) 中在主调函数中对被调用函数的返回值类型进行了说明。

第2题:

有以下程序 #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);


正确答案:A

第3题:

有以下结构体说明、变量定义和赋值语句

struct STD

{ char name[10];

int age;

char sex;

} s[5],*ps;

ps=&s[0];

则以下 scanf 函数调用语句中错误引用结构体变量成员的是

A)scanf("%s",s[0].name);

B)scanf("%d",&s[0].age);

C)scanf("%c",&(ps->sex));

D)scanf("%d",ps->age);


正确答案:D
答案 D
解析:在 scanf 函数中,第 2 个参数应该表示为地址变量,而选项 D 只是一个具体的值,而并不是一个地址值。

第4题:

有以下程序:inlucdemain()D)2 3 3{int n,*P=NULL;*p=&n;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

第5题:

有以下程序 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);


正确答案:A
解析:指针变量在定义时需要加星号,而在赋值时则不用,故选项B)错误。本题中,scanf()函数和printf()函数都是要对指针变量p指向的地址处的数据进行访问,不是变量本身。选项C)中多了取地址运算符,选项D)中少了指针运算符。

第6题:

有以下程序

int fun(int n)

{ if(n==1)return 1;

else

return(n+fun(n-1));

}

main()

{ int x;

scanf(" % d",&x); x=fun(x);printf(" % d\n",x);

}

执行程序时,给变量 X 输入 10 ,程序的输出结果是

A)55

B)54

C)65

D)45


正确答案:A
(39)A) 解析 : 本程序考察的是函数的递归调用 , 在调用一个函数的过程中又出现直接或间接地调用该函数本身 , 称为函数的递归调用 , 执行结果为 1+2+3+4+5+6+7+8+9+10=55 。

第7题:

有以下程序 int fun(int n) {if(n==1)return 1; else rerurn(n+fun(n+1)); } main() {int x; scanf("%d",&x);x=fun(x);printf("%d\n",x); } 执行程序时,给变量x输入10,程序的输出结果是

A.55

B.54

C.65

D.45


正确答案:A
解析: 本程序考查的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用,执行结果为1+2+3+4+5+6+7+8+ 9+10=55。

第8题:

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


答案:B

第9题:

以下程序中调用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的使用。本题经过定义语句和赋值后,p表示的是变量a的地址,*p表示的是变量a的值。

第10题:

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

A.11 12<回车>

B.11,12<回车>

C.11, 12<回车>

D.11,<回车>12<回车>


正确答案:A
解析:格式输入函数的一般形式为:scanf(格式控制,地址表列)在“格式控制”字符串中,除格式说明以外的其他字符为按原样输入的字符,在输入数据时应按原样输入这些字符。所以输入时,两个数字之间的逗号是不可少的。

更多相关问题